From b74b36cab2d4b4f18ce284cd387b9be44a2dfcbf Mon Sep 17 00:00:00 2001 From: Yen Date: Thu, 9 Nov 2023 16:16:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E8=B0=83=E6=95=B4=EF=BC=9B?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=A4=A7=E5=8C=BA=E8=B4=B9=E7=8E=87=EF=BC=9B?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AE=A2=E6=88=B7=E5=85=AC=E5=8F=B8=E7=BB=B4?= =?UTF-8?q?=E5=BA=A6=E8=B4=B9=E7=8E=87=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/bir/entity/so/BirCostRoiSo.java | 2 + .../bir/entity/vo/BirRoiCostItemVo.java | 4 ++ .../service/impl/BirRoiRateServiceImpl.java | 66 ++++++++++++++++++- .../serve/modules/bms/entity/BmsSupplier.java | 4 ++ .../pay/mapper/PayPaymentItemMapper.java | 2 + .../modules/pay/mapper/PayPaymentMapper.java | 11 +++- .../modules/sys/service/SysAttachService.java | 3 + .../tbs/controller/TbsBudgetController.java | 1 - .../tbs/entity/bo/TbsBudgetBatchBo.java | 8 ++- .../impl/TbsBudgetBatchServiceImpl.java | 3 + src/main/java/com/qs/serve/task/PayTask.java | 17 +++-- .../mapper/pay/PayPaymentItemMapper.xml | 8 +++ 12 files changed, 115 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/bir/entity/so/BirCostRoiSo.java b/src/main/java/com/qs/serve/modules/bir/entity/so/BirCostRoiSo.java index d27ba7c8..47dfcad0 100644 --- a/src/main/java/com/qs/serve/modules/bir/entity/so/BirCostRoiSo.java +++ b/src/main/java/com/qs/serve/modules/bir/entity/so/BirCostRoiSo.java @@ -20,6 +20,8 @@ public class BirCostRoiSo { * 1->申请人的客户(不含当前客户) * 2->客户的行政区域(不含当前客户) * 3->客户的销售区域(不含当前客户) + * 4->客户的公司维度(替换原来的0) + * */ private Integer loadType; diff --git a/src/main/java/com/qs/serve/modules/bir/entity/vo/BirRoiCostItemVo.java b/src/main/java/com/qs/serve/modules/bir/entity/vo/BirRoiCostItemVo.java index 54510393..3cbdd3a5 100644 --- a/src/main/java/com/qs/serve/modules/bir/entity/vo/BirRoiCostItemVo.java +++ b/src/main/java/com/qs/serve/modules/bir/entity/vo/BirRoiCostItemVo.java @@ -56,6 +56,10 @@ public class BirRoiCostItemVo { */ private BigDecimal dispatchAmt; + private BigDecimal regionTotalCostAmt; + + private BigDecimal regionTotalDispatchAmt; + private Float ytdPercent; private Float qtdPercent; diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java index 9e1ef68b..f53309b9 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java @@ -65,6 +65,9 @@ public class BirRoiRateServiceImpl extends ServiceImpl forecastDataList = baseMapper.queryForecastRoiCostItems(param); @@ -103,6 +106,7 @@ public class BirRoiRateServiceImpl extends ServiceImpl getCostRoiOfYearMonth(BirCostRoiSo param) { Integer loadType = param.getLoadType(); String supplierId = param.getSupplierId(); + BmsSupplier supplier = bmsSupplierMapper.selectById(supplierId); //最近12个月 LocalDate currMonth = LocalDate.now(); int currMonthNum = currMonth.getYear()*100 + currMonth.getMonthValue(); @@ -117,6 +121,9 @@ public class BirRoiRateServiceImpl extends ServiceImpl costItemVoList = this.queryRoiCostItems(costDTO); + //构建大区费率 + this.buildRegionCostAndRate(supplier, currMonthNum, startMonthNum, supplierCodeList, costItemVoList); + //发货单 List dispatchSumVos = null; if(supplierCodeList!=null&&supplierCodeList.size()>0){ @@ -162,10 +169,13 @@ public class BirRoiRateServiceImpl extends ServiceImpl supplierCodeList, List costItemVoList) { + //加载公司内所有客户的编码 + LambdaQueryWrapper regionSupplierLqw = new LambdaQueryWrapper<>(); + regionSupplierLqw.eq(BmsSupplier::getComRegionCode, supplier.getComRegion()); + regionSupplierLqw.select(BmsSupplier::getId,BmsSupplier::getCode); + List regionSupplierList = bmsSupplierMapper.selectList(regionSupplierLqw); + List regionSupplierIds = regionSupplierList.stream().map(BmsSupplier::getId).collect(Collectors.toList()); + regionSupplierIds.add("0"); + //加载公司内费用 + BirRoiCostDTO costDTO4Com = new BirRoiCostDTO(); + costDTO4Com.setStartMonthNum(startMonthNum); + costDTO4Com.setEndMonthNum(currMonthNum); + costDTO4Com.setSupplierIds(regionSupplierIds); + List costItemVoCom = this.queryRoiCostItems(costDTO4Com); + //合并项 + for (BirRoiCostItemVo itemVo : costItemVoList) { + itemVo.setRegionTotalCostAmt(BigDecimal.ZERO); + for (BirRoiCostItemVo costItemVo : costItemVoCom) { + if(itemVo.getYearMonth().equals(costItemVo.getYearMonth())){ + itemVo.setRegionTotalCostAmt(costItemVo.getCostRealAmt()); + break; + } + } + } + //加载公司发货单 + List dispatchSumComVos = null; + if(supplierCodeList !=null&& supplierCodeList.size()>0){ + dispatchSumComVos = dispatchDataMapper.querySumCost(startMonthNum, currMonthNum, supplierCodeList); + } + for (BirRoiCostItemVo costItemVo : costItemVoList) { + costItemVo.setRegionTotalDispatchAmt(BigDecimal.ZERO); + if(dispatchSumComVos!=null){ + for (ErpDispatchSumVo dispatchSumVo : dispatchSumComVos) { + if(dispatchSumVo.getYearMonth().equals(costItemVo.getYearMonth())){ + // 发货金额=原发货金额) + costItemVo.setRegionTotalDispatchAmt(dispatchSumVo.getDispatchSumCost()); + break; + } + } + } + } + } + private boolean checkNotNullVale(String val){ return val!=null&&!val.equals("0"); } @@ -381,8 +442,11 @@ public class BirRoiRateServiceImpl extends ServiceImpl公司维度统计 + lqw.eq(BmsSupplier::getComRegionCode,bmsSupplier.getComRegionCode()); } - if (loadType.equals(2)||loadType.equals(3)){ + if (loadType.equals(2)||loadType.equals(3)||loadType.equals(4)){ List supplierList = bmsSupplierMapper.selectList(lqw); List supplierIds = supplierList.stream().map(BmsSupplier::getId) .distinct().collect(Collectors.toList()); diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java index 7a19f518..1e561392 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java @@ -179,6 +179,10 @@ public class BmsSupplier implements Serializable { @JsonProperty private Boolean delFlag; + private String comRegion; + + private String comRegionCode; + /** 初始化当前欠费 */ @NotNull(message = "初始化当前欠费不能为空") private BigDecimal initCurAmount; diff --git a/src/main/java/com/qs/serve/modules/pay/mapper/PayPaymentItemMapper.java b/src/main/java/com/qs/serve/modules/pay/mapper/PayPaymentItemMapper.java index 28f33c38..85fc6ee3 100644 --- a/src/main/java/com/qs/serve/modules/pay/mapper/PayPaymentItemMapper.java +++ b/src/main/java/com/qs/serve/modules/pay/mapper/PayPaymentItemMapper.java @@ -34,5 +34,7 @@ public interface PayPaymentItemMapper extends BaseMapper { List selectCostTotal(@Param("costIds") List costIds); + int updateSyncCostState(@Param("costIds") List costIds); + } diff --git a/src/main/java/com/qs/serve/modules/pay/mapper/PayPaymentMapper.java b/src/main/java/com/qs/serve/modules/pay/mapper/PayPaymentMapper.java index 47bfb4b5..d07d86aa 100644 --- a/src/main/java/com/qs/serve/modules/pay/mapper/PayPaymentMapper.java +++ b/src/main/java/com/qs/serve/modules/pay/mapper/PayPaymentMapper.java @@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qs.serve.modules.pay.entity.PayPayment; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; - +import java.util.List; /** * 支付 Mapper * @author YenHex @@ -17,7 +17,14 @@ public interface PayPaymentMapper extends BaseMapper { @Select("select * from pay_payment where erp_id = #{erpId} and del_flag = 0") PayPayment getByErpId(@Param("erpId")String erpId); - + @InterceptorIgnore(tenantLine = "1") + @Select("select cost_apply_id from pay_payment " + + " left join tbs_cost_apply on pay_payment.cost_apply_id = tbs_cost_apply.id " + + " where " + + " sync_cost_state = 0 " + + " and sy_form_id is not null " + + " GROUP BY cost_apply_id limit 1000 ") + List selectCostApplyIds4State(); } diff --git a/src/main/java/com/qs/serve/modules/sys/service/SysAttachService.java b/src/main/java/com/qs/serve/modules/sys/service/SysAttachService.java index 405d20fc..f3db1c10 100644 --- a/src/main/java/com/qs/serve/modules/sys/service/SysAttachService.java +++ b/src/main/java/com/qs/serve/modules/sys/service/SysAttachService.java @@ -22,6 +22,9 @@ public interface SysAttachService extends IService { } default List listByIdArrs(String[] ids) { + if(ids==null||ids.length==0){ + return null; + } List attaches = IService.super.listByIds(Arrays.asList(ids)); return attaches; } 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 245041b1..a79f2ef1 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 @@ -50,7 +50,6 @@ public class TbsBudgetController { private final TbsBudgetCostItemService tbsBudgetCostItemService; private final TbsBudgetLogService tbsBudgetLogService; private final TbsScheduleItemBudgetService tbsScheduleItemBudgetService; - private final TbsBudgetChangeService tbsBudgetChangeService; private final TbsBudgetConditionService tbsBudgetConditionService; private final TbsScheduleItemBudgetMapper tbsScheduleItemBudgetMapper; private final TbsScheduleItemService tbsScheduleItemService; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBatchBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBatchBo.java index 12b3d444..bd615d03 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBatchBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBatchBo.java @@ -20,7 +20,7 @@ public class TbsBudgetBatchBo { private String remark; /** 附件ID */ - private List attachIds; + private String[] attachIds; List budgetList; @@ -60,14 +60,16 @@ public class TbsBudgetBatchBo { /** 系列名称 */ private String seriesNames; + private String remark; + /** * 周期金额 */ List scheduleAmount; - private List errorInfos; + private List errorInfos; - public List getErrorInfos() { + public List getErrorInfos() { if(errorInfos==null){ errorInfos = new ArrayList<>(); } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java index 8ae5f3bb..03958295 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchServiceImpl.java @@ -165,6 +165,7 @@ public class TbsBudgetBatchServiceImpl extends ServiceImpl batchItems = new ArrayList<>(); //加载 周期信息 @@ -276,6 +277,7 @@ public class TbsBudgetBatchServiceImpl extends ServiceImpl costIds4State = payPaymentMapper.selectCostApplyIds4State(); LambdaQueryWrapper costLqw = new LambdaQueryWrapper<>(); costLqw.select( TbsCostApply::getId, TbsCostApply::getTotalActivityAmount ); - costLqw.ne(TbsCostApply::getPayStatus,2); - costLqw.eq(TbsCostApply::getCheckState,3); - //SyFormId 代表非销路通数据 - costLqw.isNotNull(TbsCostApply::getSyFormId); - costLqw.apply(" limit 2000"); + costLqw.in(TbsCostApply::getId,costIds4State); List costApplyList = costApplyService.list(costLqw); - List costIds = costApplyList.stream().map(a->a.toString()).collect(Collectors.toList()); + List costIds = costApplyList.stream().map(TbsCostApply::toString).collect(Collectors.toList()); List amountDTOList = payPaymentItemMapper.selectCostTotal(costIds); List updatePayStateList = new ArrayList<>(); @@ -71,7 +72,9 @@ public class PayTask { } } costApplyService.updateBatchById(updatePayStateList); - + //更新支付表记录,用于实现增量更新 + List costIds4Update = updatePayStateList.stream().map(TbsCostApply::getId).collect(Collectors.toList()); + payPaymentItemMapper.updateSyncCostState(costIds4Update); } } diff --git a/src/main/resources/mapper/pay/PayPaymentItemMapper.xml b/src/main/resources/mapper/pay/PayPaymentItemMapper.xml index 246f8962..92737606 100644 --- a/src/main/resources/mapper/pay/PayPaymentItemMapper.xml +++ b/src/main/resources/mapper/pay/PayPaymentItemMapper.xml @@ -120,4 +120,12 @@ + + update pay_payment set sync_cost_state = 1 + where cost_apply_id in + + #{selectId} + + +