diff --git a/src/com/engine/salary/action/CheckStayDelToStopSIArchiveAction.java b/src/com/engine/salary/action/CheckStayDelToStopSIArchiveAction.java index ef816fbd8..bd6a933f8 100644 --- a/src/com/engine/salary/action/CheckStayDelToStopSIArchiveAction.java +++ b/src/com/engine/salary/action/CheckStayDelToStopSIArchiveAction.java @@ -2,7 +2,6 @@ package com.engine.salary.action; import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; -import com.engine.salary.enums.siaccount.EmployeeStatusEnum; import com.engine.salary.mapper.siarchives.InsuranceBaseInfoMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.util.SalaryEntityUtil; @@ -105,10 +104,11 @@ public class CheckStayDelToStopSIArchiveAction implements Action { if(insuranceArchivesBaseInfoPO == null){ requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工不存在福利档案,请检查后重试!"); return FAILURE_AND_CONTINUE; - } else if(!insuranceArchivesBaseInfoPO.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue())){ - requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工的福利档案状态不是待减员,无法进行减员操作,请检查后重试!"); - return FAILURE_AND_CONTINUE; } + // else if(!insuranceArchivesBaseInfoPO.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue())){ + // requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工的福利档案状态不是待减员,无法进行减员操作,请检查后重试!"); + // return FAILURE_AND_CONTINUE; + // } } catch (Exception e) { log.error("减员校验异常", e); diff --git a/src/com/engine/salary/action/EditToStopSIArchiveAction.java b/src/com/engine/salary/action/EditToStopSIArchiveAction.java index 1f2a612fd..f612a2e54 100644 --- a/src/com/engine/salary/action/EditToStopSIArchiveAction.java +++ b/src/com/engine/salary/action/EditToStopSIArchiveAction.java @@ -139,10 +139,11 @@ public class EditToStopSIArchiveAction implements Action { if(insuranceArchivesBaseInfoPO == null){ requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工不存在福利档案,请检查后重试!"); return FAILURE_AND_CONTINUE; - } else if(!insuranceArchivesBaseInfoPO.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue())){ - requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工的福利档案状态不是待减员,无法进行减员操作,请检查后重试!"); - return FAILURE_AND_CONTINUE; } + // else if(!insuranceArchivesBaseInfoPO.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue())){ + // requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工的福利档案状态不是待减员,无法进行减员操作,请检查后重试!"); + // return FAILURE_AND_CONTINUE; + // } //减员 Map resultMap = getSIArchivesService(user).stayDelToStop(Collections.singletonList(insuranceArchivesBaseInfoPO.getId())); if (resultMap.get("type").toString().equals("fail")) { diff --git a/src/com/engine/salary/action/StayDelToStopSIArchiveAction.java b/src/com/engine/salary/action/StayDelToStopSIArchiveAction.java index b715b9eea..4ec849520 100644 --- a/src/com/engine/salary/action/StayDelToStopSIArchiveAction.java +++ b/src/com/engine/salary/action/StayDelToStopSIArchiveAction.java @@ -4,7 +4,6 @@ import cn.hutool.core.util.StrUtil; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; -import com.engine.salary.enums.siaccount.EmployeeStatusEnum; import com.engine.salary.mapper.siarchives.InsuranceBaseInfoMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; import com.engine.salary.service.SIArchivesService; @@ -130,10 +129,11 @@ public class StayDelToStopSIArchiveAction implements Action { if(insuranceArchivesBaseInfoPO == null){ requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工不存在福利档案,请检查后重试!"); return FAILURE_AND_CONTINUE; - } else if(StrUtil.isBlank(payEndYearMonth) && !insuranceArchivesBaseInfoPO.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue())){ - requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工的福利档案状态不是待减员,无法进行减员操作,请检查后重试!"); - return FAILURE_AND_CONTINUE; } + // else if(StrUtil.isBlank(payEndYearMonth) && !insuranceArchivesBaseInfoPO.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue())){ + // requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工的福利档案状态不是待减员,无法进行减员操作,请检查后重试!"); + // return FAILURE_AND_CONTINUE; + // } //减员 Map resultMap = new HashMap<>(); if (StrUtil.isBlank(payEndYearMonth)) { diff --git a/src/com/engine/salary/action/WdlSalaryArchiveTriggerAction.java b/src/com/engine/salary/action/WdlSalaryArchiveTriggerAction.java index 8a6ed7563..eb67ecbb4 100644 --- a/src/com/engine/salary/action/WdlSalaryArchiveTriggerAction.java +++ b/src/com/engine/salary/action/WdlSalaryArchiveTriggerAction.java @@ -1,24 +1,34 @@ package com.engine.salary.action; import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemBatchSaveParam; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemSaveParam; import com.engine.salary.entity.salaryarchive.po.WdlArchiveWorkflowPO; import com.engine.salary.enums.salaryarchive.WdlArchiveWorkflowEnum; import com.engine.salary.mapper.archive.WdlArchiveWorkflowMapper; +import com.engine.salary.service.SalaryEmployeeService; +import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; import com.engine.salary.util.JsonUtil; import com.engine.salary.util.SalaryDateUtil; +import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.wrapper.SalaryArchiveItemWrapper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import weaver.general.BaseBean; import weaver.hrm.User; import weaver.interfaces.workflow.action.Action; import weaver.soa.workflow.request.RequestInfo; +import weaver.wechat.util.Utils; +import java.util.Collections; import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @ClassName WdlSalaryArchiveTriggerAction @@ -37,6 +47,10 @@ public class WdlSalaryArchiveTriggerAction implements Action { return ServiceUtil.getService(SalaryArchiveItemWrapper.class, user); } + private SalaryEmployeeService getSalaryEmployeeService(User user) { + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + } + @Override public String execute(RequestInfo requestInfo) { try { @@ -77,6 +91,21 @@ public class WdlSalaryArchiveTriggerAction implements Action { } else if (po.getOperateType().equals(WdlArchiveWorkflowEnum.SINGLE_INIT.getValue())) { SalaryArchiveItemSaveParam param = JsonUtil.parseBean(po.getOperateJson(), SalaryArchiveItemSaveParam.class); try { + if (StringUtils.isNotBlank(param.getIdNo())) { + // 获取人员id + List employeeByIdNo = getSalaryEmployeeService(user).getEmployeeByIdNos(Collections.singletonList(param.getIdNo())); + if (CollectionUtils.isEmpty(employeeByIdNo)) { + requestInfo.getRequestManager().setMessage("身份证号不存在"); + log.error("万德隆调薪定薪触发action 单个定薪异常 requestId:{} poId:{} msg:{}", requestInfo.getRequestid(),po.getId(), "身份证号不存在"); + return FAILURE_AND_CONTINUE; + } + if (employeeByIdNo.size() > 1) { + requestInfo.getRequestManager().setMessage("身份证号存在多个员工"); + log.error("万德隆调薪定薪触发action 单个定薪异常 requestId:{} poId:{} msg:{}", requestInfo.getRequestid(),po.getId(), "身份证号存在多个员工"); + return FAILURE_AND_CONTINUE; + } + param.setEmployeeId(employeeByIdNo.get(0).getEmployeeId()); + } getSalaryArchiveItemWrapper(user).initSalaryItem4Workflow(param); } catch (Exception e) { requestInfo.getRequestManager().setMessage(e.getMessage()); @@ -86,6 +115,20 @@ public class WdlSalaryArchiveTriggerAction implements Action { } else if (po.getOperateType().equals(WdlArchiveWorkflowEnum.BATCH_INIT.getValue())) { List param = JsonUtil.parseList(po.getOperateJson(), SalaryArchiveItemBatchSaveParam.class); try { + if (CollectionUtils.isNotEmpty(param)) { + List idNos = param.stream().map(SalaryArchiveItemBatchSaveParam::getIdNo).collect(Collectors.toList()); + // 获取人员id + List employeeByIdNo = getSalaryEmployeeService(user).getEmployeeByIdNos(idNos); + if (CollectionUtils.isNotEmpty(employeeByIdNo)) { + Map idNoMap = SalaryEntityUtil.convert2Map(employeeByIdNo, DataCollectionEmployee::getIdNo, DataCollectionEmployee::getEmployeeId); + for (SalaryArchiveItemBatchSaveParam singleParam: param) { + Long empId = idNoMap.get(singleParam.getIdNo()); + if (empId != null && StringUtils.isNotBlank(singleParam.getIdNo())) { + singleParam.setEmployeeId(Utils.null2String(idNoMap.get(singleParam.getIdNo()))); + } + } + } + } getSalaryArchiveItemWrapper(user).batchInitSalaryItem4Workflow(param); } catch (Exception e) { requestInfo.getRequestManager().setMessage(e.getMessage()); diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemBatchSaveParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemBatchSaveParam.java index 1a54f7c2b..fc067b04e 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemBatchSaveParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemBatchSaveParam.java @@ -23,6 +23,8 @@ public class SalaryArchiveItemBatchSaveParam { private String employeeId; + private String idNo; + private String effectiveTime; private SalaryArchiveItemAdjustReasonEnum adjustReason; diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemSaveParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemSaveParam.java index aa3f51452..44e440327 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemSaveParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemSaveParam.java @@ -58,6 +58,8 @@ public class SalaryArchiveItemSaveParam { private Long employeeId; + private String idNo; + private String salaryStartDate; private String salaryEndDate; diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.java b/src/com/engine/salary/mapper/datacollection/EmployMapper.java index 120c7a352..4c22f9767 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.java +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.java @@ -181,4 +181,6 @@ public interface EmployMapper { List listByDepartment(@Param("departmentIds") List departmentIds); List listByJob(@Param("jobIds") List jobIds); + + List listbyIdNos(@Param("idNos")List idNo); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml index 39adedca3..3bd3c7195 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -672,4 +672,32 @@ from hrmjobcall job where job.id = #{jobCallId} + + \ No newline at end of file diff --git a/src/com/engine/salary/service/SalaryEmployeeService.java b/src/com/engine/salary/service/SalaryEmployeeService.java index ae427145a..5119f7ac1 100644 --- a/src/com/engine/salary/service/SalaryEmployeeService.java +++ b/src/com/engine/salary/service/SalaryEmployeeService.java @@ -196,4 +196,6 @@ public interface SalaryEmployeeService { JobCallInfo getJobCallInfoById(Long jobCallId); List snapshot(List employeeIds, Date snapshotTime); + + List getEmployeeByIdNos(List idNos); } diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 242abeb8b..f2ccb7419 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -686,4 +686,12 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee return SalaryI18nUtil.i18nList(employees); } + + @Override + public List getEmployeeByIdNos(List idNos) { + if (CollectionUtils.isEmpty(idNos)) { + return null; + } + return getEmployMapper().listbyIdNos(idNos); + } } diff --git a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java index a16ef684b..0fb1cf174 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java @@ -780,6 +780,17 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt } else if (po.getOperateType().equals(WdlArchiveWorkflowEnum.SINGLE_INIT.getValue())) { SalaryArchiveItemSaveParam param = JsonUtil.parseBean(po.getOperateJson(), SalaryArchiveItemSaveParam.class); try { + if (StringUtils.isNotBlank(param.getIdNo())) { + // 获取人员id + List employeeByIdNo = getSalaryEmployeeService(user).getEmployeeByIdNos(Collections.singletonList(param.getIdNo())); + if (CollectionUtils.isEmpty(employeeByIdNo)) { + throw new SalaryRunTimeException(""); + } + if (employeeByIdNo.size() > 1) { + throw new SalaryRunTimeException(""); + } + param.setEmployeeId(employeeByIdNo.get(0).getEmployeeId()); + } initSalaryItem4Workflow(param); } catch (Exception e) { // requestInfo.getRequestManager().setMessage(e.getMessage());