From 24f15d82369e692915802e2402eeee6a526c7657 Mon Sep 17 00:00:00 2001 From: 18792927508 <1322446236@qq.com> Date: Wed, 11 Oct 2023 16:40:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=AF=BC=E5=85=A5=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CaseApplicationController.java | 3 + .../domain/CaseApplication.java | 10 + .../impl/CaseApplicationServiceImpl.java | 265 ++++++++++++++++-- 3 files changed, 260 insertions(+), 18 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java index fa501cb..de992f1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java @@ -108,6 +108,9 @@ public class CaseApplicationController extends BaseController { @PreAuthorize("@ss.hasPermi('caseManagement:list:import')") @PostMapping("/importData") public AjaxResult importData(MultipartFile file) throws Exception { + if(file==null){ + return warn("请上传文件"); + } ExcelUtil util = new ExcelUtil(CaseApplication.class); List caseApplicationList = util.importExcel(file.getInputStream()); String operName = getUsername(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseApplication.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseApplication.java index 2a5dbc5..ac77efe 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseApplication.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseApplication.java @@ -114,6 +114,16 @@ public class CaseApplication extends BaseEntity { private Integer paymentStatus; /** 支付状态描述 */ private String paymentStatusName; + // 导入校验失败信息 + private StringBuilder errorMsg; + + public StringBuilder getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(StringBuilder errorMsg) { + this.errorMsg = errorMsg; + } public Integer getPaymentStatus() { return paymentStatus; 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 7c8301f..adf49a0 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 @@ -24,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; +import java.util.regex.Pattern; import java.util.stream.Collectors; import static com.ruoyi.common.utils.SecurityUtils.getUsername; @@ -46,7 +47,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { private CaseAttachMapper caseAttachMapper; @Autowired private SysDeptMapper sysDeptMapper; - + // 手机号正则 + 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}$"); @@ -305,16 +307,21 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { List caseApplicationListinsert = new ArrayList<>(); for (int i = 0; i < caseApplicationList.size(); i++){ CaseApplication caseApplication = caseApplicationList.get(i); - //根据仲裁费用计费规则计算应缴费用 - //暂时设置计费比率为0.01 - BigDecimal feeRate = new BigDecimal(0.01); - BigDecimal feePayable = caseApplication.getCaseSubjectAmount().multiply(feeRate).setScale(2,BigDecimal.ROUND_HALF_UP); - caseApplication.setFeePayable(feePayable); - //赋值CaseApplication的案件关联人信息 - List caseAffiliatesnew = new ArrayList<>(); - // 组装案件关联人信息 - assignmentCaseAffiliates(caseApplication,caseAffiliatesnew,deptMap); + // 导入校验 + importValid(caseApplication); + // 校验成功的数据 + if(StrUtil.isEmpty(caseApplication.getErrorMsg())) { + //根据仲裁费用计费规则计算应缴费用 + //暂时设置计费比率为0.01 + BigDecimal feeRate = new BigDecimal(0.01); + BigDecimal feePayable = caseApplication.getCaseSubjectAmount().multiply(feeRate).setScale(2, BigDecimal.ROUND_HALF_UP); + caseApplication.setFeePayable(feePayable); + + //赋值CaseApplication的案件关联人信息 + List caseAffiliatesnew = new ArrayList<>(); + // 组装案件关联人信息 + assignmentCaseAffiliates(caseApplication, caseAffiliatesnew, deptMap); // int caseApplicationCount = selectCaseApplicationCount(caseApplication); // if(caseApplicationCount>0){ @@ -323,9 +330,12 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { // }else { // caseApplicationListinsert.add(caseApplication); // } - caseApplicationListinsert.add(caseApplication); + caseApplicationListinsert.add(caseApplication); + }else { + // 拼接错误信息 + failureMsg.append("
").append("第").append(i+2).append("行:").append(caseApplication.getErrorMsg().toString()); + } } - if(caseApplicationListinsert!=null&&caseApplicationListinsert.size()>0){ // List caseApplicationListinsertDiffer = caseApplicationListinsert.stream().collect( // collectingAndThen( @@ -384,15 +394,235 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { }else { throw new ServiceException("导入立案申请数据不能为空!"); } - // 编号存在不导入 - if(StringUtils.isNotEmpty(failureMsg)){ - return failureMsg.append(successMsg).toString(); - }else { + return successMsg.append(failureMsg.toString()).toString(); - return successMsg.toString(); + } + + /** + * 导入校验 + * @param caseApplication + * @param + */ + private void importValid(CaseApplication caseApplication) { + StringBuilder failureMsg=new StringBuilder(); + caseApplication.setErrorMsg(failureMsg); + // 校验基本字段 + validBaseColumn(caseApplication,failureMsg); + // 校验申请人信息 + validApplicationColumn(caseApplication,failureMsg); + // 校验申请人代理信息 + validApplicationAgentColumn(caseApplication,failureMsg); + // 校验被申请人信息 + validDebtorApplicationColumn(caseApplication,failureMsg); + // 校验被申请人代理信息 + validDebtorApplicationAgentColumn(caseApplication,failureMsg); + } + + /** + * 校验被申请人代理信息 + * @param caseApplication + * @param failureMsg + */ + private void validDebtorApplicationAgentColumn(CaseApplication caseApplication, StringBuilder failureMsg) { + if( StrUtil.isEmpty(caseApplication.getDebtorNameAgent())){ + failureMsg.append("【被申请人主体信息-代理人姓名】字段不能为空;"); + }else if(caseApplication.getDebtorNameAgent().length()>50){ + failureMsg.append("【被申请人主体信息-代理人姓名】字段超出指定长度,最大长度为50;"); + } + if( StrUtil.isEmpty(caseApplication.getDebtorIdentityNumAgent())){ + failureMsg.append("【被申请人主体信息-代理人身份证号】字段不能为空;"); + }else if(caseApplication.getDebtorIdentityNumAgent().length()>50){ + failureMsg.append("【被申请人主体信息-代理人身份证号】字段超出指定长度,最大长度为50;"); + } + String debtorContactTelphoneAgent = caseApplication.getDebtorContactTelphoneAgent(); + if( StrUtil.isEmpty(debtorContactTelphoneAgent)){ + failureMsg.append("【被申请人主体信息-代理人联系电话】字段不能为空;"); + }else if(!TELEPHONE_REGX.matcher(debtorContactTelphoneAgent).matches()){ + failureMsg.append("【被申请人主体信息-代理人联系电话】字段不合法;"); + } + if( StrUtil.isEmpty(caseApplication.getDebtorContactAddressAgent())){ + failureMsg.append("【被申请人主体信息-代理人联系地址】字段不能为空;"); + }else if(caseApplication.getDebtorContactAddressAgent().length()>50){ + failureMsg.append("【被申请人主体信息-代理人联系地址】字段超出指定长度,最大长度为50;"); } } + /** + * 校验被申请人信息 + * @param caseApplication + * @param failureMsg + */ + private void validDebtorApplicationColumn(CaseApplication caseApplication, StringBuilder failureMsg) { + if( StrUtil.isEmpty(caseApplication.getDebtorName())){ + failureMsg.append("【被申请人主体信息-申请人姓名】字段不能为空;"); + }else if(caseApplication.getDebtorName().length()>50){ + failureMsg.append("【被申请人主体信息-申请人姓名】字段超出指定长度,最大长度为50;"); + } + if( StrUtil.isEmpty(caseApplication.getDebtorIdentityNum())){ + failureMsg.append("【被申请人主体信息-身份证号】字段不能为空;"); + }else if(caseApplication.getDebtorIdentityNum().length()>50){ + failureMsg.append("【被申请人主体信息-身份证号】字段超出指定长度,最大长度为50;"); + } + String debtorContactTelphone = caseApplication.getDebtorContactTelphone(); + if( StrUtil.isEmpty(debtorContactTelphone)){ + failureMsg.append("【被申请人主体信息-联系电话】字段不能为空;"); + }else if(!TELEPHONE_REGX.matcher(debtorContactTelphone).matches()){ + failureMsg.append("【被申请人主体信息-联系电话】字段不合法;"); + } + if( StrUtil.isEmpty(caseApplication.getDebtorContactAddress())){ + failureMsg.append("【被申请人主体信息-联系地址】字段不能为空;"); + }else if(caseApplication.getDebtorContactAddress().length()>50){ + failureMsg.append("【被申请人主体信息-联系地址】字段超出指定长度,最大长度为50;"); + } + String debtorWorkTelphone = caseApplication.getDebtorWorkTelphone(); + if( StrUtil.isEmpty(debtorWorkTelphone)){ + failureMsg.append("【被申请人主体信息-单位电话】字段不能为空;"); + }else if(!TELEPHONE_REGX.matcher(debtorWorkTelphone).matches()){ + failureMsg.append("【被申请人主体信息-单位电话】字段不合法;"); + } + if( StrUtil.isEmpty(caseApplication.getDebtorWorkAddress())){ + failureMsg.append("【被申请人主体信息-单位地址】字段不能为空;"); + }else if(caseApplication.getDebtorWorkAddress().length()>50){ + failureMsg.append("【被申请人主体信息-单位地址】字段超出指定长度,最大长度为50;"); + } + } + + /** + * 校验申请人代理信息 + * @param caseApplication + * @param failureMsg + */ + private void validApplicationAgentColumn(CaseApplication caseApplication, StringBuilder failureMsg) { + if( StrUtil.isEmpty(caseApplication.getNameAgent())){ + failureMsg.append("【申请人主体信息-代理人姓名】字段不能为空;"); + }else if(caseApplication.getNameAgent().length()>50){ + failureMsg.append("【申请人主体信息-代理人姓名】字段超出指定长度,最大长度为50;"); + } + if( StrUtil.isEmpty(caseApplication.getIdentityNumAgent())){ + failureMsg.append("【申请人主体信息-代理人身份证号】字段不能为空;"); + }else if(caseApplication.getIdentityNumAgent().length()>50){ + failureMsg.append("【申请人主体信息-代理人身份证号】字段超出指定长度,最大长度为50;"); + } + String contactTelphoneAgent = caseApplication.getContactTelphoneAgent(); + if( StrUtil.isEmpty(contactTelphoneAgent)){ + failureMsg.append("【申请人主体信息-代理人联系电话】字段不能为空;"); + }else if(!TELEPHONE_REGX.matcher(contactTelphoneAgent).matches()){ + failureMsg.append("【申请人主体信息-代理人联系电话】字段不合法;"); + } + if( StrUtil.isEmpty(caseApplication.getContactAddressAgent())){ + failureMsg.append("【申请人主体信息-代理人联系地址】字段不能为空;"); + }else if(caseApplication.getContactAddressAgent().length()>50){ + failureMsg.append("【申请人主体信息-代理人联系地址】字段超出指定长度,最大长度为50;"); + } + } + + /** + * 校验申请人主题信息 + * @param caseApplication + * @param failureMsg + */ + private void validApplicationColumn(CaseApplication caseApplication, StringBuilder failureMsg) { + if( StrUtil.isEmpty(caseApplication.getName())){ + failureMsg.append("【申请人主体信息-申请人(机构)】字段不能为空;"); + }else if(caseApplication.getName().length()>20){ + failureMsg.append("【申请人主体信息-申请人(机构)】字段超出指定长度,最大长度为20;"); + } + if( StrUtil.isNotEmpty(caseApplication.getIdentityNum())&&caseApplication.getIdentityNum().length()>50){ + failureMsg.append("【申请人主体信息-代码】字段超出指定长度,最大长度为50;"); + } + String contactTelphone = caseApplication.getContactTelphone(); + if( StrUtil.isEmpty(contactTelphone)){ + failureMsg.append("【申请人主体信息-联系电话】字段不能为空;"); + }else if(!TELEPHONE_REGX.matcher(contactTelphone).matches()){ + failureMsg.append("【申请人主体信息-联系电话】字段不合法;"); + } + if( StrUtil.isEmpty(caseApplication.getContactAddress())){ + failureMsg.append("【申请人主体信息-联系地址】字段不能为空;"); + }else if(caseApplication.getName().length()>50){ + failureMsg.append("【申请人主体信息-联系地址】字段超出指定长度,最大长度为50;"); + } + String workTelphone = caseApplication.getWorkTelphone(); + if( StrUtil.isEmpty(workTelphone)){ + failureMsg.append("【申请人主体信息-单位电话】字段不能为空;"); + }else if(!TELEPHONE_REGX.matcher(workTelphone).matches()){ + failureMsg.append("【申请人主体信息-单位电话】字段不合法;"); + } + if( StrUtil.isEmpty(caseApplication.getWorkAddress())){ + failureMsg.append("【申请人主体信息-单位地址】字段不能为空;"); + }else if(caseApplication.getWorkAddress().length()>50){ + failureMsg.append("【申请人主体信息-单位地址】字段超出指定长度,最大长度为50;"); + } + } + + /** + * 校验基本字段 + * @param caseApplication + * @param failureMsg + */ + private void validBaseColumn(CaseApplication caseApplication, StringBuilder failureMsg) { + BigDecimal caseSubjectAmount = caseApplication.getCaseSubjectAmount(); + if(null== caseSubjectAmount){ + failureMsg.append("【案件标的】字段不合法;"); + }else { + if(caseSubjectAmount.compareTo(new BigDecimal("0")) < 0 ||caseSubjectAmount.compareTo(new BigDecimal("99999999.99"))>0){ + failureMsg.append("【案件标的】字段超出范围,范围为[0,100000000);"); + } + if(caseSubjectAmount.scale()>2){ + failureMsg.append("【案件标的】字段超出指定精度(10^-2);"); + } + } + if( caseApplication.getLoanStartDate()== null){ + failureMsg.append("【借款开始日期】字段不合法;"); + } + if( caseApplication.getLoanEndDate()== null){ + failureMsg.append("【借款结束日期】字段不合法;"); + } + if( StrUtil.isEmpty(caseApplication.getContractNumber())){ + failureMsg.append("【合同编号】字段不能为空;"); + }else if(caseApplication.getContractNumber().length()>50){ + failureMsg.append("【合同编号】字段超出指定长度,最大长度为50;"); + } + BigDecimal claimPrinciOwed = caseApplication.getClaimPrinciOwed(); + if(null== claimPrinciOwed){ + failureMsg.append("【申请人主张欠本金】字段不合法;"); + }else { + if(claimPrinciOwed.compareTo(new BigDecimal("0")) < 0 ||claimPrinciOwed.compareTo(new BigDecimal("99999999.99"))>0){ + failureMsg.append("【申请人主张欠本金】字段超出范围,范围为[0,100000000);"); + } + if(claimPrinciOwed.scale()>2){ + failureMsg.append("【申请人主张欠本金】字段超出指定精度(10^-2);"); + } + } + BigDecimal claimInterestOwed = caseApplication.getClaimInterestOwed(); + if(null== claimInterestOwed){ + failureMsg.append("【申请人主张欠利息】字段不合法;"); + }else { + if(claimInterestOwed.compareTo(new BigDecimal("0")) < 0 ||claimInterestOwed.compareTo(new BigDecimal("99999999.99"))>0){ + failureMsg.append("【申请人主张欠利息】字段超出范围,范围为[0,100000000);"); + } + if(claimInterestOwed.scale()>2){ + failureMsg.append("【申请人主张欠利息】字段超出指定精度(10^-2);"); + } + } + BigDecimal claimLiquidDamag = caseApplication.getClaimLiquidDamag(); + if(null== claimLiquidDamag){ + failureMsg.append("【申请人主张违约金】字段不合法;"); + }else { + if(claimLiquidDamag.compareTo(new BigDecimal("0")) < 0 ||claimLiquidDamag.compareTo(new BigDecimal("99999999.99"))>0){ + failureMsg.append("【申请人主张违约金】字段超出范围,范围为[0,100000000);"); + } + if(claimLiquidDamag.scale()>2){ + failureMsg.append("【申请人主张违约金】字段超出指定精度(10^-2);"); + } + } + if( StrUtil.isEmpty(caseApplication.getArbitratClaims())){ + failureMsg.append("【申请人仲裁诉求】字段不能为空;"); + }else if(caseApplication.getArbitratClaims().length()>10000){ + failureMsg.append("【申请人仲裁诉求】字段超出指定长度,最大长度为10000;"); + } + } + + @Override @Transactional public int pendTral(CaseApplication caseApplication) { @@ -751,5 +981,4 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { caseApplicationNew.setFeePayable(caseApplicationinsertDiffer.getFeePayable()); } - }