薪酬系统导入方式配置-社保福利档案导入,添加导入人员筛选配置化处理
This commit is contained in:
parent
d491288296
commit
3c007f8e0b
|
|
@ -769,6 +769,7 @@ public class SIArchivesBiz {
|
|||
list.add(new WeaTableColumn("150px", "部门", "departmentName"));
|
||||
list.add(new WeaTableColumn("150px", "手机号", "mobile"));
|
||||
list.add(new WeaTableColumn("150px", "员工状态", "status"));
|
||||
list.add(new WeaTableColumn("150px", "工号", "jobNum"));
|
||||
list.add(new WeaTableColumn("150px", "社保方案名称", "socialName"));
|
||||
titleMap.get(WelfareTypeEnum.SOCIAL_SECURITY.getValue()).forEach((k, v) -> list.add(new WeaTableColumn("150px", v, k)));
|
||||
list.add(new WeaTableColumn("150px", "社保账号", "socialAccount"));
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@
|
|||
e.LASTNAME as username,
|
||||
d.DEPARTMENTNAME as departmentName,
|
||||
e.status,
|
||||
e.mobile
|
||||
e.mobile,
|
||||
e.workcode
|
||||
from hrmresource e
|
||||
left join hrmdepartment d on e.departmentid = d.id
|
||||
where e.status not in (7)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.engine.salary.service;
|
||||
|
||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||
import com.engine.salary.entity.salaryacct.dto.SalaryAcctEmployeeCountDTO;
|
||||
import com.engine.salary.entity.salaryacct.param.*;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO;
|
||||
|
|
@ -224,4 +225,14 @@ public interface SalaryAcctEmployeeService {
|
|||
* @param salaryAcctRecordId 薪资核算记录
|
||||
*/
|
||||
void refresh(Long salaryAcctRecordId);
|
||||
|
||||
/**
|
||||
* 筛选导入人员信息可以在人力资源池中匹配到的人员信息
|
||||
* @param employeeList 人力资源池
|
||||
* @param userName 姓名
|
||||
* @param deparmentName 部门
|
||||
* @param mobile 手机号
|
||||
* @param workcode 工号
|
||||
*/
|
||||
List<DataCollectionEmployee> matchImportEmployee(List<DataCollectionEmployee> employeeList, String userName, String deparmentName, String mobile, String workcode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -159,8 +159,8 @@ public class SIImportServiceImpl extends Service implements SIImportService {
|
|||
result.add(SalaryI18nUtil.getI18nLabel( 85429, "姓名"));
|
||||
result.add(SalaryI18nUtil.getI18nLabel( 86185, "部门"));
|
||||
result.add(SalaryI18nUtil.getI18nLabel( 86186, "手机号"));
|
||||
result.add(SalaryI18nUtil.getI18nLabel(86317, "工号"));
|
||||
result.add(SalaryI18nUtil.getI18nLabel( 86187, "员工状态"));
|
||||
result.add(SalaryI18nUtil.getI18nLabel(86317, "工号"));
|
||||
result.add(SalaryI18nUtil.getI18nLabel( 86184, "个税扣缴义务人"));
|
||||
result.add(SalaryI18nUtil.getI18nLabel( 91323, "社保方案名称"));
|
||||
// result.add(SalaryI18nUtil.getI18nLabel( 91325, "社保缴纳组织"));
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ import com.engine.salary.mapper.sischeme.InsuranceSchemeMapper;
|
|||
import com.engine.salary.mapper.taxagent.TaxAgentMapper;
|
||||
import com.engine.salary.service.SIImportService;
|
||||
import com.engine.salary.service.SISchemeService;
|
||||
import com.engine.salary.service.SalaryAcctEmployeeService;
|
||||
import com.engine.salary.service.TaxAgentService;
|
||||
import com.engine.salary.util.*;
|
||||
import com.engine.salary.util.db.MapperProxyFactory;
|
||||
|
|
@ -56,6 +57,7 @@ import org.apache.poi.ss.usermodel.Sheet;
|
|||
import org.apache.poi.util.IOUtils;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import weaver.file.ImageFileManager;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.*;
|
||||
|
|
@ -116,6 +118,10 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
|
|||
|
||||
private SIArchivesBiz siArchivesBiz = new SIArchivesBiz();
|
||||
|
||||
private SalaryAcctEmployeeService getSalaryAcctEmployeeService(User user) {
|
||||
return (SalaryAcctEmployeeService) ServiceUtil.getService(SalaryAcctEmployeeServiceImpl.class, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getForm(Map<String, Object> params) {
|
||||
return commandExecutor.execute(new SISchemeGetFormCmd(params, user));
|
||||
|
|
@ -679,16 +685,20 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
|
|||
boolean isError = false;
|
||||
String userName = (String) singleAccount.get(0).get(SalaryI18nUtil.getI18nLabel(85429, "姓名"));
|
||||
String deparmentName = (String) singleAccount.get(1).get(SalaryI18nUtil.getI18nLabel(86185, "部门"));
|
||||
String telephone = (String) singleAccount.get(2).get(SalaryI18nUtil.getI18nLabel(86186, "手机号"));
|
||||
String mobile = (String) singleAccount.get(2).get(SalaryI18nUtil.getI18nLabel(86186, "手机号"));
|
||||
String userStatus = (String) singleAccount.get(3).get(SalaryI18nUtil.getI18nLabel(86187, "员工状态"));
|
||||
String workcode = (String) singleAccount.get(4).get(SalaryI18nUtil.getI18nLabel(86317, "工号"));
|
||||
|
||||
String rowIndex = "第" + index + "行";
|
||||
if (StringUtils.isBlank(userName) && StringUtils.isBlank(deparmentName) && StringUtils.isBlank(telephone) && StringUtils.isBlank(userStatus)) {
|
||||
if (StringUtils.isBlank(userName) && StringUtils.isBlank(deparmentName) && StringUtils.isBlank(mobile) && StringUtils.isBlank(userStatus)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message", rowIndex + " 用户名、部门名称、手机号、用户状态" + SalaryI18nUtil.getI18nLabel(100303, "不能同时为空"));
|
||||
excelComments.add(errorMessageMap);
|
||||
isError = true;
|
||||
}
|
||||
List<DataCollectionEmployee> employees = employeeByIds.stream().filter(e -> (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName)) && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName)) && (StringUtils.isBlank(telephone) || Objects.equals(e.getMobile(), telephone)) && (StringUtils.isBlank(userStatus) || Objects.equals(userStateExchange(e.getStatus()), userStatus))).collect(Collectors.toList());
|
||||
//筛选导入人员信息可以在人力资源池中匹配到的人员信息
|
||||
List<DataCollectionEmployee> employees = getSalaryAcctEmployeeService(user).matchImportEmployee(employeeByIds, userName, deparmentName, mobile, workcode);
|
||||
|
||||
if (CollectionUtils.isEmpty(employees)) {
|
||||
Map<String, String> errorMessageMap = Maps.newHashMap();
|
||||
errorMessageMap.put("message", rowIndex + "员工信息不存在");
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.engine.salary.service.impl;
|
||||
|
||||
import com.api.formmode.mybatis.util.SqlProxyHandle;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
||||
|
|
@ -12,10 +13,13 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
|
|||
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobPO;
|
||||
import com.engine.salary.enums.UserStatusEnum;
|
||||
import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.mapper.salaryacct.SalaryAcctEmployeeMapper;
|
||||
import com.engine.salary.mapper.sys.SalarySysConfMapper;
|
||||
import com.engine.salary.service.*;
|
||||
import com.engine.salary.sys.entity.po.SalarySysConfPO;
|
||||
import com.engine.salary.util.SalaryDateUtil;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
|
|
@ -24,6 +28,7 @@ import com.engine.salary.util.page.PageInfo;
|
|||
import com.engine.salary.util.page.SalaryPageUtil;
|
||||
import com.engine.salary.util.valid.ValidUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
|
@ -83,6 +88,10 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
|
|||
|
||||
// private LoggerTemplate salaryAcctRecordLoggerTemplate;
|
||||
|
||||
private SalarySysConfMapper getSalarySysConfMapper() {
|
||||
return SqlProxyHandle.getProxy(SalarySysConfMapper.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SalaryAcctEmployeeCountDTO> countBySalaryAcctRecordId(Collection<Long> salaryAcctRecordIds) {
|
||||
if (CollectionUtils.isEmpty(salaryAcctRecordIds)) {
|
||||
|
|
@ -468,4 +477,33 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
|
|||
batchSave(newSalaryAcctEmployeePOS);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 筛选导入人员信息可以在人力资源池中匹配到的人员信息
|
||||
* @param employeeList 人力资源池
|
||||
* @param userName 姓名
|
||||
* @param deparmentName 部门
|
||||
* @param mobile 手机号
|
||||
* @param workcode 工号
|
||||
*/
|
||||
@Override
|
||||
public List<DataCollectionEmployee> matchImportEmployee(List<DataCollectionEmployee> employeeList, String userName, String deparmentName, String mobile, String workcode) {
|
||||
|
||||
//查询对于人员信息导入筛选的全局配置
|
||||
SalarySysConfPO salarySysConfPO = getSalarySysConfMapper().getOneByCode("matchEmployeeMode");
|
||||
List<DataCollectionEmployee> employees = new ArrayList<>();
|
||||
//“0”代表姓名+部门+手机号的匹配原则,“1”代表工号为唯一匹配原则
|
||||
if ("0".equals(salarySysConfPO.getConfValue())) {
|
||||
employees = employeeList.stream().filter(e -> (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName))
|
||||
&& (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName))
|
||||
&& (StringUtils.isBlank(mobile) || Objects.equals(e.getMobile(), mobile)))
|
||||
.collect(Collectors.toList());
|
||||
} else if ("1".equals(salarySysConfPO.getConfValue())) {
|
||||
employees = employeeList.stream().filter(e -> (StringUtils.isBlank(workcode) || Objects.equals(e.getWorkcode(), workcode)))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
return employees;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue