From 9e2ee26a25c6ac42963e374afb01b788831bb52f Mon Sep 17 00:00:00 2001
From: lxw <810412026@qq.com>
Date: 星期三, 03 八月 2022 10:16:23 +0800
Subject: [PATCH] 产品管理去除bom最大版本查询和最新版本打包下载

---
 src/main/java/com/whyc/service/ProductBomService.java |  146 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 146 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/whyc/service/ProductBomService.java b/src/main/java/com/whyc/service/ProductBomService.java
index 699de88..786578f 100644
--- a/src/main/java/com/whyc/service/ProductBomService.java
+++ b/src/main/java/com/whyc/service/ProductBomService.java
@@ -15,13 +15,20 @@
 import com.whyc.pojo.ProductBomApproving;
 import com.whyc.pojo.ProductBomHistory;
 import com.whyc.util.ActionUtil;
+import org.apache.poi.hssf.usermodel.*;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.ClientAnchor;
+import org.apache.poi.ss.usermodel.Row;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.imageio.ImageIO;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
 import java.io.*;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.LinkedList;
@@ -189,4 +196,143 @@
         List list=mapper.selectList(wrapper);
         return new Response().setII(1,list!=null?true:false,list,"杩斿洖鏁版嵁");
     }
+    //浜у搧鎵撳寘涓嬭浇
+    public  Response downloadBom(HttpServletRequest req, HttpServletResponse resp, String parentModel) {
+        HSSFWorkbook wb = new HSSFWorkbook();
+        //瀛椾綋鏍煎紡-鍔犵矖
+        HSSFCellStyle cellStyle = wb.createCellStyle();
+        HSSFFont font = wb.createFont();
+        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
+        cellStyle.setFont(font);
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.eq("parent_model",parentModel);
+        List<ProductBom> list=mapper.selectList(wrapper);
+        //鐢熸垚excel骞跺皢dwg鏂囦欢鏀惧湪鍚屼竴鎶ヤ笅鍘嬬缉
+        creatBomExcel(req,resp,list,wb);
+        return  new Response().setII(1,true,"","");
+    }
+    //鏍规嵁浜у搧淇℃伅鍒涘缓excel琛ㄦ牸骞跺瓨鏀惧湪鎸囧畾鐩綍
+    public void creatBomExcel(HttpServletRequest req, HttpServletResponse resp,List<ProductBom> list, HSSFWorkbook wb){
+        String fileDirName = FileDirPath.getFileDirName();
+        String rootFace=fileDirName+ File.separator+"downLoad";
+        String pictureName="";
+        String excelName="";
+        //鍒涘缓鍗曚釜sheet
+        HSSFSheet sheet = wb.createSheet("bom淇℃伅");
+        sheet.setColumnWidth(16,6000);
+        //鍥剧墖鍏冪礌
+        HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
+        int rownum = 1;
+        sheet.createRow(rownum);
+        sheet.getRow(rownum).createCell(1).setCellValue("搴忓垪");
+        sheet.getRow(rownum).createCell(2).setCellValue("姣嶇墿鏂欑紪鐮�");
+        sheet.getRow(rownum).createCell(3).setCellValue("姣嶇墿鏂欏悕绉�");
+        sheet.getRow(rownum).createCell(4).setCellValue("姣嶇墿鏂欏瀷鍙�");
+        sheet.getRow(rownum).createCell(5).setCellValue("绫诲埆");
+        sheet.getRow(rownum).createCell(6).setCellValue("瀛愪欢缂栫爜");
+        sheet.getRow(rownum).createCell(7).setCellValue("瀛愪欢鍚嶇О");
+        sheet.getRow(rownum).createCell(8).setCellValue("瀛愪欢鍨嬪彿");
+        sheet.getRow(rownum).createCell(9).setCellValue("鍩烘湰鍗曚綅");
+        sheet.getRow(rownum).createCell(10).setCellValue("瀛愪欢鏁伴噺");
+        sheet.getRow(rownum).createCell(11).setCellValue("鐢熶骇鍟�");
+        sheet.getRow(rownum).createCell(12).setCellValue("灏佽绫诲瀷/鏉愯川");
+        sheet.getRow(rownum).createCell(13).setCellValue("鍏冧欢缂栧彿/鏂欏帤");
+        sheet.getRow(rownum).createCell(14).setCellValue("琛ㄩ潰澶勭悊/鐗╂枡璇︽儏");
+        sheet.getRow(rownum).createCell(15).setCellValue("澶囨敞");
+        sheet.getRow(rownum).createCell(16).setCellValue("鍥剧墖");
+        //灏嗛�変腑鐨勬枃浠跺瓨鍏ユ寚瀹氱洰褰曚笅鎵撳寘涓嬭浇
+        if(list!=null&&list.size()>0){
+            for (int i=0;i<list.size();i++) {
+                ProductBom bom=list.get(i);
+                String dwgUrl=bom.getDwgUrl();
+                excelName=bom.getParentCode();
+                if((dwgUrl!=null)&&(!dwgUrl.isEmpty())){
+                    pictureName+=dwgUrl.substring(dwgUrl.lastIndexOf("\\")+1)+",";
+                    File sourceFile=new File(fileDirName+ File.separator+dwgUrl);
+                    copyFile(sourceFile,rootFace);
+                }
+                Row row=sheet.createRow(rownum+i+1);
+                row.setHeight((short)(1500));
+                sheet.getRow(rownum+i+1).createCell(1).setCellValue(i+1);
+                sheet.getRow(rownum+i+1).createCell(2).setCellValue(bom.getParentCode());
+                sheet.getRow(rownum+i+1).createCell(3).setCellValue(bom.getParentName());
+                sheet.getRow(rownum+i+1).createCell(4).setCellValue(bom.getParentModel());
+                sheet.getRow(rownum+i+1).createCell(5).setCellValue(bom.getCategory());
+                sheet.getRow(rownum+i+1).createCell(6).setCellValue(bom.getSubCode());
+                sheet.getRow(rownum+i+1).createCell(7).setCellValue(bom.getSubName());
+                sheet.getRow(rownum+i+1).createCell(8).setCellValue(bom.getSubModel());
+                sheet.getRow(rownum+i+1).createCell(9).setCellValue(bom.getUnit()==null?"":bom.getUnit());
+                sheet.getRow(rownum+i+1).createCell(10).setCellValue(bom.getQuantity());
+                sheet.getRow(rownum+i+1).createCell(11).setCellValue(bom.getProducer()==null?"":bom.getProducer());
+                sheet.getRow(rownum+i+1).createCell(12).setCellValue(bom.getMaterial());
+                sheet.getRow(rownum+i+1).createCell(13).setCellValue(bom.getThickness());
+                sheet.getRow(rownum+i+1).createCell(14).setCellValue(bom.getSurfaceDetail());
+                sheet.getRow(rownum+i+1).createCell(15).setCellValue(bom.getNotes());
+                if((bom.getPictureUrl()!=null)&&(!bom.getPictureUrl().isEmpty())){
+                    ByteArrayOutputStream byteArrayOut = null;
+                    try {
+                        byteArrayOut = new ByteArrayOutputStream();
+                        BufferedImage bufferImg = ImageIO.read(new FileInputStream(new File(fileDirName+File.separator+bom.getPictureUrl())));
+                        ImageIO.write(bufferImg, "png", byteArrayOut);
+                        //anchor涓昏鐢ㄤ簬璁剧疆鍥剧墖鐨勫睘鎬�
+                        HSSFClientAnchor anchor = new HSSFClientAnchor(50, 20, 1000, 230,(short) 16, rownum+i+1, (short) 16, rownum+i+1);
+                        anchor.setAnchorType(ClientAnchor.MOVE_AND_RESIZE);
+                        //鎻掑叆鍥剧墖
+                        patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }finally {
+                        if (byteArrayOut != null) {
+                            try {
+                                byteArrayOut.close();
+                            } catch (IOException e) {
+                                System.out.println("鍏抽棴ByteArrayOutputStream澶辫触");
+                            }
+                        }
+                    }
+                }
+                FileOutputStream fileOut =null;
+                try {
+                    fileOut = new FileOutputStream(rootFace+File.separator+excelName+".xls");
+                    // 鍐欏叆excel鏂囦欢
+                    wb.write(fileOut);
+                } catch (IOException e) {
+                    e.printStackTrace();
+                } finally {
+                    if(fileOut != null){
+                        try {
+                            fileOut.close();
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }
+            }
+        }
+        try {
+            File file=new File(rootFace+".zip");
+            FileOutputStream forootFace = new FileOutputStream(file);
+            ZipUtils.toZip(rootFace, forootFace,true);
+            // 杞爜闃叉涔辩爜
+            resp.addHeader("Content-Disposition", "attachment;filename="
+                    + new String(excelName.getBytes("UTF-8"), "ISO8859-1")
+                    + ".zip");
+            OutputStream out = resp.getOutputStream();
+            FileInputStream in = new FileInputStream(rootFace+".zip");
+            int len=0;
+            byte[] buffer =new byte[1024];
+            //7. 灏嗙紦鍐插尯涓殑鏁版嵁杈撳嚭
+            while ((len=in.read(buffer))>0){
+                out.write(buffer,0,len);
+            }
+            in.close();
+            out.close();
+            file.delete();
+        } catch (FileNotFoundException | UnsupportedEncodingException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
 }

--
Gitblit v1.9.1