From b220c5a40a06361fb3788ed9d115a75c1d7024a6 Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Thu, 5 Jun 2025 14:17:16 +0800 Subject: [PATCH] =?UTF-8?q?demand:=201.=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=89=B9=E9=87=8F=E6=9B=B4=E6=96=B0=E6=96=B0=E6=8F=90?= =?UTF-8?q?=E6=88=90=E7=BB=9F=E8=AE=A1=E6=9F=90=E6=9C=88=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=BA=E7=A9=BA=E6=97=B6=E4=B8=8D=E4=BC=9A?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=87=91=E9=A2=9Dbug=E4=BF=AE=E5=A4=8D=20=20?= =?UTF-8?q?2.=E6=A0=B9=E6=8D=AE=E5=8D=95=E5=8F=B7=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E6=8F=90=E6=88=90=E5=A2=9E=E5=8A=A0=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E9=97=AE=E9=A2=98=E4=BB=B6=E5=8F=8A=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E7=9B=B8=E5=85=B3=E5=9C=BA=E6=99=AF=20commit?= =?UTF-8?q?ter:=20heyu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/EmisCommissionProfitServiceImpl.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCommissionProfitServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCommissionProfitServiceImpl.java index b0220beb4..ddd2ea7dc 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCommissionProfitServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCommissionProfitServiceImpl.java @@ -314,6 +314,16 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements // 先删除该运单已经计算的提成 emisCommissionDtlMapper.deleteEmisCommissionDtlByBillCode(billCode); + if ("6".equals(waybill.getPaymentType())) { + return; + } + if (waybill.getProblemType() != null) { + if (173 == waybill.getProblemType() || 170 == waybill.getProblemType() + || 151 == waybill.getProblemType()) { + return; + } + } + // 计算每个岗位的提成方案 /* 网点客服 1 @@ -382,6 +392,40 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements try { // 获取统计数据 List listProfit=emisCommissionProfitMapper.selectProfitStatList(empName,billMonth); + + // 如果指定了empName,需要处理该员工在数据库中存在但listProfit中不存在的月份记录 + if(StringUtils.isNotEmpty(empName)) { + // 查询数据库中该员工的所有月份记录 + EmisCommissionProfit queryParam = new EmisCommissionProfit(); + queryParam.setEmpName(empName); + if(StringUtils.isNotEmpty(billMonth)) { + queryParam.setBillMonth(billMonth); + } + List existingProfits = emisCommissionProfitMapper.selectEmisCommissionProfitList(queryParam); + + // 遍历现有记录,检查是否在新统计中存在 + for(EmisCommissionProfit existingProfit : existingProfits) { + boolean found = false; + for(EmisCommissionProfit newProfit : listProfit) { + if(existingProfit.getEmpName().equals(newProfit.getEmpName()) + && existingProfit.getBillMonth().equals(newProfit.getBillMonth())) { + found = true; + break; + } + } + // 如果在新统计中不存在,则添加一条金额为0的记录 + if(!found) { + EmisCommissionProfit zeroProfit = new EmisCommissionProfit(); + zeroProfit.setEmpName(existingProfit.getEmpName()); + zeroProfit.setBillMonth(existingProfit.getBillMonth()); + zeroProfit.setMoney(BigDecimal.ZERO); + zeroProfit.setMonthMoney(BigDecimal.ZERO); + listProfit.add(zeroProfit); + } + } + } + + // 更新或插入提成记录 for (EmisCommissionProfit profitItem:listProfit) { // 查询是否有数据,没有则插入 int isExists=emisCommissionProfitMapper.checkUnique(profitItem);