浏览代码

根据时间范围合同统计数据修正

lamphua 3 个月前
父节点
当前提交
0552080edf

+ 67
- 43
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcContractController.java 查看文件

99
         JSONObject paidMonthAmountObject = new JSONObject();
99
         JSONObject paidMonthAmountObject = new JSONObject();
100
         JSONArray paidSourceAmountArray = new JSONArray();
100
         JSONArray paidSourceAmountArray = new JSONArray();
101
         JSONObject paidSourceAmountObject = new JSONObject();
101
         JSONObject paidSourceAmountObject = new JSONObject();
102
-        int yearCount = 0;
103
-        int paidYearCount = 0;
104
-        BigDecimal yearAmount = new BigDecimal(0);
105
-        BigDecimal paidYearAmount = new BigDecimal(0);
102
+        int totalCount = 0;
103
+        int paidTotalCount = 0;
104
+        BigDecimal totalAmount = new BigDecimal(0);
105
+        BigDecimal paidTotalAmount = new BigDecimal(0);
106
+        String beginTime = "";
107
+        String endTime = "";
106
         //每年合同数量及金额
108
         //每年合同数量及金额
107
         if (cmcContract.getSignDate() == null) {
109
         if (cmcContract.getSignDate() == null) {
108
             if (cmcContract.getParams().size() == 0) {
110
             if (cmcContract.getParams().size() == 0) {
123
                             }
125
                             }
124
                         }
126
                         }
125
                     }
127
                     }
126
-                    yearCount += yearCountI;
127
-                    paidYearCount += paidYearCountI;
128
-                    yearAmount = yearAmount.add(yearAmountI);
129
-                    paidYearAmount = paidYearAmount.add(paidAmountI);
128
+                    totalCount += yearCountI;
129
+                    paidTotalCount += paidYearCountI;
130
+                    totalAmount = totalAmount.add(yearAmountI);
131
+                    paidTotalAmount = paidTotalAmount.add(paidAmountI);
130
                     yearCountObject.put(String.valueOf(i), yearCountI);
132
                     yearCountObject.put(String.valueOf(i), yearCountI);
131
                     paidYearCountObject.put(String.valueOf(i), paidYearCountI);
133
                     paidYearCountObject.put(String.valueOf(i), paidYearCountI);
132
                     yearAmountObject.put(String.valueOf(i), yearAmountI);
134
                     yearAmountObject.put(String.valueOf(i), yearAmountI);
134
                 }
136
                 }
135
             }
137
             }
