From c9db22f6ccb6a6d66e38dec09807e88b160f29e8 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 15 十一月 2023 11:20:50 +0800
Subject: [PATCH] 销售订单-修改2

---
 mes-plan/src/main/java/com/chinaztt/mes/plan/controller/CustomerOrderController.java    |    4 
 mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/OrderProcessConfigFileMapper.java   |    2 
 mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerOrderServiceImpl.java |   13 ++-
 mes-plan/src/main/java/com/chinaztt/mes/plan/util/FileSaveUtil.java                     |  112 ++++++++++++++++++++++++++++
 mes-plan/src/main/resources/mapper/OrderProcessConfigFileMapper.xml                     |    2 
 mes-plan/src/main/java/com/chinaztt/mes/plan/util/MyUtil.java                           |   77 +++++++++++++++++++
 mes-plan/src/main/java/com/chinaztt/mes/plan/util/CustomerOrderUtil.java                |   11 +-
 7 files changed, 209 insertions(+), 12 deletions(-)

diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/controller/CustomerOrderController.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/controller/CustomerOrderController.java
index 5a040c6..1d2500b 100644
--- a/mes-plan/src/main/java/com/chinaztt/mes/plan/controller/CustomerOrderController.java
+++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/controller/CustomerOrderController.java
@@ -448,7 +448,7 @@
 	 * @return
 	 */
 	@PostMapping("/upload")
