From a7426b81b0bd5b4bb1ed68fd6ecb98f405def280 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 04 八月 2025 17:47:07 +0800
Subject: [PATCH] dnc导出还没测

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramController.java |   52 +++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 39 insertions(+), 13 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 a8aa0e8..cef6a1d 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
@@ -7,23 +7,21 @@
 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.service.FlowProgramFileService;
 import org.springblade.mdm.flow.vo.ApproveRecordVO;
 import org.springblade.mdm.flow.vo.TaskTraceVO;
+import org.springblade.mdm.program.entity.NcNode;
 import org.springblade.mdm.program.entity.NcProgram;
+import org.springblade.mdm.program.service.NcNodeService;
 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;
@@ -45,14 +43,35 @@
 	private final ProcessProgRefService ncProcessProgRefService;
 
 	private final ApproveRecordService approveRecordService;
-
+	private final NcNodeService ncNodeService;
+	private final FlowProgramFileService flowProgramFileService;
 	@PostMapping("/upload")
 	@Operation(summary = "涓婁紶鏂囦欢", description = "涓婁紶绋嬪簭/闄勪欢鏂囦欢")
 	public R<Boolean> upload(NcProgramUploadVO uploadVO) {
-		//@Parameter(description="鏂囦欢") @RequestPart("file") MultipartFile file, @Parameter(description="鎵�灞炶妭鐐笽D")@RequestParam Long nodeId,
-		//							 @Parameter(description="鏂囦欢鍒嗙被锛屼娇鐢ㄥ瓧鍏�(node_file_type)") @RequestParam String category
-		ncProgramService.uploadProgramFileNew(uploadVO);
-		return R.<Boolean>status(true);
+		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")
@@ -81,7 +100,12 @@
 	@Operation(summary = "鏍规嵁鑺傜偣鑾峰彇鏂囦欢鍐呭", description = "浠呴檺鏂囨湰鏍煎紡鐨勫唴瀹癸紝浜岃繘鍒舵枃浠跺皢杩斿洖绌轰覆")
 	public R<String> fileContentByNodeId(@Parameter(description = "鑺傜偣id") Long nodeId) {
 		try {
-			return R.data(ncProgramService.getFileContentByNodeId(nodeId));
+			NcNode ncnode = ncNodeService.getById(nodeId);
+			if(ncnode.getFlowProgramFileId() != null) {
+				return R.data(flowProgramFileService.getFileContent(ncnode.getFlowProgramFileId()));
+			}else{
+				return R.data("鎵句笉鍒版枃浠�");
+			}
 		}catch(Exception e) {
 			log.error("鍒犻櫎鏂囦欢澶辫触",e);
 			return R.fail(e.getMessage());
@@ -107,12 +131,12 @@
 		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")
@@ -121,6 +145,8 @@
 
 		return R.data(approveRecordService.listByNcProgramId(ncProgramId));
 	}
+
+
 	/*
 	@PostMapping("/send")
 	@Operation(summary = "绋嬪簭涓嬪彂", description = "宸ユ帶缃戞暟鎺х▼搴忎笅鍙戯紙鍙戦�佸埌鏈哄簥閰嶇疆鐨勪笅鍙戠洰褰曪級,鏍规嵁id")

--
Gitblit v1.9.3