From 7f3a9c6582c18441eb569a4bb2e39b6e5560ffc1 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 18 八月 2025 21:09:53 +0800
Subject: [PATCH] dnc回传记录处理

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java       |    4 ++--
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java |    1 +
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java            |    3 +--
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/DncBackFileMapper.xml          |    4 +---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java            |   25 +++++++++++++++++++++++++
 5 files changed, 30 insertions(+), 7 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
index f85c9bd..ac61907 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
@@ -78,8 +78,7 @@
 		String programPkgName = NcNodeService.genProgramName(startVO.getDrawingNo(),startVO.getProcessNo());
 		vars.put(FlowContants.PROGRAM_PACKAGE_NAME,programPkgName);
 
-		//TODO 鏌ヨ鍥哄寲绋嬪簭鏄紝搴旇鍘绘帀鏈夊亸绂诲崟鐨勶紵
-		NcNode curedProgramPackage = ncNodeService.getLastEditionCuredProgramPackage(programPkgName);
+		NcNode curedProgramPackage = ncNodeService.getCuredProgramPackage(programPkgName,startVO.getMachineCode());
 		//璁剧疆鏄惁鏈夊浐鍖栫▼搴忔爣璁�
 		vars.put(FlowContants.HAS_CURED_PROGRAM,curedProgramPackage != null ? FlowContants.Y:FlowContants.N);
 		//宸ュ簭鐗堟鏄惁涓�鑷达紝鏄惁鍦ㄦ湁鏁堟湡鍐�
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/DncBackFileMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/DncBackFileMapper.xml
index 1e76ba2..3f8a509 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/DncBackFileMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/DncBackFileMapper.xml
@@ -20,9 +20,7 @@
 
        <where>
            f.is_deleted=0
-        <if test="query.machineSpec!=null and query.machineSpec!=''">
-            and m.machine_spec=#{query.machineSpec,jdbcType=VARCHAR}
-        </if>
+
         <if test="query.keyword!=null and query.keyword!=''">
             and (m.code like CONCAT('%', #{query.keyword,jdbcType=VARCHAR},'%') or m.name like CONCAT('%', #{query.keyword,jdbcType=VARCHAR},'%')
             or n.name like CONCAT('%', #{query.keyword,jdbcType=VARCHAR},'%')
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
index 4e00615..befdbe1 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
@@ -149,9 +149,9 @@
 						progData.setId(programPackageNode.getId());
 						progData.setProgramNo(programPackageNode.getProgramNo());
 
-						List<String> fileEtriyNames  = fileEntryNameList.stream().filter(n -> n.startsWith(packageName)).toList();
+						List<String> fileEntryNames  = fileEntryNameList.stream().filter(n -> n.startsWith(packageName)).toList();
 						List<DncSendBackFile> programFiles = new ArrayList<>();
-						fileEtriyNames.forEach( filePath ->{
+						fileEntryNames.forEach( filePath ->{
 								DncSendBackFile backFile = new DncSendBackFile();
 								backFile.setEntryName(filePath);
 								backFile.setName(StringUtils.removeStart(filePath,entryName));
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
index 2e9380f..21fc1f7 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
@@ -5,6 +5,8 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.mp.base.BizServiceImpl;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.basesetting.machine.MachineService;
+import org.springblade.mdm.basesetting.machine.entity.Machine;
 import org.springblade.mdm.program.entity.NcNode;
 import org.springblade.mdm.program.mapper.NcNodeMapper;
 import org.springblade.mdm.program.vo.*;
@@ -27,6 +29,7 @@
 @AllArgsConstructor
 public class NcNodeService extends BizServiceImpl<NcNodeMapper, NcNode> {
 
+	private final MachineService machineService;
 
 	public void saveNcCode(NcNodeVO vo) {
 		NcNode ncNode = new NcNode();
@@ -255,6 +258,28 @@
 	}
 
 	/**
+	 * 鑾峰彇鏈�鏂扮増鏈殑 宸插浐鍖栬妭鐐�
+	 * @param programPkgName 绋嬪簭鍖呭悕
+	 * @param machineCode 鏈哄簥缂栧彿
+	 * @return
+	 */
+	public NcNode getCuredProgramPackage(String programPkgName,String machineCode) {
+		Machine machine = machineService.getByCode(machineCode);
+		List<Machine> sameGroupMachines = machineService.lambdaQuery().eq(Machine::getMachineGroupCode,machine.getMachineGroupCode()).list();
+		List<String> machineCodesInGroup = sameGroupMachines.stream().map(Machine::getCode).toList();
+		List<NcNode> nodes = lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE)
+			.eq(NcNode::getName, programPkgName).likeRight(NcNode::getParentIds,"0,2,").eq(NcNode::getIsCured,1)
+			.in(!machineCodesInGroup.isEmpty(),NcNode::getMachineCode,machineCodesInGroup)
+			.eq(NcNode::getIsLastEdition,1).list();
+
+		if(nodes.isEmpty()){
+			return null;
+		}else {
+			return nodes.get(0);
+		}
+	}
+
+	/**
 	 * 鑾峰彇鏈�鏂扮増鏈殑 鍋忕鑺傜偣
 	 * @param programPkgName 绋嬪簭鍖呭悕
 	 * @return 鍋忕鐨勭▼搴忚妭鐐�
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java
index ff92aba..8a1f63f 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java
@@ -82,6 +82,7 @@
 			begin = arr[0];
 			end = arr[1];
 		}
+		line = StringUtils.trim(line);//鍘婚灏剧┖鏍�
 		isAnno = StringUtils.startsWith(line,begin) && StringUtils.endsWith(line,end);
 		return isAnno;
 	}

--
Gitblit v1.9.3