From d3113b2a1c4c7a6c44cb0eeaf728c302cb899792 Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期四, 07 十一月 2024 14:43:16 +0800
Subject: [PATCH] 解压

---
 src/main/java/com/whyc/service/ProductBomHistoryService.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 54 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/whyc/service/ProductBomHistoryService.java b/src/main/java/com/whyc/service/ProductBomHistoryService.java
index 47d5206..f22a37a 100644
--- a/src/main/java/com/whyc/service/ProductBomHistoryService.java
+++ b/src/main/java/com/whyc/service/ProductBomHistoryService.java
@@ -1,6 +1,7 @@
 package com.whyc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.whyc.constant.UserOperation;
 import com.whyc.dto.FIleSilkLock;
@@ -13,13 +14,15 @@
 import com.whyc.mapper.ProductHistoryMapper;
 import com.whyc.pojo.*;
 import com.whyc.util.ActionUtil;
+import com.whyc.util.CommonUtil;
+import com.whyc.util.DwgToPngUtil;
+import com.whyc.util.ImageDiff;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.ss.usermodel.ClientAnchor;
 import org.apache.poi.ss.usermodel.IndexedColors;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
-import org.springframework.web.bind.annotation.RequestParam;
 
 import javax.imageio.ImageIO;
 import javax.servlet.http.HttpServletRequest;
@@ -53,6 +56,9 @@
 
     @Autowired(required = false)
     private AttachLockMapper attachLockMapper;
+
+    @Autowired
+    private MaterialService materialService;
 
     //鏍规嵁瀛愪欢鍚嶇О鍜屾瘝鏂欏瀷鍙锋煡璇㈠巻鍙茬増鏈褰�
     public Response getBomHistoryByPModelAndSName(String pmodel, String sname) {
@@ -579,6 +585,8 @@
         List<ProductBom> diffList = new LinkedList<>();
         List<ProductBom> addList = new LinkedList<>();
         List<ProductBom> deleteList = new LinkedList<>();
+        //鏂板宸紓瀵规瘮-鍥剧焊宸紓
+        List<ProductBom> diffDwgList = new LinkedList<>();
 
         //鏌ユ壘鍒板熀鍑嗕骇鍝�
         if(baseProduct == null){ //鏌ユ壘涓婁紶鐨勭幇鏈変骇鍝佽〃鍐呮湭閿佸畾鐨勭増鏈�
@@ -646,9 +654,54 @@
                 deleteList.add(bom);
             }
         });
+        //鍥剧焊宸紓瀵规瘮閫昏緫
+        //1.鍏堟壘鍑烘墍鏈夐渶瑕佸姣旂殑鍥剧焊
+        List<ProductBom> bomListWithDwg = bomList.stream().filter(bom -> !StringUtils.isEmpty(bom.getDwgUrl())).collect(Collectors.toList());
+        //2.浠庢暟鎹簱涓壘鍒扮墿鏂欏搴旂殑鍥剧焊
+        if(bomListWithDwg.size()!=0) {
+            List<Material> materialListInDB = materialService.getListByCodeAndModelList3(bomListWithDwg);
+            if (materialListInDB.size() != 0) {
+                //瀵规瘮鍥剧焊
+                for (int i = 0; i < materialListInDB.size(); i++) {
+                    Material materialInDB = materialListInDB.get(i);
+                    String materialStrInDB = materialInDB.getSubCode() + "/" + materialInDB.getSubModel();
+                    for (int j = 0; j < bomListWithDwg.size(); j++) {
+                        ProductBom material = bomListWithDwg.get(j);
+                        String materialStr = material.getSubCode() + "/" + material.getSubModel();
+                        if (materialStrInDB.equals(materialStr)) {
+                            //濡傛灉鐗╂枡涓�鑷达紝鍒欒繘琛屽姣�
+                            String dwgUrlInDB = materialInDB.getDwgUrl();
+                            String dwgUrl = material.getDwgUrl();
+                            //鐗╂枡鍥剧焊杞寲涓簆ng鍥剧墖杩涜瀵规瘮
+                            String dwgFileStr = CommonUtil.getProjectDir() + File.separator + dwgUrlInDB;
+                            String dwgFileStr2 = CommonUtil.getProjectDir() + File.separator + dwgUrl;
+
+                            String absoluteDwgPngPath = dwgFileStr.substring(0, dwgFileStr.lastIndexOf(".")) + "-dwg.png";
+                            String absoluteDwgPngPath2 = dwgFileStr2.substring(0, dwgFileStr2.lastIndexOf(".")) + "-dwg.png";
+
+                            if (!new File(absoluteDwgPngPath).exists()) {
+                                DwgToPngUtil.dwg2png(new File(dwgFileStr));
+                            }
+                            if (!new File(absoluteDwgPngPath2).exists()) {
+                                DwgToPngUtil.dwg2png(new File(dwgFileStr2));
+                            }
+                            boolean sameImage = ImageDiff.compareImagesCheck(absoluteDwgPngPath, absoluteDwgPngPath2);
+                            if (!sameImage) { //鍥剧焊涓嶅悓
+                                material.setNotes(absoluteDwgPngPath.replace(CommonUtil.getProjectDir()+ File.separator, "") + separator + absoluteDwgPngPath2.replace(CommonUtil.getProjectDir()+ File.separator, ""));
+                                diffDwgList.add(material);
+                            }
+
+
+                        }
+                    }
+                }
+            }
+        }
+
         compareMap.put("diffList",diffList);
         compareMap.put("addList",addList);
         compareMap.put("deleteList",deleteList);
+        compareMap.put("diffDwgList",diffDwgList);
         return compareMap;
     }
 

--
Gitblit v1.9.1