From 5b7fd18735b7b2d958121253d7507d0a86320422 Mon Sep 17 00:00:00 2001 From: liuzongkun999 Date: Fri, 7 Mar 2025 14:40:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=90=E6=9C=AC=E5=88=86=E6=9E=90=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=89=80=E6=9C=89=E9=A1=B9=E7=9B=AE=E6=88=90=E6=9C=AC?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4=E8=BF=94=E5=9B=9E=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oa/service/impl/SysOaCostServiceImpl.java | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaCostServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaCostServiceImpl.java index 2e8fccf..09d9168 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaCostServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaCostServiceImpl.java @@ -23,6 +23,7 @@ import com.ruoyi.oa.domain.SysOaCost; import com.ruoyi.oa.service.ISysOaCostService; import java.util.*; +import java.util.stream.Collectors; /** * 项目成本分析Service业务层处理 @@ -169,10 +170,41 @@ public class SysOaCostServiceImpl implements ISysOaCostService { } else if (allVo.getCostType() == 5) { // 接待 }} - // 往vos里面加 allVos.add(allVo); + } - return TableDataInfo.build(allVos); + +// 假设原始数据列表为 allVos + List resVos = allVos.stream() + .collect(Collectors.groupingBy(SysOaCostAllVo::getProjectId)) + .values().stream() + .map(group -> { + Double userCostSum = group.stream().mapToDouble(x -> Optional.ofNullable((Double)x.getUserCost()).orElse(0.0)).sum(); + + Double claimCostSum = group.stream().mapToDouble(x -> Optional.ofNullable((Double)x.getUserCost()).orElse(0.0)).sum(); + Double materialCostSum = group.stream().mapToDouble(x -> Optional.ofNullable((Double)x.getUserCost()).orElse(0.0)).sum(); + Double totalCost = userCostSum + claimCostSum + materialCostSum; + + return new SysOaCostAllVo( + group.get(0).getProjectId(), + group.get(0).getProjectName(), + totalCost, + null, + "汇总数据", // 备注 + null, + null, // materialId + materialCostSum, + null, // userId + userCostSum, + null, // claimId + claimCostSum, + null// financeId + ); + }) + .collect(Collectors.toList()); + + + return TableDataInfo.build(resVos); } /**