From fcee672452c02cc29e0e17ebc27a8c51698c6d0d Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 20 九月 2025 17:28:44 +0800
Subject: [PATCH] 优化程序注释

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java |  164 ++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 109 insertions(+), 55 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
index 3bdbf63..c252cb1 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
@@ -1,30 +1,29 @@
 
 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.Parameters;
-import io.swagger.v3.oas.annotations.enums.ParameterIn;
-import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.mdm.basesetting.machine.vo.MachineQueryVO;
-import org.springblade.mdm.basesetting.machine.vo.MachineVO;
-import org.springblade.mdm.program.entity.NcProgram;
+import org.springblade.mdm.flow.service.FlowProgramFileService;
+import org.springblade.mdm.flow.service.TaskDispatchService;
+import org.springblade.mdm.program.entity.NcNode;
+import org.springblade.mdm.program.service.NcNodeHisService;
 import org.springblade.mdm.program.service.NcNodeService;
-import org.springblade.mdm.program.service.NcProgramService;
 import org.springblade.mdm.program.service.ProgramFlowStatusQueryService;
-import org.springblade.mdm.program.vo.NcNodeProgramQueryVO;
-import org.springblade.mdm.program.vo.NcNodeProgramVO;
-import org.springblade.mdm.program.vo.NcNodeQueryVO;
-import org.springblade.mdm.program.vo.NcNodeVO;
+import org.springblade.mdm.program.vo.*;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.IOException;
+import java.rmi.ServerError;
+import java.util.Comparator;
 import java.util.List;
 
 /**
@@ -39,9 +38,11 @@
 @Tag(name = "绋嬪簭鑺傜偣", description = "绋嬪簭鑺傜偣")
 @Slf4j
 public class NcNodeController {
-	private final NcProgramService ncProgramService;
 	private final NcNodeService ncNodeService;
+	private final NcNodeHisService nodeHisService;
 	private final ProgramFlowStatusQueryService programFlowStatusQueryService;
+	private final FlowProgramFileService flowProgramFileService;
+	private final TaskDispatchService taskDispatchService;
 	/**
 	 * 鏂板
 	 */
@@ -49,7 +50,7 @@
 	@Operation(summary = "鏂板鑺傜偣", description = "鑺傜偣淇℃伅,id淇濇寔绌�")
 	public R<Boolean> save(@RequestBody NcNodeVO vo) {
 		ncNodeService.saveNcCode(vo);
-		return R.<Boolean>status(true);
+		return R.status(true);
 	}
 
 
@@ -57,14 +58,33 @@
 	@Operation(summary = "淇敼鑺傜偣", description = "鑺傜偣淇℃伅,蹇呴』浼犲叆ID")
 	public R<Boolean> update(@RequestBody NcNodeVO vo) {
 		ncNodeService.updateNcNode(vo);
-		return R.<Boolean>status(true);
+		return R.status(true);
 	}
 
 	@PostMapping("/remove")
 	@Operation(summary = "鍒犻櫎鑺傜偣")
 	public R<Boolean> remove(Long id) {
 		ncNodeService.removeById(id);
-		return R.<Boolean>status(true);
+		return R.status(true);
+	}
+
+	@PostMapping("/lock")
+	@Operation(summary = "閿佸畾鑺傜偣(绋嬪簭鍖呭悕)")
+	public R<Boolean> lock(@Parameter(description="绋嬪簭鍖呭悕鑺傜偣id)")Long id,@Parameter(description="閿佸畾鍘熷洜)")String remark) {
+		ncNodeService.lock(id,remark);
+		return R.status(true);
+	}
+
+	@GetMapping("/query-lock-remark")
+	@Operation(summary = "鏌ヨ閿佸畾鍘熷洜")
+	public R<String> queryLockRemark(@Parameter(description="绋嬪簭鍖呭悕鑺傜偣id)")Long id) {
+
+		NcNode node = ncNodeService.getById(id);
+		if(node.hasLocked()){
+			return R.data(node.getRemark());
+		}else{
+			return R.data(StringUtils.EMPTY);
+		}
 	}
 
 	@GetMapping("/lazy-list")
