Bladeren bron

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

wangqiong123 2 jaren geleden
bovenliggende
commit
45d23fbab6

+ 1
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseAffiliateMapper.java Bestand weergeven

19
 
19
 
20
 
20
 
21
     List<CaseAffiliate>  selectCaseAffiliate(CaseAffiliate caseAffiliate);
21
     List<CaseAffiliate>  selectCaseAffiliate(CaseAffiliate caseAffiliate);
22
+    List<CaseAffiliate>  selectCaseAffiliateByCaseIds(@Param("ids") List<Long> ids);
22
     CaseAffiliate  selectCaseAffiliateByIdentityType(@Param("caseAppliId") Long caseAppliId, @Param("identityType")int identityType);
23
     CaseAffiliate  selectCaseAffiliateByIdentityType(@Param("caseAppliId") Long caseAppliId, @Param("identityType")int identityType);
23
 
24
 
24
     int updataCaseAffiliate(CaseAffiliate caseAffiliate);
25
     int updataCaseAffiliate(CaseAffiliate caseAffiliate);

+ 3
- 1
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseLogRecordMapper.java Bestand weergeven

2
 
2
 
3
 import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
3
 import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
4
 import com.ruoyi.wisdomarbitrate.domain.CaseLogRecord;
4
 import com.ruoyi.wisdomarbitrate.domain.CaseLogRecord;
5
+import org.apache.ibatis.annotations.Mapper;
6
+import org.springframework.stereotype.Repository;
5
 
7
 
6
 import java.util.List;
8
 import java.util.List;
7
-
9
+@Mapper
8
 public interface CaseLogRecordMapper {
10
 public interface CaseLogRecordMapper {
9
 
11
 
10
 
12
 

+ 2
- 2
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationLogServiceImpl.java Bestand weergeven

257
         compareCaseVO.setBeforeCase(beforeCase);
257
         compareCaseVO.setBeforeCase(beforeCase);
258
         compareCaseVO.setAfterCase(afterCase);
258
         compareCaseVO.setAfterCase(afterCase);
259
         // 对比两个版本修改的字段
259
         // 对比两个版本修改的字段
260
-        String[] columns = {"caseSubjectAmount","loanStartDate", "loanEndDate","contractNumber","claimInterestOwed","claimLiquidDamag",
260
+        String[] columns = {"caseName","caseSubjectAmount","loanStartDate", "loanEndDate","contractNumber","claimInterestOwed","claimLiquidDamag",
261
                 "claimPrinciOwed","arbitratClaims","properPreser","requestRule"};
261
                 "claimPrinciOwed","arbitratClaims","properPreser","requestRule"};
262
-        String[] affiliateColumns = {"name", "identityNum","contactTelphone","contactAddress","workTelphone","workAddress",
262
+        String[] affiliateColumns = {"name", "identityNum","contactTelphone","contactAddress","workTelphone","workAddress","email",
263
                 "nameAgent", "identityNumAgent","contactTelphoneAgent","contactAddressAgent","residenAffili","compLegalPerson",
263
                 "nameAgent", "identityNumAgent","contactTelphoneAgent","contactAddressAgent","residenAffili","compLegalPerson",
264
         "compLegalperPost","responSex","responBirth"};
264
         "compLegalperPost","responSex","responBirth"};
265
         StringBuilder changeColumn = new StringBuilder();
265
         StringBuilder changeColumn = new StringBuilder();

+ 73
- 10
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java Bestand weergeven

70
 import java.time.LocalDate;
70
 import java.time.LocalDate;
71
 import java.time.ZoneId;
71
 import java.time.ZoneId;
72
 import java.util.*;
72
 import java.util.*;
73
+import java.util.function.Function;
73
 import java.util.regex.Pattern;
74
 import java.util.regex.Pattern;
74
 import java.util.stream.Collectors;
75
 import java.util.stream.Collectors;
75
 import java.util.zip.ZipEntry;
76
 import java.util.zip.ZipEntry;
136
     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}$");
137
     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}$");
137
     // 邮箱正则
138
     // 邮箱正则
