From 30d60bc77114df6314c8294a26fafbb6a55f2b09 Mon Sep 17 00:00:00 2001 From: "15989082884@163.com" <15989082884@163.com> Date: Fri, 14 Jul 2023 20:58:37 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=AE=97=E6=9F=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tbs/controller/TbsBudgetController.java | 4 +- .../controller/TbsBudgetLogController.java | 39 +++++++++++++++++-- 2 files changed, 38 insertions(+), 5 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 7eb8f868..85bfbf43 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 @@ -118,8 +118,8 @@ public class TbsBudgetController { public R getById(@PathVariable("id") String id){ TbsBudget budget = tbsBudgetService.getById(id); TbsBudgetVo vo = tbsBudgetService.toVoEntity(budget); - TbsBudgetVo vo2 = tbsBudgetService.getEntityForExcel(budget); - vo.setScheduleItemBudgets(vo2.getScheduleItemBudgets()); +// TbsBudgetVo vo2 = tbsBudgetService.getEntityForExcel(budget); +// vo.setScheduleItemBudgets(vo2.getScheduleItemBudgets()); return R.ok(vo); } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java index 06fa9910..e9cd720e 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java @@ -5,10 +5,13 @@ import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; +import com.qs.serve.common.model.enums.BudgetLogOptFlag; import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget; import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper; +import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; @@ -20,6 +23,7 @@ import com.qs.serve.modules.tbs.service.TbsBudgetLogService; import java.math.BigDecimal; import java.util.List; +import java.util.Optional; /** * 预算 预算日志 @@ -34,6 +38,8 @@ public class TbsBudgetLogController { private TbsBudgetLogService tbsBudgetLogService; private TbsBudgetLogMapper tbsBudgetLogMapper; + private TbsScheduleItemBudgetService tbsScheduleItemBudgetService; + private TbsBudgetLogService budgetLogService; /** * 翻页 @@ -56,9 +62,36 @@ public class TbsBudgetLogController { * @return */ @GetMapping("/getItemAmount") - public R getAmount(Long budgetId,Long itemId){ - BigDecimal amount = tbsBudgetLogMapper.countBudgetItemAmount(budgetId,itemId); - return R.ok(amount); + public R getAmount(Long budgetId,Long itemId){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsScheduleItemBudget::getBudgetId,budgetId); + lqw.eq(TbsScheduleItemBudget::getScheduleItemId,itemId); + List tbsScheduleItemBudgetList = tbsScheduleItemBudgetService.list(lqw); + + Optional optional = tbsScheduleItemBudgetList.stream().findFirst(); + if(optional.isPresent()){ + TbsScheduleItemBudget a = optional.get(); + LambdaQueryWrapper lqwLog = new LambdaQueryWrapper<>(); + lqwLog.eq(TbsBudgetLog::getScheduleItemBudgetId,a.getId()); + lqwLog.eq(TbsBudgetLog::getBudgetId,budgetId); + List tbsBudgetLogList = budgetLogService.list(lqwLog); +// a.setBudgetLogList(tbsBudgetLogList); + + BigDecimal finalBudgetAmount = tbsBudgetLogList.stream().filter(b-> BudgetLogOptFlag.getFinalBudgetOptFlag().contains(b.getOptType())).map(TbsBudgetLog::getAmount) + .reduce(BigDecimal.ZERO,BigDecimal::add); + + BigDecimal usedBudgetAmount = tbsBudgetLogList.stream().filter(b->!BudgetLogOptFlag.getFinalBudgetOptFlag().contains(b.getOptType())).map(TbsBudgetLog::getAmount) + .reduce(BigDecimal.ZERO,BigDecimal::add); + + BigDecimal unUsedBudgetAmount = tbsBudgetLogList.stream().map(TbsBudgetLog::getAmount) + .reduce(BigDecimal.ZERO,BigDecimal::add); + + a.setFinalBudgetAmount(finalBudgetAmount); + a.setUnUsedBudgetAmount(unUsedBudgetAmount); + a.setUsedBudgetAmount(usedBudgetAmount); + return R.ok(a); + } + return R.ok(); } /**