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 | 134 ++++++++++++++++++++++++++++++--------------
1 files changed, 90 insertions(+), 44 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 c4787dd..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
@@ -4,20 +4,17 @@
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.filewatch.ProgramBackMonitor;
-import org.springblade.mdm.program.service.NcProgramService;
-import org.springblade.system.feign.ISysClient;
-import org.springframework.context.annotation.Bean;
+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;
+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.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Component;
import java.nio.file.Path;
@@ -28,61 +25,62 @@
@Slf4j
@AllArgsConstructor
@Component
+@EnableAsync
public class InitBean {
private final DirectorLockService directorLockService;
- private final MachineService machineService;
- private final FileWatcherService fileWatcherService;
-
private final DynamicDirectoryWatcher directoryWatcher;
- private final MachineBackFileService machineBackFileService;
- private final NcProgramService ncProgramService;
- private final OssTemplate ossTemplate;
-
- private final ProgramBackMonitor programBackMonitor;
- //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 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)) {
+ if(taskPropertieBean.isFileScanOnStart()) {
+ machineFileScanService.scanMachineFile();
+ }
- programBackMonitor.monitorDir();
- // 鍒濆鍖栭�昏緫
- /*
- 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("宸ユ帶缃戝惎鍔ㄦ枃浠剁洃鎺�");
initMachineDirMonitor();
+ }else{
+ //娑夊瘑缃�
+ taskDispatchService.resetDrawingNos();
}
- */
-
}
/**
* 鍒濆鍖栫洃鎺х洰褰�
*/
void initMachineDirMonitor() {
+ /*
boolean locked = directorLockService.acquireLock();
if (!locked) {
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) {
try {
+ Path dirPath = Paths.get(info.getPath());
if(!dirPath.toFile().exists()) {
dirPath.toFile().mkdirs();
}
- directoryWatcher.addDirectory(dirPath,getListener());
+ directoryWatcher.addDirectory(dirPath,getListener(info));
} catch (Exception e) {
log.error("娣诲姞鐩戞帶鐩綍寮傚父",e);
}
@@ -90,10 +88,58 @@
}
+ void addToWatchDirList(List<WatchInfo> monitorDirList,Machine machine){
+ String dir;
+ //鍔犲叆send鏂囦欢澶�
+ if (StringUtils.isNotEmpty(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);
+ 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(), "/"), "\\");
+ dir = fixMachineDir(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(), "/"), "\\");
+ dir = fixMachineDir(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);
+ }
+ }
}
+ /**
+ * 缈昏瘧鍏变韩鏂囦欢澶硅矾寰勫埌 鏍囧噯缃戠粶璺緞锛屽幓鎺夋湯灏捐矾寰勫垎鍓蹭笉
+ * @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