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