From 43322d13c1876b1705f8ba1eb2ef32e7a433cacc Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期四, 25 十二月 2025 16:57:06 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
---
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java | 110 +++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 79 insertions(+), 31 deletions(-)
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
index 116db21..67aa1d4 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
@@ -33,59 +33,84 @@
result = orderDetails.stream()
.collect(Collectors.collectingAndThen(
Collectors.toMap(
- map -> map.get("order_id"),
+ map -> {
+ Object v = map.get("order_id");
+ if (v == null) {
+ v = map.get("orderId");
+ }
+ return String.valueOf(v);
+ },
map -> map,
- (existing, replacement) -> existing // 淇濈暀绗竴涓嚭鐜扮殑
+ (existing, replacement) -> existing // 淇濈暀绗竴涓�
),
- map -> new ArrayList<>(map.values())
+ m -> new ArrayList<>(m.values())
));
//寰幆鑾峰彇鍥剧墖
List<OrderFile> orderFiles = new ArrayList<>();
- for (Map<String,Object> obj : result) {
- List<OrderFile> orderFile = orderFileMapper.selectList(new QueryWrapper<OrderFile>()
- .select("order_id, order_number, image_base64")
- .eq("order_id", obj.get("order_id"))
+ for (Map<String, Object> obj : result) {
+
+ Object orderId = obj.get("order_id");
+ if (orderId == null) {
+ orderId = obj.get("orderId");
+ }
+
+ List<OrderFile> orderFile = orderFileMapper.selectList(
+ new QueryWrapper<OrderFile>()
+ .select("order_id, order_number, image_base64")
+ .eq("order_id", orderId)
);
- if (orderFile != null){
+
+ if (orderFile != null && !orderFile.isEmpty()) {
orderFiles.addAll(orderFile);
}
}
return orderFiles;
}
- public Object updateOrderFileByOrderNumber(MultipartFile file,String orderId,String orderNumber) throws IOException {
+ public Object updateOrderFileByOrderNumber(MultipartFile file,String name,String orderId,String orderNumber,Float width,Float height) throws IOException {
+ //鍒ゆ柇鏄惁瑙勫畾鐨勬牸寮忓悗缂�鍚�
+ if(!isAllowedFile(name)){
+ return null;
+ }
try (InputStream is = License.class.getResourceAsStream("/lisence.xml")) {
- License license = new License();
- license.setLicense(is);
+ String base64 = null;
+ if(name.toLowerCase().endsWith(".dwg")){
+ License license = new License();
+ license.setLicense(is);
+ // 璋冪敤Image绫荤殑Load鏂规硶鏉ュ姞杞借緭鍏ョ殑DWG鏂囦欢銆�
+ Image image = Image.load(file.getInputStream());
+ // 鍒涘缓CadRasterizationOptions瀹炰緥浠ュ惎鐢–AD鏍呮牸鍖栭�夐」銆�
+ CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
+ // 璁剧疆瀹藉害
+ rasterizationOptions.setPageWidth(width);
+ // 璁剧疆楂樺害
+ rasterizationOptions.setPageHeight(height);
+ // 璋冪敤杩欎釜setEmbedBackground鏂规硶鏉ヨ缃儗鏅壊鏄惁涓嶇瓑浜庤緭鍑烘牸寮忕殑榛樿鑳屾櫙鑹�
+ //rasterizationOptions.setEmbedBackground(true);
+ // 涓虹敓鎴愮殑鍥惧儚鍒涘缓涓�涓狿ngOptions鐨勫疄渚嬶紝骞跺皢鍏跺垎閰嶇粰ImageOptionsBase绫荤殑瀹炰緥銆�
+ ImageOptionsBase options = new PngOptions();
+ // 璋冪敤 setVectorRasterizationOptions 鏂规硶鏉ュ畾涔夊厜鏍呭寲閫夐」
+ options.setVectorRasterizationOptions(rasterizationOptions);
- // 璋冪敤Image绫荤殑Load鏂规硶鏉ュ姞杞借緭鍏ョ殑DWG鏂囦欢銆�
- Image image = Image.load(file.getInputStream());
- // 鍒涘缓CadRasterizationOptions瀹炰緥浠ュ惎鐢–AD鏍呮牸鍖栭�夐」銆�
- CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
- // 璁剧疆瀹藉害
- rasterizationOptions.setPageWidth(1000);
- // 璁剧疆楂樺害
- rasterizationOptions.setPageHeight(700);
- // 璋冪敤杩欎釜setEmbedBackground鏂规硶鏉ヨ缃儗鏅壊鏄惁涓嶇瓑浜庤緭鍑烘牸寮忕殑榛樿鑳屾櫙鑹�
- //rasterizationOptions.setEmbedBackground(true);
- // 涓虹敓鎴愮殑鍥惧儚鍒涘缓涓�涓狿ngOptions鐨勫疄渚嬶紝骞跺皢鍏跺垎閰嶇粰ImageOptionsBase绫荤殑瀹炰緥銆�
- ImageOptionsBase options = new PngOptions();
- // 璋冪敤 setVectorRasterizationOptions 鏂规硶鏉ュ畾涔夊厜鏍呭寲閫夐」
- options.setVectorRasterizationOptions(rasterizationOptions);
+ // 淇濆瓨鍒板瓧鑺傛祦
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ image.save(outputStream, options);
+ byte[] imageBytes = outputStream.toByteArray();
+ base64 = "data:image/png;base64," + Base64.getEncoder().encodeToString(imageBytes);
+ }else{
+ base64 = "data:image/png;base64," + Base64.getEncoder().encodeToString(file.getBytes());
+ }
- // 淇濆瓨鍒板瓧鑺傛祦
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- image.save(outputStream, options);
- byte[] imageBytes = outputStream.toByteArray();
- String base64 = "data:image/png;base64," + Base64.getEncoder().encodeToString(imageBytes);
OrderFile orderFile = new OrderFile();
orderFile.setImageBase64(base64);
- orderFile.setFileName(file.getName());
+ orderFile.setFileName(name);
orderFile.setOrderId(orderId);
orderFile.setOrderNumber(orderNumber);
orderFile.setFileData(Arrays.toString(file.getBytes()));
+ orderFile.setWidth(width);
+ orderFile.setHeight(height);
OrderFile orderFileExist = orderFileMapper
.selectOne(new LambdaQueryWrapper<OrderFile>()
@@ -107,6 +132,10 @@
e.printStackTrace();
return null;
}
+
+
+
+
}
public Object getOrderNumberFile(String orderId, String orderNumber) {
@@ -122,4 +151,23 @@
.eq("order_number", orderNumber)
) > 0;
}
+
+ public static boolean isAllowedFile(String fileName) {
+ List<String> allowedExtensions = Arrays.asList(".dwg", ".png", ".jpg");
+ if (fileName == null || fileName.isEmpty()) {
+ return false;
+ }
+
+ String lowerFileName = fileName.toLowerCase();
+
+ for (String ext : allowedExtensions) {
+ if (!ext.startsWith(".")) {
+ ext = "." + ext;
+ }
+ if (lowerFileName.endsWith(ext)) {
+ return true;
+ }
+ }
+ return false;
+ }
}
--
Gitblit v1.8.0