fix[project]: 所有任务查询 bugfix

This commit is contained in:
2026-04-15 11:54:05 +08:00
parent 6f918a8109
commit ed7cd90912
5 changed files with 51 additions and 13 deletions

View File

@@ -8,7 +8,8 @@ public enum NodeMemberTypeEnum {
MANAGER("项目经理", 0),
ATTENTION("项目关注人", 1),
PINNED("项目置顶人", 2);
PINNED("项目置顶人", 2),
PARTICIPANT("项目参与人", 3);
private final String name;

View File

@@ -118,10 +118,10 @@ public interface SimulationNodeMapper extends BaseMapper<SimulationNode> {
List<SpdmNodeVo> 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<String> 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<String> projectIdList);
List<SpdmNodeMemberVo> getNodeMemberListByMemberType(@Param("nodeIdList") List<String> nodeIdList,@Param("userId") Long userId,@Param("memberType") Integer memberType);

View File

@@ -538,8 +538,33 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
int total;
// type=0查询所有使用原有查询逻辑
if (type == null || type == 0) {
// 查询当前用户作为任务成员的项目id集合
List<String> 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<String> nodeIdList = nodeList.stream().map(SpdmNodeVo::getUuid).toList();
@@ -554,15 +579,15 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
}
}
}
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,projectIdList);
}else if (type == 1){
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());
nodeList.forEach(node -> 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<String> nodeIdList = nodeList.stream().map(SpdmNodeVo::getUuid).toList();
@@ -577,7 +602,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
}
}
}
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());
}
CoreLogger.info("getNodeList param:{},tenantId:{}", JSONObject.toJSONString(req), tenantId);

View File

@@ -975,6 +975,14 @@
<bind name="searchKey3" value="'%' + nodeName + '%'"/>
and sn.nodeName like #{searchKey3}
</if>
<if test="projectIdList != null and projectIdList.size > 0">
or sn.uuid in
(
<foreach collection='projectIdList' item='projectId' index='index' separator=','>
#{projectId}
</foreach>
)
</if>
order by IFNULL(pin.pinnedType, 0) desc, pin.pinnedTime desc, sn.create_time desc
limit #{pos},#{limit}
</select>
@@ -1017,6 +1025,14 @@
<bind name="searchKey3" value="'%' + nodeName + '%'"/>
and sn.nodeName like #{searchKey3}
</if>
<if test="projectIdList != null and projectIdList.size > 0">
or sn.uuid in
(
<foreach collection='projectIdList' item='projectId' index='index' separator=','>
#{projectId}
</foreach>
)
</if>
</select>
<select id="getNodeMemberListByMemberType" resultType="com.sdm.project.model.vo.SpdmNodeMemberVo">

View File

@@ -1209,10 +1209,6 @@
<bind name="searchKey1" value="'%' + req.taskName + '%'"/>
and st.task_name like #{searchKey1}
</if>
<if test="req.name != null and req.name != ''">
<bind name="searchKey2" value="'%' + req.name + '%'"/>
and st.task_name like #{searchKey2}
</if>
<if test="req.taskCode != null and req.taskCode != ''">
<bind name="searchKey3" value="'%' + req.taskCode + '%'"/>
and st.task_code like #{searchKey3}