From 72e6bac02526caebc3797a7c2934d12896805708 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 23 九月 2025 00:47:18 +0800
Subject: [PATCH] 修复文件状态读取问题

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/service/MachineService.java |   37 ++++++++++++++++++++++++++++++++-----
 1 files changed, 32 insertions(+), 5 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 5b8ad77..6915e01 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
@@ -50,6 +50,9 @@
 		if(existsByCode(vo.getCode(),null)){
 			throw new ServiceException("鏈哄簥缂栫爜宸插瓨鍦�:"+vo.getCode());
 		}
+		if(existsByEquipmentCode(vo.getEquipmentCode(),null)){
+			throw new ServiceException("璁惧缂栧彿宸插瓨鍦�:"+vo.getEquipmentCode());
+		}
 
 		Machine machine = new Machine();
 		BeanUtil.copyProperties(vo, machine);
@@ -64,7 +67,6 @@
 		Path dir;
 		if(StringUtils.isNotBlank(machine.getProgSendDir())){
 			createDirIsNotExists(machine.getProgSendDir());
-
 		}
 
 		if(StringUtils.isNotBlank(machine.getProgReceiveDir())){
@@ -169,6 +171,17 @@
 	}
 
 	/**
+	 * 鏍规嵁 璁惧缂栧彿鍒ゆ柇鏈哄簥鏄惁瀛樺湪
+	 * @param equipmentCode 璁惧缂栧彿
+	 * @param excludeId 鎺掗櫎id
+	 * @return 鏄惁瀛樺湪
+	 */
+	boolean existsByEquipmentCode(String equipmentCode,Long excludeId){
+		return this.lambdaQuery().eq(Machine::getEquipmentCode, equipmentCode).ne(excludeId!=null,Machine::getId, excludeId).count()>0;
+	}
+
+
+	/**
 	 * 淇敼鏈哄簥淇℃伅
 	 * @param vo
 	 * @return
@@ -179,7 +192,9 @@
 		if(existsByCode(vo.getCode(),vo.getId())){
 			throw new ServiceException("鏈哄簥缂栫爜宸插瓨鍦�:"+vo.getCode());
 		}
-
+		if(existsByEquipmentCode(vo.getEquipmentCode(),vo.getId())){
+			throw new ServiceException("璁惧缂栧彿宸插瓨鍦�:"+vo.getEquipmentCode());
+		}
 		Machine machine = this.getById(vo.getId());
 
 		Machine machineBak = new Machine();
@@ -187,6 +202,7 @@
 
 		machine.setMachineSpec(vo.getMachineSpec());
 		machine.setCode(vo.getCode());
+		machine.setEquipmentCode(vo.getEquipmentCode());
 		machine.setName(vo.getName());
 		machine.setMachineGroupCode(vo.getMachineGroupCode());
 		machine.setManufacturer(vo.getManufacturer());
@@ -339,14 +355,25 @@
 		if(StringUtils.isBlank(sendPathLine)){
 			return null;
 		}
-		//鍘绘帀棣栦綅鎷彿锛屾帓闄ゅ彂閭g鏈哄簥娉ㄩ噴
-		String sendPath = escapeSqlWildcard(StringUtils.trim(StringUtils.removeEnd(StringUtils.removeStart(sendPathLine,"("),")")));
+		//鍘绘帀鏈熬鎷彿(鍙戦偅绉�) ,鏈熬璺緞鍒嗛殧绗�
+		String tempPath = StringUtils.removeEnd(StringUtils.removeEnd(StringUtils.removeEnd(sendPathLine,")"),"/"),"\\");
+		//鍘绘帀鍓�2浣嶅彲鑳界殑娉ㄩ噴(*-)銆�
+		String sendPath = escapeSqlWildcard(StringUtils.trim(StringUtils.substring(tempPath,2)));
 
-		List<Machine> machines = lambdaQuery().eq(Machine::getStatus,Machine.STATUS_ENABLE).likeLeft(Machine::getProgSendDir,sendPath).list();
+		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);
 		}
     }
+
+	/**
+	 * 鏍规嵁璁惧缂栧彿鏌ヨ鏈哄簥
+	 * @param equipmentCode 璁惧缂栧彿
+	 * @return 鏈哄簥瀵硅薄
+	 */
+	public Machine getByEquipmentCode(String equipmentCode) {
+		return this.lambdaQuery().eq(Machine::getEquipmentCode, equipmentCode).one();
+	}
 }

--
Gitblit v1.9.3