From 4c7296d45efe849dc70a3b2e2240c905481a91c9 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 29 九月 2025 17:44:46 +0800
Subject: [PATCH] 工控网涉密网联调

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineAcceptedFileService.java |   84 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 78 insertions(+), 6 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineAcceptedFileService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineAcceptedFileService.java
index bd0865a..373234e 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineAcceptedFileService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineAcceptedFileService.java
@@ -7,12 +7,22 @@
 import org.springblade.core.oss.OssTemplate;
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.basesetting.machine.entity.Machine;
+import org.springblade.mdm.basesetting.machine.service.MachineService;
+import org.springblade.mdm.gkw.programnode.vo.ProgramNameVO;
+import org.springblade.mdm.gkw.task.entity.MachineBackTask;
+import org.springblade.mdm.gkw.task.service.MachineBackTaskService;
 import org.springblade.mdm.machinefile.entity.MachineFile;
 import org.springblade.mdm.machinefile.entity.MachineAcceptedFile;
 import org.springblade.mdm.machinefile.mapper.MachineAcceptedFileMapper;
 import org.springblade.mdm.machinefile.vo.MachineAcceptedFileHandleQueryVO;
 import org.springblade.mdm.machinefile.vo.MachineBackFileQueryVO;
 import org.springblade.mdm.machinefile.vo.MachineAcceptedFileVO;
+import org.springblade.mdm.program.service.programannotation.AnnotationData;
+import org.springblade.mdm.program.service.programannotation.AnnotationProcessor;
+import org.springblade.mdm.program.service.programannotation.AnnotationProcessorHelper;
+import org.springblade.mdm.utils.ProgramFileNameParser;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -20,16 +30,25 @@
 import java.io.InputStream;
 import java.nio.file.Files;
 import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 
-@AllArgsConstructor
+
 @Service
 public class MachineAcceptedFileService extends BizServiceImpl<MachineAcceptedFileMapper, MachineAcceptedFile> {
-	private final MachineFileService machineFileService;
-	private final OssTemplate ossTemplate;
+	@Autowired
+	private MachineFileService machineFileService;
+	@Autowired
+	private OssTemplate ossTemplate;
+	@Autowired
+	private MachineBackTaskService machineBackTaskService;
+	@Autowired
+	private AnnotationProcessorHelper annotationProcessorHelper;
 	/**
 	 * 鎺ュ彈
-	 * @param ids
+	 * @param ids  閫夊畾鎺ュ彈鐨刬d锛岄�楀彿鍒嗛殧
 	 */
 	@Transactional
 	public void accept(String ids) throws IOException {
@@ -43,7 +62,7 @@
 
 	/**
 	 * 鎷掔粷
-	 * @param ids
+	 * @param ids 閫夊畾鎷掔粷鐨刬d锛岄�楀彿鍒嗛殧
 	 */
 	public void reject(String ids) {
 		List<Long> idList = Func.toLongList(ids);
@@ -72,7 +91,7 @@
 	/**
 	 * 鎺ユ敹鏂囦欢
 	 * @param machineFileId 鏈哄簥鏂囦欢id
-	 * @throws IOException
+	 * @throws IOException 鏂囦欢鎿嶄綔寮傚父
 	 */
 	void acceptFile(Long machineFileId) throws IOException {
 		MachineFile machineFile = machineFileService.getById(machineFileId);
@@ -88,7 +107,25 @@
 			BladeFile bfile = ossTemplate.putFile(machineFile.getName(),inputStream);
 			machineAcceptedFile.setOssName(bfile.getName());
 		}
+		try(InputStream inputStream = Files.newInputStream(Paths.get(fullPath));){
+			//閮芥暟鎹�
+			//Machine machine = this.machineService.getByCode(record.getMachineCode());
+			//AnnotationProcessor processor = annotationProcessorHelper.getProcessor(machine.getControlSystem());
+			//AnnotationData annotationData = processor.readAnnotationData(inputStream);
+			machineAcceptedFile.setBackTaskId(getMachineBackTaskId(machineAcceptedFile.getName(),machineFile.getDeviation()));
+		}
+
 		save(machineAcceptedFile);
+	}
+
+	Long getMachineBackTaskId(String filename,String deviation){
+		ProgramNameVO vo = ProgramFileNameParser.parseProgramName(filename);
+		MachineBackTask task = machineBackTaskService.queryMatchTaskByProgramName(vo,deviation);
+		if(task != null){
+			return task.getId();
+		}else{
+			return null;
+		}
 	}
 
 	/**
@@ -101,5 +138,40 @@
 		return  this.getBaseMapper().handlePageQuery(Condition.getPage(query),query);
 	}
 
+	/**
+	 * 鏍规嵁瀵煎嚭鐨勬帴鍙楁枃浠秈d锛岃幏鍙栧叾涓幇鍦虹紪绋嬬殑MachineFIle
+	 * @param acceptedFiles  瀵煎嚭鐨勬帴鍙楁枃浠跺垪琛�
+	 * @return machineFile
+	 */
+	public List<MachineFile> exportedProgramOnMachineFiles(List<MachineAcceptedFile> acceptedFiles) {
 
+		List<Long> backTaskIds = acceptedFiles.stream().map(MachineAcceptedFile::getBackTaskId).filter(Objects::nonNull).toList();
+
+		//鐜板満缂栫▼鐨勪换鍔¢泦鍚�
+		//List<MachineBackTask> onMachineTasks1 = machineBackTaskService.lambdaQuery().in(MachineBackTask::getId, backTaskIds).list();
+		if(backTaskIds.isEmpty()){
+			return Collections.emptyList();
+		}
+		List<MachineBackTask> onMachineTasks = machineBackTaskService.lambdaQuery()
+			.eq(MachineBackTask::getTaskType,MachineBackTask.TASK_TYPE_ON_MACHINE)
+			.list();
+
+		List<Long> onMachineFileIds = new ArrayList<>();
+		for(MachineAcceptedFile accFile : acceptedFiles){
+			for(MachineBackTask backTask : onMachineTasks){
+				if(backTask.getId().equals(accFile.getBackTaskId())){
+					onMachineFileIds.add(accFile.getMachineFileId());
+				}
+			}
+		}
+		if(onMachineFileIds.isEmpty()){
+			return Collections.emptyList();
+		}
+
+		return machineFileService.lambdaQuery().in(MachineFile::getId,onMachineFileIds).list();
+	}
+
+	public List<MachineAcceptedFile> listByBackTaskId(Long backTaskId) {
+		return lambdaQuery().eq(MachineAcceptedFile::getBackTaskId,backTaskId).list();
+	}
 }

--
Gitblit v1.9.3