瀏覽代碼

结算统计优化

lamphua 7 月之前
父節點
當前提交
eff6910b4e

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

@@ -103,14 +103,8 @@ public class CmcSettleController extends BaseController
103 103
                 yearObject.put(String.valueOf(i), yearList.size());
104 104
                 BigDecimal amount = new BigDecimal(0);
105 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 109
                 amountObject.put(String.valueOf(i), amount);
116 110
             }
@@ -120,14 +114,8 @@ public class CmcSettleController extends BaseController
120 114
             yearObject.put(new SimpleDateFormat("yyyy").format(cmcSettle.getGmTime()), cmcSettleService.selectCmcSettleList(cmcSettle).size());
121 115
             BigDecimal amount = new BigDecimal(0);
122 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 120
             amountObject.put(new SimpleDateFormat("yyyy").format(cmcSettle.getGmTime()), amount);
133 121
         }
@@ -189,29 +177,17 @@ public class CmcSettleController extends BaseController
189 177
         typeObject.put("项目结算", typeList.size());
190 178
         BigDecimal pAmount = new BigDecimal(0);
191 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 183
         typeAmountObject.put("项目结算", pAmount);
202 184
         for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
203 185
             BigDecimal pyAmount = new BigDecimal(0);
204 186
             int count = 0;
205 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 193
             yearProjectCountObject.put(i + "项目", count);
@@ -223,14 +199,8 @@ public class CmcSettleController extends BaseController
223 199
         typeObject.put("其他结算", typeList.size());
224 200
         BigDecimal oAmount = new BigDecimal(0);
225 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 205
         typeAmountObject.put("其他结算", oAmount);
236 206
     }

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

@@ -1,5 +1,6 @@
1 1
 package com.ruoyi.oa.domain;
2 2
 
3
+import java.math.BigDecimal;
3 4
 import java.util.Date;
4 5
 import com.fasterxml.jackson.annotation.JsonFormat;
5 6
 import com.ruoyi.common.core.domain.entity.SysDept;
@@ -35,6 +36,10 @@ public class CmcSettle extends BaseEntity
35 36
     @Excel(name = "其他项目名称")
36 37
     private String xmName;
37 38
 
39
+    /** 实际结算总金额 */
40
+    @Excel(name = "实际结算总金额")
41
+    private BigDecimal amount;
42
+
38 43
     /** 工作量上报说明 */
39 44
     @Excel(name = "工作量上报说明")
40 45
     private String workloadReport;
@@ -542,6 +547,16 @@ public class CmcSettle extends BaseEntity
542 547
     {
543 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 561
     @Override
547 562
     public String toString() {

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

@@ -36,6 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
36 36
         <result property="settleDocument"    column="settle_document"    />
37 37
         <result property="modifyDocument"    column="modify_document"    />
38 38
         <result property="finalDocument"    column="final_document"    />
39
+        <result property="amount"    column="amount"    />
39 40
         <association property="reportUser"    javaType="SysUser"         resultMap="ReportUserResult" />
40 41
         <association property="zhUser"    javaType="SysUser"         resultMap="ZhUserResult" />
41 42
         <association property="jsUser"    javaType="SysUser"         resultMap="JsUserResult" />
@@ -95,9 +96,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
95 96
     </resultMap>
96 97
 
97 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 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 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 103
         left join sys_user as u on u.user_id = s.reporter
103 104
         left join sys_user as u1 on u1.user_id = s.zh_user_id
@@ -108,12 +109,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
108 109
         left join sys_user as u6 on u6.user_id = s.dsz_user_id
109 110
         left join cmc_project as p on p.project_id = s.project_id
110 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 113
     </sql>
112 114
 
113 115
     <select id="selectCmcSettleList" parameterType="CmcSettle" resultMap="CmcSettleResult">
114 116
         <include refid="selectCmcSettleVo"/>
115 117
         <where>
116
-
118
+            ss.content = '实际结算总金额'
117 119
             <if test="settleId != null  and settleId != ''"> and s.settle_id = #{settleId}</if>
118 120
             <if test="projectId != null"> and s.project_id = #{projectId}</if>
119 121
             <if test="projectNumber != null  and projectNumber != ''"> and p.project_number like concat('%', #{projectNumber}, '%')</if>
@@ -141,11 +143,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
141 143
             <if test="gmTime != null and @com.ruoyi.common.utils.DateUtils@parseDateToStr('yyyy', gmTime) != '2000' "> and YEAR(s.gm_time) = YEAR(#{gmTime})</if>
142 144
             <if test="gmComment != null  and gmComment != ''"> and s.gm_comment = #{gmComment}</if>
143 145
         </where>
146
+        group by s.settle_id
144 147
         order by s.report_time desc
145 148
     </select>
146 149
     
147 150
     <select id="selectCmcSettleBySettleId" parameterType="String" resultMap="CmcSettleResult">
148 151
         <include refid="selectCmcSettleVo"/>
152
+        group by s.settle_id
149 153
         where s.settle_id = #{settleId}
150 154
     </select>
151 155
         

Loading…
取消
儲存