1、新增项目时,调整设置项目经理权限的逻辑

This commit is contained in:
2026-02-10 20:47:48 +08:00
parent a9a775eaed
commit a613b7ae71

View File

@@ -219,6 +219,22 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
if (StringUtils.isNotBlank(projectNode.getMemberList())) {
memberList = Arrays.stream(projectNode.getMemberList().split(",")).toList();
}
}
if (ObjectUtils.isNotEmpty(projectNode)) {
if (CollectionUtils.isNotEmpty(memberList)) {
// 项目经理
BatchUpdatePermissionReq.FilePermissionItem managerItem = new BatchUpdatePermissionReq.FilePermissionItem();
managerItem.setUuid(projectNode.getUuid());
Map<Long, Byte> managerPermissions = new HashMap<>();
// 2026-02-02 项目创建人对项目文件夹只有预览权限,项目经理(仿真专项代表)对项目文件夹有所有权限
managerPermissions.put(userId, FilePermissionEnum.READ.getValue());
for (String manager : memberList) {
managerPermissions.put(Long.valueOf(manager), FilePermissionEnum.ALL.getValue());
}
managerItem.setUserPermissions(managerPermissions);
filePermissions.add(managerItem);
}
}else {
// 这里要兼容单独只创建阶段的逻辑,需要反查出项目经理并设置权限
SpdmProjectNodeEditReq phaseNode = addNodeList.stream().filter(node -> NodeTypeEnum.PHASE.getValue().equals(node.getNodeType())).findFirst().orElse(null);
@@ -226,31 +242,19 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
List<SpdmNodeMemberVo> managerList = nodeMapper.getNodeMemberListByNodeIdList(Collections.singletonList(phaseNode.getParentId()));
if (CollectionUtils.isNotEmpty(managerList)) {
memberList = managerList.stream().map(manager -> String.valueOf(manager.getUserId())).toList();
BatchUpdatePermissionReq.FilePermissionItem managerItem = new BatchUpdatePermissionReq.FilePermissionItem();
managerItem.setUuid(phaseNode.getUuid());
Map<Long, Byte> managerPermissions = new HashMap<>();
managerPermissions.put(userId, FilePermissionEnum.READ.getValue());
for (String manager : memberList) {
managerPermissions.put(Long.valueOf(manager), FilePermissionEnum.ALL.getValue());
}
managerItem.setUserPermissions(managerPermissions);
filePermissions.add(managerItem);
}
}
}
for (SpdmProjectNodeEditReq addNode : addNodeList) {
BatchUpdatePermissionReq.FilePermissionItem item = new BatchUpdatePermissionReq.FilePermissionItem();
item.setUuid(addNode.getUuid());
Map<Long, Byte> userPermissions = new HashMap<>();
// 2026-02-02 项目创建人对项目文件夹只有预览权限,项目经理(仿真专项代表)对项目文件夹有所有权限
userPermissions.put(userId, FilePermissionEnum.READ.getValue());
item.setUserPermissions(userPermissions);
filePermissions.add(item);
if (CollectionUtils.isEmpty(memberList)) {
continue;
}
// 项目经理
BatchUpdatePermissionReq.FilePermissionItem managerItem = new BatchUpdatePermissionReq.FilePermissionItem();
managerItem.setUuid(addNode.getUuid());
for (String manager : memberList) {
Map<Long, Byte> managerPermissions = new HashMap<>();
// 2026-02-02 项目创建人对项目文件夹只有预览权限,项目经理(仿真专项代表)对项目文件夹有所有权限
managerPermissions.put(Long.valueOf(manager), FilePermissionEnum.ALL.getValue());
managerItem.setUserPermissions(managerPermissions);
filePermissions.add(managerItem);
}
}
if (CollectionUtils.isNotEmpty(filePermissions)) {
BatchUpdatePermissionReq batchReq = new BatchUpdatePermissionReq();
batchReq.setFilePermissions(filePermissions);