136
             else {
138
             else {
137
-                String beginTime = (String) cmcContract.getParams().get("beginTime");
138
-                String endTime = (String) cmcContract.getParams().get("endTime");
139
+                beginTime = (String) cmcContract.getParams().get("beginTime");
140
+                endTime = (String) cmcContract.getParams().get("endTime");
139
                 List<String> monthList = DateUtils.getMonthBetweenDate(beginTime, endTime);
141
                 List<String> monthList = DateUtils.getMonthBetweenDate(beginTime, endTime);
140
                 for (int i = 0; i < monthList.size(); i++) {
142
                 for (int i = 0; i < monthList.size(); i++) {
141
                     String beginTimeString = monthList.get(i) + "-01";
143
                     String beginTimeString = monthList.get(i) + "-01";
143
                     calendar.set(Calendar.YEAR, Integer.parseInt(monthList.get(i).split("-")[0]));
145
                     calendar.set(Calendar.YEAR, Integer.parseInt(monthList.get(i).split("-")[0]));
144
                     calendar.set(Calendar.MONTH, Integer.parseInt(monthList.get(i).split("-")[1]) - 1);
146
                     calendar.set(Calendar.MONTH, Integer.parseInt(monthList.get(i).split("-")[1]) - 1);
145
                     String endTimeString = monthList.get(i) + "-" + calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
147
                     String endTimeString = monthList.get(i) + "-" + calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
146
-                    cmcContract.setSignDate(new SimpleDateFormat("yyyy").parse(beginTimeString));
147
                     Map<String, Object> params = new HashMap<>();
148
                     Map<String, Object> params = new HashMap<>();
148
                     params.put("beginTime", beginTimeString + " 00:00:00");
149
                     params.put("beginTime", beginTimeString + " 00:00:00");
149
                     params.put("endTime", endTimeString + " 23:59:59");
150
                     params.put("endTime", endTimeString + " 23:59:59");
157
                         if (contract.getAmount() != null) {
158
                         if (contract.getAmount() != null) {
158
                             monthAmount = monthAmount.add(contract.getAmount());
159
                             monthAmount = monthAmount.add(contract.getAmount());
159
                             if (contract.getPaidAmount() != null) {
160
                             if (contract.getPaidAmount() != null) {
160
-                                paidMonthAmount = paidYearAmount.add(contract.getPaidAmount());
161
+                                paidMonthAmount = paidMonthAmount.add(contract.getPaidAmount());
161
                                 if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
162
                                 if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
162
                                     paidMonthCount++;
163
                                     paidMonthCount++;
163
                             }
164
                             }
164
                         }
165
                         }
165
                     }
166
                     }
167
+                    totalCount += monthCount;
168
+                    paidTotalCount += paidMonthCount;
169
+                    totalAmount = totalAmount.add(monthAmount);
170
+                    paidTotalAmount = paidTotalAmount.add(paidMonthAmount);
166
                     monthCountObject.put(monthList.get(i), monthCount);
171
                     monthCountObject.put(monthList.get(i), monthCount);
167
                     monthAmountObject.put(monthList.get(i),monthAmount);
172
                     monthAmountObject.put(monthList.get(i),monthAmount);
168
                     paidMonthCountObject.put(monthList.get(i), paidMonthCount);
173
                     paidMonthCountObject.put(monthList.get(i), paidMonthCount);
173
         }
178
         }
174
         else if (cmcContract.getSignDate() != null) {
179
         else if (cmcContract.getSignDate() != null) {
175
             //输入年份合同数量及金额
180
             //输入年份合同数量及金额
176
-            yearCount = cmcContractService.selectCmcContractList(cmcContract).size();
177
-            yearCountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), yearCount);
181
+            totalCount = cmcContractService.selectCmcContractList(cmcContract).size();
182
+            yearCountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), totalCount);
178
             for (int i = 1; i <= 12; i++) {
183
             for (int i = 1; i <= 12; i++) {
179
                 String month = i < 10 ? "0" + i : String.valueOf(i);
184
                 String month = i < 10 ? "0" + i : String.valueOf(i);
180
                 String beginTimeString = new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()) + "-" + month + "-01";
185
                 String beginTimeString = new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()) + "-" + month + "-01";
182
                 calendar.set(Calendar.YEAR, Integer.parseInt(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate())));
187
                 calendar.set(Calendar.YEAR, Integer.parseInt(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate())));
183
                 calendar.set(Calendar.MONTH, i - 1);
188
                 calendar.set(Calendar.MONTH, i - 1);
184
                 String endTimeString = new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()) + "-" + month + "-" + calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
189
                 String endTimeString = new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()) + "-" + month + "-" + calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
185
-                cmcContract.setSignDate(new SimpleDateFormat("yyyy").parse(beginTimeString));
186
                 Map<String, Object> params = new HashMap<>();
190
                 Map<String, Object> params = new HashMap<>();
187
                 params.put("beginTime", beginTimeString + " 00:00:00");
191
                 params.put("beginTime", beginTimeString + " 00:00:00");
188
                 params.put("endTime", endTimeString + " 23:59:59");
192
                 params.put("endTime", endTimeString + " 23:59:59");
