mes-plan/src/main/java/com/chinaztt/mes/plan/controller/CustomerOrderController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
mes-plan/src/main/java/com/chinaztt/mes/plan/mapper/OrderProcessConfigFileMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerOrderServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
mes-plan/src/main/java/com/chinaztt/mes/plan/util/CustomerOrderUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
mes-plan/src/main/java/com/chinaztt/mes/plan/util/FileSaveUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
mes-plan/src/main/java/com/chinaztt/mes/plan/util/MyUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
mes-plan/src/main/resources/mapper/OrderProcessConfigFileMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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 { 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); /** 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) { 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())) { 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 { // åymlä¸çè·¯å¾ + / 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; } } 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; }*/ } 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>