From b5b668d2728665ca05d15be8862ceb0a2796fc67 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 11 八月 2025 09:18:10 +0800
Subject: [PATCH] 增加替换文件上传

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java |  170 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 90 insertions(+), 80 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java
index f41b3e9..c105bf8 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java
@@ -62,6 +62,7 @@
 import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
 /**
  * 宸ヤ綔娴佹湇鍔″疄鐜扮被
@@ -88,38 +89,6 @@
 		return this.getBaseMapper().getCuredNcProgram(drwaingNo,machine.getMachineGroupCode());
 	}
 
-
-	/**
-	 * 涓婁紶绋嬪簭鏂囦欢鍒版寚瀹氳妭鐐�
-	 * @param uploadVO 涓婁紶鏂囦欢琛ㄥ崟鏁版嵁
-	 */
-	public void uploadProgramFile(NcProgramUploadVO uploadVO) {
-
-		MultipartFile file = uploadVO.getFile();
-		BladeFile bfile = ossTemplate.putFile(uploadVO.getFile());
-		String link = bfile.getLink();
-		//淇濆瓨profame
-		NcProgram prog = new NcProgram();
-		prog.setCode(generageCode());
-		prog.setName(file.getOriginalFilename());
-		prog.setNcNodeId(uploadVO.getNodeId());
-		prog.setOssName(bfile.getName());
-		prog.setDrawingNo(uploadVO.getDrawingNo());
-		prog.setProcessEdition(uploadVO.getProcessEdition());
-		prog.setIsLastEdition(1);
-		boolean isTextFile = false;
-		try {
-			isTextFile = FileContentUtil.isTextFile(file.getInputStream());
-		} catch (IOException e) {
-			log.warn("鍒ゆ柇鏄惁鏂囨湰鏂囦欢寮傚父",e);
-		}
-		prog.setIsTextFile(isTextFile);
-		prog.setUrl(link);
-		prog.setCategory(uploadVO.getCategory());
-
-		this.save(prog);
-	}
-
 	/**
 	 * 涓婁紶绋嬪簭鏂囦欢鍒版寚瀹氳妭鐐�
 	 * @param uploadVO 涓婁紶鏂囦欢琛ㄥ崟鏁版嵁
@@ -139,6 +108,7 @@
 		prog.setProcessEdition(uploadVO.getProcessEdition());
 		prog.setIsLastEdition(1);
 		prog.setMachineCode(uploadVO.getMachineCode());
+		prog.setProcessName(uploadVO.getProcessName());
 		boolean isTextFile = false;
 		try {
 			isTextFile = FileContentUtil.isTextFile(file.getInputStream());
@@ -157,6 +127,10 @@
 		node.setDrawingNo(uploadVO.getDrawingNo());
 		node.setProcessName(uploadVO.getProcessName());
 
+		NcNode parentNode = nodeService.getById(uploadVO.getNodeId());
+		node.setParentIds(parentNode.getParentIds()+","+uploadVO.getNodeId());
+		//uploadVO.getre
+		//node.setDescription(uploadVO.getDrawingNo());
 		nodeService.save(node);
 
 		prog.setBindNcNodeId(node.getId());
@@ -170,50 +144,7 @@
 		DecimalFormat df = new DecimalFormat("0000000000");
 		return df.format(program.getId());
 	}
-	/**
-	 * 鍒犻櫎涓�涓▼搴�
-	 * @param id 绋嬪簭id
-	 */
-	public String getFileContent(Long id) {
-		String result  ="";
 
-		NcProgram prog = this.getById(id);
-		if(prog.getIsTextFile()!=null && prog.getIsTextFile()){
-			String fileName = prog.getOssName();
-			try (InputStream inputStream = ossTemplate.statFileStream(fileName)) {
-				result = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
-			} catch (IOException e) {
-				throw new RuntimeException(e);
-			}
-		}else{
-			result = "闈炴枃鏈牸寮忔枃浠�";
-		}
-		return result;
-	}
-
-	/**
-	 * 鑾峰彇鏂囦欢鍐呴タ鍝﹂偅涓�
-	 * @param ncNodeId 鑺傜偣id
-	 */
-	public String getFileContentByNodeId(Long ncNodeId) {
-		String result  ="";
-		NcNode node = this.nodeService.getById(ncNodeId);
-		LambdaQueryWrapper<NcProgram> wrapper = new LambdaQueryWrapper<>();
-		wrapper.eq(NcProgram::getBindNcNodeId, ncNodeId);
-		wrapper.eq(NcProgram::getIsLastEdition,1);
-		NcProgram prog = this.getOne(wrapper);
-		if(prog.getIsTextFile()!=null && prog.getIsTextFile()){
-			String fileName = prog.getOssName();
-			try (InputStream inputStream = ossTemplate.statFileStream(fileName)) {
-				result = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
-			} catch (IOException e) {
-				throw new RuntimeException(e);
-			}
-		}else{
-			result = "闈炴枃鏈牸寮忔枃浠�";
-		}
-		return result;
-	}
 	/**
 	 * 鍒犻櫎涓�涓▼搴�
 	 * @param id
@@ -242,13 +173,15 @@
 
 	/**
 	 * 鍗囩増(鍗囩骇宸ュ簭鐗堟),鍗囩骇宸ュ簭鐗堟湰锛堝寘鎷▼搴忓拰鍏朵粬闄勪欢锛�
-	 * @param id 绋嬪簭鏂囦欢id
+	 * @param bindNcNodeId 绋嬪簭鏂囦欢缁戝畾鐨勮妭鐐筰d
 	 * @param newProcessEdition 鏂扮増娆�
 	 */
