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