Browse Source

审批时修改金额流程,已测试

v1.0
Yen 2 years ago
parent
commit
5535e9a9d1
  1. 5
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java
  2. 1
      src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationContactBo.java
  3. 27
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

5
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java

@ -218,10 +218,11 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
public Object doFinished(TbsAffairCommitBo param) {
Long targetId = Long.parseLong(this.getTargetId(param));
// 更新金额
BigDecimal totalApply = checkToChangeAmount(param, targetId);
TbsCostApply apply = new TbsCostApply();
// TODO 1.有修改金额为0的异常;2.需要调整预算占用
// BigDecimal totalApply = checkToChangeAmount(param, targetId);
// apply.setTotalActivityAmount(totalApply);
apply.setId(targetId);
apply.setTotalActivityAmount(totalApply);
apply.setChargeState(TbsCostApplyState.State_2_actioning.getCode());
costApplyService.updateById(apply);
TbsCostApply costApply = costApplyService.getById(targetId);

1
src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationContactBo.java

@ -21,6 +21,7 @@ public class VtbVerificationContactBo {
private BigDecimal totalCheckAmount;
/** 核销人员工号 */
@NotNull
private String userCode;
/** 条款编码 */

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

@ -134,13 +134,13 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
if(surplus.compareTo(param.getTotalCheckAmount())<0){
Assert.throwEx("金额溢出");
}
//Assert.throwEx("功能开发中...");
//添加核销记录
VtbVerification verification = new VtbVerification();
if(condition!=null){
verification.setPayConditionId(condition.getId());
}
verification.setAmountRecord(param.getTotalCheckAmount());
verification.setAmount(param.getTotalCheckAmount());
verification.setVerificationCode("HX"+CodeGenUtil.generate(CodeGenUtil.SourceKey.Verification));
verification.setVerificationState(VtbVerificationState.Commiting.getCode());
verification.setCostApplyId(costApply.getId());
@ -169,13 +169,22 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
List<TbsActivitySubject> activitySubjectList = activitySubjectService.listByActivityId(activity.getId());
List<TbsActivityCenter> activityCenterList = activityCenterService.listByActivity(activity.getId());
List<TbsActivityCenterGoods> activityCenterGoodsList = activityCenterGoodsService.listByActivityId(activity.getId());
BigDecimal tempTotal = finalAmt;
BigDecimal tempTotal = param.getTotalCheckAmount();
BigDecimal n100 = new BigDecimal("100");
BigDecimal n10000 = new BigDecimal("10000");
List<TbsActivityCenter> activityCenters4Update = new ArrayList<>();
List<TbsActivitySubject> activitySubject4Update = new ArrayList<>();
for (TbsActivitySubject activitySubject : activitySubjectList) {
BigDecimal surplusAmt = activitySubject.getAmount().subtract(activitySubject.getUsedAmount());
if(tempTotal.compareTo(BigDecimal.ZERO)<1){
break;
}
BigDecimal totalCenterUsedAmt = BigDecimal.ZERO;
BigDecimal totalCenterAmt = BigDecimal.ZERO;
for (TbsActivityCenter activityCenter : activityCenterList) {
totalCenterAmt = totalCenterAmt.add(activityCenter.getCenterAmount());
totalCenterUsedAmt = totalCenterUsedAmt.add(activityCenter.getUsedAmount());
}
BigDecimal surplusAmt = totalCenterAmt.subtract(totalCenterUsedAmt);
if(surplusAmt.compareTo(BigDecimal.ZERO)<=0){
continue;
}
@ -185,6 +194,10 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
if(tempTotal.compareTo(surplusAmt)<0){
//余额大于核销金额
currentSubjectAmt = tempTotal;
tempTotal = BigDecimal.ZERO;
if(activitySubject.getUsedAmount()==null){
activitySubject.setUsedAmount(BigDecimal.ZERO);
}
activitySubject.setUsedAmount(activitySubject.getUsedAmount().add(tempTotal));
//最后一项
for (TbsActivityCenter activityCenter : activityCenterList) {
@ -203,10 +216,10 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
activityCenterGoods4Update.add(centerGoods);
}
}
break;
activitySubject4Update.add(activitySubject);
}else {
//余额小于于核销金额
currentSubjectAmt = surplusAmt;
currentSubjectAmt = tempTotal;
tempTotal = tempTotal.subtract(surplusAmt);
//设置全部完成
for (TbsActivityCenter activityCenter : activityCenterList) {
@ -222,8 +235,8 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
}
}
activitySubject.setUsedAmount(activitySubject.getAmount());
}
activitySubject4Update.add(activitySubject);
}
//跟随活动科目同级
if(CollectionUtil.isNotEmpty(activityCenterGoods4Update)){
activityCenterGoodsService.updateBatchById(activityCenterGoods4Update);

Loading…
Cancel
Save