diff --git a/evo-admin/src/main/java/com/evo/finance/service/impl/RzSalaryDetailServiceImpl.java b/evo-admin/src/main/java/com/evo/finance/service/impl/RzSalaryDetailServiceImpl.java index 501c657..a6eac08 100644 --- a/evo-admin/src/main/java/com/evo/finance/service/impl/RzSalaryDetailServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/finance/service/impl/RzSalaryDetailServiceImpl.java @@ -636,6 +636,17 @@ public class RzSalaryDetailServiceImpl extends ServiceImpl existingDetails = rzSalaryDetailMapper.selectSalaryDetailByDeptId(sysDept.getDeptId(), month); + for (RzSalaryDetail detail : existingDetails) { + detail.setSalesCommission(new BigDecimal("0")); + detail.setUpdateTime(DateUtils.getNowDate()); + detail.setUpdateBy(SecurityUtils.getUsername()); + rzSalaryDetailMapper.updateById(detail); + } + } //更新工资单详情,写入销售提成 for (RzSalaryVo rzSalaryVo : attendanceList) { @@ -676,11 +687,14 @@ public class RzSalaryDetailServiceImpl extends ServiceImpl buildExportData(RzSalaryDetail rzSalaryDetail) { // 获取所有部门列表 List deptList = deptMapper.selectList(new LambdaQueryWrapper()); - + //部门列表转换为部门ID到部门名称的映射 Map deptNameMap = deptList.stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getDeptName)); + //键为部门ID,值为部门名称,用于快速查找父部门为根部门(ID为0)的部门名称 Map nameAndDeptIdMap = deptList.stream().filter(d -> d.getParentId().equals(0l)).collect(Collectors.toMap(d->String.valueOf(d.getDeptId()), SysDept::getDeptName)); Map companyNameMap = Collections.emptyMap(); + // 过滤出所有非根部门(即parentId不等于0的部门),并为每个部门执行以下操作 deptList.stream().filter(d -> !d.getParentId().equals(0l)).forEach(d ->{ + // 将当前部门的祖ID字符串拆分成List以便后续处理 List parentIdList = Collections.asList(d.getAncestors().split(",")); Iterator it = nameAndDeptIdMap.keySet().iterator(); while (it.hasNext()){