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