package com.fzzy.igds.app.v1.service.impl; import com.alibaba.fastjson.JSONObject; import com.fzzy.common.constant.RespCodeEnum; import com.fzzy.common.utils.DateUtil; import com.fzzy.igds.app.v1.constant.PhoneConstant; import com.fzzy.igds.app.v1.data.AuthUser; import com.fzzy.igds.app.v1.data.ParamDepot; import com.fzzy.igds.app.v1.data.PhoneRequest; import com.fzzy.igds.app.v1.data.PhoneResponse; import com.fzzy.igds.app.v1.dto.PDetailDto; import com.fzzy.igds.app.v1.dto.PGrainDto; import com.fzzy.igds.app.v1.dto.PPointDto; import com.fzzy.igds.app.v1.service.PhoneService; import com.fzzy.igds.app.v1.util.PhoneRespUtil; import com.fzzy.igds.app.v1.util.PhoneUtil; import com.fzzy.igds.data.GrainData; import com.fzzy.igds.data.GrainLay; import com.fzzy.igds.data.GrainParam; import com.fzzy.igds.data.GrainPoint; import com.fzzy.igds.domain.Depot; import com.fzzy.igds.domain.DepotConf; import com.fzzy.igds.domain.Grain; import com.fzzy.igds.service.DepotConfService; import com.fzzy.igds.service.DepotService; import com.fzzy.igds.service.GrainService; import com.fzzy.igds.utils.GrainDataBuilder; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * @Author: YYC * @Description: 粮情数据查看-历史数据(根据页码查询)接口 * @DateTime: 2026-1-12 14:43 **/ @Service public class ServiceImpl5204 implements PhoneService { @Autowired private PhoneUtil phoneUtil; @Autowired private DepotService depotService; @Autowired private GrainService coreGrainService; @Autowired private DepotConfService depotConfService; @Override public String getInterfaceId() { return PhoneConstant.API_PHONE_5204; } @Override public PhoneResponse execute(PhoneRequest req, AuthUser authUser) throws Exception { ParamDepot param = JSONObject.parseObject(req.getData().toString(), ParamDepot.class); if (null == param) { return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "参数有误,请重试!!"); } //参数验证 if (StringUtils.isEmpty(param.getDeptId()) || StringUtils.isEmpty(param.getDepotId()) || null == param.getDateTime()) { return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "参数有误,请重试!!"); } GrainParam grainParam = new GrainParam(); grainParam.setDepotId(param.getDepotId()); grainParam.setCompanyId(authUser.getCompanyId()); Date date = DateUtils.parseDate(param.getDateTime(), "yyyy-MM"); //设置查询时间,月的第一天到最后一天 grainParam.setStart(DateUtil.getMonthFirst(date)); grainParam.setEnd(DateUtil.getNextMonthFirst(date)); grainParam.setDeptId(param.getDeptId()); //查询粮情数据 List list = coreGrainService.listData(grainParam); Depot depot = depotService.getCacheDepot(authUser.getCompanyId(), param.getDepotId()); if (null == list || list.isEmpty()) { return PhoneRespUtil.error(RespCodeEnum.CODE_1005, "该仓库暂无粮情数据!"); } //返回数据封装 List dtoList = new ArrayList<>(); PGrainDto dto; List listPoints; List listDetail; PPointDto pointDto; PDetailDto detailDto; DepotConf depotConf; GrainData data; Depot depotData; List result = new ArrayList<>(); for (Grain grain : list) { depotConf = depotConfService.getCacheDepotConfByDepotId(grain.getCompanyId(), grain.getDepotId()); data = new GrainData(); BeanUtils.copyProperties(grain, data); // 添加仓库信息 depotData = depotService.getCacheDepot(param.getCompanyId(), param.getDepotId()); GrainDataBuilder.updateGrainData(data, depotConf, depotData.getDepotType()); result.add(data); } for (GrainData grainData : result) { dto = new PGrainDto(); dto.setDepotId(grainData.getDepotId()); dto.setDepotName(phoneUtil.getDepotName(authUser.getCompanyId(),dto.getDepotId())); dto.setDepotType(depot.getDepotType()); dto.setReceiveDate(grainData.getReceiveDate()); dto.setTempIn(grainData.getTempIn()); dto.setHumidityIn(grainData.getHumidityIn()); dto.setTempOut(grainData.getTempOut()); dto.setHumidityOut(grainData.getHumidityOut()); dto.setTempMax(grainData.getTempMax()); dto.setTempMin(grainData.getTempMin()); dto.setTempAve(grainData.getTempAve()); dto.setCable(grainData.getCable().replaceAll(",","-")); if(StringUtils.isNotEmpty(grainData.getCableCir())){ dto.setCableCir(grainData.getCableCir().replaceAll(",", "-")); } listPoints = new ArrayList<>(); for (GrainPoint point : grainData.getListPoints()) { pointDto = new PPointDto(); pointDto.setX(point.getX()); pointDto.setY(point.getY()); pointDto.setZ(point.getZ()); pointDto.setFz(point.getFz()); pointDto.setTemp(point.getTemp()); listPoints.add(pointDto); } dto.setPoints(listPoints); listDetail = new ArrayList<>(); for (GrainLay lay : grainData.getListLays()) { detailDto = new PDetailDto(); detailDto.setFz(lay.getFz()); detailDto.setFzName(lay.getFz() + "层"); detailDto.setTempMax(lay.getTempMax()); detailDto.setTempMin(lay.getTempMin()); detailDto.setTempAve(lay.getTempAve()); listDetail.add(detailDto); } dto.setDetails(listDetail); dtoList.add(dto); } return PhoneRespUtil.success(dtoList, req); } }