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