From 19771be44c25801e29d11046d3c5fd77c525b0c6 Mon Sep 17 00:00:00 2001 From: lxw <810412026@qq.com> Date: 星期一, 13 二月 2023 15:47:59 +0800 Subject: [PATCH] 充放电数据导出 --- src/main/java/com/whyc/service/ExcelExportService.java | 200 ++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 171 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/whyc/service/ExcelExportService.java b/src/main/java/com/whyc/service/ExcelExportService.java index f958289..08601c4 100644 --- a/src/main/java/com/whyc/service/ExcelExportService.java +++ b/src/main/java/com/whyc/service/ExcelExportService.java @@ -4,6 +4,7 @@ import com.whyc.fbo.FboDataHeadStart; import com.whyc.fbo.FboDataHeadStop; import com.whyc.fbo.FboDataInf; +import com.whyc.mcp.*; import com.whyc.res.RESData; import com.whyc.res.RESDataInfo; import com.whyc.util.ServletUtils; @@ -30,6 +31,9 @@ @Autowired private RESDataInfoService resService; + @Autowired + private TestDataInfoService testDataInfoService; + //瀵煎嚭fbx public void exportFbx(HttpServletRequest req, HttpServletResponse resp){ @@ -44,13 +48,6 @@ String filePath = req.getParameter("filePath"); FboDataInf fboDataInf=fboService.readFboFile(filePath); -// if (fboDataInf==null){ -// fboDataInf = new FboDataInf(); -// if (filePath==null || "".equals(filePath)){ -// filePath = fileUrl; -// } -// fboDataInf.readFboFile(filePath); -// } //浠庢枃浠朵腑鑾峰彇鏁版嵁 List<FboData> list = fboDataInf.fboData; //鍥剧墖base64鍚庣殑鏁版嵁 @@ -68,10 +65,6 @@ String[] url = cap_echart.split(","); bytes.add(new BASE64Decoder().decodeBuffer(url[1])); } - //if (ServletUtils.isNotNull(actualCap_echart)) { - // String[] url = actualCap_echart.split(","); - // bytes.add(new BASE64Decoder().decodeBuffer(url[1])); - //} if (ServletUtils.isNotNull(vol_echart)) { String[] url = vol_echart.split(","); bytes.add(new BASE64Decoder().decodeBuffer(url[1])); @@ -90,19 +83,11 @@ //褰撳墠鏃ユ湡 String nowFormat = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); String excelName = "FBX-"+nowFormat; - //HSSFWorkbook wb = new HSSFWorkbook(); - //HSSFSheet sheet = wb.createSheet("鏁版嵁鎬昏〃"); + XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.createSheet("鏁版嵁鎬昏〃"); - //鍥剧墖鍏冪礌 - //HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); - XSSFDrawing patriarch = sheet.createDrawingPatriarch(); - ////瀛椾綋鏍煎紡-鍔犵矖 - //HSSFCellStyle cellStyle = wb.createCellStyle(); - //HSSFFont font = wb.createFont(); - //font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); - //cellStyle.setFont(font); + XSSFDrawing patriarch = sheet.createDrawingPatriarch(); int rowNumSheet = 0; FboDataHeadStart start = fboDataInf.fboDataStart; FboDataHeadStop stop = fboDataInf.fboDataStop; @@ -148,16 +133,10 @@ } XSSFSheet sheet1 = wb.createSheet("鏁版嵁"); - //鏂板缓琛� - //鎶ご int rowNum = 0; sheet1.createRow(rowNum).createCell(0).setCellValue("娴嬭瘯鏁版嵁"); rowNum++; - - - - //灞炴�ф爮 String[] rowName = getRowName(start.DataType); XSSFRow row = sheet1.createRow(rowNum); @@ -274,7 +253,7 @@ anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE); patriarch.createPicture(anchor,wb.addPicture(bytes.get(picNum),XSSFWorkbook.PICTURE_TYPE_PNG)).resize(1); picNum ++; - rowNumSheet+=27; + rowNumSheet+=30; } } //鏁版嵁 @@ -334,7 +313,7 @@ } sheet1.getRow(rowNum).createCell(0).setCellValue(formartDate(resData.getData_Time(),"yyyy-MM-dd HH:mm:ss")); for (int k = 0;k<battNum;k++){ - sheet1.getRow(rowNum).createCell(k+1).setCellValue(datas[i]); + sheet1.getRow(rowNum).createCell(k+1).setCellValue(datas[k]); } rowNum++; } @@ -351,4 +330,167 @@ return new SimpleDateFormat(str).format(date); } + + + //瀵煎嚭mch锛宮cp + public void exportMcph(HttpServletRequest req, HttpServletResponse resp){ + String volEchart = req.getParameter("vol_echart"); //鍗曚綋鐢靛帇鎶樼嚎鍥� + String currEchart = req.getParameter("curr_echart"); //鐢垫睜鐢垫祦鎶樼嚎鍥� + String groupVolEchart = req.getParameter("groupVol_echart"); //缁勭鐢靛帇鎶樼嚎鍥� + String capEchart = req.getParameter("cap_echart"); //娴嬭瘯瀹归噺鎶樼嚎鍥� + String filePath = req.getParameter("filePath"); + //鏁版嵁 + TestDataInfo testDataInfoMcp=testDataInfoService.readFileData(filePath); + MonitorDataInfo info = testDataInfoMcp.monitorDataInfo;//缁勭鏁版嵁 + + //鍥剧墖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(capEchart)) { + String[] url = capEchart.split(","); + bytes.add(new BASE64Decoder().decodeBuffer(url[1])); + } + }catch (Exception e){ + e.printStackTrace(); + } + //褰撳墠鏃ユ湡 + String nowFormat = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); + String excelName =""; + int fileType=testDataInfoMcp.getFile_type(); + if(fileType==0xFA){ + excelName="MCP-"+nowFormat; + }else{ + excelName="MCH-"+nowFormat; + } + XSSFWorkbook wb = new XSSFWorkbook(); + XSSFSheet sheet = wb.createSheet("鏁版嵁鎬昏〃"); + //鍥剧墖鍏冪礌 + XSSFDrawing patriarch = sheet.createDrawingPatriarch(); + BattParam battParam=info.battparam;//鐢垫睜鍙傛暟 + SYSMonitorParam sysParam=info.monitorparam;//缁勭鍙傛暟 + SYSMonitorState sysState=info.monitorstate;//缁勭鐘舵�� + int rowNumSheet = 0; + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("鐢垫睜鍙傛暟:"); + rowNumSheet++; + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("鏍囩О瀹归噺(1AH):"+battParam.STD_CAP); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("鏍囩О鍐呴樆(0.001m惟):"+battParam.STD_RES); + sheet.getRow(rowNumSheet).createCell(2).setCellValue("鍗曚綋鏍囩О鐢靛帇(0.1V):"+battParam.monomerVol); + rowNumSheet++; + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("缁勬暟:"+battParam.battGroupCount); + + int battNum=battParam.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("鏀剧數鐢垫祦:"+sysParam.disCurr); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("鏀剧數瀹归噺:"+sysParam.disCap); + sheet.getRow(rowNumSheet).createCell(2).setCellValue("鏀剧數鏃堕暱:"+sysParam.disTime); + rowNumSheet++; + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("缁勭涓嬮檺:"+sysParam.groupVol_LOW); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("鍗曚綋涓嬮檺:"+sysParam.monomerVol_LOW); + sheet.getRow(rowNumSheet).createCell(2).setCellValue("涓嬮檺涓暟:"+sysParam.monomerLowCount); + rowNumSheet++; + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("鍏呯數鐢垫祦:"+sysParam.chrCurr); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("鍏呯數瀹归噺:"+sysParam.chrCap); + sheet.getRow(rowNumSheet).createCell(2).setCellValue("鍏呯數鏃堕暱:"+sysParam.chrTime); + rowNumSheet++; + + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("缁勭鐘舵��:"); + rowNumSheet++; + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("鍚姩鏀剧數鐨勬棩鏈熸椂闂�:"+formartDate(sysState.startDT.time,"yyyy-MM-dd HH:mm:ss")); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("缁堟鏀剧數鐨勬棩鏈熸椂闂�:"+formartDate(sysState.stopDT.time,"yyyy-MM-dd HH:mm:ss")); + sheet.getRow(rowNumSheet).createCell(2).setCellValue("宸叉祴璇曟椂闂�(HMS):"+sysState.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<FBSData> list=testDataInfoMcp.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); //鍒涘缓琛� + FBSData fbsData= list.get(i); + sheet1.getRow(rowNum).createCell(0).setCellValue(fbsData.testTime.testTime); + sheet1.getRow(rowNum).createCell(1).setCellValue(fbsData.vcData.onlinevol[0]); + sheet1.getRow(rowNum).createCell(2).setCellValue(fbsData.vcData.groupvol[0]); + sheet1.getRow(rowNum).createCell(3).setCellValue(fbsData.vcData.battcurr[0]); + sheet1.getRow(rowNum).createCell(4).setCellValue(fbsData.vcData.battcap[0]); + sheet1.getRow(rowNum).createCell(5).setCellValue(fbsData.vcData.batttemp[0]); + float[] datas=fbsData.mvol.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