Merge branch 'main' of http://192.168.65.198:3000/toolchaintechnologycenter/spdm-backend
This commit is contained in:
@@ -203,6 +203,10 @@ public class ProcessController implements IFlowableFeignClient {
|
||||
/**
|
||||
* 流程节点继续执行(完成人工节点/或者等待用户输入后继续手动执行的节点)
|
||||
*
|
||||
* 完成 UserTask 并继续
|
||||
* ServiceTask 前置人工节点 serviceTask _waitUser 在 ServiceTask 前插入的等待用户确认的 UserTask(Manual 模式)
|
||||
* 普通人工任务 userTask 原始 UserTask BPMN 中原本的 UserTask
|
||||
*
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@@ -214,6 +218,13 @@ public class ProcessController implements IFlowableFeignClient {
|
||||
|
||||
/**
|
||||
* 异步任务回调接口,用于唤醒等待的流程实例
|
||||
* 唤醒 ReceiveTask 并继续
|
||||
* 触发的是 ReceiveTask(_wait 节点),通过 runtimeService.trigger() 继续流转
|
||||
*
|
||||
* 适用场景 节点类型 说明
|
||||
* HPC 异步计算 ReceiveTask _wait HPC 提交任务后,流程停在 _wait,等待 HPC 回调
|
||||
* 本地应用 ReceiveTask _wait 本地应用提交后,流程停在 _wait,等待本地应用回调
|
||||
* 其他异步任务 ReceiveTask _wait 流程停在 _wait,由外部系统通过 asyncTaskId 回调
|
||||
*
|
||||
* @param request 包含异步任务ID和执行结果的请求对象
|
||||
*/
|
||||
|
||||
@@ -152,6 +152,6 @@ public class SpdmAddDemandReq extends BaseEntity {
|
||||
/**
|
||||
* 是否为绿元亨项目
|
||||
*/
|
||||
private boolean isLyric=false;
|
||||
private Boolean isLyric=false;
|
||||
|
||||
}
|
||||
|
||||
@@ -234,7 +234,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
log.info("创建需求时,更新需求创建人和需求仿真负责人(确认人)权限的返回值为:{}",updatePermissionResponse);
|
||||
|
||||
// 只有绿元亨需要在创建需求的同时创建任务
|
||||
if (req.isLyric()) {
|
||||
if (req.getIsLyric()) {
|
||||
SimulationDemand demand = new SimulationDemand();
|
||||
BeanUtils.copyProperties(req, demand);
|
||||
simulationTaskService.batchCreateTaskFromDemand(Collections.singletonList(demand));
|
||||
@@ -660,6 +660,11 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
String parentUuid = getLastNodeId(taskNodeList.get(0));
|
||||
log.info("下发任务时,parentId为:{}", parentUuid);
|
||||
String demandId = req.getDemandId();
|
||||
// 关联的需求
|
||||
SpdmDemandVo demand = mapper.getDemandListById(Collections.singletonList(demandId)).get(0);
|
||||
Long demandCreator = demand.getCreator();
|
||||
List<BatchUpdatePermissionReq.FilePermissionItem> filePermissions = new ArrayList<>();
|
||||
|
||||
List<TaskMemberNode> projectNodeMemberList = new ArrayList<>();
|
||||
List<TaskExtraNode> projectNodeExtraList = new ArrayList<>();
|
||||
List<TaskNode> allPerformanceList = new ArrayList<>();
|
||||
@@ -683,14 +688,21 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
taskMemberNode.setUserId(userId);
|
||||
taskMemberNode.setType(MemberTypeEnum.PRINCIPAL.getCode());
|
||||
projectNodeMemberList.add(taskMemberNode);
|
||||
// 更新文件权限
|
||||
UpdatePermissionReq updatePermissionReq = new UpdatePermissionReq();
|
||||
updatePermissionReq.setUserId(Long.valueOf(userId));
|
||||
updatePermissionReq.setUuid(task.getUuid());
|
||||
// 更新需求负责人对需求文件权限
|
||||
BatchUpdatePermissionReq.FilePermissionItem item = new BatchUpdatePermissionReq.FilePermissionItem();
|
||||
item.setUuid(task.getUuid());
|
||||
Map<Long, Byte> userPermissions = new HashMap<>();
|
||||
userPermissions.put(jobNumber, FilePermissionEnum.ALL.getValue());
|
||||
updatePermissionReq.setUserPermissions(userPermissions);
|
||||
SdmResponse updatePermissionResponse = dataFeignClient.updatePermission(updatePermissionReq);
|
||||
userPermissions.put(Long.valueOf(userId), FilePermissionEnum.ALL.getValue());
|
||||
item.setUserPermissions(userPermissions);
|
||||
filePermissions.add(item);
|
||||
|
||||
// 更新需求负责人对任务文件夹的权限
|
||||
BatchUpdatePermissionReq.FilePermissionItem demandItem = new BatchUpdatePermissionReq.FilePermissionItem();
|
||||
demandItem.setUuid(task.getUuid());
|
||||
Map<Long, Byte> demandUserPermissions = new HashMap<>();
|
||||
demandUserPermissions.put(demandCreator, FilePermissionEnum.BASE.getValue());
|
||||
demandItem.setUserPermissions(demandUserPermissions);
|
||||
filePermissions.add(demandItem);
|
||||
}
|
||||
}
|
||||
if (StringUtils.isNotBlank(eUserIdStr)) {
|
||||
@@ -704,16 +716,13 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
projectNodeMemberList.add(taskMemberNode);
|
||||
// 发送消息通知
|
||||
sendMessage(MessageTemplateEnum.TASK_ISSUE, task.getNodeName(), userId, task.getUuid());
|
||||
// 更新文件权限
|
||||
UpdatePermissionReq updatePermissionReq = new UpdatePermissionReq();
|
||||
updatePermissionReq.setUserId(Long.valueOf(userId));
|
||||
updatePermissionReq.setUuid(task.getUuid());
|
||||
// 更新需求执行人对需求文件权限
|
||||
BatchUpdatePermissionReq.FilePermissionItem item = new BatchUpdatePermissionReq.FilePermissionItem();
|
||||
item.setUuid(task.getUuid());
|
||||
Map<Long, Byte> userPermissions = new HashMap<>();
|
||||
userPermissions.put(jobNumber, FilePermissionEnum.ALL.getValue());
|
||||
updatePermissionReq.setUserPermissions(userPermissions);
|
||||
log.info("下发任务时,更新用户权限的参数为:{}",updatePermissionReq);
|
||||
SdmResponse updatePermissionResponse = dataFeignClient.updatePermission(updatePermissionReq);
|
||||
log.info("下发任务时,更新用户权限的返回值为:{}",updatePermissionResponse);
|
||||
userPermissions.put(Long.valueOf(userId), FilePermissionEnum.ALL.getValue());
|
||||
item.setUserPermissions(userPermissions);
|
||||
filePermissions.add(item);
|
||||
}
|
||||
}
|
||||
List<TaskExtraNode> extraList = task.getExtras();
|
||||
@@ -785,16 +794,21 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
createDir(taskNode.getUuid(), parentUuid, taskNode.getNodeName());
|
||||
}
|
||||
for (TaskNode taskNode : taskNodeList) {
|
||||
// 更新文件权限
|
||||
UpdatePermissionReq updatePermissionReq = new UpdatePermissionReq();
|
||||
updatePermissionReq.setUserId(jobNumber);
|
||||
updatePermissionReq.setUuid(taskNode.getUuid());
|
||||
// 更新需求创建人对需求文件夹权限
|
||||
BatchUpdatePermissionReq.FilePermissionItem item = new BatchUpdatePermissionReq.FilePermissionItem();
|
||||
item.setUuid(taskNode.getUuid());
|
||||
Map<Long, Byte> userPermissions = new HashMap<>();
|
||||
userPermissions.put(jobNumber, FilePermissionEnum.ALL.getValue());
|
||||
updatePermissionReq.setUserPermissions(userPermissions);
|
||||
log.info("下发任务时,更新用户权限的参数为:{}",updatePermissionReq);
|
||||
SdmResponse updatePermissionResponse = dataFeignClient.updatePermission(updatePermissionReq);
|
||||
log.info("下发任务时,更新用户权限的返回值为:{}",updatePermissionResponse);
|
||||
item.setUserPermissions(userPermissions);
|
||||
filePermissions.add(item);
|
||||
|
||||
// 更新需求创建人对任务文件夹的权限
|
||||
BatchUpdatePermissionReq.FilePermissionItem demandItem = new BatchUpdatePermissionReq.FilePermissionItem();
|
||||
demandItem.setUuid(taskNode.getUuid());
|
||||
Map<Long, Byte> demandUserPermissions = new HashMap<>();
|
||||
demandUserPermissions.put(demandCreator, FilePermissionEnum.BASE.getValue());
|
||||
demandItem.setUserPermissions(demandUserPermissions);
|
||||
filePermissions.add(demandItem);
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(projectNodeExtraList)) {
|
||||
@@ -819,15 +833,13 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
return response;
|
||||
}
|
||||
for (TaskNode taskNode : allPerformanceList) {
|
||||
UpdatePermissionReq updatePermissionReq = new UpdatePermissionReq();
|
||||
updatePermissionReq.setUserId(jobNumber);
|
||||
updatePermissionReq.setUuid(taskNode.getUuid());
|
||||
// 更新文件权限
|
||||
BatchUpdatePermissionReq.FilePermissionItem item = new BatchUpdatePermissionReq.FilePermissionItem();
|
||||
item.setUuid(taskNode.getUuid());
|
||||
Map<Long, Byte> userPermissions = new HashMap<>();
|
||||
userPermissions.put(jobNumber, FilePermissionEnum.ALL.getValue());
|
||||
updatePermissionReq.setUserPermissions(userPermissions);
|
||||
log.info("下发任务时,更新用户权限的参数为:{}",updatePermissionReq);
|
||||
SdmResponse updatePermissionResponse = dataFeignClient.updatePermission(updatePermissionReq);
|
||||
log.info("下发任务时,更新用户权限的返回值为:{}",updatePermissionResponse);
|
||||
userPermissions.put(Long.valueOf(jobNumber), FilePermissionEnum.ALL.getValue());
|
||||
item.setUserPermissions(userPermissions);
|
||||
filePermissions.add(item);
|
||||
}
|
||||
|
||||
List<TaskNodePo> newTaskNodeList = projectMapper.getTaskListByNodeIdList(allPerformanceList.stream().map(TaskNode::getTaskId).toList());
|
||||
@@ -863,6 +875,20 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
|
||||
return response;
|
||||
}
|
||||
}
|
||||
// 执行批量更新权限
|
||||
if (CollectionUtils.isNotEmpty(filePermissions)) {
|
||||
BatchUpdatePermissionReq batchReq = new BatchUpdatePermissionReq();
|
||||
batchReq.setFilePermissions(filePermissions);
|
||||
|
||||
log.info("从需求分发任务时,批量更新权限,任务数量:{}", filePermissions.size());
|
||||
SdmResponse response1 = dataFeignClient.batchUpdatePermission(batchReq);
|
||||
log.info("从需求分发任务时,批量更新权限结果:{}", response1);
|
||||
|
||||
if (!response1.isSuccess()) {
|
||||
log.error("批量更新任务权限失败:{}", response1.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return response;
|
||||
|
||||
@@ -165,6 +165,7 @@ public class SimulationTaskServiceImpl extends ServiceImpl<SimulationTaskMapper,
|
||||
List<Long> longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList());
|
||||
simulationTaskMemberService.deleteTaskMemberList(req.getUuid(), MemberTypeEnum.EXECUTOR.getCode());
|
||||
simulationTaskMemberService.saveTaskMemberList(req.getUuid(), MemberTypeEnum.EXECUTOR.getCode(), longUserIdList);
|
||||
// 对关联的需求文件夹设置权限
|
||||
}
|
||||
// 设置仿真负责人
|
||||
if (StringUtils.isNotBlank(req.getPMemberList())) {
|
||||
@@ -189,13 +190,43 @@ public class SimulationTaskServiceImpl extends ServiceImpl<SimulationTaskMapper,
|
||||
|
||||
Map<String, String> tagMap = tagMapService.getTagMapName();
|
||||
|
||||
List<BatchUpdatePermissionReq.FilePermissionItem> filePermissionItemList = new ArrayList<>();
|
||||
for (SimulationDemand demand : demandList) {
|
||||
SimulationTask task = convertDemandToTask(demand, tagMap);
|
||||
// 任务挂载在workspace工位节点下,需要从task的tag中获取workspaceId
|
||||
String workspaceId = getWorkspaceIdFromTask(task, tagMap);
|
||||
task.setNodeId(workspaceId);
|
||||
tasksToCreate.add(task);
|
||||
|
||||
taskExtrasToCreate.addAll(createTaskExtras(demand, task.getUuid()));
|
||||
taskMembersToCreate.addAll(createTaskMembers(demand, task.getUuid()));
|
||||
taskAttentionsToCreate.addAll(createTaskAttentions(demand, task.getUuid()));
|
||||
|
||||
// 任务对应需求
|
||||
// 1.需求创建人对关联的任务文件夹有预览、下载权限
|
||||
// 2.需求负责人(仿真负责人、确认人)对关联的任务文件夹有预览、下载权限
|
||||
// 但是目前任务负责人就是从需求负责人继承的,权限也会继承
|
||||
// 构建单个任务的权限配置
|
||||
BatchUpdatePermissionReq.FilePermissionItem item = new BatchUpdatePermissionReq.FilePermissionItem();
|
||||
item.setUuid(task.getUuid());
|
||||
|
||||
Map<Long, Byte> userPermissions = new HashMap<>();
|
||||
userPermissions.put(demand.getCreator(), FilePermissionEnum.BASE.getValue());
|
||||
item.setUserPermissions(userPermissions);
|
||||
filePermissionItemList.add(item);
|
||||
}
|
||||
// 批量更新需求创建人对任务文件夹的权限
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
||||
// 批量保存任务主表、扩展表、成员表、关注表
|
||||
|
||||
@@ -709,6 +709,15 @@ public class TaskServiceImpl implements ITaskService {
|
||||
if (ObjectUtils.isNotEmpty(userResp) && ObjectUtils.isNotEmpty(userResp.getData())) {
|
||||
newTaskVo.setSubmitterName(userResp.getData().getNickname());
|
||||
}
|
||||
} else {
|
||||
// 提出人:需求的创建人没有就取任务的创建人
|
||||
newTaskVo.setSubmitter(newTaskVo.getCreator());
|
||||
SdmResponse<CIDUserResp> userResp = sysUserFeignClient.queryUserDetail(
|
||||
UserQueryReq.builder().userId(newTaskVo.getCreator()).build()
|
||||
);
|
||||
if (ObjectUtils.isNotEmpty(userResp) && ObjectUtils.isNotEmpty(userResp.getData())) {
|
||||
newTaskVo.setSubmitterName(userResp.getData().getNickname());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1352,6 +1361,7 @@ public class TaskServiceImpl implements ITaskService {
|
||||
for (Long currentUserId : currentUserIdList) {
|
||||
updatePermission(currentUserId,taskId);
|
||||
}
|
||||
// 对关联的需求文件夹设置权限
|
||||
|
||||
|
||||
// if (StringUtils.isNotBlank(req.getEMemberList())) {
|
||||
|
||||
Reference in New Issue
Block a user