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