소스 검색

分包合同按月统计

lamphua 2 달 전
부모
커밋
5acd774076

+ 134
- 117
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcContractController.java 파일 보기

@@ -10,6 +10,7 @@ import javax.servlet.http.HttpServletResponse;
10 10
 import com.alibaba.fastjson2.JSON;
11 11
 import com.alibaba.fastjson2.JSONArray;
12 12
 import com.alibaba.fastjson2.JSONObject;
13
+import com.ruoyi.common.utils.DateUtils;
13 14
 import com.ruoyi.oa.domain.*;
14 15
 import com.ruoyi.oa.service.*;
15 16
 import org.apache.poi.hpsf.Decimal;
@@ -74,61 +75,68 @@ public class CmcContractController extends BaseController
74 75
     @GetMapping("/statistic")
75 76
     public AjaxResult getContractStatistic(CmcContract cmcContract) throws ParseException {
76 77
         JSONObject jsonObject = new JSONObject();
77
-        JSONArray yearArray = new JSONArray();
78
-        JSONObject yearObject = new JSONObject();
79
-        JSONArray monthArray = new JSONArray();
80
-        JSONObject monthObject = new JSONObject();
81
-        JSONArray sourceArray = new JSONArray();
82
-        JSONObject sourceObject = new JSONObject();
83
-        JSONArray amountArray = new JSONArray();
84
-        JSONObject amountObject = new JSONObject();
85
-        JSONArray cwAmountArray = new JSONArray();
86
-        JSONObject cwAmountObject = new JSONObject();
87
-        JSONArray paidYearArray = new JSONArray();
88
-        JSONObject paidYearObject = new JSONObject();
89
-        JSONArray paidSourceArray = new JSONArray();
90
-        JSONObject paidSourceObject = new JSONObject();
91
-        JSONArray paidAmountArray = new JSONArray();
92
-        JSONObject paidAmountObject = new JSONObject();
93
-        JSONArray paidCwAmountArray = new JSONArray();
94
-        JSONObject paidCwAmountObject = new JSONObject();
95
-        int count = 0;
96
-        int paidCount = 0;
97
-        BigDecimal amount = new BigDecimal(0);
98
-        BigDecimal paidAmount = new BigDecimal(0);
78
+        JSONArray yearCountArray = new JSONArray();
79
+        JSONObject yearCountObject = new JSONObject();
80
+        JSONArray monthCountArray = new JSONArray();
81
+        JSONObject monthCountObject = new JSONObject();
82
+        JSONArray sourceCountArray = new JSONArray();
83
+        JSONObject sourceCountObject = new JSONObject();
84
+        JSONArray yearAmountArray = new JSONArray();
85
+        JSONObject yearAmountObject = new JSONObject();
86
+        JSONArray monthAmountArray = new JSONArray();
87
+        JSONObject monthAmountObject = new JSONObject();
88
+        JSONArray sourceAmountArray = new JSONArray();
89
+        JSONObject sourceAmountObject = new JSONObject();
90
+        JSONArray paidYearCountArray = new JSONArray();
91
+        JSONObject paidYearCountObject = new JSONObject();
92
+        JSONArray paidMonthCountArray = new JSONArray();
93
+        JSONObject paidMonthCountObject = new JSONObject();
94
+        JSONArray paidSourceCountArray = new JSONArray();
95
+        JSONObject paidSourceCountObject = new JSONObject();
96
+        JSONArray paidYearAmountArray = new JSONArray();
97
+        JSONObject paidYearAmountObject = new JSONObject();
98
+        JSONArray paidMonthAmountArray = new JSONArray();
99
+        JSONObject paidMonthAmountObject = new JSONObject();
100
+        JSONArray paidSourceAmountArray = new JSONArray();
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);
99 106
         //每年合同数量及金额
