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} + + ) +