销售提成清零

This commit is contained in:
tzy 2025-06-09 09:56:29 +08:00
parent e3cf13dffb
commit c5ea125790

View File

@ -637,6 +637,17 @@ public class RzSalaryDetailServiceImpl extends ServiceImpl<RzSalaryDetailMapper,
SysDept sysDept = deptMapper.selectOne(wa); SysDept sysDept = deptMapper.selectOne(wa);
if (!attendanceList.isEmpty()) {
Date month = attendanceList.get(0).getDate();
List<RzSalaryDetail> 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) { for (RzSalaryVo rzSalaryVo : attendanceList) {
if (rzSalaryVo.getSale() != null ){ if (rzSalaryVo.getSale() != null ){
@ -676,11 +687,14 @@ public class RzSalaryDetailServiceImpl extends ServiceImpl<RzSalaryDetailMapper,
private List<SalaryVo> buildExportData(RzSalaryDetail rzSalaryDetail) { private List<SalaryVo> buildExportData(RzSalaryDetail rzSalaryDetail) {
// 获取所有部门列表 // 获取所有部门列表
List<SysDept> deptList = deptMapper.selectList(new LambdaQueryWrapper<SysDept>()); List<SysDept> deptList = deptMapper.selectList(new LambdaQueryWrapper<SysDept>());
//部门列表转换为部门ID到部门名称的映射
Map<Long, String> deptNameMap = deptList.stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getDeptName)); Map<Long, String> deptNameMap = deptList.stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getDeptName));
//键为部门ID值为部门名称用于快速查找父部门为根部门ID为0的部门名称
Map<String, String> nameAndDeptIdMap = deptList.stream().filter(d -> d.getParentId().equals(0l)).collect(Collectors.toMap(d->String.valueOf(d.getDeptId()), SysDept::getDeptName)); Map<String, String> nameAndDeptIdMap = deptList.stream().filter(d -> d.getParentId().equals(0l)).collect(Collectors.toMap(d->String.valueOf(d.getDeptId()), SysDept::getDeptName));
Map<Long, String> companyNameMap = Collections.emptyMap(); Map<Long, String> companyNameMap = Collections.emptyMap();
// 过滤出所有非根部门即parentId不等于0的部门并为每个部门执行以下操作
deptList.stream().filter(d -> !d.getParentId().equals(0l)).forEach(d ->{ deptList.stream().filter(d -> !d.getParentId().equals(0l)).forEach(d ->{
// 将当前部门的祖ID字符串拆分成List以便后续处理
List<String> parentIdList = Collections.asList(d.getAncestors().split(",")); List<String> parentIdList = Collections.asList(d.getAncestors().split(","));
Iterator<String> it = nameAndDeptIdMap.keySet().iterator(); Iterator<String> it = nameAndDeptIdMap.keySet().iterator();
while (it.hasNext()){ while (it.hasNext()){