From fc588c6e5ccac038cab378931d9bac3033e28f98 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期五, 04 七月 2025 11:29:16 +0800
Subject: [PATCH] 增加产品型号

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExchangeService.java |   53 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 42 insertions(+), 11 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExchangeService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExchangeService.java
index 3cfc5de..d4c2b6a 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExchangeService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExchangeService.java
@@ -11,21 +11,25 @@
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.mdm.basesetting.machine.vo.MachineVO;
 import org.springblade.mdm.program.entity.NcProgramExchange;
 import org.springblade.mdm.program.mapper.NcProgramExchangeMapper;
 import org.springblade.mdm.program.vo.DncSendBackData;
+import org.springblade.mdm.utils.CustomBinaryReader;
+import org.springblade.mdm.utils.FileExchangeUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Enumeration;
 import java.util.List;
 
 /**
- * 涓嬪彂/鍥炰紶绋嬪簭缁熻
+ * 绋嬪簭浜ゆ崲锛坉nc瀵煎叆/瀵煎嚭锛�
  *
  * @author yangys
  */
@@ -36,16 +40,16 @@
 
 	/**
 	 * dnc鍥炰紶鏂囦欢涓婁紶
-	 * @param file
+	 * @param file 鏂囦欢
 	 * @return
 	 */
-	public void dncSendBackUpload(MultipartFile file) {
-		List<DncSendBackData> list=new ArrayList<>();
+	public List<DncSendBackData> dncSendBackUpload(MultipartFile file) {
+		List<DncSendBackData> list ;
 		try {
 			String fileName = file.getOriginalFilename();
-			InputStream fileInputStream = file.getInputStream();
-
-			byte[] bytes = FileUtil.copyToByteArray(fileInputStream);
+			//InputStream fileInputStream = file.getInputStream();
+			InputStream zipFileInputStream = FileExchangeUtil.convertFileToZip(file.getInputStream());
+			byte[] bytes = FileUtil.copyToByteArray(zipFileInputStream);
 			list = parseDncZipFromByteArray(bytes);
 			for(DncSendBackData dncSendBackData:list){
 				NcProgramExchange exchange=new NcProgramExchange();
@@ -57,10 +61,36 @@
 
 		} catch (IOException e) {
 			log.error("涓婁紶dnc鏂囦欢澶辫触",e);
+			list = Collections.emptyList();
 		}
-
+		return list;
 	}
 
+	InputStream convertFileToZip(InputStream inputStream) throws IOException {
+
+		File tempFile = createTempFile();
+		FileOutputStream fos = new FileOutputStream(tempFile);
+		CustomBinaryReader.read(inputStream,fos);
+
+
+		FileInputStream dInstream = new FileInputStream(tempFile);
+
+		return dInstream;
+	}
+
+	/**
+	 * 鍒涘缓涓�涓复鏃舵枃浠�
+	 * @return
+	 * @throws IOException
+	 */
+	File createTempFile() throws IOException {
+		Path tempDir = Paths.get(System.getProperty("java.io.tmpdir"));
+		// 鍦ㄤ复鏃剁洰褰曚腑鍒涘缓鏂囦欢
+		String tfilename = "t"+System.currentTimeMillis();
+		Path tempFile = Files.createTempFile(tempDir, tfilename, ".tmp");
+		System.out.println("鍒涘缓鐨勪复鏃舵枃浠�: " + tempFile);
+		return tempFile.toFile();
+	}
 	public static List<DncSendBackData> parseDncZipFromByteArray(byte[] zipData) throws IOException {
 		//List<DncSendBackData> datas = new ArrayList<>();
 		List<DncSendBackData> datas  = ZipFileDirectoryScanner.getFilesInDirectoryRecursive(zipData, "");
@@ -107,6 +137,7 @@
 	 * @param query 鏌ヨ鍙傛暟
 	 * @return
 	 */
+
 	public IPage<DncSendBackData> dncSendBackPageQuery(Query query) {
 
 		IPage<DncSendBackData> page = this.getBaseMapper().dncSendBackpageQuery(Condition.getPage(query),query);

--
Gitblit v1.9.3