sgj
昨天 43ba5af02280a1d222769fed87ddab421962ca8e
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
package com.fzzy.igds;
 
import com.bstek.dorado.annotation.DataProvider;
import com.fzzy.igds.data.InoutParam;
import com.fzzy.igds.domain.InoutRecord;
import com.fzzy.igds.service.InoutRecordService;
import com.fzzy.igds.service.SysDeptService;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.igds.utils.DateUtil;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.utils.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.stereotype.Component;
 
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
@Component
public class ReportInoutDetailPR {
 
    @Resource
    private InoutRecordService inoutReportService;
    @Resource
    private SysDeptService sysDeptService;
 
    /**
     * reportInoutDetailPR#getQuery 根据报表类型,获取默认查询信息,比如表头信息等
     *
     * @param
     * @return
     */
    @DataProvider
    public InoutParam getQuery(InoutParam param) {
        InoutParam result = new InoutParam();
        //获取参数中分库编码
        String deptId = param.getDeptId();
        //获取分库编码对应的分库名称
        String deptName = "";
        SysDept subDept = sysDeptService.getCacheDept(null, ContextUtil.subDeptId(null));
        if (null != subDept) {
            deptName = subDept.getDeptName();
        }
        result.setTitle("出入库明细汇总");
        if (StringUtils.isNotEmpty(deptName)) {
            result.setTitle(deptName + "出入库明细汇总");
            result.setDeptId(deptId);
        }
        result.setUnit("千克(KG)");
        result.setEnd(new Date());
        Date start = DateUtil.getNewByDay(new Date(), -30);
        result.setStart(start);
 
        result.setTimeDesc(
                DateFormatUtils.format(start, "yyyy-MM-dd") + "   截至:"
                        + DateFormatUtils.format(new Date(), "yyyy-MM-dd"));
        return result;
    }
 
    /**
     * 出入库汇总表
     * reportInoutDetailPR#listRecord 报表数据,只获取已经完成的,并且非异常数据和删除数据
     *
     * @param param
     * @return
     */
    @DataProvider
    public List<InoutRecord> listRecord(InoutParam param) {
 
        if (null == param) {
            param = new InoutParam();
        }
        //多参数分页查询
        com.baomidou.mybatisplus.extension.plugins.pagination.Page<InoutRecord> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(0, 10000);
        inoutReportService.listPageInout(corePage, param);
        //获取查询到得list数据
        List<InoutRecord> result = corePage.getRecords();
        if (null == result || result.isEmpty()) {
            return result;
        }
 
        // 添加统计信息
        double emptyWeightSum = 0.0, fullWeightSum = 0.0, deCheck = 0.0, addCheck = 0.0, deWetSum = 0.0, deImpuritySum = 0.0, deHandleSum = 0.0, deOtherSum = 0.0, deSumSum = 0.0, netWeightSum = 0.0, settleWeightSum = 0.0;
        int index = 1;
        List<InoutRecord> list = new ArrayList<>();
        for (InoutRecord record : result) {
            list.add(record);
            record.setRemarks(String.valueOf(index));
            emptyWeightSum += record.getEmptyWeight();
            fullWeightSum += record.getFullWeight();
            deOtherSum += record.getDeOther();
            netWeightSum += record.getNetWeight();
            settleWeightSum += record.getSettleWeight();
            index++;
        }
        InoutRecord sum = new InoutRecord();
        sum.setId("合计");
        sum.setEmptyWeight(emptyWeightSum);
        sum.setFullWeight(fullWeightSum);
        sum.setDeOther(deOtherSum);
        sum.setNetWeight(netWeightSum);
        sum.setSettleWeight(settleWeightSum);
 
        if (sum.getNoticeId() == null) sum.setNoticeId("");
        if (sum.getDepotId() == null) sum.setDepotId("");
        if (sum.getProgress() == null) sum.setProgress("");
        if (sum.getUserName() == null) sum.setUserName("");
        if (sum.getPlateNum() == null) sum.setPlateNum("");
        if (sum.getFoodVariety() == null) sum.setFoodVariety("");
 
        list.add(sum);
 
        return list;
    }
 
}