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