1、优化查询任务列表

This commit is contained in:
2026-03-14 15:58:39 +08:00
parent bb68483d82
commit 55f146d8e6

View File

@@ -785,7 +785,8 @@ public class TaskServiceImpl implements ITaskService {
String demandId,
Map<String, SpdmDemandVo> demandMap,
Map<String, Long> demandSubmitMap,
Map<String, Long> usernameToUserIdMap) {
Map<String, Long> usernameToUserIdMap,
Map<Long, String> userIdToNickNameMap) {
if (StringUtils.isBlank(demandId)) {
// 提出人:需求的创建人没有就取任务的创建人
// 之前同步创建的需求、任务时,创建人用的工号,这里先兼容处理下
@@ -797,12 +798,9 @@ public class TaskServiceImpl implements ITaskService {
}else {
userId = creator;
}
newTaskVo.setSubmitter(userId);
SdmResponse<CIDUserResp> userResp = sysUserFeignClient.queryUserDetail(
UserQueryReq.builder().userId(userId).build()
);
if (ObjectUtils.isNotEmpty(userResp) && ObjectUtils.isNotEmpty(userResp.getData())) {
newTaskVo.setSubmitterName(userResp.getData().getNickname());
if (ObjectUtils.isNotEmpty(userId)) {
newTaskVo.setSubmitter(userId);
newTaskVo.setSubmitterName(userIdToNickNameMap.get(userId));
}
return;
}
@@ -821,11 +819,9 @@ public class TaskServiceImpl implements ITaskService {
}else {
userId = submitterId;
}
SdmResponse<CIDUserResp> userResp = sysUserFeignClient.queryUserDetail(
UserQueryReq.builder().userId(userId).build()
);
if (ObjectUtils.isNotEmpty(userResp) && ObjectUtils.isNotEmpty(userResp.getData())) {
newTaskVo.setSubmitterName(userResp.getData().getNickname());
if (ObjectUtils.isNotEmpty(userId)) {
newTaskVo.setSubmitter(userId);
newTaskVo.setSubmitterName(userIdToNickNameMap.get(userId));
}
} else {
// 提出人:需求的创建人没有就取任务的创建人
@@ -837,12 +833,9 @@ public class TaskServiceImpl implements ITaskService {
}else {
userId = creator;
}
newTaskVo.setSubmitter(userId);
SdmResponse<CIDUserResp> userResp = sysUserFeignClient.queryUserDetail(
UserQueryReq.builder().userId(userId).build()
);
if (ObjectUtils.isNotEmpty(userResp) && ObjectUtils.isNotEmpty(userResp.getData())) {
newTaskVo.setSubmitterName(userResp.getData().getNickname());
if (ObjectUtils.isNotEmpty(userId)) {
newTaskVo.setSubmitter(userId);
newTaskVo.setSubmitterName(userIdToNickNameMap.get(userId));
}
}
}
@@ -852,7 +845,7 @@ public class TaskServiceImpl implements ITaskService {
/**
* 批量转换为返回VO
*/
private List<SpdmNewTaskVo> convertToNewVoBatch(List<SpdmTaskVo> taskList, BatchAssociatedData batchData,Map<String, Long> usernameToUserIdMap) {
private List<SpdmNewTaskVo> convertToNewVoBatch(List<SpdmTaskVo> taskList, BatchAssociatedData batchData,Map<String, Long> usernameToUserIdMap,Map<Long, String> userIdToNickNameMap) {
// 空值安全处理,直接返回空集合
if (CollectionUtils.isEmpty(taskList)) {
return new ArrayList<>();
@@ -903,7 +896,7 @@ public class TaskServiceImpl implements ITaskService {
setTaskMemberInfo(newTaskVo, taskMemberMap.get(taskId), cidUserMap);
// 5. 设置需求相关信息(提出人/提出人名称)
setDemandRelatedInfo(newTaskVo, taskVo.getDemandId(), demandMap, demandSubmitMap,usernameToUserIdMap);
setDemandRelatedInfo(newTaskVo, taskVo.getDemandId(), demandMap, demandSubmitMap,usernameToUserIdMap,userIdToNickNameMap);
// 6. 设置工位号信息
setWorkSpaceNodeCode(newTaskVo, taskVo, workSpaceNodeMap, taskNodeTag);
@@ -1079,6 +1072,7 @@ public class TaskServiceImpl implements ITaskService {
stopWatch.start("转换为返回VO");
// 将利元亨的用户工号与userId映射
Map<String, Long> usernameToUserIdMap = new HashMap<>();
Map<Long, String> userIdToNickNameMap = new HashMap<>();
UserListReq userListReq = new UserListReq();
userListReq.setTenantId(tenantId);
userListReq.setCurrent(1);
@@ -1087,8 +1081,9 @@ public class TaskServiceImpl implements ITaskService {
if (pageDataRespSdmResponse.isSuccess() && pageDataRespSdmResponse.getData().getData() != null) {
List<CIDUserResp> userList = pageDataRespSdmResponse.getData().getData();
usernameToUserIdMap = userList.stream().collect(Collectors.toMap(CIDUserResp::getUsername, CIDUserResp::getUserId));
userIdToNickNameMap = userList.stream().collect(Collectors.toMap(CIDUserResp::getUserId,CIDUserResp::getNickname));
}
List<SpdmNewTaskVo> newTaskList = convertToNewVoBatch(pageTaskList, batchData,usernameToUserIdMap);
List<SpdmNewTaskVo> newTaskList = convertToNewVoBatch(pageTaskList, batchData,usernameToUserIdMap,userIdToNickNameMap);
stopWatch.stop();
// 输出计时结果(两种方式:格式化打印/自定义输出)
System.out.println("===== 格式化打印所有任务耗时(推荐日志输出) =====");