fix:同步待办用户工号转userId
This commit is contained in:
@@ -344,6 +344,18 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
|
|||||||
Map<String, List<LyricVTodoEmulationInfoDM>> projectTodoMap = todoInfoList.stream()
|
Map<String, List<LyricVTodoEmulationInfoDM>> projectTodoMap = todoInfoList.stream()
|
||||||
.collect(Collectors.groupingBy(LyricVTodoEmulationInfoDM::getProject));
|
.collect(Collectors.groupingBy(LyricVTodoEmulationInfoDM::getProject));
|
||||||
|
|
||||||
|
// 将利元亨的用户工号与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 (SimulationNode projectNode : projectNodeList) {
|
for (SimulationNode projectNode : projectNodeList) {
|
||||||
String projectCode = projectNode.getNodeCode();
|
String projectCode = projectNode.getNodeCode();
|
||||||
List<LyricVTodoEmulationInfoDM> projectTodoList = projectTodoMap.getOrDefault(projectCode, Collections.emptyList());
|
List<LyricVTodoEmulationInfoDM> projectTodoList = projectTodoMap.getOrDefault(projectCode, Collections.emptyList());
|
||||||
@@ -355,18 +367,6 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
|
|||||||
BatchCreateDirItem projectCreateItem = buildProjectDirItem(projectNode);
|
BatchCreateDirItem projectCreateItem = buildProjectDirItem(projectNode);
|
||||||
List<DirNodeInfo> demandDirNodeList = new ArrayList<>();
|
List<DirNodeInfo> demandDirNodeList = new ArrayList<>();
|
||||||
|
|
||||||
// 将利元亨的用户工号与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 (LyricVTodoEmulationInfoDM todo : projectTodoList) {
|
for (LyricVTodoEmulationInfoDM todo : projectTodoList) {
|
||||||
try {
|
try {
|
||||||
@@ -379,7 +379,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
|
|||||||
// 3. 构建需求文件夹节点
|
// 3. 构建需求文件夹节点
|
||||||
demandDirNodeList.add(buildDemandDirNode(demandUuid, projectNode, demandReq.getDemandName()));
|
demandDirNodeList.add(buildDemandDirNode(demandUuid, projectNode, demandReq.getDemandName()));
|
||||||
// 4. 异步保存需求数据
|
// 4. 异步保存需求数据
|
||||||
asyncSaveDemandData(demandReq, memberList, tenantId, jobNumber);
|
asyncSaveDemandData(demandReq, memberList, tenantId, jobNumber, usernameToUserIdMap);
|
||||||
|
|
||||||
SimulationDemand demand = new SimulationDemand();
|
SimulationDemand demand = new SimulationDemand();
|
||||||
BeanUtils.copyProperties(demandReq, demand);
|
BeanUtils.copyProperties(demandReq, demand);
|
||||||
@@ -611,22 +611,12 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
|
|||||||
private void asyncSaveDemandData(SpdmAddDemandReq demandReq,
|
private void asyncSaveDemandData(SpdmAddDemandReq demandReq,
|
||||||
List<SpdmDemandRelateMemberReq> memberList,
|
List<SpdmDemandRelateMemberReq> memberList,
|
||||||
Long tenantId,
|
Long tenantId,
|
||||||
Long jobNumber) {
|
Long jobNumber,
|
||||||
|
Map<String, Long> usernameToUserIdMap) {
|
||||||
CompletableFuture.runAsync(() -> {
|
CompletableFuture.runAsync(() -> {
|
||||||
try {
|
try {
|
||||||
demandMapper.addDemand(demandReq, tenantId, jobNumber);
|
demandMapper.addDemand(demandReq, tenantId, jobNumber);
|
||||||
if (CollectionUtils.isNotEmpty(memberList)) {
|
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) {
|
for (SpdmDemandRelateMemberReq member : memberList) {
|
||||||
Long cidUserId = usernameToUserIdMap.get(String.valueOf(member.getUserId()));
|
Long cidUserId = usernameToUserIdMap.get(String.valueOf(member.getUserId()));
|
||||||
if (cidUserId != null) {
|
if (cidUserId != null) {
|
||||||
|
|||||||
@@ -3242,7 +3242,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
|
|||||||
demandDirNodeList.add(demandDirNode);
|
demandDirNodeList.add(demandDirNode);
|
||||||
|
|
||||||
// 4. 异步保存需求和成员信息
|
// 4. 异步保存需求和成员信息
|
||||||
saveDemandAndMembersAsync(demandAddReq, memberList, tenantId, currentUserId);
|
saveDemandAndMembersAsync(demandAddReq, memberList, tenantId, currentUserId, usernameToUserIdMap);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("处理待办事项失败,待办ID:{},错误信息:{}", todoItem.getTodoId(), e.getMessage(), 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,
|
private void saveDemandAndMembersAsync(SpdmAddDemandReq demandAddReq,
|
||||||
List<SpdmDemandRelateMemberReq> memberList,
|
List<SpdmDemandRelateMemberReq> memberList,
|
||||||
Long tenantId,
|
Long tenantId,
|
||||||
Long currentUserId) {
|
Long currentUserId,
|
||||||
|
Map<String, Long> usernameToUserIdMap) {
|
||||||
CompletableFuture.runAsync(() -> {
|
CompletableFuture.runAsync(() -> {
|
||||||
try {
|
try {
|
||||||
ThreadLocalContext.setTenantId(tenantId);
|
ThreadLocalContext.setTenantId(tenantId);
|
||||||
ThreadLocalContext.setUserId(currentUserId);
|
ThreadLocalContext.setUserId(currentUserId);
|
||||||
demandMapper.addDemand(demandAddReq, tenantId, currentUserId);
|
demandMapper.addDemand(demandAddReq, tenantId, currentUserId);
|
||||||
if (CollectionUtils.isNotEmpty(memberList)) {
|
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) {
|
for (SpdmDemandRelateMemberReq member : memberList) {
|
||||||
Long cidUserId = usernameToUserIdMap.get(String.valueOf(member.getUserId()));
|
Long cidUserId = usernameToUserIdMap.get(String.valueOf(member.getUserId()));
|
||||||
if (cidUserId != null) {
|
if (cidUserId != null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user