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/program/controller/NcProgramController.java |  120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 114 insertions(+), 6 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramController.java
index 6980c61..0757e57 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramController.java
@@ -1,16 +1,32 @@
 
 package org.springblade.mdm.program.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.flowable.engine.task.Comment;
+import org.flowable.task.api.history.HistoricTaskInstance;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
+import org.springblade.mdm.flow.service.ApproveRecordService;
+import org.springblade.mdm.flow.vo.ApproveRecordVO;
+import org.springblade.mdm.flow.vo.TaskTraceVO;
 import org.springblade.mdm.program.entity.NcProgram;
 import org.springblade.mdm.program.service.NcProgramService;
+import org.springblade.mdm.program.service.ProcessProgRefService;
+import org.springblade.mdm.program.vo.NcNodeProgramQueryVO;
+import org.springblade.mdm.program.vo.NcProgramUploadVO;
+import org.springblade.mdm.program.vo.NcProgramVO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 绋嬪簭鑺傜偣
@@ -26,13 +42,37 @@
 public class NcProgramController {
 
 	private final NcProgramService ncProgramService;
+	private final ProcessProgRefService ncProcessProgRefService;
+
+	private final ApproveRecordService approveRecordService;
 
 	@PostMapping("/upload")
-	@Operation(summary = "涓婁紶", description = "涓婁紶绋嬪簭/闄勪欢鏂囦欢")
-	public R<Boolean> upload(@RequestParam MultipartFile file,Long nodeId,
-							 @RequestParam String category) {
-		ncProgramService.uploadProgramFile(file,nodeId,category);
-		return R.<Boolean>status(true);
+	@Operation(summary = "涓婁紶鏂囦欢", description = "涓婁紶绋嬪簭/闄勪欢鏂囦欢")
+	public R<Boolean> upload(NcProgramUploadVO uploadVO) {
+		try {
+			boolean existOther = ncProgramService.programExistsUnderOtherNode(uploadVO.getNodeId(), uploadVO.getFile().getOriginalFilename());
+			if (existOther) {
+				//绋嬪簭瀛樺湪锛屽垯杩斿洖鎻愮ず淇℃伅
+				return R.fail("绋嬪簭鍏朵粬鑺傜偣宸插瓨鍦�");
+			}
+			if (uploadVO.getConfirm() == null || uploadVO.getConfirm() != 1) {
+				//榛樿鎯呭喌锛岄渶瑕佹鏌ョ▼搴忔槸鍚﹀瓨鍦�
+				boolean exists = ncProgramService.programExistsUnderNode(uploadVO.getNodeId(), uploadVO.getFile().getOriginalFilename());
+				if (exists) {
+					//绋嬪簭瀛樺湪锛屽垯杩斿洖鎻愮ず淇℃伅
+					return R.fail(2, "瀛樺湪閲嶅绋嬪簭鍚�");
+				} else {
+					ncProgramService.uploadProgramFileNew(uploadVO);
+				}
+			} else {
+				//鍚屽悕鏂囦欢鐢ㄦ埛纭涓婁紶浜嗭紙锛�
+				ncProgramService.uploadProgramFileNew(uploadVO);
+			}
+		}catch(Exception e) {
+			log.error("绋嬪簭涓婁紶鎵ц閿欒",e);
+			return R.fail("涓婁紶澶辫触:" + e.getMessage());
+		}
+		return R.success();
 	}
 
 	@PostMapping("/remove")
@@ -49,7 +89,7 @@
 
 	@GetMapping("/content")
 	@Operation(summary = "鑾峰彇鏂囦欢鍐呭", description = "浠呴檺鏂囨湰鏍煎紡鐨勫唴瀹癸紝浜岃繘鍒舵枃浠跺皢杩斿洖绌轰覆")
-	public R<String> fileContent(Long id) {
+	public R<String> fileContent(@Parameter(description = "绋嬪簭鏂囦欢id") Long id) {
 		try {
 			return R.data(ncProgramService.getFileContent(id));
 		}catch(Exception e) {
@@ -57,4 +97,72 @@
 			return R.fail(e.getMessage());
 		}
 	}
+	@GetMapping("/content-by-nodeid")
+	@Operation(summary = "鏍规嵁鑺傜偣鑾峰彇鏂囦欢鍐呭", description = "浠呴檺鏂囨湰鏍煎紡鐨勫唴瀹癸紝浜岃繘鍒舵枃浠跺皢杩斿洖绌轰覆")
+	public R<String> fileContentByNodeId(@Parameter(description = "鑺傜偣id") Long nodeId) {
+		try {
+			return R.data(ncProgramService.getFileContentByNodeId(nodeId));
+		}catch(Exception e) {
+			log.error("鍒犻櫎鏂囦欢澶辫触",e);
+			return R.fail(e.getMessage());
+		}
+	}
+
+	@GetMapping("/list-by-node")
+	@Operation(summary = "鑺傜偣绋嬪簭鏂囦欢鍒楄〃", description = "鏌愯妭鐐瑰唴鐨勭▼搴忓垪琛紝浠呪�樼▼搴忓寘鈥欏瓧鍏稿��60")
+	public R<List<NcProgramVO>> listByNode(@Parameter(description="鎵�灞炶妭鐐笽D")@RequestParam Long nodeId) {
+		return R.data(ncProgramService.listByNode(nodeId));
+	}
+
+	@PostMapping("/upgrade-process-edition")
+	@Operation(summary = "鍗囩増", description = "鍗囩骇宸ュ簭鐗堟")
+	public R<Boolean> upgradeProcessEdition(Long bindNcNodeId,String newProcessEdition ) {
+		ncProgramService.upgradeProcessEdition(bindNcNodeId,newProcessEdition);
+		return R.<Boolean>status(true);
+	}
+
+	@Operation(summary = "绋嬪簭鍒嗛〉鏌ヨ", description = "鐢ㄤ簬鍦ㄧ紪鍒惰妭鐐归�夋嫨娴佺▼瀵瑰簲鐨勭▼搴�")
+	@GetMapping("/programpickpage")
+	public R<IPage<NcProgramVO>> page(NcNodeProgramQueryVO query) {
+		IPage<NcProgramVO> pages = ncProgramService.pageQuery(query);
+		return R.data(pages);
+	}
+
+	@GetMapping("/list-by-process")
+	@Operation(summary = "娴佺▼宸查�夌▼搴忔枃浠跺垪琛�", description = "娴佺▼宸查�夌▼搴忓垪琛�")
+	public R<List<NcProgramVO>> listByProcess(@Parameter(description="鎵�灞炶妭鐐笽D")@RequestParam String processInstanceId) {
+		return R.data(ncProcessProgRefService.listByProcess(processInstanceId));
+	}
+
+	@Operation(summary = "鎿嶄綔鏃ュ織", description = "绋嬪簭鎿嶄綔鏃ュ織锛屽嵆瀹℃壒璁板綍锛屽湪涓婚〉鐐瑰嚮鏌愪竴涓▼搴忓悗鐨勪笅鏂规爣绛炬樉绀�")
+	@GetMapping("approve-records")
+	public R<List<ApproveRecordVO>> processTrace1(@Parameter(description = "绋嬪簭id") Long ncProgramId){
+		List<TaskTraceVO> result = new ArrayList<>();
+
+		return R.data(approveRecordService.listByNcProgramId(ncProgramId));
+	}
+
+	@GetMapping("/history-by-bindnodeid")
+	@Operation(summary = "鏍规嵁缁戝畾鑺傜偣id鑾峰彇鍘嗗彶鍒楄〃", description = "绋嬪簭鍘嗗彶鍒楄〃锛屼粎鈥樼▼搴忓寘鈥欏瓧鍏稿��70鐨勬暟鎹�傜敤浜庢樉绀虹▼搴忕殑鈥樺巻鍙茬増鏈��")
+	public R<List<NcProgramVO>> historyByBindNodeId(@Parameter(description="鑺傜偣ID(nodeType=70鐨勮妭鐐筰d)")@RequestParam Long bindNodeId) {
+		return R.data(ncProgramService.historyByBindNode(bindNodeId));
+	}
+	/*
+	@PostMapping("/send")
+	@Operation(summary = "绋嬪簭涓嬪彂", description = "宸ユ帶缃戞暟鎺х▼搴忎笅鍙戯紙鍙戦�佸埌鏈哄簥閰嶇疆鐨勪笅鍙戠洰褰曪級,鏍规嵁id")
+	public R<List<NcProgramVO>> send(@Parameter(description="鎵�灞炶妭鐐笽D")@RequestParam Long id) {
+		return null;//R.data(ncProcessProgRefService.listByProcess(processInstanceId));
+	}*/
+
+	@PostMapping("/send-to-machine-by-nodeid")
+	@Operation(summary = "绋嬪簭涓嬪彂", description = "涓嬪彂缁欐満搴婅瀹氱殑鐩綍")
+	public R<Void> sendToMachineByNodeId(@Parameter(description = "鑺傜偣id") Long nodeId) {
+		try {
+			ncProgramService.sendByBindNodeId(nodeId);
+			return R.success();
+		}catch(Exception e) {
+			log.error("鍒犻櫎鏂囦欢澶辫触",e);
+			return R.fail(e.getMessage());
+		}
+	}
 }

--
Gitblit v1.9.3