diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ValidUtil.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ValidUtil.java index 6dd11713..b8fae457 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ValidUtil.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ValidUtil.java @@ -66,6 +66,22 @@ public class ValidUtil { return list; } + /** + * 手动校验@Vaild并抛出异常信息list + * + * @param object 待校验对象 + * @param groups 待校验的组 + * @return errorList + */ + public static List validateReturnListWithNum(Object object, int errorRowNum, Class... groups){ + List list = new ArrayList<>(); + Set> set = validator.validate(object, groups); + for (ConstraintViolation constraintViolation : set) { + list.add("第" + errorRowNum + "行:"+constraintViolation.getMessage()); + } + return list; + } + /** * @Description 校验全部数据格式 * @Author lqt diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java index 7d22d84a..a1a6bf28 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java @@ -870,7 +870,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl errorMessage = new ArrayList<>(); + //来款方式 + List paymentType = sysBaseAPI.queryDictItemsByCode("payment_type"); + Map paymentTypeMap = paymentType.stream().collect(Collectors.toMap(DictModel::getText, DictModel::getValue)); + //需要发票 + List invoiceType = sysBaseAPI.queryDictItemsByCode("invoice_type"); + Map invoiceTypeMap = invoiceType.stream().collect(Collectors.toMap(DictModel::getText, DictModel::getValue)); for (Object obj : excelData) { errorRowNum += 1; //复制属性 PayMemberProjectSubitemExcel projectSubitemExcel = (PayMemberProjectSubitemExcel) obj; projectSubitemExcel.setProjectId(projectId); PayMemberProjectSubitem projectSubitem = new PayMemberProjectSubitem(); - + errorMessage.addAll(ValidUtil.validateReturnListWithNum(projectSubitemExcel,errorRowNum)); //应收金额 String amountReceivable = projectSubitemExcel.getAmountReceivable(); - if (!NumberUtil.isNumber(amountReceivable)) { - errorMessage.add("第" + errorRowNum + "行:应收金额格式错误"); - } else { + if (errorMessage.isEmpty()) { projectSubitem.setAmountReceivable(new BigDecimal(amountReceivable)); } //来款方式 - List paymentType = sysBaseAPI.queryDictItemsByCode("payment_type"); - Map paymentTypeMap = paymentType.stream().collect(Collectors.toMap(DictModel::getText, DictModel::getValue)); String paymentMethod = projectSubitemExcel.getPaymentMethod(); - if (StringUtils.isBlank(paymentMethod)){ - errorMessage.add("第" + errorRowNum + "行:来款方式不能为空"); - }else if (paymentTypeMap.containsKey(paymentMethod)) { - projectSubitem.setPaymentMethod(Integer.parseInt(paymentTypeMap.get(paymentMethod))); - } else { - errorMessage.add("第" + errorRowNum + "行:来款方式不符合规范"); + if (errorMessage.isEmpty()) { + if (paymentTypeMap.containsKey(paymentMethod)) { + projectSubitem.setPaymentMethod(Integer.parseInt(paymentTypeMap.get(paymentMethod))); + } else { + errorMessage.add("第" + errorRowNum + "行:来款方式格式错误"); + } } //需要发票 - List invoiceType = sysBaseAPI.queryDictItemsByCode("invoice_type"); - Map invoiceTypeMap = invoiceType.stream().collect(Collectors.toMap(DictModel::getText, DictModel::getValue)); String needInvoice = projectSubitemExcel.getNeedInvoice(); - if (StringUtils.isBlank(needInvoice)){ - errorMessage.add("第" + errorRowNum + "行:需要发票不能为空"); - }else if (invoiceTypeMap.containsKey(needInvoice)) { - projectSubitem.setNeedInvoice(Integer.parseInt(invoiceTypeMap.get(needInvoice))); - } else { - errorMessage.add("第" + errorRowNum + "行:需要发票不符合规范"); + if (errorMessage.isEmpty()) { + if (invoiceTypeMap.containsKey(needInvoice)) { + projectSubitem.setNeedInvoice(Integer.parseInt(invoiceTypeMap.get(needInvoice))); + } else { + errorMessage.add("第" + errorRowNum + "行:需要发票不符合规范"); + } } //复制属性 BeanUtils.copyProperties(projectSubitemExcel, projectSubitem); try { - ValidUtil.validate(projectSubitem); + //ValidUtil.validate(projectSubitem); memberProjectSubitemService.add(projectSubitem); } catch (JeroBootException e) { errorMessage.add("第" + errorRowNum + "行:" + e.getMessage()); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java index 279029cf..1c831d2b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java @@ -29,14 +29,12 @@ import com.jero.member.service.IPayMemberProjectService; import com.jero.member.service.IPayMemberProjectSubitemService; import com.jero.valid.group.ChargeNotice; import com.jero.valid.group.Contract; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Objects; +import java.util.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Transactional; @@ -212,38 +210,52 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl errors = new ArrayList<>(); // 企业 - PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId()); - if(Objects.isNull(chargeCompanyName)){ - throw new JeroBootException("企业名称为空!"); + try { + PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId()); + if (Objects.isNull(chargeCompanyName)) { + throw new JeroBootException("企业名称为空!"); + } + payMemberProjectSubitem.setCompanyTemporaryId(chargeCompanyName.getId()); + payMemberProjectSubitem.setCompanyName(chargeCompanyName.getCompanyName()); + } catch (JeroBootException e) { + errors.add("会员单位不存在"); } - payMemberProjectSubitem.setCompanyTemporaryId(chargeCompanyName.getId()); - payMemberProjectSubitem.setCompanyName(chargeCompanyName.getCompanyName()); - // 联系人 - PayContactsManagementTemporary contactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId()); - if(Objects.isNull(contactsName)){ - throw new JeroBootException("联系人名称为空!"); + try { + PayContactsManagementTemporary contactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId()); + if (Objects.isNull(contactsName)) { + throw new JeroBootException("联系人名称为空!"); + } + payMemberProjectSubitem.setCompanyContactTemporaryId(contactsName.getId()); + payMemberProjectSubitem.setCompanyContactName(contactsName.getName()); + } catch (JeroBootException e) { + errors.add("企业联系人不存在"); } - payMemberProjectSubitem.setCompanyContactTemporaryId(contactsName.getId()); - payMemberProjectSubitem.setCompanyContactName(contactsName.getName()); - - // 联系人 - PayContactsManagementTemporary postContactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId()); - if(Objects.isNull(postContactsName)){ - throw new JeroBootException("邮寄联系人为空!"); + try { + // 联系人 + PayContactsManagementTemporary postContactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId()); + if (Objects.isNull(postContactsName)) { + throw new JeroBootException("邮寄联系人为空!"); + } + payMemberProjectSubitem.setPostContactTemporaryId(postContactsName.getId()); + payMemberProjectSubitem.setPostContactName(postContactsName.getName()); + } catch (JeroBootException e) { + errors.add("邮寄联系人不存在"); } - payMemberProjectSubitem.setPostContactTemporaryId(postContactsName.getId()); - payMemberProjectSubitem.setPostContactName(postContactsName.getName()); + if (!errors.isEmpty()) { + throw new JeroBootException(StringUtils.join(errors, ",")); + } //校验来款方式 Integer paymentMethod = payMemberProjectSubitem.getPaymentMethod(); //合同 - if (Objects.equals(paymentMethod,2)){ + if (Objects.equals(paymentMethod, 2)) { ValidUtil.validate(payMemberProjectSubitem, Contract.class); } //收费通知 - if (Objects.equals(paymentMethod,3)){ + if (Objects.equals(paymentMethod, 3)) { ValidUtil.validate(payMemberProjectSubitem, ChargeNotice.class); } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/PayMemberProjectSubitemExcel.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/PayMemberProjectSubitemExcel.java index 9344a050..5f4a9f69 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/PayMemberProjectSubitemExcel.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/PayMemberProjectSubitemExcel.java @@ -40,7 +40,7 @@ public class PayMemberProjectSubitemExcel { /** * 企业联系人id */ - @Excel(name = "企业联系人名称", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id",orderNum = "2") + @Excel(name = "企业联系人", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id",orderNum = "2") @ApiModelProperty(value = "企业联系人id") @NotBlank(message = "企业联系人不能为空") @Size(max = 50, message = "企业联系人最大为50字符") @@ -49,7 +49,7 @@ public class PayMemberProjectSubitemExcel { /** * 邮寄联系人id */ - @Excel(name = "邮寄联系人姓名", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id",orderNum = "3") + @Excel(name = "邮寄联系人", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id",orderNum = "3") @ApiModelProperty(value = "邮寄联系人id") @NotBlank(message = "邮寄联系人不能为空") private String postContactId; @@ -59,8 +59,8 @@ public class PayMemberProjectSubitemExcel { */ @Excel(name = "应收金额", width = 15,orderNum = "4") @ApiModelProperty(value = "应收金额") - @NotNull(message = "应收金额不能为空") - @DecimalMax(value = "9999999999.99", message = "应收金额格式错误") + @NotBlank(message = "应收金额不能为空") + @Pattern(regexp = "^[0-9]{1,10}(\\.[0-9]{1,2})?$",message = "应收金额格式错误") private String amountReceivable; @@ -69,6 +69,7 @@ public class PayMemberProjectSubitemExcel { */ @Excel(name = "来款方式", width = 15, orderNum = "7") @ApiModelProperty(value = "来款方式(2:合同,3:收费通知)") + @NotBlank(message = "来款方式不能为空") private String paymentMethod; /** @@ -109,6 +110,7 @@ public class PayMemberProjectSubitemExcel { */ @Excel(name = "需要发票", width = 15, orderNum = "6") @ApiModelProperty(value = "需要发票") + @NotBlank(message = "需要发票不能为空") private String needInvoice; } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java index efcaf10e..7e7a03e5 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java @@ -443,7 +443,7 @@ public class SysDepartController { try { List errorList = ValidUtil.validateReturnList(sysDepart); if (!errorList.isEmpty()){ - errorMessage.add("第 " + lineNumber + " 行:"+ StringUtils.strip(errorList.toString(),"[]")); + errorMessage.add("第 " + lineNumber + " 行:"+ StringUtils.join(errorList,",")); } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SysDepart::getDepartName,sysDepart.getDepartName()); diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index af22bd65..610173ef 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -773,7 +773,7 @@ public class SysUserController { List errorList = ValidUtil.validateReturnList(sysUser); if (!errorList.isEmpty()){ errorLines++; - errorMessage.add("第 " + lineNumber + " 行:"+ StringUtils.strip(errorList.toString(),"[]")); + errorMessage.add("第 " + lineNumber + " 行:"+ StringUtils.join(errorList,",")); } //处理邮箱和手机号的加密 UserUtil.encryptUser(sysUser);