From 4b397a21eb979617f4fe9ff9fc1edb7a1be72900 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 29 九月 2025 17:45:29 +0800
Subject: [PATCH] 工控网涉密网联调

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java |   40 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 36 insertions(+), 4 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java
index f0414b3..9422e42 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java
@@ -13,6 +13,7 @@
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.mdm.basesetting.machine.service.MachineService;
 import org.springblade.mdm.basesetting.machine.entity.Machine;
+import org.springblade.mdm.commons.service.MachineDirTranslator;
 import org.springblade.mdm.machinefile.entity.MachineFile;
 import org.springblade.mdm.machinefile.entity.MachineFileChangeHis;
 import org.springblade.mdm.machinefile.mapper.MachineFileMapper;
@@ -21,6 +22,7 @@
 import org.springblade.mdm.program.vo.CompareDataVO;
 import org.springblade.mdm.statreport.vo.MachineFileExceptionQueryVO;
 import org.springblade.mdm.utils.FileContentUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -30,6 +32,7 @@
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.Optional;
 
 /**
  * 鏈哄簥鏂囦欢
@@ -43,7 +46,7 @@
 	private final MachineService machineService;
 	private final MachineFileChangeHisService machineFileChangeHisService;
 	private final OssTemplate ossTemplate;
-
+	private MachineDirTranslator machineDirTranslator;
 	/**
 	 * 鑾峰彇鏂囦欢鍏ㄨ矾寰�
 	 * @param id 鏁版嵁id
@@ -86,9 +89,9 @@
 
 	/**
 	 * 鑾峰彇鍩烘湰璺緞
-	 * @param machine
-	 * @param dirType
-	 * @return
+	 * @param machine 鏈哄簥
+	 * @param dirType 鐩綍绫诲瀷
+	 * @return 鐩綍鍩烘湰璺緞
 	 */
 	public static String getBasePath(Machine machine,String dirType){
 		String dirPath;
@@ -220,6 +223,7 @@
 			existFileInDb.setProgramStatus(mf.getProgramStatus());
 			existFileInDb.setFileCreateTime(mf.getFileCreateTime());
 			existFileInDb.setFileModifyTime(mf.getFileModifyTime());
+			existFileInDb.setStatus(MachineFile.STATUS_NORMAL);
 			if(!com.alibaba.excel.util.StringUtils.equals(existFileInDb.getMd5(),mf.getMd5())){
 				//鏂囦欢鍐呭鍙戠敓鍙樺寲浜�,璁剧疆鐘舵�佷负鍒濆鐘舵��
 				existFileInDb.setStatus(MachineFile.STATUS_NORMAL);
@@ -246,4 +250,32 @@
     public IPage<MachineFile> exceptionFilePageQuery(MachineFileExceptionQueryVO query) {
 		return baseMapper.exceptionFilePageQuery(Condition.getPage(query),query);
     }
+
+	/**
+	 * 淇敼鏂囦欢鍚嶇О
+	 * @param id 鏂囦欢id
+	 * @param name 鏂板悕绉�
+	 */
+	public void changeName(Long id, String name) throws IOException {
+		MachineFile machineFile = getById(id);
+		if(machineFile.getName().equals(name)) {
+			return;
+		}
+		Machine machine = machineService.getByCode(machineFile.getMachineCode());
+		String baseDir = machineDirTranslator.trans(getBasePath(machine,machineFile.getDirType()));
+		String targetFilePath = baseDir + File.separator + name;
+		Path filePath = Paths.get(targetFilePath);
+
+		if(filePath.toFile().exists()) {
+			throw new ServiceException("鍚屽悕鏂囦欢宸插瓨鍦細"+name);
+		}
+		Files.move(Paths.get(baseDir+File.separator+machineFile.getName()),filePath);
+		baseMapper.deleteById(id);
+	}
+
+	public MachineFile getByNameAndMachineInDir(String name, String machineCode, String dirType) {
+		Optional<MachineFile> optFIle = this.lambdaQuery().eq(MachineFile::getName, name).eq(MachineFile::getMachineCode, machineCode)
+			.eq(MachineFile::getDirType, dirType).eq(MachineFile::getStatus, MachineFile.STATUS_NORMAL).oneOpt();
+		return optFIle.orElse(null);
+	}
 }

--
Gitblit v1.9.3