Merge branch 'dev' into test

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

View File

@@ -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;
/**
* 部门名称
*/

View File

@@ -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<CompanyDeptInfo> 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<Long> companyIds = infos.stream()
Set<String> companyIds = infos.stream()
.map(CompanyDeptInfo::getCompanyId)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(LinkedHashSet::new));
Set<Long> deptIds = infos.stream()
Set<String> 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;
}
}

View File

@@ -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<CompanyDeptInfo> 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<CompanyDeptInfo> 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<CompanyDeptInfo> 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<CompanyDeptInfo> deptSet = new HashSet<>();
deptSet.add(deptInfo1);
deptSet.add(deptInfo2);

View File

@@ -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);

View File

@@ -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<CompanyDeptInfo> 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)