From fa9984a4abddcf5cc4dd20ef38a8722e1dfeb67d Mon Sep 17 00:00:00 2001 From: "15989082884@163.com" <15989082884@163.com> Date: Mon, 24 Jul 2023 15:56:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=90=E6=9C=AC=E4=B8=AD=E5=BF=83=E8=B4=B9?= =?UTF-8?q?=E7=94=A8=E7=8E=87=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bir/controller/BirRoiRateController.java | 20 ++++++++--- .../bir/service/BirCenterRateService.java | 5 ++- .../impl/BirCenterRateServiceImpl.java | 35 +++++++++++++++---- .../tbs/entity/dto/TbsCostSubItem.java | 2 ++ 4 files changed, 50 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java b/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java index b89696d0..8c671949 100644 --- a/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java +++ b/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java @@ -14,18 +14,15 @@ import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.bir.entity.BirBaseActivity; import com.qs.serve.modules.bir.entity.so.BirCostRoiSo; import com.qs.serve.modules.bir.entity.vo.*; -import com.qs.serve.modules.bir.service.BirActivityCenterGoodsService; -import com.qs.serve.modules.bir.service.BirBaseActivityService; -import com.qs.serve.modules.bir.service.BirReportAccountBookService; +import com.qs.serve.modules.bir.service.*; import com.qs.serve.modules.tbs.common.TbsCenterType; +import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem; import com.qs.serve.modules.tbs.service.TbsBudgetService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.web.bind.annotation.*; -import com.qs.serve.modules.bir.service.BirRoiRateService; - import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -46,6 +43,8 @@ public class BirRoiRateController { private BirActivityCenterGoodsService activityCenterGoodsService; private BirReportAccountBookService birReportAccountBookService; private TbsBudgetService tbsBudgetService; + private BirCenterRateService birCenterRateService; + /** * 台账数据集 @@ -141,6 +140,17 @@ public class BirRoiRateController { return R.ok(vo); } + /** + * 获取成本中心费率 + * @param id + * @return + */ + @RepeatSubmit + @GetMapping("/centerRateByCostApplyId") + public R> centerRateByCostApplyId(Long id){ + return R.ok(birCenterRateService.findCostCenterDataByCostApplyId(id)); + } + } diff --git a/src/main/java/com/qs/serve/modules/bir/service/BirCenterRateService.java b/src/main/java/com/qs/serve/modules/bir/service/BirCenterRateService.java index 70bdb8c9..9baeac30 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/BirCenterRateService.java +++ b/src/main/java/com/qs/serve/modules/bir/service/BirCenterRateService.java @@ -2,7 +2,10 @@ package com.qs.serve.modules.bir.service; import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem; +import java.util.List; + public interface BirCenterRateService { - public TbsCostSubItem.CostCenterTranStr buildCostCenter(String centerType, String centerId, String centerName); + TbsCostSubItem.CostCenterTranStr buildCostCenter(String centerType, String centerId, String centerName); + List findCostCenterDataByCostApplyId(Long id); } diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java index d14b9674..087f044c 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java @@ -11,6 +11,7 @@ import com.qs.serve.modules.bir.entity.dto.BirRoiCostDTO; import com.qs.serve.modules.bir.entity.so.BirCostRoiSo; import com.qs.serve.modules.bir.entity.vo.BirRoiCostItemVo; import com.qs.serve.modules.bir.entity.vo.YtdQtdToOAVo; +import com.qs.serve.modules.bir.mapper.BirActivityCenterGoodsMapper; import com.qs.serve.modules.bir.mapper.BirRoiRateMapper; import com.qs.serve.modules.bir.service.BirActivityCenterGoodsService; import com.qs.serve.modules.bir.service.BirCenterRateService; @@ -22,10 +23,12 @@ import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; import com.qs.serve.modules.erp.entity.dto.ErpDispatchSumVo; import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper; import com.qs.serve.modules.tbs.common.util.QuarterUtil; +import com.qs.serve.modules.tbs.entity.TbsActivityCenter; import com.qs.serve.modules.tbs.entity.TbsBudget; import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget; import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem; +import com.qs.serve.modules.tbs.mapper.TbsActivityCenterMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; import com.qs.serve.modules.tbs.mapper.TbsScheduleItemBudgetMapper; import lombok.AllArgsConstructor; @@ -36,10 +39,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; import java.time.Month; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -56,9 +56,32 @@ public class BirCenterRateServiceImpl implements BirCenterRateService { private TbsBudgetMapper tbsBudgetMapper; private BirRoiRateService birRoiRateService; private final ErpDispatchDataMapper dispatchDataMapper; - private BirActivityCenterGoodsService birActivityCenterGoodsService; + private BirActivityCenterGoodsMapper birActivityCenterGoodsMapper; + private TbsActivityCenterMapper tbsActivityCenterMapper; + public List findCostCenterDataByCostApplyId(Long id){ + List centerDataList = new ArrayList<>(); + + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsActivityCenter::getCostApplyId,id); + List tbsActivityCenters = tbsActivityCenterMapper.selectList(lqw); + if(tbsActivityCenters.size()==0){ + return centerDataList; + } + + Map> centerMapList = tbsActivityCenters.stream().collect(Collectors.groupingBy(a->a.getCenterType()+"-"+a.getCenterId())); + List centerList = centerMapList.values().stream().map(a->a.get(0)).collect(Collectors.toList()); + + for(TbsActivityCenter center : centerList) { + TbsCostSubItem.CostCenterTranStr costCenter = this.buildCostCenter(center.getCenterType(), center.getCenterId(), center.getCenterName()); + costCenter.setCenterId(center.getCenterId()); + costCenter.setCentertype(center.getCenterType()); + centerDataList.add(costCenter); + } + return centerDataList; + } + public TbsCostSubItem.CostCenterTranStr buildCostCenter(String centerType,String centerId,String centerName){ @@ -117,7 +140,7 @@ public class BirCenterRateServiceImpl implements BirCenterRateService { birLwq.eq(BirActivityCenterGoods::getCenterType,centerType); birLwq.ge(BirActivityCenterGoods::getKeyNum,startMonthNum); birLwq.le(BirActivityCenterGoods::getKeyNum,endMonthNum); - List birCenterCost = birActivityCenterGoodsService.list(birLwq); + List birCenterCost = birActivityCenterGoodsMapper.selectList(birLwq); /* --------------- 实际费用率YTD --------------------------------------------- */ BigDecimal ytdRealDipatch = dispatchSumVos.stream().map(a->a.getDispatchSumCost()).reduce(BigDecimal.ZERO,BigDecimal::add); diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostSubItem.java b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostSubItem.java index 63b6ae39..aeb44329 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostSubItem.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostSubItem.java @@ -106,6 +106,8 @@ public class TbsCostSubItem { } private String chengBenZhongXin; private String chengBenZhongXinId; + private String centertype; + private String centerId; //区域预算,预算金额 private String areaBudget;