-	@ApiOperation(value = "涓婁紶宸ヨ壓閰嶇疆鍗�", notes = "涓婁紶宸ヨ壓閰嶇疆鍗�")
+	@ApiOperation(value = "涓婁紶闄勪欢", notes = "涓婁紶闄勪欢")
 	public R upload(@RequestParam("file") MultipartFile file,
 					@RequestParam("orderNumber") String orderNumber,
 					@RequestParam("lineNumber") String lineNumber) {
@@ -461,7 +461,7 @@
 	 * @return
 	 */
 	@GetMapping("/processConfigFiles")
-	@ApiOperation("鑾峰彇宸ヨ壓閰嶇疆鍗曚笂浼犺褰�")
+	@ApiOperation("鑾峰彇闄勪欢涓婁紶璁板綍")
 	@Inner(false)
 	public R processConfigFiles(String orderNumber, String lineNumber) {
 		try {
diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/OrderProcessConfigFileMapper.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/OrderProcessConfigFileMapper.java
index a884b29..8d8f185 100644
--- a/mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/OrderProcessConfigFileMapper.java
+++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/OrderProcessConfigFileMapper.java
@@ -23,7 +23,7 @@
 	 * @param lineNumber
 	 * @return
 	 */
-    List<OrderProcessConfigFileDTO> getProcessConfigFiles(@Param("ordderNumber") String orderNumber,
+    List<OrderProcessConfigFileDTO> getProcessConfigFiles(@Param("orderNumber") String orderNumber,
 														  @Param("lineNumber") String lineNumber);
 
 	/**
diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerOrderServiceImpl.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerOrderServiceImpl.java
index cf0d2ca..4fda2b9 100644
--- a/mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerOrderServiceImpl.java
+++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerOrderServiceImpl.java
@@ -37,6 +37,7 @@
 import com.chinaztt.mes.common.oa.OAResult;
 import com.chinaztt.mes.common.util.StateResult;
 import com.chinaztt.mes.common.util.WechatMsgTips;
+import com.chinaztt.mes.common.util.easyexcel.EasyExcelUtils;
 import com.chinaztt.mes.common.wechat.WechatProperty;
 import com.chinaztt.mes.plan.dto.*;
 import com.chinaztt.mes.plan.entity.*;
@@ -51,6 +52,7 @@
 import com.chinaztt.mes.plan.util.CustomerOrderClientConfigure;
 import com.chinaztt.mes.plan.util.CustomerOrderUnitWhiteListConfig;
 import com.chinaztt.mes.plan.util.CustomerOrderUtil;
+import com.chinaztt.mes.plan.util.FileSaveUtil;
 import com.chinaztt.mes.plan.vo.CustomerOrderVO1;
 import com.chinaztt.mes.quality.dto.CustomOrderSyncDTO;
 import com.chinaztt.mes.technology.entity.*;
@@ -97,6 +99,7 @@
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.math.BigDecimal;
@@ -1873,15 +1876,14 @@
 
 	@Override
 	public R uploadProcessConfigFile(MultipartFile file, String orderNumber, String lineNumber) {
-		String fileName = IdUtil.simpleUUID() + StrUtil.DOT + FileUtil.extName(file.getOriginalFilename());
+		String fileName = FileUtil.extName(file.getOriginalFilename());
 		try {
-			minioTemplate.putObject(ossProperties.getBucketName(), fileName, file.getInputStream());
 			OrderProcessConfigFile configFile = new OrderProcessConfigFile();
 			configFile.setFileName(fileName);
 			configFile.setOriginalFileName(file.getOriginalFilename());
 			configFile.setOrderNumber(orderNumber);
 			configFile.setLineNumber(lineNumber);
-			configFile.setBucketName(ossProperties.getBucketName());
+			configFile.setBucketName(FileSaveUtil.StoreFile(file));
 			orderProcessConfigFileMapper.insert(configFile);
 			ProcessConfigFileOrderMapping mapping = ProcessConfigFileOrderMapping.builder().configFileId(configFile.getId())
 					.orderNumber(orderNumber).lineNumber(lineNumber).build();
@@ -1908,7 +1910,10 @@
 
 	@Override
 	public void getFile(String bucket, String fileName, HttpServletResponse response) {
-		try (InputStream inputStream = minioTemplate.getObject(bucket, fileName)) {
+		try {
+			String path = FileSaveUtil.FILE_PATH + bucket;
+			InputStream inputStream = new FileInputStream(path);
+//			EasyExcel.write(path).sheet().doWrite(null);
 			response.setContentType("application/octet-stream; charset=UTF-8");
 			IoUtil.copy(inputStream, response.getOutputStream());
 		} catch (Exception e) {
diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/util/CustomerOrderUtil.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/util/CustomerOrderUtil.java
index 9cbedd7..14b9837 100644
--- a/mes-plan/src/main/java/com/chinaztt/mes/plan/util/CustomerOrderUtil.java
+++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/util/CustomerOrderUtil.java
@@ -16,6 +16,8 @@
 import java.io.BufferedInputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -56,12 +58,14 @@
 	/**
 	 * OTC 闄勪欢鑾峰彇
 	 *
-	 * @param contractNumber
+	 * @param orderNo
 	 */
-	public R getOtcCustomerOrderFileList(String contractNumber) {
+	public R getOtcCustomerOrderFileList(String orderNo) {
 		try {
 			String token = getToken();
-			JSONObject result = JSONObject.parseObject(HttpRequest.get(customerOrderClientConfigure.getOtcHost() + customerOrderClientConfigure.getOtcFileUrl() + contractNumber)
+			String encode = URLEncoder.encode(orderNo);
+			System.out.println("url缂栫爜--------------------------"+encode);
+			JSONObject result = JSONObject.parseObject(HttpRequest.get(customerOrderClientConfigure.getOtcHost() + customerOrderClientConfigure.getOtcFileUrl() + orderNo)
 					.header("Authorization", "Bearer " + token).execute().body());
 			if (result.getInteger("code") == 0) {
 				JSONArray jsonArray = result.getJSONArray("data");
@@ -73,7 +77,6 @@
 			return R.failed("鑾峰彇寮傚父:"+ e.getMessage());
 		}
 	}
-
 
 	public CustomerOrder updateCustomerOrderLine(CustomerOrder customerOrder) {
 		if (StringUtils.isBlank(customerOrder.getOtcLineNo())) {
diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/util/FileSaveUtil.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/util/FileSaveUtil.java
new file mode 100644
index 0000000..a997590
--- /dev/null
+++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/util/FileSaveUtil.java
@@ -0,0 +1,112 @@
+package com.chinaztt.mes.plan.util;
+
+
+import com.amazonaws.util.IOUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+import org.springframework.util.FileSystemUtils;
+import org.springframework.web.multipart.MultipartFile;
+import javax.annotation.PostConstruct;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+/**
+ * 淇濆瓨鏂囦欢宸ュ叿
+ */
+@Slf4j
+@Component
+public class FileSaveUtil {
+
+    // 鍙杫ml涓殑璺緞 + /
+    public static String FILE_PATH;
+
+    public static String[] ALLOWED;
+
+    @Value("${file.path}")
+    private String file;
+
+    @Value("${file.allowed}")
+    private String[] allowed;
+
+    @PostConstruct
+    public void getFile() {
+        FILE_PATH = this.file;
+    }
+
+    @PostConstruct
+    public void getAllowed(){
+        ALLOWED = this.allowed;
+    }
+    /**
+     * 瀛樺偍鏂囦欢涓诲嚱鏁�
+     * @param file 鏂囦欢浜岃繘鍒舵祦
+     * @return 杩斿洖鏂囦欢鍚嶇О鐢ㄤ簬瀛樺偍鏁版嵁搴�
+     */
+    public static String StoreFile(MultipartFile file) {
+        String originalFilename = file.getOriginalFilename();
+        // 鐢熸垚闅忔満鍚嶇О锛氭椂闂確闅忔満6浣嶆暟瀛�
+        String FileName = System.currentTimeMillis() + "_" + MyUtil.getNumber(6);
+        String suffix = null;
+        if (originalFilename != null) {
+            suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
+            // 濡傛灉鍚庣紑鍚嶄笉閫氳繃鎶涘嚭寮傚父
+            if (!isFileAllowed(suffix)){
+                throw  new RuntimeException(suffix);
+            }
+        }
+        // 鍚嶇О鎷兼帴
+        String fileName = FileName + suffix;
+        // 杩涜瀛樺偍
+        try {
+            storeFileWithFileName(file.getBytes(), fileName);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        return fileName;
+    }
+
+    public static Boolean DeleteFile(String fileName) {
+        return FileSystemUtils.deleteRecursively(new File(FILE_PATH + "/" + fileName));
+    }
+    /**
+     * 瀛樺偍鏂囦欢鍑芥暟
+     * @param content 鏂囦欢浜岃繘鍒舵祦
+     * @param fileName 鏂囦欢鍚嶇О
+     */
+    private static void storeFileWithFileName(byte[] content, String fileName) {
+        // 瀛樺偍璺緞
+        String path = FILE_PATH + File.separatorChar;
+        // 鐩綍涓嶅瓨鍦ㄥ垯鍒涘缓
+        File file = new File(path);
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+        // 寮�濮嬪瓨鍌�
+        try (FileOutputStream os = new FileOutputStream(path + fileName);
+             ByteArrayInputStream is = new ByteArrayInputStream(content)) {
+             IOUtils.copy(is, os);
+        } catch (IOException e) {
+            MyUtil.PrintLog("瀛樺偍鏂囦欢寮傚父锛�" + e);
+        }
+    }
+
+    /**
+     * 鍒ゆ柇鏂囦欢鏄惁琚厑璁镐笂浼�
+     *
+     * @param fileName 鏂囦欢鍚�
+     * @return 鍏佽true, 鍚﹀垯false
+     */
+    private static boolean isFileAllowed(String fileName) {
+        // 鑾峰彇鍚庣紑鍚�
+        String suffixName = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
+        for (String allow : ALLOWED) {
+            if (allow.equals(suffixName)) {
+                return true;
+            }
+        }
+        return false;
+    }
+}
diff --git a/mes-plan/src/main/java/com/chinaztt/mes/plan/util/MyUtil.java b/mes-plan/src/main/java/com/chinaztt/mes/plan/util/MyUtil.java
new file mode 100644
index 0000000..442dd16
--- /dev/null
+++ b/mes-plan/src/main/java/com/chinaztt/mes/plan/util/MyUtil.java
@@ -0,0 +1,77 @@
+package com.chinaztt.mes.plan.util;
+
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Random;
+
+@Component
+public class MyUtil<T> {
+
+    /**
+     * 鑷畾涔夎皟璇曞伐鍏风被
+     * @return
+     */
+    public static void PrintLog(String str){
+        // 绫诲悕
+        String className = Thread.currentThread().getStackTrace()[2].getClassName();
+        // 鍑芥暟鍚�
+        String methodName = Thread.currentThread().getStackTrace()[2].getMethodName();
+        System.out.println("\033[1;94m" + className + "-->" + methodName + "-->"  + str + "\033[0m");
+    }
+
+    /**
+     * 鏃ユ湡宸ュ叿绫�
+     * @return
+     */
+    public static String MyDateFormat(){
+        //鑾峰彇鏃ユ湡
+        //瀵� import java.util.Date; 涓嬬殑鍖�
+        Date date = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+        return sdf.format(date);
+    }
+
+    /**
+     * 鑾峰彇闅忔満鍔犲瘑鐩�
+     * @param n 浣嶆暟
+     * @return 杩斿洖闅忔満鍔犲瘑鐩�
+     */
+    public static String getSalt(int n) {
+        char[] chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890!@#$%^&*()+-=/[];~.".toCharArray();
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < n; i++) {
+            char c = chars[new Random().nextInt(chars.length)];
+            sb.append(c);
+        }
+        return sb.toString();
+    }
+
+    /**
+     * 鑾峰彇闅忔満鏁板瓧
+     * @param n 浣嶆暟
+     * @return 杩斿洖闅忔満鍊�
+     */
+    public static String getNumber(int n) {
+        char[] chars = "1234567890".toCharArray();
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < n; i++) {
+            char c = chars[new Random().nextInt(chars.length)];
+            sb.append(c);
+        }
+        return sb.toString();
+    }
+
+    /*public static String getTimeSixNumberCode(String prefix, String keyName){
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String format = simpleDateFormat.format(new Date());
+        String timeStr = format.replace("-", "");
+        long incrNum = RedisUtil.incr(keyName, 1);
+        if(incrNum == 1){
+            RedisUtil.expire(keyName, 60 * 60 * 24);
+        }
+        String sixIncr = String.format("%06d", incrNum);
+        return prefix + timeStr + sixIncr;
+    }*/
+}
diff --git a/mes-plan/src/main/resources/mapper/OrderProcessConfigFileMapper.xml b/mes-plan/src/main/resources/mapper/OrderProcessConfigFileMapper.xml
index b812d27..10f814b 100644
--- a/mes-plan/src/main/resources/mapper/OrderProcessConfigFileMapper.xml
+++ b/mes-plan/src/main/resources/mapper/OrderProcessConfigFileMapper.xml
@@ -14,7 +14,7 @@
 				 left join plan_process_config_file_order_mapping ppcfom
 						   on popcf.id = ppcfom.config_file_id
 		where ppcfom.line_number = #{lineNumber}
-		  and ppcfom.order_number = #{ordderNumber}
+		  and ppcfom.order_number = #{orderNumber}
 	</select>
 
 

--
Gitblit v1.9.3