yangys
2025-06-16 df63a0751de4a37a46e26bbf25feed0dd0f37e00
增加超时查询接口
已修改2个文件
已添加1个文件
96 ■■■■■ 文件已修改
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
package org.springblade.mdm.flow.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.TaskService;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.flow.core.pojo.entity.BladeFlow;
import org.springblade.mdm.flow.service.FlowBusinessService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@Slf4j
@RestController
@RequestMapping("/flow/mgr")
@Tag(name = "流程管理", description = "流程管理")
public class FlowMgrController {
    @Autowired
    private TaskService taskService;
    @Autowired
    private FlowBusinessService businessService;
    /**
     * å¾…办任务列表页
     */
    @GetMapping("overtime-list")
    @ApiOperationSupport(order = 3)
    @Operation(summary = "超时查询", description = "查询所有超时任务")
    public R<IPage<BladeFlow>> todoList(@Parameter(description = "执行人员") String assigneeName, @Parameter(description = "关键字") String keyword, Query query) {
        IPage<BladeFlow> pages = businessService.selectOvertimePage(Condition.getPage(query), assigneeName,keyword);
        return R.data(pages);
    }
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
@@ -25,7 +25,7 @@
@Slf4j
@RestController
@RequestMapping("/flow/")
@Tag(name = "派工流程", description = "派工流程")
@Tag(name = "用户个人流程", description = "用户个人流程")
public class MyFlowController {
    @Autowired
    private TaskService taskService;
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java
@@ -48,6 +48,7 @@
import org.springblade.mdm.flow.util.MdmFlowCache;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -382,4 +383,52 @@
        page.setRecords(flowList);
        return page;
    }
    /**
     * è¶…时任务查询
     * @param page
     * @param keyword
     * @return
     */
    public IPage<BladeFlow> selectOvertimePage(IPage<BladeFlow> page, String assigneeName,String keyword) {
        List<BladeFlow> flowList = new LinkedList<>();
        Date now = new Date();
        TaskQuery todoQuery = taskService.createTaskQuery().taskDueBefore(now).active().includeProcessVariables();
        if(Func.isNotEmpty(keyword)) {
            todoQuery.taskVariableValueLike("assigneeName", "%"+assigneeName+"%");
        }
        if(Func.isNotEmpty(keyword)){
            todoQuery.or();
            keyword = "%"+keyword+"%";
            todoQuery.processVariableValueLike("processNo",keyword);
            todoQuery.processVariableValueLike("machineCode",keyword);
            todoQuery.processVariableValueLike("machineMode",keyword);
            todoQuery.processVariableValueLike("processName",keyword);
            todoQuery.processVariableValueLike("processEdition",keyword);
            todoQuery.processVariableValueLike("craftEdition",keyword);
            //TODO å¤šä¸ªå­—段都要匹配
            todoQuery.endOr();
        }
        todoQuery.orderByTaskCreateTime().desc();
        // æž„建列表数据
        BladeFlow bladeFlow = new BladeFlow();
        buildFlowTaskList(bladeFlow, flowList, todoQuery, "todo");//FlowEngineConstant.STATUS_TODO
        // è®¡ç®—总数
        long count = todoQuery.count();
        // è®¾ç½®é¡µæ•°
        page.setSize(count);
        // è®¾ç½®æ€»æ•°
        page.setTotal(count);
        // è®¾ç½®æ•°æ®
        page.setRecords(flowList);
        return page;
    }
}