1、仿真策划时,仿真负责、执行人修改后,需要调整相应的权限

This commit is contained in:
2026-01-28 16:30:48 +08:00
parent b4533ad36c
commit 791a155913

View File

@@ -285,13 +285,28 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
mapper.updateProjectNodeItemExtra(taskExtraNode);
}
}
// 查询当前任务关联的成员
List<SimulationTaskMember> oldMemberList = simulationTaskMemberService.lambdaQuery()
.eq(SimulationTaskMember::getTaskId, taskEditNodeReq.getUuid()).list();
// 当前任务的仿真执行人
List<SimulationTaskMember> oldEMemberList = List.of();
// 当前任务的仿真负责人
List<SimulationTaskMember> oldPMemberList = List.of();
if (CollectionUtils.isNotEmpty(oldMemberList)) {
oldEMemberList = oldMemberList.stream().filter(member -> MemberTypeEnum.EXECUTOR.getCode().equals(member.getType())).toList();
oldPMemberList = oldMemberList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType())).toList();
}
// 删除原来修改仿真执行人的所有权限信息
if (CollectionUtils.isNotEmpty(oldEMemberList)) {
for (SimulationTaskMember simulationTaskMember : oldEMemberList) {
// TODO 待优化成批量处理权限
deletePermission(simulationTaskMember.getUserId(), simulationTaskMember.getTaskId());
}
}
// 修改仿真执行人
if (StringUtils.isNotBlank(taskEditNodeReq.getEMemberList())) {
String[] userIdArr = taskEditNodeReq.getEMemberList().split(",");
List<Long> longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList());
List<SimulationTaskMember> oldEMemberList = simulationTaskMemberService.lambdaQuery()
.eq(SimulationTaskMember::getTaskId, taskEditNodeReq.getUuid())
.eq(SimulationTaskMember::getType, MemberTypeEnum.EXECUTOR.getCode()).list();
if (CollectionUtils.isNotEmpty(oldEMemberList)) {
List<Long> oldEMemberIdList = oldEMemberList.stream().map(SimulationTaskMember::getUserId).collect(Collectors.toList());
// 发送消息通知
@@ -308,13 +323,30 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
}
simulationTaskMemberService.deleteTaskMemberList(taskEditNodeReq.getUuid(), MemberTypeEnum.EXECUTOR.getCode());
simulationTaskMemberService.saveTaskMemberList(taskEditNodeReq.getUuid(), MemberTypeEnum.EXECUTOR.getCode(), longUserIdList);
// 保存当前仿真执行人的所有权限信息
for (Long userId : longUserIdList) {
updatePermission(userId, taskEditNodeReq.getUuid());
}
}
// 删除原来修改仿真负责人的所有权限信息
if (CollectionUtils.isNotEmpty(oldPMemberList)) {
for (SimulationTaskMember simulationTaskMember : oldPMemberList) {
// TODO 待优化成批量处理权限
deletePermission(simulationTaskMember.getUserId(), simulationTaskMember.getTaskId());
}
}
// 修改仿真负责人
if (StringUtils.isNotBlank(taskEditNodeReq.getPMemberList())) {
String[] userIdArr = taskEditNodeReq.getPMemberList().split(",");
List<Long> longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList());
simulationTaskMemberService.deleteTaskMemberList(taskEditNodeReq.getUuid(), MemberTypeEnum.PRINCIPAL.getCode());
simulationTaskMemberService.saveTaskMemberList(taskEditNodeReq.getUuid(), MemberTypeEnum.PRINCIPAL.getCode(), longUserIdList);
// 保存当前仿真负责人的所有权限信息
for (Long userId : longUserIdList) {
updatePermission(userId, taskEditNodeReq.getUuid());
}
}
// 修改仿真关注人
if(StringUtils.isNotBlank(taskEditNodeReq.getPayAttentionMemberList())){
@@ -1752,6 +1784,11 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
}
}
/**
* 添加权限
* @param userId
* @param uuid
*/
private void updatePermission(Long userId,String uuid) {
// 更新文件权限
UpdatePermissionReq updatePermissionReq = new UpdatePermissionReq();
@@ -1765,6 +1802,24 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
log.info("仿真策划时,更新用户权限的返回值为:{}",updatePermissionResponse);
}
/**
* 删除权限
* @param userId
* @param uuid
*/
private void deletePermission(Long userId,String uuid) {
// 删除文件权限
UpdatePermissionReq updatePermissionReq = new UpdatePermissionReq();
updatePermissionReq.setUserId(userId);
updatePermissionReq.setUuid(uuid);
Map<Long, Byte> userPermissions = new HashMap<>();
userPermissions.put(userId, FilePermissionEnum.ZERO.getValue());
updatePermissionReq.setUserPermissions(userPermissions);
log.info("仿真策划时,删除用户权限的参数为:{}",updatePermissionReq);
SdmResponse updatePermissionResponse = dataClientFeignClient.updatePermission(updatePermissionReq);
log.info("仿真策划时,删除用户权限的返回值为:{}",updatePermissionResponse);
}
private SdmResponse newRealAddSimulationTaskItems(TaskNodeTree taskNodeTree, Long tenantId, List<TaskNodeTag> tagList, String ownRootNodeUuid) {
Long userId = ThreadLocalContext.getUserId();
SdmResponse response = SdmResponse.success();