From a3f31ff8adf23c1db33b7806f57dd5a23ebaa192 Mon Sep 17 00:00:00 2001
From: whyczh <hzjl@qq.com>
Date: 星期五, 18 三月 2022 14:08:15 +0800
Subject: [PATCH] 更新

---
 src/main/java/testElectronJ/TestController.java |  162 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 155 insertions(+), 7 deletions(-)

diff --git a/src/main/java/testElectronJ/TestController.java b/src/main/java/testElectronJ/TestController.java
index e1d9128..4378173 100644
--- a/src/main/java/testElectronJ/TestController.java
+++ b/src/main/java/testElectronJ/TestController.java
@@ -1,10 +1,21 @@
 package testElectronJ;
 
-import org.springframework.beans.factory.annotation.Autowired;
+import org.apache.poi.hssf.usermodel.*;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import sun.misc.BASE64Decoder;
+import testElectronJ.util.ServletUtils;
 
-import java.io.FileInputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 @RestController
 @RequestMapping("test")
@@ -25,12 +36,149 @@
         return new Response().set(1,fboDataInf,filePath);
     }
 
-    @PostMapping("/readFboFileStream")
-    public Response readFboFileStream(@RequestParam FileInputStream fis) {
+    @PostMapping("/export")
+    public void export(HttpServletRequest req, HttpServletResponse resp){
+
+        String lbottom_echart = req.getParameter("lbottom_echart");		//鐢垫睜鐢垫祦鎶樼嚎鍥�
+        String rbottom_echart = req.getParameter("rbottom_echart");		//鍗曚綋鐢靛帇鎶樼幇鍥�
+
+        String rl_echart = req.getParameter("ltop_echart");			//鍗曚綋瀹归噺鏌辩姸鍥�
+        String sjbg_echart = req.getParameter("rtop_echart");			//鏁版嵁琛ㄦ牸
+
+        String zddy_echart = req.getParameter("ltop_echart");			//缁勭鐢靛帇
+        String dtdy_echart = req.getParameter("rtop_echart");			//鍗曚綋鐢靛帇鎶樼嚎鍥�
+
+        //int battGroupId =Integer.valueOf(req.getParameter("battGroupId"));  //鐢垫睜缁勭紪鍙�
+        //int testRecordCount =Integer.valueOf(req.getParameter("testRecordCount"));  //娴嬭瘯缂栧彿
+
+        String filePath = req.getParameter("filePath");
         FboDataInf fboDataInf = new FboDataInf();
-        //String filePath1 = java.net.URLDecoder.decode(filePath,"utf-8");
-        fboDataInf.readFboFileStream(fis);
-        return new Response().set(1,fboDataInf);
+        fboDataInf.readFboFile(filePath);
+
+        List<FboData> list = fboDataInf.fboData;
+
+        List<byte[]> bytes = new ArrayList<>();
+
+        try {
+            if (ServletUtils.isNotNull(lbottom_echart)) {
+                String[] url = lbottom_echart.split(",");
+                bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
+            }if (ServletUtils.isNotNull(rbottom_echart)) {
+                String[] url = rbottom_echart.split(",");
+                bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
+            }if (ServletUtils.isNotNull(rl_echart)) {
+                String[] url = rl_echart.split(",");
+                bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
+            }if (ServletUtils.isNotNull(sjbg_echart)) {
+                String[] url = sjbg_echart.split(",");
+                bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
+            }if (ServletUtils.isNotNull(zddy_echart)) {
+                String[] url = zddy_echart.split(",");
+                bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
+            }if (ServletUtils.isNotNull(dtdy_echart)) {
+                String[] url = dtdy_echart.split(",");
+                bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        //褰撳墠鏃ユ湡
+        String nowFormat = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
+        String excelName = "FGCD-"+nowFormat;
+        HSSFWorkbook wb = new HSSFWorkbook();
+
+        HSSFSheet sheet = wb.createSheet("Sheet1");
+
+        //鍥剧墖鍏冪礌
+        HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
+
+        //瀛椾綋鏍煎紡-鍔犵矖
+        HSSFCellStyle cellStyle = wb.createCellStyle();
+        HSSFFont font = wb.createFont();
+        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
+        cellStyle.setFont(font);
+
+        //鏂板缓琛�
+        //鎶ご
+        int rowNum = 0;
+        HSSFRow rowTitle = sheet.createRow(rowNum);
+        HSSFCell cellTitle = rowTitle.createCell(0);
+        cellTitle.setCellValue("涓�浣撴満鍏呮斁鐢垫暟鎹�");
+        cellTitle.setCellStyle(cellStyle);
+        rowNum++;
+        //灞炴�ф爮
+        HSSFRow row = sheet.createRow(rowNum);
+
+        row.createCell(0).setCellValue("娴嬭瘯鏃堕暱"); //鍒涘缓鍗曞厓鏍�
+        row.createCell(1).setCellValue("鎬荤數鍘�");
+        row.createCell(2).setCellValue("娴嬭瘯瀹归噺");
+        row.createCell(3).setCellValue("鍓╀綑瀹归噺");
+        for(int i=0;i<5;i++){
+            row.createCell(4+i).setCellValue("#"+Integer.valueOf(i+1));
+        }
+        rowNum++;
+        //鏁版嵁鏍�
+        if(5!=0){
+            for (int i = 0; i < list.size(); i++) {
+                sheet.createRow(rowNum);  //鍒涘缓琛�
+                for(int j=0;j<5;j++){
+                    FboData fbo=list.get(i+j);
+                    sheet.getRow(rowNum).createCell(0).setCellValue(fbo.m_TestTime.toString());
+                    sheet.getRow(rowNum).createCell(1).setCellValue(fbo.SumVoltage);
+                    sheet.getRow(rowNum).createCell(2).setCellValue(fbo.testCap);
+                    sheet.getRow(rowNum).createCell(3).setCellValue(fbo.residualCap);
+                    //sheet.getRow(rowNum).createCell(4+j).setCellValue(fbo.getMonVol());
+                }
+                i=i+5-1;
+                rowNum++;
+            }
+        }
+        rowNum+=2;
+        //鎻掑叆鍥剧墖
+        int picNum = 0;
+        String[] picName = new String[]{
+                "鐢垫睜鐢垫祦鎶樼嚎鍥�","鍗曚綋鐢靛帇鏌辩姸鍥�","鍗曚綋瀹归噺鏌辩姸鍥�","鏁版嵁琛ㄦ牸","缁勭鐢靛帇","鍗曚綋鐢靛帇鎶樼嚎鍥�"
+        };
+        //for(int i=0;i<picName.length;i++){
+        //    sheet.createRow(rowNum-1);
+        //    sheet.getRow(rowNum-1).createCell(0).setCellValue(picName[i]);
+        //    //rowNum++;
+        //    HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 512, 255,(short) 0, rowNum, (short) 10, rowNum+27);
+        //    anchor.setAnchorType(3);
+        //    patriarch.createPicture(anchor,wb.addPicture(bytes.get(picNum),HSSFWorkbook.PICTURE_TYPE_PNG)).resize(1);
+        //    picNum ++;rowNum+=27;
+        //}
+
+        rowNum++;
+
+        try {
+            // 杞爜闃叉涔辩爜
+            resp.addHeader("Content-Disposition", "attachment;filename="
+                    + new String(excelName.getBytes("UTF-8"), "ISO8859-1")
+                    + ".xls");
+            OutputStream out = resp.getOutputStream();
+            wb.write(out);
+            out.close();
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+
+
+    @PostMapping("/readFboFileStream")
+    public Response readFboFileStream(@RequestParam("mFile") MultipartFile mFile, HttpServletRequest request) throws IOException {
+        if (!mFile.isEmpty()){
+            File file = new File(mFile.getOriginalFilename());
+            System.out.println(file.getPath());
+            FboDataInf fboDataInf = new FboDataInf();
+            fboDataInf.readFboFile(file);
+            return new Response().set(1,fboDataInf);
+        }else {
+            return new Response().set(0,"鏂囦欢涓虹┖");
+        }
     }
 
 }

--
Gitblit v1.9.1