From a35734f1233a670d20c70a7f64e7ef16ba725e2f Mon Sep 17 00:00:00 2001 From: lxw <810412026@qq.com> Date: 星期三, 17 五月 2023 16:02:31 +0800 Subject: [PATCH] 文件解析告警数据导出 --- src/main/java/com/whyc/service/ExcelExportService.java | 202 +++++++------------------------------------------- 1 files changed, 30 insertions(+), 172 deletions(-) diff --git a/src/main/java/com/whyc/service/ExcelExportService.java b/src/main/java/com/whyc/service/ExcelExportService.java index 32411ca..014cc8d 100644 --- a/src/main/java/com/whyc/service/ExcelExportService.java +++ b/src/main/java/com/whyc/service/ExcelExportService.java @@ -1,6 +1,10 @@ package com.whyc.service; +import com.whyc.alarm.Fbs5100Alarm; +import com.whyc.alarm.Fbs5100AlarmData; +import com.whyc.alarm.Fbs5100AlarmParam; import com.whyc.charge.*; +import com.whyc.dto.AlarmFactoryDto; import com.whyc.dto.ServletUtils; import org.apache.poi.ss.usermodel.ClientAnchor; import org.apache.poi.xssf.usermodel.*; @@ -168,7 +172,7 @@ String[] rowNameChr = {"娴嬭瘯鏃堕棿","鏀剧數姣嶇嚎鐢靛帇(V)","鍏呯數姣嶇嚎鐢靛帇(V)","鍗囧帇DCDC杈撳嚭鐢靛帇","48V姣嶇嚎鐢靛帇"}; return rowNameChr; }else if (bcp.equals("alm")){ - String[] rowNameAlm = {"娴嬭瘯鏃堕棿","鏀剧數姣嶇嚎鐢靛帇(V)","鍏呯數姣嶇嚎鐢靛帇(V)","鍗囧帇DCDC杈撳嚭鐢靛帇","48V姣嶇嚎鐢靛帇"}; + String[] rowNameAlm = {"娴嬭瘯鏃堕棿","鍛婅鍚嶇О","鍛婅绫诲瀷","鍛婅鍊�"}; return rowNameAlm; }else{ String[] rowName1 = {"娴嬭瘯鏃堕棿","鎬荤數鍘�(V)","鎬荤數娴�(A)","鐜娓╁害","鐜婀垮害","娴嬭瘯瀹归噺(AH)"}; @@ -187,11 +191,6 @@ "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","娴嬭瘯瀹归噺鎶樼嚎鍥�","娓╁害鎶樼嚎鍥�" }; return picNameChr; - }else if(fileType.equals("alm")){ - String[] picNameAlm = new String[]{ - "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","娴嬭瘯瀹归噺鎶樼嚎鍥�","娓╁害鎶樼嚎鍥�" - }; - return picNameAlm; }else{ return null; } @@ -321,198 +320,57 @@ e.printStackTrace(); } } - //bres涓唴闃绘暟鎹�/娓╁害鏁版嵁/鍗曚綋鐢靛帇鏁版嵁鏀惧湪涓嶅悓鐨剆heet涓� - /*public void createBresSheet(XSSFWorkbook wb,int battNum,List<RESData> list,int type){ - String sheetName=""; - String testName=""; - switch (type){ - case 1:sheetName= "鍐呴樆鏁版嵁";testName="娴嬭瘯鏁版嵁(鍐呴樆)";break; - case 2:sheetName= "娓╁害鏁版嵁";testName="娴嬭瘯鏁版嵁(娓╁害)";break; - case 3:sheetName= "鐢靛帇鏁版嵁";testName="娴嬭瘯鏁版嵁(鐢靛帇)";break; - } - XSSFSheet sheet1 = wb.createSheet(sheetName); - //鎶ご - int rowNum = 0; - sheet1.createRow(rowNum).createCell(0).setCellValue(testName); - rowNum++; - //灞炴�ф爮 - XSSFRow row = sheet1.createRow(rowNum); - row.createCell(0).setCellValue("娴嬭瘯鏃堕棿"); - - for(int i=0;i<battNum;i++){ - row.createCell(1+i).setCellValue("#"+Integer.valueOf(i+1)); - } - rowNum++; - float[] datas=new float[]{}; - //鏁版嵁鏍� - for (int i = 0; i < list.size(); i++) { - sheet1.createRow(rowNum); //鍒涘缓琛� - RESData resData= list.get(i); - switch (type){ - case 1:datas= resData.getMonomerRes();break; - case 2:datas= resData.getMonomerTemp();break; - case 3:datas= resData.getMonomerVol();break; - } - 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[k]); - } - rowNum++; - } - rowNum++; - } - - - - //瀵煎嚭鍛婅鏁版嵁alm public void exportAlm(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(); - } + Fbs5100AlarmData data=alarmDataService.readFileData(filePath); + Fbs5100AlarmParam alarmParam = data.alarmParam; + List<Fbs5100Alarm> list=data.alarms; //褰撳墠鏃ユ湡 - 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; - } + String excelName ="alm-"+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); + 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("鐢垫睜鍙傛暟:"); + 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); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("鏍囩О瀹归噺:"+alarmParam.Batt_CAP); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("缁勭鐢靛帇涓婇檺鍊�:"+alarmParam.GroupVol_H); + sheet.getRow(rowNumSheet).createCell(2).setCellValue("缁勭鐢靛帇涓嬮檺鍊�:"+alarmParam.GroupVol_L); 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); - + sheet.getRow(rowNumSheet).createCell(0).setCellValue("浜ゆ祦鐢靛帇涓婇檺鍊�:"+alarmParam.AC_VOL_H); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("浜ゆ祦鐢靛帇涓嬮檺鍊�:"+alarmParam.AC_VOL_L); 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++; + sheet.createRow(rowNumSheet).createCell(0).setCellValue(testName); + rowNumSheet++; - XSSFRow row = sheet1.createRow(rowNum); + XSSFRow row = sheet.createRow(rowNumSheet); //灞炴�ф爮 - String[] rowName =new String[]{"娴嬭瘯鏃堕棿","鍦ㄧ嚎鐢靛帇","缁勭鐢靛帇","鐢垫睜鐢垫祦","鐢垫睜瀹归噺","鐢垫睜娓╁害"}; + String[] rowName =getRowName("alm"); 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++; + rowNumSheet++; //鏁版嵁鏍� 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++; + sheet.createRow(rowNumSheet); //鍒涘缓琛� + Fbs5100Alarm alarm= list.get(i); + sheet.getRow(rowNumSheet).createCell(0).setCellValue(formartDate(alarm.StartTime.time,"yyyy-MM-dd HH:mm:ss")); + sheet.getRow(rowNumSheet).createCell(1).setCellValue(AlarmFactoryDto.getAlmName(alarm.AlarmItem)); + sheet.getRow(rowNumSheet).createCell(2).setCellValue(AlarmFactoryDto.getAlmType(alarm.AlarmType)); + sheet.getRow(rowNumSheet).createCell(3).setCellValue(alarm.AlarmValue); + rowNumSheet++; } - rowNum++; - + rowNumSheet++; try { // 杞爜闃叉涔辩爜 resp.addHeader("Content-Disposition", "attachment;filename=" @@ -526,5 +384,5 @@ } catch (IOException e) { e.printStackTrace(); } - }*/ + } } -- Gitblit v1.9.1