From 56f5157ae8dba22eb30fb6c7cb132f80b7161932 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期日, 07 九月 2025 00:53:08 +0800
Subject: [PATCH] 派工界面增加选择主管工艺
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/config/InitBean.java | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 104 insertions(+), 4 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 e4d826d..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
@@ -3,22 +3,122 @@
import jakarta.annotation.PostConstruct;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.springblade.core.oss.OssTemplate;
+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.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.stereotype.Component;
+
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.List;
@Slf4j
@AllArgsConstructor
@Component
public class InitBean {
-
- private final OssTemplate ossTemplate;
+ private final DirectorLockService directorLockService;
+ private final DynamicDirectoryWatcher directoryWatcher;
+ 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() {
log.info("搴旂敤鍚姩鏃舵墽琛屽垵濮嬪寲鎿嶄綔 @PostConstruct");
+ String networkType = paramService.networkType();
+ if(!ParamService.NETWORK_TYPE_SHEMI.equals(networkType)) {
+ machineFileScanService.scanMachineFile();//鍚姩鎵ц涓�娆℃壂鎻�
+ //宸ユ帶缃戞墠鍚姩鏂囦欢鐩戞帶
+ log.info("宸ユ帶缃戝惎鍔ㄦ枃浠剁洃鎺�");
+ initMachineDirMonitor();
+ }else{
+
+ //娑夊瘑缃�
+ taskDispatchService.resetDrawingNos();
+ }
+ }
+
+ /**
+ * 鍒濆鍖栫洃鎺х洰褰�
+ */
+ 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) {
+ Path dirPath = Paths.get(info.getPath());
+ try {
+ if(!dirPath.toFile().exists()) {
+ dirPath.toFile().mkdirs();
+ }
+ directoryWatcher.addDirectory(dirPath,getListener(info));
+ } catch (Exception e) {
+ log.error("娣诲姞鐩戞帶鐩綍寮傚父",e);
+ }
+ }
}
+ 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);
+ }
+ }
+
+ //鍔犲叆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