From 89e3f54dc2456fd5a5f09012fa1abc29d9eb8899 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 14 Aug 2024 10:49:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=81=E6=B3=A2=E7=B2=BE=E5=8D=8E7=E5=A4=A9?= =?UTF-8?q?=E5=86=85=E7=A6=BB=E8=81=8C=E4=BA=BA=E5=91=98=E4=BA=8C=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SalaryAcctEmployeeServiceImpl.java | 28 +++++++++++++++++++ .../wrapper/SalaryAcctEmployeeWrapper.java | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index ec668e1b8..dbb34a140 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -47,6 +47,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.springframework.beans.BeanUtils; +import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.hrm.User; @@ -862,6 +863,16 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct throw new SalaryRunTimeException("薪资核算记录不存在或已被删除!"); } SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId()); + + // 宁波精华二开 - 240814获取不需要发薪的人员 + RecordSet rs = new RecordSet(); + rs.execute("select xm from uf_lztz where sfsx = 1"); + List notAcctEmpIds = new ArrayList<>(); + while (rs.next()) { + int xm = rs.getInt("xm"); + notAcctEmpIds.add(Long.valueOf(xm)); + } + BaseBean baseBean = new BaseBean(); List resignationSobIds = Arrays.asList(baseBean.getPropValue("nbjhSalary", "dimissionSobIds").split(",")) .stream() @@ -886,6 +897,8 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct List salaryEmployees = getSalaryEmployeeService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()).stream().map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList()); List needAddEmpIds = thisMonthResigEmpIds.stream().filter(empId -> !salaryAcctEmployeeIds.contains(empId) && salaryEmployees.contains(empId)).collect(Collectors.toList()); + // 过滤不需要算薪的人 + needAddEmpIds = needAddEmpIds.stream().filter(empId -> !notAcctEmpIds.contains(empId)).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(needAddEmpIds)) { List employeeList = getSalaryEmployeeService(user).listByIds(needAddEmpIds); Map empMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId); @@ -945,6 +958,9 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct List needHandleEmpIds = salaryAcctEmployeePOS.stream().filter(acctEmp -> !archivedEmpIds.contains(acctEmp.getEmployeeId())) .map(SalaryAcctEmployeePO::getEmployeeId) .collect(Collectors.toList()); + + // 过滤不需要算薪的人 + needHandleEmpIds = needHandleEmpIds.stream().filter(empId -> !notAcctEmpIds.contains(empId)).collect(Collectors.toList()); // 获取这些人的薪资档案,判断起始发薪日期是否早于或等于上月 if (CollectionUtils.isNotEmpty(needHandleEmpIds)) { List needHandleArchiveIds = getSalaryArchiveService(user).listSome(SalaryArchivePO.builder().employeeIds(needHandleEmpIds).taxAgentId(salarySobPO.getTaxAgentId()).build()); @@ -998,6 +1014,18 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct } } } + + // 删除本次核算记录中不需要算薪的人 + if (salaryAcctRecordPO.getStatus().equals(SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue())) { + List salaryAcctEmployeePOList = listBySalaryAcctRecordId(salaryAcctRecordId); + List needDeleteAcctEmpIds = salaryAcctEmployeePOList.stream() + .filter(acctEmp -> notAcctEmpIds.contains(acctEmp.getEmployeeId())) + .map(SalaryAcctEmployeePO::getId) + .collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(needDeleteAcctEmpIds)) { + deleteByIds(needDeleteAcctEmpIds); + } + } } @Override diff --git a/src/com/engine/salary/wrapper/SalaryAcctEmployeeWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctEmployeeWrapper.java index aef2f9536..c0a01c50e 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctEmployeeWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctEmployeeWrapper.java @@ -53,7 +53,7 @@ public class SalaryAcctEmployeeWrapper extends Service { * @return */ public PageInfo listPage(SalaryAcctEmployeeQueryParam queryParam) { - // 宁波精华二开 - 删除离职账套中包含的人员 + // 宁波精华二开 - 从正常核算记录中删除离职账套记录中包含的人员 getSalaryAcctEmployeeService(user).deleteResignationEmp(queryParam.getSalaryAcctRecordId()); // 宁波精华二开 - 0617离职账套人员确认二开 getSalaryAcctEmployeeService(user).handleNbjhSalaryAcctEmp(queryParam.getSalaryAcctRecordId());