diff --git a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/CompanyDeptInfo.java b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/CompanyDeptInfo.java index 47a62f1e..cc0470d0 100644 --- a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/CompanyDeptInfo.java +++ b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/CompanyDeptInfo.java @@ -11,7 +11,7 @@ public class CompanyDeptInfo { /** * 公司Id */ - private Long companyId; + private String companyId; /** * 公司名称 */ @@ -19,7 +19,7 @@ public class CompanyDeptInfo { /** * 部门Id */ - private Long deptId; + private String deptId; /** * 部门名称 */ diff --git a/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/core/util/BusinessDeptHandleUtil.java b/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/core/util/BusinessDeptHandleUtil.java index fcaa7bfb..ef47614e 100644 --- a/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/core/util/BusinessDeptHandleUtil.java +++ b/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/core/util/BusinessDeptHandleUtil.java @@ -15,14 +15,7 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import static com.zt.plat.framework.common.util.collection.CollectionUtils.singleton; @@ -54,13 +47,13 @@ public class BusinessDeptHandleUtil { if (companyIdHeader != null && !companyIdHeader.isBlank()) { // 根据请求头中的公司 ID 过滤出当前用户的公司部门信息 Set companyDeptSetByCompanyId = companyDeptSet.stream() - .filter(companyDeptInfo -> companyDeptInfo.getCompanyId().toString().equals(companyIdHeader)) + .filter(companyDeptInfo -> companyDeptInfo.getCompanyId().equals(companyIdHeader)) .collect(Collectors.toSet()); if (companyDeptSetByCompanyId.isEmpty()) { // 当前公司下没有部门 CompanyDeptInfo data = new CompanyDeptInfo(); - data.setCompanyId(Long.valueOf(companyIdHeader)); - data.setDeptId(0L); + data.setCompanyId(companyIdHeader); + data.setDeptId("0"); return new HashSet<>(singleton(data)); } // 如果有 deptId,校验其是否属于该 companyId @@ -157,11 +150,11 @@ public class BusinessDeptHandleUtil { if (extraInfo == null) { return; } - Set companyIds = infos.stream() + Set companyIds = infos.stream() .map(CompanyDeptInfo::getCompanyId) .filter(Objects::nonNull) .collect(Collectors.toCollection(LinkedHashSet::new)); - Set deptIds = infos.stream() + Set deptIds = infos.stream() .map(CompanyDeptInfo::getDeptId) .filter(Objects::nonNull) .collect(Collectors.toCollection(LinkedHashSet::new)); @@ -172,24 +165,24 @@ public class BusinessDeptHandleUtil { private static CompanyDeptInfo convert(CompanyDeptInfoRespDTO dto) { CompanyDeptInfo info = new CompanyDeptInfo(); - info.setCompanyId(dto.getCompanyId()); + info.setCompanyId(String.valueOf(dto.getCompanyId())); info.setCompanyName(dto.getCompanyName()); info.setCompanyCode(dto.getCompanyCode()); - info.setDeptId(dto.getDeptId()); + info.setDeptId(String.valueOf(dto.getDeptId())); info.setDeptName(dto.getDeptName()); info.setDeptCode(dto.getDeptCode()); return info; } private static boolean applyAutoSelection(LoginUser loginUser, HttpServletRequest request, CompanyDeptInfo info) { - if (info == null || info.getCompanyId() == null || info.getCompanyId() <= 0 - || info.getDeptId() == null || info.getDeptId() <= 0) { + if (info == null || info.getCompanyId() == null || "0".equals(info.getCompanyId()) + || info.getDeptId() == null || "0".equals(info.getDeptId())) { return false; } if (loginUser != null) { - loginUser.setVisitCompanyId(info.getCompanyId()); + loginUser.setVisitCompanyId(Long.valueOf(info.getCompanyId())); loginUser.setVisitCompanyName(info.getCompanyName()); - loginUser.setVisitDeptId(info.getDeptId()); + loginUser.setVisitDeptId(Long.valueOf(info.getDeptId())); loginUser.setVisitDeptName(info.getDeptName()); } request.setAttribute(WebFrameworkUtils.HEADER_VISIT_COMPANY_ID, info.getCompanyId()); @@ -201,7 +194,7 @@ public class BusinessDeptHandleUtil { request.setAttribute(WebFrameworkUtils.HEADER_VISIT_DEPT_NAME, info.getDeptName()); } CompanyContextHolder.setIgnore(false); - CompanyContextHolder.setCompanyId(info.getCompanyId()); + CompanyContextHolder.setCompanyId(Long.valueOf(info.getCompanyId())); return true; } } diff --git a/zt-framework/zt-spring-boot-starter-biz-business/src/test/java/com/zt/plat/framework/business/interceptor/BusinessHeaderInterceptorTest.java b/zt-framework/zt-spring-boot-starter-biz-business/src/test/java/com/zt/plat/framework/business/interceptor/BusinessHeaderInterceptorTest.java index afa1ae8c..8e600c27 100644 --- a/zt-framework/zt-spring-boot-starter-biz-business/src/test/java/com/zt/plat/framework/business/interceptor/BusinessHeaderInterceptorTest.java +++ b/zt-framework/zt-spring-boot-starter-biz-business/src/test/java/com/zt/plat/framework/business/interceptor/BusinessHeaderInterceptorTest.java @@ -107,11 +107,11 @@ class BusinessHeaderInterceptorTest { // 构造 loginUser,包含多个公司部门 CompanyDeptInfo deptInfo1 = new CompanyDeptInfo(); - deptInfo1.setCompanyId(1L); - deptInfo1.setDeptId(2L); + deptInfo1.setCompanyId(String.valueOf(1L)); + deptInfo1.setDeptId(String.valueOf(2L)); CompanyDeptInfo deptInfo2 = new CompanyDeptInfo(); - deptInfo2.setCompanyId(2L); - deptInfo2.setDeptId(3L); + deptInfo2.setCompanyId(String.valueOf(2L)); + deptInfo2.setDeptId(String.valueOf(3L)); Set deptSet = new HashSet<>(); deptSet.add(deptInfo1); deptSet.add(deptInfo2); @@ -141,8 +141,8 @@ class BusinessHeaderInterceptorTest { // 构造 loginUser,只有一个公司且公司下只有一个部门 CompanyDeptInfo deptInfo = new CompanyDeptInfo(); - deptInfo.setCompanyId(100L); - deptInfo.setDeptId(200L); + deptInfo.setCompanyId(String.valueOf(100L)); + deptInfo.setDeptId(String.valueOf(200L)); Set deptSet = new HashSet<>(); deptSet.add(deptInfo); LoginUser loginUser = randomPojo(LoginUser.class, o -> o.setId(1L) @@ -172,11 +172,11 @@ class BusinessHeaderInterceptorTest { // 构造 loginUser,多个公司部门 CompanyDeptInfo deptInfo1 = new CompanyDeptInfo(); - deptInfo1.setCompanyId(1L); - deptInfo1.setDeptId(2L); + deptInfo1.setCompanyId(String.valueOf(1L)); + deptInfo1.setDeptId(String.valueOf(2L)); CompanyDeptInfo deptInfo2 = new CompanyDeptInfo(); - deptInfo2.setCompanyId(2L); - deptInfo2.setDeptId(3L); + deptInfo2.setCompanyId(String.valueOf(2L)); + deptInfo2.setDeptId(String.valueOf(3L)); Set deptSet = new HashSet<>(); deptSet.add(deptInfo1); deptSet.add(deptInfo2); @@ -207,11 +207,11 @@ class BusinessHeaderInterceptorTest { // 构造 loginUser,只有其他公司部门 CompanyDeptInfo deptInfo1 = new CompanyDeptInfo(); - deptInfo1.setCompanyId(1L); - deptInfo1.setDeptId(2L); + deptInfo1.setCompanyId(String.valueOf(1L)); + deptInfo1.setDeptId(String.valueOf(2L)); CompanyDeptInfo deptInfo2 = new CompanyDeptInfo(); - deptInfo2.setCompanyId(2L); - deptInfo2.setDeptId(3L); + deptInfo2.setCompanyId(String.valueOf(2L)); + deptInfo2.setDeptId(String.valueOf(3L)); Set deptSet = new HashSet<>(); deptSet.add(deptInfo1); deptSet.add(deptInfo2); diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/DeptServiceImpl.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/DeptServiceImpl.java index 9e160f68..ce8f88b3 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/DeptServiceImpl.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/DeptServiceImpl.java @@ -504,10 +504,10 @@ public class DeptServiceImpl implements DeptService { DeptDO company = companyId != null ? loadDept(companyId, deptCache) : findTopLevelAncestor(dept); if (company == null) continue; CompanyDeptInfo info = new CompanyDeptInfo(); - info.setCompanyId(company.getId()); + info.setCompanyId(String.valueOf(company.getId())); info.setCompanyName(company.getName()); info.setCompanyCode(company.getCode()); - info.setDeptId(dept.getId()); + info.setDeptId(String.valueOf(dept.getId())); info.setDeptName(dept.getName()); info.setDeptCode(dept.getCode()); result.add(info); diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/user/AdminUserServiceImpl.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/user/AdminUserServiceImpl.java index 8f975bc4..29ff8fc0 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/user/AdminUserServiceImpl.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/user/AdminUserServiceImpl.java @@ -360,8 +360,8 @@ public class AdminUserServiceImpl implements AdminUserService { public AdminUserDO getUser(Long id) { AdminUserDO adminUserDO = userMapper.selectListByIds(singleton(id)).stream().findFirst().orElseThrow(() -> exception(USER_NOT_EXISTS)); Set companyDeptInfoListByUserId = deptService.getCompanyDeptInfoListByUserId(id); - adminUserDO.setDeptIds(companyDeptInfoListByUserId.stream().map(CompanyDeptInfo::getDeptId).collect(Collectors.toSet())); - adminUserDO.setCompanyIds(companyDeptInfoListByUserId.stream().map(CompanyDeptInfo::getCompanyId).collect(Collectors.toSet())); + adminUserDO.setDeptIds(companyDeptInfoListByUserId.stream().map(CompanyDeptInfo::getDeptId).map(Long::valueOf).collect(Collectors.toSet())); + adminUserDO.setCompanyIds(companyDeptInfoListByUserId.stream().map(CompanyDeptInfo::getCompanyId).map(Long::valueOf).collect(Collectors.toSet())); adminUserDO.setCompanyDeptInfos(companyDeptInfoListByUserId); String deptNames = companyDeptInfoListByUserId.stream() .map(CompanyDeptInfo::getDeptName)