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

This commit was merged in pull request #58.
This commit is contained in:
2023-10-11 16:41:08 +08:00
committed by Gitea
3 changed files with 260 additions and 18 deletions
@@ -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<CaseApplication> util = new ExcelUtil<CaseApplication>(CaseApplication.class);
List<CaseApplication> caseApplicationList = util.importExcel(file.getInputStream());
String operName = getUsername();
@@ -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;
@@ -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<CaseApplication> 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<CaseAffiliate> 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<CaseAffiliate> 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("<br/>").append("第").append(i+2).append("行:").append(caseApplication.getErrorMsg().toString());
}
}
if(caseApplicationListinsert!=null&&caseApplicationListinsert.size()>0){
// List<CaseApplication> 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());
}
}