138
     private static final Pattern EMAIL_PATTERN = Pattern.compile("^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$");
139
     private static final Pattern EMAIL_PATTERN = Pattern.compile("^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$");
139
-    // 身份证号码正则表达式
140
-    private static final String ID_REGEX = "^(\\\\d{15}$|\\\\d{18}$|\\\\d{17}([0-9]|X))$";
140
+
141
+    // 基本字段校验
142
+    private static final  String[] baseColumns = {"caseName","caseSubjectAmount","loanStartDate", "loanEndDate","contractNumber","claimInterestOwed","claimLiquidDamag",
143
+            "claimPrinciOwed","arbitratClaims"};
144
+    // 申请人字段校验
145
+    private static final String[] applicAffiliateColumns = {"name", "contactTelphone","contactAddress","workTelphone","workAddress",
146
+           "residenAffili","compLegalPerson",
147
+            "compLegalperPost","email","nameAgent", "identityNumAgent","contactTelphoneAgent","contactAddressAgent"};
148
+    // 申请人/被申请人代理人字段校验
149
+    private static final String[] applicAgentAffiliateColumns = {"nameAgent", "identityNumAgent","contactTelphoneAgent","contactAddressAgent"};
150
+    // 被申请人字段校验
151
+    private static final  String[] dectborAffiliateColumns = {"name", "identityNum","contactTelphone","contactAddress","workTelphone","workAddress",
152
+           "residenAffili","responSex","responBirth","email","nameAgent", "identityNumAgent","contactTelphoneAgent","contactAddressAgent"};
141
 
153
 
