|
|
@@ -70,6 +70,7 @@ import java.text.SimpleDateFormat;
|
|
70
|
70
|
import java.time.LocalDate;
|
|
71
|
71
|
import java.time.ZoneId;
|
|
72
|
72
|
import java.util.*;
|
|
|
73
|
+import java.util.function.Function;
|
|
73
|
74
|
import java.util.regex.Pattern;
|
|
74
|
75
|
import java.util.stream.Collectors;
|
|
75
|
76
|
import java.util.zip.ZipEntry;
|
|
|
@@ -136,8 +137,19 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
|
136
|
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
|
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
|
155
|
* 数据权限:1.每个人不同的角色,而每个角色可以操作不同的案件状态
|
|
|
@@ -1275,14 +1287,65 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
|
|
1275
|
1287
|
@Transactional
|
|
1276
|
1288
|
public int submitCaseApplication(List<Long> ids) {
|
|
1277
|
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
|
1350
|
return rows;
|
|
1288
|
1351
|
}
|