diff --git a/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java index c6e2400f..7a7b96c0 100644 --- a/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/DemandServiceImpl.java @@ -495,6 +495,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService { BeanUtils.copyProperties(task,tagReq); if (NodeTypeEnum.TASK.getValue().equals(uuidOwnType)) { tagReq.setTaskId(uuid); + tagReq.setTaskName(task.getTaskName()); } createDirReq.setTagReq(tagReq); log.info("修改需求同步修改任务时调用创建文件夹的参数为:{}", createDirReq); diff --git a/project/src/main/java/com/sdm/project/service/impl/SimulationTaskServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/SimulationTaskServiceImpl.java index 1ff0d10e..11fff2e6 100644 --- a/project/src/main/java/com/sdm/project/service/impl/SimulationTaskServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/SimulationTaskServiceImpl.java @@ -8,9 +8,7 @@ import com.sdm.common.common.ThreadLocalContext; import com.sdm.common.entity.enums.DirTypeEnum; import com.sdm.common.entity.enums.FilePermissionEnum; import com.sdm.common.entity.enums.NodeTypeEnum; -import com.sdm.common.entity.req.data.BatchUpdatePermissionReq; -import com.sdm.common.entity.req.data.CreateDirReq; -import com.sdm.common.entity.req.data.UpdatePermissionReq; +import com.sdm.common.entity.req.data.*; import com.sdm.common.feign.inter.data.IDataFeignClient; import com.sdm.common.utils.RandomUtil; import com.sdm.project.common.MemberTypeEnum; @@ -152,12 +150,43 @@ public class SimulationTaskServiceImpl extends ServiceImpl filePermissionItemList = new ArrayList<>(); for (SimulationDemand demand : demandList) { SimulationTask task = convertDemandToTask(demand, tagMap); + String workspaceId = getWorkspaceIdFromTask(task, tagMap); + if (StringUtils.isNotBlank(workspaceId)) { + task.setNodeId(workspaceId); + // 任务对应需求 + // 1.需求创建人对关联的任务文件夹有预览、下载权限 + // 2.需求负责人(仿真负责人、确认人)对关联的任务文件夹有预览、下载权限 + // 但是目前任务负责人就是从需求负责人继承的,权限也会继承 + // 构建单个任务的权限配置(仅当需求创建人不为空时) + if (demand.getCreator() != null) { + BatchUpdatePermissionReq.FilePermissionItem item = new BatchUpdatePermissionReq.FilePermissionItem(); + item.setUuid(task.getUuid()); + Map userPermissions = new HashMap<>(); + userPermissions.put(demand.getCreator(), FilePermissionEnum.BASE.getValue()); + item.setUserPermissions(userPermissions); + filePermissionItemList.add(item); + } else { + log.warn("需求创建人为空,跳过任务权限配置,需求ID: {}, 任务UUID: {}", demand.getUuid(), task.getUuid()); + } + } tasksToCreate.add(task); taskExtrasToCreate.addAll(createTaskExtras(demand, task.getUuid())); taskMembersToCreate.addAll(createTaskMembers(demand, task.getUuid())); taskAttentionsToCreate.addAll(createTaskAttentions(demand, task.getUuid())); } + // 批量更新需求创建人对任务文件夹的权限 + if (CollectionUtils.isNotEmpty(filePermissionItemList)) { + BatchUpdatePermissionReq batchReq = new BatchUpdatePermissionReq(); + batchReq.setFilePermissions(filePermissionItemList); + log.info("从需求批量创建任务时,批量更新需求创建人对任务文件夹的权限,任务数量:{}", filePermissionItemList.size()); + SdmResponse response = dataFeignClient.batchUpdatePermission(batchReq); + log.info("从需求批量创建任务时,批量更新需求创建人对任务文件夹的权限结果:{}", response); + if (!response.isSuccess()) { + log.error("批量更新任务权限失败:{}", response.getMessage()); + } + } + // 批量保存任务主表、扩展表、成员表、关注表 // this.saveBatch(tasksToCreate); this.baseMapper.saveBatchTask(tasksToCreate); @@ -176,6 +205,22 @@ public class SimulationTaskServiceImpl extends ServiceImpl tagMap) { @@ -327,7 +372,7 @@ public class SimulationTaskServiceImpl extends ServiceImpl