宁波精华 - 删除离职账套中存在的核算人员temp
This commit is contained in:
parent
97ebbf19f4
commit
336bb1fc9d
|
|
@ -117,4 +117,11 @@ public interface SalaryAcctEmployeeMapper {
|
|||
* @return 返回记录,没有返回null
|
||||
*/
|
||||
SalaryAcctEmployeePO getById(Long id);
|
||||
|
||||
/**
|
||||
* 根据核算记录id,员工id删除
|
||||
* @param salaryAcctRecordId
|
||||
* @param empIdList
|
||||
*/
|
||||
void deleteByIdAndEmpIds(@Param("id") Long salaryAcctRecordId, @Param("empIds") List<Long> empIdList);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1131,6 +1131,17 @@
|
|||
</foreach>
|
||||
</delete>
|
||||
|
||||
<delete id="deleteByIdAndEmpIds">
|
||||
update hrsa_salary_acct_emp
|
||||
set delete_type=1
|
||||
where delete_type=0
|
||||
and id=#{id}
|
||||
and employee_id in
|
||||
<foreach collection="empIds" open="(" item="employeeId" separator="," close=")">
|
||||
#{employeeId}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO">
|
||||
<result column="id" property="id"/>
|
||||
|
|
|
|||
|
|
@ -256,4 +256,9 @@ public interface SalaryAcctEmployeeService {
|
|||
*/
|
||||
List<SalaryAcctEmployeePO> listByTaxAgentAndSalaryMonth(List<Long> taxAgentIds, Set<Date> salaryMonths);
|
||||
|
||||
/**
|
||||
* 宁波精华二开 - 删除离职账套中包含的人员
|
||||
* @param salaryAcctRecordId
|
||||
*/
|
||||
void deleteResignationEmp(Long salaryAcctRecordId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,9 +2,11 @@ package com.engine.salary.service.impl;
|
|||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import com.api.formmode.mybatis.util.SqlProxyHandle;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.common.LocalDateRange;
|
||||
import com.engine.salary.config.SalaryElogConfig;
|
||||
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
||||
import com.engine.hrmelog.entity.dto.LoggerContext;
|
||||
|
|
@ -40,6 +42,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.*;
|
||||
|
|
@ -121,11 +124,17 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
|
|||
|
||||
@Override
|
||||
public List<SalaryAcctEmployeePO> listBySalaryAcctRecordId(Long salaryAcctRecordId) {
|
||||
if (salaryAcctRecordId == null) {
|
||||
return null;
|
||||
}
|
||||
return getSalaryAcctEmployeeMapper().listSome(SalaryAcctEmployeePO.builder().salaryAcctRecordId(salaryAcctRecordId).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SalaryAcctEmployeePO> listBySalaryAcctRecordIds(Collection<Long> salaryAcctRecordIds) {
|
||||
if (CollectionUtils.isEmpty(salaryAcctRecordIds)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return getSalaryAcctEmployeeMapper().listSome(SalaryAcctEmployeePO.builder().salaryAcctRecordIds(salaryAcctRecordIds).build());
|
||||
}
|
||||
|
||||
|
|
@ -754,4 +763,40 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
|
|||
return getSalaryAcctEmployeeMapper().listSome(SalaryAcctEmployeePO.builder().taxAgentIds(taxAgentIds).salaryMonths(salaryMonths).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteResignationEmp(Long salaryAcctRecordId) {
|
||||
SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId);
|
||||
if (salaryAcctRecordPO == null) {
|
||||
throw new SalaryRunTimeException("薪资核算记录不存在或已被删除!");
|
||||
}
|
||||
BaseBean baseBean = new BaseBean();
|
||||
List<Long> needDeleteSobIds = Arrays.asList(baseBean.getPropValue("nbjhSalary", "needDeleteSobIds").split(","))
|
||||
.stream()
|
||||
.filter(NumberUtil::isNumber)
|
||||
.map(Long::valueOf).collect(Collectors.toList());
|
||||
|
||||
if (needDeleteSobIds.contains(salaryAcctRecordPO.getSalarySobId())) {
|
||||
List<Long> resignationSobIds = Arrays.asList(baseBean.getPropValue("nbjhSalary", "dimissionSobIds").split(","))
|
||||
.stream()
|
||||
.filter(NumberUtil::isNumber)
|
||||
.map(Long::valueOf).collect(Collectors.toList());
|
||||
// TODO 是否需要限制与当前账套在同一个个税扣缴义务人下
|
||||
// 获取本月离职账套中的薪资核算记录
|
||||
LocalDateRange dateRange = new LocalDateRange(salaryAcctRecordPO.getSalaryMonth(), salaryAcctRecordPO.getSalaryMonth());
|
||||
List<SalaryAcctRecordPO> salaryAcctRecordPOS = getSalaryAcctRecordService(user).listBySalarySobIdsAndSalaryMonth(resignationSobIds, dateRange);
|
||||
List<Long> resignationAcctRecordIds = SalaryEntityUtil.properties(salaryAcctRecordPOS, SalaryAcctRecordPO::getId, Collectors.toList());
|
||||
// 获取离职账套中本月所包含的人员
|
||||
List<SalaryAcctEmployeePO> resignationAcctEmployeeList = listBySalaryAcctRecordIds(resignationAcctRecordIds);
|
||||
List<Long> empIdList = resignationAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getEmployeeId).collect(Collectors.toList());
|
||||
// 从本次核算中删除离职人员
|
||||
deleteByIdAndEmpIds(salaryAcctRecordId, empIdList);
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteByIdAndEmpIds(Long salaryAcctRecordId, List<Long> empIdList) {
|
||||
if (salaryAcctRecordId == null || CollectionUtils.isEmpty(empIdList)) {
|
||||
return;
|
||||
}
|
||||
getSalaryAcctEmployeeMapper().deleteByIdAndEmpIds(salaryAcctRecordId, empIdList);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,6 +56,8 @@ public class SalaryAcctEmployeeWrapper extends Service {
|
|||
* @return
|
||||
*/
|
||||
public PageInfo<SalaryAccEmployeeListDTO> listPage(SalaryAcctEmployeeQueryParam queryParam) {
|
||||
// 宁波精华二开 - 删除离职账套中包含的人员
|
||||
getSalaryAcctEmployeeService(user).deleteResignationEmp(queryParam.getSalaryAcctRecordId());
|
||||
// 查询薪资核算人员(人员)
|
||||
PageInfo<SalaryAcctEmployeePO> page = getSalaryAcctEmployeeService(user).listPageByParam(queryParam);
|
||||
// 转换成列表dto
|
||||
|
|
|
|||
Loading…
Reference in New Issue