diff --git a/src/com/engine/salary/entity/hrm/dto/HrmInfoDTO.java b/src/com/engine/salary/entity/hrm/dto/HrmInfoDTO.java new file mode 100644 index 000000000..21ec12013 --- /dev/null +++ b/src/com/engine/salary/entity/hrm/dto/HrmInfoDTO.java @@ -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; +} diff --git a/src/com/engine/salary/entity/hrm/param/HrmQueryParam.java b/src/com/engine/salary/entity/hrm/param/HrmQueryParam.java new file mode 100644 index 000000000..03787f33e --- /dev/null +++ b/src/com/engine/salary/entity/hrm/param/HrmQueryParam.java @@ -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 ids; +} diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.java b/src/com/engine/salary/mapper/datacollection/EmployMapper.java index 9202a26af..427ff6cd7 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.java +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.java @@ -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 getDeptInfoList(@Param("departmentIds") List departmentIds); List getSubCompanyInfoList(@Param("subDepartmentIds") List subDepartmentIds); + + List listHrmInfoByIdAndName(@Param("param") HrmQueryParam param); } \ 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 adc1f55a2..874f28246 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -281,5 +281,64 @@ + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/SIRecessionService.java b/src/com/engine/salary/service/SIRecessionService.java index df163bb84..71ba297e3 100644 --- a/src/com/engine/salary/service/SIRecessionService.java +++ b/src/com/engine/salary/service/SIRecessionService.java @@ -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 ids, Long employeeId); + + PageInfo getEmployeeListByTaxAgent(HrmQueryParam param); } diff --git a/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java b/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java index 340447bbd..2907085e7 100644 --- a/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java @@ -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 getEmployeeListByTaxAgent(HrmQueryParam param) { + + // 当前登录人员 + Long currentEmployeeId = (long) user.getUID(); + + List taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployee(currentEmployeeId); + Set employeeIds = SalaryEntityUtil.properties(taxAgentEmployeeDTOS, TaxAgentEmployeeDTO::getEmployeeId); + List empIds = new ArrayList(employeeIds); + List resultData = new ArrayList<>(); + if (employeeIds.size() > 0) { + List> partition = Lists.partition(empIds, 1000); + partition.forEach(p -> { + param.setIds(p); + resultData.addAll(getEmployMapper().listHrmInfoByIdAndName(param)); + }); + + } + + // 分页 + PageInfo 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; + } } diff --git a/src/com/engine/salary/web/SIAccountController.java b/src/com/engine/salary/web/SIAccountController.java index a8ef40f02..053219066 100644 --- a/src/com/engine/salary/web/SIAccountController.java +++ b/src/com/engine/salary/web/SIAccountController.java @@ -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(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>(user).run(getSIAccountWrapper(user)::getEmployeeListByTaxAgent, param); + } + // **********************************退差 end*********************************/ } diff --git a/src/com/engine/salary/wrapper/SIAccountWrapper.java b/src/com/engine/salary/wrapper/SIAccountWrapper.java index 10b53a81a..6f3b6e134 100644 --- a/src/com/engine/salary/wrapper/SIAccountWrapper.java +++ b/src/com/engine/salary/wrapper/SIAccountWrapper.java @@ -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 getEmployeeListByTaxAgent(HrmQueryParam param) { + + return getSIRecessionService(user).getEmployeeListByTaxAgent(param); + } }