package com.ld.igds.phone.service.impl; import com.alibaba.fastjson.JSONObject; import com.ld.igds.common.CoreDicService; import com.ld.igds.constant.RespCodeEnum; import com.ld.igds.models.DicTrigger; import com.ld.igds.phone.constant.PhoneConstant; import com.ld.igds.phone.util.PhoneRespUtil; import com.ld.igds.phone.dto.*; import com.ld.igds.phone.mapper.PhoneCommonMapper; import com.ld.igds.phone.param.PhoneRequest; import com.ld.igds.phone.service.PhoneService; import com.ld.igds.sys.service.DicTriggerService; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; /** * 综合展示接口实现 * @author chen */ @Service public class ServiceImpl5101 implements PhoneService { @Autowired private DicTriggerService triggerService; @Autowired private PhoneCommonMapper phoneCommonMapper; @Override public String getInterfaceId() { return PhoneConstant.API_PHONE_5101; } @SuppressWarnings("unchecked") @Override public PhoneResponse execute(PhoneRequest req, AuthUser authUser) throws Exception { //查看用户所属部门是否存在 String deptId = authUser.getDeptId(); if(StringUtils.isEmpty(deptId)){ return PhoneRespUtil.error(RespCodeEnum.CODE_1111,"您的账号尚未分配部门/分库,无法查看!"); } //判断登录用户部门是否是顶级部门,是的话默认分配到分库一 if (deptId.equals(authUser.getCompanyId())) { deptId = authUser.getCompanyId() + "_001"; } //获取粮食性质字典集合信息 List foodTypeList = triggerService.getCacheDicByParent( authUser.getCompanyId(),"FOOD_TYPE_"); //获取粮食品种字典集合信息 List foodVarietyList = triggerService.getCacheDicByParent( authUser.getCompanyId(),"FOOD_VARIETY_"); //获取粮食等级字典集合信息 List foodLevelList = triggerService.getCacheDicByParent( authUser.getCompanyId(),"FOOD_LEVEL_"); //获取仓库实时信息 List depotList = phoneCommonMapper.phoneListDepot(authUser.getCompanyId(),deptId); //数量临时变量 Double tempNum; //统计粮食性质信息 List> listFoodType = new ArrayList<>(); Map map; for (DicTrigger dicTrigger : foodTypeList) { tempNum = 0.0; for (DtoDepot depot : depotList) { if(dicTrigger.getCode().equals(depot.getFoodType())){ tempNum += depot.getStorageReal(); } } if(tempNum > 0){ map = new HashMap<>(); map.put("typeName",dicTrigger.getName()); map.put("typeNum",String.valueOf(tempNum.longValue())); listFoodType.add(map); } } //统计粮食品种信息 List> listFoodVariety = new ArrayList<>(); for (DicTrigger dicTrigger : foodVarietyList) { tempNum = 0.0; for (DtoDepot depot : depotList) { if(dicTrigger.getCode().equals(depot.getFoodVariety())){ tempNum += depot.getStorageReal(); } } if(tempNum > 0) { map = new HashMap<>(); map.put("varietyName",dicTrigger.getName()); map.put("varietyNum",String.valueOf(tempNum.longValue())); listFoodVariety.add(map); } } //统计粮食等级信息 List> listFoodLevel = new ArrayList<>(); for (DicTrigger dicTrigger : foodLevelList) { tempNum = 0.0; for (DtoDepot depot : depotList) { if(dicTrigger.getCode().equals(depot.getFoodLevel())){ tempNum += depot.getStorageReal(); } } if(tempNum > 0) { map = new HashMap<>(); map.put("levelName",dicTrigger.getName()); map.put("levelNum",String.valueOf(tempNum.longValue())); listFoodLevel.add(map); } } //设置返回信息 Dto5101 dto = new Dto5101(); dto.setTime(DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss")); dto.setDepotNum(depotList.size()); dto.setDeptName(authUser.getDeptName()); dto.setListFoodType(listFoodType); dto.setListFoodVariety(listFoodVariety); dto.setListFoodLevel(listFoodLevel); return PhoneRespUtil.success(dto,req); } }