薪酬系统-福利台账,退差数据新增时的可选择人员列表v1

This commit is contained in:
sy 2022-11-21 15:27:15 +08:00
parent 9c897c87dd
commit 96a440a9a7
8 changed files with 196 additions and 0 deletions

View File

@ -0,0 +1,23 @@
package com.engine.salary.entity.hrm.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author: sy
* @Description: 人员信息列表
* @Date: 2022/11/21
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class HrmInfoDTO {
//员工id
private Long employeeId;
//姓名
private String username;
}

View File

@ -0,0 +1,27 @@
package com.engine.salary.entity.hrm.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collection;
/**
* @Author: sy
* @Description: 人员查询
* @Date: 2022/11/21
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class HrmQueryParam {
String userName;
private int pageNum;
private int pageSize;
private Collection<Long> ids;
}

View File

@ -4,6 +4,8 @@ import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.hrm.DeptInfo;
import com.engine.salary.entity.hrm.PositionInfo;
import com.engine.salary.entity.hrm.SubCompanyInfo;
import com.engine.salary.entity.hrm.dto.HrmInfoDTO;
import com.engine.salary.entity.hrm.param.HrmQueryParam;
import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam;
import org.apache.ibatis.annotations.Param;
@ -50,4 +52,6 @@ public interface EmployMapper {
List<DeptInfo> getDeptInfoList(@Param("departmentIds") List<Long> departmentIds);
List<SubCompanyInfo> getSubCompanyInfoList(@Param("subDepartmentIds") List<Long> subDepartmentIds);
List<HrmInfoDTO> listHrmInfoByIdAndName(@Param("param") HrmQueryParam param);
}

View File

@ -281,5 +281,64 @@
</if>
</select>
<select id="listHrmInfoByIdAndName" resultType="com.engine.salary.entity.hrm.dto.HrmInfoDTO">
select e.id as employeeId,
e.lastname as username
from hrmresource e
where 1=1
<if test="param.ids != null and param.ids.size()>0">
AND e.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.userName != null and param.userName != ''">
AND
(
e.lastname like CONCAT('%',#{param.userName},'%')
)
</if>
</select>
<select id="listHrmInfoByIdAndName" resultType="com.engine.salary.entity.hrm.dto.HrmInfoDTO" databaseId="sqlserver">
select e.id as employeeId,
e.lastname as username
from hrmresource e
where 1=1
<if test="param.ids != null and param.ids.size()>0">
AND e.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.userName != null and param.userName != ''">
AND
(
e.lastname like '%'+#{param.userName}+'%'
)
</if>
</select>
<select id="listHrmInfoByIdAndName" resultType="com.engine.salary.entity.hrm.dto.HrmInfoDTO" databaseId="oracle">
select e.id as employeeId,
e.lastname as username
from hrmresource e
where 1=1
<if test="param.ids != null and param.ids.size()>0">
AND e.id IN
<foreach collection="param.ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
<if test="param.userName != null and param.userName != ''">
AND
(
e.lastname like '%'||#{param.userName}||'%'
)
</if>
</select>
</mapper>

View File

@ -1,6 +1,9 @@
package com.engine.salary.service;
import com.engine.salary.entity.hrm.dto.HrmInfoDTO;
import com.engine.salary.entity.hrm.param.HrmQueryParam;
import com.engine.salary.entity.siaccount.param.RecessionParam;
import com.engine.salary.util.page.PageInfo;
import java.util.Collection;
@ -9,4 +12,6 @@ public interface SIRecessionService {
void save(RecessionParam param, Long employeeId);
void del(Collection<Long> ids, Long employeeId);
PageInfo<HrmInfoDTO> getEmployeeListByTaxAgent(HrmQueryParam param);
}

View File

@ -2,23 +2,34 @@ package com.engine.salary.service.impl;
import com.alibaba.fastjson.JSON;
import com.api.formmode.mybatis.util.SqlProxyHandle;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.encrypt.siaccount.InsuranceAccountDetailPOEncrypt;
import com.engine.salary.entity.hrm.dto.HrmInfoDTO;
import com.engine.salary.entity.hrm.param.HrmQueryParam;
import com.engine.salary.entity.siaccount.param.InsuranceAccountDetailParam;
import com.engine.salary.entity.siaccount.param.RecessionParam;
import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO;
import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO;
import com.engine.salary.enums.siaccount.BillStatusEnum;
import com.engine.salary.enums.siaccount.PaymentStatusEnum;
import com.engine.salary.enums.siaccount.ProjectTypeEnum;
import com.engine.salary.enums.sicategory.DeleteTypeEnum;
import com.engine.salary.mapper.datacollection.EmployMapper;
import com.engine.salary.mapper.siaccount.InsuranceAccountDetailMapper;
import com.engine.salary.service.SIRecessionService;
import com.engine.salary.service.TaxAgentService;
import com.engine.salary.util.SalaryEntityUtil;
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 org.apache.commons.lang3.StringUtils;
import org.apache.commons.collections4.CollectionUtils;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.SalaryAssert;
import weaver.hrm.User;
import java.math.BigDecimal;
import java.util.*;
@ -35,6 +46,14 @@ public class SIRecessionServiceImpl extends Service implements SIRecessionServic
return SqlProxyHandle.getProxy(InsuranceAccountDetailMapper.class);
}
private TaxAgentService getTaxAgentService(User user) {
return ServiceUtil.getService(TaxAgentServiceImpl.class, user);
}
private EmployMapper getEmployMapper() {
return MapperProxyFactory.getProxy(EmployMapper.class);
}
@Override
public void save(RecessionParam param, Long employeeId) {
@ -282,4 +301,41 @@ public class SIRecessionServiceImpl extends Service implements SIRecessionServic
insuranceAccountDetailPO.setTotal(perSum.add(comSum).toPlainString());
}
/**
* 获取当前登录人所控制的个税扣缴义务人的人员范围
*/
@Override
public PageInfo<HrmInfoDTO> getEmployeeListByTaxAgent(HrmQueryParam param) {
// 当前登录人员
Long currentEmployeeId = (long) user.getUID();
List<TaxAgentEmployeeDTO> taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployee(currentEmployeeId);
Set<Long> employeeIds = SalaryEntityUtil.properties(taxAgentEmployeeDTOS, TaxAgentEmployeeDTO::getEmployeeId);
List<Long> empIds = new ArrayList<Long>(employeeIds);
List<HrmInfoDTO> resultData = new ArrayList<>();
if (employeeIds.size() > 0) {
List<List<Long>> partition = Lists.partition(empIds, 1000);
partition.forEach(p -> {
param.setIds(p);
resultData.addAll(getEmployMapper().listHrmInfoByIdAndName(param));
});
}
// 分页
PageInfo<HrmInfoDTO> page = new PageInfo<>();
if (null == resultData) {
return page;
}
page.setTotal(resultData.size());
page.setList(SalaryPageUtil.subList(param.getPageNum(), param.getPageSize(), resultData));
page.setPageSize(param.getPageSize());
page.setPageNum(param.getPageNum());
return page;
}
}

