From ad79cb2b3e1fd1a931cc0a1033bbd7b5506e53e8 Mon Sep 17 00:00:00 2001 From: sy Date: Wed, 21 Sep 2022 14:47:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=96=B9=E5=BC=8F=E9=85=8D=E7=BD=AE-=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=87=87=E9=9B=86-=E8=80=83=E5=8B=A4=E5=BC=95?= =?UTF-8?q?=E7=94=A8-=E5=AF=BC=E5=85=A5,=E6=B7=BB=E5=8A=A0=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E4=BA=BA=E5=91=98=E7=AD=9B=E9=80=89=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=8C=96=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/AttendQuoteDataServiceImpl.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java index ec817cf05..7965143d9 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java @@ -2,6 +2,7 @@ package com.engine.salary.service.impl; import com.alibaba.druid.support.json.JSONUtils; import com.alibaba.fastjson.JSONObject; +import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.biz.*; @@ -26,12 +27,15 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.AttendQuoteDataMapper; import com.engine.salary.mapper.salarysob.SalarySobMapper; import com.engine.salary.mapper.salarysob.SalarySobRangeMapper; +import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.remote.attend.entity.Attend4Salary; import com.engine.salary.remote.attend.service.RemoteAttend4SalaryService; import com.engine.salary.remote.attend.service.impl.RemoteAttend4SalaryServiceImpl; import com.engine.salary.service.AttendQuoteDataService; import com.engine.salary.service.AttendQuoteFieldSettingService; +import com.engine.salary.service.SalaryAcctEmployeeService; import com.engine.salary.service.SalarySobService; +import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; @@ -105,6 +109,13 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa return (RemoteAttend4SalaryService) ServiceUtil.getService(RemoteAttend4SalaryServiceImpl.class, user); } + private SalaryAcctEmployeeService getSalaryAcctEmployeeService(User user) { + return (SalaryAcctEmployeeService) ServiceUtil.getService(SalaryAcctEmployeeServiceImpl.class, user); + } + + private SalarySysConfMapper getSalarySysConfMapper() { + return SqlProxyHandle.getProxy(SalarySysConfMapper.class); + } @Override public PageInfo listPage(AttendQuoteDataQueryParam queryParam) { @@ -559,6 +570,10 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa int year = Integer.parseInt(salaryYearMonth.split("-")[0]); int month = Integer.parseInt(salaryYearMonth.split("-")[1]); + //查询对于人员信息导入筛选的全局配置 + SalarySysConfPO salarySysConfPO = getSalarySysConfMapper().getOneByCode("matchEmployeeMode"); + String confValue = (salarySysConfPO != null && salarySysConfPO.getConfValue() != null && !"".equals(salarySysConfPO.getConfValue())) ? salarySysConfPO.getConfValue() : "0"; + // 获取租户下所有的人员 List employees = employeeBiz.listEmployee(); // 获取已设置的可同步的考勤字段 @@ -630,11 +645,12 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa String userName = Optional.ofNullable(map.get(SalaryI18nUtil.getI18nLabel(85429, "姓名"))).orElse("").toString(); String deparmentName = Optional.ofNullable(map.get(SalaryI18nUtil.getI18nLabel(86185, "部门"))).orElse("").toString(); String mobile = Optional.ofNullable(map.get(SalaryI18nUtil.getI18nLabel(86186, "手机号"))).orElse("").toString(); + String workcode = Optional.ofNullable(map.get(SalaryI18nUtil.getI18nLabel(86317, "工号"))).orElse("").toString(); List employeeSameIds = new ArrayList<>(); - List emps = employees.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()); + + //筛选导入人员信息可以在人力资源池中匹配到的人员信息 + List emps = getSalaryAcctEmployeeService(user).matchImportEmployee(employees, userName, deparmentName, mobile, workcode); + //含在职和离职,选在职数据 if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) { employeeSameIds = emps.stream() @@ -656,7 +672,8 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa } String cellVal = Optional.ofNullable(map.get(key.toString())).orElse("").toString(); if (SalaryI18nUtil.getI18nLabel(85429, "姓名").equals(key.toString())) { - if (StringUtils.isEmpty(cellVal)) { + //当人员信息导入筛选的全局配置为"0"时,姓名才是必填项 + if (StringUtils.isEmpty(cellVal) && "0".equals(confValue)) { Map errorMessageMap = Maps.newHashMap(); errorMessageMap.put("message", SalaryI18nUtil.getI18nLabel(100579, "姓名不能为空")); excelComments.add(errorMessageMap);