100 107
         if (cmcContract.getSignDate() == null) {
101 108
             if (cmcContract.getParams().size() == 0) {
102 109
                 for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
103 110
                     cmcContract.setSignDate(new SimpleDateFormat("yyyy").parse(String.valueOf(i)));
104
-                    List<CmcContract> yearList = cmcContractService.selectCmcContractList(cmcContract);
105
-                    int countI = yearList.size();
106
-                    count += countI;
107
-                    yearObject.put(String.valueOf(i), countI);
108
-                    int paidCountI = 0;
109
-                    BigDecimal amountI = new BigDecimal(0);
111
+                    List<CmcContract> yearContractList = cmcContractService.selectCmcContractList(cmcContract);
112
+                    int yearCountI = yearContractList.size();
113
+                    int paidYearCountI = 0;
114
+                    BigDecimal yearAmountI = new BigDecimal(0);
110 115
                     BigDecimal paidAmountI = new BigDecimal(0);
111
-                    for (CmcContract contract : yearList) {
112
-                        if (contract.getAmount() != null)
113
-                            amountI = amountI.add(contract.getAmount());
114
-                        if (contract.getPaidAmount() != null) {
115
-                            paidAmountI = paidAmountI.add(contract.getPaidAmount());
116
-                            if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
117
-                                paidCountI++;
116
+                    for (CmcContract contract : yearContractList) {
117
+                        if (contract.getAmount() != null) {
118
+                            yearAmountI = yearAmountI.add(contract.getAmount());
119
+                            if (contract.getPaidAmount() != null) {
120
+                                paidAmountI = paidAmountI.add(contract.getPaidAmount());
121
+                                if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
122
+                                    paidYearCountI++;
123
+                            }
118 124
                         }
119 125
                     }
120
-                    paidCount += paidCountI;
121
-                    amount = amount.add(amountI);
122
-                    paidAmount = paidAmount.add(paidAmountI);
123
-                    paidYearObject.put(String.valueOf(i), paidCountI);
124
-                    amountObject.put(String.valueOf(i), amountI);
125
-                    paidAmountObject.put(String.valueOf(i), paidAmountI);
126
+                    yearCount += yearCountI;
127
+                    paidYearCount += paidYearCountI;
128
+                    yearAmount = yearAmount.add(yearAmountI);
129
+                    paidYearAmount = paidYearAmount.add(paidAmountI);
130
+                    yearCountObject.put(String.valueOf(i), yearCountI);
131
+                    paidYearCountObject.put(String.valueOf(i), paidYearCountI);
132
+                    yearAmountObject.put(String.valueOf(i), yearAmountI);
133
+                    paidYearAmountObject.put(String.valueOf(i), paidAmountI);
126 134
                 }
127 135
             }
128 136
             else {
129 137
                 String beginTime = (String) cmcContract.getParams().get("beginTime");
130 138
                 String endTime = (String) cmcContract.getParams().get("endTime");
131
-                List<String> monthList = getMonthBetweenDate(beginTime, endTime);
139
+                List<String> monthList = DateUtils.getMonthBetweenDate(beginTime, endTime);
132 140
                 for (int i = 0; i < monthList.size(); i++) {
133 141
                     String beginTimeString = monthList.get(i) + "-01";
134 142
                     Calendar calendar = Calendar.getInstance();
@@ -140,15 +148,33 @@ public class CmcContractController extends BaseController
140 148
                     params.put("beginTime", beginTimeString + " 00:00:00");
141 149
                     params.put("endTime", endTimeString + " 23:59:59");
142 150
                     cmcContract.setParams(params);
143
-                    monthObject.put(monthList.get(i) + "月", cmcContractService.selectCmcContractListByRange(cmcContract).size());
151
+                    List<CmcContract> monthContractList = cmcContractService.selectCmcContractListByRange(cmcContract);
152
+                    int monthCount = monthContractList.size();
153
+                    int paidMonthCount = 0;
154
+                    BigDecimal monthAmount = new BigDecimal(0);
155
+                    BigDecimal paidMonthAmount = new BigDecimal(0);
156
+                    for (CmcContract contract : monthContractList) {
157
+                        if (contract.getAmount() != null) {
158
+                            monthAmount = monthAmount.add(contract.getAmount());
159
+                            if (contract.getPaidAmount() != null) {
160
+                                paidMonthAmount = paidYearAmount.add(contract.getPaidAmount());
161
+                                if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
162
+                                    paidMonthCount++;
163
+                            }
164
+                        }
165
+                    }
166
+                    monthCountObject.put(monthList.get(i), monthCount);
167
+                    monthAmountObject.put(monthList.get(i),monthAmount);
168
+                    paidMonthCountObject.put(monthList.get(i), paidMonthCount);
169
+                    paidMonthAmountObject.put(monthList.get(i), paidMonthAmount);
144 170
                 }
145 171
             }
146 172
             cmcContract.setSignDate(null);
147 173
         }
148 174
         else if (cmcContract.getSignDate() != null) {
149 175
             //输入年份合同数量及金额
150
-            count = cmcContractService.selectCmcContractList(cmcContract).size();
151
-            yearObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), count);
176
+            yearCount = cmcContractService.selectCmcContractList(cmcContract).size();
177
+            yearCountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), yearCount);
152 178
             for (int i = 1; i <= 12; i++) {
153 179
                 String month = i < 10 ? "0" + i : String.valueOf(i);
154 180
                 String beginTimeString = new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()) + "-" + month + "-01";
@@ -161,40 +187,64 @@ public class CmcContractController extends BaseController
161 187
                 params.put("beginTime", beginTimeString + " 00:00:00");
162 188
                 params.put("endTime", endTimeString + " 23:59:59");
163 189
                 cmcContract.setParams(params);
164
-                monthObject.put(i + "月", cmcContractService.selectCmcContractListByRange(cmcContract).size());
190
+                List<CmcContract> monthContractList = cmcContractService.selectCmcContractListByRange(cmcContract);
191
+                int monthCount = monthContractList.size();
192
+                int paidMonthCount = 0;
193
+                BigDecimal monthAmount = new BigDecimal(0);
194
+                BigDecimal paidMonthAmount = new BigDecimal(0);
195
+                for (CmcContract contract : monthContractList) {
196
+                    if (contract.getAmount() != null) {
197
+                        monthAmount = monthAmount.add(contract.getAmount());
198
+                        if (contract.getPaidAmount() != null) {
199
+                            paidMonthAmount = paidYearAmount.add(contract.getPaidAmount());
200
+                            if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
201
+                                paidMonthCount++;
202
+                        }
203
+                    }
204
+                }
205
+                monthCountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()) + "-" + month, monthCount);
206
+                monthAmountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()) + "-" + month,monthAmount);
207
+                paidMonthCountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()) + "-" + month, paidMonthCount);
208
+                paidMonthAmountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()) + "-" + month, paidMonthAmount);
165 209
             }
166 210
             for (CmcContract contract : cmcContractService.selectCmcContractList(cmcContract)) {
167 211
                 if (contract.getAmount() != null)
168
-                    amount = amount.add(contract.getAmount());
212
+                    yearAmount = yearAmount.add(contract.getAmount());
169 213
                 if (contract.getPaidAmount() != null) {
170
-                    paidAmount = paidAmount.add(contract.getPaidAmount());
214
+                    paidYearAmount = paidYearAmount.add(contract.getPaidAmount());
171 215
                     if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
172
-                        paidCount ++;
216
+                        paidYearCount ++;
173 217
                 }
174 218
             }
175
-            paidYearObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), paidCount);
176
-            amountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), amount);
177
-            paidAmountObject.put(new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()), paidAmount);
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);
178 222
         }