View File

@ -2,6 +2,8 @@ package com.engine.salary.web;
import com.engine.common.util.ParamUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.salary.entity.hrm.dto.HrmInfoDTO;
import com.engine.salary.entity.hrm.param.HrmQueryParam;
import com.engine.salary.entity.siaccount.dto.InsuranceAccountTabDTO;
import com.engine.salary.entity.siaccount.dto.InsuranceAccountViewListDTO;
import com.engine.salary.entity.siaccount.dto.InsuranceAcctDetailImportFieldDTO;
@ -683,5 +685,17 @@ public class SIAccountController {
return new ResponseResult<EditAccountDetailParam, String>(user).run(getService(user)::editAccount, param);
}
/**
* 获取当前登录人所控制的人员范围
*/
@POST
@Path("/getEmployeeListByTaxAgent")
@Produces(MediaType.APPLICATION_JSON)
public String getEmployeeListByTaxAgent(@Context HttpServletRequest request, @Context HttpServletResponse response,
@RequestBody HrmQueryParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<HrmQueryParam, PageInfo<HrmInfoDTO>>(user).run(getSIAccountWrapper(user)::getEmployeeListByTaxAgent, param);
}
// **********************************退差 end*********************************/
}

View File

@ -3,9 +3,12 @@ package com.engine.salary.wrapper;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.entity.hrm.dto.HrmInfoDTO;
import com.engine.salary.entity.hrm.param.HrmQueryParam;
import com.engine.salary.entity.siaccount.param.RecessionParam;
import com.engine.salary.service.SIRecessionService;
import com.engine.salary.service.impl.SIRecessionServiceImpl;
import com.engine.salary.util.page.PageInfo;
import weaver.hrm.User;
import java.util.Collection;
@ -38,4 +41,9 @@ public class SIAccountWrapper extends Service {
long currentEmployeeId = user.getUID();
getSIRecessionService(user).del(ids, currentEmployeeId);
}
public PageInfo<HrmInfoDTO> getEmployeeListByTaxAgent(HrmQueryParam param) {
return getSIRecessionService(user).getEmployeeListByTaxAgent(param);
}
}