196
                     if (contract.getAmount() != null) {
200
                     if (contract.getAmount() != null) {
197
                         monthAmount = monthAmount.add(contract.getAmount());
201
                         monthAmount = monthAmount.add(contract.getAmount());
198
                         if (contract.getPaidAmount() != null) {
202
                         if (contract.getPaidAmount() != null) {
199
-                            paidMonthAmount = paidYearAmount.add(contract.getPaidAmount());
203
+                            paidMonthAmount = paidMonthAmount.add(contract.getPaidAmount());
200
                             if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
204
                             if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
201
                                 paidMonthCount++;
205
                                 paidMonthCount++;
202
                         }
206
                         }
208
                 paidMonthAmountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()) + "-" + month, paidMonthAmount);
212
                 paidMonthAmountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()) + "-" + month, paidMonthAmount);
209
             }
213
             }
210
             for (CmcContract contract : cmcContractService.selectCmcContractList(cmcContract)) {
214
             for (CmcContract contract : cmcContractService.selectCmcContractList(cmcContract)) {
211
-                if (contract.getAmount() != null)
212
-                    yearAmount = yearAmount.add(contract.getAmount());
213
-                if (contract.getPaidAmount() != null) {
214
-                    paidYearAmount = paidYearAmount.add(contract.getPaidAmount());
215
-                    if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
216
-                        paidYearCount ++;
215
+                if (contract.getAmount() != null) {
216
+                    totalAmount = totalAmount.add(contract.getAmount());
217
+                    if (contract.getPaidAmount() != null) {
218
+                        paidTotalAmount = paidTotalAmount.add(contract.getPaidAmount());
219
+                        if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
220
+                            paidTotalCount++;
221
+                    }
217
                 }
222
                 }
218
             }
223
             }
219
-            paidYearCountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), paidYearCount);
220
-            yearAmountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), yearAmount);
221
-            paidYearAmountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), paidYearAmount);
224
+            paidYearCountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), paidTotalCount);
225
+            yearAmountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), totalAmount);
226
+            paidYearAmountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), paidTotalAmount);
222
         }
227
         }
223
-        getProjectSourceStatistic(cmcContract, sourceCountObject, paidSourceCountObject, sourceAmountObject, paidSourceAmountObject, yearCount, paidYearCount, yearAmount, paidYearAmount);
228
+        getProjectSourceStatistic(cmcContract, sourceCountObject, paidSourceCountObject, sourceAmountObject, paidSourceAmountObject, totalCount, paidTotalCount, totalAmount, paidTotalAmount, beginTime, endTime);
224
         yearCountArray.add(yearCountObject);
229
         yearCountArray.add(yearCountObject);
225
         monthCountArray.add(monthCountObject);
230
         monthCountArray.add(monthCountObject);
226
         sourceCountArray.add(sourceCountObject);
231
         sourceCountArray.add(sourceCountObject);
340
 
345
 
341
     //院内外项目数量及金额
346
     //院内外项目数量及金额
