diff --git a/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java index df1fabe4..f25c35b6 100644 --- a/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java @@ -344,6 +344,18 @@ public class LyricInternalServiceImpl implements ILyricInternalService { Map> projectTodoMap = todoInfoList.stream() .collect(Collectors.groupingBy(LyricVTodoEmulationInfoDM::getProject)); + // 将利元亨的用户工号与userId映射 + Map usernameToUserIdMap = new HashMap<>(); + UserListReq userListReq = new UserListReq(); + userListReq.setTenantId(tenantId); + userListReq.setCurrent(1); + userListReq.setSize(9999); + SdmResponse>> pageDataRespSdmResponse = sysUserFeignClient.listUser(userListReq); + if (pageDataRespSdmResponse.isSuccess() && pageDataRespSdmResponse.getData().getData() != null) { + List userList = pageDataRespSdmResponse.getData().getData(); + usernameToUserIdMap = userList.stream().collect(Collectors.toMap(CIDUserResp::getUsername, CIDUserResp::getUserId)); + } + for (SimulationNode projectNode : projectNodeList) { String projectCode = projectNode.getNodeCode(); List projectTodoList = projectTodoMap.getOrDefault(projectCode, Collections.emptyList()); @@ -355,18 +367,6 @@ public class LyricInternalServiceImpl implements ILyricInternalService { BatchCreateDirItem projectCreateItem = buildProjectDirItem(projectNode); List demandDirNodeList = new ArrayList<>(); - // 将利元亨的用户工号与userId映射 - Map usernameToUserIdMap = new HashMap<>(); - UserListReq userListReq = new UserListReq(); - userListReq.setTenantId(tenantId); - userListReq.setCurrent(1); - userListReq.setSize(9999); - SdmResponse>> pageDataRespSdmResponse = sysUserFeignClient.listUser(userListReq); - if (pageDataRespSdmResponse.isSuccess() && pageDataRespSdmResponse.getData().getData() != null) { - List userList = pageDataRespSdmResponse.getData().getData(); - usernameToUserIdMap = userList.stream().collect(Collectors.toMap(CIDUserResp::getUsername, CIDUserResp::getUserId)); - } - // 处理当前项目下的所有待办 for (LyricVTodoEmulationInfoDM todo : projectTodoList) { try { @@ -379,7 +379,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService { // 3. 构建需求文件夹节点 demandDirNodeList.add(buildDemandDirNode(demandUuid, projectNode, demandReq.getDemandName())); // 4. 异步保存需求数据 - asyncSaveDemandData(demandReq, memberList, tenantId, jobNumber); + asyncSaveDemandData(demandReq, memberList, tenantId, jobNumber, usernameToUserIdMap); SimulationDemand demand = new SimulationDemand(); BeanUtils.copyProperties(demandReq, demand); @@ -611,22 +611,12 @@ public class LyricInternalServiceImpl implements ILyricInternalService { private void asyncSaveDemandData(SpdmAddDemandReq demandReq, List memberList, Long tenantId, - Long jobNumber) { + Long jobNumber, + Map usernameToUserIdMap) { CompletableFuture.runAsync(() -> { try { demandMapper.addDemand(demandReq, tenantId, jobNumber); if (CollectionUtils.isNotEmpty(memberList)) { - // 将利元亨的用户工号与userId映射 - Map usernameToUserIdMap = new HashMap<>(); - UserListReq userListReq = new UserListReq(); - userListReq.setTenantId(tenantId); - userListReq.setCurrent(1); - userListReq.setSize(9999); - SdmResponse>> pageDataRespSdmResponse = sysUserFeignClient.listUser(userListReq); - if (pageDataRespSdmResponse.isSuccess() && pageDataRespSdmResponse.getData().getData() != null) { - List userList = pageDataRespSdmResponse.getData().getData(); - usernameToUserIdMap = userList.stream().collect(Collectors.toMap(CIDUserResp::getUsername, CIDUserResp::getUserId)); - } for (SpdmDemandRelateMemberReq member : memberList) { Long cidUserId = usernameToUserIdMap.get(String.valueOf(member.getUserId())); if (cidUserId != null) { diff --git a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java index 5ae30101..85f7cdd9 100644 --- a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java @@ -3242,7 +3242,7 @@ public class NodeServiceImpl extends ServiceImpl memberList, Long tenantId, - Long currentUserId) { + Long currentUserId, + Map usernameToUserIdMap) { CompletableFuture.runAsync(() -> { try { ThreadLocalContext.setTenantId(tenantId); ThreadLocalContext.setUserId(currentUserId); demandMapper.addDemand(demandAddReq, tenantId, currentUserId); if (CollectionUtils.isNotEmpty(memberList)) { - // 将利元亨的用户工号与userId映射 - Map usernameToUserIdMap = new HashMap<>(); - UserListReq userListReq = new UserListReq(); - userListReq.setTenantId(tenantId); - userListReq.setCurrent(1); - userListReq.setSize(9999); - SdmResponse>> pageDataRespSdmResponse = sysUserFeignClient.listUser(userListReq); - if (pageDataRespSdmResponse.isSuccess() && pageDataRespSdmResponse.getData().getData() != null) { - List userList = pageDataRespSdmResponse.getData().getData(); - usernameToUserIdMap = userList.stream().collect(Collectors.toMap(CIDUserResp::getUsername, CIDUserResp::getUserId)); - } for (SpdmDemandRelateMemberReq member : memberList) { Long cidUserId = usernameToUserIdMap.get(String.valueOf(member.getUserId())); if (cidUserId != null) {