fix:项目列表的任务进度,根据用户能看到的学科过滤任务

This commit is contained in:
2026-03-30 09:44:30 +08:00
parent 142033e3d5
commit 0783cf188b
4 changed files with 16 additions and 4 deletions

View File

@@ -3,6 +3,8 @@ package com.sdm.common.entity.req.project;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
@Data
public class SpdmNodeListReq {
@@ -52,4 +54,6 @@ public class SpdmNodeListReq {
*/
private Integer type;
private List<String> filterDiscipline;
}

View File

@@ -96,7 +96,7 @@ public interface SimulationNodeMapper extends BaseMapper<SimulationNode> {
/**
* 根据项目uuid列表获取任务完成情况统计
*/
List<UserGroupTaskCompleteVo> getTaskCompleteStatisticsByNodeIds(@Param("tenantId") Long tenantId, @Param("nodeIdList") List<String> nodeIdList);
List<UserGroupTaskCompleteVo> getTaskCompleteStatisticsByNodeIds(@Param("tenantId") Long tenantId, @Param("nodeIdList") List<String> nodeIdList, @Param("filterDiscipline") List<String> filterDiscipline);
List<UserGroupDifficultyVo> getUserGroupDifficultyStatistics(@Param("req") GetUserGroupTaskCompleteStatisticsReq req,@Param("taskMemberTypeList") List<Integer> taskMemberTypeList);

View File

@@ -679,7 +679,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
setCurrentPhase(nodeList);
// 获取项目下的任务完成情况统计
setTaskCompleteStatistics(nodeList);
setTaskCompleteStatistics(nodeList, req.getFilterDiscipline());
JSONObject jsonObject = new JSONObject();
jsonObject.put("data", nodeList);
@@ -711,7 +711,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
* 设置项目下的任务完成情况统计
* @param nodeList 项目列表
*/
public void setTaskCompleteStatistics(List<SpdmNodeVo> nodeList) {
public void setTaskCompleteStatistics(List<SpdmNodeVo> nodeList, List<String> filterDiscipline) {
if (CollectionUtils.isEmpty(nodeList)) {
return;
}
@@ -728,7 +728,7 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
// 获取任务统计数据
Long tenantId = ThreadLocalContext.getTenantId();
List<UserGroupTaskCompleteVo> taskCompleteList = this.baseMapper.getTaskCompleteStatisticsByNodeIds(tenantId, nodeUuidList);
List<UserGroupTaskCompleteVo> taskCompleteList = this.baseMapper.getTaskCompleteStatisticsByNodeIds(tenantId, nodeUuidList, filterDiscipline);
if (CollectionUtils.isEmpty(taskCompleteList)) {
return;

View File

@@ -581,6 +581,14 @@
</foreach>
)
</if>
<if test="filterDiscipline != null and filterDiscipline.size > 0">
and (task.discipline in
(
<foreach collection='filterDiscipline' item='discipline' index='index' separator=','>
#{discipline}
</foreach>
) or task.discipline is null or task.discipline = '')
</if>
</where>
</select>