342
     public void getProjectSourceStatistic(CmcContract cmcContract, JSONObject sourceCountObject, JSONObject paidSourceCountObject, JSONObject sourceAmountObject, JSONObject paidSourceAmountObject,
347
     public void getProjectSourceStatistic(CmcContract cmcContract, JSONObject sourceCountObject, JSONObject paidSourceCountObject, JSONObject sourceAmountObject, JSONObject paidSourceAmountObject,
343
-                                          int count, int paidCount, BigDecimal amount, BigDecimal paidAmount) {
348
+                                          int totalCount, int paidTotalCount, BigDecimal totalAmount, BigDecimal paidTotalAmount, String beginTime, String endTime) {
344
         int cCount;
349
         int cCount;
345
         int wCount;
350
         int wCount;
346
         int nCount;
351
         int nCount;
354
         BigDecimal paidWAmount = new BigDecimal(0);
359
         BigDecimal paidWAmount = new BigDecimal(0);
355
         BigDecimal paidNAmount;
360
         BigDecimal paidNAmount;
356
         cmcContract.setProjectSource("1");
361
         cmcContract.setProjectSource("1");
357
-        List<CmcContract> sourceList = cmcContractService.selectCmcContractList(cmcContract);
362
+        List<CmcContract> sourceList;
363
+        if (beginTime.equals(""))
364
+            sourceList = cmcContractService.selectCmcContractList(cmcContract);
365
+        else {
366
+            Map<String, Object> params = new HashMap<>();
367
+            params.put("beginTime", beginTime + " 00:00:00");
368
+            params.put("endTime", endTime + " 23:59:59");
369
+            cmcContract.setParams(params);
370
+            sourceList = cmcContractService.selectCmcContractListByRange(cmcContract);
371
+        }
358
         wCount = sourceList.size();
372
         wCount = sourceList.size();
359
         for (CmcContract contract : sourceList) {
373
         for (CmcContract contract : sourceList) {
360
-            if (contract.getAmount() != null)
374
+            if (contract.getAmount() != null) {
361
                 wAmount = wAmount.add(contract.getAmount());
375
                 wAmount = wAmount.add(contract.getAmount());
362
-            if (contract.getPaidAmount() != null) {
363
-                paidWAmount = paidWAmount.add(contract.getPaidAmount());
364
-                if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
365
-                    paidWCount ++;
376
+                if (contract.getPaidAmount() != null) {
377
+                    paidWAmount = paidWAmount.add(contract.getPaidAmount());
378
+                    if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
379
+                        paidWCount++;
380
+                }
366
             }
381
             }
367
         }
382
         }
368
-        nCount = count - wCount;
369
-        paidNCount = paidCount - wCount;
370
-        nAmount = amount.subtract(wAmount);
371
-        paidNAmount = paidAmount.subtract(paidWAmount);
383
+        nCount = totalCount - wCount;
384
+        paidNCount = paidTotalCount - wCount;
385
+        nAmount = totalAmount.subtract(wAmount);
386
+        paidNAmount = paidTotalAmount.subtract(paidWAmount);
372
         sourceCountObject.put("院外项目", wCount);
387
         sourceCountObject.put("院外项目", wCount);
373
         paidSourceCountObject.put("已完成回款院外项目", paidWCount);
388
         paidSourceCountObject.put("已完成回款院外项目", paidWCount);
374
         sourceAmountObject.put("院外项目承接金额", wAmount);
389
         sourceAmountObject.put("院外项目承接金额", wAmount);
375
         paidSourceAmountObject.put("院外项目回款金额", paidWAmount);
390
         paidSourceAmountObject.put("院外项目回款金额", paidWAmount);
376
         cmcContract.setProjectSource("0");
391
         cmcContract.setProjectSource("0");
377
-        sourceList = cmcContractService.selectCmcContractList(cmcContract);
392
+        if (beginTime.equals(""))
393
+            sourceList = cmcContractService.selectCmcContractList(cmcContract);
394
+        else {
395
+            Map<String, Object> params = new HashMap<>();
396
+            params.put("beginTime", beginTime + " 00:00:00");
397
+            params.put("endTime", endTime + " 23:59:59");
398
+            cmcContract.setParams(params);
399
+            sourceList = cmcContractService.selectCmcContractListByRange(cmcContract);
400
+        }
378
         cCount = sourceList.size();
401
         cCount = sourceList.size();
379
         for (CmcContract contract : sourceList) {
402
         for (CmcContract contract : sourceList) {
380
-            if (contract.getAmount() != null)
403
+            if (contract.getAmount() != null) {
381
                 cAmount = cAmount.add(contract.getAmount());
404
                 cAmount = cAmount.add(contract.getAmount());
382
-            if (contract.getPaidAmount() != null) {
383
-                paidCAmount = paidCAmount.add(contract.getPaidAmount());
384
-                if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
385
-                    paidCCount ++;
405
+                if (contract.getPaidAmount() != null) {
406
+                    paidCAmount = paidCAmount.add(contract.getPaidAmount());
407
+                    if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
408
+                        paidCCount++;
409
+                }
386
             }
410
             }
387
         }
411
         }
388
         nCount = nCount - cCount;
412
         nCount = nCount - cCount;

+ 67
- 43
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcSubContractController.java 查看文件

106
         JSONObject paidMonthAmountObject = new JSONObject();
106
         JSONObject paidMonthAmountObject = new JSONObject();
107
         JSONArray paidSourceAmountArray = new JSONArray();
107
         JSONArray paidSourceAmountArray = new JSONArray();
108
         JSONObject paidSourceAmountObject = new JSONObject();
108
         JSONObject paidSourceAmountObject = new JSONObject();
109
-        int yearCount = 0;
110
-        int paidYearCount = 0;
111
-        BigDecimal yearAmount = new BigDecimal(0);
112
-        BigDecimal paidYearAmount = new BigDecimal(0);
109
+        int totalCount = 0;
110
+        int paidTotalCount = 0;
111
+        BigDecimal totalAmount = new BigDecimal(0);
112
+        BigDecimal paidTotalAmount = new BigDecimal(0);
113
+        String beginTime = "";
114
+        String endTime = "";
113
         //每年合同数量及金额
115
         //每年合同数量及金额
114
         if (cmcSubContract.getSignDate() == null) {
116
         if (cmcSubContract.getSignDate() == null) {
115
             if (cmcSubContract.getParams().size() == 0) {
117
             if (cmcSubContract.getParams().size() == 0) {
130
                             }
132
                             }
131
                         }
133
                         }
132
                     }
134
                     }
