fuliqi
2025-02-14 cf834d0cda2556df54f703c4f032e80b0cb30d7d
赋码排除节点挂起的任务
3个文件已修改
22 ■■■■■ 已修改文件
business/src/main/java/com/ycl/task/FlowableTask.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/resources/mapper/ProcessLogMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/task/FlowableTask.java
@@ -9,6 +9,7 @@
import com.ycl.domain.entity.ProjectProcess;
import com.ycl.factory.FlowServiceFactory;
import com.ycl.mapper.ProcessCodingMapper;
import com.ycl.mapper.ProcessLogMapper;
import com.ycl.mapper.ProjectInfoMapper;
import com.ycl.mapper.ProjectProcessMapper;
import com.ycl.service.ProcessCodingService;
@@ -41,6 +42,8 @@
    private ProcessCodingMapper processCodingMapper;
    @Autowired
    private ProcessLogService processLogService;
    @Autowired
    private ProcessLogMapper processLogMapper;
    /**
     * 赋码任务
     * 两个逻辑 改项目码、改节点颜色
@@ -50,6 +53,11 @@
        //当前正在运行的所有任务节点
        List<Task> taskList = taskService.createTaskQuery().active().list();
        if (CollectionUtils.isEmpty(taskList)) return;
        //排除掉节点挂起的任务
        List<String> allHangupTask = processLogMapper.getAllHangup();
        taskList = taskList.stream()
                .filter(task -> !allHangupTask.contains(task.getId()))
                .collect(Collectors.toList());
        //TODO:筛选出流程实例id,用作项目挂起
        Set<String> proInsIds = taskList.stream()
                .map(TaskInfo::getProcessInstanceId)
flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java
@@ -38,4 +38,7 @@
     * @return
     */
    List<ProcessLogVO> projectProcessLogPage(@Param("query") ProcessLogQuery query);
    List<String> getAllHangup();
}
flowable/src/main/resources/mapper/ProcessLogMapper.xml
@@ -78,4 +78,15 @@
            TFL.gmt_create DESC
    </select>
    <select id="getAllHangup" resultType="java.lang.String">
        SELECT task_id
        FROM (
                 SELECT task_id,
                        COUNT(*) AS num
                 FROM t_process_log
                 WHERE task_id IS NOT NULL
                 GROUP BY task_id
                 HAVING MOD(num, 2) != 0
             ) AS t;
    </select>
</mapper>