179
-        getProjectSourceStatistic(cmcContract, sourceObject, paidSourceObject, cwAmountObject, paidCwAmountObject, count, paidCount, amount, paidAmount);
180
-        yearArray.add(yearObject);
181
-        monthArray.add(monthObject);
182
-        sourceArray.add(sourceObject);
183
-        amountArray.add(amountObject);
184
-        cwAmountArray.add(cwAmountObject);
185
-        paidYearArray.add(paidYearObject);
186
-        paidSourceArray.add(paidSourceObject);
187
-        paidAmountArray.add(paidAmountObject);
188
-        paidCwAmountArray.add(paidCwAmountObject);
189
-        jsonObject.put("year", yearArray);
190
-        jsonObject.put("month", monthArray);
191
-        jsonObject.put("source", sourceArray);
192
-        jsonObject.put("amount", amountArray);
193
-        jsonObject.put("cwAmount", cwAmountArray);
194
-        jsonObject.put("paidYear", paidYearArray);
195
-        jsonObject.put("paidSource", paidSourceArray);
196
-        jsonObject.put("paidAmount", paidAmountArray);
197
-        jsonObject.put("paidCwAmount", paidCwAmountArray);
223
+        getProjectSourceStatistic(cmcContract, sourceCountObject, paidSourceCountObject, sourceAmountObject, paidSourceAmountObject, yearCount, paidYearCount, yearAmount, paidYearAmount);
224
+        yearCountArray.add(yearCountObject);
225
+        monthCountArray.add(monthCountObject);
226
+        sourceCountArray.add(sourceCountObject);
227
+        yearAmountArray.add(yearAmountObject);
228
+        monthAmountArray.add(monthAmountObject);
229
+        sourceAmountArray.add(sourceAmountObject);
230
+        paidYearCountArray.add(paidYearCountObject);
231
+        paidMonthCountArray.add(paidMonthCountObject);
232
+        paidSourceCountArray.add(paidSourceCountObject);
233
+        paidYearAmountArray.add(paidYearAmountObject);
234
+        paidMonthAmountArray.add(paidMonthAmountObject);
235
+        paidSourceAmountArray.add(paidSourceAmountObject);
236
+        jsonObject.put("yearCount", yearCountArray);
237
+        jsonObject.put("monthCount", monthCountArray);
238
+        jsonObject.put("sourceCount", sourceCountArray);
239
+        jsonObject.put("yearAmount", yearAmountArray);
240
+        jsonObject.put("monthAmount", monthAmountArray);
241
+        jsonObject.put("sourceAmount", sourceAmountArray);
242
+        jsonObject.put("paidYearCount", paidYearCountArray);
243
+        jsonObject.put("paidMonthCount", paidMonthCountArray);
244
+        jsonObject.put("paidSourceCount", paidSourceCountArray);
245
+        jsonObject.put("paidYearAmount", paidYearAmountArray);
246
+        jsonObject.put("paidMonthAmount", paidMonthAmountArray);
247
+        jsonObject.put("paidSourceAmount", paidSourceAmountArray);
198 248
         return success(jsonObject);
199 249
     }
200 250
 
@@ -289,7 +339,7 @@ public class CmcContractController extends BaseController
289 339
     }
290 340
 
291 341
     //院内外项目数量及金额
292
-    public void getProjectSourceStatistic(CmcContract cmcContract, JSONObject sourceObject, JSONObject paidSourceObject, JSONObject cwAmountObject, JSONObject paidCwAmountObject,
342
+    public void getProjectSourceStatistic(CmcContract cmcContract, JSONObject sourceCountObject, JSONObject paidSourceCountObject, JSONObject sourceAmountObject, JSONObject paidSourceAmountObject,
293 343
                                           int count, int paidCount, BigDecimal amount, BigDecimal paidAmount) {
294 344
         int cCount;
295 345
         int wCount;
@@ -319,10 +369,10 @@ public class CmcContractController extends BaseController
319 369
         paidNCount = paidCount - wCount;
320 370
         nAmount = amount.subtract(wAmount);
321 371
         paidNAmount = paidAmount.subtract(paidWAmount);
322
-        sourceObject.put("院外项目", wCount);
323
-        paidSourceObject.put("已完成回款院外项目", paidWCount);
324
-        cwAmountObject.put("院外项目承接金额", wAmount);
325
-        paidCwAmountObject.put("院外项目回款金额", paidWAmount);
372
+        sourceCountObject.put("院外项目", wCount);
373
+        paidSourceCountObject.put("已完成回款院外项目", paidWCount);
374
+        sourceAmountObject.put("院外项目承接金额", wAmount);
375
+        paidSourceAmountObject.put("院外项目回款金额", paidWAmount);
326 376
         cmcContract.setProjectSource("0");
327 377
         sourceList = cmcContractService.selectCmcContractList(cmcContract);
328 378
         cCount = sourceList.size();
@@ -339,48 +389,15 @@ public class CmcContractController extends BaseController
339 389
         paidNCount = paidNCount - cCount;
340 390
         nAmount = nAmount.subtract(cAmount);
341 391
         paidNAmount = paidNAmount.subtract(paidCAmount);
342
-        sourceObject.put("院内项目", cCount);
343
-        paidSourceObject.put("已完成回款院内项目", paidCCount);
344
-        cwAmountObject.put("院内项目承接金额", cAmount);
345
-        paidCwAmountObject.put("院内项目回款金额", paidCAmount);
392
+        sourceCountObject.put("院内项目", cCount);
393
+        paidSourceCountObject.put("已完成回款院内项目", paidCCount);
394
+        sourceAmountObject.put("院内项目承接金额", cAmount);
395
+        paidSourceAmountObject.put("院内项目回款金额", paidCAmount);
346 396
         cmcContract.setProjectSource(null);
347
-        sourceObject.put("未关联项目", nCount);
348
-        paidSourceObject.put("已完成回款未关联项目", paidNCount);
349
-        cwAmountObject.put("未关联项目承接金额", nAmount);
350
-        paidCwAmountObject.put("未关联项目回款金额", paidNAmount);
351
-    }
352
-    /**
353
-     * 获取两个日期之间的所有月份 (年月)
354
-     *
355
-     * @param startTime
356
-     * @param endTime
357
-     * @return:YYYY-MM
358
-     */
359
-    public static List<String> getMonthBetweenDate(String startTime, String endTime){
360
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
361
-        // 声明保存日期集合
362
-        List<String> list = new ArrayList<String>();
363
-        try {
364
-            // 转化成日期类型
365
-            Date startDate = sdf.parse(startTime);
366
-            Date endDate = sdf.parse(endTime);
367
-
368
-            //用Calendar 进行日期比较判断
369
-            Calendar calendar = Calendar.getInstance();
370
-            while (startDate.getTime()<=endDate.getTime()){
371
-                // 把日期添加到集合
372
-                list.add(sdf.format(startDate));
373
-                // 设置日期
374
-                calendar.setTime(startDate);
375
-                //把日期增加一天
376
-                calendar.add(Calendar.MONTH, 1);
377
-                // 获取增加后的日期
378
-                startDate=calendar.getTime();
379
-            }
380
-        } catch (ParseException e) {
381
-            e.printStackTrace();
382
-        }
383
-        return list;
397
+        sourceCountObject.put("未关联项目", nCount);
398
+        paidSourceCountObject.put("已完成回款未关联项目", paidNCount);
399
+        sourceAmountObject.put("未关联项目承接金额", nAmount);
400
+        paidSourceAmountObject.put("未关联项目回款金额", paidNAmount);
384 401
     }
385 402
 
386 403
 }