133
-                    yearCount += yearCountI;
134
-                    paidYearCount += paidYearCountI;
135
-                    yearAmount = yearAmount.add(yearAmountI);
136
-                    paidYearAmount = paidYearAmount.add(paidAmountI);
135
+                    totalCount += yearCountI;
136
+                    paidTotalCount += paidYearCountI;
137
+                    totalAmount = totalAmount.add(yearAmountI);
138
+                    paidTotalAmount = paidTotalAmount.add(paidAmountI);
137
                     yearCountObject.put(String.valueOf(i), yearCountI);
139
                     yearCountObject.put(String.valueOf(i), yearCountI);
138
                     paidYearCountObject.put(String.valueOf(i), paidYearCountI);
140
                     paidYearCountObject.put(String.valueOf(i), paidYearCountI);
139
                     yearAmountObject.put(String.valueOf(i), yearAmountI);
141
                     yearAmountObject.put(String.valueOf(i), yearAmountI);
141
                 }
143
                 }
142
             }
144
             }
143
             else {
145
             else {
144
-                String beginTime = (String) cmcSubContract.getParams().get("beginTime");
145
-                String endTime = (String) cmcSubContract.getParams().get("endTime");
146
+                beginTime = (String) cmcSubContract.getParams().get("beginTime");
147
+                endTime = (String) cmcSubContract.getParams().get("endTime");
146
                 List<String> monthList = DateUtils.getMonthBetweenDate(beginTime, endTime);
148
                 List<String> monthList = DateUtils.getMonthBetweenDate(beginTime, endTime);
147
                 for (int i = 0; i < monthList.size(); i++) {
149
                 for (int i = 0; i < monthList.size(); i++) {
148
                     String beginTimeString = monthList.get(i) + "-01";
150
                     String beginTimeString = monthList.get(i) + "-01";
150
                     calendar.set(Calendar.YEAR, Integer.parseInt(monthList.get(i).split("-")[0]));
152
                     calendar.set(Calendar.YEAR, Integer.parseInt(monthList.get(i).split("-")[0]));
151
                     calendar.set(Calendar.MONTH, Integer.parseInt(monthList.get(i).split("-")[1]) - 1);
153
                     calendar.set(Calendar.MONTH, Integer.parseInt(monthList.get(i).split("-")[1]) - 1);
152
                     String endTimeString = monthList.get(i) + "-" + calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
154
                     String endTimeString = monthList.get(i) + "-" + calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
153
-                    cmcSubContract.setSignDate(new SimpleDateFormat("yyyy").parse(beginTimeString));
154
                     Map<String, Object> params = new HashMap<>();
155
                     Map<String, Object> params = new HashMap<>();
155
                     params.put("beginTime", beginTimeString + " 00:00:00");
156
                     params.put("beginTime", beginTimeString + " 00:00:00");
156
                     params.put("endTime", endTimeString + " 23:59:59");
157
                     params.put("endTime", endTimeString + " 23:59:59");
164
                         if (contract.getSubAmount() != null) {
165
                         if (contract.getSubAmount() != null) {
165
                             monthAmount = monthAmount.add(contract.getSubAmount());
166
                             monthAmount = monthAmount.add(contract.getSubAmount());
166
                             if (contract.getPaidAmount() != null) {
167
                             if (contract.getPaidAmount() != null) {
167
-                                paidMonthAmount = paidYearAmount.add(contract.getPaidAmount());
168
+                                paidMonthAmount = paidMonthAmount.add(contract.getPaidAmount());
168
                                 if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
169
                                 if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
169
                                     paidMonthCount++;
170
                                     paidMonthCount++;
170
                             }
171
                             }
171
                         }
172
                         }
172
                     }
173
                     }
174
+                    totalCount += monthCount;
175
+                    paidTotalCount += paidMonthCount;
176
+                    totalAmount = totalAmount.add(monthAmount);
177
+                    paidTotalAmount = paidTotalAmount.add(paidMonthAmount);
173
                     monthCountObject.put(monthList.get(i), monthCount);
178
                     monthCountObject.put(monthList.get(i), monthCount);
174
                     monthAmountObject.put(monthList.get(i),monthAmount);
179
                     monthAmountObject.put(monthList.get(i),monthAmount);
175
                     paidMonthCountObject.put(monthList.get(i), paidMonthCount);
180
                     paidMonthCountObject.put(monthList.get(i), paidMonthCount);
180
         }
185
         }
