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