-	public void upgradeProcessEdition(long id,String newProcessEdition) {
-		NcProgram prog = this.getById(id);
+	public void upgradeProcessEdition(Long bindNcNodeId,String newProcessEdition) {
+		//NcProgram prog = this.getById(id);
+		NcProgram prog = getByBindNodeId(bindNcNodeId);
+
 		//灏嗙幇鏈夌▼搴忔洿鏂颁负闈炴渶鏂扮増鏈�
-		this.update(Wrappers.lambdaUpdate(NcProgram.class).eq(NcProgram::getId,id).set(NcProgram::getIsLastEdition,0));
+		this.update(Wrappers.lambdaUpdate(NcProgram.class).eq(NcProgram::getBindNcNodeId,bindNcNodeId).set(NcProgram::getIsLastEdition,0));
 
 		NcProgram newVerProg = new NcProgram();
 		BeanUtils.copyProperties(prog, newVerProg);
@@ -278,7 +211,8 @@
 		wrapper.eq(NcProgram::getBindNcNodeId, bindNcNodeId);
 		wrapper.eq(NcProgram::getIsLastEdition,1);
 		NcProgram prog = this.getOne(wrapper);
-		String filePath = prog.getName();
+
+		String filePath = getFilePath(prog);
 		try(InputStream ins = ossTemplate.statFileStream(prog.getOssName());){
 			File targetFile = new File(filePath);
 			FileUtils.copyInputStreamToFile(ins, targetFile);
@@ -297,4 +231,80 @@
 
 		return dirPath+File.separator+prog.getName();
 	}
+
+	/**
+	 *
+	 * @param bindNcNodeId
+	 * @return
+	 */
+	public NcProgram getByBindNodeId(Long bindNcNodeId) {
+
+		LambdaQueryWrapper<NcProgram> wrapper = new LambdaQueryWrapper<>();
+		wrapper.eq(NcProgram::getBindNcNodeId, bindNcNodeId);
+		wrapper.eq(NcProgram::getIsLastEdition,1);
+
+		Optional<NcProgram> progOpt = this.getOneOpt(wrapper);
+
+		return progOpt.orElse(null);
+	}
+
+	/**
+	 * 鏍规嵁绋嬪簭鍚嶇О鑾峰彇鏈�鏂扮殑绋嬪簭鏁版嵁
+	 * @param name 绋嬪簭鍚嶇О
+	 * @return
+	 */
+	public NcProgram getByName(String name) {
+		LambdaQueryWrapper<NcProgram> wrapper = new LambdaQueryWrapper<>();
+		wrapper.eq(NcProgram::getName, name);
+		wrapper.eq(NcProgram::getIsLastEdition,1);
+		Optional<NcProgram> progOpt = this.getOneOpt(wrapper);
+
+		return progOpt.orElse(null);
+	}
+
+	/**
+	 *
+	 * @param nodeId 涓婄骇鑺傜偣id
+	 * @param name 绋嬪簭鍚嶇О
+	 */
+	public boolean programExistsUnderNode(Long nodeId, String name) {
+		LambdaQueryWrapper<NcProgram> wrapper = new LambdaQueryWrapper<>();
+		wrapper.eq(nodeId!=null,NcProgram::getNcNodeId, nodeId);
+		wrapper.eq(NcProgram::getName, name);
+		wrapper.eq(NcProgram::getIsLastEdition,1);
+
+		return this.count(wrapper)>0;
+	}
+
+	/**
+	 *
+	 * @param nodeId 涓婄骇鑺傜偣id
+	 * @param name 绋嬪簭鍚嶇О
+	 */
+	public boolean programExistsUnderOtherNode(Long nodeId, String name) {
+		LambdaQueryWrapper<NcProgram> wrapper = new LambdaQueryWrapper<>();
+		wrapper.ne(NcProgram::getNcNodeId, nodeId);
+		wrapper.eq(NcProgram::getName, name);
+		wrapper.eq(NcProgram::getIsLastEdition,1);
+
+		return this.count(wrapper)>0;
+	}
+
+	/**
+	 * 鏄剧ず绋嬪簭鐨勫巻鍙茶褰曞垪琛�
+	 * @param bindNodeId
+	 * @return
+	 */
+	/*
+	public List<NcProgramVO> historyByBindNode(Long bindNodeId) {
+
+		NcProgram program = this.getByBindNodeId(bindNodeId);
+		List<NcProgram> list = this.lambdaQuery().eq(NcProgram::getName,program.getName())
+			.eq(NcProgram::getNcNodeId,program.getNcNodeId()).orderByDesc(NcProgram::getCreateTime).list();
+
+		return list.stream().map(p -> {
+			NcProgramVO vo = new NcProgramVO();
+			BeanUtils.copyProperties(p,vo);
+			return vo;}).toList();
+	}*/
 }

--
Gitblit v1.9.3