diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseAffiliateMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseAffiliateMapper.java index d934a3c..97eca71 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseAffiliateMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseAffiliateMapper.java @@ -19,6 +19,7 @@ public interface CaseAffiliateMapper { List selectCaseAffiliate(CaseAffiliate caseAffiliate); + List selectCaseAffiliateByCaseIds(@Param("ids") List ids); CaseAffiliate selectCaseAffiliateByIdentityType(@Param("caseAppliId") Long caseAppliId, @Param("identityType")int identityType); int updataCaseAffiliate(CaseAffiliate caseAffiliate); diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseLogRecordMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseLogRecordMapper.java index 9dd368e..8306178 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseLogRecordMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseLogRecordMapper.java @@ -2,9 +2,11 @@ package com.ruoyi.wisdomarbitrate.mapper; import com.ruoyi.wisdomarbitrate.domain.CaseApplication; import com.ruoyi.wisdomarbitrate.domain.CaseLogRecord; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; import java.util.List; - +@Mapper public interface CaseLogRecordMapper { diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationLogServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationLogServiceImpl.java index 17eaef7..5b39293 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationLogServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationLogServiceImpl.java @@ -257,9 +257,9 @@ public class CaseApplicationLogServiceImpl implements CaseApplicationLogService compareCaseVO.setBeforeCase(beforeCase); compareCaseVO.setAfterCase(afterCase); // 对比两个版本修改的字段 - String[] columns = {"caseSubjectAmount","loanStartDate", "loanEndDate","contractNumber","claimInterestOwed","claimLiquidDamag", + String[] columns = {"caseName","caseSubjectAmount","loanStartDate", "loanEndDate","contractNumber","claimInterestOwed","claimLiquidDamag", "claimPrinciOwed","arbitratClaims","properPreser","requestRule"}; - String[] affiliateColumns = {"name", "identityNum","contactTelphone","contactAddress","workTelphone","workAddress", + String[] affiliateColumns = {"name", "identityNum","contactTelphone","contactAddress","workTelphone","workAddress","email", "nameAgent", "identityNumAgent","contactTelphoneAgent","contactAddressAgent","residenAffili","compLegalPerson", "compLegalperPost","responSex","responBirth"}; StringBuilder changeColumn = new StringBuilder(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java index 6f5d47e..77b1eb4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java @@ -70,6 +70,7 @@ import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.ZoneId; import java.util.*; +import java.util.function.Function; import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.zip.ZipEntry; @@ -136,8 +137,19 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { 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}$"); // 邮箱正则 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}$"); - // 身份证号码正则表达式 - private static final String ID_REGEX = "^(\\\\d{15}$|\\\\d{18}$|\\\\d{17}([0-9]|X))$"; + + // 基本字段校验 + private static final String[] baseColumns = {"caseName","caseSubjectAmount","loanStartDate", "loanEndDate","contractNumber","claimInterestOwed","claimLiquidDamag", + "claimPrinciOwed","arbitratClaims"}; + // 申请人字段校验 + private static final String[] applicAffiliateColumns = {"name", "contactTelphone","contactAddress","workTelphone","workAddress", + "residenAffili","compLegalPerson", + "compLegalperPost","email","nameAgent", "identityNumAgent","contactTelphoneAgent","contactAddressAgent"}; + // 申请人/被申请人代理人字段校验 + private static final String[] applicAgentAffiliateColumns = {"nameAgent", "identityNumAgent","contactTelphoneAgent","contactAddressAgent"}; + // 被申请人字段校验 + private static final String[] dectborAffiliateColumns = {"name", "identityNum","contactTelphone","contactAddress","workTelphone","workAddress", + "residenAffili","responSex","responBirth","email","nameAgent", "identityNumAgent","contactTelphoneAgent","contactAddressAgent"}; /** * 数据权限:1.每个人不同的角色,而每个角色可以操作不同的案件状态 @@ -1275,14 +1287,65 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { @Transactional public int submitCaseApplication(List ids) { int rows = 0; - for (Long id : ids) { - CaseApplication application = new CaseApplication(); - application.setId(id); - //提交立案申请 - application.setCaseStatus(CaseApplicationConstants.CASE_CHECK); - rows += caseApplicationMapper.submitCaseApplication(application); - // 新增日志 - insertCaseLog(application.getId(), CaseApplicationConstants.CASE_CHECK, ""); + // 查询案件信息,做必填校验,校验不通过,提示,不能提交 + StringBuilder errorMsg = new StringBuilder(); + List caseApplications = caseApplicationMapper.listCaseApplicationByIds(ids); + if(CollectionUtil.isNotEmpty(caseApplications)) { + + Map applicationMap = caseApplications.stream().collect(Collectors.toMap(CaseApplication::getId, Function.identity(), (n1, n2) -> n2)); + List caseAffiliates = caseAffiliateMapper.selectCaseAffiliateByCaseIds(ids); + // 转换为Map>形式 + Map> caseAffiliateMap = caseAffiliates.stream().collect(Collectors.groupingBy(CaseAffiliate::getCaseAppliId)); + for (Long id : ids) { + // 必填校验 + CaseApplication caseApplication = applicationMap.get(id); + // 基本字段校验 + if(caseApplication!=null) { + for (String baseColumn : baseColumns) { + if(StrUtil.isEmpty( ObjectFieldUtils.getValue(caseApplication, baseColumn))){ + errorMsg.append(baseColumn).append("不能为空,"); + // todo 暂抛出异常,后边改为提示具体的字段 + throw new ServiceException("必填字段未填写,请完善案件信息!"); + } + } + // 校验人员 + if(CollectionUtil.isNotEmpty(caseAffiliates)){ + List affiliateList = caseAffiliateMap.get(id); + if(CollectionUtil.isNotEmpty(affiliateList)){ + for (CaseAffiliate caseAffiliate : affiliateList) { + if(caseAffiliate.getIdentityType()==1){ + // 校验申请人 + for (String applicAffiliateColumn : applicAffiliateColumns) { + if(StrUtil.isEmpty( ObjectFieldUtils.getValue(caseApplication, applicAffiliateColumn))){ + errorMsg.append(applicAffiliateColumn).append("不能为空,"); + // todo 暂抛出异常,后边改为提示具体的字段 + throw new ServiceException("必填字段未填写,请完善案件信息!"); + } + } + }else { + // 校验被申请人 + // 校验申请人 + for (String applicAffiliateColumn : dectborAffiliateColumns) { + if(StrUtil.isEmpty( ObjectFieldUtils.getValue(caseApplication, applicAffiliateColumn))){ + errorMsg.append(applicAffiliateColumn).append("不能为空,"); + // todo 暂抛出异常,后边改为提示具体的字段 + throw new ServiceException("必填字段未填写,请完善案件信息!"); + } + } + } + } + } + } + } + + CaseApplication application = new CaseApplication(); + application.setId(id); + //提交立案申请 + application.setCaseStatus(CaseApplicationConstants.CASE_CHECK); + rows += caseApplicationMapper.submitCaseApplication(application); + // 新增日志 + insertCaseLog(application.getId(), CaseApplicationConstants.CASE_CHECK, ""); + } } return rows; } diff --git a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseAffiliateMapper.xml b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseAffiliateMapper.xml index abd290e..b89b6eb 100644 --- a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseAffiliateMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseAffiliateMapper.xml @@ -45,6 +45,19 @@ + + insert into case_affiliate(case_appli_id, identity_type,application_organ_id,application_organ_name,name,identity_num,contact_telphone, contact_address,work_address,work_telphone ,name_agent,identity_num_agent,contact_telphone_agent,