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

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/config/InitBean.java |   32 +++++++++++++++++++++++++-------
 1 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/config/InitBean.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/config/InitBean.java
index da959cb..08f278e 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/config/InitBean.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/config/InitBean.java
@@ -6,6 +6,7 @@
 import org.apache.commons.lang3.StringUtils;
 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.commons.service.ParamService;
 import org.springblade.mdm.flow.service.TaskDispatchService;
 import org.springblade.mdm.machinefile.entity.MachineFile;
@@ -13,8 +14,6 @@
 import org.springblade.mdm.machinefile.service.MachineFileScanService;
 import org.springblade.mdm.machinefile.service.MachineFileService;
 import org.springblade.mdm.program.service.ProgramAnnotationService;
-import org.springblade.system.feign.ISysClient;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.stereotype.Component;
 
@@ -36,18 +35,21 @@
 	private final ProgramAnnotationService annotationService;
 	private final MachineFileScanService machineFileScanService;
 	private final TaskDispatchService taskDispatchService;
+	private final MachineDirTranslator dirTranslator;
+	private final TaskPropertieBean taskPropertieBean;
 	@PostConstruct
 	public void init() {
 		log.info("搴旂敤鍚姩鏃舵墽琛屽垵濮嬪寲鎿嶄綔 @PostConstruct");
 		String networkType = paramService.networkType();
 		if(!ParamService.NETWORK_TYPE_SHEMI.equals(networkType)) {
-			machineFileScanService.scanMachineFile();
+			if(taskPropertieBean.isFileScanOnStart()) {
+				machineFileScanService.scanMachineFile();
+			}
 
 			//宸ユ帶缃戞墠鍚姩鏂囦欢鐩戞帶
 			log.info("宸ユ帶缃戝惎鍔ㄦ枃浠剁洃鎺�");
 			initMachineDirMonitor();
 		}else{
-
 			//娑夊瘑缃�
 			taskDispatchService.resetDrawingNos();
 		}
@@ -57,17 +59,21 @@
 	 * 鍒濆鍖栫洃鎺х洰褰�
 	 */
 	void initMachineDirMonitor() {
+		/*
 		boolean locked = directorLockService.acquireLock();
 		if (!locked) {
 			log.info("鍥炰紶鎺ユ敹鐩綍宸茬粡琚叾浠栭儴缃茬偣浣嶉攣瀹氾紝鐩存帴杩斿洖");
 			return;
 		}
 
+		 */
+
 		List<Machine> machineList = machineService.getEnableMachines();;
 		List<WatchInfo> monitorInfoList = new ArrayList<>();
 		machineList.forEach(m -> {
 			addToWatchDirList(monitorInfoList,m);
 		});
+
 		for (WatchInfo info : monitorInfoList) {
 			try {
 				Path dirPath = Paths.get(info.getPath());
@@ -86,7 +92,8 @@
 		String dir;
 		//鍔犲叆send鏂囦欢澶�
 		if (StringUtils.isNotEmpty(machine.getProgSendDir())) {
-			dir = StringUtils.removeEnd(StringUtils.removeEnd(machine.getProgSendDir(), "/"), "\\");
+			//dir = dirTranslator.trans(StringUtils.removeEnd(StringUtils.removeEnd(machine.getProgSendDir(), "/"), "\\"));
+			dir = fixMachineDir(machine.getProgSendDir());
 			WatchInfo watchInfo = new WatchInfo();
 			watchInfo.setMachine(machine);
 			watchInfo.setDirType(MachineFile.DIR_TYPE_SEND);
@@ -98,7 +105,8 @@
 
 		//鍔犲叆rec鏂囦欢澶�
 		if (StringUtils.isNotEmpty(machine.getProgReceiveDir())) {
-			dir = StringUtils.removeEnd(StringUtils.removeEnd(machine.getProgReceiveDir(), "/"), "\\");
+			//dir = StringUtils.removeEnd(StringUtils.removeEnd(machine.getProgReceiveDir(), "/"), "\\");
+			dir = fixMachineDir(machine.getProgReceiveDir());
 			WatchInfo watchInfo = new WatchInfo();
 			watchInfo.setMachine(machine);
 			watchInfo.setDirType(MachineFile.DIR_TYPE_REC);
@@ -110,7 +118,8 @@
 
 		//鍔犲叆temp鏂囦欢澶�
 		if (StringUtils.isNotEmpty(machine.getProgTempDir())) {
-			dir = StringUtils.removeEnd(StringUtils.removeEnd(machine.getProgTempDir(), "/"), "\\");
+			//dir = StringUtils.removeEnd(StringUtils.removeEnd(machine.getProgTempDir(), "/"), "\\");
+			dir = fixMachineDir(machine.getProgTempDir());
 			WatchInfo watchInfo = new WatchInfo();
 			watchInfo.setMachine(machine);
 			watchInfo.setDirType(MachineFile.DIR_TYPE_TEMP);
@@ -121,6 +130,15 @@
 		}
 	}
 
+	/**
+	 * 缈昏瘧鍏变韩鏂囦欢澶硅矾寰勫埌 鏍囧噯缃戠粶璺緞锛屽幓鎺夋湯灏捐矾寰勫垎鍓蹭笉
+	 * @param dirpath 鍘熷璺緞
+	 * @return 杞崲鍚庣殑璺緞
+	 */
+	String fixMachineDir(String dirpath){
+		return dirTranslator.trans(StringUtils.removeEnd(StringUtils.removeEnd(dirpath, "/"), "\\"));
+	}
+
 	FileWatcherService.FileChangeListener getListener(WatchInfo info) {
 		return new MachineFileChangeListener(machineFileService,annotationService,info);
 	}

--
Gitblit v1.9.3