142
     /**
154
     /**
143
      * 数据权限:1.每个人不同的角色,而每个角色可以操作不同的案件状态
155
      * 数据权限:1.每个人不同的角色,而每个角色可以操作不同的案件状态
1275
     @Transactional
1287
     @Transactional
1276
     public int submitCaseApplication(List<Long> ids) {
1288
     public int submitCaseApplication(List<Long> ids) {
1277
         int rows = 0;
1289
         int rows = 0;
1278
-        for (Long id : ids) {
1279
-            CaseApplication application = new CaseApplication();
1280
-            application.setId(id);
1281
-            //提交立案申请
1282
-            application.setCaseStatus(CaseApplicationConstants.CASE_CHECK);
1283
-            rows += caseApplicationMapper.submitCaseApplication(application);
1284
-            // 新增日志
1285
-            insertCaseLog(application.getId(), CaseApplicationConstants.CASE_CHECK, "");
1290
+        // 查询案件信息,做必填校验,校验不通过,提示,不能提交
1291
+        StringBuilder errorMsg = new StringBuilder();
1292
+        List<CaseApplication> caseApplications = caseApplicationMapper.listCaseApplicationByIds(ids);
1293
+        if(CollectionUtil.isNotEmpty(caseApplications)) {
1294
+
1295
+            Map<Long, CaseApplication> applicationMap = caseApplications.stream().collect(Collectors.toMap(CaseApplication::getId, Function.identity(), (n1, n2) -> n2));
1296
+            List<CaseAffiliate> caseAffiliates = caseAffiliateMapper.selectCaseAffiliateByCaseIds(ids);
1297
+            // 转换为Map<CaseId,List<CaseAffiliate>>形式
1298
+            Map<Long, List<CaseAffiliate>> caseAffiliateMap = caseAffiliates.stream().collect(Collectors.groupingBy(CaseAffiliate::getCaseAppliId));
1299
+            for (Long id : ids) {
1300
+                // 必填校验
1301
+                CaseApplication caseApplication = applicationMap.get(id);
1302
+                // 基本字段校验
1303
+                if(caseApplication!=null) {
1304
+                    for (String baseColumn : baseColumns) {
1305
+                       if(StrUtil.isEmpty( ObjectFieldUtils.getValue(caseApplication, baseColumn))){
1306
+                           errorMsg.append(baseColumn).append("不能为空,");
1307
+                           // todo 暂抛出异常,后边改为提示具体的字段
1308
+                           throw new ServiceException("必填字段未填写,请完善案件信息!");
1309
+                       }
1310
+                    }
1311
+                    // 校验人员
1312
+                    if(CollectionUtil.isNotEmpty(caseAffiliates)){
1313
+                        List<CaseAffiliate> affiliateList = caseAffiliateMap.get(id);
1314
+                        if(CollectionUtil.isNotEmpty(affiliateList)){
1315
+                            for (CaseAffiliate caseAffiliate : affiliateList) {
1316
+                                if(caseAffiliate.getIdentityType()==1){
1317
+                                    // 校验申请人
1318
+                                    for (String applicAffiliateColumn : applicAffiliateColumns) {
1319
+                                        if(StrUtil.isEmpty( ObjectFieldUtils.getValue(caseApplication, applicAffiliateColumn))){
1320
+                                            errorMsg.append(applicAffiliateColumn).append("不能为空,");
1321
+                                            // todo 暂抛出异常,后边改为提示具体的字段
1322
+                                            throw new ServiceException("必填字段未填写,请完善案件信息!");
1323
+                                        }
1324
+                                    }
1325
+                                    }else {
1326
+                                    // 校验被申请人
1327
+                                    // 校验申请人
1328
+                                    for (String applicAffiliateColumn : dectborAffiliateColumns) {
1329
+                                        if(StrUtil.isEmpty( ObjectFieldUtils.getValue(caseApplication, applicAffiliateColumn))){
1330
+                                            errorMsg.append(applicAffiliateColumn).append("不能为空,");
1331
+                                            // todo 暂抛出异常,后边改为提示具体的字段
1332
+                                            throw new ServiceException("必填字段未填写,请完善案件信息!");
1333
+                                        }
1334
+                                    }
1335
+                                }
1336
+                            }
1337
+                        }
1338
+                    }
1339
+                }
1340
+
1341
+                CaseApplication application = new CaseApplication();
1342
+                application.setId(id);
1343
+                //提交立案申请
1344
+                application.setCaseStatus(CaseApplicationConstants.CASE_CHECK);
1345
+                rows += caseApplicationMapper.submitCaseApplication(application);
1346
+                // 新增日志
1347
+                insertCaseLog(application.getId(), CaseApplicationConstants.CASE_CHECK, "");
1348
+            }
1286
         }
1349
         }
1287
         return rows;
1350
         return rows;
1288
     }
1351
     }

+ 14
- 0
ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseAffiliateMapper.xml Bestand weergeven

45
             </if>
45
             </if>
46
         </where>
46
         </where>
47
     </select>
47
     </select>
48
+    <select id="selectCaseAffiliateByCaseIds" resultMap="CaseAffiliateResult">
49
+        select c.*,s.user_id
50
+        from case_affiliate c
51
+        left join sys_user s on c.identity_num=s.id_card
52
+        <where>
53
+            <if test="ids != null ">
54
+                case_appli_id in
55
+                <foreach collection="ids" item="item" open="(" separator="," close=")">
56
+                    #{item}
57
+                </foreach>
58
+            </if>
59
+        </where>
60
+    </select>
48
     <select id="selectCaseAffiliateByIdentityType"  resultMap="CaseAffiliateResult">
61
     <select id="selectCaseAffiliateByIdentityType"  resultMap="CaseAffiliateResult">
49
         select c.*
62
         select c.*
50
         from case_affiliate c
63
         from case_affiliate c
64
     </select>
77
     </select>
65
 
78
 
66
 
79
 
80
+
67
     <insert id="batchCaseAffiliate">
81
     <insert id="batchCaseAffiliate">
68
         insert into case_affiliate(case_appli_id, identity_type,application_organ_id,application_organ_name,name,identity_num,contact_telphone,
82
         insert into case_affiliate(case_appli_id, identity_type,application_organ_id,application_organ_name,name,identity_num,contact_telphone,
69
         contact_address,work_address,work_telphone ,name_agent,identity_num_agent,contact_telphone_agent,
83
         contact_address,work_address,work_telphone ,name_agent,identity_num_agent,contact_telphone_agent,