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);