181
         else if (cmcSubContract.getSignDate() != null) {
186
         else if (cmcSubContract.getSignDate() != null) {
182
             //输入年份合同数量及金额
187
             //输入年份合同数量及金额
183
-            yearCount = cmcSubContractService.selectCmcSubContractList(cmcSubContract).size();
184
-            yearCountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()), yearCount);
188
+            totalCount = cmcSubContractService.selectCmcSubContractList(cmcSubContract).size();
189
+            yearCountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()), totalCount);
185
             for (int i = 1; i <= 12; i++) {
190
             for (int i = 1; i <= 12; i++) {
186
                 String month = i < 10 ? "0" + i : String.valueOf(i);
191
                 String month = i < 10 ? "0" + i : String.valueOf(i);
187
                 String beginTimeString = new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()) + "-" + month + "-01";
192
                 String beginTimeString = new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()) + "-" + month + "-01";
189
                 calendar.set(Calendar.YEAR, Integer.parseInt(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate())));
194
                 calendar.set(Calendar.YEAR, Integer.parseInt(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate())));
190
                 calendar.set(Calendar.MONTH, i - 1);
195
                 calendar.set(Calendar.MONTH, i - 1);
191
                 String endTimeString = new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()) + "-" + month + "-" + calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
196
                 String endTimeString = new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()) + "-" + month + "-" + calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
192
-                cmcSubContract.setSignDate(new SimpleDateFormat("yyyy").parse(beginTimeString));
193
                 Map<String, Object> params = new HashMap<>();
197
                 Map<String, Object> params = new HashMap<>();
194
                 params.put("beginTime", beginTimeString + " 00:00:00");
198
                 params.put("beginTime", beginTimeString + " 00:00:00");
195
                 params.put("endTime", endTimeString + " 23:59:59");
199
                 params.put("endTime", endTimeString + " 23:59:59");
203
                     if (contract.getSubAmount() != null) {
207
                     if (contract.getSubAmount() != null) {
204
                         monthAmount = monthAmount.add(contract.getSubAmount());
208
                         monthAmount = monthAmount.add(contract.getSubAmount());
205
                         if (contract.getPaidAmount() != null) {
209
                         if (contract.getPaidAmount() != null) {
206
-                            paidMonthAmount = paidYearAmount.add(contract.getPaidAmount());
210
+                            paidMonthAmount = paidMonthAmount.add(contract.getPaidAmount());
207
                             if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
211
                             if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
208
                                 paidMonthCount++;
212
                                 paidMonthCount++;
209
                         }
213
                         }
215
                 paidMonthAmountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()) + "-" + month, paidMonthAmount);
