Browse Source

支付调整 ,核销和支付添加mainCode字段

v1.0
15989082884@163.com 2 years ago
parent
commit
5f50f5e930
  1. 2
      src/main/java/com/qs/serve/modules/pay/entity/PayPaymentItem.java
  2. 2
      src/main/java/com/qs/serve/modules/pay/entity/bo/PayPaymentBo.java
  3. 46
      src/main/java/com/qs/serve/modules/pay/service/impl/PayPaymentServiceImpl.java
  4. 11
      src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java
  5. 3
      src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java
  6. 2
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

2
src/main/java/com/qs/serve/modules/pay/entity/PayPaymentItem.java

@ -55,6 +55,8 @@ public class PayPaymentItem implements Serializable {
@NotNull(message = "核销id不能为空") @NotNull(message = "核销id不能为空")
private Long verificationId; private Long verificationId;
private String verificationMainCode;
private String verificationCode; private String verificationCode;
/** 核销科目项id */ /** 核销科目项id */

2
src/main/java/com/qs/serve/modules/pay/entity/bo/PayPaymentBo.java

@ -28,7 +28,7 @@ public class PayPaymentBo implements Serializable {
/** 核销子项编码 */ /** 核销子项编码 */
@NotNull(message = "核销子项编码不能为空") @NotNull(message = "核销子项编码不能为空")
private String verificationSubCode; private String verificationMainCode;
/** 支付金额 */ /** 支付金额 */
@DecimalMin(value = "0.01",message = "支付金额必须大于0元") @DecimalMin(value = "0.01",message = "支付金额必须大于0元")

46
src/main/java/com/qs/serve/modules/pay/service/impl/PayPaymentServiceImpl.java

@ -56,6 +56,7 @@ public class PayPaymentServiceImpl extends ServiceImpl<PayPaymentMapper,PayPayme
private BmsSupplierService supplierService; private BmsSupplierService supplierService;
private PayPaymentItemService paymentItemService; private PayPaymentItemService paymentItemService;
private VtbVerificationSubjectService verificationSubjectService; private VtbVerificationSubjectService verificationSubjectService;
private VtbVerificationService verificationService;
private TbsActivityService activityService; private TbsActivityService activityService;
private PayHistoryItemService payHistoryItemService; private PayHistoryItemService payHistoryItemService;
private XiaoLuTonService xiaoLuTonService; private XiaoLuTonService xiaoLuTonService;
@ -79,27 +80,37 @@ public class PayPaymentServiceImpl extends ServiceImpl<PayPaymentMapper,PayPayme
Assert.throwEx("人员工号异常"); Assert.throwEx("人员工号异常");
} }
VtbVerificationSubject verSubject = verificationSubjectService.getByVerificationSubjectCode(paymentBo.getVerificationSubCode()); LambdaQueryWrapper<VtbVerification> vtbLqw = new LambdaQueryWrapper<>();
if(verSubject==null){ vtbLqw.eq(VtbVerification::getVerificationMainCode,paymentBo.getVerificationMainCode());
Assert.throwEx("核销子项编码异常"); List<VtbVerification> verificationList = verificationService.list(vtbLqw);
if(verificationList.size()==0){
Assert.throwEx("核销编码异常");
} }
// VtbVerificationSubject vtbMain = verificationSubjectService.getByVerificationSubjectCode(paymentBo.getVerificationSubCode());
// if(vtbMain==null){
// Assert.throwEx("核销子项编码异常");
// }
LambdaQueryWrapper<PayPaymentItem> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayPaymentItem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PayPaymentItem::getVerificationSubjectId,verSubject.getId()); lambdaQueryWrapper.eq(PayPaymentItem::getVerificationMainCode,paymentBo.getVerificationMainCode());
List<PayPaymentItem> payPaymentItemList = paymentItemService.list(lambdaQueryWrapper); List<PayPaymentItem> payPaymentItemList = paymentItemService.list(lambdaQueryWrapper);
BigDecimal payedAmount = payPaymentItemList.stream().map(a->a.getItemPayAmount()).reduce(BigDecimal.ZERO,BigDecimal::add); 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){ if(paymentBo.getPayAmount().compareTo(notPayAmount)>0){
Assert.throwEx("支付金额已超出可支付额"); Assert.throwEx("支付金额已超出可支付额");
} }
VtbVerification vtbMain = verificationList.get(0);
PayPayment payPayment = new PayPayment(); PayPayment payPayment = new PayPayment();
payPayment.setPayType(paymentBo.getPayType()); payPayment.setPayType(paymentBo.getPayType());
payPayment.setPayCode(paymentBo.getErpId()); payPayment.setPayCode(paymentBo.getErpId());
payPayment.setSupplierId(verSubject.getSupplierId()); payPayment.setSupplierId(vtbMain.getSupplierId());
payPayment.setSupplierCode(verSubject.getSupplierCode()); payPayment.setSupplierCode(vtbMain.getSupplierCode());
payPayment.setSupplierName(verSubject.getSupplierName()); payPayment.setSupplierName(vtbMain.getSupplierName());
payPayment.setPayAmount(paymentBo.getPayAmount()); payPayment.setPayAmount(paymentBo.getPayAmount());
payPayment.setUserId(sysUser.getId()); payPayment.setUserId(sysUser.getId());
payPayment.setUserCode(sysUser.getCode()); payPayment.setUserCode(sysUser.getCode());
@ -109,19 +120,20 @@ public class PayPaymentServiceImpl extends ServiceImpl<PayPaymentMapper,PayPayme
payPayment.setBillNumber(paymentBo.getBillNumber()); payPayment.setBillNumber(paymentBo.getBillNumber());
payPayment.setRemark(paymentBo.getRemark()); payPayment.setRemark(paymentBo.getRemark());
payPayment.setTenantId("001"); payPayment.setTenantId("001");
payPayment.setCostApplyId(verSubject.getCostApplyId()); payPayment.setCostApplyId(vtbMain.getCostApplyId());
payPayment.setErpId(paymentBo.getErpId()); payPayment.setErpId(paymentBo.getErpId());
PayPaymentItem payPaymentItem = new PayPaymentItem(); PayPaymentItem payPaymentItem = new PayPaymentItem();
payPaymentItem = CopierUtil.copy(payPayment,payPaymentItem); payPaymentItem = CopierUtil.copy(payPayment,payPaymentItem);
payPaymentItem.setItemPayAmount(payPayment.getPayAmount()); payPaymentItem.setItemPayAmount(payPayment.getPayAmount());
payPaymentItem.setVerificationId(verSubject.getVerificationId()); // payPaymentItem.setVerificationId(vtbMain.getId());
payPaymentItem.setVerificationCode(verSubject.getVerificationSubCode()); payPaymentItem.setVerificationMainCode(vtbMain.getVerificationMainCode());
payPaymentItem.setVerificationSubjectId(verSubject.getId()); // payPaymentItem.setVerificationCode(vtbMain.getVerificationSubCode());
payPaymentItem.setActivityId(verSubject.getActivityId()); // payPaymentItem.setVerificationSubjectId(vtbMain.getId());
payPaymentItem.setSubjectCode(verSubject.getSubjectCode()); // payPaymentItem.setActivityId(vtbMain.getActivityId());
payPaymentItem.setSubjectId(verSubject.getSubjectId()); // payPaymentItem.setSubjectCode(vtbMain.getSubjectCode());
payPaymentItem.setSubjectName(verSubject.getSubjectName()); // payPaymentItem.setSubjectId(vtbMain.getSubjectId());
// payPaymentItem.setSubjectName(vtbMain.getSubjectName());
payPaymentItem.setRemark(payPayment.getRemark()); payPaymentItem.setRemark(payPayment.getRemark());
this.save(payPayment); this.save(payPayment);
@ -146,7 +158,7 @@ public class PayPaymentServiceImpl extends ServiceImpl<PayPaymentMapper,PayPayme
// private BigDecimal buildPaymentItems(PayPaymentBo paymentBo, BigDecimal currentBalance, List<PayPaymentItem> paymentItemList, List<VtbVerificationSubject> verificationSubjectUpdateList, VtbVerificationSubject verificationSubject) { // private BigDecimal buildPaymentItems(PayPaymentBo paymentBo, BigDecimal currentBalance, List<PayPaymentItem> paymentItemList, List<VtbVerificationSubject> verificationSubjectUpdateList, VtbVerificationSubject verificationSubject) {
// //统计历史支付金额 // //统计历史支付金额
// BigDecimal hisPayAmount = BigDecimal.ZERO; // BigDecimal hisPayAmount = BigDecimal.ZERO;
// List<PayPaymentItem> payPaymentItems = paymentItemService.listByVerSubjectId(verificationSubject.getId()); // List<PayPaymentItem> payPaymentItems = paymentItemService.listByvtbMainId(verificationSubject.getId());
// for (PayPaymentItem paymentItem : payPaymentItems) { // for (PayPaymentItem paymentItem : payPaymentItems) {
// hisPayAmount = hisPayAmount.add(paymentItem.getItemPayAmount()); // hisPayAmount = hisPayAmount.add(paymentItem.getItemPayAmount());
// } // }

