Merge remote-tracking branch 'base-version/main' into dev

This commit is contained in:
chenbowen
2025-11-13 21:40:08 +08:00
5 changed files with 33 additions and 40 deletions

View File

@@ -11,7 +11,7 @@ public class CompanyDeptInfo {
/** /**
* 公司Id * 公司Id
*/ */
private Long companyId; private String companyId;
/** /**
* 公司名称 * 公司名称
*/ */
@@ -19,7 +19,7 @@ public class CompanyDeptInfo {
/** /**
* 部门Id * 部门Id
*/ */
private Long deptId; private String deptId;
/** /**
* 部门名称 * 部门名称
*/ */

View File

@@ -15,14 +15,7 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.Collections; import java.util.*;
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.stream.Collectors; import java.util.stream.Collectors;
import static com.zt.plat.framework.common.util.collection.CollectionUtils.singleton; import static com.zt.plat.framework.common.util.collection.CollectionUtils.singleton;
@@ -54,13 +47,13 @@ public class BusinessDeptHandleUtil {
if (companyIdHeader != null && !companyIdHeader.isBlank()) { if (companyIdHeader != null && !companyIdHeader.isBlank()) {
// 根据请求头中的公司 ID 过滤出当前用户的公司部门信息 // 根据请求头中的公司 ID 过滤出当前用户的公司部门信息
Set<CompanyDeptInfo> companyDeptSetByCompanyId = companyDeptSet.stream() Set<CompanyDeptInfo> companyDeptSetByCompanyId = companyDeptSet.stream()
.filter(companyDeptInfo -> companyDeptInfo.getCompanyId().toString().equals(companyIdHeader)) .filter(companyDeptInfo -> companyDeptInfo.getCompanyId().equals(companyIdHeader))
.collect(Collectors.toSet()); .collect(Collectors.toSet());
if (companyDeptSetByCompanyId.isEmpty()) { if (companyDeptSetByCompanyId.isEmpty()) {
// 当前公司下没有部门 // 当前公司下没有部门
CompanyDeptInfo data = new CompanyDeptInfo(); CompanyDeptInfo data = new CompanyDeptInfo();
data.setCompanyId(Long.valueOf(companyIdHeader)); data.setCompanyId(companyIdHeader);
data.setDeptId(0L); data.setDeptId("0");
return new HashSet<>(singleton(data)); return new HashSet<>(singleton(data));
} }
// 如果有 deptId校验其是否属于该 companyId // 如果有 deptId校验其是否属于该 companyId
@@ -157,11 +150,11 @@ public class BusinessDeptHandleUtil {
if (extraInfo == null) { if (extraInfo == null) {
return; return;
} }
Set<Long> companyIds = infos.stream() Set<String> companyIds = infos.stream()
.map(CompanyDeptInfo::getCompanyId) .map(CompanyDeptInfo::getCompanyId)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedHashSet::new)); .collect(Collectors.toCollection(LinkedHashSet::new));
Set<Long> deptIds = infos.stream() Set<String> deptIds = infos.stream()
.map(CompanyDeptInfo::getDeptId) .map(CompanyDeptInfo::getDeptId)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedHashSet::new)); .collect(Collectors.toCollection(LinkedHashSet::new));
@@ -172,24 +165,24 @@ public class BusinessDeptHandleUtil {
private static CompanyDeptInfo convert(CompanyDeptInfoRespDTO dto) { private static CompanyDeptInfo convert(CompanyDeptInfoRespDTO dto) {
CompanyDeptInfo info = new CompanyDeptInfo(); CompanyDeptInfo info = new CompanyDeptInfo();
info.setCompanyId(dto.getCompanyId()); info.setCompanyId(String.valueOf(dto.getCompanyId()));
info.setCompanyName(dto.getCompanyName()); info.setCompanyName(dto.getCompanyName());
info.setCompanyCode(dto.getCompanyCode()); info.setCompanyCode(dto.getCompanyCode());
info.setDeptId(dto.getDeptId()); info.setDeptId(String.valueOf(dto.getDeptId()));
info.setDeptName(dto.getDeptName()); info.setDeptName(dto.getDeptName());
info.setDeptCode(dto.getDeptCode()); info.setDeptCode(dto.getDeptCode());
return info; return info;
} }
private static boolean applyAutoSelection(LoginUser loginUser, HttpServletRequest request, CompanyDeptInfo info) { private static boolean applyAutoSelection(LoginUser loginUser, HttpServletRequest request, CompanyDeptInfo info) {
if (info == null || info.getCompanyId() == null || info.getCompanyId() <= 0 if (info == null || info.getCompanyId() == null || "0".equals(info.getCompanyId())
|| info.getDeptId() == null || info.getDeptId() <= 0) { || info.getDeptId() == null || "0".equals(info.getDeptId())) {
return false; return false;
} }
if (loginUser != null) { if (loginUser != null) {
loginUser.setVisitCompanyId(info.getCompanyId()); loginUser.setVisitCompanyId(Long.valueOf(info.getCompanyId()));
loginUser.setVisitCompanyName(info.getCompanyName()); loginUser.setVisitCompanyName(info.getCompanyName());
loginUser.setVisitDeptId(info.getDeptId()); loginUser.setVisitDeptId(Long.valueOf(info.getDeptId()));
loginUser.setVisitDeptName(info.getDeptName()); loginUser.setVisitDeptName(info.getDeptName());
} }
request.setAttribute(WebFrameworkUtils.HEADER_VISIT_COMPANY_ID, info.getCompanyId()); 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()); request.setAttribute(WebFrameworkUtils.HEADER_VISIT_DEPT_NAME, info.getDeptName());
} }
CompanyContextHolder.setIgnore(false); CompanyContextHolder.setIgnore(false);
CompanyContextHolder.setCompanyId(info.getCompanyId()); CompanyContextHolder.setCompanyId(Long.valueOf(info.getCompanyId()));
return true; return true;
} }
} }

