From ed7cd909122e20dd01b28b9d0d19b480a27c2eb1 Mon Sep 17 00:00:00 2001 From: lidongyang <506508008@qq.com> Date: Wed, 15 Apr 2026 11:54:05 +0800 Subject: [PATCH] =?UTF-8?q?fix[project]:=20=E6=89=80=E6=9C=89=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=9F=A5=E8=AF=A2=20bugfix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/common/NodeMemberTypeEnum.java | 3 +- .../sdm/project/dao/SimulationNodeMapper.java | 4 +- .../project/service/impl/NodeServiceImpl.java | 37 ++++++++++++++++--- .../resources/mapper/SimulationNodeMapper.xml | 16 ++++++++ .../resources/mapper/SimulationTaskMapper.xml | 4 -- 5 files changed, 51 insertions(+), 13 deletions(-) diff --git a/project/src/main/java/com/sdm/project/common/NodeMemberTypeEnum.java b/project/src/main/java/com/sdm/project/common/NodeMemberTypeEnum.java index 12d29884..d5188c18 100644 --- a/project/src/main/java/com/sdm/project/common/NodeMemberTypeEnum.java +++ b/project/src/main/java/com/sdm/project/common/NodeMemberTypeEnum.java @@ -8,7 +8,8 @@ public enum NodeMemberTypeEnum { MANAGER("项目经理", 0), ATTENTION("项目关注人", 1), - PINNED("项目置顶人", 2); + PINNED("项目置顶人", 2), + PARTICIPANT("项目参与人", 3); private final String name; diff --git a/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java b/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java index 4459bdb9..a2aa8793 100644 --- a/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java +++ b/project/src/main/java/com/sdm/project/dao/SimulationNodeMapper.java @@ -118,10 +118,10 @@ public interface SimulationNodeMapper extends BaseMapper { List getNodeListByUserId(@Param("nodeType") String nodeType, @Param("nodeSubType") String nodeSubType, @Param("exeStatus") String exeStatus, @Param("nodeCode") String nodeCode, - @Param("manager") String manager, @Param("nodeName") String nodeName, @Param("tenantId") Long tenantId, @Param("pos") int pos, @Param("limit") int limit, @Param("userId") Long userId,@Param("type") Integer type); + @Param("manager") String manager, @Param("nodeName") String nodeName, @Param("tenantId") Long tenantId, @Param("pos") int pos, @Param("limit") int limit, @Param("userId") Long userId,@Param("type") Integer type,@Param("projectIdList") List projectIdList); int getNodeListCountByUserId(@Param("nodeType") String nodeType, @Param("nodeSubType") String nodeSubType, @Param("exeStatus") String exeStatus, @Param("nodeCode") String nodeCode, - @Param("manager") String manager, @Param("nodeName") String nodeName, @Param("tenantId") Long tenantId, @Param("userId") Long userId,@Param("type") Integer type); + @Param("manager") String manager, @Param("nodeName") String nodeName, @Param("tenantId") Long tenantId, @Param("userId") Long userId,@Param("type") Integer type,@Param("projectIdList") List projectIdList); List getNodeMemberListByMemberType(@Param("nodeIdList") List nodeIdList,@Param("userId") Long userId,@Param("memberType") Integer memberType); 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 3f13e78c..0e41c916 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 @@ -538,8 +538,33 @@ public class NodeServiceImpl extends ServiceImpl projectIdList = Optional.ofNullable( + simulationTaskMemberService.lambdaQuery() + .eq(SimulationTaskMember::getUserId, userId) + .list() + ) + .filter(CollectionUtils::isNotEmpty) + .stream() + .flatMap(List::stream) + .map(SimulationTaskMember::getTaskId) + .distinct() + .filter(StringUtils::isNotBlank) // 防止taskId为空 + .toList() + .stream() + .filter(StringUtils::isNotBlank) + .map(taskIds -> taskService.lambdaQuery() + .in(SimulationTask::getUuid, taskIds) + .list() + ) + .filter(CollectionUtils::isNotEmpty) + .flatMap(List::stream) + .map(SimulationTask::getTag1) + .filter(StringUtils::isNotBlank) + .distinct() + .toList(); nodeList = nodeMapper.getNodeListByUserId(req.getNodeType(), req.getNodeSubType(), req.getExeStatus(), req.getNodeCode(), req.getManager(), req.getNodeName(), - tenantId, pos, limit,userId,type); + tenantId, pos, limit,userId,type,projectIdList); // 设置关注标签 if (CollectionUtils.isNotEmpty(nodeList)) { List nodeIdList = nodeList.stream().map(SpdmNodeVo::getUuid).toList(); @@ -554,15 +579,15 @@ public class NodeServiceImpl extends ServiceImpl node.setAttentionFlag(1)); - total = nodeMapper.getNodeListCountByUserId(req.getNodeType(), req.getNodeSubType(), req.getExeStatus(), req.getNodeCode(), req.getManager(), req.getNodeName(), tenantId,userId,type); + total = nodeMapper.getNodeListCountByUserId(req.getNodeType(), req.getNodeSubType(), req.getExeStatus(), req.getNodeCode(), req.getManager(), req.getNodeName(), tenantId,userId,type,Collections.emptyList()); }else { nodeList = nodeMapper.getNodeListByUserId(req.getNodeType(), req.getNodeSubType(), req.getExeStatus(), req.getNodeCode(), req.getManager(), req.getNodeName(), - tenantId, pos, limit,userId,type); + tenantId, pos, limit,userId,type,Collections.emptyList()); // 设置关注标签 if (CollectionUtils.isNotEmpty(nodeList)) { List nodeIdList = nodeList.stream().map(SpdmNodeVo::getUuid).toList(); @@ -577,7 +602,7 @@ public class NodeServiceImpl extends ServiceImpl and sn.nodeName like #{searchKey3} + + or sn.uuid in + ( + + #{projectId} + + ) + order by IFNULL(pin.pinnedType, 0) desc, pin.pinnedTime desc, sn.create_time desc limit #{pos},#{limit} @@ -1017,6 +1025,14 @@ and sn.nodeName like #{searchKey3} + + or sn.uuid in + ( + + #{projectId} + + ) +