From 3d558e1bb5091b76a6525f6fab015574e1755200 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 09 九月 2025 18:27:30 +0800
Subject: [PATCH] 确认单下载增加容错

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/config/InitBean.java |  109 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 71 insertions(+), 38 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 8decdc5..cdc92c2 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
@@ -4,19 +4,16 @@
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.springblade.core.oss.OssTemplate;
-import org.springblade.core.tool.api.R;
-import org.springblade.mdm.basesetting.machine.MachineService;
+import org.springblade.mdm.basesetting.machine.service.MachineService;
 import org.springblade.mdm.basesetting.machine.entity.Machine;
-import org.springblade.mdm.commons.contants.ParamContants;
-import org.springblade.mdm.machineback.filewatch.DirectorLockService;
-import org.springblade.mdm.machineback.filewatch.DynamicDirectoryWatcher;
-import org.springblade.mdm.machineback.filewatch.FileWatcherService;
-import org.springblade.mdm.machineback.filewatch.MachineFileBackListener;
-import org.springblade.mdm.machineback.service.MachineBackFileService;
-import org.springblade.mdm.program.service.NcProgramService;
+import org.springblade.mdm.commons.service.ParamService;
+import org.springblade.mdm.flow.service.TaskDispatchService;
+import org.springblade.mdm.machinefile.entity.MachineFile;
+import org.springblade.mdm.machinefile.filewatch.*;
+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.context.annotation.Bean;
 import org.springframework.stereotype.Component;
 
 import java.nio.file.Path;
@@ -29,22 +26,27 @@
 @Component
 public class InitBean {
 	private final DirectorLockService directorLockService;
-	private final MachineService machineService;
-	private final FileWatcherService fileWatcherService;
-	private final ISysClient sysClient;
 	private final DynamicDirectoryWatcher directoryWatcher;
-	private final MachineBackFileService machineBackFileService;
-	private final NcProgramService ncProgramService;
-	private final OssTemplate ossTemplate;
-	//private final FileWatcherService.FileChangeListener listener;
+	private final MachineService machineService;
+	private final MachineFileService machineFileService;
+	private final ParamService paramService;
+	private final ProgramAnnotationService annotationService;
+	private final MachineFileScanService machineFileScanService;
+	private final ISysClient sysClient;
+	private final TaskDispatchService taskDispatchService;
 	@PostConstruct
 	public void init() {
-		System.out.println("搴旂敤鍚姩鏃舵墽琛屽垵濮嬪寲鎿嶄綔 @PostConstruct");
-		// 鍒濆鍖栭�昏緫
-		R<String> networkTypeR = sysClient.getParamValue(ParamContants.NETWORK_TYPE_KEY);
-		String networkType = networkTypeR.getData() == null ? ParamContants.NETWORK_TYPE_SHEMI : networkTypeR.getData();
-		if (networkType.equals(ParamContants.NETWORK_TYPE_GONGKONG)) {
+		log.info("搴旂敤鍚姩鏃舵墽琛屽垵濮嬪寲鎿嶄綔 @PostConstruct");
+		String networkType = paramService.networkType();
+		if(!ParamService.NETWORK_TYPE_SHEMI.equals(networkType)) {
+			machineFileScanService.scanMachineFile();//鍚姩鎵ц涓�娆℃壂鎻�
+			//宸ユ帶缃戞墠鍚姩鏂囦欢鐩戞帶
+			log.info("宸ユ帶缃戝惎鍔ㄦ枃浠剁洃鎺�");
 			initMachineDirMonitor();
+		}else{
+
+			//娑夊瘑缃�
+			taskDispatchService.resetDrawingNos();
 		}
 	}
 
@@ -57,24 +59,19 @@
 			log.info("鍥炰紶鎺ユ敹鐩綍宸茬粡琚叾浠栭儴缃茬偣浣嶉攣瀹氾紝鐩存帴杩斿洖");
 			return;
 		}
-		List<Machine> machineList = machineService.list();
-		List<String> monitorDirList = new ArrayList<String>();
-		machineList.forEach(m -> {
-			if (StringUtils.isNotEmpty(m.getProgReceiveDir())) {
-				String dir = StringUtils.removeEnd(StringUtils.removeEnd(m.getProgReceiveDir(), "/"), "\\");
-				if (!monitorDirList.contains(dir)) {
-					monitorDirList.add(dir);
-				}
 
-			}
+		List<Machine> machineList = machineService.getEnableMachines();;
+		List<WatchInfo> monitorInfoList = new ArrayList<>();
+		machineList.forEach(m -> {
+			addToWatchDirList(monitorInfoList,m);
 		});
-		for (String dir : monitorDirList) {
-			Path dirPath = Paths.get(dir);
+		for (WatchInfo info : monitorInfoList) {
+			Path dirPath = Paths.get(info.getPath());
 			try {
 				if(!dirPath.toFile().exists()) {
 					dirPath.toFile().mkdirs();
 				}
-				directoryWatcher.addDirectory(dirPath,getListener());
+				directoryWatcher.addDirectory(dirPath,getListener(info));
 			} catch (Exception e) {
 				log.error("娣诲姞鐩戞帶鐩綍寮傚父",e);
 			}
@@ -82,10 +79,46 @@
 
 	}
 
+	void addToWatchDirList(List<WatchInfo> monitorDirList,Machine machine){
+		String dir;
+		//鍔犲叆send鏂囦欢澶�
+		if (StringUtils.isNotEmpty(machine.getProgSendDir())) {
+			dir = StringUtils.removeEnd(StringUtils.removeEnd(machine.getProgSendDir(), "/"), "\\");
+			WatchInfo watchInfo = new WatchInfo();
+			watchInfo.setMachine(machine);
+			watchInfo.setDirType(MachineFile.DIR_TYPE_SEND);
+			watchInfo.setPath(dir);
+			if (!monitorDirList.contains(watchInfo)) {
+				monitorDirList.add(watchInfo);
+			}
+		}
 
-	FileWatcherService.FileChangeListener getListener() {
-		return new MachineFileBackListener(machineBackFileService,ncProgramService,ossTemplate);
+		//鍔犲叆rec鏂囦欢澶�
+		if (StringUtils.isNotEmpty(machine.getProgReceiveDir())) {
+			dir = StringUtils.removeEnd(StringUtils.removeEnd(machine.getProgReceiveDir(), "/"), "\\");
+			WatchInfo watchInfo = new WatchInfo();
+			watchInfo.setMachine(machine);
+			watchInfo.setDirType(MachineFile.DIR_TYPE_REC);
+			watchInfo.setPath(dir);
+			if (!monitorDirList.contains(watchInfo)) {
+				monitorDirList.add(watchInfo);
+			}
+		}
+
+		//鍔犲叆temp鏂囦欢澶�
+		if (StringUtils.isNotEmpty(machine.getProgTempDir())) {
+			dir = StringUtils.removeEnd(StringUtils.removeEnd(machine.getProgTempDir(), "/"), "\\");
+			WatchInfo watchInfo = new WatchInfo();
+			watchInfo.setMachine(machine);
+			watchInfo.setDirType(MachineFile.DIR_TYPE_TEMP);
+			watchInfo.setPath(dir);
+			if (!monitorDirList.contains(watchInfo)) {
+				monitorDirList.add(watchInfo);
+			}
+		}
 	}
 
-
+	FileWatcherService.FileChangeListener getListener(WatchInfo info) {
+		return new MachineFileChangeListener(machineFileService,annotationService,info);
+	}
 }

--
Gitblit v1.9.3