| | |
| | | import com.whyc.util.CommonUtil; |
| | | import com.whyc.util.FileUtil; |
| | | import org.apache.poi.hssf.usermodel.*; |
| | | import org.apache.poi.ss.usermodel.BorderStyle; |
| | | import org.apache.poi.ss.usermodel.ClientAnchor; |
| | | import org.apache.poi.ss.usermodel.IndexedColors; |
| | | import org.apache.poi.ss.util.CellRangeAddress; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.imageio.ImageIO; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.awt.image.BufferedImage; |
| | | import java.io.*; |
| | | import java.net.URLEncoder; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | } |
| | | } |
| | | //编辑单个图片上传 |
| | | public Response updateDevPic(MultipartFile filePic, int num,int picNum,String picUrl) throws IOException { |
| | | public Response updateDevPic(MultipartFile filePic, int num,int picNum) throws IOException { |
| | | Date date = new Date(); |
| | | long time = date.getTime(); |
| | | String rootFile = CommonUtil.getRootFile(); |
| | | String devDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "dev" + File.separator; |
| | | String devDir = rootFile + devDirSuffix; |
| | | QueryWrapper wrapper=new QueryWrapper(); |
| | | wrapper.eq("num",num); |
| | | wrapper.last("limit 1"); |
| | | BomAcceptance bomAcceptance=mapper.selectOne(wrapper); |
| | | String picUrl=""; |
| | | if(picNum==1){ |
| | | picUrl=bomAcceptance.getDevPicleft(); |
| | | } |
| | | if(picNum==2){ |
| | | picUrl=bomAcceptance.getDevPicright(); |
| | | } |
| | | if(picNum==3){ |
| | | picUrl=bomAcceptance.getDevPicfront(); |
| | | } |
| | | if(picNum==4){ |
| | | picUrl=bomAcceptance.getDevPicback(); |
| | | } |
| | | if(picNum==6){ |
| | | picUrl=bomAcceptance.getBomAgreement(); |
| | | } |
| | | //后面图 |
| | | if(filePic!=null){ |
| | | //存储文件 |
| | |
| | | } |
| | | } |
| | | //编辑多个图片上传 |
| | | public Response updatePartPic(List<MultipartFile> multipartFileList, String picUrl) throws IOException { |
| | | public Response updatePartPic(List<MultipartFile> multipartFileList, int num) throws IOException { |
| | | String rootFile = CommonUtil.getRootFile(); |
| | | rootFile=rootFile.replace("doc_file",""); |
| | | QueryWrapper wrapper=new QueryWrapper(); |
| | | wrapper.eq("num",num); |
| | | wrapper.last("limit 1"); |
| | | BomAcceptance bomAcceptance=mapper.selectOne(wrapper); |
| | | String picUrl=bomAcceptance.getSparePicpart(); |
| | | //配件存储 |
| | | if(multipartFileList!=null && multipartFileList.size()!=0){ |
| | | for (int i = 0; i < multipartFileList.size(); i++) { |
| | |
| | | wrapper.last("limit 1"); |
| | | BomAcceptance bomAcceptance=mapper.selectOne(wrapper); |
| | | //生成excel |
| | | creatBomAcceptanceExcel(req,resp,bomAcceptance); |
| | | creatBomAcceptanceExcel(resp,bomAcceptance); |
| | | } |
| | | //生成excel |
| | | private void creatBomAcceptanceExcel(HttpServletRequest req, HttpServletResponse resp, BomAcceptance bomAcceptance) { |
| | | private void creatBomAcceptanceExcel( HttpServletResponse resp, BomAcceptance bomAcceptance) { |
| | | String rootFile = CommonUtil.getRootFile(); |
| | | List<String> sparePicList=new ArrayList<>(); |
| | | if(bomAcceptance.getSparePicpart()!=null||!bomAcceptance.getSparePicpart().isEmpty()){ |
| | | String filePath=rootFile+bomAcceptance.getSparePicpart(); |
| | | //获取文件夹下所有的图片名 |
| | | sparePicList=FileUtil.getFileNameWithOutDirectory(filePath); |
| | | } |
| | | String devRoot=rootFile.replace("doc_file", ""); |
| | | List<String> devPicList=new ArrayList<>(); |
| | | if(bomAcceptance.getDevPicleft()!=null||!bomAcceptance.getDevPicleft().isEmpty()){ |
| | | devPicList.add(bomAcceptance.getDevPicleft()); |
| | | } |
| | | if(bomAcceptance.getDevPicright()!=null||!bomAcceptance.getDevPicright().isEmpty()){ |
| | | devPicList.add(bomAcceptance.getDevPicright()); |
| | | } |
| | | if(bomAcceptance.getDevPicfront()!=null||!bomAcceptance.getDevPicfront().isEmpty()){ |
| | | devPicList.add(bomAcceptance.getDevPicfront()); |
| | | } |
| | | if(bomAcceptance.getDevPicback()!=null||!bomAcceptance.getDevPicback().isEmpty()){ |
| | | devPicList.add(bomAcceptance.getDevPicback()); |
| | | } |
| | | |
| | | String fileName="产品验收信息记录"; |
| | | //创建单个sheet |
| | | HSSFWorkbook wb = new HSSFWorkbook(); |
| | | //字体格式-加粗 |
| | | HSSFCellStyle cellStyle = wb.createCellStyle(); |
| | | cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); |
| | | cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); |
| | | cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); |
| | | |
| | | cellStyle.setBorderBottom(BorderStyle.THICK); |
| | | cellStyle.setBorderLeft(BorderStyle.THICK); |
| | | cellStyle.setBorderRight(BorderStyle.THICK); |
| | | cellStyle.setBorderTop(BorderStyle.THICK); |
| | | |
| | | HSSFFont font = wb.createFont(); |
| | | font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); |
| | | cellStyle.setFont(font); |
| | | HSSFSheet sheet = wb.createSheet("产品验收信息记录"); |
| | | sheet.setColumnWidth(1,10000); |
| | | sheet.setColumnWidth(0,10000); |
| | | if(sparePicList!=null&&sparePicList.size()>0){ |
| | | int length = sparePicList.size(); |
| | | length=length>5?length:4; |
| | | for (int i = 1; i < length+1; i++){ |
| | | sheet.setColumnWidth(i,5000); |
| | | } |
| | | } |
| | | sheet.setDefaultRowHeight((short)(1000)); |
| | | //图片元素 |
| | | HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); |
| | | int rowNum=0; |
| | | HSSFRow row=sheet.createRow(rowNum); |
| | | HSSFCell cell=row.createCell(0); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("产品验收信息记录"); |
| | | cell.setCellValue("产品验收信息记录表"); |
| | | cell.setCellStyle(cellStyle); |
| | | sheet.addMergedRegion(new CellRangeAddress(0,0,0,1)); |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | |
| | | cell.setCellValue(bomAcceptance.getBomModel()); |
| | | cell.setCellStyle(cellStyle); |
| | | |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | |
| | | cell=row.createCell(1); |
| | | cell.setCellValue(bomAcceptance.getStandParam()); |
| | | cell.setCellStyle(cellStyle); |
| | | sheet.addMergedRegion(new CellRangeAddress(4,5,0,0)); |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("主机照片(左侧图,正面图,右侧图,后面图)"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | cell.setCellValue(bomAcceptance.getDevWeightAll()); |
| | | cell.setCellStyle(cellStyle); |
| | | if(devPicList!=null&&devPicList.size()>0){ |
| | | ByteArrayOutputStream byteArrayOut = null; |
| | | for(int i=0;i<devPicList.size();i++){ |
| | | String picUrl=devPicList.get(i); |
| | | try { |
| | | byteArrayOut = new ByteArrayOutputStream(); |
| | | String path=devRoot+File.separator+picUrl; |
| | | BufferedImage bufferImg = ImageIO.read(new FileInputStream(new File(path))); |
| | | ImageIO.write(bufferImg, "png", byteArrayOut); |
| | | //anchor主要用于设置图片的属性 |
| | | HSSFClientAnchor anchor = new HSSFClientAnchor(50, 20, 1000, 230,(short) (i+1), rowNum, (short) (i+1), rowNum); |
| | | 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失败"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | | cell=row.createCell(0); |
| | | cell.setCellValue("配件照片"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | cell.setCellValue(bomAcceptance.getDevWeightAll()); |
| | | cell.setCellStyle(cellStyle); |
| | | if(sparePicList!=null&&sparePicList.size()>0){ |
| | | ByteArrayOutputStream byteArrayOut = null; |
| | | for(int i=0;i<sparePicList.size();i++){ |
| | | String picUrl=sparePicList.get(i); |
| | | try { |
| | | byteArrayOut = new ByteArrayOutputStream(); |
| | | String path=rootFile+File.separator+bomAcceptance.getSparePicpart()+File.separator+picUrl; |
| | | BufferedImage bufferImg = ImageIO.read(new FileInputStream(new File(path))); |
| | | ImageIO.write(bufferImg, "png", byteArrayOut); |
| | | //anchor主要用于设置图片的属性 |
| | | HSSFClientAnchor anchor = new HSSFClientAnchor(50, 20, 1000, 230,(short) (i+1), rowNum, (short) (i+1), rowNum); |
| | | 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失败"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | rowNum++; |
| | | row=sheet.createRow(rowNum); |
| | |
| | | cell.setCellValue("端口协议文本"); |
| | | cell.setCellStyle(cellStyle); |
| | | cell=row.createCell(1); |
| | | if(bomAcceptance.getBomAgreement()!=null||!bomAcceptance.getBomAgreement().equals("")){ |
| | | String agreement=bomAcceptance.getBomAgreement(); |
| | | cell.setCellValue(agreement); |
| | | String agreementName = agreement.substring(agreement.lastIndexOf(".")+1); |
| | | cell.setCellValue(agreementName); |
| | | cell.setCellStyle(cellStyle); |
| | | } |
| | | |
| | | //将文件存到指定位置 |
| | | OutputStream os = null; |
| | | try { |