From 86c8efdb19a2f4be79a947650ef62ed79382011b Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 30 八月 2025 20:55:31 +0800
Subject: [PATCH] 重构机床回传文件;撤回后禁用撤回按钮

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java |   42 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java
index a573dd5..0abac7a 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java
@@ -6,8 +6,11 @@
 import org.springblade.mdm.basesetting.machine.MachineService;
 import org.springblade.mdm.basesetting.machine.entity.Machine;
 import org.springblade.mdm.commons.service.ParamService;
-import org.springblade.mdm.gkw.programnode.entity.MachineFile;
-import org.springblade.mdm.gkw.programnode.service.MachineFileService;
+import org.springblade.mdm.machinefile.entity.MachineFile;
+import org.springblade.mdm.machinefile.service.MachineFileService;
+import org.springblade.mdm.program.service.ProgramAnnotationService;
+import org.springblade.mdm.utils.FileContentUtil;
+import org.springblade.system.pojo.entity.DictBiz;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -32,6 +35,8 @@
 	private MachineService machineService;
 	@Autowired
 	private ParamService paramService;
+	@Autowired
+	private ProgramAnnotationService programAnnotationService;
 	// 姣�5绉掓墽琛屼竴娆�
 	//@Scheduled(fixedRate = 1000000)
 	//@Scheduled(cron = "0 1 0 * * ?") // 姣忓ぉ涓婂崍0鐐�1鍒嗘墽琛�
@@ -117,6 +122,7 @@
 		byte[] buffer = new byte[2048];
 
 		MachineFile existFileInDb;
+		List<DictBiz> annotatiionList = programAnnotationService.getAnnotionDictList();
 		//boolean exists;//鏂囦欢鏄惁瀛樺湪浜庢暟鎹簱涓�
 		for (Path filePath : files) {
 
@@ -131,6 +137,9 @@
 			mf.setMachineCode(machine.getCode());
 
 			try {
+				//璇诲彇鍐呭锛岀‘瀹氱▼搴忕姸鎬�
+				int pstatus = readProgramStatus(filePath,machine.getMachineGroupCode(),annotatiionList);
+				mf.setProgramStatus(pstatus);
 				BasicFileAttributes attrs = Files.readAttributes(
 					filePath,
 					BasicFileAttributes.class
@@ -165,7 +174,7 @@
 				log.info("鏂囦欢宸插瓨鍦ㄦ帬杩�:{}",filePath.getFileName());
 				//宸插瓨鍦ㄥ拫鏁淬��
 				existFileInDb.setFileSize(mf.getFileSize());
-
+				existFileInDb.setProgramStatus(mf.getProgramStatus());
 				existFileInDb.setFileCreateTime(mf.getFileCreateTime());
 				existFileInDb.setFileModifyTime(mf.getFileModifyTime());
 				if(!StringUtils.equals(existFileInDb.getMd5(),mf.getMd5())){
@@ -185,6 +194,33 @@
 	}
 
 	/**
+	 * 璇诲彇鏂囦欢涓殑绋嬪簭鐘舵��
+	 * @param filePath 鏂囦欢璺緞
+	 * @param machineGroupCode
+	 * @param annotatiionList 娉ㄩ噴閰嶇疆瀛楀吀
+	 * @return 鐘舵�佺殑鏁存暟涔嬪拰
+	 * @throws IOException
+	 */
+	int readProgramStatus(Path filePath,String machineGroupCode,List<DictBiz> annotatiionList) throws IOException {
+		int programStatus = MachineFile.PROGRAM_STATUS_UNKNOWN;
+		try(InputStream ins = Files.newInputStream(filePath)){
+			String statusLine = FileContentUtil.readLineAt(ins,ProgramAnnotationService.STATUS_LINE_INDEX);
+			if(programAnnotationService.isAnnotation(statusLine,machineGroupCode,annotatiionList)){
+				String progStatusTxt = programAnnotationService.removeAnnotation(machineGroupCode,statusLine,annotatiionList);
+				if(ProgramAnnotationService.SQ.equals(progStatusTxt)){
+					programStatus = MachineFile.PROGRAM_STATUS_TRY;
+				}else if(ProgramAnnotationService.GH.equals(progStatusTxt)){
+					programStatus = MachineFile.PROGRAM_STATUS_CURED;
+				}else if(ProgramAnnotationService.PL.equals(progStatusTxt)){
+					programStatus = MachineFile.PROGRAM_STATUS_DIVIASTION;
+				}
+			}
+		}
+
+		return programStatus;
+	}
+
+	/**
 	 * 娓呯悊宸茬粡鍒犻櫎浜嗘枃浠剁殑璁板綍
 	 * @param machine
 	 * @param dirType

--
Gitblit v1.9.3