From df63a0751de4a37a46e26bbf25feed0dd0f37e00 Mon Sep 17 00:00:00 2001 From: yangys <y_ys79@sina.com> Date: 星期一, 16 六月 2025 22:39:43 +0800 Subject: [PATCH] 增加超时查询接口 --- blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java | 2 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java | 45 ++++++++++++++++++++++ blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java | 49 ++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 1 deletions(-) diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java new file mode 100644 index 0000000..9e39240 --- /dev/null +++ b/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); + } + + +} diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java index 2166277..3532570 100644 --- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java +++ b/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; diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java index 0ab7275..d4113b7 100644 --- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java +++ b/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; + } } -- Gitblit v1.9.3