From 0ecd5acd3b9f320a487c68df2ea6234b4dacb12c Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期日, 20 七月 2025 13:24:54 +0800
Subject: [PATCH] 增加流程查询接口

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java               |   24 +++++++++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/filewatch/ProgramBackMonitor.java            |   19 +++++++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java                |   40 ++++++++++++++++++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramExportDNCController.java |   18 +++++++++
 4 files changed, 100 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 39e093a..1dee81f 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,6 +8,7 @@
 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;
@@ -43,7 +44,8 @@
 
 	@Autowired
 	private HistoryService historyService;
-
+	@Autowired
+	private RuntimeService runtimeService;
 
 	@GetMapping("overtime-list")
 	@ApiOperationSupport(order = 3)
@@ -94,5 +96,25 @@
 		return R.data(result);
 	}
 
+	@GetMapping("search-list")
+	@ApiOperationSupport(order = 3)
+	@Operation(summary = "娴佺▼鏌ヨ", description = "鏌ヨ杩涜涓殑鎵�鏈夋祦绋�")
+	public R<IPage<FlowVO>> overtimeList(@Parameter(description = "浠诲姟鍒拌揪鏃堕棿寮�濮�") LocalDate createTimeBegin, @Parameter(description = "浠诲姟鍒拌揪鏃堕棿鎴")LocalDate createTimeEnd, @Parameter(description = "鍏抽敭瀛�") String keyword, Query query) {
+		IPage<FlowVO> pages = businessService.selectSearchPage(Condition.getPage(query), createTimeBegin,createTimeEnd,keyword);
+		return R.data(pages);
+	}
+
+	@PostMapping("delete-instance")
+	@Operation(summary = "娴佺▼鍒犻櫎", description = "鍒犻櫎id鎸囧畾鐨勬祦绋嬪疄渚�")
+	public R<Void> deleteInstance(@Parameter(description = "浠诲姟鍒拌揪鏃堕棿寮�濮�") String processInstancesId) {
+		try {
+			runtimeService.deleteProcessInstance(processInstancesId, "娴佺▼鏌ヨ-鍒犻櫎");
+		} catch (Exception e) {
+			log.error("鍒犻櫎娴佺▼澶辫触",e);
+			return R.fail(e.getMessage());
+		}
+		return R.success();
+	}
+
 
 }
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 93fec5a..ba5d354 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
@@ -419,4 +419,44 @@
 		page.setRecords(flowList);
 		return page;
 	}
+
+	/**
+	 * 娴佺▼鏌ヨ 鍔熻兘 鐨勫垎椤�
+	 * @param page
+	 * @param createTimeBegin
+	 * @param createTimeEnd
+	 * @param assigneeName
+	 * @param keyword
+	 * @return
+	 */
+	public IPage<FlowVO> selectSearchPage(IPage<FlowVO> page, LocalDate createTimeBegin, LocalDate createTimeEnd, String keyword) {
+
+		List<FlowVO> flowList = new LinkedList<>();
+		Date now = new Date();
+		TaskQuery taskQuery = taskService.createTaskQuery().active().includeProcessVariables();
+		if(Func.isNotEmpty(createTimeBegin)) {
+			taskQuery.taskCreatedAfter(DateUtil.toDate(createTimeBegin));
+		}
+		if(Func.isNotEmpty(createTimeEnd)) {
+			taskQuery.taskCreatedBefore(DateUtil.toDate(createTimeEnd.plusDays(1)));
+		}
+
+		addKeywordCondition(taskQuery, keyword);
+
+		taskQuery.orderByTaskCreateTime().desc();
+
+		// 鏋勫缓鍒楄〃鏁版嵁
+		FlowVO bladeFlow = new FlowVO();
+		buildFlowTaskList(bladeFlow, flowList, taskQuery);//FlowEngineConstant.STATUS_TODO
+
+		// 璁$畻鎬绘暟
+		long count = taskQuery.count();
+		// 璁剧疆椤垫暟
+		page.setSize(count);
+		// 璁剧疆鎬绘暟
+		page.setTotal(count);
+		// 璁剧疆鏁版嵁
+		page.setRecords(flowList);
+		return page;
+	}
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramExportDNCController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramExportDNCController.java
index bd2f615..7c899dc 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramExportDNCController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramExportDNCController.java
@@ -64,4 +64,22 @@
 
 	}
 
+	@PostMapping("/export-approve-table")
+	@Operation(summary = "瀵煎嚭瀹℃壒琛�", description = "瀵煎嚭瀹℃壒琛╡xcel")
+	public void exportApproveTaable(@RequestBody @Parameter(description = "瀹℃壒琛╥d鏁扮粍") IdsVO vo, HttpServletResponse response) {
+		if(vo.getIds() == null || vo.getIds().length == 0) {
+			throw new ServiceException("鏈�夋嫨鏂囦欢瀵煎嚭");
+		}
+		try {
+			String filename = "todncexp-"+ DateUtil.format(DateUtil.now(), "yyyyMMddHHmm")+".zip";
+			response.setHeader("Content-Disposition", "attachment; filename="+filename);
+			response.setContentType("application/octet-stream");
+			ncProgramExportDNCService.exportDnc(vo.getIds(),response.getOutputStream());
+		} catch (IOException e) {
+			log.error("瀵煎嚭DNC寮傚父", e);
+			throw new RuntimeException(e);
+		}
+
+	}
+
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/filewatch/ProgramBackMonitor.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/filewatch/ProgramBackMonitor.java
index c3fc2d4..db0fd64 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/filewatch/ProgramBackMonitor.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/filewatch/ProgramBackMonitor.java
@@ -103,6 +103,23 @@
 							log.warn("鏂囦欢鍚嶆棤娉曞尮閰嶅埌鏁版帶绋嬪簭,{}",filePath);
 							return;
 						}
+						//淇濆瓨鏂囦欢鍒癱ss锛岄伩鍏嶅悗缁笉鍚岄儴缃茶妭鐐规嬁涓嶅埌鏂囦欢
+						String ossName;
+						String url;
+						try(FileInputStream fins = new FileInputStream(filePath.toFile());){
+							BladeFile bfile = ossTemplate.putFile(programName, fins);
+							ossName = bfile.getName();
+							url = bfile.getLink();
+
+						}
+
+						prog.setOssName(ossName);
+						prog.setUrl(url);
+						//TODO锛屾槸鍚﹀垹闄ゅ師鏉ョ殑鏂囦欢锛�
+						ncProgramService.updateById(prog);
+
+						cureFlowService.startOne(prog);//鍚姩涓�涓▼搴忕殑鍥哄寲娴佺▼
+						/*
 						DncBackFile backFile = new DncBackFile();
 						backFile.setNcProgramId(prog.getId());
 						//淇濆瓨鏂囦欢鍒癱ss锛岄伩鍏嶅悗缁笉鍚岄儴缃茶妭鐐规嬁涓嶅埌鏂囦欢
@@ -112,6 +129,8 @@
 							backFile.setUrl(bfile.getLink());
 						}
 						dncBackFileService.save(backFile);
+
+						 */
 					}else{
 						log.warn("鏂囦欢浼犺緭涓紝鍚庣画鍐嶆搷浣�:{}",filePath);
 					}

--
Gitblit v1.9.3