From ee6af8dff591418168d5104d281a6f0bf3c961e8 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期三, 17 九月 2025 20:48:48 +0800
Subject: [PATCH] 现场编制功能适配
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/config/InitBean.java | 121 ++++++++++++++++++++++++++--------------
1 files changed, 79 insertions(+), 42 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 972dc77..671c44d 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,18 +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.system.feign.ISysClient;
+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;
@@ -26,34 +24,42 @@
@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 ISysClient sysClient;
- //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;
+
+ //@Value("${task.file_scan_on_start:true}")
+ //@Value("${task.fileScanOnStart:true}")
+ //public boolean fileScanOnStart;
+ 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();
+ }
- // 鍒濆鍖栭�昏緫
-
- 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();
@@ -61,24 +67,19 @@
log.info("鍥炰紶鎺ユ敹鐩綍宸茬粡琚叾浠栭儴缃茬偣浣嶉攣瀹氾紝鐩存帴杩斿洖");
return;
}
- List<Machine> machineList = machineService.lambdaQuery().eq(Machine::getStatus,Machine.STATUS_ENABLE).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);
}
@@ -86,10 +87,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