View File

@@ -107,11 +107,11 @@ class BusinessHeaderInterceptorTest {
// 构造 loginUser包含多个公司部门 // 构造 loginUser包含多个公司部门
CompanyDeptInfo deptInfo1 = new CompanyDeptInfo(); CompanyDeptInfo deptInfo1 = new CompanyDeptInfo();
deptInfo1.setCompanyId(1L); deptInfo1.setCompanyId(String.valueOf(1L));
deptInfo1.setDeptId(2L); deptInfo1.setDeptId(String.valueOf(2L));
CompanyDeptInfo deptInfo2 = new CompanyDeptInfo(); CompanyDeptInfo deptInfo2 = new CompanyDeptInfo();
deptInfo2.setCompanyId(2L); deptInfo2.setCompanyId(String.valueOf(2L));
deptInfo2.setDeptId(3L); deptInfo2.setDeptId(String.valueOf(3L));
Set<CompanyDeptInfo> deptSet = new HashSet<>(); Set<CompanyDeptInfo> deptSet = new HashSet<>();
deptSet.add(deptInfo1); deptSet.add(deptInfo1);
deptSet.add(deptInfo2); deptSet.add(deptInfo2);
@@ -141,8 +141,8 @@ class BusinessHeaderInterceptorTest {
// 构造 loginUser只有一个公司且公司下只有一个部门 // 构造 loginUser只有一个公司且公司下只有一个部门
CompanyDeptInfo deptInfo = new CompanyDeptInfo(); CompanyDeptInfo deptInfo = new CompanyDeptInfo();
deptInfo.setCompanyId(100L); deptInfo.setCompanyId(String.valueOf(100L));
deptInfo.setDeptId(200L); deptInfo.setDeptId(String.valueOf(200L));
Set<CompanyDeptInfo> deptSet = new HashSet<>(); Set<CompanyDeptInfo> deptSet = new HashSet<>();
deptSet.add(deptInfo); deptSet.add(deptInfo);
LoginUser loginUser = randomPojo(LoginUser.class, o -> o.setId(1L) LoginUser loginUser = randomPojo(LoginUser.class, o -> o.setId(1L)
@@ -172,11 +172,11 @@ class BusinessHeaderInterceptorTest {
// 构造 loginUser多个公司部门 // 构造 loginUser多个公司部门
CompanyDeptInfo deptInfo1 = new CompanyDeptInfo(); CompanyDeptInfo deptInfo1 = new CompanyDeptInfo();
deptInfo1.setCompanyId(1L); deptInfo1.setCompanyId(String.valueOf(1L));
deptInfo1.setDeptId(2L); deptInfo1.setDeptId(String.valueOf(2L));
CompanyDeptInfo deptInfo2 = new CompanyDeptInfo(); CompanyDeptInfo deptInfo2 = new CompanyDeptInfo();
deptInfo2.setCompanyId(2L); deptInfo2.setCompanyId(String.valueOf(2L));
deptInfo2.setDeptId(3L); deptInfo2.setDeptId(String.valueOf(3L));
Set<CompanyDeptInfo> deptSet = new HashSet<>(); Set<CompanyDeptInfo> deptSet = new HashSet<>();
deptSet.add(deptInfo1); deptSet.add(deptInfo1);
deptSet.add(deptInfo2); deptSet.add(deptInfo2);
@@ -207,11 +207,11 @@ class BusinessHeaderInterceptorTest {
// 构造 loginUser只有其他公司部门 // 构造 loginUser只有其他公司部门
CompanyDeptInfo deptInfo1 = new CompanyDeptInfo(); CompanyDeptInfo deptInfo1 = new CompanyDeptInfo();
deptInfo1.setCompanyId(1L); deptInfo1.setCompanyId(String.valueOf(1L));
deptInfo1.setDeptId(2L); deptInfo1.setDeptId(String.valueOf(2L));
CompanyDeptInfo deptInfo2 = new CompanyDeptInfo(); CompanyDeptInfo deptInfo2 = new CompanyDeptInfo();
deptInfo2.setCompanyId(2L); deptInfo2.setCompanyId(String.valueOf(2L));
deptInfo2.setDeptId(3L); deptInfo2.setDeptId(String.valueOf(3L));
Set<CompanyDeptInfo> deptSet = new HashSet<>(); Set<CompanyDeptInfo> deptSet = new HashSet<>();
deptSet.add(deptInfo1); deptSet.add(deptInfo1);
deptSet.add(deptInfo2); deptSet.add(deptInfo2);

View File

@@ -504,10 +504,10 @@ public class DeptServiceImpl implements DeptService {
DeptDO company = companyId != null ? loadDept(companyId, deptCache) : findTopLevelAncestor(dept); DeptDO company = companyId != null ? loadDept(companyId, deptCache) : findTopLevelAncestor(dept);
if (company == null) continue; if (company == null) continue;
CompanyDeptInfo info = new CompanyDeptInfo(); CompanyDeptInfo info = new CompanyDeptInfo();
info.setCompanyId(company.getId()); info.setCompanyId(String.valueOf(company.getId()));
info.setCompanyName(company.getName()); info.setCompanyName(company.getName());
info.setCompanyCode(company.getCode()); info.setCompanyCode(company.getCode());
info.setDeptId(dept.getId()); info.setDeptId(String.valueOf(dept.getId()));
info.setDeptName(dept.getName()); info.setDeptName(dept.getName());
info.setDeptCode(dept.getCode()); info.setDeptCode(dept.getCode());
result.add(info); result.add(info);

View File

@@ -360,8 +360,8 @@ public class AdminUserServiceImpl implements AdminUserService {
public AdminUserDO getUser(Long id) { public AdminUserDO getUser(Long id) {
AdminUserDO adminUserDO = userMapper.selectListByIds(singleton(id)).stream().findFirst().orElseThrow(() -> exception(USER_NOT_EXISTS)); AdminUserDO adminUserDO = userMapper.selectListByIds(singleton(id)).stream().findFirst().orElseThrow(() -> exception(USER_NOT_EXISTS));
Set<CompanyDeptInfo> companyDeptInfoListByUserId = deptService.getCompanyDeptInfoListByUserId(id); Set<CompanyDeptInfo> companyDeptInfoListByUserId = deptService.getCompanyDeptInfoListByUserId(id);
adminUserDO.setDeptIds(companyDeptInfoListByUserId.stream().map(CompanyDeptInfo::getDeptId).collect(Collectors.toSet())); adminUserDO.setDeptIds(companyDeptInfoListByUserId.stream().map(CompanyDeptInfo::getDeptId).map(Long::valueOf).collect(Collectors.toSet()));
adminUserDO.setCompanyIds(companyDeptInfoListByUserId.stream().map(CompanyDeptInfo::getCompanyId).collect(Collectors.toSet())); adminUserDO.setCompanyIds(companyDeptInfoListByUserId.stream().map(CompanyDeptInfo::getCompanyId).map(Long::valueOf).collect(Collectors.toSet()));
adminUserDO.setCompanyDeptInfos(companyDeptInfoListByUserId); adminUserDO.setCompanyDeptInfos(companyDeptInfoListByUserId);
String deptNames = companyDeptInfoListByUserId.stream() String deptNames = companyDeptInfoListByUserId.stream()
.map(CompanyDeptInfo::getDeptName) .map(CompanyDeptInfo::getDeptName)