diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java index b559270..9cedc07 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java @@ -93,7 +93,7 @@ public class InspectionPlanController { @DeleteMapping("/delete-stop-plan") @Parameter(name = "batchNo", description = "批次号", required = true) - @Operation(summary = "根据batch_no删除巡检计划汇总") + @Operation(summary = "根据batch_no终止计划") @PreAuthorize("@ss.hasPermission('garden:inspection-plan:delete')") public CommonResult stopPlanInspectionPlan(@RequestParam("batch_no") @NotBlank String batchNo) { inspectionPlanService.stopPlanInspectionPlan(batchNo); diff --git a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/oauth2/OAuth2TokenServiceImpl.java b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/oauth2/OAuth2TokenServiceImpl.java index 1ed8971..571757b 100644 --- a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/oauth2/OAuth2TokenServiceImpl.java +++ b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/oauth2/OAuth2TokenServiceImpl.java @@ -184,7 +184,7 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { AdminUserDO user = adminUserService.getUser(userId); OAuth2RefreshTokenDO refreshToken = new OAuth2RefreshTokenDO().setRefreshToken(generateRefreshToken()) .setUserId(userId).setUserType(userType) - .setCompanyId(getParentDeptId(user.getDeptId())) + .setCompanyId(user.getCompanyId()) .setBusiLine(user.getBusiLine()) .setClientId(clientDO.getClientId()).setScopes(scopes) .setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getRefreshTokenValiditySeconds())); @@ -192,75 +192,6 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { return refreshToken; } - private Long getParentDeptId(Long deptId) { - DeptDO dept = deptService.getDept(deptId); - if (dept == null) { - return null; - } - //顶级部门ID - if(dept.getParentId().equals(0L)) { - return dept.getId(); - } - //二级部门 - if(dept.getParentId().equals(100L)) { - return dept.getId(); - } - //一级以下查二级 - List allDeptList = deptService.getSubDeptAllList(); - if (CollectionUtil.isEmpty(allDeptList)) { - return null; - } - // 构建部门ID → 部门对象的Map(核心:快速根据ID查部门) - Map deptMap = allDeptList.stream() - // 第一个参数:Map 的 Key(取 deptId) - // 第二个参数:Map 的 Value(取 Dept 对象本身) - .collect(Collectors.toMap(DeptDO::getId, DeptDO -> DeptDO)); - - DeptDO findDept = findDeptByTargetParentIdLoop(dept.getParentId(), 100L, deptMap); - return findDept == null ? null : findDept.getId(); - } - - /** - * 循环向上追溯,查找父部门ID等于目标值的部门对象(避免栈溢出) - * @param startDeptId 起始部门ID(指定deptId) - * @param targetParentId 目标parentId(要匹配的父部门ID) - * @param deptIdMap 部门ID映射Map - * @return 匹配的部门对象(无则返回null) - */ - public static DeptDO findDeptByTargetParentIdLoop(Long startDeptId, Long targetParentId, Map deptIdMap) { - // 1. 入参校验 - if (startDeptId == null || targetParentId == null || deptIdMap == null || targetParentId == 0) { - return null; - } - - Long currentDeptId = startDeptId; - while (true) { - // 2. 获取当前部门对象 - DeptDO currentDept = deptIdMap.get(currentDeptId); - if (currentDept == null) { - break; - } - - // 3. 获取当前部门的父ID(父部门的deptId) - Long parentDeptId = currentDept.getParentId(); - // 终止条件:追溯到顶级部门(parentId=0) - if (parentDeptId == 0L) { - break; - } - - // 4. 校验是否匹配目标parentId - if (parentDeptId.equals(targetParentId)) { - return currentDept; // 匹配,返回对象 - } - - // 5. 未匹配,继续追溯父部门 - currentDeptId = currentDept.getParentId(); - } - - // 遍历结束未匹配 - return null; - } - private OAuth2AccessTokenDO convertToAccessToken(OAuth2RefreshTokenDO refreshTokenDO) { OAuth2AccessTokenDO accessTokenDO = BeanUtils.toBean(refreshTokenDO, OAuth2AccessTokenDO.class) .setAccessToken(refreshTokenDO.getRefreshToken()); diff --git a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/user/AdminUserServiceImpl.java b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/user/AdminUserServiceImpl.java index eaf6a5b..671708c 100644 --- a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/user/AdminUserServiceImpl.java +++ b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/user/AdminUserServiceImpl.java @@ -284,7 +284,11 @@ public class AdminUserServiceImpl implements AdminUserService { @Override public AdminUserDO getUser(Long id) { - return userMapper.selectById(id); + AdminUserDO adminUserDO = userMapper.selectById(id); + if (null != adminUserDO) { + adminUserDO.setCompanyId(getParentDeptId(adminUserDO.getDeptId())); + } + return adminUserDO; } @Override @@ -531,4 +535,73 @@ public class AdminUserServiceImpl implements AdminUserService { return passwordEncoder.encode(password); } + private Long getParentDeptId(Long deptId) { + DeptDO dept = deptService.getDept(deptId); + if (dept == null) { + return null; + } + //顶级部门ID + if(dept.getParentId().equals(0L)) { + return dept.getId(); + } + //二级部门 + if(dept.getParentId().equals(100L)) { + return dept.getId(); + } + //一级以下查二级 + List allDeptList = deptService.getSubDeptAllList(); + if (CollectionUtil.isEmpty(allDeptList)) { + return null; + } + // 构建部门ID → 部门对象的Map(核心:快速根据ID查部门) + Map deptMap = allDeptList.stream() + // 第一个参数:Map 的 Key(取 deptId) + // 第二个参数:Map 的 Value(取 Dept 对象本身) + .collect(Collectors.toMap(DeptDO::getId, DeptDO -> DeptDO)); + + DeptDO findDept = findDeptByTargetParentIdLoop(dept.getParentId(), 100L, deptMap); + return findDept == null ? null : findDept.getId(); + } + + /** + * 循环向上追溯,查找父部门ID等于目标值的部门对象(避免栈溢出) + * @param startDeptId 起始部门ID(指定deptId) + * @param targetParentId 目标parentId(要匹配的父部门ID) + * @param deptIdMap 部门ID映射Map + * @return 匹配的部门对象(无则返回null) + */ + public static DeptDO findDeptByTargetParentIdLoop(Long startDeptId, Long targetParentId, Map deptIdMap) { + // 1. 入参校验 + if (startDeptId == null || targetParentId == null || deptIdMap == null || targetParentId == 0) { + return null; + } + + Long currentDeptId = startDeptId; + while (true) { + // 2. 获取当前部门对象 + DeptDO currentDept = deptIdMap.get(currentDeptId); + if (currentDept == null) { + break; + } + + // 3. 获取当前部门的父ID(父部门的deptId) + Long parentDeptId = currentDept.getParentId(); + // 终止条件:追溯到顶级部门(parentId=0) + if (parentDeptId == 0L) { + break; + } + + // 4. 校验是否匹配目标parentId + if (parentDeptId.equals(targetParentId)) { + return currentDept; // 匹配,返回对象 + } + + // 5. 未匹配,继续追溯父部门 + currentDeptId = currentDept.getParentId(); + } + + // 遍历结束未匹配 + return null; + } + }