From e6ef7e1cc20fbab6f4b70bff815d343950ffada7 Mon Sep 17 00:00:00 2001
From: lxw <810412026@qq.com>
Date: 星期五, 19 八月 2022 15:43:23 +0800
Subject: [PATCH] product/downloadProductHistory 历史产品下载(产品id和版本<下载的版本>)

---
 src/main/java/com/whyc/service/ProductBomHistoryService.java |  107 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 68 insertions(+), 39 deletions(-)

diff --git a/src/main/java/com/whyc/service/ProductBomHistoryService.java b/src/main/java/com/whyc/service/ProductBomHistoryService.java
index bb710a1..e015f91 100644
--- a/src/main/java/com/whyc/service/ProductBomHistoryService.java
+++ b/src/main/java/com/whyc/service/ProductBomHistoryService.java
@@ -8,8 +8,9 @@
 import com.whyc.dto.ZipUtils;
 import com.whyc.mapper.MaterialMapper;
 import com.whyc.mapper.ProductBomHistoryMapper;
-import com.whyc.pojo.DocUser;
-import com.whyc.pojo.ProductBomHistory;
+import com.whyc.mapper.ProductHistoryMapper;
+import com.whyc.mapper.ProductMapper;
+import com.whyc.pojo.*;
 import com.whyc.util.ActionUtil;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.ss.usermodel.ClientAnchor;
@@ -22,6 +23,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.awt.image.BufferedImage;
 import java.io.*;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -29,6 +31,10 @@
 public class ProductBomHistoryService {
     @Autowired(required = false)
     private ProductBomHistoryMapper mapper;
+
+    @Autowired(required = false)
+    private ProductHistoryMapper pHistoryMapper;
+
     @Autowired(required = false)
     private MaterialMapper cponentMapper;
 
@@ -81,23 +87,28 @@
         }
         return  new Response().setII(1,list.size()>0?true:false,list,"");
     }*/
-   /* //涓嬭浇鎸囧畾鐗堟湰鐨勪骇鍝�
-    public void downloaByVersion(HttpServletRequest req, HttpServletResponse resp, String parentModel, int version) {
+    //鍘嗗彶浜у搧涓嬭浇(浜у搧id鍜岀増鏈�<涓嬭浇鐨勭増鏈�>)
+    public void downloadProductHistory(HttpServletRequest req, HttpServletResponse resp, int productId, int version) {
+        //璇诲彇浜у搧淇℃伅
         QueryWrapper wrapper=new QueryWrapper();
-        wrapper.eq("parent_model",parentModel);
-        wrapper.le("s_version",version);
-        wrapper.ge("e_version",version);
-        List<ProductBomHistory> list=mapper.selectList(wrapper);
-        //鏌ヨ鍑哄瓨鍦ㄦ浛鎹㈠叧绯诲緱鏁h浠�
-        List<ProductBomHistory> replaceBomHis=cponentMapper.getReplaceHisMaterial(parentModel,version);
-        //涓や釜闆嗗悎鍚堝苟鎵嶆槸鏈�缁堢殑BOM
-        if(list!=null&&list.size()>0){
-            if(replaceBomHis!=null&&replaceBomHis.size()>0){
-                replaceBomHis.stream().forEach(replaceBom->{
-                    list.add(replaceBom);
-                });
+        wrapper.eq("id",productId);
+        wrapper.eq("version",version);
+        wrapper.last("limit 1");
+        ProductHistory pHistory=pHistoryMapper.selectOne(wrapper);
+        //璇诲彇鎸囧畾鐗堟湰浜у搧鐨勫瓙浠跺拰鍏宠仈鐨勭墿鏂欎俊鎭�
+        List<ProductBomHistory> list=mapper.getBomHistoryAndMaterial(productId,version);
+        //澶勭悊瀛樺湪鍏宠仈鍏崇郴鐨勭墿鏂�
+        List<ProductBomHistory> endList=new ArrayList<>();
+        list.stream().forEach(bomHistory -> {
+            endList.add(bomHistory);
+            if(bomHistory.getMaterials()!=null&&bomHistory.getMaterials().size()>0){
+                for (Material m:bomHistory.getMaterials()) {
+                    //灏嗙墿鏂欏瓨鏀句负涓�涓猙om涓轰笅杞藉仛鍑嗗
+                    ProductBomHistory copyBomHis=copyMaterialToBomHis(m);
+                    endList.add(copyBomHis);
+                }
             }
-        }
+        });
         HSSFWorkbook wb = new HSSFWorkbook();
         //瀛椾綋鏍煎紡-鍔犵矖
         HSSFCellStyle cellStyle = wb.createCellStyle();
@@ -105,21 +116,21 @@
         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
         cellStyle.setFont(font);
         //鐢熸垚excel骞跺皢dwg鏂囦欢鏀惧湪鍚屼竴鎶ヤ笅鍘嬬缉
-        creatBomHsitoryExcel(req,resp,list,wb,version);
+        creatBomHsitoryExcel(req,resp,pHistory,list,wb);
         //璁板綍鏃ュ織
         DocUser docUser= ActionUtil.getUser();
-        String operationDetail="鍏蜂綋浜у搧姣嶆枡鍨嬪彿涓�:"+parentModel;
-        String opreationMsg="鎵ц浜嗘渶鏂扮増浜у搧涓嬭浇鎿嶄綔";
+        String operationDetail="鍏蜂綋浜у搧涓�:"+pHistory.toString();
+        String opreationMsg="鎵ц浜�"+pHistory.getVersion()+"鐗堟湰浜у搧鐨勪笅杞芥搷浣�";
         String terminalIp=req.getRemoteAddr();
         logService.recordOperationLog(docUser.getId(),docUser.getName(), UserOperation.TYPE_DOWNLOAD.getType(),new Date(),terminalIp,opreationMsg,operationDetail);
-    }*/
+    }
     //鏍规嵁浜у搧淇℃伅鍒涘缓excel琛ㄦ牸骞跺瓨鏀惧湪鎸囧畾鐩綍