219
                 paidMonthAmountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()) + "-" + month, paidMonthAmount);
216
             }
220
             }
217
             for (CmcSubContract contract : cmcSubContractService.selectCmcSubContractList(cmcSubContract)) {
221
             for (CmcSubContract contract : cmcSubContractService.selectCmcSubContractList(cmcSubContract)) {
218
-                if (contract.getSubAmount() != null)
219
-                    yearAmount = yearAmount.add(contract.getSubAmount());
220
-                if (contract.getPaidAmount() != null) {
221
-                    paidYearAmount = paidYearAmount.add(contract.getPaidAmount());
222
-                    if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
223
-                        paidYearCount ++;
222
+                if (contract.getSubAmount() != null) {
223
+                    totalAmount = totalAmount.add(contract.getSubAmount());
224
+                    if (contract.getPaidAmount() != null) {
225
+                        paidTotalAmount = paidTotalAmount.add(contract.getPaidAmount());
226
+                        if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
227
+                            paidTotalCount++;
228
+                    }
224
                 }
229
                 }
225
             }
230
             }
226
-            paidYearCountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()), paidYearCount);
227
-            yearAmountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()), yearAmount);
228
-            paidYearAmountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()), paidYearAmount);
231
+            paidYearCountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()), paidTotalCount);
232
+            yearAmountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()), totalAmount);
233
+            paidYearAmountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()), paidTotalAmount);
229
         }
234
         }
230
-        getProjectSourceStatistic(cmcSubContract, sourceCountObject, paidSourceCountObject, sourceAmountObject, paidSourceAmountObject, yearCount, paidYearCount, yearAmount, paidYearAmount);
235
+        getProjectSourceStatistic(cmcSubContract, sourceCountObject, paidSourceCountObject, sourceAmountObject, paidSourceAmountObject, totalCount, paidTotalCount, totalAmount, paidTotalAmount, beginTime, endTime);
231
         yearCountArray.add(yearCountObject);
236
         yearCountArray.add(yearCountObject);
232
         monthCountArray.add(monthCountObject);
237
         monthCountArray.add(monthCountObject);
233
         sourceCountArray.add(sourceCountObject);
238
         sourceCountArray.add(sourceCountObject);
287
 
292
 
288
     //院内外项目数量及金额
293
     //院内外项目数量及金额
