diff --git a/src/main/java/com/qs/serve/modules/pay/entity/PayPaymentItem.java b/src/main/java/com/qs/serve/modules/pay/entity/PayPaymentItem.java index 58c58353..16492c97 100644 --- a/src/main/java/com/qs/serve/modules/pay/entity/PayPaymentItem.java +++ b/src/main/java/com/qs/serve/modules/pay/entity/PayPaymentItem.java @@ -55,6 +55,8 @@ public class PayPaymentItem implements Serializable { @NotNull(message = "核销id不能为空") private Long verificationId; + private String verificationMainCode; + private String verificationCode; /** 核销科目项id */ 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 985cc488..248142c9 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 verificationSubCode; + private String verificationMainCode; /** 支付金额 */ @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 0986d7dc..3c597047 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 @@ -56,6 +56,7 @@ public class PayPaymentServiceImpl extends ServiceImpl vtbLqw = new LambdaQueryWrapper<>(); + vtbLqw.eq(VtbVerification::getVerificationMainCode,paymentBo.getVerificationMainCode()); + List verificationList = verificationService.list(vtbLqw); + if(verificationList.size()==0){ + Assert.throwEx("核销编码异常"); } +// VtbVerificationSubject vtbMain = verificationSubjectService.getByVerificationSubjectCode(paymentBo.getVerificationSubCode()); +// if(vtbMain==null){ +// Assert.throwEx("核销子项编码异常"); +// } + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(PayPaymentItem::getVerificationSubjectId,verSubject.getId()); + lambdaQueryWrapper.eq(PayPaymentItem::getVerificationMainCode,paymentBo.getVerificationMainCode()); List payPaymentItemList = paymentItemService.list(lambdaQueryWrapper); BigDecimal payedAmount = payPaymentItemList.stream().map(a->a.getItemPayAmount()).reduce(BigDecimal.ZERO,BigDecimal::add); - BigDecimal notPayAmount = verSubject.getUsedAmount().subtract(payedAmount); + BigDecimal verificationAmount = verificationList.stream().map(a->a.getAmount()).reduce(BigDecimal.ZERO,BigDecimal::add); + 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(verSubject.getSupplierId()); - payPayment.setSupplierCode(verSubject.getSupplierCode()); - payPayment.setSupplierName(verSubject.getSupplierName()); + payPayment.setSupplierId(vtbMain.getSupplierId()); + payPayment.setSupplierCode(vtbMain.getSupplierCode()); + payPayment.setSupplierName(vtbMain.getSupplierName()); payPayment.setPayAmount(paymentBo.getPayAmount()); payPayment.setUserId(sysUser.getId()); payPayment.setUserCode(sysUser.getCode()); @@ -109,19 +120,20 @@ public class PayPaymentServiceImpl extends ServiceImpl paymentItemList, List verificationSubjectUpdateList, VtbVerificationSubject verificationSubject) { // //统计历史支付金额 // BigDecimal hisPayAmount = BigDecimal.ZERO; -// List payPaymentItems = paymentItemService.listByVerSubjectId(verificationSubject.getId()); +// List payPaymentItems = paymentItemService.listByvtbMainId(verificationSubject.getId()); // for (PayPaymentItem paymentItem : payPaymentItems) { // hisPayAmount = hisPayAmount.add(paymentItem.getItemPayAmount()); // } diff --git a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java index 35c27740..50898fd2 100644 --- a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java +++ b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java @@ -140,6 +140,7 @@ public class PortalOfCostApplication { //保存核销申请 VtbVerification verification = new VtbVerification(); verification.setVerificationCode("HX"+ IdUtil.timeStampId()); + verification.setVerificationMainCode(verification.getVerificationCode()); verification.setFinishedTime(nowTime); verification.setVerificationState(VtbVerificationState.Finished.getCode()); verification.setPolicyItemId(policyItem.getId()); @@ -416,6 +417,7 @@ public class PortalOfCostApplication { //保存核销申请 VtbVerification verification = new VtbVerification(); verification.setVerificationCode("HX"+ IdUtil.timeStampId()); + verification.setVerificationMainCode(verification.getVerificationCode()); verification.setFinishedTime(nowTime); verification.setVerificationState(VtbVerificationState.Finished.getCode()); verification.setActivityId(activity.getId()); @@ -762,6 +764,7 @@ public class PortalOfCostApplication { //保存核销申请 VtbVerification verification = new VtbVerification(); verification.setVerificationCode("HX"+ CodeGenUtil.generate(CodeGenUtil.SourceKey.Verification)); + verification.setVerificationMainCode(verification.getVerificationCode()); verification.setCostApplyId(costApply.getId()); verification.setFinishedTime(nowTime); verification.setVerificationState(VtbVerificationState.Finished.getCode()); @@ -801,7 +804,7 @@ public class PortalOfCostApplication { ThirtyVerification tv = new ThirtyVerification(); tv.setId(IdUtil.getSnowFlakeId()+""); - tv.setVerificationCode(verificationSubject.getVerificationSubCode()); + tv.setVerificationCode(verification.getVerificationMainCode()); tv.setActivityTitle(activityTitle); //tv.setActivityCode(activityCode); tv.setCreateDate(timeString); @@ -816,13 +819,13 @@ public class PortalOfCostApplication { tv.setCheckTime(timeString); tv.setCusCode(supplier.getCode()); tv.setCusName(supplier.getName()); - tv.setRecId(verificationSubject.getVerificationSubCode()); + tv.setRecId(verificationSubject.getVerificationMainCode()); String COST_TO_PAY_API = projectApisProperties.getCostToPay(); String json = JsonUtil.objectToJson(tv); - log.info("COST_TO_PAY_API 支付单信息:{} 数据:{}",verificationSubject.getVerificationSubCode(),json); + log.info("COST_TO_PAY_API 支付单信息:{} 数据:{}",verification.getVerificationMainCode(),json); String rs = HttpUtil.doPost(COST_TO_PAY_API,json,null); if(rs==null||!rs.contains("200")){ - log.error("COST_TO_PAY_API \n 请求参数:{},\n 支付单信息:{},\n 结果:{}",json,verificationSubject.getVerificationSubCode(),rs); + log.error("COST_TO_PAY_API \n 请求参数:{},\n 支付单信息:{},\n 结果:{}",json,verification.getVerificationMainCode(),rs); //核销调度接口事务补偿 costApplyService.removeById(costApply.getId()); activityService.removeById(activity.getId()); diff --git a/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java index 7ff7a5c7..2045930f 100644 --- a/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java +++ b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java @@ -35,6 +35,9 @@ public class VtbVerification implements Serializable { @TableId(type = IdType.AUTO) private Long id; + @TableField(condition = SqlCondition.LIKE) + private String verificationMainCode; + /** 核销编码 */ @TableField(condition = SqlCondition.LIKE) private String verificationCode; diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index f0d79724..98f7dc26 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -143,6 +143,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl