czt
5 天以前 9013a9201cb49e5777d39a4d08fd6255731fb36d
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
130
131
package com.fzzy.igds;
 
import com.bstek.dorado.annotation.DataProvider;
import com.bstek.dorado.data.provider.Page;
import com.fzzy.igds.constant.DepotType;
import com.fzzy.igds.constant.FoodVariety;
import com.fzzy.igds.data.GrainDataReport;
import com.fzzy.igds.domain.DepotConf;
import com.fzzy.igds.domain.Grain;
import com.fzzy.igds.service.DepotConfService;
import com.fzzy.igds.service.GrainService;
import com.fzzy.igds.service.SysDeptService;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.igds.utils.DateUtil;
import com.fzzy.igds.utils.GrainDataBuilder;
import com.ruoyi.common.core.domain.entity.SysDept;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.*;
 
/**
 * @Description 粮情报表页面入口
 * @Author CZT
 * @Date 2025/12/9 10:19
 */
@Component
public class GrainReportPR {
 
    @Resource
    private GrainService grainService;
    @Resource
    private SysDeptService sysDeptService;
    @Resource
    private DepotConfService depotConfService;
 
    /**
     * grainReportPR#getQuery
     * @return
     */
    @DataProvider
    public Map<String, Object> getQuery() {
        Map<String, Object> result = new HashMap<>();
 
        SysDept subDept = sysDeptService.getCacheDept(null, ContextUtil.subDeptId(null));
        result.put("title", "粮情汇总表");
        if (null != subDept) {
            result.put("title", subDept.getDeptName() + "粮情汇总表");
            result.put("deptId", subDept.getDeptId());
        }
 
        result.put("timeDesc", "检测时间");
        result.put("depotNameLabel", "");
        result.put("depotName", "");
 
        result.put("end", new Date());
        Date start = DateUtil.getNewByDay(new Date(), -30);
        result.put("start", start);
 
        result.put("timeDesc",
                DateFormatUtils.format(start, "yyyy-MM-dd") + "   截至:"
                        + DateFormatUtils.format(new Date(), "yyyy-MM-dd"));
 
        result.put("createUser", ContextUtil.getLoginUserName());
        result.put("createTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
 
        return result;
    }
 
    /**
     * 粮情数据报表数据分页查询,查询条件根据选择具体日期查询
     * grainReportPR#getDataReport
     *
     * @param page
     * @param param
     */
    @DataProvider
    public void getDataReport(Page<GrainDataReport> page, Map<String, Object> param) {
        com.baomidou.mybatisplus.extension.plugins.pagination.Page<Grain> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize());
 
        if (null == param) {
            param = new HashMap<>();
        }
        grainService.pageData(corePage, param);
        List<Grain> records = corePage.getRecords();
 
        // 是否允许重复,在按照某天查询情况,只获取当天最后一条信息 0= 不允许,1=允许
        String repeat = (String) param.get(("repeat"));
        Map<String, String> tempMap = new HashMap<>();
 
        // 调整数据
        int maxZ = 3;
        int hour = 0;
        List<GrainDataReport> dataList = new ArrayList<>();
        GrainDataReport report;
        DepotConf depotConf;
        for (Grain grain : records) {
 
            // 去除重复
            if (null != repeat && "0".equals(repeat)) {
                if (null == tempMap.get(grain.getDepotId())) {
                    tempMap.put(grain.getDepotId(), grain.getBatchId());
                } else {
                    continue;
                }
            }
            report = new GrainDataReport();
            BeanUtils.copyProperties(grain, report);
 
            // 调整类型字段显示中文
            report.setDepotTypeName(DepotType.getMsg(report.getDepotType()));
            report.setFoodVariety(FoodVariety.getMsg(report.getFoodVariety()));
 
            if (report.getMaxZ() > maxZ) {
                maxZ = report.getMaxZ();
            }
            report.setMaxZ(maxZ);
 
            depotConf = depotConfService.getCacheDepotConfByDepotId(grain.getCompanyId(), grain.getDepotId());
            GrainDataBuilder.updateReport(report, depotConf);
 
            dataList.add(report);
        }
 
        // 重新封装
        page.setEntities(dataList);
        page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal())));
    }
 
}