diff --git a/src/main/java/com/qs/serve/modules/pay/entity/bo/PayPaymentBo.java b/src/main/java/com/qs/serve/modules/pay/entity/bo/PayPaymentBo.java index 1cacf39e..ec2e9d3e 100644 --- a/src/main/java/com/qs/serve/modules/pay/entity/bo/PayPaymentBo.java +++ b/src/main/java/com/qs/serve/modules/pay/entity/bo/PayPaymentBo.java @@ -28,7 +28,7 @@ public class PayPaymentBo implements Serializable { /** 核销编码 */ @NotNull(message = "核销编码不能为空") - private String verificationMainCode; + private String verificationSubCode; /** 支付金额 */ @DecimalMin(value = "0.01",message = "支付金额必须大于0元") diff --git a/src/main/java/com/qs/serve/modules/pay/service/impl/PayPaymentServiceImpl.java b/src/main/java/com/qs/serve/modules/pay/service/impl/PayPaymentServiceImpl.java index 11d3e83e..fdda6d98 100644 --- a/src/main/java/com/qs/serve/modules/pay/service/impl/PayPaymentServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/pay/service/impl/PayPaymentServiceImpl.java @@ -81,36 +81,39 @@ public class PayPaymentServiceImpl extends ServiceImpl vtbLqw = new LambdaQueryWrapper<>(); - vtbLqw.eq(VtbVerification::getVerificationMainCode,paymentBo.getVerificationMainCode()); + vtbLqw.eq(VtbVerification::getVerificationMainCode,paymentBo.getVerificationSubCode()); List verificationList = verificationService.list(vtbLqw); - if(verificationList.size()==0){ +// if(verificationList.size()==0){ +// Assert.throwEx("核销编码异常"); +// } + + VtbVerificationSubject vtbSub = verificationSubjectService.getByVerificationSubjectCode(paymentBo.getVerificationSubCode()); + if(vtbSub==null && verificationList.size()==0){ Assert.throwEx("核销编码异常"); } -// VtbVerificationSubject vtbMain = verificationSubjectService.getByVerificationSubjectCode(paymentBo.getVerificationSubCode()); -// if(vtbMain==null){ -// Assert.throwEx("核销子项编码异常"); -// } - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(PayPaymentItem::getVerificationMainCode,paymentBo.getVerificationMainCode()); + lambdaQueryWrapper.eq(PayPaymentItem::getVerificationMainCode,paymentBo.getVerificationSubCode()); List payPaymentItemList = paymentItemService.list(lambdaQueryWrapper); BigDecimal payedAmount = payPaymentItemList.stream().map(a->a.getItemPayAmount()).reduce(BigDecimal.ZERO,BigDecimal::add); - BigDecimal verificationAmount = verificationList.stream().map(a->a.getAmount()).reduce(BigDecimal.ZERO,BigDecimal::add); + BigDecimal verificationAmount = null; + if(vtbSub!=null){ + verificationAmount = vtbSub.getUsedAmount(); + }else if(verificationList.size()!=0) { + verificationAmount = verificationList.stream().map(a -> a.getAmount()).reduce(BigDecimal.ZERO, BigDecimal::add); + }else{ + Assert.throwEx("核销金额异常"); + } BigDecimal notPayAmount = verificationAmount.subtract(payedAmount); if(paymentBo.getPayAmount().compareTo(notPayAmount)>0){ Assert.throwEx("支付金额已超出可支付额"); } - VtbVerification vtbMain = verificationList.get(0); - + PayPayment payPayment = new PayPayment(); payPayment.setPayType(paymentBo.getPayType()); payPayment.setPayCode(paymentBo.getErpId()); - payPayment.setSupplierId(vtbMain.getSupplierId()); - payPayment.setSupplierCode(vtbMain.getSupplierCode()); - payPayment.setSupplierName(vtbMain.getSupplierName()); payPayment.setPayAmount(paymentBo.getPayAmount()); payPayment.setUserId(sysUser.getId()); payPayment.setUserCode(sysUser.getCode()); @@ -120,22 +123,47 @@ public class PayPaymentServiceImpl extends ServiceImpl0) { + VtbVerification vtbMain = verificationList.get(0); + payPayment.setSupplierId(vtbMain.getSupplierId()); + payPayment.setSupplierCode(vtbMain.getSupplierCode()); + payPayment.setSupplierName(vtbMain.getSupplierName()); + payPayment.setCostApplyId(vtbMain.getCostApplyId()); + } + + PayPaymentItem payPaymentItem = new PayPaymentItem(); payPaymentItem = CopierUtil.copy(payPayment,payPaymentItem); payPaymentItem.setItemPayAmount(payPayment.getPayAmount()); - payPaymentItem.setVerificationId(vtbMain.getId()); - payPaymentItem.setVerificationMainCode(vtbMain.getVerificationMainCode()); - payPaymentItem.setVerificationCode(vtbMain.getVerificationMainCode()); -// payPaymentItem.setVerificationSubjectId(vtbMain.getId()); -// payPaymentItem.setActivityId(vtbMain.getActivityId()); -// payPaymentItem.setSubjectCode(vtbMain.getSubjectCode()); -// payPaymentItem.setSubjectId(vtbMain.getSubjectId()); -// payPaymentItem.setSubjectName(vtbMain.getSubjectName()); payPaymentItem.setRemark(payPayment.getRemark()); + if(vtbSub!=null) { + String verCode = vtbSub.getVerificationSubCode(); + if(verCode.contains("_")){ + verCode = verCode.substring(0,verCode.indexOf("_")); + } + payPaymentItem.setVerificationId(vtbSub.getVerificationId()); + payPaymentItem.setVerificationMainCode(verCode); + payPaymentItem.setVerificationCode(vtbSub.getVerificationSubCode()); + payPaymentItem.setVerificationSubjectId(vtbSub.getId()); + payPaymentItem.setActivityId(vtbSub.getActivityId()); + payPaymentItem.setSubjectCode(vtbSub.getSubjectCode()); + payPaymentItem.setSubjectId(vtbSub.getSubjectId()); + payPaymentItem.setSubjectName(vtbSub.getSubjectName()); + }else if(verificationList.size()>0){ + VtbVerification vtbMain = verificationList.get(0); + payPaymentItem.setVerificationId(vtbMain.getId()); + payPaymentItem.setVerificationMainCode(vtbMain.getVerificationMainCode()); + payPaymentItem.setVerificationCode(vtbMain.getVerificationCode()); + } + this.save(payPayment); payPaymentItem.setPaymentId(payPayment.getId());