From 209e2fceca9e408bf7863f6de98d2a036caec66d Mon Sep 17 00:00:00 2001
From: lxw <810412026@qq.com>
Date: 星期五, 19 八月 2022 11:52:18 +0800
Subject: [PATCH] 产品下载

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

diff --git a/src/main/java/com/whyc/service/ProductBomService.java b/src/main/java/com/whyc/service/ProductBomService.java
index 8d551fe..24072ee 100644
--- a/src/main/java/com/whyc/service/ProductBomService.java
+++ b/src/main/java/com/whyc/service/ProductBomService.java
@@ -11,6 +11,7 @@
 import com.whyc.dto.ZipUtils;
 import com.whyc.mapper.MaterialMapper;
 import com.whyc.mapper.ProductBomMapper;
+import com.whyc.mapper.ProductMapper;
 import com.whyc.pojo.*;
 import com.whyc.util.ActionUtil;
 import org.apache.poi.hssf.usermodel.*;
@@ -32,11 +33,16 @@
 @Service
 public class ProductBomService {
 
+
     @Autowired(required = false)
     private ProductBomMapper mapper;
 
     @Autowired(required = false)
     private MaterialMapper cponentMapper;
+
+    @Autowired(required = false)
+    private ProductMapper productMapper;
+
     @Autowired
     private DocLogService logService;
     //鍥剧焊鍒嗙被妫�绱�
@@ -46,7 +52,7 @@
         PageInfo pageInfo=new PageInfo(list);
         return  new Response().setII(1,list.size()>0?true:false,pageInfo,"鏁版嵁杩斿洖");
     }
-    //鍥剧焊鏂囦欢涓嬭浇
+   /* //鍥剧焊鏂囦欢涓嬭浇
     public void downloadCadDrawer(HttpServletRequest req, HttpServletResponse resp, List<ProductBom> boms) {
         HSSFWorkbook wb = new HSSFWorkbook();
         //瀛椾綋鏍煎紡-鍔犵矖
@@ -63,7 +69,7 @@
         String terminalIp=req.getRemoteAddr();
         logService.recordOperationLog(docUser.getId(),docUser.getName(), UserOperation.TYPE_DOWNLOAD.getType(),new Date(),terminalIp,opreationMsg,operationDetail);
 
-    }
+    }*/
     //鏍规嵁瀛愪欢code鑾峰彇鏈�缁堢殑淇℃伅
     public Response getBomBySubcode(String scode) {
         QueryWrapper wrapper=new QueryWrapper();
@@ -181,43 +187,38 @@
         PageInfo pageInfo=new PageInfo(list);
         return new Response().setII(1,list!=null?true:false,pageInfo,"杩斿洖鏁版嵁");
     }*/
-    //浜у搧鎵撳寘涓嬭浇
-    public  void downloadBom(HttpServletRequest req, HttpServletResponse resp, String parentModel) {
+    //浜у搧涓嬭浇(浜у搧id鍜岀増鏈�)
+    public  void downloadProduct(HttpServletRequest req, HttpServletResponse resp, int productId , int version) {
         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);
-        //鏌ヨ鍑哄瓨鍦ㄦ浛鎹㈠叧绯诲緱鏁h浠�
-        List<ProductBom> replaceBoms=cponentMapper.getReplaceMaterial(parentModel);
-        //涓や釜闆嗗悎鍚堝苟鎵嶆槸鏈�缁堢殑BOM
-        if(list!=null&&list.size()>0){
-            if(replaceBoms!=null&&replaceBoms.size()>0){
-                replaceBoms.stream().forEach(replaceBom->{
-                    list.add(replaceBom);
-                });
-            }
-        }
+        wrapper.eq("id",productId);
+        wrapper.last("limit 1");
+        Product product=productMapper.selectOne(wrapper);
+        //璇诲彇浜у搧鐨勫瓙浠跺拰鍏宠仈鐨勭墿鏂欎俊鎭�
+        List<ProductBom> list=mapper.getBomAndMaterial(productId,version);
+        //澶勭悊
         //鐢熸垚excel骞跺皢dwg鏂囦欢鏀惧湪鍚屼竴鎶ヤ笅鍘嬬缉
-        creatBomExcel(req,resp,list,wb,"bom");
+        creatBomExcel(req,resp,product,list,wb,"bom");
         //璁板綍鏃ュ織
         DocUser docUser= ActionUtil.getUser();
-        String operationDetail="鍏蜂綋浜у搧姣嶆枡鍨嬪彿涓�:"+parentModel;
+        String operationDetail="鍏蜂綋浜у搧淇℃伅涓�:"+product.toString();
         String opreationMsg="鎵ц浜嗘渶鏂扮増浜у搧涓嬭浇鎿嶄綔";
         String terminalIp=req.getRemoteAddr();
         logService.recordOperationLog(docUser.getId(),docUser.getName(), UserOperation.TYPE_DOWNLOAD.getType(),new Date(),terminalIp,opreationMsg,operationDetail);
     }
     //鏍规嵁浜у搧淇℃伅鍒涘缓excel琛ㄦ牸骞跺瓨鏀惧湪鎸囧畾鐩綍
