From 1911be8941e5fe2705c2c56e74e52bd426468793 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期三, 06 八月 2025 15:26:34 +0800
Subject: [PATCH] 固化流程,建立node;

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 58 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
index cb6f60d..8acfa0a 100644
--- 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
@@ -8,15 +8,20 @@
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.flowable.engine.HistoryService;
+import org.flowable.engine.RuntimeService;
 import org.flowable.engine.TaskService;
 import org.flowable.engine.task.Comment;
 import org.flowable.task.api.history.HistoricTaskInstance;
 import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.log.exception.ServiceException;
 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.utils.DateUtil;
 import org.springblade.mdm.basesetting.machine.vo.MachineExcelVO;
+import org.springblade.mdm.commons.vo.IdsVO;
+import org.springblade.mdm.flow.service.ApproveRecordService;
+import org.springblade.mdm.flow.service.ApproveTableService;
 import org.springblade.mdm.flow.service.FlowBusinessService;
 import org.springblade.mdm.flow.vo.FlowVO;
 import org.springblade.mdm.flow.vo.OvertimeTaskExcelVO;
@@ -25,6 +30,9 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -42,6 +50,10 @@
 
 	@Autowired
 	private HistoryService historyService;
+	@Autowired
+	private RuntimeService runtimeService;
+	@Autowired
+	private ApproveTableService approveTableService;
 
 	@GetMapping("overtime-list")
 	@ApiOperationSupport(order = 3)
@@ -71,7 +83,7 @@
 	}
 
 
-	@Operation(summary = "娴佺▼杞ㄨ抗", description = "娴佺▼杞ㄨ抗")
+	@Operation(summary = "娴佺▼鎵ц杞ㄨ抗", description = "娴佺▼鎵ц杞ㄨ抗")
 	@GetMapping("process-trace")
 	public R<List<TaskTraceVO>> processTrace(String processInstanceId){
 		List<TaskTraceVO> result = new ArrayList<>();
@@ -92,5 +104,50 @@
 		return R.data(result);
 	}
 
+	@GetMapping("search-list")
+	@ApiOperationSupport(order = 3)
+	@Operation(summary = "娴佺▼鏌ヨ", description = "鏌ヨ杩涜涓殑鎵�鏈夋祦绋�")
+	public R<IPage<FlowVO>> searchList(@Parameter(description = "娴佺▼绫诲瀷")String processDefinitionKey,@Parameter(description = "浠诲姟鍒拌揪鏃堕棿寮�濮�") LocalDate createTimeBegin, @Parameter(description = "浠诲姟鍒拌揪鏃堕棿鎴")LocalDate createTimeEnd, @Parameter(description = "鍏抽敭瀛�") String keyword, Query query) {
+		IPage<FlowVO> pages = businessService.selectSearchPage(Condition.getPage(query), createTimeBegin,createTimeEnd,processDefinitionKey,keyword);
+		return R.data(pages);
+	}
 
+	@GetMapping("finished-list")
+	@ApiOperationSupport(order = 3)
+	@Operation(summary = "鍘嗗彶娴佺▼鏌ヨ", description = "鏌ヨ宸插畬缁撶殑鎵�鏈夋祦绋�")
+	public R<IPage<FlowVO>> finishedList(@Parameter(description = "娴佺▼绫诲瀷")String processDefinitionKey,@Parameter(description = "浠诲姟鍒拌揪鏃堕棿寮�濮�") LocalDate createTimeBegin, @Parameter(description = "浠诲姟鍒拌揪鏃堕棿鎴")LocalDate createTimeEnd, @Parameter(description = "鍏抽敭瀛�") String keyword, Query query) {
+		IPage<FlowVO> pages = businessService.selectFinishedPage(Condition.getPage(query), processDefinitionKey,createTimeBegin,createTimeEnd,keyword);
+		return R.data(pages);
+	}
+
+	@PostMapping("delete-instance")
+	@Operation(summary = "娴佺▼鍒犻櫎", description = "鍒犻櫎id鎸囧畾鐨勬祦绋嬪疄渚�")
+	public R<Void> deleteInstance(@Parameter(description = "浠诲姟鍒拌揪鏃堕棿寮�濮�") String processInstanceId) {
+		try {
+			businessService.deleteProcessInstance(processInstanceId);
+
+		} catch (Exception e) {
+			log.error("鍒犻櫎娴佺▼澶辫触",e);
+			return R.fail(e.getMessage());
+		}
+		return R.success();
+	}
+
+	@PostMapping("/export-approve-table")
+	@Operation(summary = "瀵煎嚭瀹℃壒琛�", description = "瀵煎嚭瀹℃壒琛╡xcel")
+	public void exportApproveTable(String processInstanceId, HttpServletResponse response) {
+
+		try {
+
+			String filename = URLEncoder.encode("鏁版帶绋嬪簭缂栧埗瀹℃壒鍗�", StandardCharsets.UTF_8)+ DateUtil.format(DateUtil.now(), "yyyyMMddHHmm")+".pdf";
+
+			response.setHeader("Content-Disposition", "attachment; filename="+filename);
+			response.setContentType("application/octet-stream");
+			approveTableService.exportApproveTable(processInstanceId,response.getOutputStream());
+		} catch (Exception e) {
+			log.error("瀵煎嚭瀹℃壒琛ㄥ紓甯�", e);
+			throw new RuntimeException(e);
+		}
+
+	}
 }

--
Gitblit v1.9.3