From 5333d9473f4fe9aee7e704977951134ee1ea7caa Mon Sep 17 00:00:00 2001 From: lidongyang <506508008@qq.com> Date: Wed, 18 Mar 2026 14:28:26 +0800 Subject: [PATCH] =?UTF-8?q?fix[project]:=20=E6=95=B0=E6=8D=AE=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=EF=BC=88=E4=BB=BB=E5=8A=A1=E3=80=81=E7=AE=97=E4=BE=8B?= =?UTF-8?q?=E3=80=81=E6=8C=87=E6=A0=87=EF=BC=89=E5=92=8C=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=94=AF=E6=8C=81=E6=A0=B9=E6=8D=AE=E5=AD=A6?= =?UTF-8?q?=E7=A7=91=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sdm/project/dao/SimulationTaskMapper.java | 2 +- .../model/req/SpdmAnalysisTaskListReq.java | 2 + .../project/model/req/SpdmTaskListReq.java | 2 +- .../project/service/impl/TaskServiceImpl.java | 294 +++++++++--------- .../resources/mapper/SimulationTaskMapper.xml | 14 +- 5 files changed, 160 insertions(+), 154 deletions(-) diff --git a/project/src/main/java/com/sdm/project/dao/SimulationTaskMapper.java b/project/src/main/java/com/sdm/project/dao/SimulationTaskMapper.java index e105d5c7..a5d8571d 100644 --- a/project/src/main/java/com/sdm/project/dao/SimulationTaskMapper.java +++ b/project/src/main/java/com/sdm/project/dao/SimulationTaskMapper.java @@ -61,7 +61,7 @@ public interface SimulationTaskMapper extends BaseMapper { List getTaskListByDemandId(@Param("demandId") String demandId); - List getAnalysisTask(@Param("taskNodeId") String taskNodeId); + List getAnalysisTask(@Param("taskNodeId") String taskNodeId,@Param("ownDisciplineName") String ownDisciplineName); List getTaskListByIdList(@Param("taskIdList") List taskIdList); diff --git a/project/src/main/java/com/sdm/project/model/req/SpdmAnalysisTaskListReq.java b/project/src/main/java/com/sdm/project/model/req/SpdmAnalysisTaskListReq.java index db4e1bff..b195aaf4 100644 --- a/project/src/main/java/com/sdm/project/model/req/SpdmAnalysisTaskListReq.java +++ b/project/src/main/java/com/sdm/project/model/req/SpdmAnalysisTaskListReq.java @@ -151,6 +151,8 @@ public class SpdmAnalysisTaskListReq extends BaseEntity { private String discipline; + private String ownDisciplineName; + private String reportTemplate; private String reportContent; diff --git a/project/src/main/java/com/sdm/project/model/req/SpdmTaskListReq.java b/project/src/main/java/com/sdm/project/model/req/SpdmTaskListReq.java index b56b93a6..a1ebe35b 100644 --- a/project/src/main/java/com/sdm/project/model/req/SpdmTaskListReq.java +++ b/project/src/main/java/com/sdm/project/model/req/SpdmTaskListReq.java @@ -153,7 +153,7 @@ public class SpdmTaskListReq { private List filterDiscipline; // 二次查询过滤学科 - private String discipline; + private String ownDisciplineName; private String taskId; diff --git a/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java index 60a7932e..babc1b40 100644 --- a/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java @@ -1178,8 +1178,8 @@ public class TaskServiceImpl implements ITaskService { StopWatch stopWatch = new StopWatch("所有任务方法计时"); stopWatch.start("查所有任务"); // 二次查询过滤学科 - if (StringUtils.isNotBlank(req.getDiscipline())) { - req.setFilterDiscipline(Collections.singletonList(req.getDiscipline())); + if (StringUtils.isNotBlank(req.getOwnDisciplineName())) { + req.setFilterDiscipline(Collections.singletonList(req.getOwnDisciplineName())); } List allTaskList = mapper.optimisedGtTaskList(tenantId, req); stopWatch.stop(); @@ -2066,11 +2066,13 @@ public class TaskServiceImpl implements ITaskService { int limit = req.getSize(); Long tenantId = ThreadLocalContext.getTenantId(); Long userId = ThreadLocalContext.getUserId(); - + JSONObject jsonObject = new JSONObject(); + jsonObject.put("total", 0); TagReq tagReq = req.getTagReq(); if (ObjectUtils.isEmpty(tagReq)){ log.error("tagReq为空"); - return oldAnalysisTaskList(req); + jsonObject.put("data", new ArrayList<>()); + return SdmResponse.success(jsonObject); } // key可能为多个,根据逗号转化为集合 List tag1KeyList = new ArrayList<>(); @@ -2129,10 +2131,8 @@ public class TaskServiceImpl implements ITaskService { String taskNodeId = tagReq.getTaskId(); List taskVoList; List allTaskVoList = new ArrayList<>(); - JSONObject jsonObject = new JSONObject(); - jsonObject.put("total", 0); if (StringUtils.isNotBlank(taskNodeId)) { - allTaskVoList = mapper.getAnalysisTask(taskNodeId); + allTaskVoList = mapper.getAnalysisTask(taskNodeId,req.getOwnDisciplineName()); } else { taskVoList = mapper.taskListByTag(req, tenantId, new ArrayList<>(), pos, limit,userId, tag1KeyList,tag2KeyList,tag3KeyList,tag4KeyList,tag5KeyList,tag6KeyList,tag7KeyList @@ -2347,146 +2347,146 @@ public class TaskServiceImpl implements ITaskService { return SdmResponse.success(jsonObject); } - public SdmResponse oldAnalysisTaskList(SpdmAnalysisTaskListReq req) { - int pos = (req.getCurrent() - 1) * req.getSize(); - int limit = req.getSize(); - Long tenantId = ThreadLocalContext.getTenantId(); - Long userId = ThreadLocalContext.getUserId(); - String projectNodeId = req.getProjectNodeId(); - String phaseNodeId = req.getPhaseNodeId(); - String machineNodeId = req.getMachineNodeId(); - String workspaceNodeId = req.getWorkspaceNodeId(); - String disciplineNodeId = req.getDisciplineNodeId(); - String nodeId = ""; - String nodeTag = ""; - if (StringUtils.isNotBlank(projectNodeId)) { - nodeId = projectNodeId; - nodeTag = "tag1"; - } - if (StringUtils.isNotBlank(phaseNodeId)) { - nodeId = phaseNodeId; - nodeTag = "tag2"; - } - if (StringUtils.isNotBlank(machineNodeId)) { - nodeId = machineNodeId; - nodeTag = "tag4"; - } - if (StringUtils.isNotBlank(workspaceNodeId)) { - nodeId = workspaceNodeId; - nodeTag = "tag5"; - } - if (StringUtils.isNotBlank(disciplineNodeId)) { - nodeId = disciplineNodeId; - nodeTag = "tag6"; - } - List allNodeIdList = new ArrayList<>(); - if (StringUtils.isNotBlank(nodeId)) { - allNodeIdList.add(nodeId); - recursionAllNodeIdList(Collections.singletonList(nodeId), allNodeIdList); - } - String taskNodeId = req.getTaskNodeId(); - List taskVoList; - List allTaskVoList = new ArrayList<>(); - JSONObject jsonObject = new JSONObject(); - jsonObject.put("total", 0); - if (StringUtils.isNotBlank(taskNodeId)) { - allTaskVoList = mapper.getAnalysisTask(taskNodeId); - } else { - taskVoList = mapper.taskList(req, tenantId, new ArrayList<>(), pos, limit,userId); - if (CollectionUtils.isEmpty(taskVoList)) { - log.error("数据分析中未查询到任务信息"); - jsonObject.put("data", new ArrayList<>()); - return SdmResponse.success(jsonObject); - } - if (StringUtils.isNotBlank(nodeId) && StringUtils.isNotBlank(nodeTag)) { - String currentNodeTagId = ""; - for (SpdmAnalysisTaskVo spdmTaskVo : taskVoList) { - try { - currentNodeTagId = getTagProperty(spdmTaskVo, nodeTag); - if (StringUtils.isNotBlank(currentNodeTagId) && currentNodeTagId.contains(nodeId)) { - allTaskVoList.add(spdmTaskVo); - } - } catch (Exception e) { - throw new RuntimeException(e); - } - } - } else { - allTaskVoList = taskVoList; - } - } - if (CollectionUtils.isEmpty(allTaskVoList)) { - log.error("数据分析中未查询到任务信息"); - jsonObject.put("data", new ArrayList<>()); - return SdmResponse.success(jsonObject); - } - jsonObject.put("total", allTaskVoList.size()); - taskVoList = allTaskVoList.stream().skip((long) (req.getCurrent() - 1) * req.getSize()).limit(req.getSize()).toList(); - if (CollectionUtils.isEmpty(taskVoList)) { - log.error("数据分析中未查询到任务信息"); - jsonObject.put("data", new ArrayList<>()); - return SdmResponse.success(jsonObject); - } - List allNodeList = projectMapper.getNodeListByNodeIdList(allNodeIdList); - Map nodeMap = allNodeList.stream() - .collect(Collectors.toMap( - ProjectNodePo::getUuid, // key:取uuid - Function.identity(), // value:取对象本身 - (existing, replacement) -> existing // 重复时保留已存在的(第一个)元素 - )); - // 设置仿真负责人 - List taskIdList = taskVoList.stream().map(SpdmAnalysisTaskVo::getUuid).toList(); - List taskNodeMemberPoList = projectMapper.queryTaskNodeMembersByNodeIdList(taskIdList); - Map> memberMap = new HashMap<>(); - Map cidUserMap = new HashMap<>(); - if (CollectionUtils.isNotEmpty(taskNodeMemberPoList)) { - taskNodeMemberPoList = taskNodeMemberPoList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType())).toList(); - if (CollectionUtils.isNotEmpty(taskNodeMemberPoList)) { - memberMap = taskNodeMemberPoList.stream().collect(Collectors.groupingBy(TaskNodeMemberPo::getTaskId)); - SdmResponse> cidUserResp = sysUserFeignClient.listUserByIds(UserQueryReq.builder() - .userIds(taskNodeMemberPoList.stream().map(TaskNodeMemberPo::getUserId).toList()).build()); - List cidUserRespList; - if (cidUserResp.isSuccess() && CollectionUtils.isNotEmpty(cidUserRespList = cidUserResp.getData())) { - cidUserMap = cidUserRespList.stream().collect(Collectors.toMap(CIDUserResp::getUserId, CIDUserResp::getNickname)); - } - } - } - ProjectNodePo eachProjectNodePo; - List eachTaskNodeMemberPoList; - for (SpdmAnalysisTaskVo task : taskVoList) { - eachProjectNodePo = nodeMap.get(task.getNodeId()); - -// SpdmNodeVo phaseNode = nodeMapper.getNodeById(task.getTag2()); - ProjectNodePo phaseNode = nodeMap.get(task.getTag2()); - if (phaseNode != null) { - task.setPhaseName(phaseNode.getNodeName()); - } -// SpdmNodeVo projectNode = nodeMapper.getNodeById(task.getTag1()); - ProjectNodePo projectNode = nodeMap.get(task.getTag1()); - if (projectNode != null) { - task.setProjectName(projectNode.getNodeName()); - } - if (eachProjectNodePo != null && NodeTypeEnum.DISCIPLINE.getValue().equals(eachProjectNodePo.getNodeType())) { - task.setDisciplineName(eachProjectNodePo.getNodeName()); - } - - eachTaskNodeMemberPoList = memberMap.get(task.getUuid()); - if (CollectionUtils.isNotEmpty(eachTaskNodeMemberPoList) && MapUtils.isNotEmpty(cidUserMap)) { - List nickNameList = new ArrayList<>(); - for (TaskNodeMemberPo taskNodeMemberPo : eachTaskNodeMemberPoList) { - String nickName = cidUserMap.get(taskNodeMemberPo.getUserId()); - if (StringUtils.isBlank(nickName)) { - continue; - } - nickNameList.add(nickName); - } - task.setPMembers(String.join(",", nickNameList)); - } - } - jsonObject.put("currentPage", req.getCurrent()); - jsonObject.put("pageSize", req.getSize()); - jsonObject.put("data", taskVoList); - return SdmResponse.success(jsonObject); - } +// public SdmResponse oldAnalysisTaskList(SpdmAnalysisTaskListReq req) { +// int pos = (req.getCurrent() - 1) * req.getSize(); +// int limit = req.getSize(); +// Long tenantId = ThreadLocalContext.getTenantId(); +// Long userId = ThreadLocalContext.getUserId(); +// String projectNodeId = req.getProjectNodeId(); +// String phaseNodeId = req.getPhaseNodeId(); +// String machineNodeId = req.getMachineNodeId(); +// String workspaceNodeId = req.getWorkspaceNodeId(); +// String disciplineNodeId = req.getDisciplineNodeId(); +// String nodeId = ""; +// String nodeTag = ""; +// if (StringUtils.isNotBlank(projectNodeId)) { +// nodeId = projectNodeId; +// nodeTag = "tag1"; +// } +// if (StringUtils.isNotBlank(phaseNodeId)) { +// nodeId = phaseNodeId; +// nodeTag = "tag2"; +// } +// if (StringUtils.isNotBlank(machineNodeId)) { +// nodeId = machineNodeId; +// nodeTag = "tag4"; +// } +// if (StringUtils.isNotBlank(workspaceNodeId)) { +// nodeId = workspaceNodeId; +// nodeTag = "tag5"; +// } +// if (StringUtils.isNotBlank(disciplineNodeId)) { +// nodeId = disciplineNodeId; +// nodeTag = "tag6"; +// } +// List allNodeIdList = new ArrayList<>(); +// if (StringUtils.isNotBlank(nodeId)) { +// allNodeIdList.add(nodeId); +// recursionAllNodeIdList(Collections.singletonList(nodeId), allNodeIdList); +// } +// String taskNodeId = req.getTaskNodeId(); +// List taskVoList; +// List allTaskVoList = new ArrayList<>(); +// JSONObject jsonObject = new JSONObject(); +// jsonObject.put("total", 0); +// if (StringUtils.isNotBlank(taskNodeId)) { +// allTaskVoList = mapper.getAnalysisTask(taskNodeId); +// } else { +// taskVoList = mapper.taskList(req, tenantId, new ArrayList<>(), pos, limit,userId); +// if (CollectionUtils.isEmpty(taskVoList)) { +// log.error("数据分析中未查询到任务信息"); +// jsonObject.put("data", new ArrayList<>()); +// return SdmResponse.success(jsonObject); +// } +// if (StringUtils.isNotBlank(nodeId) && StringUtils.isNotBlank(nodeTag)) { +// String currentNodeTagId = ""; +// for (SpdmAnalysisTaskVo spdmTaskVo : taskVoList) { +// try { +// currentNodeTagId = getTagProperty(spdmTaskVo, nodeTag); +// if (StringUtils.isNotBlank(currentNodeTagId) && currentNodeTagId.contains(nodeId)) { +// allTaskVoList.add(spdmTaskVo); +// } +// } catch (Exception e) { +// throw new RuntimeException(e); +// } +// } +// } else { +// allTaskVoList = taskVoList; +// } +// } +// if (CollectionUtils.isEmpty(allTaskVoList)) { +// log.error("数据分析中未查询到任务信息"); +// jsonObject.put("data", new ArrayList<>()); +// return SdmResponse.success(jsonObject); +// } +// jsonObject.put("total", allTaskVoList.size()); +// taskVoList = allTaskVoList.stream().skip((long) (req.getCurrent() - 1) * req.getSize()).limit(req.getSize()).toList(); +// if (CollectionUtils.isEmpty(taskVoList)) { +// log.error("数据分析中未查询到任务信息"); +// jsonObject.put("data", new ArrayList<>()); +// return SdmResponse.success(jsonObject); +// } +// List allNodeList = projectMapper.getNodeListByNodeIdList(allNodeIdList); +// Map nodeMap = allNodeList.stream() +// .collect(Collectors.toMap( +// ProjectNodePo::getUuid, // key:取uuid +// Function.identity(), // value:取对象本身 +// (existing, replacement) -> existing // 重复时保留已存在的(第一个)元素 +// )); +// // 设置仿真负责人 +// List taskIdList = taskVoList.stream().map(SpdmAnalysisTaskVo::getUuid).toList(); +// List taskNodeMemberPoList = projectMapper.queryTaskNodeMembersByNodeIdList(taskIdList); +// Map> memberMap = new HashMap<>(); +// Map cidUserMap = new HashMap<>(); +// if (CollectionUtils.isNotEmpty(taskNodeMemberPoList)) { +// taskNodeMemberPoList = taskNodeMemberPoList.stream().filter(member -> MemberTypeEnum.PRINCIPAL.getCode().equals(member.getType())).toList(); +// if (CollectionUtils.isNotEmpty(taskNodeMemberPoList)) { +// memberMap = taskNodeMemberPoList.stream().collect(Collectors.groupingBy(TaskNodeMemberPo::getTaskId)); +// SdmResponse> cidUserResp = sysUserFeignClient.listUserByIds(UserQueryReq.builder() +// .userIds(taskNodeMemberPoList.stream().map(TaskNodeMemberPo::getUserId).toList()).build()); +// List cidUserRespList; +// if (cidUserResp.isSuccess() && CollectionUtils.isNotEmpty(cidUserRespList = cidUserResp.getData())) { +// cidUserMap = cidUserRespList.stream().collect(Collectors.toMap(CIDUserResp::getUserId, CIDUserResp::getNickname)); +// } +// } +// } +// ProjectNodePo eachProjectNodePo; +// List eachTaskNodeMemberPoList; +// for (SpdmAnalysisTaskVo task : taskVoList) { +// eachProjectNodePo = nodeMap.get(task.getNodeId()); +// +//// SpdmNodeVo phaseNode = nodeMapper.getNodeById(task.getTag2()); +// ProjectNodePo phaseNode = nodeMap.get(task.getTag2()); +// if (phaseNode != null) { +// task.setPhaseName(phaseNode.getNodeName()); +// } +//// SpdmNodeVo projectNode = nodeMapper.getNodeById(task.getTag1()); +// ProjectNodePo projectNode = nodeMap.get(task.getTag1()); +// if (projectNode != null) { +// task.setProjectName(projectNode.getNodeName()); +// } +// if (eachProjectNodePo != null && NodeTypeEnum.DISCIPLINE.getValue().equals(eachProjectNodePo.getNodeType())) { +// task.setDisciplineName(eachProjectNodePo.getNodeName()); +// } +// +// eachTaskNodeMemberPoList = memberMap.get(task.getUuid()); +// if (CollectionUtils.isNotEmpty(eachTaskNodeMemberPoList) && MapUtils.isNotEmpty(cidUserMap)) { +// List nickNameList = new ArrayList<>(); +// for (TaskNodeMemberPo taskNodeMemberPo : eachTaskNodeMemberPoList) { +// String nickName = cidUserMap.get(taskNodeMemberPo.getUserId()); +// if (StringUtils.isBlank(nickName)) { +// continue; +// } +// nickNameList.add(nickName); +// } +// task.setPMembers(String.join(",", nickNameList)); +// } +// } +// jsonObject.put("currentPage", req.getCurrent()); +// jsonObject.put("pageSize", req.getSize()); +// jsonObject.put("data", taskVoList); +// return SdmResponse.success(jsonObject); +// } @Override diff --git a/project/src/main/resources/mapper/SimulationTaskMapper.xml b/project/src/main/resources/mapper/SimulationTaskMapper.xml index 2f0d78f0..42925aef 100644 --- a/project/src/main/resources/mapper/SimulationTaskMapper.xml +++ b/project/src/main/resources/mapper/SimulationTaskMapper.xml @@ -742,7 +742,11 @@