@@ -73,65 +93,99 @@
 		List<NcNodeVO> list = ncNodeService.lazyList(parentId);
 		if(list != null && !list.isEmpty()) {
 			for(NcNodeVO ncNodeVO : list) {
-				if(!"70".equals(ncNodeVO.getNodeType())){
-					break;
-				}
-				NcProgram program = ncProgramService.getByBindNodeId(ncNodeVO.getId());
-				if(program != null) {
-					ncNodeVO.setProcessEdition(program.getProcessEdition());
-					ncNodeVO.setDrawingNo(program.getDrawingNo());
-					ncNodeVO.setMachineCode(program.getMachineCode());
-					ncNodeVO.setProcessName(program.getProcessName());
-					ncNodeVO.setVersionNumber(program.getVersionNumber());
-
-					//record涓壘涓嶅埌鏃舵湭鍚姩0锛涙壘鍒颁簡闇�瑕佹煡璇㈡祦绋嬪疄渚媔d锛屾槸鍚﹁繍琛屼腑
-					ncNodeVO.setFlowStatus(programFlowStatusQueryService.queryFlowStatus(program.getId()));
+				if(NcNode.TYPE_PROGRAM_PACKAGE.equals(ncNodeVO.getNodeType())){
+					ncNodeVO.setFlowStatus(programFlowStatusQueryService.queryFlowStatus(ncNodeVO.getProcessInstanceId()));
 				}
 			}
+			//鏂囦欢锛屾寜鐓у厛绋嬪簭锛屽悗鍏朵粬鎺掑簭
+			if(list.get(0).getNodeType().equals(NcNode.TYPE_PROGRAM_FILE)){
+				NcNode parentNode = ncNodeService.getById(parentId);
+				//list.sort(Comparator.comparing().thenComparing(NcNodeVO::getName));
+				Comparator<NcNodeVO> cp = new Comparator<NcNodeVO>() {
+					@Override
+					public int compare(NcNodeVO n1, NcNodeVO n2) {
+						if (n1.getName().startsWith(parentNode.getName()) && !n2.getName().startsWith(parentNode.getName())) {
+							return -1;
+						} else {
+							return 1;
+						}
+					}
+				};
+				list.sort(cp.thenComparing(NcNodeVO::getName));
+				/*
+				list.sort((n1, n2) -> {
 
+					if(n1.getName().startsWith(parentNode.getName())){
+						return 1;
+					}else{
+						return n1.getName().compareTo(n2.getName());
+					}
+
+				});*/
+				/*
+				Collections.sort(userList, new Comparator<User>() {
+					@Override
+					public int compare(User u1, User u2) {
+						return u1.getName().compareTo(u2.getName());
+					}
+				});*/
+			}
 		}
 		return R.data(list);
 	}
 
 	@GetMapping("/search-list")
 	@Operation(summary = "鏌ヨ鏍戠姸鍒楄〃", description = "绋嬪簭鐩綍鏍戝舰缁撴瀯锛堟煡璇笓鐢級")