289
     public void getProjectSourceStatistic(CmcSubContract cmcSubContract, JSONObject sourceCountObject, JSONObject paidSourceCountObject, JSONObject sourceAmountObject, JSONObject paidSourceAmountObject,
294
     public void getProjectSourceStatistic(CmcSubContract cmcSubContract, JSONObject sourceCountObject, JSONObject paidSourceCountObject, JSONObject sourceAmountObject, JSONObject paidSourceAmountObject,
290
-                                          int count, int paidCount, BigDecimal amount, BigDecimal paidAmount) {
295
+                                          int totalCount, int paidTotalCount, BigDecimal totalAmount, BigDecimal paidTotalAmount, String beginTime, String endTime) {
291
         int cCount;
296
         int cCount;
292
         int wCount;
297
         int wCount;
293
         int nCount;
298
         int nCount;
301
         BigDecimal paidWAmount = new BigDecimal(0);
306
         BigDecimal paidWAmount = new BigDecimal(0);
302
         BigDecimal paidNAmount;
307
         BigDecimal paidNAmount;
303
         cmcSubContract.setProjectSource("1");
308
         cmcSubContract.setProjectSource("1");
304
-        List<CmcSubContract> sourceList = cmcSubContractService.selectCmcSubContractList(cmcSubContract);
309
+        List<CmcSubContract> sourceList;
310
+        if (beginTime.equals(""))
311
+            sourceList = cmcSubContractService.selectCmcSubContractList(cmcSubContract);
312
+        else {
313
+            Map<String, Object> params = new HashMap<>();
314
+            params.put("beginTime", beginTime + " 00:00:00");
315
+            params.put("endTime", endTime + " 23:59:59");
316
+            cmcSubContract.setParams(params);
317
+            sourceList = cmcSubContractService.selectCmcSubContractListByRange(cmcSubContract);
318
+        }
305
         wCount = sourceList.size();
319
         wCount = sourceList.size();
306
         for (CmcSubContract contract : sourceList) {
320
         for (CmcSubContract contract : sourceList) {
307
-            if (contract.getSubAmount() != null)
321
+            if (contract.getSubAmount() != null) {
308
                 wAmount = wAmount.add(contract.getSubAmount());
322
                 wAmount = wAmount.add(contract.getSubAmount());
309
-            if (contract.getPaidAmount() != null) {
310
-                paidWAmount = paidWAmount.add(contract.getPaidAmount());
311
-                if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
312
-                    paidWCount ++;
323
+                if (contract.getPaidAmount() != null) {
324
+                    paidWAmount = paidWAmount.add(contract.getPaidAmount());
325
+                    if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
326
+                        paidWCount++;
327
+                }
313
             }
328
             }
314
         }
329
         }
315
-        nCount = count - wCount;
316
-        paidNCount = paidCount - wCount;
317
-        nAmount = amount.subtract(wAmount);
318
-        paidNAmount = paidAmount.subtract(paidWAmount);
330
+        nCount = totalCount - wCount;
331
+        paidNCount = paidTotalCount - wCount;
332
+        nAmount = totalAmount.subtract(wAmount);
333
+        paidNAmount = paidTotalAmount.subtract(paidWAmount);
319
         sourceCountObject.put("院外项目", wCount);
334
         sourceCountObject.put("院外项目", wCount);
320
         paidSourceCountObject.put("已完成付款院外项目", paidWCount);
335
         paidSourceCountObject.put("已完成付款院外项目", paidWCount);
321
         sourceAmountObject.put("院外项目分包金额", wAmount);
336
         sourceAmountObject.put("院外项目分包金额", wAmount);
322
         paidSourceAmountObject.put("院外项目付款金额", paidWAmount);
337
         paidSourceAmountObject.put("院外项目付款金额", paidWAmount);
323
         cmcSubContract.setProjectSource("0");
338
         cmcSubContract.setProjectSource("0");
324
-        sourceList = cmcSubContractService.selectCmcSubContractList(cmcSubContract);
339
+        if (beginTime.equals(""))
340
+            sourceList = cmcSubContractService.selectCmcSubContractList(cmcSubContract);
341
+        else {
342
+            Map<String, Object> params = new HashMap<>();
343
+            params.put("beginTime", beginTime + " 00:00:00");
344
+            params.put("endTime", endTime + " 23:59:59");
345
+            cmcSubContract.setParams(params);
346
+            sourceList = cmcSubContractService.selectCmcSubContractListByRange(cmcSubContract);
347
+        }
325
         cCount = sourceList.size();
348
         cCount = sourceList.size();
326
         for (CmcSubContract contract : sourceList) {
349
         for (CmcSubContract contract : sourceList) {
327
-            if (contract.getSubAmount() != null)
350
+            if (contract.getSubAmount() != null) {
328
                 cAmount = cAmount.add(contract.getSubAmount());
351
                 cAmount = cAmount.add(contract.getSubAmount());
329
-            if (contract.getPaidAmount() != null) {
330
-                paidCAmount = paidCAmount.add(contract.getPaidAmount());
331
-                if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
332
-                    paidCCount ++;
352
+                if (contract.getPaidAmount() != null) {
353
+                    paidCAmount = paidCAmount.add(contract.getPaidAmount());
354
+                    if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
355
+                        paidCCount++;
356
+                }
333
             }
357
             }
334
         }
358
         }
335
         nCount = nCount - cCount;
359
         nCount = nCount - cCount;

正在加载...
取消
保存