+ 210
- 97
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcSubContractController.java 파일 보기

@@ -3,17 +3,15 @@ package com.ruoyi.web.controller.oa;
3 3
 import java.math.BigDecimal;
4 4
 import java.text.ParseException;
5 5
 import java.text.SimpleDateFormat;
6
-import java.util.Calendar;
7
-import java.util.Date;
8
-import java.util.List;
6
+import java.util.*;
9 7
 import javax.servlet.http.HttpServletResponse;
10 8
 
11 9
 import com.alibaba.fastjson2.JSONArray;
12 10
 import com.alibaba.fastjson2.JSONObject;
11
+import com.ruoyi.common.utils.DateUtils;
13 12
 import com.ruoyi.common.utils.SnowFlake;
13
+import com.ruoyi.oa.domain.*;
14 14
 import com.ruoyi.oa.domain.CmcSubContract;
15
-import com.ruoyi.oa.domain.CmcSubContract;
16
-import com.ruoyi.oa.domain.CmcPartner;
17 15
 import com.ruoyi.oa.service.ICmcPartnerService;
18 16
 import org.springframework.beans.factory.annotation.Autowired;
19 17
 import org.springframework.web.bind.annotation.GetMapping;
@@ -84,82 +82,176 @@ public class CmcSubContractController extends BaseController
84 82
     @GetMapping("/statistic")
85 83
     public AjaxResult getSubContractStatistic(CmcSubContract cmcSubContract) throws ParseException {
86 84
         JSONObject jsonObject = new JSONObject();
87
-        JSONArray yearArray = new JSONArray();
88
-        JSONObject yearObject = new JSONObject();
89
-        JSONArray sourceArray = new JSONArray();
90
-        JSONObject sourceObject = new JSONObject();
91
-        JSONArray amountArray = new JSONArray();
92
-        JSONObject amountObject = new JSONObject();
93
-        JSONArray cwAmountArray = new JSONArray();
94
-        JSONObject cwAmountObject = new JSONObject();
95
-        JSONArray paidYearArray = new JSONArray();
96
-        JSONObject paidYearObject = new JSONObject();
97
-        JSONArray paidSourceArray = new JSONArray();
98
-        JSONObject paidSourceObject = new JSONObject();
99
-        JSONArray paidAmountArray = new JSONArray();
100
-        JSONObject paidAmountObject = new JSONObject();
101
-        JSONArray paidCwAmountArray = new JSONArray();
102
-        JSONObject paidCwAmountObject = new JSONObject();
85
+        JSONArray yearCountArray = new JSONArray();
86
+        JSONObject yearCountObject = new JSONObject();
87
+        JSONArray monthCountArray = new JSONArray();
88
+        JSONObject monthCountObject = new JSONObject();
89
+        JSONArray sourceCountArray = new JSONArray();
90
+        JSONObject sourceCountObject = new JSONObject();
91
+        JSONArray yearAmountArray = new JSONArray();
92
+        JSONObject yearAmountObject = new JSONObject();
93
+        JSONArray monthAmountArray = new JSONArray();
94
+        JSONObject monthAmountObject = new JSONObject();
95
+        JSONArray sourceAmountArray = new JSONArray();
96
+        JSONObject sourceAmountObject = new JSONObject();
97
+        JSONArray paidYearCountArray = new JSONArray();
98
+        JSONObject paidYearCountObject = new JSONObject();
99
+        JSONArray paidMonthCountArray = new JSONArray();
100
+        JSONObject paidMonthCountObject = new JSONObject();
101
+        JSONArray paidSourceCountArray = new JSONArray();
102
+        JSONObject paidSourceCountObject = new JSONObject();
103
+        JSONArray paidYearAmountArray = new JSONArray();
104
+        JSONObject paidYearAmountObject = new JSONObject();
105
+        JSONArray paidMonthAmountArray = new JSONArray();
106
+        JSONObject paidMonthAmountObject = new JSONObject();
107
+        JSONArray paidSourceAmountArray = new JSONArray();
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);
103 113
         //每年合同数量及金额
