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不能为空")
private Long verificationId;
private String verificationMainCode;
private String verificationCode;
/** 核销科目项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 = "核销子项编码不能为空")
private String verificationSubCode;
private String verificationMainCode;
/** 支付金额 */
@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 PayPaymentItemService paymentItemService;
private VtbVerificationSubjectService verificationSubjectService;
private VtbVerificationService verificationService;
private TbsActivityService activityService;
private PayHistoryItemService payHistoryItemService;
private XiaoLuTonService xiaoLuTonService;
@ -79,27 +80,37 @@ public class PayPaymentServiceImpl extends ServiceImpl<PayPaymentMapper,PayPayme
Assert.throwEx("人员工号异常");
}
VtbVerificationSubject verSubject = verificationSubjectService.getByVerificationSubjectCode(paymentBo.getVerificationSubCode());
if(verSubject==null){
Assert.throwEx("核销子项编码异常");
LambdaQueryWrapper<VtbVerification> vtbLqw = new LambdaQueryWrapper<>();
vtbLqw.eq(VtbVerification::getVerificationMainCode,paymentBo.getVerificationMainCode());
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.eq(PayPaymentItem::getVerificationSubjectId,verSubject.getId());
lambdaQueryWrapper.eq(PayPaymentItem::getVerificationMainCode,paymentBo.getVerificationMainCode());
List<PayPaymentItem> 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<PayPaymentMapper,PayPayme
payPayment.setBillNumber(paymentBo.getBillNumber());
payPayment.setRemark(paymentBo.getRemark());
payPayment.setTenantId("001");
payPayment.setCostApplyId(verSubject.getCostApplyId());
payPayment.setCostApplyId(vtbMain.getCostApplyId());
payPayment.setErpId(paymentBo.getErpId());
PayPaymentItem payPaymentItem = new PayPaymentItem();
payPaymentItem = CopierUtil.copy(payPayment,payPaymentItem);
payPaymentItem.setItemPayAmount(payPayment.getPayAmount());
payPaymentItem.setVerificationId(verSubject.getVerificationId());
payPaymentItem.setVerificationCode(verSubject.getVerificationSubCode());
payPaymentItem.setVerificationSubjectId(verSubject.getId());
payPaymentItem.setActivityId(verSubject.getActivityId());
payPaymentItem.setSubjectCode(verSubject.getSubjectCode());
payPaymentItem.setSubjectId(verSubject.getSubjectId());
payPaymentItem.setSubjectName(verSubject.getSubjectName());
// payPaymentItem.setVerificationId(vtbMain.getId());
payPaymentItem.setVerificationMainCode(vtbMain.getVerificationMainCode());
// payPaymentItem.setVerificationCode(vtbMain.getVerificationSubCode());
// payPaymentItem.setVerificationSubjectId(vtbMain.getId());
// payPaymentItem.setActivityId(vtbMain.getActivityId());
// payPaymentItem.setSubjectCode(vtbMain.getSubjectCode());
// payPaymentItem.setSubjectId(vtbMain.getSubjectId());
// payPaymentItem.setSubjectName(vtbMain.getSubjectName());
payPaymentItem.setRemark(payPayment.getRemark());
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) {
// //统计历史支付金额
// BigDecimal hisPayAmount = BigDecimal.ZERO;
// List<PayPaymentItem> payPaymentItems = paymentItemService.listByVerSubjectId(verificationSubject.getId());
// List<PayPaymentItem> payPaymentItems = paymentItemService.listByvtbMainId(verificationSubject.getId());
// for (PayPaymentItem paymentItem : payPaymentItems) {
// 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();
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());

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)
private Long id;
@TableField(condition = SqlCondition.LIKE)
private String verificationMainCode;
/** 核销编码 */
@TableField(condition = SqlCondition.LIKE)
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.setAmount(param.getTotalCheckAmount());
verification.setVerificationCode("HX"+CodeGenUtil.generate(CodeGenUtil.SourceKey.Verification));
verification.setVerificationMainCode(verification.getVerificationCode());
verification.setVerificationState(VtbVerificationState.Finished.getCode());
verification.setCostApplyId(costApply.getId());
verification.setActivityId(activity.getId());
@ -619,6 +620,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
verification.setActivityCode(activity.getActivityCode());
verification.setPayConditionId(verificationBo.getPayConditionId());
verification.setVerificationCode("HX"+CodeGenUtil.generate(CodeGenUtil.SourceKey.Verification));
verification.setVerificationMainCode(verification.getVerificationCode());
verification.setVerificationState(VtbVerificationState.Commiting.getCode());
verification.setCostApplyId(costApply.getId());
verification.setActivityId(verificationBo.getActivityId());

Loading…
Cancel
Save