diff --git a/src/com/engine/salary/mapper/extemp/ExternalEmployeeMapper.java b/src/com/engine/salary/mapper/extemp/ExternalEmployeeMapper.java index 8eeb8f64c..455eb8adf 100644 --- a/src/com/engine/salary/mapper/extemp/ExternalEmployeeMapper.java +++ b/src/com/engine/salary/mapper/extemp/ExternalEmployeeMapper.java @@ -1,7 +1,11 @@ package com.engine.salary.mapper.extemp; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.extemp.po.ExtEmpPO; +import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; +import org.apache.ibatis.annotations.Param; +import java.util.Collection; import java.util.List; public interface ExternalEmployeeMapper { @@ -55,4 +59,31 @@ public interface ExternalEmployeeMapper { */ int delete(Long id); + /** + * 根据薪资账套的人员范围转换而成的查询参数查询人员 + * + * @param queryParams 薪资账套的人员范围转换而成的查询参数 + * @return + */ + Collection listByParams( @Param("params") List queryParams); + + /** + * 获取所有员工,关联部门 + * + * @return + */ + List listEmployee(); + + /** + * 多表联查 + * @param ids + * @return + */ + List getEmployeeByIdsAll(@Param("collection")List ids); + + /** + * 报表专用 + * @return + */ + Collection listAllForReport(); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/extemp/ExternalEmployeeMapper.xml b/src/com/engine/salary/mapper/extemp/ExternalEmployeeMapper.xml index 730eae408..5b8361eda 100644 --- a/src/com/engine/salary/mapper/extemp/ExternalEmployeeMapper.xml +++ b/src/com/engine/salary/mapper/extemp/ExternalEmployeeMapper.xml @@ -170,6 +170,132 @@ ORDER BY id DESC + + + + + diff --git a/src/com/engine/salary/service/ExtEmpService.java b/src/com/engine/salary/service/ExtEmpService.java index 969651b95..7e44f4ccb 100644 --- a/src/com/engine/salary/service/ExtEmpService.java +++ b/src/com/engine/salary/service/ExtEmpService.java @@ -4,6 +4,7 @@ import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.extemp.param.ExtEmpQueryParam; import com.engine.salary.entity.extemp.param.ExtEmpSaveParam; import com.engine.salary.entity.extemp.po.ExtEmpPO; +import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.util.page.PageInfo; import java.util.Collection; @@ -30,4 +31,16 @@ public interface ExtEmpService { */ List getEmployeeByIds(List ids); + List listByParams(List includeQueryParams); + + /** + * 查询人员列表 + * + * @return + */ + List listEmployee(); + + Collection getEmployeeByIdsAll(List ids); + + Collection listAllForReport(); } \ No newline at end of file diff --git a/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java b/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java index 46ec42bcc..0bc669d71 100644 --- a/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java +++ b/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java @@ -5,11 +5,13 @@ import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.extemp.param.ExtEmpQueryParam; import com.engine.salary.entity.extemp.param.ExtEmpSaveParam; import com.engine.salary.entity.extemp.po.ExtEmpPO; +import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.mapper.extemp.ExternalEmployeeMapper; import com.engine.salary.service.ExtEmpService; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; +import com.google.common.collect.Lists; import dm.jdbc.util.IdGenerator; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; @@ -100,6 +102,37 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { } + @Override + public List listByParams(List includeQueryParams) { + List emps = new ArrayList<>(); + List> partition = Lists.partition(includeQueryParams, 100); + partition.forEach(list->{ + emps.addAll(getExternalEmployeeMapper().listByParams(list)); + }); + return emps; + } + + @Override + public List listEmployee() { + return getExternalEmployeeMapper().listEmployee(); + } + + @Override + public Collection getEmployeeByIdsAll(List ids) { + List employeeList = new ArrayList<>(); + List> partition = Lists.partition(ids, 1000); + partition.forEach(e->{ + List employeeByIdsAll = getExternalEmployeeMapper().getEmployeeByIdsAll(e); + employeeList.addAll(employeeByIdsAll); + }); + return employeeList; + } + + @Override + public Collection listAllForReport() { + return getExternalEmployeeMapper().listAllForReport(); + } + public DataCollectionEmployee cover(ExtEmpPO extPo) { if (extPo == null) { diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 157426822..8e44870f4 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -13,6 +13,7 @@ import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.entity.salarysob.po.SalarySobRangePO; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.mapper.sys.SalarySysConfMapper; +import com.engine.salary.service.ExtEmpService; import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.SalarySobRangeService; import com.engine.salary.sys.entity.po.SalarySysConfPO; @@ -46,20 +47,29 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee return SqlProxyHandle.getProxy(SalarySysConfMapper.class); } - private SalaryEmployeeService getSalaryEmployeeService(User user) { - return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + + private ExtEmpService getExtEmpService(User user) { + return ServiceUtil.getService(ExtEmpServiceImpl.class, user); } boolean openExtEmp = true; @Override public List listAll() { - return employBiz.listEmployee(); + List result = employBiz.listEmployee(); + if(openExtEmp){ + result.addAll(getExtEmpService(user).listEmployee()); + } + return result; } @Override public List listAllForReport() { - return employBiz.listAllForReport(); + List result = employBiz.listAllForReport(); + if(openExtEmp){ + result.addAll(getExtEmpService(user).listAllForReport()); + } + return result; } @Override @@ -72,7 +82,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee // 将薪资账套的人员范围转换成人员查询参数 List includeQueryParams = SalarySobRangeBO.convert2EmployeeQueryParam(includeSalarySobRangePOS); // 根据上一步的查询参数查询人员 - List includeSalaryEmployees = getSalaryEmployeeService(user).listByParams(includeQueryParams); + List includeSalaryEmployees = listByParams(includeQueryParams); if (CollectionUtils.isEmpty(includeSalaryEmployees)) { return Collections.emptyList(); } @@ -84,7 +94,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee // 将薪资账套的人员范围转换成人员查询参数 List excludeQueryParams = SalarySobRangeBO.convert2EmployeeQueryParam(excludeSalarySobRangePOS); // 根据上一步的查询参数查询人员 - List excludeSalaryEmployees = getSalaryEmployeeService(user).listByParams(excludeQueryParams); + List excludeSalaryEmployees = listByParams(excludeQueryParams); // 需要排除的人员范围 Set excludeEmployeeIds = SalaryEntityUtil.properties(excludeSalaryEmployees, DataCollectionEmployee::getEmployeeId); // 过滤人员 @@ -97,12 +107,23 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee @Override public List getEmployeeByIdsAll(List ids) { - return employBiz.getEmployeeByIdsAll(ids); + List result = employBiz.getEmployeeByIdsAll(ids); + if(openExtEmp){ + result.addAll(getExtEmpService(user).getEmployeeByIdsAll(ids)); + } + return result; } @Override public DataCollectionEmployee getEmployeeById(Long employeeId) { + if(openExtEmp){ + DataCollectionEmployee employeeById = getExtEmpService(user).getEmployeeById(employeeId); + if(Objects.nonNull(employeeById)){ + return employeeById; + } + } return employBiz.getEmployeeById(employeeId); + } @Override @@ -114,7 +135,11 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee List> partition = Lists.partition(simpleEmployeeIds, 1000); for (List longs : partition) { employeeList.addAll(employBiz.getEmployeeByIds(longs)); + if(openExtEmp){ + employeeList.addAll(getExtEmpService(user).getEmployeeByIds(longs)); + } } + return employeeList; } @@ -177,11 +202,19 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee @Override public List listEmployee() { - return employBiz.listEmployee(); + List result = employBiz.listEmployee(); + if(openExtEmp){ + result.addAll(getExtEmpService(user).listEmployee()); + } + return result; } @Override public List listByParams(List includeQueryParams) { + List result = employBiz.listByParams(includeQueryParams); + if(openExtEmp){ + result.addAll(getExtEmpService(user).listByParams(includeQueryParams)); + } return employBiz.listByParams(includeQueryParams); } }