-	public R<List<NcNodeVO>> searchList(NcNodeQueryVO queryVO) {
+	public R<List<NcNodeVO>> searchList(NcNodeOldQueryVO queryVO) {
 		if(Func.isEmpty(queryVO.getName())){
 			return R.fail("璇疯緭鍏ュ悕绉�");
 		}
 		List<NcNodeVO> list = ncNodeService.searchList(queryVO);
-		/*
-		if(list != null && !list.isEmpty()) {
-			for(NcNodeVO ncNodeVO : list) {
-				if(!"70".equals(ncNodeVO.getNodeType())){
-					break;
-				}
-				NcProgram program = ncProgramService.getByBindNodeId(ncNodeVO.getId());
-				if(program != null) {
-					ncNodeVO.setProcessEdition(program.getProcessEdition());
-					ncNodeVO.setDrawingNo(program.getDrawingNo());
-					ncNodeVO.setMachineCode(program.getMachineCode());
-					ncNodeVO.setProcessName(program.getProcessName());
-					ncNodeVO.setVersionNumber(program.getVersionNumber());
 
-					//record涓壘涓嶅埌鏃舵湭鍚姩0锛涙壘鍒颁簡闇�瑕佹煡璇㈡祦绋嬪疄渚媔d锛屾槸鍚﹁繍琛屼腑
-					ncNodeVO.setFlowStatus(programFlowStatusQueryService.queryFlowStatus(program.getId()));
-				}
-			}
-
+		return R.data(list);
+	}
+	@GetMapping("/search-list2")
+	@Operation(summary = "娑夊瘑缃戦椤垫悳绱�", description = "鎼滅储鎸囧畾闆剁粍浠跺彿")
+		public R<List<NcNodeVO>> search(NcNodeQueryVO queryVO) {
+		if(Func.isEmpty(queryVO.getDrawingNo())){
+			return R.fail("璇疯緭鍏ラ浂缁勪欢鍙�");
 		}
+		List<NcNodeVO> list = ncNodeService.searchList2(queryVO);
 
-		 */
 		return R.data(list);
 	}
 
-	/*
-	@Operation(summary = "绋嬪簭鍒嗛〉鏌ヨ", description = "鐢ㄤ簬鍦ㄧ紪鍒惰妭鐐归�夋嫨娴佺▼瀵瑰簲鐨勭▼搴�")
-	@GetMapping("/programpickpage")
-	public R<IPage<NcNodeProgramVO>> page(NcNodeProgramQueryVO query) {
-		IPage<NcNodeProgramVO> pages = ncNodeService.programPageQuery(query);
-		return R.data(pages);
+	@GetMapping("/drawing-no-pick")
+	@Operation(summary = "棣栭〉鎼滅储闆剁粍浠朵笅鎷夋暟鎹�", description = "鎼滅储鎸囧畾闆剁粍浠跺彿")
+	public R<List<String>> drawingNoPick(String drawingNo) {
+		return R.data(taskDispatchService.drawingNoSeletDropList(drawingNo));
+	}
+/*
+
+	@GetMapping("/history-by-nodeid")
+	@Operation(summary = "鏍规嵁缁戝畾鑺傜偣id鑾峰彇鍘嗗彶鍒楄〃", description = "绋嬪簭鍘嗗彶鍒楄〃锛屼粎鈥樼▼搴忓寘鈥欏瓧鍏稿��60鐨勬暟鎹�傜敤浜庢樉绀虹▼搴忕殑鈥樺巻鍙茬増鏈��")
+	public R<List<NcNodeVO>> historyByBindNodeId(@Parameter(description="鑺傜偣ID(nodeType=60鐨勮妭鐐筰d)")@RequestParam Long id) {
+		return R.data(this.nodeHisService.historyByNodeId(id));
 	}
 */
 
+	@GetMapping("/compare-content")
+	@Operation(summary = "瀵规瘮鍐呭鏁版嵁", description = "鏌ヨ瀵规瘮鍐呭鐨�2涓枃鏈暟鎹�")
+	public R<CompareDataVO> compareContent(@Parameter(description="鑺傜偣1鐨処D(nodeType=70鐨勮妭鐐筰d)")Long id1,@Parameter(description="鑺傜偣2鐨処D(nodeType=70鐨勮妭鐐筰d)")Long id2) {
+		CompareDataVO vo = new CompareDataVO();
+		NcNode node1 = ncNodeService.getById(id1);
+		NcNode node2 = ncNodeService.getById(id2);
+		if(node1.getFlowProgramFileId() != null) {
+			vo.setContent1(flowProgramFileService.getFileContent(node1.getFlowProgramFileId()));
+		}
+		if(node2.getFlowProgramFileId() != null) {
+			vo.setContent2(flowProgramFileService.getFileContent(node2.getFlowProgramFileId()));
+		}
+
+		return R.data(vo);
+	}
+
+
+
+
 }

--
Gitblit v1.9.3