浏览代码

结算统计优化

lamphua 7 个月前
父节点
当前提交
eff6910b4e

+ 11
- 41
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcSettleController.java 查看文件

103
                 yearObject.put(String.valueOf(i), yearList.size());
103
                 yearObject.put(String.valueOf(i), yearList.size());
104
                 BigDecimal amount = new BigDecimal(0);
104
                 BigDecimal amount = new BigDecimal(0);
105
                 for (CmcSettle settle : yearList) {
105
                 for (CmcSettle settle : yearList) {
106
-                    CmcSettleSummary cmcSettleSummary = new CmcSettleSummary();
107
-                    cmcSettleSummary.setSettleId(settle.getSettleId());
108
-                    cmcSettleSummary.setContent("实际结算总金额");
109
-                    if (cmcSettleSummaryService.selectCmcSettleSummaryList(cmcSettleSummary).size() > 0) {
110
-                        CmcSettleSummary settleSummary = cmcSettleSummaryService.selectCmcSettleSummaryList(cmcSettleSummary).get(0);
111
-                        if (settleSummary.getAmount() != null)
112
-                            amount = amount.add(settleSummary.getAmount());
113
-                    }
106
+                    if (settle.getAmount() != null)
107
+                        amount = amount.add(settle.getAmount());
114
                 }
108
                 }
115
                 amountObject.put(String.valueOf(i), amount);
109
                 amountObject.put(String.valueOf(i), amount);
116
             }
110
             }
120
             yearObject.put(new SimpleDateFormat("yyyy").format(cmcSettle.getGmTime()), cmcSettleService.selectCmcSettleList(cmcSettle).size());
114
             yearObject.put(new SimpleDateFormat("yyyy").format(cmcSettle.getGmTime()), cmcSettleService.selectCmcSettleList(cmcSettle).size());
121
             BigDecimal amount = new BigDecimal(0);
115
             BigDecimal amount = new BigDecimal(0);
122
             for (CmcSettle settle : cmcSettleService.selectCmcSettleList(cmcSettle)) {
116
             for (CmcSettle settle : cmcSettleService.selectCmcSettleList(cmcSettle)) {
123
-                CmcSettleSummary cmcSettleSummary = new CmcSettleSummary();
124
-                cmcSettleSummary.setSettleId(settle.getSettleId());
125
-                cmcSettleSummary.setContent("实际结算总金额");
126
-                if (cmcSettleSummaryService.selectCmcSettleSummaryList(cmcSettleSummary).size() > 0) {
127
-                    CmcSettleSummary settleSummary = cmcSettleSummaryService.selectCmcSettleSummaryList(cmcSettleSummary).get(0);
128
-                    if (settleSummary.getAmount() != null)
129
-                        amount = amount.add(settleSummary.getAmount());
130
-                }
117
+                if (settle.getAmount() != null)
118
+                    amount = amount.add(settle.getAmount());
131
             }
119
             }
132
             amountObject.put(new SimpleDateFormat("yyyy").format(cmcSettle.getGmTime()), amount);
120
             amountObject.put(new SimpleDateFormat("yyyy").format(cmcSettle.getGmTime()), amount);
133
         }
121
         }
189
         typeObject.put("项目结算", typeList.size());
177
         typeObject.put("项目结算", typeList.size());
190
         BigDecimal pAmount = new BigDecimal(0);
178
         BigDecimal pAmount = new BigDecimal(0);
191
         for (CmcSettle settle : typeList) {
179
         for (CmcSettle settle : typeList) {
192
-            CmcSettleSummary cmcSettleSummary = new CmcSettleSummary();
193
-            cmcSettleSummary.setSettleId(settle.getSettleId());
194
-            cmcSettleSummary.setContent("实际结算总金额");
195
-            if (cmcSettleSummaryService.selectCmcSettleSummaryList(cmcSettleSummary).size() > 0) {
196
-                CmcSettleSummary settleSummary = cmcSettleSummaryService.selectCmcSettleSummaryList(cmcSettleSummary).get(0);
197
-                if (settleSummary.getAmount() != null)
198
-                    pAmount = pAmount.add(settleSummary.getAmount());
199
-            }
180
+            if (settle.getAmount() != null)
181
+                pAmount = pAmount.add(settle.getAmount());
200
         }
182
         }
201
         typeAmountObject.put("项目结算", pAmount);
183
         typeAmountObject.put("项目结算", pAmount);
202
         for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
184
         for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
203
             BigDecimal pyAmount = new BigDecimal(0);
185
             BigDecimal pyAmount = new BigDecimal(0);
204
             int count = 0;
186
             int count = 0;
