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 0f18c4bb..12478437 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 @@ -59,13 +59,15 @@ public class BusinessDeptHandleUtil { } // 如果有 deptId,校验其是否属于该 companyId if (deptIdHeader != null) { - boolean valid = companyDeptSetByCompanyId.stream().anyMatch(info -> String.valueOf(info.getDeptId()).equals(deptIdHeader)); - if (!valid) { + Optional matched = companyDeptSetByCompanyId.stream() + .filter(info -> String.valueOf(info.getDeptId()).equals(deptIdHeader)) + .findFirst(); + if (matched.isEmpty()) { return null; - } else { - // 部门存在,放行 - return new HashSet<>(); } + // 部门存在,先设置登录信息再放行 + applyAutoSelection(currentLoginUser, request, matched.get()); + return Collections.emptySet(); } if (companyDeptSetByCompanyId.size() == 1) { CompanyDeptInfo singleCompanyDept = companyDeptSetByCompanyId.iterator().next(); @@ -183,10 +185,10 @@ public class BusinessDeptHandleUtil { if (loginUser != null) { loginUser.setVisitCompanyId(Long.valueOf(info.getCompanyId())); loginUser.setVisitCompanyName(info.getCompanyName()); - loginUser.setVisitCompanyCode(info.getCompanyName()); + loginUser.setVisitCompanyCode(info.getCompanyCode()); loginUser.setVisitDeptId(Long.valueOf(info.getDeptId())); loginUser.setVisitDeptName(info.getDeptName()); - loginUser.setVisitDeptCode(info.getDeptName()); + loginUser.setVisitDeptCode(info.getDeptCode()); } request.setAttribute(WebFrameworkUtils.HEADER_VISIT_COMPANY_ID, info.getCompanyId()); if (info.getCompanyName() != null) {