From 16ce10faf0d324ed62428bda6948435fe735f4bf Mon Sep 17 00:00:00 2001 From: lxw <810412026@qq.com> Date: 星期三, 17 五月 2023 15:17:17 +0800 Subject: [PATCH] 文件解析放电数据导出 --- src/main/java/com/whyc/service/ExcelExportService.java | 182 +++++++++++++++++++++------------------------ 1 files changed, 85 insertions(+), 97 deletions(-) diff --git a/src/main/java/com/whyc/service/ExcelExportService.java b/src/main/java/com/whyc/service/ExcelExportService.java index c112210..c405045 100644 --- a/src/main/java/com/whyc/service/ExcelExportService.java +++ b/src/main/java/com/whyc/service/ExcelExportService.java @@ -1,7 +1,6 @@ package com.whyc.service; -import com.whyc.charge.Fbs5100DisChargeData; -import com.whyc.charge.Fbs5100FbsData; +import com.whyc.charge.*; import com.whyc.dto.ServletUtils; import org.apache.poi.ss.usermodel.ClientAnchor; import org.apache.poi.xssf.usermodel.*; @@ -21,7 +20,7 @@ @Service public class ExcelExportService { - /* @Autowired + @Autowired private Fbs5100DisChargeDataService disChargeDataService; @Autowired @@ -31,21 +30,15 @@ private Fbs5100AlarmDataService alarmDataService; //瀵煎嚭鏀剧數鏁版嵁bcp - public void exportBcp(HttpServletRequest req, HttpServletResponse resp){ + public void exportBcp(HttpServletRequest req, HttpServletResponse resp) { - String curr_echart = req.getParameter("curr_echart"); //鐢垫睜鐢垫祦鎶樼嚎鍥� - String groupVol_echart = req.getParameter("groupVol_echart"); //缁勭鐢靛帇鎶樼嚎鍥� - String cap_echart = req.getParameter("cap_echart"); //娴嬭瘯瀹归噺鎶樼嚎鍥� - //String actualCap_echart = req.getParameter("actualCap_echart"); //瀹為檯瀹归噺鎶樼嚎鍥� - String vol_echart = req.getParameter("vol_echart"); //鍗曚綋鐢靛帇鎶樼嚎鍥� - String tempEnvi_echart = req.getParameter("tempEnvi_echart");//鐜娓╁害鎶樼嚎鍥� - String humiEnvi_echart = req.getParameter("humiEnvi_echart");//鐜婀垮害鎶樼嚎鍥� - + String curr_echart = req.getParameter("curr_echart"); //鐢垫睜鐢垫祦鎶樼嚎鍥� + String groupVol_echart = req.getParameter("groupVol_echart");//缁勭鐢靛帇鎶樼嚎鍥� + String cap_echart = req.getParameter("cap_echart"); //娴嬭瘯瀹归噺鎶樼嚎鍥� + String temp_echart = req.getParameter("temp_echart");//娓╁害鎶樼嚎鍥� String filePath = req.getParameter("filePath"); - Fbs5100DisChargeData data=disChargeDataService.readFboFile(filePath); - //浠庢枃浠朵腑鑾峰彇鏁版嵁 - List<Fbs5100FbsData> list = data.fbsDatas; + Fbs5100DisChargeData data = disChargeDataService.readFboFile(filePath); //鍥剧墖base64鍚庣殑鏁版嵁 List<byte[]> bytes = new ArrayList<>(); try { @@ -61,70 +54,59 @@ String[] url = cap_echart.split(","); bytes.add(new BASE64Decoder().decodeBuffer(url[1])); } - if (ServletUtils.isNotNull(vol_echart)) { - String[] url = vol_echart.split(","); + if (ServletUtils.isNotNull(temp_echart)) { + String[] url = temp_echart.split(","); bytes.add(new BASE64Decoder().decodeBuffer(url[1])); } - if (ServletUtils.isNotNull(tempEnvi_echart)) { - String[] url = tempEnvi_echart.split(","); - bytes.add(new BASE64Decoder().decodeBuffer(url[1])); - } - if (ServletUtils.isNotNull(humiEnvi_echart)) { - String[] url = humiEnvi_echart.split(","); - bytes.add(new BASE64Decoder().decodeBuffer(url[1])); - } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } //褰撳墠鏃ユ湡 String nowFormat = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); - String excelName = "FBX-"+nowFormat; + String excelName = "bcp-" + nowFormat; XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.createSheet("鏁版嵁鎬昏〃"); XSSFDrawing patriarch = sheet.createDrawingPatriarch(); int rowNumSheet = 0; - FboDataHeadStart start = fboDataInf.fboDataStart; - FboDataHeadStop stop = fboDataInf.fboDataStop; - sheet.createRow(rowNumSheet); - sheet.getRow(rowNumSheet).createCell(0).setCellValue("鐢垫睜缁勫悕绉帮細"+start.battNameStr); - sheet.getRow(rowNumSheet).createCell(1).setCellValue("鐢垫睜鍝佺墝锛�"+start.battBrandStr); - rowNumSheet++; - sheet.createRow(rowNumSheet); + //浠庢枃浠朵腑鑾峰彇鏁版嵁 + List<Fbs5100FbsData> list = data.fbsDatas; + Fbs5100BattParam battParam = data.battParam; + Fbs5100TestParam testParam = data.testParam; + Fbs5100CapState capState = data.capState; - sheet.getRow(rowNumSheet).createCell(0).setCellValue("瀹夎鏃ユ湡锛�"+start.batt_date_str); - sheet.getRow(rowNumSheet).createCell(1).setCellValue("鍗曚綋鏁伴噺锛�"+start.batt_mon_num); - sheet.getRow(rowNumSheet).createCell(2).setCellValue("鏍囩О瀹归噺锛�"+start.batt_std_cap+"AH"); + sheet.createRow(rowNumSheet); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("鐢垫睜缁勬暟锛�" + battParam.BattGroupCount); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("姣忕粍鍗曚綋鏁帮細" + battParam.EachGroupBattCount); + sheet.getRow(rowNumSheet).createCell(2).setCellValue("鏍囩О鍗曚綋鐢靛帇锛�" + battParam.MonomerVol + "V"); + rowNumSheet++; sheet.createRow(rowNumSheet); - sheet.getRow(rowNumSheet).createCell(0).setCellValue("娴嬭瘯寮�濮嬫椂闂达細"+formartDate(start.testStartTime,"yyyy-MM-dd HH:mm:ss")); - sheet.getRow(rowNumSheet).createCell(1).setCellValue("娴嬭瘯鏃堕暱锛�"+stop.TestTimeLong.hms()); - sheet.getRow(rowNumSheet).createCell(2).setCellValue("鍗曚綋鐢靛帇锛�"+start.batt_mon_vol+"V"); + sheet.getRow(rowNumSheet).createCell(0).setCellValue("娴厖鐢垫祦闃堝�硷細" + battParam.FloatChargeVol + "A"); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("鍦ㄧ嚎鐢靛帇浣庨槇鍊硷細" + battParam.OnlineVolLow + "A"); + sheet.getRow(rowNumSheet).createCell(2).setCellValue("鍧囧厖鐢靛帇锛�" + battParam.JunChargeVol + "A"); + rowNumSheet++; sheet.createRow(rowNumSheet); - sheet.getRow(rowNumSheet).createCell(0).setCellValue("姝f瀬缁濈紭鐢甸樆锛�"+list.get(list.size()-1).PosInsRes+"k惟"); - sheet.getRow(rowNumSheet).createCell(1).setCellValue("璐熸瀬缁濈紭鐢甸樆锛�"+list.get(list.size()-1).NegInsRes+"k惟"); - sheet.getRow(rowNumSheet).createCell(2).setCellValue("鏍囩О鍐呴樆锛�"+start.batt_std_res+"m惟"); - if(start.DataType==0xFD){ - rowNumSheet++; - sheet.createRow(rowNumSheet); - sheet.getRow(rowNumSheet).createCell(0).setCellValue("棰勪及瀹為檯瀹归噺锛�"+list.get(list.size()-1).actualCap+"AH"); - } - rowNumSheet+=4; + sheet.getRow(rowNumSheet).createCell(0).setCellValue("娴嬭瘯寮�濮嬫椂闂达細" + formartDate(capState.StartDT.time,"yyyy-MM-dd HH:mm:ss")); + sheet.getRow(rowNumSheet).createCell(1).setCellValue("娴嬭瘯鏃堕暱锛�" + capState.Test_Time.hour+":"+capState.Test_Time.minute+":"+capState.Test_Time.second); + + + rowNumSheet += 4; //鎻掑叆鍥剧墖 int picNum = 0; - String[] picName = getPicName(start.DataType); - 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]); + String[] picName = getPicName("bcp"); + 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); + 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+=27; + patriarch.createPicture(anchor, wb.addPicture(bytes.get(picNum), XSSFWorkbook.PICTURE_TYPE_PNG)).resize(1); + picNum++; + rowNumSheet += 27; } } @@ -134,33 +116,31 @@ sheet1.createRow(rowNum).createCell(0).setCellValue("娴嬭瘯鏁版嵁"); rowNum++; //灞炴�ф爮 - String[] rowName = getRowName(start.DataType); + String[] rowName = getRowName("bcp"); XSSFRow row = sheet1.createRow(rowNum); - for (int i=0;i<rowName.length;i++){ + for (int i = 0; i < rowName.length; i++) { row.createCell(i).setCellValue(rowName[i]); } - for(int i=0;i<list.get(0).SingleVol.length;i++){ - row.createCell(rowName.length+i).setCellValue("#"+Integer.valueOf(i+1)); + for (int i = 0; i < battParam.BattGroupCount; i++) { + row.createCell(rowName.length + i*2).setCellValue("#" + Integer.valueOf(i + 1)+"鍦ㄧ嚎鐢靛帇"); + row.createCell(rowName.length + i*2+1).setCellValue("#" + Integer.valueOf(i + 1)+"缁勭鐢靛帇"); } rowNum++; //鏁版嵁鏍� for (int i = 0; i < list.size(); i++) { sheet1.createRow(rowNum); //鍒涘缓琛� - FboData fbo=list.get(i); - sheet1.getRow(rowNum).createCell(0).setCellValue(fbo.m_TestTime.hms()); - sheet1.getRow(rowNum).createCell(1).setCellValue(fbo.SumVoltage); - sheet1.getRow(rowNum).createCell(2).setCellValue(fbo.SumCurrent); - sheet1.getRow(rowNum).createCell(3).setCellValue(fbo.Temp_Envi); - sheet1.getRow(rowNum).createCell(4).setCellValue(fbo.Humi_Envi); - if (start.DataType!=0xFB){ - sheet1.getRow(rowNum).createCell(5).setCellValue(fbo.testCap); - } - for (int k = 0;k<list.get(0).SingleVol.length;k++){ - sheet1.getRow(rowNum).createCell(rowName.length+k).setCellValue(fbo.SingleVol[k]); + Fbs5100FbsData fbsData = list.get(i); + sheet1.getRow(rowNum).createCell(0).setCellValue(fbsData.testTime.hour+":"+fbsData.testTime.minute+":"+fbsData.testTime.second); + sheet1.getRow(rowNum).createCell(1).setCellValue(String.valueOf(fbsData.muxianvol_discharge)); + sheet1.getRow(rowNum).createCell(2).setCellValue(String.valueOf(fbsData.muxianvol_charge)); + sheet1.getRow(rowNum).createCell(3).setCellValue(String.valueOf(fbsData.boostDCDC_OutVol)); + sheet1.getRow(rowNum).createCell(4).setCellValue(String.valueOf(fbsData.muxianvol)); + for (int j = 0; j < battParam.BattGroupCount; j++) { + sheet1.getRow(rowNum).createCell(rowName.length + j*2).setCellValue(String.valueOf(fbsData.onlinevol[j])); + sheet1.getRow(rowNum).createCell(rowName.length + j*2+1).setCellValue(String.valueOf(fbsData.groupvol[j])); } rowNum++; } - rowNum++; try { @@ -178,34 +158,50 @@ } } - - public String[] getRowName(int dateType){ - if (dateType==0xFB){ - String[] rowName = {"娴嬭瘯鏃堕棿","鎬荤數鍘�(V)","鎬荤數娴�(A)","鐜娓╁害","鐜婀垮害"}; - return rowName; + //灏嗘棩鏈熸牸寮忚浆鎹㈡垚鎸囧畾鐨勫瓧绗︿覆鏍煎紡 + public static String formartDate(Date date, String str){ + return new SimpleDateFormat(str).format(date); + } + public String[] getRowName(String bcp){ + if (bcp.equals("bcp")){ + String[] rowNameBcp = {"娴嬭瘯鏃堕棿","鏀剧數姣嶇嚎鐢靛帇(V)","鍏呯數姣嶇嚎鐢靛帇(V)","鍗囧帇DCDC杈撳嚭鐢靛帇","48V姣嶇嚎鐢靛帇"}; + return rowNameBcp; + }else if (bcp.equals("chr")){ + String[] rowNameChr = {"娴嬭瘯鏃堕棿","鏀剧數姣嶇嚎鐢靛帇(V)","鍏呯數姣嶇嚎鐢靛帇(V)","鍗囧帇DCDC杈撳嚭鐢靛帇","48V姣嶇嚎鐢靛帇"}; + return rowNameChr; + }else if (bcp.equals("alm")){ + String[] rowNameAlm = {"娴嬭瘯鏃堕棿","鏀剧數姣嶇嚎鐢靛帇(V)","鍏呯數姣嶇嚎鐢靛帇(V)","鍗囧帇DCDC杈撳嚭鐢靛帇","48V姣嶇嚎鐢靛帇"}; + return rowNameAlm; }else{ String[] rowName1 = {"娴嬭瘯鏃堕棿","鎬荤數鍘�(V)","鎬荤數娴�(A)","鐜娓╁害","鐜婀垮害","娴嬭瘯瀹归噺(AH)"}; return rowName1; } } - public String[] getPicName(int dateType){ - if (dateType==0xFB){ - String[] picName1 = new String[]{ - "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","鍗曚綋鐢靛帇鎶樼嚎鍥�","鐜娓╁害鎶樼嚎鍥�","鐜婀垮害鎶樼嚎鍥�" + public String[] getPicName(String fileType){ + if (fileType.equals("bcp")){ + String[] picNameBcp = new String[]{ + "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","娴嬭瘯瀹归噺鎶樼嚎鍥�","娓╁害鎶樼嚎鍥�" }; - return picName1; - }else{ - String[] picName = new String[]{ + return picNameBcp; + }else if(fileType.equals("chr")){ + String[] picNameChr = new String[]{ "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","娴嬭瘯瀹归噺鎶樼嚎鍥�","鍗曚綋鐢靛帇鎶樼嚎鍥�","鐜娓╁害鎶樼嚎鍥�","鐜婀垮害鎶樼嚎鍥�" }; - return picName; + return picNameChr; + }else if(fileType.equals("alm")){ + String[] picNameChr = new String[]{ + "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","娴嬭瘯瀹归噺鎶樼嚎鍥�","鍗曚綋鐢靛帇鎶樼嚎鍥�","鐜娓╁害鎶樼嚎鍥�","鐜婀垮害鎶樼嚎鍥�" + }; + return picNameChr; + }else{ + return null; } } //瀵煎嚭鍏呯數鏁版嵁chr - public void exportChr(HttpServletRequest req, HttpServletResponse resp){ + /*public void exportChr(HttpServletRequest req, HttpServletResponse resp){ String volEchart = req.getParameter("vol_echart"); //鍗曚綋鐢靛帇鎶樼嚎鍥� String resEchart = req.getParameter("res_echart"); //鍗曚綋鍐呴樆鎶樼嚎鍥� String tmpEchart = req.getParameter("tmp_echart"); //鍗曚綋娓╁害鎶樼嚎鍥� @@ -316,15 +312,7 @@ rowNum++; } - *//** - * 灏嗘棩鏈熸牸寮忚浆鎹㈡垚鎸囧畾鐨勫瓧绗︿覆鏍煎紡 - * @param date 鏃ユ湡 - * @param str 瀛楃涓茬殑鏍煎紡 - * @return - *//* - public static String formartDate(Date date, String str){ - return new SimpleDateFormat(str).format(date); - } + -- Gitblit v1.9.1