205
             for (CmcSettle settle : typeList) {
187
             for (CmcSettle settle : typeList) {
206
-                CmcSettleSummary cmcSettleSummary = new CmcSettleSummary();
207
-                cmcSettleSummary.setSettleId(settle.getSettleId());
208
-                cmcSettleSummary.setContent("实际结算总金额");
209
-                if (cmcSettleSummaryService.selectCmcSettleSummaryList(cmcSettleSummary).size() > 0) {
210
-                    CmcSettleSummary settleSummary = cmcSettleSummaryService.selectCmcSettleSummaryList(cmcSettleSummary).get(0);
211
-                    if (settleSummary.getAmount() != null && settle.getProjectNumber() != null && settle.getProjectNumber().contains(String.valueOf(i))) {
212
-                        pyAmount = pyAmount.add(settleSummary.getAmount());
213
-                        count ++;
214
-                    }
188
+                if (settle.getAmount() != null && settle.getProjectNumber() != null && settle.getProjectNumber().contains(String.valueOf(i))) {
189
+                    pyAmount = pyAmount.add(settle.getAmount());
190
+                    count ++;
215
                 }
191
                 }
216
             }
192
             }
217
             yearProjectCountObject.put(i + "项目", count);
193
             yearProjectCountObject.put(i + "项目", count);
223
         typeObject.put("其他结算", typeList.size());
199
         typeObject.put("其他结算", typeList.size());
224
         BigDecimal oAmount = new BigDecimal(0);
200
         BigDecimal oAmount = new BigDecimal(0);
225
         for (CmcSettle settle : typeList) {
201
         for (CmcSettle settle : typeList) {
226
-            CmcSettleSummary cmcSettleSummary = new CmcSettleSummary();
227
-            cmcSettleSummary.setSettleId(settle.getSettleId());
228
-            cmcSettleSummary.setContent("实际结算总金额");
229
-            if (cmcSettleSummaryService.selectCmcSettleSummaryList(cmcSettleSummary).size() > 0) {
230
-                CmcSettleSummary settleSummary = cmcSettleSummaryService.selectCmcSettleSummaryList(cmcSettleSummary).get(0);
231
-                if (settleSummary.getAmount() != null)
232
-                    oAmount = oAmount.add(settleSummary.getAmount());
233
-            }
202
+            if (settle.getAmount() != null)
203
+                oAmount = oAmount.add(settle.getAmount());
234
         }
204
         }
235
         typeAmountObject.put("其他结算", oAmount);
205
         typeAmountObject.put("其他结算", oAmount);
236
     }
206
     }

+ 15
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcSettle.java 查看文件

1
 package com.ruoyi.oa.domain;
1
 package com.ruoyi.oa.domain;
2
 
2
 
3
+import java.math.BigDecimal;
3
 import java.util.Date;
4
 import java.util.Date;
4
 import com.fasterxml.jackson.annotation.JsonFormat;
5
 import com.fasterxml.jackson.annotation.JsonFormat;
5
 import com.ruoyi.common.core.domain.entity.SysDept;
6
 import com.ruoyi.common.core.domain.entity.SysDept;
35
     @Excel(name = "其他项目名称")
36
     @Excel(name = "其他项目名称")
36
     private String xmName;
37
     private String xmName;
37
 
38
 
39
+    /** 实际结算总金额 */
40
+    @Excel(name = "实际结算总金额")
41
+    private BigDecimal amount;
42
+
38
     /** 工作量上报说明 */
43
     /** 工作量上报说明 */
39
     @Excel(name = "工作量上报说明")
44
     @Excel(name = "工作量上报说明")
40
     private String workloadReport;
45
     private String workloadReport;
542
     {
547
     {
543
         return dszUser;
548
         return dszUser;
544
     }
549
     }
550
+    public void setAmount(BigDecimal amount)
551
+    {
552
+        this.amount = amount;
553
+    }
554
+
555
+    public BigDecimal getAmount()
556
+    {
557
+        return amount;
558
+    }
559
+
545
 
560
 
546
     @Override
561
     @Override
