From b0d0191a88912b352385349461b500a4964d693b Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期五, 19 九月 2025 22:51:24 +0800
Subject: [PATCH] 机床加字段

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/service/MachineService.java |   48 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 46 insertions(+), 2 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 7c3f930..5a321dc 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
@@ -1,6 +1,7 @@
 package org.springblade.mdm.basesetting.machine.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.MybatisUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BizServiceImpl;
@@ -49,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);
@@ -63,7 +67,6 @@
 		Path dir;
 		if(StringUtils.isNotBlank(machine.getProgSendDir())){
 			createDirIsNotExists(machine.getProgSendDir());
-
 		}
 
 		if(StringUtils.isNotBlank(machine.getProgReceiveDir())){
@@ -168,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
@@ -178,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();
@@ -186,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());
@@ -321,4 +338,31 @@
 		return lambdaQuery().eq(Machine::getStatus,Machine.STATUS_ENABLE).list();
     }
 
+	public String escapeSqlWildcard(String value) {
+		if (StringUtils.isBlank(value)) {
+			return value;
+		}
+		return value.replace("\\", "\\\\")
+			.replace("%", "\\%")
+			.replace("_", "\\_");
+	}
+	/**
+	 * 鏍规嵁涓嬪彂璺緞鐨勬敞閲婃煡璇㈡満搴�
+	 * @param sendPathLine 涓嬪彂璺緞娉ㄩ噴鏂囨湰
+	 */
+    public Machine getMachineBySendPathAnnotation(String sendPathLine) {
+		//璺緞涓虹┖锛屼笉鍖归厤浠讳綍鏈哄櫒
+		if(StringUtils.isBlank(sendPathLine)){
+			return null;
+		}
+		//鍘绘帀棣栦綅鎷彿锛屾帓闄ゅ彂閭g鏈哄簥娉ㄩ噴
+		String sendPath = escapeSqlWildcard(StringUtils.trim(StringUtils.removeEnd(StringUtils.removeStart(sendPathLine,"("),")")));
+
+		List<Machine> machines = lambdaQuery().eq(Machine::getStatus,Machine.STATUS_ENABLE).likeLeft(Machine::getProgSendDir,sendPath).list();
+		if(machines.isEmpty()){
+			return null;
+		}else{
+			return machines.get(0);
+		}
+    }
 }

--
Gitblit v1.9.3