11
src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java

@ -140,6 +140,7 @@ public class PortalOfCostApplication {
//保存核销申请 //保存核销申请
VtbVerification verification = new VtbVerification(); VtbVerification verification = new VtbVerification();
verification.setVerificationCode("HX"+ IdUtil.timeStampId()); verification.setVerificationCode("HX"+ IdUtil.timeStampId());
verification.setVerificationMainCode(verification.getVerificationCode());
verification.setFinishedTime(nowTime); verification.setFinishedTime(nowTime);
verification.setVerificationState(VtbVerificationState.Finished.getCode()); verification.setVerificationState(VtbVerificationState.Finished.getCode());
verification.setPolicyItemId(policyItem.getId()); verification.setPolicyItemId(policyItem.getId());
@ -416,6 +417,7 @@ public class PortalOfCostApplication {
//保存核销申请 //保存核销申请
VtbVerification verification = new VtbVerification(); VtbVerification verification = new VtbVerification();
verification.setVerificationCode("HX"+ IdUtil.timeStampId()); verification.setVerificationCode("HX"+ IdUtil.timeStampId());
verification.setVerificationMainCode(verification.getVerificationCode());
verification.setFinishedTime(nowTime); verification.setFinishedTime(nowTime);
verification.setVerificationState(VtbVerificationState.Finished.getCode()); verification.setVerificationState(VtbVerificationState.Finished.getCode());
verification.setActivityId(activity.getId()); verification.setActivityId(activity.getId());
@ -762,6 +764,7 @@ public class PortalOfCostApplication {
//保存核销申请 //保存核销申请
VtbVerification verification = new VtbVerification(); VtbVerification verification = new VtbVerification();
verification.setVerificationCode("HX"+ CodeGenUtil.generate(CodeGenUtil.SourceKey.Verification)); verification.setVerificationCode("HX"+ CodeGenUtil.generate(CodeGenUtil.SourceKey.Verification));
verification.setVerificationMainCode(verification.getVerificationCode());
verification.setCostApplyId(costApply.getId()); verification.setCostApplyId(costApply.getId());
verification.setFinishedTime(nowTime); verification.setFinishedTime(nowTime);
verification.setVerificationState(VtbVerificationState.Finished.getCode()); verification.setVerificationState(VtbVerificationState.Finished.getCode());
@ -801,7 +804,7 @@ public class PortalOfCostApplication {
ThirtyVerification tv = new ThirtyVerification(); ThirtyVerification tv = new ThirtyVerification();
tv.setId(IdUtil.getSnowFlakeId()+""); tv.setId(IdUtil.getSnowFlakeId()+"");
tv.setVerificationCode(verificationSubject.getVerificationSubCode()); tv.setVerificationCode(verification.getVerificationMainCode());
tv.setActivityTitle(activityTitle); tv.setActivityTitle(activityTitle);
//tv.setActivityCode(activityCode); //tv.setActivityCode(activityCode);
tv.setCreateDate(timeString); tv.setCreateDate(timeString);
@ -816,13 +819,13 @@ public class PortalOfCostApplication {
tv.setCheckTime(timeString); tv.setCheckTime(timeString);
tv.setCusCode(supplier.getCode()); tv.setCusCode(supplier.getCode());
tv.setCusName(supplier.getName()); tv.setCusName(supplier.getName());
tv.setRecId(verificationSubject.getVerificationSubCode()); tv.setRecId(verificationSubject.getVerificationMainCode());
String COST_TO_PAY_API = projectApisProperties.getCostToPay(); String COST_TO_PAY_API = projectApisProperties.getCostToPay();
String json = JsonUtil.objectToJson(tv); 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); String rs = HttpUtil.doPost(COST_TO_PAY_API,json,null);
if(rs==null||!rs.contains("200")){ 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()); costApplyService.removeById(costApply.getId());
activityService.removeById(activity.getId()); activityService.removeById(activity.getId());

3
src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java

@ -35,6 +35,9 @@ public class VtbVerification implements Serializable {
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
private Long id; private Long id;
@TableField(condition = SqlCondition.LIKE)
private String verificationMainCode;
/** 核销编码 */ /** 核销编码 */
@TableField(condition = SqlCondition.LIKE) @TableField(condition = SqlCondition.LIKE)
private String verificationCode; private String verificationCode;

2
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -143,6 +143,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
verification.setAmountRecord(param.getTotalCheckAmount()); verification.setAmountRecord(param.getTotalCheckAmount());
verification.setAmount(param.getTotalCheckAmount()); verification.setAmount(param.getTotalCheckAmount());
verification.setVerificationCode("HX"+CodeGenUtil.generate(CodeGenUtil.SourceKey.Verification)); verification.setVerificationCode("HX"+CodeGenUtil.generate(CodeGenUtil.SourceKey.Verification));
verification.setVerificationMainCode(verification.getVerificationCode());
verification.setVerificationState(VtbVerificationState.Finished.getCode()); verification.setVerificationState(VtbVerificationState.Finished.getCode());
verification.setCostApplyId(costApply.getId()); verification.setCostApplyId(costApply.getId());
verification.setActivityId(activity.getId()); verification.setActivityId(activity.getId());
@ -619,6 +620,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
verification.setActivityCode(activity.getActivityCode()); verification.setActivityCode(activity.getActivityCode());
verification.setPayConditionId(verificationBo.getPayConditionId()); verification.setPayConditionId(verificationBo.getPayConditionId());
verification.setVerificationCode("HX"+CodeGenUtil.generate(CodeGenUtil.SourceKey.Verification)); verification.setVerificationCode("HX"+CodeGenUtil.generate(CodeGenUtil.SourceKey.Verification));
verification.setVerificationMainCode(verification.getVerificationCode());
verification.setVerificationState(VtbVerificationState.Commiting.getCode()); verification.setVerificationState(VtbVerificationState.Commiting.getCode());
verification.setCostApplyId(costApply.getId()); verification.setCostApplyId(costApply.getId());
verification.setActivityId(verificationBo.getActivityId()); verification.setActivityId(verificationBo.getActivityId());

Loading…
Cancel
Save