-    public void creatBomHsitoryExcel(HttpServletRequest req, HttpServletResponse resp,List<ProductBomHistory> list, HSSFWorkbook wb,int version){
+    public void creatBomHsitoryExcel(HttpServletRequest req, HttpServletResponse resp,ProductHistory pHistory,List<ProductBomHistory> list, HSSFWorkbook wb){
         String fileDirName = FileDirPath.getFileDirName();
         String rootFace="";
         String excelName="";
         //鍒涘缓鍗曚釜sheet
-        HSSFSheet sheet = wb.createSheet("bom_"+version+"淇℃伅");
+        HSSFSheet sheet = wb.createSheet("bom_"+pHistory.getVersion()+"淇℃伅");
         sheet.setColumnWidth(1,5000);
         sheet.setColumnWidth(2,5000);
         sheet.setColumnWidth(3,5000);
@@ -149,19 +160,19 @@
         sheet.getRow(rownum).createCell(14).setCellValue("琛ㄩ潰澶勭悊/鐗╂枡璇︽儏");
         sheet.getRow(rownum).createCell(15).setCellValue("澶囨敞");
         sheet.getRow(rownum).createCell(16).setCellValue("鍥剧墖");
+
+        excelName=pHistory.getParentCode()+"_"+pHistory.getParentModel()+"_"+pHistory.getVersion();
+        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++) {
                 ProductBomHistory bomHistory= (ProductBomHistory) list.get(i);
                 String dwgUrl=bomHistory.getDwgUrl();
-                if(i==0){
-                    //excelName=bomHistory.getParentCode()+"_"+bomHistory.getParentModel()+"_"+version;
-                    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);
                     bomService.copyFile(sourceFile,rootFace);
@@ -169,16 +180,12 @@
                 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(bomHistory.getParentCode());
-                //sheet.getRow(rownum+i+1).createCell(3).setCellValue(bomHistory.getParentName());
-                //sheet.getRow(rownum+i+1).createCell(4).setCellValue(bomHistory.getParentModel());
+                sheet.getRow(rownum+i+1).createCell(2).setCellValue(pHistory.getParentCode());
+                sheet.getRow(rownum+i+1).createCell(3).setCellValue(pHistory.getParentName());
+                sheet.getRow(rownum+i+1).createCell(4).setCellValue(pHistory.getParentModel());
                 sheet.getRow(rownum+i+1).createCell(5).setCellValue(bomHistory.getCategory());
                 sheet.getRow(rownum+i+1).createCell(6).setCellValue(bomHistory.getSubCode());
-                if(bomHistory.getOldSubName()!=null&&!bomHistory.getOldSubName().isEmpty()){
-                    sheet.getRow(rownum+i+1).createCell(7).setCellValue(bomHistory.getSubName()+"("+bomHistory.getOldSubName()+")");
-                }else{
-                    sheet.getRow(rownum+i+1).createCell(7).setCellValue(bomHistory.getSubName());
-                }
+                sheet.getRow(rownum+i+1).createCell(7).setCellValue(bomHistory.getSubName());
                 sheet.getRow(rownum+i+1).createCell(8).setCellValue(bomHistory.getSubModel());
                 sheet.getRow(rownum+i+1).createCell(9).setCellValue(bomHistory.getUnit()==null?"":bomHistory.getUnit());
                 sheet.getRow(rownum+i+1).createCell(10).setCellValue(bomHistory.getQuantity());
@@ -254,4 +261,26 @@
             e.printStackTrace();
         }
     }
+
+    //灏嗙墿鏂欏瓨鏀句负涓�涓猙omHistory涓轰笅杞藉仛鍑嗗
+    private ProductBomHistory copyMaterialToBomHis(Material m) {
+        ProductBomHistory bomHis=new ProductBomHistory();
+        bomHis.setType(m.getType());
+        bomHis.setCategory(m.getCategory());
+        bomHis.setSubCode(m.getSubCode());
+        bomHis.setSubName(m.getSubName());
+        bomHis.setSubModel(m.getSubModel());
+        bomHis.setUnit(m.getUnit());
+        bomHis.setQuantity(m.getQuantity());
+        bomHis.setProducer(m.getProducer());
+        bomHis.setMaterial(m.getMaterial());
+        bomHis.setThickness(m.getThickness());
+        bomHis.setSurfaceDetail(m.getSurfaceDetail());
+        bomHis.setNotes(m.getNotes());
+        bomHis.setPictureUrl(m.getPictureUrl());
+        bomHis.setDwgUrl(m.getDwgUrl());
+        bomHis.setFileUrl(m.getFileUrl());
+        bomHis.setCreateDate(m.getCreateDate());
+        return  bomHis;
+    }
 }

--
Gitblit v1.9.1