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