104 114
         if (cmcSubContract.getSignDate() == null) {
105
-            for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
106
-                cmcSubContract.setSignDate(new SimpleDateFormat("yyyy").parse(String.valueOf(i)));
107
-                List<CmcSubContract> yearList = cmcSubContractService.selectCmcSubContractList(cmcSubContract);
108
-                yearObject.put(String.valueOf(i), yearList.size());
109
-                int count = 0;
110
-                BigDecimal amount = new BigDecimal(0);
111
-                BigDecimal paidAmount = new BigDecimal(0);
112
-                for (CmcSubContract subContract : yearList) {
113
-                    if (subContract.getSubAmount() != null)
114
-                        amount = amount.add(subContract.getSubAmount());
115
-                    if (subContract.getPaidAmount() != null) {
116
-                        paidAmount = paidAmount.add(subContract.getPaidAmount());
117
-                        if (subContract.getPaidAmount().compareTo(subContract.getSubAmount()) >= 0)
118
-                            count ++;
115
+            if (cmcSubContract.getParams().size() == 0) {
116
+                for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
117
+                    cmcSubContract.setSignDate(new SimpleDateFormat("yyyy").parse(String.valueOf(i)));
118
+                    List<CmcSubContract> yearContractList = cmcSubContractService.selectCmcSubContractList(cmcSubContract);
119
+                    int yearCountI = yearContractList.size();
120
+                    int paidYearCountI = 0;
121
+                    BigDecimal yearAmountI = new BigDecimal(0);
122
+                    BigDecimal paidAmountI = new BigDecimal(0);
123
+                    for (CmcSubContract contract : yearContractList) {
124
+                        if (contract.getSubAmount() != null) {
125
+                            yearAmountI = yearAmountI.add(contract.getSubAmount());
126
+                            if (contract.getPaidAmount() != null) {
127
+                                paidAmountI = paidAmountI.add(contract.getPaidAmount());
128
+                                if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
129
+                                    paidYearCountI++;
130
+                            }
131
+                        }
132
+                    }
133
+                    yearCount += yearCountI;
134
+                    paidYearCount += paidYearCountI;
135
+                    yearAmount = yearAmount.add(yearAmountI);
136
+                    paidYearAmount = paidYearAmount.add(paidAmountI);
137
+                    yearCountObject.put(String.valueOf(i), yearCountI);
138
+                    paidYearCountObject.put(String.valueOf(i), paidYearCountI);
139
+                    yearAmountObject.put(String.valueOf(i), yearAmountI);
140
+                    paidYearAmountObject.put(String.valueOf(i), paidAmountI);
141
+                }
142
+            }
143
+            else {
144
+                String beginTime = (String) cmcSubContract.getParams().get("beginTime");
145
+                String endTime = (String) cmcSubContract.getParams().get("endTime");
146
+                List<String> monthList = DateUtils.getMonthBetweenDate(beginTime, endTime);
147
+                for (int i = 0; i < monthList.size(); i++) {
148
+                    String beginTimeString = monthList.get(i) + "-01";
149
+                    Calendar calendar = Calendar.getInstance();
150
+                    calendar.set(Calendar.YEAR, Integer.parseInt(monthList.get(i).split("-")[0]));
151
+                    calendar.set(Calendar.MONTH, Integer.parseInt(monthList.get(i).split("-")[1]) - 1);
152
+                    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
+                    params.put("beginTime", beginTimeString + " 00:00:00");
156
+                    params.put("endTime", endTimeString + " 23:59:59");
157
+                    cmcSubContract.setParams(params);
158
+                    List<CmcSubContract> monthContractList = cmcSubContractService.selectCmcSubContractListByRange(cmcSubContract);
159
+                    int monthCount = monthContractList.size();
160
+                    int paidMonthCount = 0;
161
+                    BigDecimal monthAmount = new BigDecimal(0);
162
+                    BigDecimal paidMonthAmount = new BigDecimal(0);
163
+                    for (CmcSubContract contract : monthContractList) {
164
+                        if (contract.getSubAmount() != null) {
165
+                            monthAmount = monthAmount.add(contract.getSubAmount());
166
+                            if (contract.getPaidAmount() != null) {
167
+                                paidMonthAmount = paidYearAmount.add(contract.getPaidAmount());
168
+                                if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
169
+                                    paidMonthCount++;
170
+                            }
171
+                        }
119 172
                     }
173
+                    monthCountObject.put(monthList.get(i), monthCount);
174
+                    monthAmountObject.put(monthList.get(i),monthAmount);
175
+                    paidMonthCountObject.put(monthList.get(i), paidMonthCount);
176
+                    paidMonthAmountObject.put(monthList.get(i), paidMonthAmount);
120 177
                 }
121
-                paidYearObject.put(String.valueOf(i), count);
122
-                amountObject.put(String.valueOf(i), amount);
123
-                paidAmountObject.put(String.valueOf(i), paidAmount);
124 178
             }
125 179
             cmcSubContract.setSignDate(null);
126 180
         }
127
-        else {
181
+        else if (cmcSubContract.getSignDate() != null) {
128 182
             //输入年份合同数量及金额
129
-            yearObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()), cmcSubContractService.selectCmcSubContractList(cmcSubContract).size());
130
-            int count = 0;
131
-            BigDecimal amount = new BigDecimal(0);
132
-            BigDecimal paidAmount = new BigDecimal(0);
133
-            for (CmcSubContract subContract : cmcSubContractService.selectCmcSubContractList(cmcSubContract)) {
134
-                if (subContract.getSubAmount() != null)
135
-                    amount = amount.add(subContract.getSubAmount());
136
-                if (subContract.getPaidAmount() != null) {
137
-                    paidAmount = paidAmount.add(subContract.getPaidAmount());
138
-                    if (subContract.getPaidAmount().compareTo(subContract.getSubAmount()) >= 0)
139
-                        count ++;
183
+            yearCount = cmcSubContractService.selectCmcSubContractList(cmcSubContract).size();
184
+            yearCountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()), yearCount);
185
+            for (int i = 1; i <= 12; i++) {
186
+                String month = i < 10 ? "0" + i : String.valueOf(i);
187
+                String beginTimeString = new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()) + "-" + month + "-01";
188
+                Calendar calendar = Calendar.getInstance();
189
+                calendar.set(Calendar.YEAR, Integer.parseInt(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate())));
190
+                calendar.set(Calendar.MONTH, i - 1);
191
+                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<>();
194
+                params.put("beginTime", beginTimeString + " 00:00:00");
195
+                params.put("endTime", endTimeString + " 23:59:59");
196
+                cmcSubContract.setParams(params);
197
+                List<CmcSubContract> monthContractList = cmcSubContractService.selectCmcSubContractListByRange(cmcSubContract);
198
+                int monthCount = monthContractList.size();
199
+                int paidMonthCount = 0;
200
+                BigDecimal monthAmount = new BigDecimal(0);
201
+                BigDecimal paidMonthAmount = new BigDecimal(0);
202
+                for (CmcSubContract contract : monthContractList) {
203
+                    if (contract.getSubAmount() != null) {
204
+                        monthAmount = monthAmount.add(contract.getSubAmount());
205
+                        if (contract.getPaidAmount() != null) {
206
+                            paidMonthAmount = paidYearAmount.add(contract.getPaidAmount());
207
+                            if (contract.getPaidAmount().compareTo(contract.getSubAmount()) >= 0)
208
+                                paidMonthCount++;
209
+                        }
210
+                    }
140 211
                 }
