package com.ld.igds.phone.service.impl; import com.alibaba.fastjson.JSONObject; import com.ld.igds.constant.RespCodeEnum; import com.ld.igds.gas.CoreGasService; import com.ld.igds.gas.dto.GasData; import com.ld.igds.gas.dto.GasParam; import com.ld.igds.pest.CorePestService; import com.ld.igds.pest.dto.PestData; import com.ld.igds.pest.dto.PestParam; import com.ld.igds.phone.constant.PhoneConstant; import com.ld.igds.phone.dto.*; import com.ld.igds.phone.mapper.PhoneCommonMapper; import com.ld.igds.phone.param.ParamDepot; import com.ld.igds.phone.param.PhoneRequest; import com.ld.igds.phone.service.PhoneService; import com.ld.igds.phone.util.PhoneRespUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * 粮情展示-仓库列表接口实现 * * @author chen */ @Service public class ServiceImpl5301 implements PhoneService { @Autowired private PhoneCommonMapper phoneCommonMapper; @Autowired private CorePestService pestService; @Autowired private CoreGasService coreGasService; @Override public String getInterfaceId() { return PhoneConstant.API_PHONE_5301; } @SuppressWarnings("unchecked") @Override public PhoneResponse execute(PhoneRequest req, AuthUser authUser) throws Exception { //转化为对象 ParamDepot paramDepot = JSONObject.parseObject(req.getData().toString(), ParamDepot.class); //查看用户所属部门是否存在 String deptId = authUser.getDeptId(); if(StringUtils.isEmpty(deptId)){ return PhoneRespUtil.error(RespCodeEnum.CODE_1111,"您的账号尚未分配部门/分库,无法查看!"); } //判断登录用户部门是否是顶级部门,是的话默认分配到分库一 if (deptId.equals(authUser.getCompanyId())) { deptId = authUser.getCompanyId() + "_001"; } //获取仓库信息 List depotList = phoneCommonMapper.phoneListDepot(authUser.getCompanyId(),deptId); for (int i = depotList.size()-1;i>=0;i--){ if(StringUtils.isEmpty(depotList.get(i).getDepotType()) || "99".equals(depotList.get(i).getDepotType())){ depotList.remove(depotList.get(i)); } } //判断type类型,是虫害类型,则查询虫害信息 if(paramDepot.getType().equals(PhoneConstant.PHONE_DEPOT_PEST)){ //设置查询参数 PestParam param = new PestParam(); param.setCompanyId(authUser.getCompanyId()); param.setLimit(1); List pestList; //遍历仓库进行查询,每个仓库只查询一条虫害数据 for (DtoDepot dtoDepot : depotList) { param.setDepotId(dtoDepot.getDepotId()); pestList = pestService.pageQueryList(param); if (pestList != null && pestList.size()>0) { dtoDepot.setIsPest(pestList.get(0).getRemark()); dtoDepot.setReceiveDate(pestList.get(0).getReceiveDate()); } } } //判断type类型,是气体类型,则查询气体信息 if(paramDepot.getType().equals(PhoneConstant.PHONE_DEPOT_GAS)){ GasParam param = new GasParam(); param.setCompanyId(authUser.getCompanyId()); param.setLimit(1); List gasList; for (DtoDepot dtoDepot : depotList) { param.setDepotId(dtoDepot.getDepotId()); gasList = coreGasService.pageQueryList(param); if(gasList != null && gasList.size()>0){ dtoDepot.setPerCo2(gasList.get(0).getPerCo2()); dtoDepot.setPerN2(gasList.get(0).getPerN2()); dtoDepot.setPerO2(gasList.get(0).getPerO2()); dtoDepot.setPerPh3(gasList.get(0).getPerPh3()); dtoDepot.setReceiveDate(gasList.get(0).getReceiveDate()); } } } return PhoneRespUtil.success(depotList, req); } }