fix(UserManagementRelationxxx.java): 优化了一些细节,主要是汇报关系 -> 管理链路。

This commit is contained in:
dk
2026-04-15 20:56:58 +08:00
parent 8af6842809
commit 67040aaf5d
13 changed files with 96 additions and 96 deletions

View File

@@ -18,23 +18,23 @@ import java.util.List;
import java.util.Map; import java.util.Map;
@FeignClient(name = ApiConstants.NAME) @FeignClient(name = ApiConstants.NAME)
@Tag(name = "RPC 服务 - 用户汇报关系") @Tag(name = "RPC 服务 - 用户管理链路")
public interface UserManagementRelationApi { public interface UserManagementRelationApi {
String PREFIX = ApiConstants.PREFIX + "/user-management-relation"; String PREFIX = ApiConstants.PREFIX + "/user-management-relation";
@GetMapping(PREFIX + "/list-by-manager") @GetMapping(PREFIX + "/list-by-manager")
@Operation(summary = "根据管理者用户ID获得汇报关系列表") @Operation(summary = "根据管理者用户ID获得管理链路列表")
@Parameter(name = "managerUserId", description = "管理者用户ID", example = "1", required = true) @Parameter(name = "managerUserId", description = "管理者用户ID", example = "1", required = true)
CommonResult<List<UserManagementRelationRespDTO>> getRelationListByManagerUserId(@RequestParam("managerUserId") Long managerUserId); CommonResult<List<UserManagementRelationRespDTO>> getRelationListByManagerUserId(@RequestParam("managerUserId") Long managerUserId);
@GetMapping(PREFIX + "/list-by-subordinate") @GetMapping(PREFIX + "/list-by-subordinate")
@Operation(summary = "根据被管理者用户ID获得汇报关系列表") @Operation(summary = "根据被管理者用户ID获得管理链路列表")
@Parameter(name = "subordinateUserId", description = "被管理者用户ID", example = "2", required = true) @Parameter(name = "subordinateUserId", description = "被管理者用户ID", example = "2", required = true)
CommonResult<List<UserManagementRelationRespDTO>> getRelationListBySubordinateUserId(@RequestParam("subordinateUserId") Long subordinateUserId); CommonResult<List<UserManagementRelationRespDTO>> getRelationListBySubordinateUserId(@RequestParam("subordinateUserId") Long subordinateUserId);
@GetMapping(PREFIX + "/list") @GetMapping(PREFIX + "/list")
@Operation(summary = "获得汇报关系列表") @Operation(summary = "获得管理链路列表")
@Parameter(name = "ids", description = "关系编号数组", example = "1,2", required = true) @Parameter(name = "ids", description = "关系编号数组", example = "1,2", required = true)
CommonResult<List<UserManagementRelationRespDTO>> getRelationList(@RequestParam("ids") Collection<Long> ids); CommonResult<List<UserManagementRelationRespDTO>> getRelationList(@RequestParam("ids") Collection<Long> ids);

View File

@@ -6,11 +6,11 @@ import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
* 用户汇报关系 Response DTO * 用户管理链路 Response DTO
* *
* @author dklive * @author dklive
*/ */
@Schema(description = "RPC 服务 - 用户汇报关系 Response DTO") @Schema(description = "RPC 服务 - 用户管理链路 Response DTO")
@Data @Data
public class UserManagementRelationRespDTO { public class UserManagementRelationRespDTO {

View File

@@ -54,10 +54,10 @@ public interface ErrorCodeConstants {
ErrorCode USER_REGISTER_DISABLED = new ErrorCode(1_002_003_011, "注册功能已关闭"); ErrorCode USER_REGISTER_DISABLED = new ErrorCode(1_002_003_011, "注册功能已关闭");
ErrorCode USER_IS_RESIGNED = new ErrorCode(1_002_003_012, "名字为【{}】的用户已离职"); ErrorCode USER_IS_RESIGNED = new ErrorCode(1_002_003_012, "名字为【{}】的用户已离职");
// ========== 用户汇报关系模块 1-002-003-100 ========== // ========== 用户管理链路模块 1-002-003-100 ==========
ErrorCode USER_MANAGEMENT_RELATION_NOT_FOUND = new ErrorCode(1_002_003_100, "用户汇报关系不存在"); ErrorCode USER_MANAGEMENT_RELATION_NOT_FOUND = new ErrorCode(1_002_003_100, "用户管理链路不存在");
ErrorCode USER_MANAGEMENT_RELATION_MANAGER_EXISTS = new ErrorCode(1_002_003_101, "该用户已有直属上级,不能重复添加"); ErrorCode USER_MANAGEMENT_RELATION_MANAGER_EXISTS = new ErrorCode(1_002_003_101, "该用户已有直属上级,不能重复添加");
ErrorCode USER_MANAGEMENT_RELATION_EXISTS = new ErrorCode(1_002_003_102, "该用户在汇报关系中还在使用,不可删除!"); ErrorCode USER_MANAGEMENT_RELATION_EXISTS = new ErrorCode(1_002_003_102, "该用户在管理链路中还在使用,不可删除!");
// ========== 部门模块 1-002-004-000 ========== // ========== 部门模块 1-002-004-000 ==========
ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "已经存在该名字的部门"); ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "已经存在该名字的部门");

View File

@@ -27,17 +27,17 @@ import static com.njcn.rdms.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static com.njcn.rdms.framework.common.pojo.CommonResult.success; import static com.njcn.rdms.framework.common.pojo.CommonResult.success;
/** /**
* 用户汇报关系 Controller * 用户管理链路 Controller
* *
* 提供用户汇报关系的管理接口,包括: * 提供用户管理链路的管理接口,包括:
* - 创建、更新、删除用户汇报关系 * - 创建、更新、删除用户管理链路
* - 查询用户汇报关系列表和详情 * - 查询用户管理链路列表和详情
* - 获取用户汇报关系树形结构 * - 获取用户管理链路树形结构
* - 导出用户汇报关系数据 * - 导出用户管理链路数据
* *
* @author dklive * @author dklive
*/ */
@Tag(name = "管理后台 - 用户汇报关系") @Tag(name = "管理后台 - 用户管理链路")
@RestController @RestController
@RequestMapping("/system/user-management-relation") @RequestMapping("/system/user-management-relation")
@Validated @Validated
@@ -47,7 +47,7 @@ public class UserManagementRelationController {
private UserManagementRelationService userManagementRelationService; private UserManagementRelationService userManagementRelationService;
/** /**
* 创建用户汇报关系 * 创建用户管理链路
* *
* 权限要求system:user-management-relation:create * 权限要求system:user-management-relation:create
* *
@@ -55,7 +55,7 @@ public class UserManagementRelationController {
* @return 关系记录主键ID * @return 关系记录主键ID
*/ */
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建用户汇报关系") @Operation(summary = "创建用户管理链路")
@PreAuthorize("@ss.hasPermission('system:user-management-relation:create')") @PreAuthorize("@ss.hasPermission('system:user-management-relation:create')")
public CommonResult<Long> createUserManagementRelation(@Valid @RequestBody UserManagementRelationSaveReqVO createReqVO) { public CommonResult<Long> createUserManagementRelation(@Valid @RequestBody UserManagementRelationSaveReqVO createReqVO) {
Long id = userManagementRelationService.createRelation(createReqVO); Long id = userManagementRelationService.createRelation(createReqVO);
@@ -63,7 +63,7 @@ public class UserManagementRelationController {
} }
/** /**
* 修改用户汇报关系 * 修改用户管理链路
* *
* 权限要求system:user-management-relation:update * 权限要求system:user-management-relation:update
* *
@@ -71,7 +71,7 @@ public class UserManagementRelationController {
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/update") @PutMapping("/update")
@Operation(summary = "修改用户汇报关系") @Operation(summary = "修改用户管理链路")
@PreAuthorize("@ss.hasPermission('system:user-management-relation:update')") @PreAuthorize("@ss.hasPermission('system:user-management-relation:update')")
public CommonResult<Boolean> updateUserManagementRelation(@Valid @RequestBody UserManagementRelationSaveReqVO updateReqVO) { public CommonResult<Boolean> updateUserManagementRelation(@Valid @RequestBody UserManagementRelationSaveReqVO updateReqVO) {
userManagementRelationService.updateRelation(updateReqVO); userManagementRelationService.updateRelation(updateReqVO);
@@ -79,16 +79,16 @@ public class UserManagementRelationController {
} }
/** /**
* 删除用户汇报关系 * 删除用户管理链路
* *
* 根据主键ID删除单条用户汇报关系记录 * 根据主键ID删除单条用户管理链路记录
* 权限要求system:user-management-relation:delete * 权限要求system:user-management-relation:delete
* *
* @param id 关系记录主键ID * @param id 关系记录主键ID
* @return 操作结果 * @return 操作结果
*/ */
@DeleteMapping("/delete") @DeleteMapping("/delete")
@Operation(summary = "删除用户汇报关系") @Operation(summary = "删除用户管理链路")
@PreAuthorize("@ss.hasPermission('system:user-management-relation:delete')") @PreAuthorize("@ss.hasPermission('system:user-management-relation:delete')")
public CommonResult<Boolean> deleteUserManagementRelation(@RequestParam("id") Long id) { public CommonResult<Boolean> deleteUserManagementRelation(@RequestParam("id") Long id) {
userManagementRelationService.deleteRelation(id); userManagementRelationService.deleteRelation(id);
@@ -96,16 +96,16 @@ public class UserManagementRelationController {
} }
/** /**
* 批量删除用户汇报关系 * 批量删除用户管理链路
* *
* 根据主键ID列表批量删除用户汇报关系记录 * 根据主键ID列表批量删除用户管理链路记录
* 权限要求system:user-management-relation:delete * 权限要求system:user-management-relation:delete
* *
* @param ids 关系记录主键ID列表 * @param ids 关系记录主键ID列表
* @return 操作结果 * @return 操作结果
*/ */
@DeleteMapping("/delete-list") @DeleteMapping("/delete-list")
@Operation(summary = "批量删除用户汇报关系") @Operation(summary = "批量删除用户管理链路")
@PreAuthorize("@ss.hasPermission('system:user-management-relation:delete')") @PreAuthorize("@ss.hasPermission('system:user-management-relation:delete')")
public CommonResult<Boolean> deleteUserManagementRelationList(@RequestParam("ids") List<Long> ids) { public CommonResult<Boolean> deleteUserManagementRelationList(@RequestParam("ids") List<Long> ids) {
userManagementRelationService.deleteRelationList(ids); userManagementRelationService.deleteRelationList(ids);
@@ -113,16 +113,16 @@ public class UserManagementRelationController {
} }
/** /**
* 获得用户汇报关系信息 * 获得用户管理链路信息
* *
* 根据主键ID查询单条用户汇报关系记录 * 根据主键ID查询单条用户管理链路记录
* 权限要求system:user-management-relation:query * 权限要求system:user-management-relation:query
* *
* @param id 关系记录主键ID * @param id 关系记录主键ID
* @return 用户汇报关系详情 * @return 用户管理链路详情
*/ */
@GetMapping(value = "/get") @GetMapping(value = "/get")
@Operation(summary = "获得用户汇报关系信息") @Operation(summary = "获得用户管理链路信息")
@Parameter(name = "id", description = "关系编号", required = true, example = "1024") @Parameter(name = "id", description = "关系编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:user-management-relation:query')") @PreAuthorize("@ss.hasPermission('system:user-management-relation:query')")
public CommonResult<UserManagementRelationRespVO> getUserManagementRelation(@RequestParam("id") Long id) { public CommonResult<UserManagementRelationRespVO> getUserManagementRelation(@RequestParam("id") Long id) {
@@ -131,16 +131,16 @@ public class UserManagementRelationController {
} }
/** /**
* 获取用户汇报关系列表 * 获取用户管理链路列表
* *
* 根据查询条件查询用户汇报关系记录列表 * 根据查询条件查询用户管理链路记录列表
* 权限要求system:user-management-relation:query * 权限要求system:user-management-relation:query
* *
* @param reqVO 查询条件VO * @param reqVO 查询条件VO
* @return 用户汇报关系列表 * @return 用户管理链路列表
*/ */
@GetMapping("/query") @GetMapping("/query")
@Operation(summary = "获取用户汇报关系列表") @Operation(summary = "获取用户管理链路列表")
@PreAuthorize("@ss.hasPermission('system:user-management-relation:query')") @PreAuthorize("@ss.hasPermission('system:user-management-relation:query')")
public CommonResult<List<UserManagementRelationTreeRespVO>> getUserManagementRelationQuery(@Validated UserManagementRelationQueryReqVO reqVO) { public CommonResult<List<UserManagementRelationTreeRespVO>> getUserManagementRelationQuery(@Validated UserManagementRelationQueryReqVO reqVO) {
List<UserManagementRelationTreeRespVO> list = userManagementRelationService.getRelationQuery(reqVO); List<UserManagementRelationTreeRespVO> list = userManagementRelationService.getRelationQuery(reqVO);
@@ -148,7 +148,7 @@ public class UserManagementRelationController {
} }
/** /**
* 获取用户汇报关系树形结构 * 获取用户管理链路树形结构
* *
* 构建用户上下级关系的树形结构,用于前端树形控件展示 * 构建用户上下级关系的树形结构,用于前端树形控件展示
* 树形结构特点: * 树形结构特点:
@@ -158,10 +158,10 @@ public class UserManagementRelationController {
* *
* 权限要求system:user-management-relation:query * 权限要求system:user-management-relation:query
* *
* @return 用户汇报关系树形列表 * @return 用户管理链路树形列表
*/ */
@GetMapping("/tree") @GetMapping("/tree")
@Operation(summary = "获取用户汇报关系树形结构", description = "用于前端树形控件展示,包含用户的上下级层级关系") @Operation(summary = "获取用户管理链路树形结构", description = "用于前端树形控件展示,包含用户的上下级层级关系")
@PreAuthorize("@ss.hasPermission('system:user-management-relation:query')") @PreAuthorize("@ss.hasPermission('system:user-management-relation:query')")
public CommonResult<List<UserManagementRelationTreeRespVO>> getUserManagementRelationTree(@Validated UserManagementRelationQueryReqVO reqVO) { public CommonResult<List<UserManagementRelationTreeRespVO>> getUserManagementRelationTree(@Validated UserManagementRelationQueryReqVO reqVO) {
return success(userManagementRelationService.getRelationTree(reqVO)); return success(userManagementRelationService.getRelationTree(reqVO));
@@ -169,9 +169,9 @@ public class UserManagementRelationController {
/** /**
* 导出用户汇报关系 Excel * 导出用户管理链路 Excel
* *
* 根据查询条件导出用户汇报关系数据到Excel文件 * 根据查询条件导出用户管理链路数据到Excel文件
* 权限要求system:user-management-relation:export * 权限要求system:user-management-relation:export
* *
* @param response HTTP响应对象 * @param response HTTP响应对象
@@ -179,12 +179,12 @@ public class UserManagementRelationController {
* @throws IOException IO异常 * @throws IOException IO异常
*/ */
@GetMapping("/export-excel") @GetMapping("/export-excel")
@Operation(summary = "导出用户汇报关系 Excel") @Operation(summary = "导出用户管理链路 Excel")
@PreAuthorize("@ss.hasPermission('system:user-management-relation:export')") @PreAuthorize("@ss.hasPermission('system:user-management-relation:export')")
@ApiAccessLog(operateType = EXPORT) @ApiAccessLog(operateType = EXPORT)
public void export(HttpServletResponse response, @Validated UserManagementRelationQueryReqVO reqVO) throws IOException { public void export(HttpServletResponse response, @Validated UserManagementRelationQueryReqVO reqVO) throws IOException {
List<UserManagementRelationTreeRespVO> list = userManagementRelationService.getRelationQuery(reqVO); List<UserManagementRelationTreeRespVO> list = userManagementRelationService.getRelationQuery(reqVO);
ExcelUtils.write(response, "用户汇报关系数据.xls", "用户汇报关系列表", UserManagementRelationRespVO.class, ExcelUtils.write(response, "用户管理链路数据.xls", "用户管理链路列表", UserManagementRelationRespVO.class,
BeanUtils.toBean(list, UserManagementRelationRespVO.class)); BeanUtils.toBean(list, UserManagementRelationRespVO.class));
} }

View File

@@ -3,7 +3,7 @@ package com.njcn.rdms.module.system.controller.admin.user.vo.userManagementRelat
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@Schema(description = "管理后台 - 用户汇报关系列表 Request VO") @Schema(description = "管理后台 - 用户管理链路列表 Request VO")
@Data @Data
public class UserManagementRelationQueryReqVO { public class UserManagementRelationQueryReqVO {

View File

@@ -7,7 +7,7 @@ import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Schema(description = "管理后台 - 用户汇报关系信息 Response VO") @Schema(description = "管理后台 - 用户管理链路信息 Response VO")
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
public class UserManagementRelationRespVO { public class UserManagementRelationRespVO {

View File

@@ -6,7 +6,7 @@ import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Schema(description = "管理后台 - 用户汇报关系创建/修改 Request VO") @Schema(description = "管理后台 - 用户管理链路创建/修改 Request VO")
@Data @Data
public class UserManagementRelationSaveReqVO { public class UserManagementRelationSaveReqVO {

View File

@@ -6,14 +6,14 @@ import lombok.Data;
import java.util.List; import java.util.List;
/** /**
* 用户汇报关系树形 Response VO * 用户管理链路树形 Response VO
* *
* 用于前端树形控件展示用户的上下级层级关系 * 用于前端树形控件展示用户的上下级层级关系
* 包含关系记录的主键ID便于前端执行删除和更新操作 * 包含关系记录的主键ID便于前端执行删除和更新操作
* *
* @author hongawen * @author hongawen
*/ */
@Schema(description = "管理后台 - 用户汇报关系树形 Response VO") @Schema(description = "管理后台 - 用户管理链路树形 Response VO")
@Data @Data
public class UserManagementRelationTreeRespVO { public class UserManagementRelationTreeRespVO {

View File

@@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
* 用户汇报关系表 DO * 用户管理链路表 DO
* *
* 用于存储用户之间的直属上下级管理关系 * 用于存储用户之间的直属上下级管理关系
* 每条记录代表一个管理者与被管理者之间的关系 * 每条记录代表一个管理者与被管理者之间的关系

View File

@@ -10,9 +10,9 @@ import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
* 用户汇报关系 Mapper 接口 * 用户管理链路 Mapper 接口
* *
* 提供用户汇报关系表的数据访问操作 * 提供用户管理链路表的数据访问操作
* 继承 BaseMapperX 获得基础的 CRUD 功能 * 继承 BaseMapperX 获得基础的 CRUD 功能
* *
* @author hongawen * @author hongawen
@@ -21,7 +21,7 @@ import java.util.List;
public interface UserManagementRelationMapper extends BaseMapperX<UserManagementRelationDO> { public interface UserManagementRelationMapper extends BaseMapperX<UserManagementRelationDO> {
/** /**
* 根据查询条件查询用户汇报关系列表 * 根据查询条件查询用户管理链路列表
* *
* 支持的查询条件: * 支持的查询条件:
* - managerUserId管理者用户ID精确匹配 * - managerUserId管理者用户ID精确匹配
@@ -30,7 +30,7 @@ public interface UserManagementRelationMapper extends BaseMapperX<UserManagement
* 排序规则按主键ID降序排列 * 排序规则按主键ID降序排列
* *
* @param reqVO 查询条件VO * @param reqVO 查询条件VO
* @return 用户汇报关系DO列表 * @return 用户管理链路DO列表
*/ */
default List<UserManagementRelationDO> selectList(UserManagementRelationQueryReqVO reqVO) { default List<UserManagementRelationDO> selectList(UserManagementRelationQueryReqVO reqVO) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
@@ -50,11 +50,11 @@ public interface UserManagementRelationMapper extends BaseMapperX<UserManagement
/** /**
* 根据管理者用户ID查询其下属关系列表 * 根据管理者用户ID查询其下属关系列表
* *
* 查询指定用户作为管理者时的所有汇报关系记录 * 查询指定用户作为管理者时的所有管理链路记录
* 用于获取某个用户的所有直接下属 * 用于获取某个用户的所有直接下属
* *
* @param managerUserId 管理者用户ID * @param managerUserId 管理者用户ID
* @return 用户汇报关系DO列表 * @return 用户管理链路DO列表
*/ */
default List<UserManagementRelationDO> selectListByManagerUserId(Long managerUserId) { default List<UserManagementRelationDO> selectListByManagerUserId(Long managerUserId) {
return selectList(UserManagementRelationDO::getManagerUserId, managerUserId); return selectList(UserManagementRelationDO::getManagerUserId, managerUserId);
@@ -63,11 +63,11 @@ public interface UserManagementRelationMapper extends BaseMapperX<UserManagement
/** /**
* 根据被管理者用户ID查询其上级关系列表 * 根据被管理者用户ID查询其上级关系列表
* *
* 查询指定用户作为被管理者时的所有汇报关系记录 * 查询指定用户作为被管理者时的所有管理链路记录
* 用于获取某个用户的所有直接上级 * 用于获取某个用户的所有直接上级
* *
* @param subordinateUserId 被管理者用户ID * @param subordinateUserId 被管理者用户ID
* @return 用户汇报关系DO列表 * @return 用户管理链路DO列表
*/ */
default List<UserManagementRelationDO> selectListBySubordinateUserId(Long subordinateUserId) { default List<UserManagementRelationDO> selectListBySubordinateUserId(Long subordinateUserId) {
return selectList(UserManagementRelationDO::getSubordinateUserId, subordinateUserId); return selectList(UserManagementRelationDO::getSubordinateUserId, subordinateUserId);

View File

@@ -197,7 +197,7 @@ public class AdminUserServiceImpl implements AdminUserService {
// 1. 校验用户存在 // 1. 校验用户存在
AdminUserDO user = validateUserExists(id); AdminUserDO user = validateUserExists(id);
// 2. 删除用户及其关联数据 // 2. 删除用户及其关联数据
// 2.1 删除前判断汇报关系表是否还在用该用户 // 2.1 删除前判断管理链路表是否还在用该用户
Boolean res = userManagementRelationService.hasRelation(id); Boolean res = userManagementRelationService.hasRelation(id);
if (res) { if (res) {
throw exception(USER_MANAGEMENT_RELATION_EXISTS); throw exception(USER_MANAGEMENT_RELATION_EXISTS);
@@ -213,7 +213,7 @@ public class AdminUserServiceImpl implements AdminUserService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteUserList(List<Long> ids) { public void deleteUserList(List<Long> ids) {
//批量删除前查看是否汇报关系表还在使用该用户 //批量删除前查看是否管理链路表还在使用该用户
for (Long id : ids){ for (Long id : ids){
Boolean res = userManagementRelationService.hasRelation(id); Boolean res = userManagementRelationService.hasRelation(id);
if (res) { if (res) {

View File

@@ -13,14 +13,14 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* 用户汇报关系 Service 接口 * 用户管理链路 Service 接口
* *
* @author dklive * @author dklive
*/ */
public interface UserManagementRelationService { public interface UserManagementRelationService {
/** /**
* 创建用户汇报关系 * 创建用户管理链路
* *
* @param createReqVO 关系信息 * @param createReqVO 关系信息
* @return 关系编号 * @return 关系编号
@@ -28,82 +28,82 @@ public interface UserManagementRelationService {
Long createRelation(UserManagementRelationSaveReqVO createReqVO); Long createRelation(UserManagementRelationSaveReqVO createReqVO);
/** /**
* 更新用户汇报关系 * 更新用户管理链路
* *
* @param updateReqVO 关系信息 * @param updateReqVO 关系信息
*/ */
void updateRelation(UserManagementRelationSaveReqVO updateReqVO); void updateRelation(UserManagementRelationSaveReqVO updateReqVO);
/** /**
* 删除用户汇报关系 * 删除用户管理链路
* *
* @param id 关系编号 * @param id 关系编号
*/ */
void deleteRelation(Long id); void deleteRelation(Long id);
/** /**
* 批量删除用户汇报关系 * 批量删除用户管理链路
* *
* @param ids 关系编号数组 * @param ids 关系编号数组
*/ */
void deleteRelationList(List<Long> ids); void deleteRelationList(List<Long> ids);
/** /**
* 获得用户汇报关系 * 获得用户管理链路
* *
* @param id 关系编号 * @param id 关系编号
* @return 用户汇报关系 * @return 用户管理链路
*/ */
UserManagementRelationDO getRelation(Long id); UserManagementRelationDO getRelation(Long id);
/** /**
* 获得用户汇报关系列表 * 获得用户管理链路列表
* *
* @param ids 关系编号数组 * @param ids 关系编号数组
* @return 用户汇报关系列表 * @return 用户管理链路列表
*/ */
List<UserManagementRelationDO> getRelationList(Collection<Long> ids); List<UserManagementRelationDO> getRelationList(Collection<Long> ids);
/** /**
* 获得用户汇报关系列表 * 获得用户管理链路列表
* *
* @param reqVO 查询条件 * @param reqVO 查询条件
* @return 用户汇报关系列表 * @return 用户管理链路列表
*/ */
List<UserManagementRelationTreeRespVO> getRelationQuery(UserManagementRelationQueryReqVO reqVO); List<UserManagementRelationTreeRespVO> getRelationQuery(UserManagementRelationQueryReqVO reqVO);
/** /**
* 根据管理者用户ID获得汇报关系列表 * 根据管理者用户ID获得管理链路列表
* *
* @param managerUserId 管理者用户ID * @param managerUserId 管理者用户ID
* @return 汇报关系列表 * @return 管理链路列表
*/ */
List<UserManagementRelationDO> getRelationListByManagerUserId(Long managerUserId); List<UserManagementRelationDO> getRelationListByManagerUserId(Long managerUserId);
/** /**
* 根据被管理者用户ID获得汇报关系列表 * 根据被管理者用户ID获得管理链路列表
* *
* @param subordinateUserId 被管理者用户ID * @param subordinateUserId 被管理者用户ID
* @return 汇报关系列表 * @return 管理链路列表
*/ */
List<UserManagementRelationDO> getRelationListBySubordinateUserId(Long subordinateUserId); List<UserManagementRelationDO> getRelationListBySubordinateUserId(Long subordinateUserId);
/** /**
* 获得用户汇报关系树形结构 * 获得用户管理链路树形结构
* *
* 构建用户上下级关系的树形结构,用于前端树形控件展示 * 构建用户上下级关系的树形结构,用于前端树形控件展示
* - 最高领导:没有上级,作为树的根节点 * - 最高领导:没有上级,作为树的根节点
* - 基层员工没有下级children为空列表 * - 基层员工没有下级children为空列表
* *
* @return 用户汇报关系树形列表 * @return 用户管理链路树形列表
*/ */
List<UserManagementRelationTreeRespVO> getRelationTree(UserManagementRelationQueryReqVO reqVO); List<UserManagementRelationTreeRespVO> getRelationTree(UserManagementRelationQueryReqVO reqVO);
/** /**
* 获得用户汇报关系 Map * 获得用户管理链路 Map
* *
* @param ids 关系编号数组 * @param ids 关系编号数组
* @return 用户汇报关系 Map * @return 用户管理链路 Map
*/ */
default Map<Long, UserManagementRelationDO> getRelationMap(Collection<Long> ids) { default Map<Long, UserManagementRelationDO> getRelationMap(Collection<Long> ids) {
if (CollUtil.isEmpty(ids)) { if (CollUtil.isEmpty(ids)) {
@@ -113,10 +113,10 @@ public interface UserManagementRelationService {
} }
/** /**
* 通过某个用户的id判断汇报关系表中是否有该用户的记录 * 通过某个用户的id判断管理链路表中是否有该用户的记录
* 判断原则: * 判断原则:
* --管理者ID或被管理者ID有一个字段的值等于用户id且该记录没有被逻辑删除 * --管理者ID或被管理者ID有一个字段的值等于用户id且该记录没有被逻辑删除
* --则认为汇报关系表中还在使用该用户 * --则认为管理链路表中还在使用该用户
* *
* @param userId 用户id * @param userId 用户id
* @return true:有该用户的记录false:没有该用户的记录 * @return true:有该用户的记录false:没有该用户的记录

View File

@@ -27,8 +27,8 @@ import static com.njcn.rdms.module.system.enums.ErrorCodeConstants.USER_MANAGEME
import static com.njcn.rdms.module.system.enums.ErrorCodeConstants.USER_MANAGEMENT_RELATION_NOT_FOUND; import static com.njcn.rdms.module.system.enums.ErrorCodeConstants.USER_MANAGEMENT_RELATION_NOT_FOUND;
/** /**
* 用户汇报关系 Service 实现类 * 用户管理链路 Service 实现类
* 提供用户汇报关系的增删改查功能,以及树形结构构建功能 * 提供用户管理链路的增删改查功能,以及树形结构构建功能
* 树形结构用于前端展示用户的上下级层级关系 * 树形结构用于前端展示用户的上下级层级关系
* 业务规则: * 业务规则:
* 1. 一个用户只能有一个直属上级 * 1. 一个用户只能有一个直属上级
@@ -64,7 +64,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
} }
/** /**
* 创建用户汇报关系 * 创建用户管理链路
* 业务逻辑: * 业务逻辑:
* 1. 校验被管理者是否已有直属上级(一个用户只能有一个直属上级) * 1. 校验被管理者是否已有直属上级(一个用户只能有一个直属上级)
* 2. 插入关系记录 * 2. 插入关系记录
@@ -81,7 +81,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
} }
/** /**
* 更新用户汇报关系 * 更新用户管理链路
* 业务逻辑: * 业务逻辑:
* 1. 校验关系记录是否存在 * 1. 校验关系记录是否存在
* 2. 校验被管理者是否已有其他直属上级(一个用户只能有一个直属上级) * 2. 校验被管理者是否已有其他直属上级(一个用户只能有一个直属上级)
@@ -97,7 +97,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
} }
/** /**
* 删除用户汇报关系 * 删除用户管理链路
* 业务逻辑: * 业务逻辑:
* 1. 校验关系记录是否存在 * 1. 校验关系记录是否存在
* 2. 根据主键ID删除关系记录 * 2. 根据主键ID删除关系记录
@@ -111,7 +111,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
} }
/** /**
* 批量删除用户汇报关系 * 批量删除用户管理链路
* 业务逻辑: * 业务逻辑:
* 根据主键ID列表批量删除关系记录 * 根据主键ID列表批量删除关系记录
* *
@@ -186,10 +186,10 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
} }
/** /**
* 根据主键ID获取用户汇报关系 * 根据主键ID获取用户管理链路
* *
* @param id 关系记录主键ID * @param id 关系记录主键ID
* @return 用户汇报关系DO * @return 用户管理链路DO
*/ */
@Override @Override
public UserManagementRelationDO getRelation(Long id) { public UserManagementRelationDO getRelation(Long id) {
@@ -199,10 +199,10 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
} }
/** /**
* 根据主键ID列表获取用户汇报关系列表 * 根据主键ID列表获取用户管理链路列表
* *
* @param ids 关系记录主键ID列表 * @param ids 关系记录主键ID列表
* @return 用户汇报关系DO列表 * @return 用户管理链路DO列表
*/ */
@Override @Override
public List<UserManagementRelationDO> getRelationList(Collection<Long> ids) { public List<UserManagementRelationDO> getRelationList(Collection<Long> ids) {
@@ -215,7 +215,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
} }
/** /**
* 根据查询条件获取用户汇报关系树形结构 * 根据查询条件获取用户管理链路树形结构
* 业务逻辑: * 业务逻辑:
* 1. 构建树形结构上下文(包含所有基础数据) * 1. 构建树形结构上下文(包含所有基础数据)
* 2. 根据查询条件确定目标用户IDsubordinateUserId优先于managerUserId * 2. 根据查询条件确定目标用户IDsubordinateUserId优先于managerUserId
@@ -232,7 +232,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
* - managerUserId不为null构建以该用户为根节点的完整下级树 * - managerUserId不为null构建以该用户为根节点的完整下级树
* *
* @param reqVO 查询条件VO包含subordinateUserId或managerUserId * @param reqVO 查询条件VO包含subordinateUserId或managerUserId
* @return 用户汇报关系树形结构列表 * @return 用户管理链路树形结构列表
*/ */
@Override @Override
public List<UserManagementRelationTreeRespVO> getRelationQuery(UserManagementRelationQueryReqVO reqVO) { public List<UserManagementRelationTreeRespVO> getRelationQuery(UserManagementRelationQueryReqVO reqVO) {
@@ -253,7 +253,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
* 根据管理者用户ID获取其下属关系列表 * 根据管理者用户ID获取其下属关系列表
* *
* @param managerUserId 管理者用户ID * @param managerUserId 管理者用户ID
* @return 用户汇报关系DO列表 * @return 用户管理链路DO列表
*/ */
@Override @Override
public List<UserManagementRelationDO> getRelationListByManagerUserId(Long managerUserId) { public List<UserManagementRelationDO> getRelationListByManagerUserId(Long managerUserId) {
@@ -265,7 +265,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
* 注意:由于一个用户只能有一个直属上级,此方法最多返回一条记录 * 注意:由于一个用户只能有一个直属上级,此方法最多返回一条记录
* *
* @param subordinateUserId 被管理者用户ID * @param subordinateUserId 被管理者用户ID
* @return 用户汇报关系DO列表 * @return 用户管理链路DO列表
*/ */
@Override @Override
public List<UserManagementRelationDO> getRelationListBySubordinateUserId(Long subordinateUserId) { public List<UserManagementRelationDO> getRelationListBySubordinateUserId(Long subordinateUserId) {
@@ -273,7 +273,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
} }
/** /**
* 获取用户汇报关系树形结构 * 获取用户管理链路树形结构
* 业务逻辑: * 业务逻辑:
* 1. 构建树形结构上下文(包含所有基础数据) * 1. 构建树形结构上下文(包含所有基础数据)
* 2. 找出所有根节点(没有上级的用户,即最高领导;也包括自己管理自己的用户) * 2. 找出所有根节点(没有上级的用户,即最高领导;也包括自己管理自己的用户)
@@ -285,7 +285,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
* - 基层员工没有下级children为空列表 * - 基层员工没有下级children为空列表
* - 空数据:返回空列表 * - 空数据:返回空列表
* *
* @return 用户汇报关系树形结构列表 * @return 用户管理链路树形结构列表
*/ */
@Override @Override
public List<UserManagementRelationTreeRespVO> getRelationTree(UserManagementRelationQueryReqVO reqVO) { public List<UserManagementRelationTreeRespVO> getRelationTree(UserManagementRelationQueryReqVO reqVO) {
@@ -297,10 +297,10 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
} }
/** /**
* 通过某个用户的id判断汇报关系表中是否有该用户的记录 * 通过某个用户的id判断管理链路表中是否有该用户的记录
* 判断原则: * 判断原则:
* --管理者ID或被管理者ID有一个字段的值等于用户id且该记录没有被逻辑删除 * --管理者ID或被管理者ID有一个字段的值等于用户id且该记录没有被逻辑删除
* --则认为汇报关系表中还在使用该用户 * --则认为管理链路表中还在使用该用户
* *
* @param userId 用户id * @param userId 用户id
* @return true:有该用户的记录false:没有该用户的记录 * @return true:有该用户的记录false:没有该用户的记录