diff --git a/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/enums/ErrorCodeConstants.java b/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/enums/ErrorCodeConstants.java index d5ddd47cc..9cecde1f8 100644 --- a/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/enums/ErrorCodeConstants.java +++ b/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/enums/ErrorCodeConstants.java @@ -23,6 +23,7 @@ public class ErrorCodeConstants { public static final ErrorCode FILE_NOT_EXISTS = new ErrorCode(1_001_003_001, "文件不存在"); public static final ErrorCode FILE_IS_EMPTY = new ErrorCode(1_001_003_002, "文件为空"); public static final ErrorCode FILE_REMOVE_FAIL = new ErrorCode(1_001_003_003, "文件删除失败"); + public static final ErrorCode FILE_OUTPUT_ERROR = new ErrorCode(1_001_003_004, "文件{}输出错误"); // ========== 代码生成器 1-001-004-000 ========== public static final ErrorCode CODEGEN_TABLE_EXISTS = new ErrorCode(1_003_001_000, "表定义已经存在"); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java index c80d8d49d..737d931e1 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java @@ -599,7 +599,8 @@ public class OrderServiceImpl implements OrderService { // 获取文件名 String filename = file.getName(); // 将文件写入输入流 - try (FileInputStream fis = new FileInputStream(file)) { + try (FileInputStream fis = new FileInputStream(file); + OutputStream outputStream = new BufferedOutputStream(response.getOutputStream())) { byte[] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); @@ -608,7 +609,7 @@ public class OrderServiceImpl implements OrderService { response.setCharacterEncoding("UTF-8"); response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8")); response.addHeader("Content-Length", "" + file.length()); - OutputStream outputStream = new BufferedOutputStream(response.getOutputStream()); + response.setContentType("application/octet-stream"); outputStream.write(buffer); outputStream.flush(); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/file/FileHelperUtil.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/file/FileHelperUtil.java index 0e56b6168..4d7bd1fb1 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/file/FileHelperUtil.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/file/FileHelperUtil.java @@ -26,7 +26,8 @@ public class FileHelperUtil { // 获取文件名 String filename = file.getName(); // 将文件写入输入流 - try (FileInputStream fis = new FileInputStream(file)) { + try (FileInputStream fis = new FileInputStream(file); + OutputStream outputStream = new BufferedOutputStream(response.getOutputStream())) { byte[] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); @@ -35,7 +36,7 @@ public class FileHelperUtil { response.setCharacterEncoding("UTF-8"); response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8")); response.addHeader("Content-Length", "" + file.length()); - OutputStream outputStream = new BufferedOutputStream(response.getOutputStream()); + response.setContentType("application/octet-stream"); outputStream.write(buffer); outputStream.flush(); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/SSLUtils.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/SSLUtils.java index a5f688978..e06abf380 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/SSLUtils.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/SSLUtils.java @@ -1,8 +1,6 @@ package com.cf.imes.module.executor.util.fileConversion.admin.api.webcad; import javax.net.ssl.*; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; /** * @projectName: cf_imes_server @@ -11,38 +9,10 @@ import java.security.cert.X509Certificate; */ public class SSLUtils { private static void trustAllHttpsCertificates() throws Exception { - TrustManager[] trustAllCerts = new TrustManager[1]; - TrustManager tm = new miTM(); - trustAllCerts[0] = tm; - SSLContext sc = SSLContext.getInstance("SSL"); - sc.init(null, trustAllCerts, null); + SSLContext sc = SSLContext.getInstance("TLSv1.2"); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); } - static class miTM implements TrustManager, X509TrustManager { - public X509Certificate[] getAcceptedIssuers() { - return null; - } - - public boolean isServerTrusted(X509Certificate[] certs) { - return true; - } - - public boolean isClientTrusted(X509Certificate[] certs) { - return true; - } - - public void checkServerTrusted(X509Certificate[] certs, String authType) - throws CertificateException { - return; - } - - public void checkClientTrusted(X509Certificate[] certs, String authType) - throws CertificateException { - return; - } - } - /** * 忽略HTTPS请求的SSL证书,必须在openConnection之前调用 * @@ -50,11 +20,9 @@ public class SSLUtils { */ public static void ignoreSsl() { try { - HostnameVerifier hv = new HostnameVerifier() { - public boolean verify(String urlHostName, SSLSession session) { - System.out.println("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost()); - return true; - } + HostnameVerifier hv = (urlHostName, session) -> { + System.out.println("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost()); + return true; }; trustAllHttpsCertificates(); HttpsURLConnection.setDefaultHostnameVerifier(hv); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/XMLUtil.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/XMLUtil.java index e0a45040f..85c2c9e3d 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/XMLUtil.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/XMLUtil.java @@ -2,6 +2,7 @@ package com.cf.imes.module.executor.util.fileConversion.admin.files.xml; import com.alibaba.nacos.common.utils.StringUtils; import com.alibaba.nacos.shaded.com.google.common.base.Function; +import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil; import com.cf.imes.framework.organ.core.context.OrganContextHolder; import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO; @@ -35,6 +36,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; import java.util.function.Supplier; +import static com.cf.imes.module.infra.enums.ErrorCodeConstants.FILE_OUTPUT_ERROR; + @Slf4j @Component public class XMLUtil { @@ -93,18 +96,20 @@ public class XMLUtil { return null; } - public static void writeErr(HttpServletResponse response, String xmlStr, String name) throws IOException { - // 获取输出流 - Writer writer = new OutputStreamWriter(response.getOutputStream(), StandardCharsets.UTF_8); - - // 输出 XML 数据 - writer.write(xmlStr); - writer.flush(); - writer.close(); - + public static void writeErr(HttpServletResponse response, String xmlStr, String name) { // 设置响应头 response.setContentType("application/xml; charset=UTF-8"); - response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(name, StandardCharsets.UTF_8.name())); + response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(name, StandardCharsets.UTF_8)); + + // 获取输出流 + try (Writer writer = new OutputStreamWriter(response.getOutputStream(), StandardCharsets.UTF_8)) { + + // 输出 XML 数据 + writer.write(xmlStr); + writer.flush(); + } catch (IOException e) { + throw ServiceExceptionUtil.exception(FILE_OUTPUT_ERROR, name); + } } private void setIfInvalid(Supplier getter, Function errorMessageFactory, Consumer setter, boolean error) { @@ -1286,12 +1291,4 @@ public class XMLUtil { } return map; } - // 加工组数据对应检查 - public void checkGroupCorresponding(Map plateMap, List groupXmlVOList, AtomicBoolean flag) { - - } - - // 造型中孤岛对应关系检查 - public void checkIslandCorresponding(IsletXmlVOS islandXmlVOList, AtomicBoolean flag) { - } }