Просмотр исходного кода

新增案件或者批量导入时自动生成案件编号

18792927508 2 лет назад
Родитель
Сommit
62878cb969

+ 1
- 1
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseApplication.java Просмотреть файл

13
     /** ID */
13
     /** ID */
14
     private Long id;
14
     private Long id;
15
     /** 案件编号 */
15
     /** 案件编号 */
16
-    @Excel(name = "案件编号")
16
+//    @Excel(name = "案件编号")
17
     private String caseNum;
17
     private String caseNum;
18
     /** 案件标的 */
18
     /** 案件标的 */
19
     @Excel(name = "案件标的")
19
     @Excel(name = "案件标的")

+ 9
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseApplicationMapper.java Просмотреть файл

2
 
2
 
3
 import com.ruoyi.wisdomarbitrate.domain.CaseAffiliate;
3
 import com.ruoyi.wisdomarbitrate.domain.CaseAffiliate;
4
 import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
4
 import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
5
+import org.apache.ibatis.annotations.Param;
5
 
6
 
6
 import java.util.List;
7
 import java.util.List;
7
 
8
 
22
     CaseApplication selectCaseApplication(CaseApplication caseApplication);
23
     CaseApplication selectCaseApplication(CaseApplication caseApplication);
23
 
24
 
24
     CaseApplication selectCaseApplicationConfirm(CaseApplication caseApplication);
25
     CaseApplication selectCaseApplicationConfirm(CaseApplication caseApplication);
26
+
27
+    /**
28
+     * 查询最大编号
29
+     * @param caseNum
30
+     * @param length
31
+     * @return
32
+     */
33
+    Integer selectCaseNumLike(@Param("caseNum") String caseNum, @Param("length") int length);
25
 }
34
 }

+ 33
- 28
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java Просмотреть файл

1
 package com.ruoyi.wisdomarbitrate.service.impl;
1
 package com.ruoyi.wisdomarbitrate.service.impl;
2
 
2
 
3
+
3
 import com.ruoyi.common.constant.CaseApplicationConstants;
4
 import com.ruoyi.common.constant.CaseApplicationConstants;
4
 import com.ruoyi.common.exception.ServiceException;
5
 import com.ruoyi.common.exception.ServiceException;
5
 import com.ruoyi.common.utils.DateUtils;
6
 import com.ruoyi.common.utils.DateUtils;
12
 import org.springframework.beans.factory.annotation.Autowired;
13
 import org.springframework.beans.factory.annotation.Autowired;
13
 import org.springframework.stereotype.Service;
14
 import org.springframework.stereotype.Service;
14
 import org.springframework.transaction.annotation.Transactional;
15
 import org.springframework.transaction.annotation.Transactional;
15
-
16
-import java.lang.reflect.Field;
17
 import java.math.BigDecimal;
16
 import java.math.BigDecimal;
18
 import java.text.SimpleDateFormat;
17
 import java.text.SimpleDateFormat;
19
 import java.util.*;
18
 import java.util.*;
20
 import java.util.stream.Collectors;
19
 import java.util.stream.Collectors;
21
 
20
 
22
-import static com.ruoyi.common.core.domain.AjaxResult.error;
23
-import static java.util.stream.Collectors.collectingAndThen;
24
-import static java.util.stream.Collectors.toCollection;
25
 
21
 
26
 @Service
22
 @Service
27
 public class CaseApplicationServiceImpl implements ICaseApplicationService {
23
 public class CaseApplicationServiceImpl implements ICaseApplicationService {
58
         BigDecimal feeRate = new BigDecimal(0.01);
54
         BigDecimal feeRate = new BigDecimal(0.01);
59
         BigDecimal feePayable  = caseApplication.getCaseSubjectAmount().multiply(feeRate).setScale(2,BigDecimal.ROUND_HALF_UP);
55
         BigDecimal feePayable  = caseApplication.getCaseSubjectAmount().multiply(feeRate).setScale(2,BigDecimal.ROUND_HALF_UP);
60
         caseApplication.setFeePayable(feePayable);
56
         caseApplication.setFeePayable(feePayable);
61
-
57
+        // 获取自动编码
62
         String caseNum = generateCaseNum();
58
         String caseNum = generateCaseNum();
63
         caseApplication.setCaseNum(caseNum);
59
         caseApplication.setCaseNum(caseNum);
64
 
60
 
83
         return rows;
79
         return rows;
84
     }
80
     }
85
 
81
 
82
+    /**
83
+     * 获取自动编码
84
+     * @return
85
+     */
86
+
86
     private String generateCaseNum() {
87
     private String generateCaseNum() {
87
-        String currentday = DateUtils.dateTime();
88
-        String caseNum = "zc"+ currentday;
89
-        //查询出当天的案件编号的最大值 ,如等于1
90
-        Integer caseNumMax = 1;
91
-        if(caseNumMax!=null){
92
-            //根据查询到的caseNumMax拼接一个案件编号
88
+        // 自动编码格式 zc+yyyyMMdd+001
89
+        String currentDay = DateUtils.dateTime();
90
+        String caseNum = "zc"+ currentDay;
91
+        //查询出当天的案件编号的最大值
92
+            Integer maxCaseNum =  caseApplicationMapper.selectCaseNumLike(caseNum,caseNum.length());
93
+        if(null == maxCaseNum){
94
+            caseNum = caseNum + "001";
93
         }else {
95
         }else {
94
-            caseNum += "001";
96
+            caseNum = caseNum + String.format("%03d", maxCaseNum);
95
         }
97
         }
96
         return caseNum;
98
         return caseNum;
97
 
99
 
224
                 List<CaseAffiliate> caseAffiliatesnew  = new ArrayList<>();
226
                 List<CaseAffiliate> caseAffiliatesnew  = new ArrayList<>();
225
                 assignmentCaseAffiliates(caseApplication,caseAffiliatesnew);
227
                 assignmentCaseAffiliates(caseApplication,caseAffiliatesnew);
226
 
228
 
227
-                int caseApplicationCount = selectCaseApplicationCount(caseApplication);
228
-                if(caseApplicationCount>0){
229
-                    failureNum++;
230
-                    failureMsg.append("<br/>" + failureNum + "、立案编号 " + caseApplication.getCaseNum() + " 已存在");
231
-                }else {
232
-                    caseApplicationListinsert.add(caseApplication);
233
-                }
229
+//                int caseApplicationCount = selectCaseApplicationCount(caseApplication);
230
+//                if(caseApplicationCount>0){
231
+//                    failureNum++;
232
+//                    failureMsg.append("<br/>" + failureNum + "、立案编号 " + caseApplication.getCaseNum() + " 已存在");
233
+//                }else {
234
+//                    caseApplicationListinsert.add(caseApplication);
235
+//                }
236
+                caseApplicationListinsert.add(caseApplication);
234
             }
237
             }
