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