212
+                monthCountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()) + "-" + month, monthCount);
213
+                monthAmountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()) + "-" + month,monthAmount);
214
+                paidMonthCountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()) + "-" + month, paidMonthCount);
215
+                paidMonthAmountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()) + "-" + month, paidMonthAmount);
141 216
             }
142
-            paidYearObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()), count);
143
-            amountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()), amount);
144
-            paidAmountObject.put(new SimpleDateFormat("yyyy").format(cmcSubContract.getSignDate()), paidAmount);
217
+            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 ++;
224
+                }
225
+            }
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);
145 229
         }
146
-        getProjectSourceStatistic(cmcSubContract, sourceObject, paidSourceObject, cwAmountObject, paidCwAmountObject);
147
-        yearArray.add(yearObject);
148
-        sourceArray.add(sourceObject);
149
-        amountArray.add(amountObject);
150
-        cwAmountArray.add(cwAmountObject);
151
-        paidYearArray.add(paidYearObject);
152
-        paidSourceArray.add(paidSourceObject);
153
-        paidAmountArray.add(paidAmountObject);
154
-        paidCwAmountArray.add(paidCwAmountObject);
155
-        jsonObject.put("year", yearArray);
156
-        jsonObject.put("source", sourceArray);
157
-        jsonObject.put("amount", amountArray);
158
-        jsonObject.put("paidYear", paidYearArray);
159
-        jsonObject.put("paidSource", paidSourceArray);
160
-        jsonObject.put("cwAmount", cwAmountArray);
161
-        jsonObject.put("paidAmount", paidAmountArray);
162
-        jsonObject.put("paidCwAmount", paidCwAmountArray);
230
+        getProjectSourceStatistic(cmcSubContract, sourceCountObject, paidSourceCountObject, sourceAmountObject, paidSourceAmountObject, yearCount, paidYearCount, yearAmount, paidYearAmount);
231
+        yearCountArray.add(yearCountObject);
232
+        monthCountArray.add(monthCountObject);
233
+        sourceCountArray.add(sourceCountObject);
234
+        yearAmountArray.add(yearAmountObject);
235
+        monthAmountArray.add(monthAmountObject);
236
+        sourceAmountArray.add(sourceAmountObject);
237
+        paidYearCountArray.add(paidYearCountObject);
238
+        paidMonthCountArray.add(paidMonthCountObject);
239
+        paidSourceCountArray.add(paidSourceCountObject);
240
+        paidYearAmountArray.add(paidYearAmountObject);
241
+        paidMonthAmountArray.add(paidMonthAmountObject);
242
+        paidSourceAmountArray.add(paidSourceAmountObject);
243
+        jsonObject.put("yearCount", yearCountArray);
244
+        jsonObject.put("monthCount", monthCountArray);
245
+        jsonObject.put("sourceCount", sourceCountArray);
246
+        jsonObject.put("yearAmount", yearAmountArray);
247
+        jsonObject.put("monthAmount", monthAmountArray);
248
+        jsonObject.put("sourceAmount", sourceAmountArray);
249
+        jsonObject.put("paidYearCount", paidYearCountArray);
250
+        jsonObject.put("paidMonthCount", paidMonthCountArray);
251
+        jsonObject.put("paidSourceCount", paidSourceCountArray);
252
+        jsonObject.put("paidYearAmount", paidYearAmountArray);
253
+        jsonObject.put("paidMonthAmount", paidMonthAmountArray);
254
+        jsonObject.put("paidSourceAmount", paidSourceAmountArray);
163 255
         return success(jsonObject);
164 256
     }
165 257
 
@@ -194,44 +286,65 @@ public class CmcSubContractController extends BaseController
194 286
     }
195 287
 
196 288
     //院内外项目数量及金额
