Merge branch 'main' of http://192.168.65.198:3000/toolchaintechnologycenter/spdm-backend
This commit is contained in:
@@ -1,18 +1,31 @@
|
||||
spring:
|
||||
datasource:
|
||||
# todo 生产地址
|
||||
# 生产地址
|
||||
second:
|
||||
username: EP_DM
|
||||
password: ENC(c04rt9Z6Ygz024EU9eWvig==)
|
||||
jdbc-url: jdbc:mysql://10.122.48.11:13306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
jdbc-url: jdbc:mysql://192.168.30.74:3306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
# todo 第三个数据源,生产ip不一样
|
||||
# 第三个数据源,生产ip不一样
|
||||
third:
|
||||
username: EP_DM
|
||||
password: ENC(c04rt9Z6Ygz024EU9eWvig==)
|
||||
jdbc-url: jdbc:mysql://10.122.48.11:13306/ecn?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
username: ECN_DM
|
||||
password: ENC(YX2p8EZqmCAqqkj3wTRCsw==)
|
||||
jdbc-url: jdbc:mysql://192.168.23.64:3306/ecn?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
||||
## 测试环境
|
||||
# second:
|
||||
# username: EP_DM
|
||||
# password: ENC(c04rt9Z6Ygz024EU9eWvig==)
|
||||
# jdbc-url: jdbc:mysql://10.122.48.11:13306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
# driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
##
|
||||
# third:
|
||||
# username: EP_DM
|
||||
# password: ENC(c04rt9Z6Ygz024EU9eWvig==)
|
||||
# jdbc-url: jdbc:mysql://10.122.48.11:13306/ecn?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
# driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
||||
# 测试开发环境
|
||||
#appKey : 380ad3deb578424c9ca5178383f732c1
|
||||
#appSecret : 805c316f35024b8b9566ca67b4991c42
|
||||
|
||||
@@ -344,17 +344,6 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
|
||||
Map<String, List<LyricVTodoEmulationInfoDM>> projectTodoMap = todoInfoList.stream()
|
||||
.collect(Collectors.groupingBy(LyricVTodoEmulationInfoDM::getProject));
|
||||
|
||||
for (SimulationNode projectNode : projectNodeList) {
|
||||
String projectCode = projectNode.getNodeCode();
|
||||
List<LyricVTodoEmulationInfoDM> projectTodoList = projectTodoMap.getOrDefault(projectCode, Collections.emptyList());
|
||||
if (CollectionUtils.isEmpty(projectTodoList)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 构建项目级文件夹参数
|
||||
BatchCreateDirItem projectCreateItem = buildProjectDirItem(projectNode);
|
||||
List<DirNodeInfo> demandDirNodeList = new ArrayList<>();
|
||||
|
||||
// 将利元亨的用户工号与userId映射
|
||||
Map<String, Long> usernameToUserIdMap = new HashMap<>();
|
||||
UserListReq userListReq = new UserListReq();
|
||||
@@ -367,6 +356,17 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
|
||||
usernameToUserIdMap = userList.stream().collect(Collectors.toMap(CIDUserResp::getUsername, CIDUserResp::getUserId));
|
||||
}
|
||||
|
||||
for (SimulationNode projectNode : projectNodeList) {
|
||||
String projectCode = projectNode.getNodeCode();
|
||||
List<LyricVTodoEmulationInfoDM> projectTodoList = projectTodoMap.getOrDefault(projectCode, Collections.emptyList());
|
||||
if (CollectionUtils.isEmpty(projectTodoList)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 构建项目级文件夹参数
|
||||
BatchCreateDirItem projectCreateItem = buildProjectDirItem(projectNode);
|
||||
List<DirNodeInfo> demandDirNodeList = new ArrayList<>();
|
||||
|
||||
// 处理当前项目下的所有待办
|
||||
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<SpdmDemandRelateMemberReq> memberList,
|
||||
Long tenantId,
|
||||
Long jobNumber) {
|
||||
Long jobNumber,
|
||||
Map<String, Long> usernameToUserIdMap) {
|
||||
CompletableFuture.runAsync(() -> {
|
||||
try {
|
||||
demandMapper.addDemand(demandReq, tenantId, jobNumber);
|
||||
if (CollectionUtils.isNotEmpty(memberList)) {
|
||||
// 将利元亨的用户工号与userId映射
|
||||
Map<String, Long> usernameToUserIdMap = new HashMap<>();
|
||||
UserListReq userListReq = new UserListReq();
|
||||
userListReq.setTenantId(tenantId);
|
||||
userListReq.setCurrent(1);
|
||||
userListReq.setSize(9999);
|
||||
SdmResponse<PageDataResp<List<CIDUserResp>>> pageDataRespSdmResponse = sysUserFeignClient.listUser(userListReq);
|
||||
if (pageDataRespSdmResponse.isSuccess() && pageDataRespSdmResponse.getData().getData() != null) {
|
||||
List<CIDUserResp> 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) {
|
||||
|
||||
@@ -3242,7 +3242,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
demandDirNodeList.add(demandDirNode);
|
||||
|
||||
// 4. 异步保存需求和成员信息
|
||||
saveDemandAndMembersAsync(demandAddReq, memberList, tenantId, currentUserId);
|
||||
saveDemandAndMembersAsync(demandAddReq, memberList, tenantId, currentUserId, usernameToUserIdMap);
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("处理待办事项失败,待办ID:{},错误信息:{}", todoItem.getTodoId(), e.getMessage(), e);
|
||||
@@ -3432,24 +3432,14 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
||||
private void saveDemandAndMembersAsync(SpdmAddDemandReq demandAddReq,
|
||||
List<SpdmDemandRelateMemberReq> memberList,
|
||||
Long tenantId,
|
||||
Long currentUserId) {
|
||||
Long currentUserId,
|
||||
Map<String, Long> usernameToUserIdMap) {
|
||||
CompletableFuture.runAsync(() -> {
|
||||
try {
|
||||
ThreadLocalContext.setTenantId(tenantId);
|
||||
ThreadLocalContext.setUserId(currentUserId);
|
||||
demandMapper.addDemand(demandAddReq, tenantId, currentUserId);
|
||||
if (CollectionUtils.isNotEmpty(memberList)) {
|
||||
// 将利元亨的用户工号与userId映射
|
||||
Map<String, Long> usernameToUserIdMap = new HashMap<>();
|
||||
UserListReq userListReq = new UserListReq();
|
||||
userListReq.setTenantId(tenantId);
|
||||
userListReq.setCurrent(1);
|
||||
userListReq.setSize(9999);
|
||||
SdmResponse<PageDataResp<List<CIDUserResp>>> pageDataRespSdmResponse = sysUserFeignClient.listUser(userListReq);
|
||||
if (pageDataRespSdmResponse.isSuccess() && pageDataRespSdmResponse.getData().getData() != null) {
|
||||
List<CIDUserResp> 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) {
|
||||
|
||||
Reference in New Issue
Block a user