From 6be568075a76108e55ba7feff55c472b1135a7c0 Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期三, 18 十二月 2024 14:46:44 +0800 Subject: [PATCH] bts充电数据导出 --- src/main/java/com/whyc/service/ExcelExportService.java | 142 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 142 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/whyc/service/ExcelExportService.java b/src/main/java/com/whyc/service/ExcelExportService.java index c843aea..e13d25f 100644 --- a/src/main/java/com/whyc/service/ExcelExportService.java +++ b/src/main/java/com/whyc/service/ExcelExportService.java @@ -650,4 +650,146 @@ e.printStackTrace(); } } + + //瀵煎嚭bts鐨勫厖鐢垫暟鎹甤hr + public void exportChr(HttpServletRequest req, HttpServletResponse resp) { + String volEchart = req.getParameter("vol_echart"); //鍗曚綋鐢靛帇鎶樼嚎鍥� + String currEchart = req.getParameter("curr_echart"); //鐢垫睜鐢垫祦鎶樼嚎鍥� + String groupVolEchart = req.getParameter("groupVol_echart"); //缁勭鐢靛帇鎶樼嚎鍥� + String online_echart = req.getParameter("online_echart"); //鍦ㄧ嚎鐢靛帇鎶樼嚎鍥� + String filePath = req.getParameter("filePath"); + //鍥剧墖base64鍚庣殑鏁版嵁 + List<byte[]> bytes = new ArrayList<>(); + try { + if (ServletUtils.isNotNull(volEchart)) { + String[] url = volEchart.split(","); + bytes.add(new BASE64Decoder().decodeBuffer(url[1])); + } + if (ServletUtils.isNotNull(currEchart)) { + String[] url = currEchart.split(","); + bytes.add(new BASE64Decoder().decodeBuffer(url[1])); + } + if (ServletUtils.isNotNull(groupVolEchart)) { + String[] url = groupVolEchart.split(","); + bytes.add(new BASE64Decoder().decodeBuffer(url[1])); + } + if (ServletUtils.isNotNull(online_echart)) { + String[] url = online_echart.split(","); + bytes.add(new BASE64Decoder().decodeBuffer(url[1])); + } + }catch (Exception e){ + e.printStackTrace(); + } + //褰撳墠鏃ユ湡 + String nowFormat = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); + String excelName="CHR-"+nowFormat; + //鏁版嵁 + BTS_ChargeData chargeData=chargeDataService.getChrData(filePath); + BTS_BattParam btsbattParam = chargeData.battParam;//鐢垫睜鍙傛暟 + BTS_ChargeParam btschargeParam=chargeData.chargeParam;//鏀剧數鍙傛暟 + BTS_ChargeState btschargeState=chargeData.charState;//鏀剧數鏃堕暱 + XSSFWorkbook wb = new XSSFWorkbook(); + XSSFSheet sheet = wb.createSheet("鏁版嵁鎬昏〃"); + //鍥剧墖鍏冪礌 + XSSFDrawing patriarch = sheet.createDrawingPatriarch(); + int rowNumSheet = 0; + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("鐢垫睜鍙傛暟:"); + rowNumSheet++; + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("鏍囩О瀹归噺(1AH):"+btsbattParam.STD_CAP); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("鏍囩О鍐呴樆(0.001m惟):"+btsbattParam.STD_RES); + sheet.getRow(rowNumSheet).createCell(2).setCellValue("鍗曚綋鏍囩О鐢靛帇(0.1V):"+btsbattParam.MonomerVol); + rowNumSheet++; + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("缁勬暟:"+btsbattParam.BattGroupCount); + + int battNum=btsbattParam.EachGroupBattCount;//鍗曚綋涓暟 + sheet.getRow(rowNumSheet).createCell(1).setCellValue("姣忕粍鍗曚綋涓暟:"+battNum); + rowNumSheet++; + + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("缁勭鍙傛暟:"); + rowNumSheet++; + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("鍏呯數鐢垫祦:"+btschargeParam.ChargeCurr); + rowNumSheet++; + + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("缁勭鐘舵��:"); + rowNumSheet++; + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("鍚姩鏀剧數鐨勬棩鏈熸椂闂�:"+formartDate(btschargeState.StartDT.getDateTime(),"yyyy-MM-dd HH:mm:ss")); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("缁堟鏀剧數鐨勬棩鏈熸椂闂�:"+formartDate(btschargeState.StopDT.getDateTime(), "yyyy-MM-dd HH:mm:ss")); + sheet.getRow(rowNumSheet).createCell(2).setCellValue("宸叉祴璇曟椂闂�(HMS):"+btschargeState.Test_Time.testTime); + + rowNumSheet+=4; + //鎻掑叆鍥剧墖 + int picNum = 0; + String[] picName =new String[]{"鍗曚綋鐢靛帇鎶樼嚎鍥�","鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","鍦ㄧ嚎鐢靛帇鎶樼嚎鍥�"}; + if (picName.length==bytes.size()){ + for(int i=0;i<picName.length;i++){ + sheet.createRow(rowNumSheet-1); + sheet.getRow(rowNumSheet-1).createCell(0).setCellValue(picName[i]); + //rowNum++; + XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 512, 255,(short) 0, rowNumSheet, (short) 10, rowNumSheet+27); + anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE); + patriarch.createPicture(anchor,wb.addPicture(bytes.get(picNum),XSSFWorkbook.PICTURE_TYPE_PNG)).resize(1); + picNum ++; + rowNumSheet+=30; + } + } + + //浠庢枃浠朵腑鑾峰彇鏁版嵁 + List<BTS_FbsData> list=chargeData.fbsDatas;//鏀剧數鏁版嵁 + String sheetName="鍏呯數鏁版嵁"; + String testName="娴嬭瘯鏁版嵁"; + XSSFSheet sheet1 = wb.createSheet(sheetName); + //鎶ご + int rowNum = 0; + sheet1.createRow(rowNum).createCell(0).setCellValue(testName); + rowNum++; + + XSSFRow row = sheet1.createRow(rowNum); + //灞炴�ф爮 + String[] rowName =new String[]{"娴嬭瘯鏃堕棿","鍦ㄧ嚎鐢靛帇","缁勭鐢靛帇","鐢垫睜鐢垫祦","鐢垫睜瀹归噺","鐢垫睜娓╁害"}; + for (int i=0;i<rowName.length;i++){ + row.createCell(i).setCellValue(rowName[i]); + } + for(int i=0;i<battNum;i++){ + row.createCell(6+i).setCellValue("#"+Integer.valueOf(i+1)); + } + rowNum++; + //鏁版嵁鏍� + for (int i = 0; i < list.size(); i++) { + sheet1.createRow(rowNum); //鍒涘缓琛� + BTS_FbsData fbsData= list.get(i); + sheet1.getRow(rowNum).createCell(0).setCellValue(fbsData.testTime.testTime); + sheet1.getRow(rowNum).createCell(1).setCellValue(fbsData.onlinevol[0]); + sheet1.getRow(rowNum).createCell(2).setCellValue(fbsData.groupvol[0]); + sheet1.getRow(rowNum).createCell(3).setCellValue(fbsData.battcurr[0]); + sheet1.getRow(rowNum).createCell(4).setCellValue(fbsData.battcap[0]); + sheet1.getRow(rowNum).createCell(5).setCellValue(fbsData.batttemp[0]); + double[] datas=fbsData.vol; + for (int k = 0;k<battNum;k++){ + sheet1.getRow(rowNum).createCell(k+6).setCellValue(datas[k]); + } + rowNum++; + } + rowNum++; + + try { + // 杞爜闃叉涔辩爜 + resp.addHeader("Content-Disposition", "attachment;filename=" + + new String(excelName.getBytes("UTF-8"), "ISO8859-1") + + ".xlsx"); + OutputStream out = resp.getOutputStream(); + wb.write(out); + out.close(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } } -- Gitblit v1.9.1