From a56c965e004eb45b2a66b5989615c06b7b164406 Mon Sep 17 00:00:00 2001
From: lxw <810412026@qq.com>
Date: 星期三, 17 五月 2023 15:34:38 +0800
Subject: [PATCH] 文件解析充电数据导出

---
 src/main/java/com/whyc/service/ExcelExportService.java |  110 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 80 insertions(+), 30 deletions(-)

diff --git a/src/main/java/com/whyc/service/ExcelExportService.java b/src/main/java/com/whyc/service/ExcelExportService.java
index c405045..32411ca 100644
--- a/src/main/java/com/whyc/service/ExcelExportService.java
+++ b/src/main/java/com/whyc/service/ExcelExportService.java
@@ -31,7 +31,6 @@
 
     //瀵煎嚭鏀剧數鏁版嵁bcp
     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");            //娴嬭瘯瀹归噺鎶樼嚎鍥�
@@ -91,7 +90,6 @@
         sheet.createRow(rowNumSheet);
         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;
         //鎻掑叆鍥剧墖
@@ -186,14 +184,14 @@
             return picNameBcp;
         }else if(fileType.equals("chr")){
             String[] picNameChr = new String[]{
-                    "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","娴嬭瘯瀹归噺鎶樼嚎鍥�","鍗曚綋鐢靛帇鎶樼嚎鍥�","鐜娓╁害鎶樼嚎鍥�","鐜婀垮害鎶樼嚎鍥�"
+                    "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","娴嬭瘯瀹归噺鎶樼嚎鍥�","娓╁害鎶樼嚎鍥�"
             };
             return picNameChr;
         }else if(fileType.equals("alm")){
-            String[] picNameChr = new String[]{
-                    "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","娴嬭瘯瀹归噺鎶樼嚎鍥�","鍗曚綋鐢靛帇鎶樼嚎鍥�","鐜娓╁害鎶樼嚎鍥�","鐜婀垮害鎶樼嚎鍥�"
+            String[] picNameAlm = new String[]{
+                    "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","娴嬭瘯瀹归噺鎶樼嚎鍥�","娓╁害鎶樼嚎鍥�"
             };
-            return picNameChr;
+            return picNameAlm;
         }else{
             return null;
         }
@@ -201,41 +199,69 @@
 
 
     //瀵煎嚭鍏呯數鏁版嵁chr
-    /*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");			//鍗曚綋娓╁害鎶樼嚎鍥�
-
+    public void exportChr(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 temp_echart = req.getParameter("temp_echart");//娓╁害鎶樼嚎鍥�
         String filePath = req.getParameter("filePath");
+        Fbs5100ChargeData data=chargeDataService.readFileData(filePath);
         //鍥剧墖base64鍚庣殑鏁版嵁
         List<byte[]> bytes = new ArrayList<>();
         try {
-            if (ServletUtils.isNotNull(volEchart)) {
-                String[] url = volEchart.split(",");
+            if (ServletUtils.isNotNull(curr_echart)) {
+                String[] url = curr_echart.split(",");
                 bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
             }
-            if (ServletUtils.isNotNull(resEchart)) {
-                String[] url = resEchart.split(",");
+            if (ServletUtils.isNotNull(groupVol_echart)) {
+                String[] url = groupVol_echart.split(",");
                 bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
             }
-            if (ServletUtils.isNotNull(tmpEchart)) {
-                String[] url = tmpEchart.split(",");
+            if (ServletUtils.isNotNull(cap_echart)) {
+                String[] url = cap_echart.split(",");
+                bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
+            }
+            if (ServletUtils.isNotNull(temp_echart)) {
+                String[] url = temp_echart.split(",");
                 bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
             }
         }catch (Exception e){
             e.printStackTrace();
         }
+        //鏁版嵁
+        Fbs5100BattParam battParam =data.battParam;
+        Fbs5100ChargeParam chargeParam =data.chargeParam;
+        Fbs5100ChargeState chargeState =data.chargeState;
+        //浠庢枃浠朵腑鑾峰彇鏁版嵁
+        List<Fbs5100FbsData> list = data.fbsDatas;
         //褰撳墠鏃ユ湡
         String nowFormat = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
-        String excelName = "BRES-"+nowFormat;
+        String excelName = "chr-"+nowFormat;
         XSSFWorkbook wb = new XSSFWorkbook();
         XSSFSheet sheet = wb.createSheet("鏁版嵁鎬昏〃");
+        int rowNumSheet = 0;
+        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("娴厖鐢垫祦闃堝�硷細" + 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("娴嬭瘯寮�濮嬫椂闂达細" + formartDate(chargeState.StartDT.time,"yyyy-MM-dd HH:mm:ss"));
+        sheet.getRow(rowNumSheet).createCell(1).setCellValue("娴嬭瘯鏃堕暱锛�" + chargeState.Test_Time.hour+":"+chargeState.Test_Time.minute+":"+chargeState.Test_Time.second);
+
+        rowNumSheet += 4;
         //鍥剧墖鍏冪礌
         XSSFDrawing patriarch = sheet.createDrawingPatriarch();
-        int rowNumSheet = 1;
         //鎻掑叆鍥剧墖
         int picNum = 0;
-        String[] picName =new String[]{"鍗曚綋鐢靛帇鎶樼嚎鍥�","鍗曚綋鍐呴樆鎶樼嚎鍥�","鍗曚綋娓╁害鎶樼嚎鍥�"};
+        String[] picName =getPicName("chr");
         if (picName.length==bytes.size()){
             for(int i=0;i<picName.length;i++){
                 sheet.createRow(rowNumSheet-1);
@@ -248,15 +274,39 @@
                 rowNumSheet+=30;
             }
         }
-        //鏁版嵁
-        RESDataInfo resDataInfo =resService.readFileData(filePath);
-        //浠庢枃浠朵腑鑾峰彇鏁版嵁
-        List<RESData> list = resDataInfo.resDatas;
-        int battNum=list.get(0).getBattSum();//鍗曚綋涓暟
-        //鍒涘缓涓嶅悓sheet
-        createBresSheet(wb,battNum,list,1);//鍒涘缓鍐呴樆鏁版嵁
-        createBresSheet(wb,battNum,list,2);//鍒涘缓娓╁害鏁版嵁
-        createBresSheet(wb,battNum,list,3);//鍒涘缓鐢靛帇鏁版嵁
+        XSSFSheet sheet1 = wb.createSheet("鏁版嵁");
+        //鎶ご
+        int rowNum = 0;
+        sheet1.createRow(rowNum).createCell(0).setCellValue("娴嬭瘯鏁版嵁");
+        rowNum++;
+        //灞炴�ф爮
+        String[] rowName = getRowName("chr");
+        XSSFRow row = sheet1.createRow(rowNum);
+        for (int i = 0; i < rowName.length; i++) {
+            row.createCell(i).setCellValue(rowName[i]);
+        }
+        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);  //鍒涘缓琛�
+            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 {
             // 杞爜闃叉涔辩爜
             resp.addHeader("Content-Disposition", "attachment;filename="
@@ -272,7 +322,7 @@
         }
     }
     //bres涓唴闃绘暟鎹�/娓╁害鏁版嵁/鍗曚綋鐢靛帇鏁版嵁鏀惧湪涓嶅悓鐨剆heet涓�
-    public void createBresSheet(XSSFWorkbook wb,int battNum,List<RESData> list,int type){
+    /*public void createBresSheet(XSSFWorkbook wb,int battNum,List<RESData> list,int type){
         String sheetName="";
         String testName="";
         switch (type){

--
Gitblit v1.9.1