宁波精华7天内离职人员二开

This commit is contained in:
Harryxzy 2024-08-14 10:49:18 +08:00
parent a58bb7c189
commit 89e3f54dc2
2 changed files with 29 additions and 1 deletions

View File

@ -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<Long> notAcctEmpIds = new ArrayList<>();
while (rs.next()) {
int xm = rs.getInt("xm");
notAcctEmpIds.add(Long.valueOf(xm));
}
BaseBean baseBean = new BaseBean();
List<Long> resignationSobIds = Arrays.asList(baseBean.getPropValue("nbjhSalary", "dimissionSobIds").split(","))
.stream()
@ -886,6 +897,8 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
List<Long> salaryEmployees = getSalaryEmployeeService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()).stream().map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList());
List<Long> 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<DataCollectionEmployee> employeeList = getSalaryEmployeeService(user).listByIds(needAddEmpIds);
Map<Long, DataCollectionEmployee> empMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId);
@ -945,6 +958,9 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
List<Long> 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<SalaryArchivePO> 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<SalaryAcctEmployeePO> salaryAcctEmployeePOList = listBySalaryAcctRecordId(salaryAcctRecordId);
List<Long> needDeleteAcctEmpIds = salaryAcctEmployeePOList.stream()
.filter(acctEmp -> notAcctEmpIds.contains(acctEmp.getEmployeeId()))
.map(SalaryAcctEmployeePO::getId)
.collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(needDeleteAcctEmpIds)) {
deleteByIds(needDeleteAcctEmpIds);
}
}
}
@Override

View File

@ -53,7 +53,7 @@ public class SalaryAcctEmployeeWrapper extends Service {
* @return
*/
public PageInfo<SalaryAccEmployeeListDTO> listPage(SalaryAcctEmployeeQueryParam queryParam) {
// 宁波精华二开 - 删除离职账套中包含的人员
// 宁波精华二开 - 从正常核算记录中删除离职账套记录中包含的人员
getSalaryAcctEmployeeService(user).deleteResignationEmp(queryParam.getSalaryAcctRecordId());
// 宁波精华二开 - 0617离职账套人员确认二开
getSalaryAcctEmployeeService(user).handleNbjhSalaryAcctEmp(queryParam.getSalaryAcctRecordId());