547
     public String toString() {
562
     public String toString() {

+ 7
- 3
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcSettleMapper.xml 查看文件

36
         <result property="settleDocument"    column="settle_document"    />
36
         <result property="settleDocument"    column="settle_document"    />
37
         <result property="modifyDocument"    column="modify_document"    />
37
         <result property="modifyDocument"    column="modify_document"    />
38
         <result property="finalDocument"    column="final_document"    />
38
         <result property="finalDocument"    column="final_document"    />
39
+        <result property="amount"    column="amount"    />
39
         <association property="reportUser"    javaType="SysUser"         resultMap="ReportUserResult" />
40
         <association property="reportUser"    javaType="SysUser"         resultMap="ReportUserResult" />
40
         <association property="zhUser"    javaType="SysUser"         resultMap="ZhUserResult" />
41
         <association property="zhUser"    javaType="SysUser"         resultMap="ZhUserResult" />
41
         <association property="jsUser"    javaType="SysUser"         resultMap="JsUserResult" />
42
         <association property="jsUser"    javaType="SysUser"         resultMap="JsUserResult" />
95
     </resultMap>
96
     </resultMap>
96
 
97
 
97
     <sql id="selectCmcSettleVo">
98
     <sql id="selectCmcSettleVo">
98
-        select s.settle_id, s.project_id, p.project_number, p.project_name, p.undertaking_dept, s.xm_name, s.workload_report, s.reporter, u.nick_name as report_nick_name, s.report_time, s.settle_comment, s.zh_user_id, u1.nick_name as zh_nick_name,
99
+        select distinct s.settle_id, s.project_id, p.project_number, p.project_name, p.undertaking_dept, s.xm_name, s.workload_report, s.reporter, u.nick_name as report_nick_name, s.report_time, s.settle_comment, s.zh_user_id, u1.nick_name as zh_nick_name,
99
                s.zh_time, s.zh_comment, s.js_user_id, u2.nick_name as js_nick_name, s.js_time, s.js_comment, s.jy_user_id, u3.nick_name as jy_nick_name, s.jy_time, s.jy_comment, 
100
                s.zh_time, s.zh_comment, s.js_user_id, u2.nick_name as js_nick_name, s.js_time, s.js_comment, s.jy_user_id, u3.nick_name as jy_nick_name, s.jy_time, s.jy_comment, 
100
-               s.manager_user_id, u4.nick_name as manager_nick_name, s.manager_time, s.manager_comment, s.gm_user_id, u5.nick_name as gm_nick_name, s.gm_time, s.gm_comment,
101
+               s.manager_user_id, u4.nick_name as manager_nick_name, s.manager_time, s.manager_comment, s.gm_user_id, u5.nick_name as gm_nick_name, s.gm_time, s.gm_comment, ss.amount,
101
                s.dsz_user_id, u6.nick_name as dsz_nick_name, s.dsz_time, s.dsz_comment, s.settle_document, s.modify_document, s.final_document, s.report_dept, d.dept_name from cmc_settle as s
102
                s.dsz_user_id, u6.nick_name as dsz_nick_name, s.dsz_time, s.dsz_comment, s.settle_document, s.modify_document, s.final_document, s.report_dept, d.dept_name from cmc_settle as s
102
         left join sys_user as u on u.user_id = s.reporter
103
         left join sys_user as u on u.user_id = s.reporter
103
         left join sys_user as u1 on u1.user_id = s.zh_user_id
104
         left join sys_user as u1 on u1.user_id = s.zh_user_id
108
         left join sys_user as u6 on u6.user_id = s.dsz_user_id
109
         left join sys_user as u6 on u6.user_id = s.dsz_user_id
109
         left join cmc_project as p on p.project_id = s.project_id
110
         left join cmc_project as p on p.project_id = s.project_id
110
         left join sys_dept as d on d.dept_id = s.report_dept
111
         left join sys_dept as d on d.dept_id = s.report_dept
112
+        left join cmc_settle_summary as ss on ss.settle_id = s.settle_id
111
     </sql>
113
     </sql>
112
 
114
 
113
     <select id="selectCmcSettleList" parameterType="CmcSettle" resultMap="CmcSettleResult">
115
     <select id="selectCmcSettleList" parameterType="CmcSettle" resultMap="CmcSettleResult">
114
         <include refid="selectCmcSettleVo"/>
116
         <include refid="selectCmcSettleVo"/>
115
         <where>
117
         <where>
116
-
118
+            ss.content = '实际结算总金额'
117
             <if test="settleId != null  and settleId != ''"> and s.settle_id = #{settleId}</if>
119
             <if test="settleId != null  and settleId != ''"> and s.settle_id = #{settleId}</if>
118
             <if test="projectId != null"> and s.project_id = #{projectId}</if>
120
             <if test="projectId != null"> and s.project_id = #{projectId}</if>
119
             <if test="projectNumber != null  and projectNumber != ''"> and p.project_number like concat('%', #{projectNumber}, '%')</if>
121
             <if test="projectNumber != null  and projectNumber != ''"> and p.project_number like concat('%', #{projectNumber}, '%')</if>
141
             <if test="gmTime != null and @com.ruoyi.common.utils.DateUtils@parseDateToStr('yyyy', gmTime) != '2000' "> and YEAR(s.gm_time) = YEAR(#{gmTime})</if>
143
             <if test="gmTime != null and @com.ruoyi.common.utils.DateUtils@parseDateToStr('yyyy', gmTime) != '2000' "> and YEAR(s.gm_time) = YEAR(#{gmTime})</if>
142
             <if test="gmComment != null  and gmComment != ''"> and s.gm_comment = #{gmComment}</if>
144
             <if test="gmComment != null  and gmComment != ''"> and s.gm_comment = #{gmComment}</if>
143
         </where>
145
         </where>
146
+        group by s.settle_id
144
         order by s.report_time desc
147
         order by s.report_time desc
145
     </select>
148
     </select>
146
     
149
     
147
     <select id="selectCmcSettleBySettleId" parameterType="String" resultMap="CmcSettleResult">
150
     <select id="selectCmcSettleBySettleId" parameterType="String" resultMap="CmcSettleResult">
148
         <include refid="selectCmcSettleVo"/>
151
         <include refid="selectCmcSettleVo"/>
152
+        group by s.settle_id
149
         where s.settle_id = #{settleId}
153
         where s.settle_id = #{settleId}
150
     </select>
154
     </select>
151
         
155
         

正在加载...
取消
保存