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 df83873a..e822ee84 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 @@ -49,27 +49,27 @@ public class BirRoiRateController { * 台账数据集 * @return */ - @GetMapping("/standingBook") - public R> getStandingBook(String type){ - - List list = new ArrayList<>(); - BirCenterCostRateItem rateItem = new BirCenterCostRateItem(); - rateItem.setTargetDispatchAmt(BigDecimal.ZERO); - rateItem.setBudgetAmt(new BigDecimal("123456")); - rateItem.setTargetRoiRate(new BigDecimal("123456")); - rateItem.setRealDispatchAmt(new BigDecimal("123456")); - rateItem.setCostAmt(new BigDecimal("123456")); - rateItem.setRealRoiRate(new BigDecimal("123456")); - rateItem.setCostPassAmt(new BigDecimal("123456")); - rateItem.setCostApplyingAmt(new BigDecimal("123456")); - rateItem.setCheckedAmt(new BigDecimal("123456")); - rateItem.setCheckingAmt(new BigDecimal("123456")); - rateItem.setNoCheckAmt(new BigDecimal("123456")); - rateItem.setReleaseAmt(new BigDecimal("123456")); - rateItem.setFrozenAmt(new BigDecimal("123456")); - list.add(rateItem); - return R.ok(); - } +// @GetMapping("/standingBook") +// public R> getStandingBook(String type){ +// +// List list = new ArrayList<>(); +// BirCenterCostRateItem rateItem = new BirCenterCostRateItem(); +// rateItem.setTargetDispatchAmt(BigDecimal.ZERO); +// rateItem.setBudgetAmt(new BigDecimal("123456")); +// rateItem.setTargetRoiRate(new BigDecimal("123456")); +// rateItem.setRealDispatchAmt(new BigDecimal("123456")); +// rateItem.setCostAmt(new BigDecimal("123456")); +// rateItem.setRealRoiRate(new BigDecimal("123456")); +// rateItem.setCostPassAmt(new BigDecimal("123456")); +// rateItem.setCostApplyingAmt(new BigDecimal("123456")); +// rateItem.setCheckedAmt(new BigDecimal("123456")); +// rateItem.setCheckingAmt(new BigDecimal("123456")); +// rateItem.setNoCheckAmt(new BigDecimal("123456")); +// rateItem.setReleaseAmt(new BigDecimal("123456")); +// rateItem.setFrozenAmt(new BigDecimal("123456")); +// list.add(rateItem); +// return R.ok(); +// } /** * @@ -93,9 +93,9 @@ public class BirRoiRateController { * 台账 * @return */ - @GetMapping("/standingBookByCall") + @GetMapping("/standingBook") public R standingBookByCall(String type,String year){ - return R.ok(birReportAccountBookService.getReportAccountBookData(type)); + return R.ok(birReportAccountBookService.getReportAccountBookData(type,year)); } diff --git a/src/main/java/com/qs/serve/modules/bir/entity/vo/BirAccountReportVo.java b/src/main/java/com/qs/serve/modules/bir/entity/vo/BirAccountReportVo.java new file mode 100644 index 00000000..d624002d --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bir/entity/vo/BirAccountReportVo.java @@ -0,0 +1,21 @@ +package com.qs.serve.modules.bir.entity.vo; + +import com.qs.serve.common.model.dto.HeaderOption; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +/** + * @author YenHex + * @since 2023/6/6 + */ +@Data +public class BirAccountReportVo { + + private List headerList; + + private BudgetPlanVo budgetPlanVo; + + private List> itemList; +} diff --git a/src/main/java/com/qs/serve/modules/bir/entity/vo/BirCenterCostRateItem.java b/src/main/java/com/qs/serve/modules/bir/entity/vo/BirCenterCostRateItem.java index 9ff09d33..3ea534a6 100644 --- a/src/main/java/com/qs/serve/modules/bir/entity/vo/BirCenterCostRateItem.java +++ b/src/main/java/com/qs/serve/modules/bir/entity/vo/BirCenterCostRateItem.java @@ -3,6 +3,7 @@ package com.qs.serve.modules.bir.entity.vo; import lombok.Data; import java.math.BigDecimal; +import java.util.Map; /** * @author YenHex @@ -32,48 +33,67 @@ public class BirCenterCostRateItem { private BigDecimal realDispatchAmt; /** - * 核销费用 + * 已用预算金额 */ - private BigDecimal costAmt; + private BigDecimal usedBudgetAmt; /** - * 实际费率 - */ - private BigDecimal realRoiRate; - - /** - * 已批准费用金额 - */ - private BigDecimal costPassAmt; - - /** - * 申请中费用金额 - */ - private BigDecimal costApplyingAmt; - - /** - * 已核销费用金额 + * 可用预算金额 */ - private BigDecimal checkedAmt; + private BigDecimal unUsedBudgetAmt; /** - * 未核销金额(申请中) - */ - private BigDecimal checkingAmt; - - /** - * 未申请核销金额 - */ - private BigDecimal noCheckAmt; - - /** - * 已释放金额 - */ - private BigDecimal releaseAmt; - - /** - * 冻结中 + * 实际费率 */ - private BigDecimal frozenAmt; + private BigDecimal realRoiRate; +// /** +// * 已批准费用金额 +// */ +// private BigDecimal costPassAmt; +// +// /** +// * 申请中费用金额 +// */ +// private BigDecimal costApplyingAmt; +// +// /** +// * 已核销费用金额 +// */ +// private BigDecimal checkedAmt; +// +// /** +// * 未核销金额(申请中) +// */ +// private BigDecimal checkingAmt; +// +// /** +// * 未申请核销金额 +// */ +// private BigDecimal noCheckAmt; +// +// /** +// * 已释放金额 +// */ +// private BigDecimal releaseAmt; +// +// /** +// * 冻结中 +// */ +// private BigDecimal frozenAmt; + + public BirCenterCostRateItem(){ + + } + + public BirCenterCostRateItem(Map map,String headerPrefix){ + this.targetDispatchAmt = map.get(headerPrefix+"目标发货")==null?BigDecimal.ZERO:(BigDecimal) map.get(headerPrefix+"目标发货"); + this.realDispatchAmt = map.get(headerPrefix+"实际发货")==null?BigDecimal.ZERO:(BigDecimal) map.get(headerPrefix+"实际发货"); + this.budgetAmt = map.get(headerPrefix+"总预算")==null?BigDecimal.ZERO:(BigDecimal) map.get(headerPrefix+"总预算"); + this.usedBudgetAmt = map.get(headerPrefix+"已用预算")==null?BigDecimal.ZERO:(BigDecimal) map.get(headerPrefix+"已用预算"); + this.unUsedBudgetAmt = map.get(headerPrefix+"可用预算")==null?BigDecimal.ZERO:(BigDecimal) map.get(headerPrefix+"可用预算"); + this.realRoiRate = map.get(headerPrefix+"实际费用率")==null?BigDecimal.ZERO:((BigDecimal) map.get(headerPrefix+"实际费用率")).multiply(BigDecimal.valueOf(100L)); + this.targetRoiRate = map.get(headerPrefix+"目标费用率")==null?BigDecimal.ZERO:((BigDecimal) map.get(headerPrefix+"目标费用率")).multiply(BigDecimal.valueOf(100L)); + + } } diff --git a/src/main/java/com/qs/serve/modules/bir/entity/vo/BirCenterCostRateMain.java b/src/main/java/com/qs/serve/modules/bir/entity/vo/BirCenterCostRateMain.java index b102d289..25d22dba 100644 --- a/src/main/java/com/qs/serve/modules/bir/entity/vo/BirCenterCostRateMain.java +++ b/src/main/java/com/qs/serve/modules/bir/entity/vo/BirCenterCostRateMain.java @@ -16,6 +16,5 @@ public class BirCenterCostRateMain { private TbsBudgetSimpleVo budgetInfo; private BirCenterCostRateItem yearInfo; private List seasonList; - private List monthList; } diff --git a/src/main/java/com/qs/serve/modules/bir/entity/vo/BirReportVo.java b/src/main/java/com/qs/serve/modules/bir/entity/vo/BirReportVo.java index f6378438..fb9c1a4c 100644 --- a/src/main/java/com/qs/serve/modules/bir/entity/vo/BirReportVo.java +++ b/src/main/java/com/qs/serve/modules/bir/entity/vo/BirReportVo.java @@ -18,4 +18,6 @@ public class BirReportVo { private List headerList; private BudgetPlanVo budgetPlanVo; + + private List> dataList; } diff --git a/src/main/java/com/qs/serve/modules/bir/entity/vo/BudgetPlanVo.java b/src/main/java/com/qs/serve/modules/bir/entity/vo/BudgetPlanVo.java index 686bc7a9..f055e26b 100644 --- a/src/main/java/com/qs/serve/modules/bir/entity/vo/BudgetPlanVo.java +++ b/src/main/java/com/qs/serve/modules/bir/entity/vo/BudgetPlanVo.java @@ -16,4 +16,6 @@ public class BudgetPlanVo { BigDecimal usedAmout; BigDecimal plannedAmount; + + BigDecimal realSaleAmount; } diff --git a/src/main/java/com/qs/serve/modules/bir/mapper/BirReportAccountBookMapper.java b/src/main/java/com/qs/serve/modules/bir/mapper/BirReportAccountBookMapper.java index 27258b90..44d606e7 100644 --- a/src/main/java/com/qs/serve/modules/bir/mapper/BirReportAccountBookMapper.java +++ b/src/main/java/com/qs/serve/modules/bir/mapper/BirReportAccountBookMapper.java @@ -22,31 +22,31 @@ import java.util.Map; @Mapper public interface BirReportAccountBookMapper { - @Select("call get_report_header(#{result, mode=OUT, jdbcType=VARCHAR})") + @Select("call get_report_header(#{inyear, mode=IN, jdbcType=VARCHAR},#{result, mode=OUT, jdbcType=VARCHAR})") @Options(statementType = StatementType.CALLABLE) @InterceptorIgnore(tenantLine = "true") void getReportHeader(Map map); - @Select("call get_tbs_report_region()") + @Select("call get_tbs_report_region(#{inyear, mode=IN, jdbcType=VARCHAR})") @Options(statementType = StatementType.CALLABLE) @InterceptorIgnore(tenantLine = "true") - List> reportAccountBookRegion(); + List> reportAccountBookRegion(@Param("inyear") String inyear); - @Select("call get_tbs_report_customer()") + @Select("call get_tbs_report_customer(#{inyear, mode=IN, jdbcType=VARCHAR})") @Options(statementType = StatementType.CALLABLE) @InterceptorIgnore(tenantLine = "true") - List> reportAccountBookCustomer(); + List> reportAccountBookCustomer(@Param("inyear")String inyear); - @Select("call get_tbs_report_bizregion()") + @Select("call get_tbs_report_bizregion(#{inyear, mode=IN, jdbcType=VARCHAR})") @Options(statementType = StatementType.CALLABLE) @InterceptorIgnore(tenantLine = "true") - List> reportAccountBookBizRegion(); + List> reportAccountBookBizRegion(@Param("inyear")String inyear); - @Select("call get_tbs_report_center()") + @Select("call get_tbs_report_center(#{inyear, mode=IN, jdbcType=VARCHAR})") @Options(statementType = StatementType.CALLABLE) @InterceptorIgnore(tenantLine = "true") - List> reportAccountBookCenter(); + List> reportAccountBookCenter(@Param("inyear")String inyear); } diff --git a/src/main/java/com/qs/serve/modules/bir/service/BirReportAccountBookService.java b/src/main/java/com/qs/serve/modules/bir/service/BirReportAccountBookService.java index 07db2b1e..c6d731be 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/BirReportAccountBookService.java +++ b/src/main/java/com/qs/serve/modules/bir/service/BirReportAccountBookService.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.bir.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.bir.entity.BirBaseActivity; +import com.qs.serve.modules.bir.entity.vo.BirAccountReportVo; import com.qs.serve.modules.bir.entity.vo.BirReportVo; /** @@ -11,6 +12,6 @@ import com.qs.serve.modules.bir.entity.vo.BirReportVo; */ public interface BirReportAccountBookService { - BirReportVo getReportAccountBookData(String type); + BirAccountReportVo getReportAccountBookData(String type,String year); } diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirReportAccountBookServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirReportAccountBookServiceImpl.java index 9fc96171..656d2c20 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirReportAccountBookServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirReportAccountBookServiceImpl.java @@ -7,24 +7,30 @@ import com.qs.serve.common.util.CopierUtil; import com.qs.serve.modules.bir.entity.BirRoiRate; 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.BirReportVo; -import com.qs.serve.modules.bir.entity.vo.BirRoiCostItemVo; -import com.qs.serve.modules.bir.entity.vo.BudgetPlanVo; -import com.qs.serve.modules.bir.entity.vo.YtdQtdToOAVo; +import com.qs.serve.modules.bir.entity.vo.*; import com.qs.serve.modules.bir.mapper.BirReportAccountBookMapper; import com.qs.serve.modules.bir.mapper.BirRoiRateMapper; import com.qs.serve.modules.bir.service.BirReportAccountBookService; import com.qs.serve.modules.bir.service.BirRoiRateService; +import com.qs.serve.modules.bms.entity.BmsCostCenter; +import com.qs.serve.modules.bms.entity.BmsRegion; +import com.qs.serve.modules.bms.entity.BmsRegion2; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; +import com.qs.serve.modules.bms.service.BmsCostCenterService; +import com.qs.serve.modules.bms.service.BmsRegion2Service; import com.qs.serve.modules.bms.service.BmsRegionService; +import com.qs.serve.modules.bms.service.BmsSupplierService; import com.qs.serve.modules.erp.entity.dto.ErpDispatchSumVo; import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper; +import com.qs.serve.modules.goods.entity.dto.TbsCenterDto; import com.qs.serve.modules.tbs.common.TbsCenterType; import com.qs.serve.modules.tbs.entity.TbsBudgetPlan; import com.qs.serve.modules.tbs.entity.TbsCostApply; +import com.qs.serve.modules.tbs.entity.TbsScheduleItem; import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper; +import com.qs.serve.modules.tbs.mapper.TbsScheduleItemMapper; import com.qs.serve.modules.tbs.service.TbsBudgetLogService; import com.qs.serve.modules.tbs.service.TbsBudgetPlanService; import lombok.AllArgsConstructor; @@ -36,6 +42,7 @@ import java.math.RoundingMode; import java.time.LocalDate; import java.time.Month; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -50,64 +57,145 @@ public class BirReportAccountBookServiceImpl implements BirReportAccountBookServ private final BirReportAccountBookMapper birReportAccountBookMapper; private final BmsRegionService bmsRegionService; + private final BmsRegion2Service bmsRegion2Service; + private final BmsSupplierService bmsSupplierService; + private final BmsCostCenterService bmsCostCenterService; private final TbsBudgetPlanService tbsBudgetPlanService; private final TbsBudgetLogMapper tbsBudgetLogMapper; + private final TbsScheduleItemMapper tbsScheduleItemMapper; + private final ErpDispatchDataMapper erpDispatchDataMapper; @Override - public BirReportVo getReportAccountBookData(String type){ + public BirAccountReportVo getReportAccountBookData(String type,String year){ - BirReportVo vo = new BirReportVo(); + BirAccountReportVo vo = new BirAccountReportVo(); - Map map = new HashMap<>(); - map.put("result",""); - birReportAccountBookMapper.getReportHeader(map); + List> itemDataList = new ArrayList<>(); - String headerString = map.get("result"); - List headerOptions = Arrays.stream(headerString.split(",")).map(a->{ - String temp = a.trim(); - if(temp.contains("as")){ - temp = a.split("as")[1].trim(); - } - return new HeaderOption(temp); - }).collect(Collectors.toList()); + List headerList = tbsScheduleItemMapper.getItemNames(year); - - List>> list = new ArrayList<>(); + if(headerList.size()==0){ + return vo; + } if(type.equals(TbsCenterType.saleRegion.name())){ - List> itemList = birReportAccountBookMapper.reportAccountBookRegion(); -// -// List regionList = bmsRegionService.getTree(false); -// List>> regionDataList = regionList.stream().map(a-> -// itemList.stream().filter(i->i.get("成本中心编码").toString().startsWith(a.getCode())).collect(Collectors.toList()) -// ).filter(p->p.size()!=0).collect(Collectors.toList()); -// -// headerOptions = headerOptions.stream().map(a->{ -// if(a.getName().startsWith("成本中心")){ -// -// }else{ -//// a.setIsSum(true); -// a.setDecimalLength(2); -// a.setAlign("right"); -// } -// return a; -// }).collect(Collectors.toList()); -// -// list = regionDataList; - list.add(itemList); + List bmsRegionList = bmsRegionService.list(); + Map bmsRegionMap = bmsRegionList.stream().collect(Collectors.toMap(BmsRegion::getId, Function.identity())); + + List> itemList = birReportAccountBookMapper.reportAccountBookRegion(year); + + Map> mainList = itemList.stream().map(i->{ + BirCenterCostRateMain main = new BirCenterCostRateMain(); + + BmsRegion center2 = bmsRegionMap.get(i.get("center_id")); + if(center2==null){ + return main; + }else{ + main.setCenter2(new TbsCenterDto(center2)); + } + + BmsRegion center1 = bmsRegionMap.get(center2.getPid()); + if(center1==null){ + main.setCenter1(new TbsCenterDto(center2)); + }else{ + main.setCenter1(new TbsCenterDto(center1)); + } + + List seasonList = headerList.stream().map(a-> new BirCenterCostRateItem(i,"【"+a+"】")).collect(Collectors.toList()); + main.setSeasonList(seasonList); + main.setYearInfo(new BirCenterCostRateItem(i,"【全年】")); + + return main; + }).filter(a->a.getCenter2()!=null).collect(Collectors.groupingBy(a->a.getCenter1().getId())); + + itemDataList.addAll(mainList.values()); }else if(type.equals(TbsCenterType.bizRegion.name())){ - List> itemList = birReportAccountBookMapper.reportAccountBookBizRegion(); - list.add(itemList); + List bmsRegionList = bmsRegion2Service.list(); + Map bmsRegionMap = bmsRegionList.stream().collect(Collectors.toMap(BmsRegion2::getId, Function.identity())); + + List> itemList = birReportAccountBookMapper.reportAccountBookBizRegion(year); + + Map> mainList = itemList.stream().map(i->{ + BirCenterCostRateMain main = new BirCenterCostRateMain(); + + BmsRegion2 center2 = bmsRegionMap.get(i.get("center_id")); + if(center2==null){ + return main; + }else{ + main.setCenter2(new TbsCenterDto(center2)); + main.setCenter1(new TbsCenterDto(center2)); + } + + + List seasonList = headerList.stream().map(a-> new BirCenterCostRateItem(i,"【"+a+"】")).collect(Collectors.toList()); + main.setSeasonList(seasonList); + main.setYearInfo(new BirCenterCostRateItem(i,"【全年】")); + + return main; + }).filter(a->a.getCenter2()!=null).collect(Collectors.groupingBy(a->a.getCenter1().getId())); + + itemDataList.addAll(mainList.values()); }else if(type.equals(TbsCenterType.customer.name())){ - List> itemList = birReportAccountBookMapper.reportAccountBookCustomer(); - list.add(itemList); + + List> itemList = birReportAccountBookMapper.reportAccountBookCustomer(year); + List supperIds = itemList.stream().map(i->i.get("center_id").toString()).collect(Collectors.toList()); + + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.in(BmsSupplier::getId,supperIds); + List supplierList = bmsSupplierService.list(lqw); + Map supplierMap = supplierList.stream().collect(Collectors.toMap(BmsSupplier::getId, Function.identity())); + + + List mainList = itemList.stream().map(i->{ + BirCenterCostRateMain main = new BirCenterCostRateMain(); + + BmsSupplier supplier = supplierMap.get(i.get("center_id")); + if(supplier==null){ + return main; + }else{ + main.setCenter2(new TbsCenterDto(supplier)); + main.setCenter1(new TbsCenterDto(supplier)); + } + + List seasonList = headerList.stream().map(a-> new BirCenterCostRateItem(i,"【"+a+"】")).collect(Collectors.toList()); + main.setSeasonList(seasonList); + main.setYearInfo(new BirCenterCostRateItem(i,"【全年】")); + + return main; + }).filter(a->a.getCenter2()!=null).collect(Collectors.toList()); + itemDataList.add(mainList); + }else if(type.equals(TbsCenterType.center.name())){ - List> itemList = birReportAccountBookMapper.reportAccountBookCenter(); - list.add(itemList); + List> itemList = birReportAccountBookMapper.reportAccountBookCenter(year); + List centerIds = itemList.stream().map(i->i.get("center_id").toString()).collect(Collectors.toList()); + + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.in(BmsCostCenter::getId,centerIds); + List bmsCostCenterList = bmsCostCenterService.list(lqw); + Map bmsCostCenterMap = bmsCostCenterList.stream().collect(Collectors.toMap(a->a.getId().toString(), Function.identity())); + + List mainList = itemList.stream().map(i->{ + BirCenterCostRateMain main = new BirCenterCostRateMain(); + + BmsCostCenter costCenter = bmsCostCenterMap.get(i.get("center_id")); + if(costCenter==null){ + return main; + }else{ + main.setCenter2(new TbsCenterDto(costCenter)); + main.setCenter1(new TbsCenterDto(costCenter)); + } + + List seasonList = headerList.stream().map(a-> new BirCenterCostRateItem(i,"【"+a+"】")).collect(Collectors.toList()); + main.setSeasonList(seasonList); + main.setYearInfo(new BirCenterCostRateItem(i,"【全年】")); + + return main; + }).filter(a->a.getCenter2()!=null).collect(Collectors.toList()); + itemDataList.add(mainList); } LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(TbsBudgetPlan::getBudgetYear,"2023"); + lqw.eq(TbsBudgetPlan::getBudgetYear,year); TbsBudgetPlan tbsBudgetPlan = tbsBudgetPlanService.getOne(lqw); BudgetPlanVo budgetPlanVo = new BudgetPlanVo(); @@ -120,8 +208,11 @@ public class BirReportAccountBookServiceImpl implements BirReportAccountBookServ BigDecimal usedAmount = tbsBudgetLogMapper.countUsedBudgetAmount(); budgetPlanVo.setUsedAmout(usedAmount); - vo.setHeaderList(headerOptions); - vo.setItemList(list); + BigDecimal realSaleAmount = erpDispatchDataMapper.querySumCostAmt(Integer.parseInt(year+"01"),Integer.parseInt(year+"12"),null); + budgetPlanVo.setRealSaleAmount(realSaleAmount); + + vo.setHeaderList(headerList); + vo.setItemList(itemDataList); vo.setBudgetPlanVo(budgetPlanVo); return vo; } diff --git a/src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java b/src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java index 6dd9271c..9f2cbb2e 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/dto/TbsCenterDto.java @@ -1,5 +1,9 @@ package com.qs.serve.modules.goods.entity.dto; +import com.qs.serve.modules.bms.entity.BmsCostCenter; +import com.qs.serve.modules.bms.entity.BmsRegion; +import com.qs.serve.modules.bms.entity.BmsRegion2; +import com.qs.serve.modules.bms.entity.BmsSupplier; import lombok.AllArgsConstructor; import lombok.Data; @@ -47,4 +51,31 @@ public class TbsCenterDto { this.centerType = centerType; } + public TbsCenterDto(BmsRegion bmsRegion){ + this.id = bmsRegion.getId(); + this.centerCode = bmsRegion.getCode(); + this.centerName = bmsRegion.getName(); + this.centerType = "saleRegion"; + } + + public TbsCenterDto(BmsRegion2 bmsRegion){ + this.id = bmsRegion.getId(); + this.centerCode = bmsRegion.getCode(); + this.centerName = bmsRegion.getName(); + this.centerType = "bizRegion"; + } + + public TbsCenterDto(BmsSupplier supplier){ + this.id = supplier.getId(); + this.centerCode = supplier.getCode(); + this.centerName = supplier.getName(); + this.centerType = "customer"; + } + + public TbsCenterDto(BmsCostCenter costCenter){ + this.id = costCenter.getId().toString(); + this.centerCode = costCenter.getCode(); + this.centerName = costCenter.getName(); + this.centerType = "center"; + } } diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLogMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLogMapper.java index 60b455cc..a5d7e404 100644 --- a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLogMapper.java +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLogMapper.java @@ -17,10 +17,10 @@ public interface TbsBudgetLogMapper extends BaseMapper { @Select("SELECT SUM(amount) FROM `tbs_budget_log` WHERE budget_id = #{budgetId} AND schedule_item_id = #{itemId} AND del_flag = '0'") BigDecimal countBudgetItemAmount(@Param("budgetId")Long budgetId,@Param("itemId")Long itemId ); - @Select("SELECT SUM(amount) FROM `tbs_budget_log` WHERE opt_type in (0,2,3) and del_flag = '0'") + @Select("SELECT ROUND(SUM(amount),2) FROM `tbs_budget_log` WHERE opt_type in (0,2,3) and del_flag = '0'") BigDecimal countPlannedBudgetAmount(); - @Select("SELECT SUM(amount) FROM `tbs_budget_log` WHERE opt_type in (1,4,5,6,11,12,13,14,15) and del_flag = '0'") + @Select("SELECT ROUND(abs(SUM(amount)),2) FROM `tbs_budget_log` WHERE opt_type in (1,4,5,6,11,12,13,14,15) and del_flag = '0'") BigDecimal countUsedBudgetAmount(); } diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemMapper.java index ee697982..2fc27a05 100644 --- a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemMapper.java +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemMapper.java @@ -2,6 +2,9 @@ package com.qs.serve.modules.tbs.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qs.serve.modules.tbs.entity.TbsScheduleItem; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** * 考核时间项 Mapper @@ -10,5 +13,7 @@ import com.qs.serve.modules.tbs.entity.TbsScheduleItem; */ public interface TbsScheduleItemMapper extends BaseMapper { + @Select("SELECT item_name FROM tbs_schedule_item WHERE year(start_date)=#{year} ORDER BY item_name") + List getItemNames(String year); } diff --git a/src/main/resources/mapper/erp/ErpDispatchDataMapper.xml b/src/main/resources/mapper/erp/ErpDispatchDataMapper.xml index ef12539a..ec64df15 100644 --- a/src/main/resources/mapper/erp/ErpDispatchDataMapper.xml +++ b/src/main/resources/mapper/erp/ErpDispatchDataMapper.xml @@ -72,10 +72,12 @@ where DATE_FORMAT(date,'%Y%m') >= #{startNumber} and DATE_FORMAT(date,'%Y%m') <= #{endNumber} - and cus_code in - - #{selectId} - + + and cus_code in + + #{selectId} + +