Ver código fonte

分包合同按月统计

lamphua 3 meses atrás
pai
commit
5acd774076

+ 134
- 117
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcContractController.java Ver arquivo

10
 import com.alibaba.fastjson2.JSON;
10
 import com.alibaba.fastjson2.JSON;
11
 import com.alibaba.fastjson2.JSONArray;
11
 import com.alibaba.fastjson2.JSONArray;
12
 import com.alibaba.fastjson2.JSONObject;
12
 import com.alibaba.fastjson2.JSONObject;
13
+import com.ruoyi.common.utils.DateUtils;
13
 import com.ruoyi.oa.domain.*;
14
 import com.ruoyi.oa.domain.*;
14
 import com.ruoyi.oa.service.*;
15
 import com.ruoyi.oa.service.*;
15
 import org.apache.poi.hpsf.Decimal;
16
 import org.apache.poi.hpsf.Decimal;
74
     @GetMapping("/statistic")
75
     @GetMapping("/statistic")
75
     public AjaxResult getContractStatistic(CmcContract cmcContract) throws ParseException {
76
     public AjaxResult getContractStatistic(CmcContract cmcContract) throws ParseException {
76
         JSONObject jsonObject = new JSONObject();
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
         if (cmcContract.getSignDate() == null) {
107
         if (cmcContract.getSignDate() == null) {
101
             if (cmcContract.getParams().size() == 0) {
108
             if (cmcContract.getParams().size() == 0) {
102
                 for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
109
                 for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
103
                     cmcContract.setSignDate(new SimpleDateFormat("yyyy").parse(String.valueOf(i)));
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
                     BigDecimal paidAmountI = new BigDecimal(0);
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
             else {
136
             else {
129
                 String beginTime = (String) cmcContract.getParams().get("beginTime");
137
                 String beginTime = (String) cmcContract.getParams().get("beginTime");
130
                 String endTime = (String) cmcContract.getParams().get("endTime");
138
                 String endTime = (String) cmcContract.getParams().get("endTime");
131
-                List<String> monthList = getMonthBetweenDate(beginTime, endTime);
139
+                List<String> monthList = DateUtils.getMonthBetweenDate(beginTime, endTime);
132
                 for (int i = 0; i < monthList.size(); i++) {
140
                 for (int i = 0; i < monthList.size(); i++) {
133
                     String beginTimeString = monthList.get(i) + "-01";
141
                     String beginTimeString = monthList.get(i) + "-01";
134
                     Calendar calendar = Calendar.getInstance();
142
                     Calendar calendar = Calendar.getInstance();
140
                     params.put("beginTime", beginTimeString + " 00:00:00");
148
                     params.put("beginTime", beginTimeString + " 00:00:00");
141
                     params.put("endTime", endTimeString + " 23:59:59");
149
                     params.put("endTime", endTimeString + " 23:59:59");
142
                     cmcContract.setParams(params);
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
             cmcContract.setSignDate(null);
172
             cmcContract.setSignDate(null);
147
         }
173
         }
148
         else if (cmcContract.getSignDate() != null) {
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
             for (int i = 1; i <= 12; i++) {
178
             for (int i = 1; i <= 12; i++) {
153
                 String month = i < 10 ? "0" + i : String.valueOf(i);
179
                 String month = i < 10 ? "0" + i : String.valueOf(i);
154
                 String beginTimeString = new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()) + "-" + month + "-01";
180
                 String beginTimeString = new SimpleDateFormat("yyyy").format(cmcContract.getSignDate()) + "-" + month + "-01";
161
                 params.put("beginTime", beginTimeString + " 00:00:00");
187
                 params.put("beginTime", beginTimeString + " 00:00:00");
162
                 params.put("endTime", endTimeString + " 23:59:59");
188
                 params.put("endTime", endTimeString + " 23:59:59");
163
                 cmcContract.setParams(params);
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
             for (CmcContract contract : cmcContractService.selectCmcContractList(cmcContract)) {
210
             for (CmcContract contract : cmcContractService.selectCmcContractList(cmcContract)) {
167
                 if (contract.getAmount() != null)
211
                 if (contract.getAmount() != null)
168
-                    amount = amount.add(contract.getAmount());
212
+                    yearAmount = yearAmount.add(contract.getAmount());
169
                 if (contract.getPaidAmount() != null) {
213
                 if (contract.getPaidAmount() != null) {
170
-                    paidAmount = paidAmount.add(contract.getPaidAmount());
214
+                    paidYearAmount = paidYearAmount.add(contract.getPaidAmount());
171
                     if (contract.getPaidAmount().compareTo(contract.getAmount()) >= 0)
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
         return success(jsonObject);
248
         return success(jsonObject);
199
     }
249
     }
200
 
250
 
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
                                           int count, int paidCount, BigDecimal amount, BigDecimal paidAmount) {
343
                                           int count, int paidCount, BigDecimal amount, BigDecimal paidAmount) {
294
         int cCount;
344
         int cCount;
295
         int wCount;
345
         int wCount;
319
         paidNCount = paidCount - wCount;
369
         paidNCount = paidCount - wCount;
320
         nAmount = amount.subtract(wAmount);
370
         nAmount = amount.subtract(wAmount);
321
         paidNAmount = paidAmount.subtract(paidWAmount);
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
         cmcContract.setProjectSource("0");
376
         cmcContract.setProjectSource("0");
327
         sourceList = cmcContractService.selectCmcContractList(cmcContract);
377
         sourceList = cmcContractService.selectCmcContractList(cmcContract);
328
         cCount = sourceList.size();
378
         cCount = sourceList.size();
339
         paidNCount = paidNCount - cCount;
389
         paidNCount = paidNCount - cCount;
340
         nAmount = nAmount.subtract(cAmount);
390
         nAmount = nAmount.subtract(cAmount);
341
         paidNAmount = paidNAmount.subtract(paidCAmount);
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
         cmcContract.setProjectSource(null);
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 Ver arquivo

3
 import java.math.BigDecimal;
3
 import java.math.BigDecimal;
4
 import java.text.ParseException;
4
 import java.text.ParseException;
5
 import java.text.SimpleDateFormat;
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
 import javax.servlet.http.HttpServletResponse;
7
 import javax.servlet.http.HttpServletResponse;
10
 
8
 
11
 import com.alibaba.fastjson2.JSONArray;
9
 import com.alibaba.fastjson2.JSONArray;
12
 import com.alibaba.fastjson2.JSONObject;
10
 import com.alibaba.fastjson2.JSONObject;
11
+import com.ruoyi.common.utils.DateUtils;
13
 import com.ruoyi.common.utils.SnowFlake;
12
 import com.ruoyi.common.utils.SnowFlake;
13
+import com.ruoyi.oa.domain.*;
14
 import com.ruoyi.oa.domain.CmcSubContract;
14
 import com.ruoyi.oa.domain.CmcSubContract;
15
-import com.ruoyi.oa.domain.CmcSubContract;
16
-import com.ruoyi.oa.domain.CmcPartner;
17
 import com.ruoyi.oa.service.ICmcPartnerService;
15
 import com.ruoyi.oa.service.ICmcPartnerService;
18
 import org.springframework.beans.factory.annotation.Autowired;
16
 import org.springframework.beans.factory.annotation.Autowired;
19
 import org.springframework.web.bind.annotation.GetMapping;
17
 import org.springframework.web.bind.annotation.GetMapping;
84
     @GetMapping("/statistic")
82
     @GetMapping("/statistic")
85
     public AjaxResult getSubContractStatistic(CmcSubContract cmcSubContract) throws ParseException {
83
     public AjaxResult getSubContractStatistic(CmcSubContract cmcSubContract) throws ParseException {
86
         JSONObject jsonObject = new JSONObject();
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
         if (cmcSubContract.getSignDate() == null) {
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
             cmcSubContract.setSignDate(null);
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
         return success(jsonObject);
255
         return success(jsonObject);
164
     }
256
     }
165
 
257
 
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
         BigDecimal cAmount = new BigDecimal(0);
297
         BigDecimal cAmount = new BigDecimal(0);
203
         BigDecimal wAmount = new BigDecimal(0);
298
         BigDecimal wAmount = new BigDecimal(0);
299
+        BigDecimal nAmount;
204
         BigDecimal paidCAmount = new BigDecimal(0);
300
         BigDecimal paidCAmount = new BigDecimal(0);
205
         BigDecimal paidWAmount = new BigDecimal(0);
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
         cmcSubContract.setProjectSource("0");
323
         cmcSubContract.setProjectSource("0");
220
         sourceList = cmcSubContractService.selectCmcSubContractList(cmcSubContract);
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
         cmcSubContract.setProjectSource(null);
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 Ver arquivo

8
 import java.time.LocalTime;
8
 import java.time.LocalTime;
9
 import java.time.ZoneId;
9
 import java.time.ZoneId;
10
 import java.time.ZonedDateTime;
10
 import java.time.ZonedDateTime;
11
+import java.util.ArrayList;
11
 import java.util.Calendar;
12
 import java.util.Calendar;
12
 import java.util.Date;
13
 import java.util.Date;
14
+import java.util.List;
15
+
13
 import org.apache.commons.lang3.time.DateFormatUtils;
16
 import org.apache.commons.lang3.time.DateFormatUtils;
14
 
17
 
15
 /**
18
 /**
227
         }
230
         }
228
         return age;
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 Ver arquivo

1
 package com.ruoyi.oa.mapper;
1
 package com.ruoyi.oa.mapper;
2
 
2
 
3
 import java.util.List;
3
 import java.util.List;
4
+
5
+import com.ruoyi.oa.domain.CmcSubContract;
4
 import com.ruoyi.oa.domain.CmcSubContract;
6
 import com.ruoyi.oa.domain.CmcSubContract;
5
 
7
 
6
 /**
8
 /**
27
      */
29
      */
28
     public List<CmcSubContract> selectCmcSubContractList(CmcSubContract cmcSubContract);
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
      * 新增cmc分包合同评审
41
      * 新增cmc分包合同评审
32
      * 
42
      * 

+ 8
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/ICmcSubContractService.java Ver arquivo

27
      */
27
      */
28
     public List<CmcSubContract> selectCmcSubContractList(CmcSubContract cmcSubContract);
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
      * 新增cmc分包合同评审
39
      * 新增cmc分包合同评审
32
      * 
40
      * 

+ 12
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/impl/CmcSubContractServiceImpl.java Ver arquivo

43
         return cmcSubContractMapper.selectCmcSubContractList(cmcSubContract);
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
      * 新增cmc分包合同评审
59
      * 新增cmc分包合同评审
48
      * 
60
      * 

+ 22
- 1
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcSubContractMapper.xml Ver arquivo

74
     </sql>
74
     </sql>
75
 
75
 
76
     <select id="selectCmcSubContractList" parameterType="CmcSubContract" resultMap="CmcSubContractResult">
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
         <include refid="selectCmcSubContractVo"/>
98
         <include refid="selectCmcSubContractVo"/>
78
         <where>
99
         <where>
79
             <if test="subContractName != null  and subContractName != ''"> and sc.sub_contract_name like concat('%', #{subContractName}, '%')</if>
100
             <if test="subContractName != null  and subContractName != ''"> and sc.sub_contract_name like concat('%', #{subContractName}, '%')</if>
99
         group by sc.sub_contract_id
120
         group by sc.sub_contract_id
100
         order by sc.draft_time desc
121
         order by sc.draft_time desc
101
     </select>
122
     </select>
102
-    
123
+
103
     <select id="selectCmcSubContractBySubContractId" parameterType="String" resultMap="CmcSubContractResult">
124
     <select id="selectCmcSubContractBySubContractId" parameterType="String" resultMap="CmcSubContractResult">
104
         <include refid="selectCmcSubContractVo"/>
125
         <include refid="selectCmcSubContractVo"/>
105
         where sc.sub_contract_id = #{subContractId}
126
         where sc.sub_contract_id = #{subContractId}

Carregando…
Cancelar
Salvar