CZT
2023-11-27 c206acfaedc69c390fb67daa81bc686f58a212ef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package com.ld.igds.phone35.service.impl;
 
import com.alibaba.fastjson.JSONObject;
import com.ld.igds.common.CoreCommonService;
import com.ld.igds.constant.RespCodeEnum;
import com.ld.igds.grain.dto.GrainData;
import com.ld.igds.grain.dto.GrainLay;
import com.ld.igds.grain.dto.GrainParam;
import com.ld.igds.grain.dto.GrainPoint;
import com.ld.igds.grain.service.CoreGrainService;
import com.ld.igds.models.Depot;
import com.ld.igds.phone35.constant.Phone35Constant;
import com.ld.igds.phone35.dto.*;
import com.ld.igds.phone35.param.Phone35DepotCommonParam;
import com.ld.igds.phone35.param.Phone35Request;
import com.ld.igds.phone35.service.Phone35Service;
import com.ld.igds.phone35.util.Phone35Util;
import com.ld.igds.phone35.util.PhoneRespUtil;
import com.ld.igds.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
/**
 * 粮情展示-历史数据(根据页码查询)
 *
 * @author chen
 */
@Service
public class Phone35ServiceImpl5302 implements Phone35Service {
 
    @Autowired
    private Phone35Util phone35Util;
    @Autowired
    private CoreGrainService coreGrainService;
    @Autowired
    private CoreCommonService coreCommonService;
 
    @Override
    public String getInterfaceId() {
        return Phone35Constant.API_PHONE_5302;
    }
 
    @SuppressWarnings("unchecked")
    @Override
    public PhoneResponse<Object> execute(Phone35Request<JSONObject> req, Phone35AuthUser phone35AuthUser)
            throws Exception {
        Phone35DepotCommonParam param = JSONObject.parseObject(req.getData().toString(), Phone35DepotCommonParam.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(phone35AuthUser.getCompanyId());
        Date date = DateUtils.parseDate(param.getDateTime(), "yyyy-MM");
        //设置查询时间,月的第一天到最后一天
        grainParam.setStart(DateUtil.getMonthFirst(date));
        grainParam.setEnd(DateUtil.getNextMonthFirst(date));
 
        //查询粮情数据
        List<GrainData> list = coreGrainService.listGrainData(grainParam);
        Depot depot = coreCommonService.getCacheDepot(phone35AuthUser.getCompanyId(), param.getDepotId());
        if (null == list || list.isEmpty()) {
            return PhoneRespUtil.error(RespCodeEnum.CODE_1005, req, "该仓库暂无粮情数据!");
        }
 
        //返回数据封装
        List<Dto5302> dtoList = new ArrayList<>();
        Dto5302 dto;
        List<DtoPoint5302> listPoints;
        List<DtoDetail5302> listDetail;
        DtoPoint5302 dtoPoint5302;
        DtoDetail5302 dtoDetail5302;
        for (GrainData grainData : list) {
            dto = new Dto5302();
            dto.setDepotId(grainData.getDepotId());
            dto.setDepotName(phone35Util.getDepotName(phone35AuthUser.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()) {
                dtoPoint5302 = new DtoPoint5302();
                dtoPoint5302.setX(point.getX());
                dtoPoint5302.setY(point.getY());
                dtoPoint5302.setZ(point.getZ());
                dtoPoint5302.setFz(point.getFz());
                dtoPoint5302.setTemp(point.getTemp());
                listPoints.add(dtoPoint5302);
            }
            dto.setPoints(listPoints);
 
            listDetail = new ArrayList<>();
            for (GrainLay lay : grainData.getListLays()) {
                dtoDetail5302 = new DtoDetail5302();
                dtoDetail5302.setFz(lay.getFz());
                dtoDetail5302.setFzName(lay.getFz() + "层");
                dtoDetail5302.setTempMax(lay.getTempMax());
                dtoDetail5302.setTempMin(lay.getTempMin());
                dtoDetail5302.setTempAve(lay.getTempAve());
                listDetail.add(dtoDetail5302);
            }
            dto.setDetails(listDetail);
 
            dtoList.add(dto);
        }
        return PhoneRespUtil.success(dtoList, req);
    }
}