From 7fcee987e20eb710a70eed363964e7412421f707 Mon Sep 17 00:00:00 2001
From: lxw <810412026@qq.com>
Date: 星期五, 10 二月 2023 11:01:48 +0800
Subject: [PATCH] 导出修改

---
 src/main/java/com/whyc/controller/TestController.java |  227 ++++----------------------------------------------------
 1 files changed, 18 insertions(+), 209 deletions(-)

diff --git a/src/main/java/com/whyc/controller/TestController.java b/src/main/java/com/whyc/controller/TestController.java
index b6f9d01..2c072ff 100644
--- a/src/main/java/com/whyc/controller/TestController.java
+++ b/src/main/java/com/whyc/controller/TestController.java
@@ -5,6 +5,7 @@
 import com.whyc.fbo.FboDataHeadStop;
 import com.whyc.fbo.FboDataInf;
 import com.whyc.pojo.Response;
+import com.whyc.service.ExcelExportService;
 import com.whyc.service.FboDataInfService;
 import com.whyc.util.*;
 import io.swagger.annotations.Api;
@@ -31,7 +32,10 @@
 @RequestMapping("test")
 public class TestController {
     @Autowired
-    private FboDataInfService service;
+    private FboDataInfService fboService;
+
+    @Autowired
+    private ExcelExportService exportService;
 
     @GetMapping("/hello")
     public Response hello(){
@@ -44,7 +48,7 @@
         String suffix=filePath.substring(filePath.lastIndexOf(".")+1).toLowerCase(Locale.ROOT);
         Response response=new Response();
         switch (suffix){
-            case "fbx":FboDataInf fboDataInf = service.readFboFile(filePath);
+            case "fbx":FboDataInf fboDataInf = fboService.readFboFile(filePath);
                        response.set(1,fboDataInf,filePath);
                        break;
             case "bres":response.set(1,filePath);
@@ -63,215 +67,20 @@
 
     @PostMapping("/export")
     @ApiOperation(value = "鏂囦欢瀵煎嚭")
-    public void export(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 filePath = req.getParameter("filePath");
-        FboDataInf  fboDataInf=service.readFboFile(filePath);
-//        if (fboDataInf==null){
-//            fboDataInf = new FboDataInf();
-//            if (filePath==null || "".equals(filePath)){
-//                filePath = fileUrl;
-//            }
-//            fboDataInf.readFboFile(filePath);
-//        }
-        //浠庢枃浠朵腑鑾峰彇鏁版嵁
-        List<FboData> list = fboDataInf.fboData;
-        //鍥剧墖base64鍚庣殑鏁版嵁
-        List<byte[]> bytes = new ArrayList<>();
-        try {
-            if (ServletUtils.isNotNull(curr_echart)) {
-                String[] url = curr_echart.split(",");
-                bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
-            }
-            if (ServletUtils.isNotNull(groupVol_echart)) {
-                String[] url = groupVol_echart.split(",");
-                bytes.add(new BASE64Decoder().decodeBuffer(url[1]));
-            }
-            if (ServletUtils.isNotNull(cap_echart)) {
-                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]));
-            }
-            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){
-            e.printStackTrace();
-        }
-        //褰撳墠鏃ユ湡
-        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);
-
-        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);
-
-        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");
-        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");
-        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;
-        //鎻掑叆鍥剧墖
-        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]);
-                //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+=27;
-            }
-        }
-
-        XSSFSheet sheet1 = wb.createSheet("鏁版嵁");
-        //鏂板缓琛�
-
-        //鎶ご
-        int rowNum = 0;
-        sheet1.createRow(rowNum).createCell(0).setCellValue("娴嬭瘯鏁版嵁");
-        rowNum++;
-
-
-
-
-        //灞炴�ф爮
-        String[] rowName = getRowName(start.DataType);
-        XSSFRow row = sheet1.createRow(rowNum);
-        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));
-        }
-        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]);
-            }
-            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();
-        }
-
-
-    }
-
-    public String[] getRowName(int dateType){
-        if (dateType==0xFB){
-            String[] rowName = {"娴嬭瘯鏃堕棿","鎬荤數鍘�(V)","鎬荤數娴�(A)","鐜娓╁害","鐜婀垮害"};
-            return rowName;
-        }else{
-            String[] rowName1 = {"娴嬭瘯鏃堕棿","鎬荤數鍘�(V)","鎬荤數娴�(A)","鐜娓╁害","鐜婀垮害","娴嬭瘯瀹归噺(AH)"};
-            return rowName1;
+    public void export(HttpServletRequest req, HttpServletResponse resp, @RequestParam String suffix){
+        switch (suffix){
+            case "fbx":exportService.exportFbx(req,resp);
+                break;
+            case "bres":
+                break;
+            case "alm":
+                break;
+            case "mcp":
+                break;
+            case "mch":
+                break;
         }
     }
-
-    public String[] getPicName(int dateType){
-        if (dateType==0xFB){
-            String[] picName1 = new String[]{
-                    "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","鍗曚綋鐢靛帇鎶樼嚎鍥�","鐜娓╁害鎶樼嚎鍥�","鐜婀垮害鎶樼嚎鍥�"
-            };
-            return picName1;
-        }else{
-            String[] picName = new String[]{
-                    "鐢垫睜鐢垫祦鎶樼嚎鍥�","缁勭鐢靛帇鎶樼嚎鍥�","娴嬭瘯瀹归噺鎶樼嚎鍥�","鍗曚綋鐢靛帇鎶樼嚎鍥�","鐜娓╁害鎶樼嚎鍥�","鐜婀垮害鎶樼嚎鍥�"
-            };
-            return picName;
-        }
-    }
-
-
-    /**
-     * 灏嗘棩鏈熸牸寮忚浆鎹㈡垚鎸囧畾鐨勫瓧绗︿覆鏍煎紡
-     * @param date	鏃ユ湡
-     * @param str	瀛楃涓茬殑鏍煎紡
-     * @return
-     */
-    public static String formartDate(Date date, String str){
-        return new SimpleDateFormat(str).format(date);
-    }
-
 
 }
 

--
Gitblit v1.9.1