From e56b9ed421f0825130bcd14137e2482470e19327 Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期五, 16 九月 2022 15:13:51 +0800
Subject: [PATCH] 更新图纸对比

---
 src/main/java/com/whyc/service/MaterialService.java |   57 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 48 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/whyc/service/MaterialService.java b/src/main/java/com/whyc/service/MaterialService.java
index 84d095e..67b9a48 100644
--- a/src/main/java/com/whyc/service/MaterialService.java
+++ b/src/main/java/com/whyc/service/MaterialService.java
@@ -1,7 +1,6 @@
 package com.whyc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -11,24 +10,25 @@
 import com.whyc.pojo.DocUser;
 import com.whyc.pojo.Material;
 import com.whyc.pojo.ProductBom;
-import com.whyc.util.ActionUtil;
-import com.whyc.util.CommonUtil;
 import com.whyc.util.DateUtil;
-import com.whyc.util.FileUtil;
-import com.whyc.util.Zip4jUtil;
+import com.whyc.util.*;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.ss.usermodel.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.FileCopyUtils;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.stream.Collectors;
 
 @Service
@@ -430,4 +430,43 @@
         return new Response().set(1,true,"涓婁紶瀹屾垚");
     }
 
+    public Response dwgCompare(int materialId, int materialId2) throws IOException {
+        ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        HttpServletResponse response = servletRequestAttributes.getResponse();
+
+        //鑾峰彇鍚勮嚜鐗╂枡鐨勫浘绾�
+        String dwgUrl = mapper.selectById(materialId).getDwgUrl();
+        String dwgUrl2 = mapper.selectById(materialId2).getDwgUrl();
+        if(dwgUrl == null || dwgUrl2 == null){
+            return new Response().set(1,false,"鏃犳硶瀵规瘮,鎵�閫夌墿鏂欒嚦灏戞湁1涓笉瀛樺湪鍥剧焊");
+        }
+        String dwgFileStr = CommonUtil.getProjectDir() + File.separator + dwgUrl;
+        String dwgFileStr2 = CommonUtil.getProjectDir() + File.separator + dwgUrl2;
+
+        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));
+        }
+
+        ByteArrayOutputStream stream = ImageDiff.compareImages(absoluteDwgPngPath, absoluteDwgPngPath2);
+        String fileName = "name.png";
+        OutputStream toClient = null;
+        try {
+            response.setContentType("application/octet-stream");
+            response.addHeader("Content-Disposition","attachment;filename=" + fileName);
+            toClient = response.getOutputStream();
+            toClient.write(stream.toByteArray());
+            toClient.flush();
+            toClient.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+
+        return null;
+    }
 }

--
Gitblit v1.9.1