-    public void creatBomExcel(HttpServletRequest req, HttpServletResponse resp,List list, HSSFWorkbook wb,String type){
+    public void creatBomExcel(HttpServletRequest req, HttpServletResponse resp,Product product,List list, HSSFWorkbook wb,String type){
         String fileDirName = FileDirPath.getFileDirName();
         String rootFace="";
         String excelName="";
         //鍒涘缓鍗曚釜sheet
-        HSSFSheet sheet = wb.createSheet("bom淇℃伅");
+        HSSFSheet sheet = wb.createSheet("浜у搧淇℃伅");
         sheet.setColumnWidth(1,5000);
         sheet.setColumnWidth(2,5000);
         sheet.setColumnWidth(3,5000);
@@ -247,49 +248,43 @@
         sheet.getRow(rownum).createCell(14).setCellValue("琛ㄩ潰澶勭悊/鐗╂枡璇︽儏");
         sheet.getRow(rownum).createCell(15).setCellValue("澶囨敞");
         sheet.getRow(rownum).createCell(16).setCellValue("鍥剧墖");
-
+        //鏋勫缓excel鍚嶇О鍜屽垱寤烘枃浠跺す
+        excelName=product.getParentCode()+"_"+product.getParentModel();
+        String timeStr= ActionUtil.sdfwithFTP.format(new Date());
+        if(type.equals("pic")){
+            excelName=timeStr;
+        }
+        rootFace=fileDirName+File.separator+excelName;
+        File destfile = new File(rootFace);
+        if(!destfile.exists()) {
+            destfile.mkdir();
+        }
         //灏嗛�変腑鐨勬枃浠跺瓨鍏ユ寚瀹氱洰褰曚笅鎵撳寘涓嬭浇
         if(list!=null&&list.size()>0){
             for (int i=0;i<list.size();i++) {
                 ProductBom bom= (ProductBom) list.get(i);
                 String dwgUrl=bom.getDwgUrl();
-                if(i==0){
-                    //excelName=bom.getParentCode()+"_"+bom.getParentModel();
-                    String timeStr= ActionUtil.sdfwithFTP.format(new Date());
-                    if(type.equals("pic")){
-                        excelName=timeStr;
-                    }
-                    rootFace=fileDirName+File.separator+excelName;
-                    File destfile = new File(rootFace);
-                    if(!destfile.exists()) {
-                        destfile.mkdir();
-                    }
-                }
                 if((dwgUrl!=null)&&(!dwgUrl.isEmpty())){
                     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());
-                if(bom.getOldSubName()!=null&&!bom.getOldSubName().isEmpty()){
-                    sheet.getRow(rownum+i+1).createCell(7).setCellValue(bom.getSubName()+"("+bom.getOldSubName()+")");
-                }else{
-                    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());
+                rownum=rownum+i+1;
+                Row row=sheet.createRow(rownum);
+                sheet.getRow(rownum).createCell(1).setCellValue(i+1);
+                sheet.getRow(rownum).createCell(2).setCellValue(product.getParentCode());
+                sheet.getRow(rownum).createCell(3).setCellValue(product.getParentName());
+                sheet.getRow(rownum).createCell(4).setCellValue(product.getParentModel());
+                sheet.getRow(rownum).createCell(5).setCellValue(bom.getCategory());
+                sheet.getRow(rownum).createCell(6).setCellValue(bom.getSubCode());
+                sheet.getRow(rownum).createCell(7).setCellValue(bom.getSubName());
+                sheet.getRow(rownum).createCell(8).setCellValue(bom.getSubModel());
+                sheet.getRow(rownum).createCell(9).setCellValue(bom.getUnit()==null?"":bom.getUnit());
+                sheet.getRow(rownum).createCell(10).setCellValue(bom.getQuantity());
+                sheet.getRow(rownum).createCell(11).setCellValue(bom.getProducer()==null?"":bom.getProducer());
+                sheet.getRow(rownum).createCell(12).setCellValue(bom.getMaterial());
+                sheet.getRow(rownum).createCell(13).setCellValue(bom.getThickness());
+                sheet.getRow(rownum).createCell(14).setCellValue(bom.getSurfaceDetail());
+                sheet.getRow(rownum).createCell(15).setCellValue(bom.getNotes());
                 if((bom.getPictureUrl()!=null)&&(!bom.getPictureUrl().isEmpty())){
                     ByteArrayOutputStream byteArrayOut = null;
                     try {
@@ -297,7 +292,7 @@
                         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);
+                        HSSFClientAnchor anchor = new HSSFClientAnchor(50, 20, 1000, 230,(short) 16, rownum, (short) 16, rownum);
                         anchor.setAnchorType(ClientAnchor.MOVE_AND_RESIZE);
                         //鎻掑叆鍥剧墖
                         patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
@@ -387,8 +382,8 @@
         return new Response().setII(1,list.size()>0?true:false,list,"杩斿洖鏁版嵁");
     }*/
     //鏍规嵁浜у搧id鏌ヨ瀛愪欢鍙婂叾鍏宠仈鐨勭墿鏂欎俊鎭�
-    public Response getBomAndMaterial(int productId) {
-        List<ProductBom> list=mapper.getBomAndMaterial(productId);
+    public Response getBomAndMaterial(int productId,int version) {
+        List<ProductBom> list=mapper.getBomAndMaterial(productId,version);
         return new Response().setII(1,list.size()>0?true:false,list,"杩斿洖鐗╂枡淇℃伅鍙婂叧鑱旂墿鏂�");
     }
 }

--
Gitblit v1.9.1