Przeglądaj źródła

Merge branch 'wq' of SH-Arbitrate/Arbitrate-Backend into dev

wangqiong123 2 lat temu
rodzic
commit
324c7234f8

+ 3
- 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java Wyświetl plik

@@ -108,6 +108,9 @@ public class CaseApplicationController extends BaseController {
108 108
     @PreAuthorize("@ss.hasPermi('caseManagement:list:import')")
109 109
     @PostMapping("/importData")
110 110
     public AjaxResult importData(MultipartFile file) throws Exception {
111
+        if(file==null){
112
+            return warn("请上传文件");
113
+        }
111 114
         ExcelUtil<CaseApplication> util = new ExcelUtil<CaseApplication>(CaseApplication.class);
112 115
         List<CaseApplication> caseApplicationList = util.importExcel(file.getInputStream());
113 116
         String operName = getUsername();

+ 10
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseApplication.java Wyświetl plik

@@ -114,6 +114,16 @@ public class CaseApplication  extends BaseEntity {
114 114
     private Integer paymentStatus;
115 115
     /** 支付状态描述 */
116 116
     private String paymentStatusName;
117
+    // 导入校验失败信息
118
+    private StringBuilder errorMsg;
119
+
120
+    public StringBuilder getErrorMsg() {
121
+        return errorMsg;
122
+    }
123
+
124
+    public void setErrorMsg(StringBuilder errorMsg) {
125
+        this.errorMsg = errorMsg;
126
+    }
117 127
 
118 128
     public Integer getPaymentStatus() {
119 129
         return paymentStatus;

+ 247
- 18
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java Wyświetl plik

@@ -24,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
24 24
 import java.math.BigDecimal;
25 25
 import java.text.SimpleDateFormat;
26 26
 import java.util.*;
27
+import java.util.regex.Pattern;
27 28
 import java.util.stream.Collectors;
28 29
 
29 30
 import static com.ruoyi.common.utils.SecurityUtils.getUsername;
@@ -46,7 +47,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
46 47
     private CaseAttachMapper caseAttachMapper;
47 48
     @Autowired
48 49
     private SysDeptMapper sysDeptMapper;
49
-
50
+    // 手机号正则
51
+    private static final Pattern TELEPHONE_REGX =  Pattern.compile("^1(3\\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\\d|9[0-35-9])\\d{8}$");
50 52
 
51 53
 
52 54
 
@@ -305,16 +307,21 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
305 307
             List<CaseApplication> caseApplicationListinsert = new ArrayList<>();
306 308
             for (int i = 0; i < caseApplicationList.size(); i++){
307 309
                 CaseApplication caseApplication = caseApplicationList.get(i);
308
-                //根据仲裁费用计费规则计算应缴费用
309
-                //暂时设置计费比率为0.01
310
-                BigDecimal feeRate = new BigDecimal(0.01);
311
-                BigDecimal feePayable  = caseApplication.getCaseSubjectAmount().multiply(feeRate).setScale(2,BigDecimal.ROUND_HALF_UP);
312
-                caseApplication.setFeePayable(feePayable);
313 310
 
314
-                //赋值CaseApplication的案件关联人信息
315
-                List<CaseAffiliate> caseAffiliatesnew  = new ArrayList<>();
316
-                // 组装案件关联人信息
317
-                assignmentCaseAffiliates(caseApplication,caseAffiliatesnew,deptMap);
311
+                // 导入校验
312
+                importValid(caseApplication);
313
+                // 校验成功的数据
314
+                if(StrUtil.isEmpty(caseApplication.getErrorMsg())) {
315
+                    //根据仲裁费用计费规则计算应缴费用
316
+                    //暂时设置计费比率为0.01
317
+                    BigDecimal feeRate = new BigDecimal(0.01);
318
+                    BigDecimal feePayable = caseApplication.getCaseSubjectAmount().multiply(feeRate).setScale(2, BigDecimal.ROUND_HALF_UP);
319
+                    caseApplication.setFeePayable(feePayable);
320
+
321
+                    //赋值CaseApplication的案件关联人信息
322
+                    List<CaseAffiliate> caseAffiliatesnew = new ArrayList<>();
323
+                    // 组装案件关联人信息
324
+                    assignmentCaseAffiliates(caseApplication, caseAffiliatesnew, deptMap);
318 325
 
319 326
 //                int caseApplicationCount = selectCaseApplicationCount(caseApplication);
320 327
 //                if(caseApplicationCount>0){
@@ -323,9 +330,12 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
323 330
 //                }else {
324 331
 //                    caseApplicationListinsert.add(caseApplication);
325 332
 //                }
326
-                caseApplicationListinsert.add(caseApplication);
333
+                    caseApplicationListinsert.add(caseApplication);
334
+                }else {
335
+                    // 拼接错误信息
336
+                    failureMsg.append("<br/>").append("第").append(i+2).append("行:").append(caseApplication.getErrorMsg().toString());
337
+                }
327 338
             }
328
-
329 339
             if(caseApplicationListinsert!=null&&caseApplicationListinsert.size()>0){
330 340
 //                List<CaseApplication> caseApplicationListinsertDiffer = caseApplicationListinsert.stream().collect(
331 341
 //                        collectingAndThen(
@@ -384,15 +394,235 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
384 394
         }else {
385 395
             throw new ServiceException("导入立案申请数据不能为空!");
386 396
         }
387
-        // 编号存在不导入
388
-        if(StringUtils.isNotEmpty(failureMsg)){
389
-            return failureMsg.append(successMsg).toString();
390
-        }else {
397
+            return successMsg.append(failureMsg.toString()).toString();
398
+
399
+    }
400
+
401
+    /**
402
+     * 导入校验
403
+     * @param caseApplication
404
+     * @param
405
+     */
406
+    private void importValid(CaseApplication caseApplication) {
407
+        StringBuilder failureMsg=new StringBuilder();
408
+        caseApplication.setErrorMsg(failureMsg);
409
+        // 校验基本字段
410
+        validBaseColumn(caseApplication,failureMsg);
411
+        // 校验申请人信息
412
+        validApplicationColumn(caseApplication,failureMsg);
413
+        // 校验申请人代理信息
414
+        validApplicationAgentColumn(caseApplication,failureMsg);
415
+        // 校验被申请人信息
416
+        validDebtorApplicationColumn(caseApplication,failureMsg);
417
+        // 校验被申请人代理信息
418
+        validDebtorApplicationAgentColumn(caseApplication,failureMsg);
419
+    }
420
+
421
+    /**
422
+     * 校验被申请人代理信息
423
+     * @param caseApplication
424
+     * @param failureMsg
425
+     */
426
+    private void validDebtorApplicationAgentColumn(CaseApplication caseApplication, StringBuilder failureMsg) {
427
+        if( StrUtil.isEmpty(caseApplication.getDebtorNameAgent())){
428
+            failureMsg.append("【被申请人主体信息-代理人姓名】字段不能为空;");
429
+        }else if(caseApplication.getDebtorNameAgent().length()>50){
430
+            failureMsg.append("【被申请人主体信息-代理人姓名】字段超出指定长度,最大长度为50;");
431
+        }
432
+        if( StrUtil.isEmpty(caseApplication.getDebtorIdentityNumAgent())){
433
+            failureMsg.append("【被申请人主体信息-代理人身份证号】字段不能为空;");
434
+        }else if(caseApplication.getDebtorIdentityNumAgent().length()>50){
435
+            failureMsg.append("【被申请人主体信息-代理人身份证号】字段超出指定长度,最大长度为50;");
436
+        }
437
+        String debtorContactTelphoneAgent = caseApplication.getDebtorContactTelphoneAgent();
438
+        if( StrUtil.isEmpty(debtorContactTelphoneAgent)){
439
+            failureMsg.append("【被申请人主体信息-代理人联系电话】字段不能为空;");
440
+        }else if(!TELEPHONE_REGX.matcher(debtorContactTelphoneAgent).matches()){
441
+            failureMsg.append("【被申请人主体信息-代理人联系电话】字段不合法;");
442
+        }
443
+        if( StrUtil.isEmpty(caseApplication.getDebtorContactAddressAgent())){
444
+            failureMsg.append("【被申请人主体信息-代理人联系地址】字段不能为空;");
445
+        }else if(caseApplication.getDebtorContactAddressAgent().length()>50){
446
+            failureMsg.append("【被申请人主体信息-代理人联系地址】字段超出指定长度,最大长度为50;");
447
+        }
448
+    }
391 449
 
392
-            return successMsg.toString();
450
+    /**
451
+     * 校验被申请人信息
452
+     * @param caseApplication
453
+     * @param failureMsg
454
+     */
455
+    private void validDebtorApplicationColumn(CaseApplication caseApplication, StringBuilder failureMsg) {
456
+        if( StrUtil.isEmpty(caseApplication.getDebtorName())){
457
+            failureMsg.append("【被申请人主体信息-申请人姓名】字段不能为空;");
458
+        }else if(caseApplication.getDebtorName().length()>50){
459
+            failureMsg.append("【被申请人主体信息-申请人姓名】字段超出指定长度,最大长度为50;");
460
+        }
461
+        if( StrUtil.isEmpty(caseApplication.getDebtorIdentityNum())){
462
+            failureMsg.append("【被申请人主体信息-身份证号】字段不能为空;");
463
+        }else if(caseApplication.getDebtorIdentityNum().length()>50){
464
+            failureMsg.append("【被申请人主体信息-身份证号】字段超出指定长度,最大长度为50;");
465
+        }
466
+        String debtorContactTelphone = caseApplication.getDebtorContactTelphone();
467
+        if( StrUtil.isEmpty(debtorContactTelphone)){
468
+            failureMsg.append("【被申请人主体信息-联系电话】字段不能为空;");
469
+        }else if(!TELEPHONE_REGX.matcher(debtorContactTelphone).matches()){
470
+            failureMsg.append("【被申请人主体信息-联系电话】字段不合法;");
471
+        }
472
+        if( StrUtil.isEmpty(caseApplication.getDebtorContactAddress())){
473
+            failureMsg.append("【被申请人主体信息-联系地址】字段不能为空;");
474
+        }else if(caseApplication.getDebtorContactAddress().length()>50){
475
+            failureMsg.append("【被申请人主体信息-联系地址】字段超出指定长度,最大长度为50;");
476
+        }
477
+        String debtorWorkTelphone = caseApplication.getDebtorWorkTelphone();
478
+        if( StrUtil.isEmpty(debtorWorkTelphone)){
479
+            failureMsg.append("【被申请人主体信息-单位电话】字段不能为空;");
480
+        }else if(!TELEPHONE_REGX.matcher(debtorWorkTelphone).matches()){
481
+            failureMsg.append("【被申请人主体信息-单位电话】字段不合法;");
482
+        }
483
+        if( StrUtil.isEmpty(caseApplication.getDebtorWorkAddress())){
484
+            failureMsg.append("【被申请人主体信息-单位地址】字段不能为空;");
485
+        }else if(caseApplication.getDebtorWorkAddress().length()>50){
486
+            failureMsg.append("【被申请人主体信息-单位地址】字段超出指定长度,最大长度为50;");
393 487
         }
394 488
     }
395 489
 
490
+    /**
491
+     * 校验申请人代理信息
492
+     * @param caseApplication
493
+     * @param failureMsg
494
+     */
495
+    private void validApplicationAgentColumn(CaseApplication caseApplication, StringBuilder failureMsg) {
496
+        if( StrUtil.isEmpty(caseApplication.getNameAgent())){
497
+            failureMsg.append("【申请人主体信息-代理人姓名】字段不能为空;");
498
+        }else if(caseApplication.getNameAgent().length()>50){
499
+            failureMsg.append("【申请人主体信息-代理人姓名】字段超出指定长度,最大长度为50;");
500
+        }
501
+        if( StrUtil.isEmpty(caseApplication.getIdentityNumAgent())){
502
+            failureMsg.append("【申请人主体信息-代理人身份证号】字段不能为空;");
503
+        }else if(caseApplication.getIdentityNumAgent().length()>50){
504
+            failureMsg.append("【申请人主体信息-代理人身份证号】字段超出指定长度,最大长度为50;");
505
+        }
506
+        String contactTelphoneAgent = caseApplication.getContactTelphoneAgent();
507
+        if( StrUtil.isEmpty(contactTelphoneAgent)){
508
+            failureMsg.append("【申请人主体信息-代理人联系电话】字段不能为空;");
509
+        }else if(!TELEPHONE_REGX.matcher(contactTelphoneAgent).matches()){
510
+            failureMsg.append("【申请人主体信息-代理人联系电话】字段不合法;");
511
+        }
512
+        if( StrUtil.isEmpty(caseApplication.getContactAddressAgent())){
513
+            failureMsg.append("【申请人主体信息-代理人联系地址】字段不能为空;");
514
+        }else if(caseApplication.getContactAddressAgent().length()>50){
515
+            failureMsg.append("【申请人主体信息-代理人联系地址】字段超出指定长度,最大长度为50;");
516
+        }
517
+    }
518
+
519
+    /**
520
+     * 校验申请人主题信息
521
+     * @param caseApplication
522
+     * @param failureMsg
523
+     */
524
+    private void validApplicationColumn(CaseApplication caseApplication, StringBuilder failureMsg) {
525
+        if( StrUtil.isEmpty(caseApplication.getName())){
526
+            failureMsg.append("【申请人主体信息-申请人(机构)】字段不能为空;");
527
+        }else if(caseApplication.getName().length()>20){
528
+            failureMsg.append("【申请人主体信息-申请人(机构)】字段超出指定长度,最大长度为20;");
529
+        }
530
+        if( StrUtil.isNotEmpty(caseApplication.getIdentityNum())&&caseApplication.getIdentityNum().length()>50){
531
+            failureMsg.append("【申请人主体信息-代码】字段超出指定长度,最大长度为50;");
532
+        }
533
+        String contactTelphone = caseApplication.getContactTelphone();
534
+        if( StrUtil.isEmpty(contactTelphone)){
535
+            failureMsg.append("【申请人主体信息-联系电话】字段不能为空;");
536
+        }else if(!TELEPHONE_REGX.matcher(contactTelphone).matches()){
537
+            failureMsg.append("【申请人主体信息-联系电话】字段不合法;");
538
+        }
539
+        if( StrUtil.isEmpty(caseApplication.getContactAddress())){
540
+            failureMsg.append("【申请人主体信息-联系地址】字段不能为空;");
541
+        }else if(caseApplication.getName().length()>50){
542
+            failureMsg.append("【申请人主体信息-联系地址】字段超出指定长度,最大长度为50;");
543
+        }
544
+        String workTelphone = caseApplication.getWorkTelphone();
545
+        if( StrUtil.isEmpty(workTelphone)){
546
+            failureMsg.append("【申请人主体信息-单位电话】字段不能为空;");
547
+        }else if(!TELEPHONE_REGX.matcher(workTelphone).matches()){
548
+            failureMsg.append("【申请人主体信息-单位电话】字段不合法;");
549
+        }
550
+        if( StrUtil.isEmpty(caseApplication.getWorkAddress())){
551
+            failureMsg.append("【申请人主体信息-单位地址】字段不能为空;");
552
+        }else if(caseApplication.getWorkAddress().length()>50){
553
+            failureMsg.append("【申请人主体信息-单位地址】字段超出指定长度,最大长度为50;");
554
+        }
555
+    }
556
+
557
+    /**
558
+     * 校验基本字段
559
+     * @param caseApplication
560
+     * @param failureMsg
561
+     */
562
+    private void validBaseColumn(CaseApplication caseApplication, StringBuilder failureMsg) {
563
+        BigDecimal caseSubjectAmount = caseApplication.getCaseSubjectAmount();
564
+        if(null== caseSubjectAmount){
565
+            failureMsg.append("【案件标的】字段不合法;");
566
+        }else {
567
+            if(caseSubjectAmount.compareTo(new BigDecimal("0")) < 0 ||caseSubjectAmount.compareTo(new BigDecimal("99999999.99"))>0){
568
+                failureMsg.append("【案件标的】字段超出范围,范围为[0,100000000);");
569
+            }
570
+            if(caseSubjectAmount.scale()>2){
571
+                failureMsg.append("【案件标的】字段超出指定精度(10^-2);");
572
+            }
573
+        }
574
+        if( caseApplication.getLoanStartDate()== null){
575
+            failureMsg.append("【借款开始日期】字段不合法;");
576
+        }
577
+        if( caseApplication.getLoanEndDate()== null){
578
+            failureMsg.append("【借款结束日期】字段不合法;");
579
+        }
580
+        if( StrUtil.isEmpty(caseApplication.getContractNumber())){
581
+            failureMsg.append("【合同编号】字段不能为空;");
582
+        }else if(caseApplication.getContractNumber().length()>50){
583
+            failureMsg.append("【合同编号】字段超出指定长度,最大长度为50;");
584
+        }
585
+        BigDecimal claimPrinciOwed = caseApplication.getClaimPrinciOwed();
586
+        if(null== claimPrinciOwed){
587
+            failureMsg.append("【申请人主张欠本金】字段不合法;");
588
+        }else {
589
+            if(claimPrinciOwed.compareTo(new BigDecimal("0")) < 0 ||claimPrinciOwed.compareTo(new BigDecimal("99999999.99"))>0){
590
+                failureMsg.append("【申请人主张欠本金】字段超出范围,范围为[0,100000000);");
591
+            }
592
+            if(claimPrinciOwed.scale()>2){
593
+                failureMsg.append("【申请人主张欠本金】字段超出指定精度(10^-2);");
594
+            }
595
+        }
596
+        BigDecimal claimInterestOwed = caseApplication.getClaimInterestOwed();
597
+        if(null== claimInterestOwed){
598
+            failureMsg.append("【申请人主张欠利息】字段不合法;");
599
+        }else {
600
+            if(claimInterestOwed.compareTo(new BigDecimal("0")) < 0 ||claimInterestOwed.compareTo(new BigDecimal("99999999.99"))>0){
601
+                failureMsg.append("【申请人主张欠利息】字段超出范围,范围为[0,100000000);");
602
+            }
603
+            if(claimInterestOwed.scale()>2){
604
+                failureMsg.append("【申请人主张欠利息】字段超出指定精度(10^-2);");
605
+            }
606
+        }
607
+        BigDecimal claimLiquidDamag = caseApplication.getClaimLiquidDamag();
608
+        if(null== claimLiquidDamag){
609
+            failureMsg.append("【申请人主张违约金】字段不合法;");
610
+        }else {
611
+            if(claimLiquidDamag.compareTo(new BigDecimal("0")) < 0 ||claimLiquidDamag.compareTo(new BigDecimal("99999999.99"))>0){
612
+                failureMsg.append("【申请人主张违约金】字段超出范围,范围为[0,100000000);");
613
+            }
614
+            if(claimLiquidDamag.scale()>2){
615
+                failureMsg.append("【申请人主张违约金】字段超出指定精度(10^-2);");
616
+            }
617
+        }
618
+        if( StrUtil.isEmpty(caseApplication.getArbitratClaims())){
619
+            failureMsg.append("【申请人仲裁诉求】字段不能为空;");
620
+        }else if(caseApplication.getArbitratClaims().length()>10000){
621
+            failureMsg.append("【申请人仲裁诉求】字段超出指定长度,最大长度为10000;");
622
+        }
623
+    }
624
+
625
+
396 626
     @Override
397 627
     @Transactional
398 628
     public int pendTral(CaseApplication caseApplication) {
@@ -751,5 +981,4 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
751 981
         caseApplicationNew.setFeePayable(caseApplicationinsertDiffer.getFeePayable());
752 982
     }
753 983
 
754
-
755 984
 }