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