|
@@ -106,10 +106,12 @@ public class CmcSubContractController extends BaseController
|
106
|
106
|
JSONObject paidMonthAmountObject = new JSONObject();
|
107
|
107
|
JSONArray paidSourceAmountArray = new JSONArray();
|
108
|
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
|
116
|
if (cmcSubContract.getSignDate() == null) {
|
115
|
117
|
if (cmcSubContract.getParams().size() == 0) {
|
|
@@ -130,10 +132,10 @@ public class CmcSubContractController extends BaseController
|
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
|
139
|
yearCountObject.put(String.valueOf(i), yearCountI);
|
138
|
140
|
paidYearCountObject.put(String.valueOf(i), paidYearCountI);
|
139
|
141
|
yearAmountObject.put(String.valueOf(i), yearAmountI);
|
|
@@ -141,8 +143,8 @@ public class CmcSubContractController extends BaseController
|
141
|
143
|
}
|
142
|
144
|
}
|
143
|
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
|
148
|
List<String> monthList = DateUtils.getMonthBetweenDate(beginTime, endTime);
|
147
|
149
|
for (int i = 0; i < monthList.size(); i++) {
|
148
|
150
|
String beginTimeString = monthList.get(i) + "-01";
|
|
@@ -150,7 +152,6 @@ public class CmcSubContractController extends BaseController
|
150
|
152
|
calendar.set(Calendar.YEAR, Integer.parseInt(monthList.get(i).split("-")[0]));
|
151
|
153
|
calendar.set(Calendar.MONTH, Integer.parseInt(monthList.get(i).split("-")[1]) - 1);
|
152
|
154
|
String endTimeString = monthList.get(i) + "-" + calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
|
153
|
|
- cmcSubContract.setSignDate(new SimpleDateFormat("yyyy").parse(beginTimeString));
|
154
|
155
|
Map<String, Object> params = new HashMap<>();
|
155
|
156
|
params.put("beginTime", beginTimeString + " 00:00:00");
|
156
|
157
|
params.put("endTime", endTimeString + " 23:59:59");
|
|
@@ -164,12 +165,16 @@ public class CmcSubContractController extends BaseController
|
164
|
165
|
if (contract.getSubAmount() != null) {
|
165
|
166
|
monthAmount = monthAmount.add(contract.getSubAmount());
|
166
|
167
|
if (contract.getPaidAmount() != null) {
|
167
|
|
- paidMonthAmount = paidYearAmount.add(contract.getPaidAmount());
|
|
168
|
+ paidMonthAmount = paidMonthAmount.add(contract.getPaidAmount());
|
168
|
169
|
if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
|
169
|
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
|
178
|
monthCountObject.put(monthList.get(i), monthCount);
|
174
|
179
|
monthAmountObject.put(monthList.get(i),monthAmount);
|
175
|
180
|
paidMonthCountObject.put(monthList.get(i), paidMonthCount);
|
|
@@ -180,8 +185,8 @@ public class CmcSubContractController extends BaseController
|
180
|
185
|
}
|
181
|
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
|
190
|
for (int i = 1; i <= 12; i++) {
|
186
|
191
|
String month = i < 10 ? "0" + i : String.valueOf(i);
|
187
|
192
|
String beginTimeString = new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()) + "-" + month + "-01";
|
|
@@ -189,7 +194,6 @@ public class CmcSubContractController extends BaseController
|
189
|
194
|
calendar.set(Calendar.YEAR, Integer.parseInt(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate())));
|
190
|
195
|
calendar.set(Calendar.MONTH, i - 1);
|
191
|
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
|
197
|
Map<String, Object> params = new HashMap<>();
|
194
|
198
|
params.put("beginTime", beginTimeString + " 00:00:00");
|
195
|
199
|
params.put("endTime", endTimeString + " 23:59:59");
|
|
@@ -203,7 +207,7 @@ public class CmcSubContractController extends BaseController
|
203
|
207
|
if (contract.getSubAmount() != null) {
|
204
|
208
|
monthAmount = monthAmount.add(contract.getSubAmount());
|
205
|
209
|
if (contract.getPaidAmount() != null) {
|
206
|
|
- paidMonthAmount = paidYearAmount.add(contract.getPaidAmount());
|
|
210
|
+ paidMonthAmount = paidMonthAmount.add(contract.getPaidAmount());
|
207
|
211
|
if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
|
208
|
212
|
paidMonthCount++;
|
209
|
213
|
}
|
|
@@ -215,19 +219,20 @@ public class CmcSubContractController extends BaseController
|
215
|
219
|
paidMonthAmountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()) + "-" + month, paidMonthAmount);
|
216
|
220
|
}
|
217
|
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
|
236
|
yearCountArray.add(yearCountObject);
|
232
|
237
|
monthCountArray.add(monthCountObject);
|
233
|
238
|
sourceCountArray.add(sourceCountObject);
|
|
@@ -287,7 +292,7 @@ public class CmcSubContractController extends BaseController
|
287
|
292
|
|
288
|
293
|
//院内外项目数量及金额
|
289
|
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
|
296
|
int cCount;
|
292
|
297
|
int wCount;
|
293
|
298
|
int nCount;
|
|
@@ -301,35 +306,54 @@ public class CmcSubContractController extends BaseController
|
301
|
306
|
BigDecimal paidWAmount = new BigDecimal(0);
|
302
|
307
|
BigDecimal paidNAmount;
|
303
|
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
|
319
|
wCount = sourceList.size();
|
306
|
320
|
for (CmcSubContract contract : sourceList) {
|
307
|
|
- if (contract.getSubAmount() != null)
|
|
321
|
+ if (contract.getSubAmount() != null) {
|
308
|
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
|
334
|
sourceCountObject.put("院外项目", wCount);
|
320
|
335
|
paidSourceCountObject.put("已完成付款院外项目", paidWCount);
|
321
|
336
|
sourceAmountObject.put("院外项目分包金额", wAmount);
|
322
|
337
|
paidSourceAmountObject.put("院外项目付款金额", paidWAmount);
|
323
|
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
|
348
|
cCount = sourceList.size();
|
326
|
349
|
for (CmcSubContract contract : sourceList) {
|
327
|
|
- if (contract.getSubAmount() != null)
|
|
350
|
+ if (contract.getSubAmount() != null) {
|
328
|
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
|
359
|
nCount = nCount - cCount;
|