Browse Source

预算修改BUG

v1.0
15989082884@163.com 2 years ago
parent
commit
85c81cea46
  1. 26
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java

26
src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java

@ -163,22 +163,22 @@ public class TbsBudgetController {
public R<?> updateById(@RequestBody @Valid TbsScheduleItemBudgetBo param){ public R<?> updateById(@RequestBody @Valid TbsScheduleItemBudgetBo param){
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
TbsScheduleItemBudget scheduleItemBudget = tbsScheduleItemBudgetService.getById(param.getId()); TbsScheduleItemBudget scheduleItemBudget = tbsScheduleItemBudgetService.getById(param.getId());
//金额相同时退出
if(scheduleItemBudget.getBudgetAmount().compareTo(param.getBudgetAmount())==0){return R.ok();}
TbsBudget budget = tbsBudgetService.getById(scheduleItemBudget.getBudgetId()); TbsBudget budget = tbsBudgetService.getById(scheduleItemBudget.getBudgetId());
TbsScheduleItemBudget itemBudget = new TbsScheduleItemBudget();
itemBudget.setId(param.getId()); LambdaQueryWrapper<TbsBudgetLog> logLambdaQueryWrapper = new LambdaQueryWrapper<>();
itemBudget.setBudgetAmount(param.getBudgetAmount()); logLambdaQueryWrapper.in(TbsBudgetLog::getOptType,BudgetLogOptFlag.getFinalBudgetOptFlag());
tbsScheduleItemBudgetService.updateById(itemBudget); logLambdaQueryWrapper.eq(TbsBudgetLog::getScheduleItemBudgetId,scheduleItemBudget.getId());
//0-预算新增;1-费用申请;2-预算调增;3-预算调减;4-费用释放 List<TbsBudgetLog> tbsBudgetLogs = tbsBudgetLogService.list(logLambdaQueryWrapper);
BigDecimal logAmount = tbsBudgetLogs.stream().map(a->a.getAmount()).reduce(BigDecimal.ZERO,BigDecimal::add);
BudgetLogOptFlag optType; BudgetLogOptFlag optType;
BigDecimal amount; BigDecimal amount = param.getBudgetAmount().subtract(logAmount);
if(scheduleItemBudget.getBudgetAmount().compareTo(param.getBudgetAmount())>0){ if(amount.compareTo(BigDecimal.ZERO)>0){
amount = scheduleItemBudget.getBudgetAmount().subtract(param.getBudgetAmount());
optType = BudgetLogOptFlag.State_3;
}else {
amount = param.getBudgetAmount().subtract(scheduleItemBudget.getBudgetAmount());
optType = BudgetLogOptFlag.State_2; optType = BudgetLogOptFlag.State_2;
}else if(amount.compareTo(BigDecimal.ZERO)<0){
optType = BudgetLogOptFlag.State_3;
}else{
return R.ok();
} }
TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.toTbsBudgetLog(sysUser,budget,scheduleItemBudget,optType, amount); TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.toTbsBudgetLog(sysUser,budget,scheduleItemBudget,optType, amount);
tbsBudgetLogService.save(budgetLog); tbsBudgetLogService.save(budgetLog);

Loading…
Cancel
Save