From 85c81cea469bb476a80ee31b1d26372bd7a87532 Mon Sep 17 00:00:00 2001 From: "15989082884@163.com" <15989082884@163.com> Date: Thu, 27 Jul 2023 17:15:59 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=AE=97=E4=BF=AE=E6=94=B9BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tbs/controller/TbsBudgetController.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java index 92a157f8..48415f52 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java +++ b/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){ SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); TbsScheduleItemBudget scheduleItemBudget = tbsScheduleItemBudgetService.getById(param.getId()); - //金额相同时退出 - if(scheduleItemBudget.getBudgetAmount().compareTo(param.getBudgetAmount())==0){return R.ok();} TbsBudget budget = tbsBudgetService.getById(scheduleItemBudget.getBudgetId()); - TbsScheduleItemBudget itemBudget = new TbsScheduleItemBudget(); - itemBudget.setId(param.getId()); - itemBudget.setBudgetAmount(param.getBudgetAmount()); - tbsScheduleItemBudgetService.updateById(itemBudget); - //0-预算新增;1-费用申请;2-预算调增;3-预算调减;4-费用释放 + + LambdaQueryWrapper logLambdaQueryWrapper = new LambdaQueryWrapper<>(); + logLambdaQueryWrapper.in(TbsBudgetLog::getOptType,BudgetLogOptFlag.getFinalBudgetOptFlag()); + logLambdaQueryWrapper.eq(TbsBudgetLog::getScheduleItemBudgetId,scheduleItemBudget.getId()); + List tbsBudgetLogs = tbsBudgetLogService.list(logLambdaQueryWrapper); + BigDecimal logAmount = tbsBudgetLogs.stream().map(a->a.getAmount()).reduce(BigDecimal.ZERO,BigDecimal::add); + BudgetLogOptFlag optType; - BigDecimal amount; - if(scheduleItemBudget.getBudgetAmount().compareTo(param.getBudgetAmount())>0){ - amount = scheduleItemBudget.getBudgetAmount().subtract(param.getBudgetAmount()); - optType = BudgetLogOptFlag.State_3; - }else { - amount = param.getBudgetAmount().subtract(scheduleItemBudget.getBudgetAmount()); + BigDecimal amount = param.getBudgetAmount().subtract(logAmount); + if(amount.compareTo(BigDecimal.ZERO)>0){ 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); tbsBudgetLogService.save(budgetLog);