197
-    public void getProjectSourceStatistic(CmcSubContract cmcSubContract, JSONObject sourceObject, JSONObject paidSourceObject, JSONObject cwAmountObject, JSONObject paidCwAmountObject) {
198
-        cmcSubContract.setProjectSource("1");
199
-        List<CmcSubContract> sourceList = cmcSubContractService.selectCmcSubContractList(cmcSubContract);
200
-        int cCount = 0;
201
-        int wCount = 0;
289
+    public void getProjectSourceStatistic(CmcSubContract cmcSubContract, JSONObject sourceCountObject, JSONObject paidSourceCountObject, JSONObject sourceAmountObject, JSONObject paidSourceAmountObject,
290
+                                          int count, int paidCount, BigDecimal amount, BigDecimal paidAmount) {
291
+        int cCount;
292
+        int wCount;
293
+        int nCount;
294
+        int paidCCount = 0;
295
+        int paidWCount = 0;
296
+        int paidNCount;
202 297
         BigDecimal cAmount = new BigDecimal(0);
203 298
         BigDecimal wAmount = new BigDecimal(0);
299
+        BigDecimal nAmount;
204 300
         BigDecimal paidCAmount = new BigDecimal(0);
205 301
         BigDecimal paidWAmount = new BigDecimal(0);
206
-        for (CmcSubContract subContract : sourceList) {
207
-            if (subContract.getSubAmount() != null)
208
-                wAmount = wAmount.add(subContract.getSubAmount());
209
-            if (subContract.getPaidAmount() != null) {
210
-                paidWAmount = paidWAmount.add(subContract.getPaidAmount());
211
-                if (subContract.getPaidAmount().compareTo(subContract.getSubAmount()) >= 0)
212
-                    wCount ++;
302
+        BigDecimal paidNAmount;
303
+        cmcSubContract.setProjectSource("1");
304
+        List<CmcSubContract> sourceList = cmcSubContractService.selectCmcSubContractList(cmcSubContract);
305
+        wCount = sourceList.size();
306
+        for (CmcSubContract contract : sourceList) {
307
+            if (contract.getSubAmount() != null)
308
+                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 ++;
213 313
             }
214 314
         }
215
-        sourceObject.put("院外项目", sourceList.size());
216
-        paidSourceObject.put("已完成付款院外项目", wCount);
217
-        cwAmountObject.put("院外项目分包金额", wAmount);
218
-        paidCwAmountObject.put("院外项目付款金额", paidWAmount);
315
+        nCount = count - wCount;
316
+        paidNCount = paidCount - wCount;
317
+        nAmount = amount.subtract(wAmount);
318
+        paidNAmount = paidAmount.subtract(paidWAmount);
319
+        sourceCountObject.put("院外项目", wCount);
320
+        paidSourceCountObject.put("已完成付款院外项目", paidWCount);
321
+        sourceAmountObject.put("院外项目分包金额", wAmount);
322
+        paidSourceAmountObject.put("院外项目付款金额", paidWAmount);
219 323
         cmcSubContract.setProjectSource("0");
220 324
         sourceList = cmcSubContractService.selectCmcSubContractList(cmcSubContract);
221
-        for (CmcSubContract subContract : sourceList) {
222
-            if (subContract.getSubAmount() != null)
223
-                cAmount = cAmount.add(subContract.getSubAmount());
224
-            if (subContract.getPaidAmount() != null) {
225
-                paidCAmount = paidCAmount.add(subContract.getPaidAmount());
226
-                if (subContract.getPaidAmount().compareTo(subContract.getSubAmount()) >= 0)
227
-                    cCount ++;
325
+        cCount = sourceList.size();
326
+        for (CmcSubContract contract : sourceList) {
327
+            if (contract.getSubAmount() != null)
328
+                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 ++;
228 333
             }
229 334
         }
230
-        sourceObject.put("院内项目", sourceList.size());
231
-        paidSourceObject.put("已完成付款院内项目", cCount);
232
-        cwAmountObject.put("院内项目分包金额", cAmount);
233
-        paidCwAmountObject.put("院内项目付款金额", paidCAmount);
335
+        nCount = nCount - cCount;
336
+        paidNCount = paidNCount - cCount;
337
+        nAmount = nAmount.subtract(cAmount);
338
+        paidNAmount = paidNAmount.subtract(paidCAmount);
339
+        sourceCountObject.put("院内项目", cCount);
340
+        paidSourceCountObject.put("已完成付款院内项目", paidCCount);
341
+        sourceAmountObject.put("院内项目分包金额", cAmount);
342
+        paidSourceAmountObject.put("院内项目付款金额", paidCAmount);
234 343
         cmcSubContract.setProjectSource(null);
344
+        sourceCountObject.put("未关联项目", nCount);
345
+        paidSourceCountObject.put("已完成付款未关联项目", paidNCount);
346
+        sourceAmountObject.put("未关联项目分包金额", nAmount);
347
+        paidSourceAmountObject.put("未关联项目付款金额", paidNAmount);
235 348
     }
236 349
 
237 350
 }

+ 37
- 0
oa-back/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java 파일 보기

@@ -8,8 +8,11 @@ import java.time.LocalDateTime;
8 8
 import java.time.LocalTime;
9 9
 import java.time.ZoneId;
10 10
 import java.time.ZonedDateTime;
11
+import java.util.ArrayList;
11 12
 import java.util.Calendar;
12 13
 import java.util.Date;
14
+import java.util.List;
15
+
13 16
 import org.apache.commons.lang3.time.DateFormatUtils;
14 17
 
15 18
 /**
@@ -227,4 +230,38 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
227 230
         }
228 231
         return age;
229 232
     }
233
+
234
+    /**
235
+     * 获取两个日期之间的所有月份 (年月)
236
+     *
237
+     * @param startTime
238
+     * @param endTime
239
+     * @return:YYYY-MM
240
+     */
241
+    public static List<String> getMonthBetweenDate(String startTime, String endTime){
242
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
243
+        // 声明保存日期集合
244
+        List<String> list = new ArrayList<String>();
245
+        try {
246
+            // 转化成日期类型
247
+            Date startDate = sdf.parse(startTime);
248
+            Date endDate = sdf.parse(endTime);
249
+
250
+            //用Calendar 进行日期比较判断
251
+            Calendar calendar = Calendar.getInstance();
252
+            while (startDate.getTime() <= endDate.getTime()){
253
+                // 把日期添加到集合
254
+                list.add(sdf.format(startDate));
255
+                // 设置日期
256
+                calendar.setTime(startDate);
257
+                //把日期增加一天
258
+                calendar.add(Calendar.MONTH, 1);
259
+                // 获取增加后的日期
260
+                startDate = calendar.getTime();
261
+            }
262
+        } catch (ParseException e) {
263
+            e.printStackTrace();
264
+        }
265
+        return list;
266
+    }
230 267
 }

+ 10
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/mapper/CmcSubContractMapper.java 파일 보기

@@ -1,6 +1,8 @@
1 1
 package com.ruoyi.oa.mapper;
2 2
 
3 3
 import java.util.List;
4
+
5
+import com.ruoyi.oa.domain.CmcSubContract;
4 6
 import com.ruoyi.oa.domain.CmcSubContract;
5 7
 
6 8
 /**
@@ -27,6 +29,14 @@ public interface CmcSubContractMapper
27 29
      */
28 30
     public List<CmcSubContract> selectCmcSubContractList(CmcSubContract cmcSubContract);
29 31
 
32
+    /**
33
+     * 按时间范围查询cmc分包合同评审列表
34
+     *
35
+     * @param cmcSubContract cmc分包合同评审
36
+     * @return cmc分包合同评审集合
37
+     */
38
+    public List<CmcSubContract> selectCmcSubContractListByRange(CmcSubContract cmcSubContract);
39
+
30 40
     /**
31 41
      * 新增cmc分包合同评审
32 42
      * 

+ 8
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/ICmcSubContractService.java 파일 보기

@@ -27,6 +27,14 @@ public interface ICmcSubContractService
27 27
      */
28 28
     public List<CmcSubContract> selectCmcSubContractList(CmcSubContract cmcSubContract);
29 29
 
30
+    /**
31
+     * 按时间范围查询cmc分包合同评审列表
32
+     *
33
+     * @param cmcSubContract cmc分包合同评审
34
+     * @return cmc分包合同评审集合
35
+     */
36
+    public List<CmcSubContract> selectCmcSubContractListByRange(CmcSubContract cmcSubContract);
37
+
30 38
     /**
31 39
      * 新增cmc分包合同评审
32 40
      * 

+ 12
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/impl/CmcSubContractServiceImpl.java 파일 보기

@@ -43,6 +43,18 @@ public class CmcSubContractServiceImpl implements ICmcSubContractService
43 43
         return cmcSubContractMapper.selectCmcSubContractList(cmcSubContract);
44 44
     }
45 45
 
46
+    /**
47
+     * 按时间范围查询cmc分包合同评审列表
48
+     *
49
+     * @param cmcSubContract cmc分包合同评审
50
+     * @return cmc分包合同评审
51
+     */
52
+    @Override
53
+    public List<CmcSubContract> selectCmcSubContractListByRange(CmcSubContract cmcSubContract)
54
+    {
55
+        return cmcSubContractMapper.selectCmcSubContractListByRange(cmcSubContract);
56
+    }
57
+
46 58
     /**
47 59
      * 新增cmc分包合同评审
48 60
      * 

+ 22
- 1
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcSubContractMapper.xml 파일 보기

@@ -74,6 +74,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
74 74
     </sql>
75 75
 
76 76
     <select id="selectCmcSubContractList" parameterType="CmcSubContract" resultMap="CmcSubContractResult">
77
+        <include refid="selectCmcSubContractVo"/>
78
+        <where>
79
+            <if test="subContractName != null  and subContractName != ''"> and sc.sub_contract_name like concat('%', #{subContractName}, '%')</if>
80
+            <if test="subAmount != null "> and sc.sub_amount = #{subAmount}</if>
81
+            <if test="partnerId != null  and partnerId != ''"> and sc.partner_id = #{partnerId}</if>
82
+            <if test="contactPerson != null  and contactPerson != ''"> and sc.contact_person = #{contactPerson}</if>
83
+            <if test="telephone != null  and telephone != ''"> and sc.telephone = #{telephone}</if>
84
+            <if test="contractDocument != null  and contractDocument != ''"> and sc.contract_document = #{contractDocument}</if>
85
+            <if test="drafter != null "> and sc.drafter = #{drafter}</if>
86
+            <if test="draftTime != null "> and sc.draft_time = #{draftTime}</if>
87
+            <if test="signDate != null "> and YEAR(sc.sign_date) = YEAR(#{signDate})</if>
88
+            <if test="signRemark != null  and signRemark != ''"> and sc.sign_remark = #{signRemark}</if>
89
+            <if test="signScan != null  and signScan != ''"> and sc.sign_scan = #{signScan}</if>
90
+            <if test="commentType != null  and commentType != ''"> and sc.comment_type = #{commentType}</if>
91
+            <if test="projectSource != null  and projectSource != ''"> and p.project_source = #{projectSource}</if>
92
+        </where>
93
+        group by sc.sub_contract_id
94
+        order by sc.draft_time desc
95
+    </select>
96
+
97
+    <select id="selectCmcSubContractListByRange" parameterType="CmcSubContract" resultMap="CmcSubContractResult">
77 98
         <include refid="selectCmcSubContractVo"/>
78 99
         <where>
79 100
             <if test="subContractName != null  and subContractName != ''"> and sc.sub_contract_name like concat('%', #{subContractName}, '%')</if>
@@ -99,7 +120,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
99 120
         group by sc.sub_contract_id
100 121
         order by sc.draft_time desc
101 122
     </select>
102
-    
123
+
103 124
     <select id="selectCmcSubContractBySubContractId" parameterType="String" resultMap="CmcSubContractResult">
104 125
         <include refid="selectCmcSubContractVo"/>
105 126
         where sc.sub_contract_id = #{subContractId}

Loading…
취소
저장