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/basesetting/machine/service/MachineService.java | 65 +++++++++++++++++++++-----------
1 files changed, 42 insertions(+), 23 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/service/MachineService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/service/MachineService.java
index 6915e01..cbb5456 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/service/MachineService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/service/MachineService.java
@@ -16,6 +16,7 @@
import org.springblade.mdm.basesetting.machine.vo.MachineSaveVO;
import org.springblade.mdm.basesetting.machine.vo.MachineVO;
import org.springblade.mdm.basesetting.producedivision.service.MdmDeptService;
+import org.springblade.mdm.commons.service.MachineDirTranslator;
import org.springblade.mdm.commons.service.ParamService;
import org.springblade.mdm.machinefile.entity.MachineFile;
import org.springblade.mdm.machinefile.filewatch.DynamicDirectoryWatcher;
@@ -35,6 +36,7 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
+import java.util.Optional;
@Service
public class MachineService extends BizServiceImpl<MachineMapper, Machine> {
@@ -44,6 +46,9 @@
private DynamicDirectoryWatcher dynamicDirectoryWatcher;
@Autowired
private ParamService paramService;
+ @Autowired
+ private MachineDirTranslator machineDirTranslator;
+
@Transactional(rollbackFor = Exception.class)
public void saveMachine(MachineSaveVO vo) throws IOException {
checkMachine(vo);
@@ -66,15 +71,15 @@
void makeMachineDirs(Machine machine) throws IOException {
Path dir;
if(StringUtils.isNotBlank(machine.getProgSendDir())){
- createDirIsNotExists(machine.getProgSendDir());
+ createDirIsNotExists(machineDirTranslator.trans(machine.getProgSendDir()));
}
- if(StringUtils.isNotBlank(machine.getProgReceiveDir())){
- createDirIsNotExists(machine.getProgReceiveDir());
+ if(StringUtils.isNotBlank(machineDirTranslator.trans(machine.getProgReceiveDir()))){
+ createDirIsNotExists(machineDirTranslator.trans(machine.getProgReceiveDir()));
}
- if(StringUtils.isNotBlank(machine.getProgTempDir())){
- createDirIsNotExists(machine.getProgTempDir());
+ if(StringUtils.isNotBlank(machineDirTranslator.trans(machine.getProgTempDir()))){
+ createDirIsNotExists(machineDirTranslator.trans(machine.getProgTempDir()));
}
}
@@ -95,13 +100,17 @@
ProgramAnnotationService annoService = SpringUtil.getBean(ProgramAnnotationService.class);
if(StringUtils.isNotBlank(machine.getProgSendDir())) {
+
+ String sendDir = machineDirTranslator.trans(machine.getProgSendDir());
+
WatchInfo watchInfoSend = new WatchInfo();
watchInfoSend.setMachine(machine);
watchInfoSend.setDirType(MachineFile.DIR_TYPE_SEND);
- watchInfoSend.setPath(machine.getProgSendDir());
+ watchInfoSend.setPath(sendDir);
- if(!dynamicDirectoryWatcher.containsPath(Paths.get(machine.getProgSendDir()))) {
- dynamicDirectoryWatcher.addDirectory(Paths.get(machine.getProgSendDir()),
+ Path path = Paths.get(sendDir);
+ if(!dynamicDirectoryWatcher.containsPath(path)) {
+ dynamicDirectoryWatcher.addDirectory(path,
new MachineFileChangeListener(machineFileService,
annoService,
watchInfoSend));
@@ -109,12 +118,16 @@
}
if(StringUtils.isNotBlank(machine.getProgReceiveDir())) {
+
+ String recDir = machineDirTranslator.trans(machine.getProgReceiveDir());
+
WatchInfo watchInfoRec = new WatchInfo();
watchInfoRec.setMachine(machine);
watchInfoRec.setDirType(MachineFile.DIR_TYPE_REC);
- watchInfoRec.setPath(machine.getProgReceiveDir());
- if(!dynamicDirectoryWatcher.containsPath(Paths.get(machine.getProgReceiveDir()))) {
- dynamicDirectoryWatcher.addDirectory(Paths.get(machine.getProgReceiveDir()),
+ watchInfoRec.setPath(recDir);
+ Path path = Paths.get(recDir);
+ if(!dynamicDirectoryWatcher.containsPath(path)) {
+ dynamicDirectoryWatcher.addDirectory(path,
new MachineFileChangeListener(machineFileService,
annoService,
watchInfoRec));
@@ -122,12 +135,14 @@
}
if(StringUtils.isNotBlank(machine.getProgTempDir())) {
+ String tempDir = machineDirTranslator.trans(machine.getProgTempDir());
WatchInfo watchInfoTemp = new WatchInfo();
watchInfoTemp.setMachine(machine);
watchInfoTemp.setDirType(MachineFile.DIR_TYPE_TEMP);
- watchInfoTemp.setPath(machine.getProgTempDir());
- if(!dynamicDirectoryWatcher.containsPath(Paths.get(machine.getProgTempDir()))) {
- dynamicDirectoryWatcher.addDirectory(Paths.get(machine.getProgTempDir()),
+ watchInfoTemp.setPath(tempDir);
+ Path path = Paths.get(machine.getProgTempDir());
+ if(!dynamicDirectoryWatcher.containsPath(path)) {
+ dynamicDirectoryWatcher.addDirectory(path,
new MachineFileChangeListener(machineFileService,
annoService,
watchInfoTemp));
@@ -356,16 +371,20 @@
return null;
}
//鍘绘帀鏈熬鎷彿(鍙戦偅绉�) ,鏈熬璺緞鍒嗛殧绗�
- String tempPath = StringUtils.removeEnd(StringUtils.removeEnd(StringUtils.removeEnd(sendPathLine,")"),"/"),"\\");
- //鍘绘帀鍓�2浣嶅彲鑳界殑娉ㄩ噴(*-)銆�
- String sendPath = escapeSqlWildcard(StringUtils.trim(StringUtils.substring(tempPath,2)));
+ String oriPath = StringUtils.removeEnd(StringUtils.removeEnd(StringUtils.removeEnd(sendPathLine,")"),"/"),"\\");
- List<Machine> machines = lambdaQuery().eq(Machine::getStatus,Machine.STATUS_ENABLE).like(Machine::getProgSendDir,sendPath).list();
- if(machines.isEmpty()){
- return null;
- }else{
- return machines.get(0);
- }
+ String tempPathRepl1 = StringUtils.replace(oriPath,"/","\\");//鍙嶆枩鏉犵増鏈殑璺緞
+ String tempPathRepl2 = StringUtils.replace(oriPath,"\\","/");//姝f枩鏉犵増鏈殑璺緞
+
+ //鍘绘帀鍓�2浣嶅彲鑳界殑娉ㄩ噴(*-)銆�
+ String sendPath1 = escapeSqlWildcard(StringUtils.trim(StringUtils.substring(tempPathRepl1,2)));
+ String sendPath2 = escapeSqlWildcard(StringUtils.trim(StringUtils.substring(tempPathRepl2,2)));
+
+ Optional<Machine> machineOpt = lambdaQuery().eq(Machine::getStatus,Machine.STATUS_ENABLE).and(w -> {
+ w.like(Machine::getProgSendDir,sendPath1).or().like(Machine::getProgSendDir,sendPath2);
+ }).last("limit 1").oneOpt();
+
+ return machineOpt.orElse(null);
}
/**
--
Gitblit v1.9.3