235
 
238
 
236
             if(caseApplicationListinsert!=null&&caseApplicationListinsert.size()>0){
239
             if(caseApplicationListinsert!=null&&caseApplicationListinsert.size()>0){
237
-                List<CaseApplication> caseApplicationListinsertDiffer = caseApplicationListinsert.stream().collect(
238
-                        collectingAndThen(
239
-                                toCollection(() -> new TreeSet<>(Comparator.comparing(CaseApplication::getCaseNum))),
240
-                                ArrayList::new));
240
+//                List<CaseApplication> caseApplicationListinsertDiffer = caseApplicationListinsert.stream().collect(
241
+//                        collectingAndThen(
242
+//                                toCollection(() -> new TreeSet<>(Comparator.comparing(CaseApplication::getCaseNum))),
243
+//                                ArrayList::new));
241
 
244
 
242
 
245
 
243
                 //对不重复的立案对象集合的立案对象重新组装对应的案件关联人信息
246
                 //对不重复的立案对象集合的立案对象重新组装对应的案件关联人信息
244
-                if(caseApplicationListinsertDiffer!=null&&caseApplicationListinsertDiffer.size()>0){
247
+//                if(caseApplicationListinsertDiffer!=null&&caseApplicationListinsertDiffer.size()>0){
245
                     List<CaseApplication> caseApplicationNewList = null;
248
                     List<CaseApplication> caseApplicationNewList = null;
246
-                    for (int i = 0; i < caseApplicationListinsertDiffer.size(); i++){
249
+                    for (int i = 0; i < caseApplicationListinsert.size(); i++){
247
                         caseApplicationNewList = new ArrayList<>();
250
                         caseApplicationNewList = new ArrayList<>();
248
-                        CaseApplication caseApplicationinsertDiffer = caseApplicationListinsertDiffer.get(i);
251
+                        CaseApplication caseApplicationinsertDiffer = caseApplicationListinsert.get(i);
249
                         List<CaseAffiliate> caseAffiliatesnew =  new ArrayList<>();
252
                         List<CaseAffiliate> caseAffiliatesnew =  new ArrayList<>();
250
                         CaseApplication caseApplicationNew = new CaseApplication();
253
                         CaseApplication caseApplicationNew = new CaseApplication();
251
                         copyCaseApplication(caseApplicationinsertDiffer,caseApplicationNew);
254
                         copyCaseApplication(caseApplicationinsertDiffer,caseApplicationNew);
267
                             CaseApplication caseApplicationItera = caseApplicationNewList.get(k);
270
                             CaseApplication caseApplicationItera = caseApplicationNewList.get(k);
268
                             // 新增立案信息
271
                             // 新增立案信息
269
                             caseApplicationItera.setCaseStatus(CaseApplicationConstants.CASE_APPLICATION);
272
                             caseApplicationItera.setCaseStatus(CaseApplicationConstants.CASE_APPLICATION);
273
+                            // 设置自动编码
274
+                            caseApplicationItera.setCaseNum(generateCaseNum());
270
                             int rows = caseApplicationMapper.insertCaseApplication(caseApplicationItera);
275
                             int rows = caseApplicationMapper.insertCaseApplication(caseApplicationItera);
271
                             List<CaseAffiliate> caseAffiliates = caseApplicationItera.getCaseAffiliates();
276
                             List<CaseAffiliate> caseAffiliates = caseApplicationItera.getCaseAffiliates();
272
                             if(caseAffiliates!=null&&caseAffiliates.size()>0){
277
                             if(caseAffiliates!=null&&caseAffiliates.size()>0){
279
                             successMsg.append("<br/>" + successNum + "、立案编号 " + caseApplicationItera.getCaseNum() + " 导入成功");
284
                             successMsg.append("<br/>" + successNum + "、立案编号 " + caseApplicationItera.getCaseNum() + " 导入成功");
280
                         }
285
                         }
281
 
286
 
282
-                    }
287
+//                    }
283
 
288
 
284
                 }
289
                 }
285
 
290
 

+ 4
- 3
ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseApplicationMapper.xml Просмотреть файл

237
             AND c.id = #{id}
237
             AND c.id = #{id}
238
 
238
 
239
     </select>
239
     </select>
240
-
241
-
242
-
240
+    <select id="selectCaseNumLike" resultType="java.lang.Integer">
241
+        select max(substring(case_num, #{length}+1,12)+1) as maxCaseNum
242
+        from case_application where case_num like CONCAT(#{caseNum},'%') ;
243
+    </select>
243
 
244
 
244
 
245
 
245
 </mapper>
246
 </mapper>