From 4f0e9597a47c7f6d7132a67428a44d81590e196a Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 18 Dec 2025 15:39:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AA=E7=A8=8E=E6=89=A3=E7=BC=B4=E4=B9=89?= =?UTF-8?q?=E5=8A=A1=E4=BA=BA=20=E4=BA=BA=E5=91=98=E8=8C=83=E5=9B=B4=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=A7=92=E8=89=B2=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/EmployBiz.java | 13 +++++++++ .../engine/salary/entity/hrm/RoleInfo.java | 29 +++++++++++++++++++ .../salary/entity/taxagent/bo/TaxAgentBO.java | 17 +++++------ .../enums/salarysob/TargetTypeEnum.java | 3 +- .../mapper/datacollection/EmployMapper.java | 12 +++++--- .../mapper/datacollection/EmployMapper.xml | 13 +++++++++ .../salary/service/SalaryEmployeeService.java | 7 ++--- .../impl/SalaryEmployeeServiceImpl.java | 10 ++++--- .../impl/TaxAgentManageRangeServiceImpl.java | 16 ++++++---- 9 files changed, 93 insertions(+), 27 deletions(-) create mode 100644 src/com/engine/salary/entity/hrm/RoleInfo.java diff --git a/src/com/engine/salary/biz/EmployBiz.java b/src/com/engine/salary/biz/EmployBiz.java index 6de561546..59f22d941 100644 --- a/src/com/engine/salary/biz/EmployBiz.java +++ b/src/com/engine/salary/biz/EmployBiz.java @@ -3,6 +3,7 @@ package com.engine.salary.biz; 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.RoleInfo; import com.engine.salary.entity.hrm.SubCompanyInfo; import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.mapper.datacollection.EmployMapper; @@ -244,4 +245,16 @@ public class EmployBiz extends BaseBean { } } + public List listRoleInfo(List roleIds) { + if (CollectionUtils.isEmpty(roleIds)) { + return new ArrayList<>(); + } + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + EmployMapper mapper = sqlSession.getMapper(EmployMapper.class); + return mapper.listRoleInfo(roleIds); + } finally { + sqlSession.close(); + } + } } diff --git a/src/com/engine/salary/entity/hrm/RoleInfo.java b/src/com/engine/salary/entity/hrm/RoleInfo.java new file mode 100644 index 000000000..888ffe693 --- /dev/null +++ b/src/com/engine/salary/entity/hrm/RoleInfo.java @@ -0,0 +1,29 @@ +package com.engine.salary.entity.hrm; + +import com.engine.salary.annotation.I18n; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 角色信息 + * + * @author:dxfeng + * @createTime: 2025/12/18 + * @version: 1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RoleInfo { + + private Long id; + + /** + * 名称 + */ + @I18n + private String name; +} diff --git a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java index fa550a4dd..34b3553ee 100644 --- a/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java +++ b/src/com/engine/salary/entity/taxagent/bo/TaxAgentBO.java @@ -2,12 +2,8 @@ package com.engine.salary.entity.taxagent.bo; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.agency.po.PaymentAgencyPO; -import com.engine.salary.entity.auth.po.AuthRolePO; import com.engine.salary.entity.datacollection.DataCollectionEmployee; -import com.engine.salary.entity.hrm.DeptInfo; -import com.engine.salary.entity.hrm.HrmStatus; -import com.engine.salary.entity.hrm.PositionInfo; -import com.engine.salary.entity.hrm.SubCompanyInfo; +import com.engine.salary.entity.hrm.*; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentListDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeListDTO; @@ -24,11 +20,11 @@ import com.engine.salary.enums.taxagent.TaxAgentRangeTypeEnum; import com.engine.salary.util.JsonUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.page.Column; import com.engine.salary.util.page.PageInfo; import com.google.common.base.Joiner; import com.google.common.collect.Lists; -import com.engine.salary.util.db.IdGenerator; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -251,7 +247,7 @@ public class TaxAgentBO { */ public static List convert2ListDTO(List taxAgentManageRanges, List employeeComInfos, List departmentComInfos, List subDepartmentComInfos, - List positionComInfos, List hrmStatusList) { + List positionComInfos, List hrmStatusList, List roleComInfos) { if (CollectionUtils.isEmpty(taxAgentManageRanges)) { return Collections.emptyList(); } @@ -259,6 +255,7 @@ public class TaxAgentBO { Map departmentComInfoMap = SalaryEntityUtil.convert2Map(departmentComInfos, DeptInfo::getId, DeptInfo::getName); Map subDepartmentComInfoMap = SalaryEntityUtil.convert2Map(subDepartmentComInfos, SubCompanyInfo::getId, SubCompanyInfo::getName); Map positionComInfoMap = SalaryEntityUtil.convert2Map(positionComInfos, PositionInfo::getId, PositionInfo::getName); + Map roleComInfoMap = SalaryEntityUtil.convert2Map(roleComInfos, RoleInfo::getId, RoleInfo::getName); Map hrmStatusNameMap = SalaryEntityUtil.convert2Map(hrmStatusList, hrmStatus -> String.valueOf(hrmStatus.getId()), HrmStatus::getName); @@ -273,7 +270,7 @@ public class TaxAgentBO { .orElse(StringUtils.EMPTY)) .targetId(taxAgentManageRange.getTargetId()) .target(taxAgentManageRange.getTarget()) - .targetName(buildTargetName(taxAgentManageRange, employeeComInfoMap, departmentComInfoMap, subDepartmentComInfoMap, positionComInfoMap)) + .targetName(buildTargetName(taxAgentManageRange, employeeComInfoMap, departmentComInfoMap, subDepartmentComInfoMap, positionComInfoMap,roleComInfoMap)) .employeeStatus(buildEmployeeStatus(hrmStatusNameMap, taxAgentManageRange.getEmployeeStatus())) .status(buildStatus(taxAgentManageRange.getEmployeeStatus())) .build(); @@ -310,7 +307,7 @@ public class TaxAgentBO { * @return */ private static String buildTargetName(TaxAgentManageRangePO taxAgentManageRange, Map employeeComInfoMap, Map departmentComInfoMap, - Map subDepartmentComInfoMap, Map positionComInfoMap) { + Map subDepartmentComInfoMap, Map positionComInfoMap,Map roleComInfoMap) { TargetTypeEnum targetTypeEnum = TargetTypeEnum.parseByValue(taxAgentManageRange.getTargetType()); if (Objects.isNull(targetTypeEnum)) { return StringUtils.EMPTY; @@ -324,6 +321,8 @@ public class TaxAgentBO { return subDepartmentComInfoMap.getOrDefault(taxAgentManageRange.getTargetId(), StringUtils.EMPTY); case POSITION: return positionComInfoMap.getOrDefault(taxAgentManageRange.getTargetId(), StringUtils.EMPTY); + case ROLE: + return roleComInfoMap.getOrDefault(taxAgentManageRange.getTargetId(), StringUtils.EMPTY); case SQL: return taxAgentManageRange.getTarget(); default: diff --git a/src/com/engine/salary/enums/salarysob/TargetTypeEnum.java b/src/com/engine/salary/enums/salarysob/TargetTypeEnum.java index 051a336ff..74a1db764 100644 --- a/src/com/engine/salary/enums/salarysob/TargetTypeEnum.java +++ b/src/com/engine/salary/enums/salarysob/TargetTypeEnum.java @@ -21,7 +21,8 @@ public enum TargetTypeEnum implements BaseEnum { SUBCOMPANY(3, "分部", 107369), POSITION(4, "岗位", 90633), ALL(5, "所有人", 107729), - SQL(6, "SQL", 107729); + SQL(6, "SQL", 107729), + ROLE(7, "角色", 87626); private int value; private String defaultLabel; diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.java b/src/com/engine/salary/mapper/datacollection/EmployMapper.java index 73cb03b9d..85830976e 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.java +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.java @@ -1,10 +1,7 @@ package com.engine.salary.mapper.datacollection; import com.engine.salary.entity.datacollection.DataCollectionEmployee; -import com.engine.salary.entity.hrm.DeptInfo; -import com.engine.salary.entity.hrm.JobCallInfo; -import com.engine.salary.entity.hrm.PositionInfo; -import com.engine.salary.entity.hrm.SubCompanyInfo; +import com.engine.salary.entity.hrm.*; import com.engine.salary.entity.hrm.dto.HrmInfoDTO; import com.engine.salary.entity.hrm.param.HrmQueryParam; import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; @@ -188,4 +185,11 @@ public interface EmployMapper { * @return */ List listByKeyword(@Param("keyword") String keyword); + + /** + * 获取角色信息 + * @param ids + * @return + */ + List listRoleInfo(@Param("collection") List ids); } \ 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 cfb6a45de..7569042a6 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -721,4 +721,17 @@ from hrmjobcall job where job.id = #{jobCallId} + + \ No newline at end of file diff --git a/src/com/engine/salary/service/SalaryEmployeeService.java b/src/com/engine/salary/service/SalaryEmployeeService.java index 571073eee..8bab9bc9d 100644 --- a/src/com/engine/salary/service/SalaryEmployeeService.java +++ b/src/com/engine/salary/service/SalaryEmployeeService.java @@ -1,10 +1,7 @@ package com.engine.salary.service; import com.engine.salary.entity.datacollection.DataCollectionEmployee; -import com.engine.salary.entity.hrm.DeptInfo; -import com.engine.salary.entity.hrm.JobCallInfo; -import com.engine.salary.entity.hrm.PositionInfo; -import com.engine.salary.entity.hrm.SubCompanyInfo; +import com.engine.salary.entity.hrm.*; import com.engine.salary.entity.hrm.dto.EmployeeInfoExpandDTO; import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; @@ -210,4 +207,6 @@ public interface SalaryEmployeeService { JobCallInfo getJobCallInfoById(Long jobCallId); List snapshot(List employeeIds, Date snapshotTime); + + List listRoleInfo(List roleIds); } diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 154da1d18..4e9d3c772 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -10,10 +10,7 @@ import com.engine.salary.biz.EmployBiz; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.SalarySobExtRangePO; import com.engine.salary.entity.datacollection.DataCollectionEmployee; -import com.engine.salary.entity.hrm.DeptInfo; -import com.engine.salary.entity.hrm.JobCallInfo; -import com.engine.salary.entity.hrm.PositionInfo; -import com.engine.salary.entity.hrm.SubCompanyInfo; +import com.engine.salary.entity.hrm.*; import com.engine.salary.entity.hrm.dto.EmployeeInfoExpandDTO; import com.engine.salary.entity.hrm.dto.FieldSetting; import com.engine.salary.entity.hrm.po.ExpandFieldSettingsPO; @@ -707,4 +704,9 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee return SalaryI18nUtil.i18nList(employees); } + + @Override + public List listRoleInfo(List roleIds) { + return SalaryI18nUtil.i18nList(employBiz.listRoleInfo(roleIds)); + } } diff --git a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java index 8c00eb402..75f0c05d2 100644 --- a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java @@ -7,10 +7,7 @@ import com.engine.core.impl.Service; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; -import com.engine.salary.entity.hrm.DeptInfo; -import com.engine.salary.entity.hrm.HrmStatus; -import com.engine.salary.entity.hrm.PositionInfo; -import com.engine.salary.entity.hrm.SubCompanyInfo; +import com.engine.salary.entity.hrm.*; import com.engine.salary.entity.taxagent.bo.TaxAgentBO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeListDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeListDTO; @@ -51,6 +48,7 @@ import org.springframework.beans.BeanUtils; import weaver.conn.RecordSet; import weaver.file.ImageFileManager; import weaver.general.Util; +import weaver.hrm.HrmUserVarify; import weaver.hrm.User; import java.io.InputStream; @@ -188,6 +186,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM Map> virtualSubCompanyMap = SalaryEntityUtil.group2Map(virtualEmpListBySubCom, DataCollectionEmployee::getSubcompanyid, DataCollectionEmployee::getEmployeeId); List salaryEmployeeList = Lists.newArrayList(); + HrmUserVarify hrmUserVarify = new HrmUserVarify(); for (TaxAgentManageRangePO manageRange : taxAgentManageRanges) { if (!TargetTypeEnum.SQL.getValue().equals(manageRange.getTargetType())) { boolean isVirtual = manageRange.getTargetId().compareTo(0L) < 0 ? true : false; @@ -225,6 +224,9 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.POSITION.getValue()) && Objects.equals(manageRange.getTargetId(), salaryEmployee.getJobtitleId())) { return true; } + if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.ROLE.getValue()) && hrmUserVarify.checkUserRight(salaryEmployee.getEmployeeId().toString(), manageRange.getTargetId().toString(),"0")) { + return true; + } return false; }).collect(Collectors.toList()); salaryEmployeeList.addAll(employees); @@ -314,13 +316,17 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM // 查询岗位信息 List positionIds = taxAgentManageRanges.stream().filter(e -> Objects.equals(e.getTargetType(), TargetTypeEnum.POSITION.getValue())).map(TaxAgentManageRangePO::getTargetId).collect(Collectors.toList()); List positionComInfos = getSalaryEmployeeService().listPositionInfo(positionIds); + + // 查询角色信息 + List roleIds = taxAgentManageRanges.stream().filter(e -> Objects.equals(e.getTargetType(), TargetTypeEnum.ROLE.getValue())).map(TaxAgentManageRangePO::getTargetId).collect(Collectors.toList()); + List roleComInfos = getSalaryEmployeeService().listRoleInfo(roleIds); // 分页参数 PageInfo dtoPage = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), TaxAgentManageRangeListDTO.class); // 查询人员状态 // List hrmStatusList = hrmCommonHrmStatusService.list(); List hrmStatusList = UserStatusEnum.getHrmStatusList(); // 薪资账套的人员范围po转换成列表dto - List taxAgentManageRangeList = TaxAgentBO.convert2ListDTO(taxAgentManageRanges, employeeComInfos, departmentComInfos, subDepartmentComInfos, positionComInfos, hrmStatusList); + List taxAgentManageRangeList = TaxAgentBO.convert2ListDTO(taxAgentManageRanges, employeeComInfos, departmentComInfos, subDepartmentComInfos, positionComInfos, hrmStatusList,roleComInfos); // 根据对象名称过滤 if (StringUtils.isNotEmpty(queryParam.getTargetName())) { taxAgentManageRangeList = taxAgentManageRangeList.stream().filter(f -> f.getTargetName().contains(queryParam.getTargetName())).collect(Collectors.toList());