From 31ecdb8c700529a59dd762f0c47f0ed9c66d5092 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 25 九月 2025 20:40:07 +0800
Subject: [PATCH] 工控网任务

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirCheckTask.java |   72 +++++++----------------------------
 1 files changed, 15 insertions(+), 57 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirCheckTask.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirCheckTask.java
index 77a97e3..9238e90 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirCheckTask.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirCheckTask.java
@@ -9,12 +9,14 @@
 import org.springblade.mdm.machinefile.entity.MachineFile;
 import org.springblade.mdm.machinefile.service.FileSendRecordService;
 import org.springblade.mdm.machinefile.service.MachineFileService;
+import org.springblade.mdm.machinefile.service.ReceiveFileCheckService;
 import org.springblade.mdm.utils.FileContentUtil;
 import org.springblade.mdm.utils.ProgramFileNameParser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.io.File;
 import java.io.IOException;
@@ -43,24 +45,29 @@
 	@Autowired
 	private ParamService paramService;
 	@Autowired
-	private FileSendRecordService fileSendRecordService;
-	/**
-	 * 鏂囦欢榛樿淇濆瓨灏忔椂鏁帮紝0涓嶉檺鍒�
-	 */
-	private static final int DEFAULT_HOUR = 0;
+	private ReceiveFileCheckService receiveFileCheckService;
+
+	@Autowired
+	private ReceiveDirMoveService receiveDirMoveService;
+
 	// 姣�5绉掓墽琛屼竴娆�
 	//@Scheduled(fixedRate = 1000000)
 	//@Scheduled(cron = "0 1 0 * * ?") // 姣忓ぉ涓婂崍0鐐�1鍒嗘墽琛�
 	//@Scheduled(cron = "0 */3 * * * ?")
 	//@Scheduled(cron = "0 15 19 * * ?") //test
 	//@Scheduled(cron = "${task.cron.machine_file_scan}")
-	@Scheduled(cron = "${task.cron.machine_rec_check:0 */10 * * * ?}")
+	@Scheduled(cron = "${task.cron.machine_rec_check:0 */11 * * * ?}")
 	public void execute() {
 		String networkType = paramService.getParamValue(ParamService.NETWORK_TYPE,ParamService.NETWORK_TYPE_SHEMI);
 
 		if(!ParamService.NETWORK_TYPE_SHEMI.equals(networkType)){
 			//闈炴秹瀵嗙綉锛屾墠鎵弿鐩綍鏂囦欢
+			log.info("reccheckfile start");
 			checkFiles();
+
+			//妫�鏌ュ畬鎴愶紝鐩存帴绉诲姩鏃犲紓甯哥殑鏂囦欢
+			receiveDirMoveService.moveValidateFiles();
+			log.info("reccheckfile end");
 		}
 
 	}
@@ -79,9 +86,9 @@
 
 			for(MachineFile machineFile : recFiles){
 				try {
-					checkFile(machineFile, recFiles,machine);
+					receiveFileCheckService.check(machineFile, recFiles,machine);
 				}catch(Exception e){
-					log.error("妫�鏌ec鏂囦欢澶辫触:"+machineFile.getName(),e);
+					log.error("妫�鏌ec鏂囦欢澶辫触:{}",machineFile.getName(),e);
 				}
 			}
 
@@ -89,54 +96,5 @@
 
 	}
 
-	/**
-	 * 鏂囦欢绉诲姩鍒皌emp
-	 * @param machineFile
-	 */
-	private void checkFile(MachineFile machineFile,List<MachineFile> allFilesInDir,Machine machine) throws IOException {
-		String srcFilepath = MachineFileService.getBasePath(machine,machineFile.getDirType())+ File.separator+machineFile.getName();
-		Path source = Paths.get(srcFilepath);
-		if(!source.toFile().exists()){
-			return;
-		}
-		try(InputStream fileIns = Files.newInputStream(Paths.get(srcFilepath));) {
-			if(!FileContentUtil.isTextFile(fileIns)){
-				//闈炴枃鏈�
-				machineFile.setExceptionType(MachineFile.EXCEPTION_NOT_TEXT);
-			}else{
-				ProgramNameVO progNameVO =  ProgramFileNameParser.parseProgramName(machineFile.getName());
-				if(!progNameVO.isValidFilename()){
-					machineFile.setExceptionType(MachineFile.EXCEPTION_BAD_FILENAME);
-				}else {
-					String prefix = progNameVO.logicProgramName()+"-";
-					long matchCount = allFilesInDir.stream().filter(file -> file.getName().startsWith(prefix)).count();
-					if(matchCount != progNameVO.getSegmentCount()){//鏂囦欢娈垫暟缂哄け
-						machineFile.setExceptionType(MachineFile.EXCEPTION_LOST_FILES);
-					}else{
-						//妫�鏌ユ槸鍚﹀尮閰嶄笅鍙戣褰曠殑娈垫暟
-						//姝h礋3绉掍綔涓烘煡璇㈡椂闂�
-						Date beginTime = new Date(machineFile.getFileCreateTime().getTime()-3000);
-						Date endTime = new Date(machineFile.getFileCreateTime().getTime()+3000);
-						Optional<FileSendRecord> optFile = fileSendRecordService.lambdaQuery()
-							.eq(FileSendRecord::getMachineCode,machineFile.getMachineCode())
-							.likeRight(FileSendRecord::getName,prefix).between(FileSendRecord::getCreateTime,beginTime,endTime).oneOpt();
 
-						if(optFile.isPresent()){
-							//纭疄涓嬪彂杩囷紝姣斿鎬绘鏁版槸鍚︾浉鍚�
-							FileSendRecord sendFile = optFile.get();
-							ProgramNameVO sendProgNameVO =  ProgramFileNameParser.parseProgramName(sendFile.getName());
-							if(progNameVO.getSegmentCount() != sendProgNameVO.getSegmentCount()){
-								//娈垫暟涓嶅尮閰�
-								machineFile.setExceptionType(MachineFile.EXCEPTION_NOT_MATCH_SEND);
-							}else{
-								machineFile.setExceptionType(MachineFile.EXCEPTION_OK);
-							}
-						}
-					}
-				}
-			}
-
-			machineFileService.updateById(machineFile);
-		}
-	}
 }

--
Gitblit v1.9.3