shiqian 3 rokov pred
rodič
commit
ca13f2d2c2

+ 1798 - 1798
boman-report/src/main/java/org/jeecg/modules/jmreport/common/ExportExcelService.java

@@ -1,1798 +1,1798 @@
-package org.jeecg.modules.jmreport.common;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.openxml4j.opc.PackagePartName;
-import org.apache.poi.openxml4j.opc.PackageRelationship;
-import org.apache.poi.openxml4j.opc.TargetMode;
-import org.apache.poi.ss.usermodel.*;
-import org.apache.poi.ss.util.CellRangeAddress;
-import org.apache.poi.ss.util.CellReference;
-import org.apache.poi.ss.util.RegionUtil;
-import org.apache.poi.xssf.streaming.SXSSFCell;
-import org.apache.poi.xssf.streaming.SXSSFRow;
-import org.apache.poi.xssf.streaming.SXSSFSheet;
-import org.apache.poi.xssf.streaming.SXSSFWorkbook;
-import org.apache.poi.xssf.usermodel.*;
-import org.jeecg.modules.jmreport.common.constant.CommonConstant;
-import org.jeecg.modules.jmreport.common.constant.JmConst;
-import org.jeecg.modules.jmreport.common.expetion.JimuReportException;
-import org.jeecg.modules.jmreport.common.util.CommonUtils;
-import org.jeecg.modules.jmreport.common.util.ExcelUtil;
-import org.jeecg.modules.jmreport.common.util.GoogleBarCodeUtils;
-import org.jeecg.modules.jmreport.common.util.oConvertUtils;
-import org.jeecg.modules.jmreport.common.vo.JmDictModel;
-import org.jeecg.modules.jmreport.common.vo.Result;
-import org.jeecg.modules.jmreport.config.JmReportBaseConfig;
-import org.jeecg.modules.jmreport.config.oss.JmReportUploadConfig;
-import org.jeecg.modules.jmreport.desreport.dao.JimuReportDao;
-import org.jeecg.modules.jmreport.desreport.dao.JimuReportDbDao;
-import org.jeecg.modules.jmreport.desreport.dao.JimuReportDbFieldDao;
-import org.jeecg.modules.jmreport.desreport.dao.JimuReportDbParamDao;
-import org.jeecg.modules.jmreport.desreport.entity.JimuReport;
-import org.jeecg.modules.jmreport.desreport.entity.JmReportDb;
-import org.jeecg.modules.jmreport.desreport.entity.JmReportDbField;
-import org.jeecg.modules.jmreport.desreport.entity.JmReportDbParam;
-import org.jeecg.modules.jmreport.desreport.model.JmExpression;
-import org.jeecg.modules.jmreport.desreport.model.RenderInfo;
-import org.jeecg.modules.jmreport.desreport.model.ReportDbInfo;
-import org.jeecg.modules.jmreport.desreport.render.utils.ExcelColumn;
-import org.jeecg.modules.jmreport.desreport.render.utils.ReportUtil;
-import org.jeecg.modules.jmreport.desreport.service.IJimuReportDictService;
-import org.jeecg.modules.jmreport.desreport.service.IJmReportExportExcel;
-import org.jeecg.modules.jmreport.desreport.service.a.e;
-import org.jeecg.modules.jmreport.desreport.util.b;
-import org.jeecg.modules.jmreport.desreport.util.d;
-import org.jeecg.modules.jmreport.dyndb.JmreportDataSourceCachePool;
-import org.jeecg.modules.jmreport.dyndb.JmreportDynamicDbUtil;
-import org.jeecg.modules.jmreport.dyndb.util.JmreportSqlUtils;
-import org.jeecg.modules.jmreport.dyndb.vo.JmreportDynamicDataSourceVo;
-import org.jeecgframework.minidao.pojo.MiniDaoPage;
-import org.jeecgframework.minidao.util.MiniDaoUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.web.client.ResourceAccessException;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.ProtocolException;
-import java.net.URL;
-import java.nio.file.Files;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-
-import static com.boman.common.core.utils.obj.ObjectUtils.*;
-
-/**
- * @author shiqian
- * @date 2021年08月19日 15:17
- **/
-@Service
-public class ExportExcelService {
-    @Autowired
-    private e jmReportDesignService;
-    @Autowired
-    private JmReportBaseConfig jmBaseConfig;
-    @Autowired
-    private JmReportUploadConfig jimuReportUploadConfig;
-    @Autowired
-    private JimuReportDao reportDao;
-    @Autowired
-    private JimuReportDbParamDao dbParamDao;
-    @Autowired
-    private JimuReportDbDao reportDbDao;
-    @Autowired
-    private JmreportDynamicDbUtil jmreportDynamicDbUtil;
-    @Autowired
-    private JimuReportDbFieldDao dbFieldDao;
-    @Autowired
-    private IJimuReportDictService dictService;
-
-    private static final Logger a = LoggerFactory.getLogger(ExportExcelService.class);
-
-    public Map<String, Object> exportEmptyExcel(String excelConfigId, JSONObject queryParam, List echartBase) {
-        XSSFWorkbook var4 = new XSSFWorkbook();
-        SXSSFWorkbook var5 = new SXSSFWorkbook(var4, -1, Boolean.FALSE, Boolean.TRUE);
-        String var6 = "";
-        HashMap var7 = new HashMap();
-        XSSFCellStyle var8 = this.a1(var5);
-        var7.put("generalStyle", var8);
-        boolean var9 = true;
-        new HashMap();
-        int var11 = 1;
-        Integer var12 = this.jmBaseConfig.getPageSizeNumber();
-        if (null == queryParam || queryParam.size() == 0) {
-            queryParam = new JSONObject();
-        }
-
-        while(var9) {
-            if (oConvertUtils.isEmpty(var12)) {
-                var12 = 10000;
-            }
-
-            if (oConvertUtils.isNotEmpty(var12) && "0".equals(String.valueOf(var12))) {
-                var12 = 10000;
-            }
-
-            queryParam.put("pageNo", var11);
-            queryParam.put("pageSize", var12);
-            Result var13 = this.jmReportDesignService.show(excelConfigId, queryParam.toJSONString());
-            JimuReport var14 = (JimuReport)var13.getResult();
-            JSONObject var15 = JSON.parseObject(var14.getJsonStr());
-            JSONObject var16 = var15.getJSONObject("rows");
-            if (var16.containsKey("-1")) {
-                var16.remove("-1");
-            }
-
-            if (var16.containsKey("len")) {
-                var16.remove("len");
-            }
-
-            if (var16.size() < var12) {
-                var9 = false;
-            }
-
-            if (var16.size() > var12) {
-                var9 = false;
-            }
-
-            var6 = var14.getName();
-            JSONObject var17 = JSON.parseObject(var14.getJsonStr());
-            this.a2((JSONObject)var17, (List)echartBase, (SXSSFWorkbook)var5, (XSSFWorkbook)var4, (Integer)var11, (Map)var7);
-            ++var11;
-        }
-
-        HashMap var18 = new HashMap();
-        var18.put("name", var6 + ".xlsx");
-        var18.put("workbook", var5);
-        return var18;
-    }
-
-    private XSSFCellStyle a1(SXSSFWorkbook var1) {
-        XSSFCellStyle var2 = (XSSFCellStyle)var1.createCellStyle();
-        XSSFFont var3 = (XSSFFont)var1.createFont();
-        var3.setFontName("宋体");
-        var2.setFont(var3);
-        var2.setAlignment(HorizontalAlignment.CENTER);
-        var2.setVerticalAlignment(VerticalAlignment.CENTER);
-        return var2;
-    }
-
-    private void a3(Sheet var1, JSONObject var2) {
-        var1.setDefaultColumnWidth(12);
-        Iterator var3 = var2.keySet().iterator();
-
-        while(var3.hasNext()) {
-            String var4 = (String)var3.next();
-            JSONObject var5 = (JSONObject)var2.get(var4);
-            var1.setColumnWidth(Integer.parseInt(var4), 35 * (int)((double)var5.getInteger("width") + 0.8D));
-        }
-
-    }
-
-    private SXSSFWorkbook a2(JSONObject var1, List var2, SXSSFWorkbook var3, XSSFWorkbook var4, Integer var5, Map<String, CellStyle> var6) {
-        JSONArray var7 = null;
-        JSONArray var8 = null;
-        JSONArray var9 = null;
-        JSONArray var10 = null;
-        JSONObject var11 = null;
-        if (var1.containsKey("imgList")) {
-            var7 = var1.getJSONArray("imgList");
-        }
-
-        if (var1.containsKey("chartList")) {
-            var8 = var1.getJSONArray("chartList");
-        }
-
-        if (var1.containsKey("barcodeList")) {
-            var9 = var1.getJSONArray("barcodeList");
-        }
-
-        if (var1.containsKey("qrcodeList")) {
-            var10 = var1.getJSONArray("qrcodeList");
-        }
-
-        if (var1.containsKey("background")) {
-            Object var12 = var1.get("background");
-            if (var12 instanceof JSONObject) {
-                var11 = var1.getJSONObject("background");
-            }
-        }
-
-        JSONObject var13;
-        String var14;
-        if (var8 != null && var8.size() > 0 && var2.size() > 0) {
-            for(int var31 = 0; var31 < var8.size(); ++var31) {
-                var13 = var8.getJSONObject(var31);
-                var14 = (String)var13.get("layer_id");
-                List var15 = var2;
-                String var16 = "";
-
-                for(int var17 = 0; var17 < var15.size(); ++var17) {
-                    Map var18 = (Map)var15.get(var17);
-                    if (((String)var18.get("id")).equals(var14)) {
-                        var16 = (String)var18.get("base64");
-                    }
-                }
-
-                String[] var35 = var16.split("base64,");
-                var13.put("url", var35[1]);
-            }
-        }
-
-        JSONObject var32 = var1.getJSONObject("rows");
-        var13 = var1.getJSONObject("cols");
-        if (var13.containsKey("len")) {
-            var13.remove("len");
-        }
-
-        if (var32.containsKey("-1")) {
-            var32.remove("-1");
-        }
-
-        var14 = var1.getString("name");
-        Object var33 = var1.get("styles");
-        HashMap var34 = new HashMap();
-        int var37;
-        if (var33 instanceof JSONArray) {
-            JSONArray var36 = var1.getJSONArray("styles");
-
-            for(var37 = 0; var37 < var36.size(); ++var37) {
-                var34.put(String.valueOf(var37), var36.get(var37));
-            }
-        }
-
-        if (var33 instanceof JSONObject) {
-            JSONObject var38 = (JSONObject)var33;
-
-            for(var37 = 1; var37 <= var38.size(); ++var37) {
-                var34.put(String.valueOf(var37), var38.get(var37));
-            }
-        }
-
-        Object var39 = null;
-        String var40 = this.jmBaseConfig.getExportExcelPattern();
-        if (oConvertUtils.isEmpty(var40) || "fast".equals(var40)) {
-            var3.createSheet("sheet" + var5);
-            var39 = var3.getSheetAt(var5 - 1);
-        }
-
-        if ("primary".equals(var40)) {
-            var4.createSheet("sheet" + var5);
-            var39 = var4.getSheetAt(var5 - 1);
-        }
-
-        this.a3((Sheet)var39, var13);
-        ((Sheet)var39).setDefaultRowHeightInPoints(19.5F);
-        HashMap var19 = new HashMap();
-        HashMap var20 = new HashMap();
-        HashMap var21 = new HashMap();
-        ArrayList var22 = new ArrayList();
-        HashMap var23 = new HashMap();
-        Map var24 = this.a4(var32);
-        HashMap var25 = new HashMap();
-        long var26 = System.currentTimeMillis();
-        HashMap var28 = new HashMap();
-        this.a5((Map)var34, (Workbook)var3, (Map)var6);
-        if (var39 instanceof SXSSFSheet) {
-            this.a5((SXSSFWorkbook)var3, var32, var34, (SXSSFSheet)((SXSSFSheet)var39), var19, var20, var21, var22, var24, var25, var28, var5, var6);
-        }
-
-        if (var39 instanceof XSSFSheet) {
-            this.a7((XSSFWorkbook)var4, var32, var34, (XSSFSheet)((XSSFSheet)var39), var19, var20, var21, var22, var24, var25, var28, var5, var6);
-        }
-
-        long var29 = System.currentTimeMillis();
-        a.info("循环数据运行时间:" + (var29 - var26) + "ms");
-        if (var32.size() < this.jmBaseConfig.excelStyleRow && var5 == 1 || var39 instanceof XSSFSheet) {
-            this.a10((JSONObject)var32, (Sheet)var39, (SXSSFWorkbook)var3, (Map)var34, (Map)var28, (Map)var23);
-            this.a11((Sheet)var39, (SXSSFWorkbook)var3, (Map)var23);
-        }
-
-        this.a12((Workbook)var3, (Sheet)var39, (Map)var19, (Map)var28, (Map)var20, (Map)var21);
-        if (var7 != null) {
-            this.a16((Sheet)var39, (XSSFWorkbook)var4, (JSONArray)var7, (Map)var28, var25);
-        }
-
-        if (var8 != null) {
-            this.a17((Sheet)var39, (SXSSFWorkbook)var3, (JSONArray)var8, (Map)var25, (JSONObject)var13, (JSONObject)var32);
-        }
-
-        if (var9 != null) {
-            this.a18((Sheet)var39, (Workbook)var3, (JSONArray)var9, (List)var2, var25);
-        }
-
-        if (var10 != null) {
-            this.a18((Sheet)var39, (Workbook)var3, (JSONArray)var10, (List)var2, var25);
-        }
-
-        if (var11 != null) {
-            this.a19((Sheet)var39, (XSSFWorkbook)var4, (JSONObject)var11);
-        }
-
-        if (null != var22 && var22.size() > 0) {
-            this.a23((Sheet)var39, (SXSSFWorkbook)var3, (List)var22, (Map)var28, var25);
-        }
-
-        return var3;
-    }
-
-
-    public Map<String, Integer> a24(Sheet var1, Map<String, String> var2, Integer var3, Integer var4) {
-        HashMap var5 = new HashMap();
-        String var6 = (String)var2.get(var3 + "," + var4);
-        Row var7 = var1.getRow(var3);
-        Cell var8 = var7.getCell(var4);
-        var8.setCellValue("");
-        int var9 = (int)var8.getSheet().getColumnWidthInPixels(var8.getColumnIndex());
-        int var10 = (int)var7.getHeightInPoints();
-        int var11 = 0;
-        int var12 = 0;
-        int var13 = var3;
-        int var14 = var4;
-        if (oConvertUtils.isNotEmpty(var6)) {
-            String[] var15 = var6.split(",");
-            int var16 = Integer.parseInt(var15[0]);
-            int var17 = Integer.parseInt(var15[1]);
-
-            int var18;
-            for(var18 = var7.getRowNum() + 1; var18 < var16 + 1; ++var18) {
-                Row var19 = var1.getRow(var18);
-                if (var19 != null) {
-                    var12 += (int)var1.getRow(var18).getHeightInPoints();
-                }
-            }
-
-            for(var18 = var8.getColumnIndex() + 1; var18 < var17 + 1; ++var18) {
-                var11 += (int)var1.getColumnWidthInPixels(var18);
-            }
-        }
-
-        var9 += var11;
-        var10 += var12;
-        var5.put("width", var9);
-        var5.put("height", var10);
-        return var5;
-    }
-
-    private void a23(Sheet var1, SXSSFWorkbook var2, List<Map<String, Object>> var3, Map<String, String> var4, Map<String, Object> var5) {
-        Drawing var6 = var1.createDrawingPatriarch();
-
-        for(int var7 = 0; var7 < var3.size(); ++var7) {
-            Map var8 = (Map)var3.get(var7);
-            boolean var9 = false;
-            boolean var10 = false;
-            int var23 = Integer.valueOf(var8.get("cell").toString());
-            int var22 = Integer.valueOf(var8.get("row").toString());
-            String var11 = var8.get("text").toString();
-            String var12 = var8.get("display").toString();
-            Map var13 = this.a24(var1, var4, var22, var23);
-            Integer var14 = (Integer)var13.get("width");
-            Integer var15 = (Integer)var13.get("height");
-            Object var16 = null;
-            String var17 = (String)var8.get("layer_id");
-            Object var18 = var5.get(var17);
-            if (null != var18) {
-                String[] var19 = String.valueOf(var18).split(",");
-                var22 = Integer.parseInt(var19[0]);
-                var23 = Integer.parseInt(var19[1]);
-            }
-
-            byte[] var24;
-            if ("img".equals(var12)) {
-                var24 = this.a20(var11);
-            } else {
-                var24 = GoogleBarCodeUtils.createCodeToFile(var11, var12, var14, var15);
-            }
-
-            String var25 = (String)var4.get(var22 + "," + var23);
-            if (oConvertUtils.isNotEmpty(var25)) {
-                String[] var20 = var25.split(",");
-                XSSFClientAnchor var21 = new XSSFClientAnchor(0, 0, var14, var15, var23, var22, Integer.parseInt(var20[1]) + 1, Integer.parseInt(var20[0]) + 1);
-                var6.createPicture(var21, var2.addPicture(var24, 5));
-            } else {
-                XSSFClientAnchor var26 = new XSSFClientAnchor(0, 0, var14, var15, var23, var22, var23 + 1, var22 + 1);
-                var6.createPicture(var26, var2.addPicture(var24, 5));
-            }
-        }
-
-    }
-
-    private Map<String, Object> a4(JSONObject var1) {
-        HashMap var2 = new HashMap();
-        Iterator var3 = var1.keySet().iterator();
-
-        label60:
-        while(true) {
-            String var4;
-            int var5;
-            do {
-                do {
-                    do {
-                        do {
-                            if (!var3.hasNext()) {
-                                return var2;
-                            }
-
-                            var4 = (String)var3.next();
-                        } while("cells".equals(var4));
-                    } while("isDrag".equals(var4));
-                } while("len".equals(var4));
-
-                var5 = Integer.parseInt(var4);
-            } while(var5 < 0);
-
-            JSONObject var6 = var1.getJSONObject(var4).getJSONObject("cells");
-            var6 = this.b1(var6);
-            Iterator var7 = var6.keySet().iterator();
-
-            while(true) {
-                String var8;
-                String var10;
-                Matcher var13;
-                do {
-                    JSONObject var9;
-                    do {
-                        do {
-                            if (!var7.hasNext()) {
-                                continue label60;
-                            }
-
-                            var8 = (String)var7.next();
-                        } while("-1".equals(var8));
-
-                        var9 = var6.getJSONObject(var8);
-                    } while(!var9.containsKey("text"));
-
-                    var10 = var9.getString("text");
-                    String var11 = "^[=][A-Z]{1,2}[^\\u4e00-\\u9fa5]+$";
-                    Pattern var12 = Pattern.compile(var11);
-                    var13 = var12.matcher(var10);
-                } while(!ExcelUtil.isHave(CommonConstant.JIMUREPORT_FUNCTION, var10) && !var13.matches());
-
-                var2.put(var4 + "," + var8, var10);
-            }
-        }
-    }
-    private void a5(Map<String, JSONObject> var1, Workbook var2, Map<String, CellStyle> var3) {
-        Iterator var4 = var1.entrySet().iterator();
-
-        while(true) {
-            Map.Entry var5;
-            JSONObject var7;
-            XSSFCellStyle var8;
-            do {
-                do {
-                    do {
-                        CellStyle var6;
-                        do {
-                            if (!var4.hasNext()) {
-                                return;
-                            }
-
-                            var5 = (Map.Entry)var4.next();
-                            var6 = (CellStyle)var3.get(var5.getKey());
-                        } while(null != var6);
-
-                        var7 = (JSONObject)var5.getValue();
-                    } while(var7 == null);
-                } while("null".equals(var7));
-
-                var8 = (XSSFCellStyle)var2.createCellStyle();
-            } while(null == var7);
-
-            String var9;
-            if (!var7.containsKey("align")) {
-                var8.setAlignment(HorizontalAlignment.LEFT);
-            } else {
-                var9 = var7.getString("align").toUpperCase();
-                var8.setAlignment(HorizontalAlignment.valueOf(var9));
-            }
-
-            if (null != var7 && !var7.containsKey("valign")) {
-                var8.setVerticalAlignment(VerticalAlignment.valueOf("center".toUpperCase()));
-            } else {
-                var9 = var7.getString("valign").toUpperCase();
-                if ("MIDDLE".equals(var9)) {
-                    var9 = "center".toUpperCase();
-                }
-
-                var8.setVerticalAlignment(VerticalAlignment.valueOf(var9));
-            }
-
-            if (null == var7 || var7.containsKey("bgcolor")) {
-                var9 = var7.getString("bgcolor");
-                XSSFColor var10 = new XSSFColor();
-                if (var9.indexOf("#") != -1 && var9.length() > 6) {
-                    String var11 = var9.replaceAll("#", "");
-                    if (var11.length() == 6) {
-                        byte[] var12 = new byte[]{(byte)Integer.parseInt(var11.substring(0, 2), 16), (byte)Integer.parseInt(var11.substring(2, 4), 16), (byte)Integer.parseInt(var11.substring(4, 6), 16)};
-                        var10.setRGB(var12);
-                    }
-                }
-
-                var8.setFillForegroundColor(var10);
-                var8.setFillBackgroundColor(var10);
-                var8.setFillPattern(FillPatternType.BIG_SPOTS);
-            }
-
-            XSSFColor var14;
-            if (null != var7 && var7.containsKey("font") || var7.containsKey("underline") || var7.containsKey("strike") || var7.containsKey("color")) {
-                XSSFFont var18 = (XSSFFont)var2.createFont();
-                JSONObject var17 = (JSONObject)var7.get("font");
-                Object var22 = var7.get("underline");
-                Object var25 = var7.get("strike");
-                if (null != var17) {
-                    if (var17.containsKey("name")) {
-                        var18.setFontName(var17.getString("name"));
-                    }
-
-                    if (var17.containsKey("italic")) {
-                        var18.setItalic(true);
-                    }
-
-                    if (var17.containsKey("size")) {
-                        var18.setFontHeightInPoints(var17.getShort("size"));
-                    }
-
-                    if (var17.containsKey("bold")) {
-                        boolean var13 = var17.getBoolean("bold");
-                        var18.setBold(var13);
-                    }
-                }
-
-                if (null != var22) {
-                    var18.setUnderline((byte)1);
-                }
-
-                if (null != var25) {
-                    var18.setStrikeout(true);
-                }
-
-                if (null != var7 && var7.containsKey("color")) {
-                    String var27 = var7.getString("color");
-                    var14 = new XSSFColor();
-                    if (var27.length() > 6) {
-                        if (var27.contains("rgb")) {
-                            var27 = var27.replace("rgb", "").replace("(", "").replace(")", "");
-                            String[] var15 = var27.split(",");
-                            if (var15.length == 3) {
-                                byte[] var16 = new byte[]{(byte)Integer.parseInt(var15[0]), (byte)Integer.parseInt(var15[1]), (byte)Integer.parseInt(var15[2])};
-                                var14.setRGB(var16);
-                            }
-                        } else if (var27.contains("#")) {
-                            byte[] var29 = new byte[]{(byte)Integer.parseInt(var27.substring(1, 3), 16), (byte)Integer.parseInt(var27.substring(3, 5), 16), (byte)Integer.parseInt(var27.substring(5, 7), 16)};
-                            var14.setRGB(var29);
-                        }
-                    }
-
-                    var18.setColor(var14);
-                }
-
-                var8.setFont(var18);
-            }
-
-            if (var7.containsKey("border")) {
-                JSONObject var20 = var7.getJSONObject("border");
-                JSONArray var19 = var20.getJSONArray("right");
-                JSONArray var24 = var20.getJSONArray("top");
-                JSONArray var26 = var20.getJSONArray("left");
-                JSONArray var28 = var20.getJSONArray("bottom");
-                if (null != var24 && var24.size() > 1) {
-                    var8.setBorderTop(BorderStyle.THIN);
-                    var14 = this.b(var24.get(1).toString());
-                    var8.setTopBorderColor(var14);
-                }
-
-                if (null != var28 && var28.size() > 1) {
-                    var8.setBorderBottom(BorderStyle.THIN);
-                    var14 = this.b(var28.get(1).toString());
-                    var8.setBottomBorderColor(var14);
-                }
-
-                if (null != var26 && var26.size() > 1) {
-                    var8.setBorderLeft(BorderStyle.THIN);
-                    var14 = this.b(var26.get(1).toString());
-                    var8.setLeftBorderColor(var14);
-                }
-
-                if (null != var19 && var19.size() > 1) {
-                    var8.setBorderRight(BorderStyle.THIN);
-                    var14 = this.b(var19.get(1).toString());
-                    var8.setRightBorderColor(var14);
-                }
-            }
-
-            if (var7.containsKey("format")) {
-                DataFormat var23 = var2.createDataFormat();
-                String var21 = var7.getString("format");
-                if ("percent".equals(var21)) {
-                    var8.setDataFormat(var23.getFormat("0.00%"));
-                }
-
-                if ("rmb".equals(var21)) {
-                    var8.setDataFormat(var23.getFormat("¥#,##0"));
-                }
-
-                if ("usd".equals(var21)) {
-                    var8.setDataFormat(var23.getFormat("$#,##0"));
-                }
-
-                if ("eur".equals(var21)) {
-                    var8.setDataFormat(var23.getFormat("€#,##0"));
-                }
-            }
-
-            var8.setWrapText(true);
-            var3.put(var5.getKey().toString(), var8);
-        }
-    }
-
-    public XSSFColor b(String var1) {
-        XSSFColor var2 = new XSSFColor();
-        if (var1.contains("rgb")) {
-            var1 = var1.replace("rgb", "").replace("(", "").replace(")", "");
-            String[] var3 = var1.split(",");
-            if (var3.length == 3) {
-                byte[] var4 = new byte[]{(byte)Integer.parseInt(var3[0]), (byte)Integer.parseInt(var3[1]), (byte)Integer.parseInt(var3[2])};
-                var2.setRGB(var4);
-            }
-        } else if (var1.contains("#") && var1.length() > 6) {
-            byte[] var5 = new byte[]{(byte)Integer.parseInt(var1.substring(1, 3), 16), (byte)Integer.parseInt(var1.substring(3, 5), 16), (byte)Integer.parseInt(var1.substring(5, 7), 16)};
-            var2.setRGB(var5);
-        }
-
-        return var2;
-    }
-
-    private JSONObject b1(JSONObject var1) {
-        ArrayList var2 = new ArrayList();
-        Iterator var3 = var1.keySet().iterator();
-
-        while(var3.hasNext()) {
-            String var4 = (String)var3.next();
-            if (oConvertUtils.isNotEmpty(var4) && !"NaN".equals(var4) && !"len".equals(var4)) {
-                var2.add(Integer.parseInt(var4));
-            }
-        }
-
-        Collections.sort(var2);
-        JSONArray var9 = new JSONArray();
-        JSONObject var5 = new JSONObject(true);
-        Iterator var6 = var2.iterator();
-
-        while(var6.hasNext()) {
-            Integer var7 = (Integer)var6.next();
-            JSONObject var8 = var1.getJSONObject(String.valueOf(var7));
-            var9.add(var8);
-            var5.put(String.valueOf(var7), var8);
-        }
-
-        return var5;
-    }
-
-    private void a5(SXSSFWorkbook var1, JSONObject var2, Map var3, SXSSFSheet var4, Map<String, String> var5, Map<String, JSONObject> var6, Map<String, List<String>> var7, List<Map<String, Object>> var8, Map<String, Object> var9, Map<String, Object> var10, Map<String, String> var11, Integer var12, Map<String, CellStyle> var13) {
-        var2 = this.b1(var2);
-        Iterator var14 = var2.keySet().iterator();
-
-        while(true) {
-            String var15;
-            int var16;
-            do {
-                do {
-                    do {
-                        do {
-                            if (!var14.hasNext()) {
-                                return;
-                            }
-
-                            var15 = (String)var14.next();
-                        } while("cells".equals(var15));
-                    } while("isDrag".equals(var15));
-                } while("len".equals(var15));
-
-                var16 = Integer.parseInt(var15);
-            } while(var16 < 0);
-
-            SXSSFRow var17 = var4.createRow(Integer.parseInt(var15));
-            if (var2.getJSONObject(var15).containsKey("height")) {
-                Integer var18 = var2.getJSONObject(var15).getInteger("height");
-                var17.setHeightInPoints((float)var18 - 9.5F);
-            }
-
-            JSONObject var24 = var2.getJSONObject(var15).getJSONObject("cells");
-            var24 = this.b1(var24);
-            Iterator var19 = var24.keySet().iterator();
-
-            while(var19.hasNext()) {
-                String var20 = (String)var19.next();
-                if (!"-1".equals(var20)) {
-                    JSONObject var21 = var24.getJSONObject(var20);
-                    SXSSFCell var22 = var17.createCell(Integer.parseInt(var20));
-                    if (var21.containsKey("style") && var2.size() < this.jmBaseConfig.excelStyleRow && var12 == 1) {
-                        String var23 = var21.getString("style");
-                        var22.setCellStyle((CellStyle)var13.get(var23));
-                    }
-
-                    if (var2.size() >= this.jmBaseConfig.excelStyleRow) {
-                        var22.setCellStyle((CellStyle)var13.get("generalStyle"));
-                    }
-
-                    this.a6(var1, var21, var15, var20, var4, var22, var3, var11, var8, var5, var9, var13, var6, var7, var17, var10);
-                }
-            }
-        }
-    }
-
-    private void a6(Workbook var1, JSONObject var2, String var3, String var4, Sheet var5, Cell var6, Map var7, Map var8, List var9, Map var10, Map var11, Map<String, CellStyle> var12, Map var13, Map var14, Row var15, Map var16) {
-        String var17 = var2.getString("merge");
-        String var18;
-        if (var2.containsKey("virtual")) {
-            var18 = var2.getString("virtual");
-            if (var16.get(var18) == null) {
-                var16.put(var18, var3 + "," + var4);
-            }
-        }
-
-        if (var17 != null && !"".equals(var17)) {
-            String[] var32 = a9(var17, "[", "]").split(",");
-            int var19 = Integer.parseInt(var32[0]);
-            int var20 = Integer.parseInt(var32[1]);
-            int var21 = Integer.parseInt(var3);
-            int var22 = var19 + var21;
-            int var23 = Integer.parseInt(var4);
-            int var24 = var20 + var23;
-            CellRangeAddress var25 = new CellRangeAddress(var21, var22, var23, var24);
-
-            try {
-                var5.addMergedRegion(var25);
-            } catch (IllegalStateException var30) {
-                a.warn("单元格合并失败,原因重复单元格或者一个单元格不允许重复合并", var30.getMessage());
-            } catch (IllegalArgumentException var31) {
-                a.warn("单元格合并失败,原因重复单元格或者一个单元格不允许重复合并", var31.getMessage());
-            }
-
-            var8.put(var21 + "," + var23, var22 + "," + var24);
-        }
-
-        String var35;
-        String var37;
-        if (var2.containsKey("display")) {
-            var18 = var2.getString("display");
-            if ("barcode".equals(var18) || "qrcode".equals(var18) || "img".equals(var18)) {
-                HashMap var33 = new HashMap();
-                var35 = var2.getString("display");
-                var37 = var2.getString("text");
-                String var38 = var2.getString("style");
-                String var41 = var2.getString("rendered");
-                var33.put("style", (JSONObject)var7.get(var38));
-                var33.put("text", var37);
-                var33.put("display", var35);
-                var33.put("row", var6.getRowIndex());
-                var33.put("cell", var6.getColumnIndex());
-                var33.put("layer_id", var41);
-                var9.add(var33);
-            }
-        }
-
-        if (var2.containsKey("text")) {
-            var18 = var2.getString("text");
-            String var34 = "";
-
-            try {
-                var34 = this.a8(var2, var7, var18);
-            } catch (Exception var29) {
-                var29.printStackTrace();
-            }
-
-            if (var18.contains("|")) {
-                Object var36 = var2.get("lineStart");
-                if (null != var36) {
-                    var10.put(var3 + "," + var4, var36.toString());
-                    var37 = var2.getString("style");
-                    var13.put(var3 + "," + var4, (JSONObject)var7.get(var37));
-                    ArrayList var39 = new ArrayList();
-                    var39.add(var3);
-                    var39.add(var4);
-                    var14.put(var3, var39);
-                }
-            }
-
-            var35 = "";
-            var37 = var2.getString("style");
-            if (oConvertUtils.isNotEmpty(var37)) {
-                JSONObject var40 = (JSONObject)var7.get(var37);
-                if (var40.containsKey("format")) {
-                    var35 = var40.getString("format");
-                }
-            }
-
-            if (oConvertUtils.isNotEmpty(var35) && oConvertUtils.isNotEmpty(var18) && ExcelUtil.isHave(JmConst.NUMBER_FUNCTION, var35)) {
-                DataFormat var42 = var1.createDataFormat();
-                CellStyle var43 = (CellStyle)var12.get(var37);
-                String var44 = "0.00";
-                Object var45 = var2.get("decimalPlaces");
-                if (oConvertUtils.isNotEmpty(var45) && "number".equals(var35)) {
-                    Integer var26 = Integer.valueOf(var45.toString());
-                    if (var26 <= 0) {
-                        var44 = "0";
-                    } else {
-                        String var27 = "0.";
-
-                        for(int var28 = 0; var28 < var26; ++var28) {
-                            var27 = var27 + "0";
-                        }
-
-                        var44 = var27;
-                    }
-
-                    var43.setDataFormat(var42.getFormat(var44));
-                    var6.setCellStyle(var43);
-                }
-
-                var6.setCellValue(Double.parseDouble(var18));
-                return;
-            }
-
-            var6.setCellValue(oConvertUtils.isNotEmpty(var34) ? var34 : var18);
-        }
-    }
-    private void a7(XSSFWorkbook var1, JSONObject var2, Map var3, XSSFSheet var4, Map<String, String> var5, Map<String, JSONObject> var6, Map<String, List<String>> var7, List<Map<String, Object>> var8, Map<String, Object> var9, Map<String, Object> var10, Map<String, String> var11, Integer var12, Map<String, CellStyle> var13) {
-        var2 = this.b1(var2);
-        Iterator var14 = var2.keySet().iterator();
-        boolean var15 = true;
-
-        while(true) {
-            String var16;
-            int var17;
-            do {
-                do {
-                    do {
-                        do {
-                            if (!var14.hasNext()) {
-                                return;
-                            }
-
-                            var16 = (String)var14.next();
-                        } while("cells".equals(var16));
-                    } while("isDrag".equals(var16));
-                } while("len".equals(var16));
-
-                var17 = Integer.parseInt(var16);
-            } while(var17 < 0);
-
-            XSSFRow var18 = var4.createRow(Integer.parseInt(var16));
-            if (var2.getJSONObject(var16).containsKey("height")) {
-                Integer var19 = var2.getJSONObject(var16).getInteger("height");
-                var18.setHeightInPoints((float)var19 - 9.5F);
-            }
-
-            JSONObject var25 = var2.getJSONObject(var16).getJSONObject("cells");
-            var25 = this.b1(var25);
-            Iterator var20 = var25.keySet().iterator();
-
-            while(var20.hasNext()) {
-                String var21 = (String)var20.next();
-                if (!"-1".equals(var21)) {
-                    JSONObject var22 = var25.getJSONObject(var21);
-                    XSSFCell var23 = var18.createCell(Integer.parseInt(var21));
-                    if (var22.containsKey("style")) {
-                        String var24 = var22.getString("style");
-                        var23.setCellStyle((CellStyle)var13.get(var24));
-                    }
-
-                    this.a6(var1, var22, var16, var21, var4, var23, var3, var11, var8, var5, var9, var13, var6, var7, var18, var10);
-                }
-            }
-        }
-    }
-
-    public String a8(JSONObject var1, Map var2, String var3) throws Exception {
-        String var4 = var1.getString("style");
-        JSONObject var5 = (JSONObject)var2.get(var4);
-        if (null != var5 && var4 != null && !"null".equals(var4)) {
-            Object var6 = var5.get("format");
-            if (null != var6) {
-                SimpleDateFormat var7 = ExcelUtil.getFormat(var6.toString());
-                if (null != var7 && oConvertUtils.isNotEmpty(var3)) {
-                    SimpleDateFormat var8 = ExcelUtil.getDataFormat(var3);
-                    if (null != var8) {
-                        Date var9 = var8.parse(var3);
-
-                        try {
-                            String var10 = var7.format(var9);
-                            a.info("日期格式化之后的文本:" + var10);
-                            return var10;
-                        } catch (Exception var11) {
-                            a.info("日期格式不正确:" + var11.getMessage());
-                        }
-                    } else {
-                        String var12 = d.a(var3, var7);
-                        if (oConvertUtils.isNotEmpty(var12)) {
-                            return var12;
-                        }
-                    }
-                }
-            }
-        }
-
-        return "";
-    }
-
-    public static String a9(String var0, String var1, String var2) {
-        int var3 = var0.indexOf(var1);
-        int var4 = var0.indexOf(var2);
-        if (var3 < 0) {
-            return "";
-        } else if (var4 < 0) {
-            return "";
-        } else {
-            String var5 = var0.substring(var3, var4).substring(var1.length());
-            return var5;
-        }
-    }
-
-    private void a10(JSONObject var1, Sheet var2, SXSSFWorkbook var3, Map var4, Map<String, String> var5, Map<String, JSONObject> var6) {
-        Iterator var7 = var1.keySet().iterator();
-
-        while(true) {
-            String var8;
-            JSONObject var9;
-            do {
-                do {
-                    do {
-                        do {
-                            if (!var7.hasNext()) {
-                                return;
-                            }
-
-                            var8 = (String)var7.next();
-                        } while("len".equals(var8));
-                    } while("cells".equals(var8));
-                } while("isDrag".equals(var8));
-
-                var9 = var1.getJSONObject(var8).getJSONObject("cells");
-            } while(null == var9);
-
-            Iterator var10 = var9.keySet().iterator();
-
-            while(var10.hasNext()) {
-                String var11 = (String)var10.next();
-                JSONObject var12 = var9.getJSONObject(var11);
-                if (var12.containsKey("merge")) {
-                    String var13 = var12.getString("merge");
-                    String[] var14 = a9(var13, "[", "]").split(",");
-                    int var15 = Integer.parseInt(var14[0]);
-                    int var16 = Integer.parseInt(var14[1]);
-                    if (var13 != null && !"".equals(var13)) {
-                        JSONObject var17 = new JSONObject();
-                        int var18 = Integer.parseInt(var8);
-                        int var19 = var15 + var18;
-                        int var20 = Integer.parseInt(var11);
-                        int var21 = var16 + var20;
-                        CellRangeAddress var22 = new CellRangeAddress(var18, var19, var20, var21);
-                        if (var12.containsKey("style")) {
-                            String var23 = var12.getString("style");
-                            JSONObject var24 = (JSONObject)var4.get(var23);
-                            if (null != var24 && var24.containsKey("border")) {
-                                JSONObject var25 = var24.getJSONObject("border");
-                                Iterator var26 = var25.keySet().iterator();
-                                JSONArray var27 = var25.getJSONArray("right");
-                                JSONArray var28 = var25.getJSONArray("top");
-                                if (null != var28 && var28.size() > 1) {
-                                    RegionUtil.setBorderTop(BorderStyle.THIN, var22, var2);
-                                    var17.put("top", var28.get(1).toString());
-                                }
-
-                                if (null != var27 && var27.size() > 1) {
-                                    RegionUtil.setBorderRight(BorderStyle.THIN, var22, var2);
-                                    var17.put("right", var27.get(1).toString());
-                                }
-
-                                JSONArray var29 = var25.getJSONArray("left");
-                                if (null != var29 && var29.size() > 1) {
-                                    RegionUtil.setBorderLeft(BorderStyle.THIN, var22, var2);
-                                    var17.put("left", var29.get(1).toString());
-                                }
-
-                                JSONArray var30 = var25.getJSONArray("bottom");
-                                if (null != var30 && var30.size() > 1) {
-                                    RegionUtil.setBorderBottom(BorderStyle.THIN, var22, var2);
-                                    var17.put("bottom", var30.get(1).toString());
-                                }
-                            }
-
-                            String var31 = var18 + "," + var19 + "," + var20 + "," + var21;
-                            var6.put(var31, var17);
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    private void a11(Sheet var1, SXSSFWorkbook var2, Map<String, JSONObject> var3) {
-        Iterator var4 = var3.keySet().iterator();
-
-        while(true) {
-            JSONObject var6;
-            String[] var7;
-            do {
-                if (!var4.hasNext()) {
-                    return;
-                }
-
-                String var5 = (String)var4.next();
-                var6 = JSONObject.parseObject(String.valueOf(var3.get(var5)));
-                var7 = var5.split(",");
-            } while(var7.length != 4);
-
-            int var8 = Integer.valueOf(var7[0]);
-            int var9 = Integer.valueOf(var7[1]);
-            int var10 = Integer.valueOf(var7[2]);
-            int var11 = Integer.valueOf(var7[3]);
-
-            for(int var12 = var8; var12 < var9 + 1; ++var12) {
-                Row var13 = var1.getRow(var12);
-
-                for(int var14 = var10; var14 < var11 + 1; ++var14) {
-                    try {
-                        Cell var15 = var13.getCell(var14);
-                        if (null != var15) {
-                            XSSFCellStyle var16 = (XSSFCellStyle)var15.getCellStyle();
-                            Object var17 = var6.get("top");
-                            Object var18 = var6.get("left");
-                            Object var19 = var6.get("right");
-                            Object var20 = var6.get("bottom");
-                            XSSFColor var21;
-                            if (null != var17) {
-                                var21 = this.b(var17.toString());
-                                var16.setTopBorderColor(var21);
-                            }
-
-                            if (null != var18) {
-                                var21 = this.b(var18.toString());
-                                var16.setLeftBorderColor(var21);
-                            }
-
-                            if (null != var19) {
-                                var21 = this.b(var19.toString());
-                                var16.setRightBorderColor(var21);
-                            }
-
-                            if (null != var20) {
-                                var21 = this.b(var20.toString());
-                                var16.setBottomBorderColor(var21);
-                            }
-
-                            var15.setCellStyle(var16);
-                        }
-                    } catch (NullPointerException var22) {
-                        a.debug("单元格为空", var22.getMessage());
-                    }
-                }
-            }
-        }
-    }
-
-    private void a12(Workbook var1, Sheet var2, Map<String, String> var3, Map<String, String> var4, Map<String, JSONObject> var5, Map<String, List<String>> var6) {
-        Set var7 = var6.keySet();
-        Iterator var8 = var7.iterator();
-
-        while(true) {
-            String var11;
-            String var12;
-            Cell var13;
-            String var14;
-            String var15;
-            String var16;
-            JSONObject var17;
-            Row var18;
-            int var19;
-            int var20;
-            do {
-                do {
-                    if (!var8.hasNext()) {
-                        return;
-                    }
-
-                    String var9 = (String)var8.next();
-                    List var10 = (List)var6.get(var9);
-                    var11 = (String)var10.get(0);
-                    var12 = (String)var10.get(1);
-                    var13 = var2.getRow(Integer.parseInt(var11)).getCell(Integer.parseInt(var12));
-                    var14 = ExcelUtil.getCellValueByCell(var13);
-                } while(!var14.contains("|"));
-
-                var15 = (String)var3.get(var13.getRowIndex() + "," + var13.getColumnIndex());
-                var16 = (String)var4.get(var13.getRowIndex() + "," + var13.getColumnIndex());
-                var17 = (JSONObject)var5.get(var13.getRowIndex() + "," + var13.getColumnIndex());
-                var18 = var2.getRow(Integer.parseInt(var11));
-                var19 = (int)var13.getSheet().getColumnWidthInPixels(var13.getColumnIndex());
-                var20 = (int)var18.getHeightInPoints();
-            } while(!oConvertUtils.isNotEmpty(var15));
-
-            int var21 = 0;
-            int var22 = 0;
-            int var23 = Integer.parseInt(var11);
-            int var24 = Integer.parseInt(var12);
-            if (oConvertUtils.isNotEmpty(var16)) {
-                String[] var25 = var16.split(",");
-                int var26 = Integer.parseInt(var25[0]);
-                int var27 = Integer.parseInt(var25[1]);
-                var23 = var26;
-                var24 = var27;
-
-                int var28;
-                for(var28 = var18.getRowNum() + 1; var28 < var26 + 1; ++var28) {
-                    Row var29 = var2.getRow(var28);
-                    if (var29 != null) {
-                        var22 += (int)var2.getRow(var28).getHeightInPoints();
-                    }
-                }
-
-                for(var28 = var13.getColumnIndex() + 1; var28 < var27 + 1; ++var28) {
-                    var21 += (int)var2.getColumnWidthInPixels(var28);
-                }
-            }
-
-            var19 += var21;
-            var20 += var22;
-            var13.setCellValue("");
-            if (var2 instanceof SXSSFSheet) {
-                try {
-                    byte[] var32 = ExcelUtil.getImage(var14, var15, var19, var20, var17);
-                    Drawing var33 = var2.createDrawingPatriarch();
-                    XSSFClientAnchor var34 = new XSSFClientAnchor(12700, 12700, -12700, -12700, Integer.parseInt(var12), Integer.parseInt(var11), var24 + 1, var23 + 1);
-                    var34.setAnchorType(ClientAnchor.AnchorType.MOVE_AND_RESIZE);
-                    var33.createPicture(var34, var1.addPicture(var32, 5));
-                } catch (IOException var31) {
-                    var31.printStackTrace();
-                }
-            }
-
-            if (var2 instanceof XSSFSheet) {
-                try {
-                    a13(var14, var1, var2, var19, var20, var15, Integer.parseInt(var11), Integer.parseInt(var12), var23 + 1, var24 + 1, var17);
-                } catch (Exception var30) {
-                    var30.printStackTrace();
-                }
-            }
-        }
-    }
-
-    public static void a13(String var0, Workbook var1, Sheet var2, int var3, int var4, String var5, int var6, int var7, int var8, int var9, JSONObject var10) {
-        String[] var11 = var0.split("\\|");
-        int var12 = var11.length;
-        Cell var13 = var2.getRow(var6).getCell(var7);
-        CellStyle var14 = var13.getCellStyle();
-        var14.setWrapText(true);
-        Font var15 = var1.getFontAt(var14.getFontIndex());
-        var15.setFontName("Microsoft YaHei");
-        var15.setFontHeightInPoints((short)10);
-        CreationHelper var16 = var1.getCreationHelper();
-        String var17 = "";
-        if (null != var10 && var10.containsKey("color")) {
-            var17 = var10.getString("color");
-        }
-
-        String var18;
-        if (var5.equals("lefttop")) {
-            var18 = a14(var11, var3, var4);
-            var13.setCellValue(var18);
-            Drawing var19 = var2.createDrawingPatriarch();
-            if (var11.length == 2) {
-                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, 0, 0, var7, var6, var9, var8), var5, var17);
-            } else if (var11.length == 3) {
-                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, 0, -((int)((double)var4 / 2.5D)) * 12700, var7, var6, var9, var8), var5, var17);
-                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, -var3 / 4 * 12700, 0, var7, var6, var9, var8), var5, var17);
-            }
-        } else {
-            var18 = b2(var11, var3, var4);
-            var13.setCellValue(var18);
-            a15(var2, var16, var7, var6, var9, var8, var4, var3, var12 - 1, var5, var17);
-        }
-
-        var14.setFont(var15);
-        var13.setCellStyle(var14);
-    }
-
-    public static void a15(Sheet var0, CreationHelper var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, String var9, String var10) {
-        Drawing var11;
-        ClientAnchor var12;
-        if (var8 == 1) {
-            var11 = var0.createDrawingPatriarch();
-            var12 = var1.createClientAnchor();
-            var12.setCol1(var2);
-            var12.setRow1(var3);
-            var12.setCol2(var4);
-            var12.setRow2(var5);
-            ExcelUtil.paintLine(var11, var12, var9, var10);
-        } else if (var8 == 2) {
-            var11 = var0.createDrawingPatriarch();
-            var12 = var1.createClientAnchor();
-            var12.setCol1(var2);
-            var12.setRow1(var3);
-            var12.setCol2(var4);
-            var12.setRow2(var5);
-            var12.setDx2(-var7 / 4 * 12700);
-            ExcelUtil.paintLine(var11, var12, var9, var10);
-            ClientAnchor var13 = var1.createClientAnchor();
-            Drawing var14 = var0.createDrawingPatriarch();
-            var13.setCol1(var2);
-            var13.setRow1(var3);
-            var13.setCol2(var4);
-            var13.setRow2(var5);
-            var13.setDy1((int)((double)var6 / 2.5D) * 12700);
-            ExcelUtil.paintLine(var14, var13, var9, var10);
-        }
-
-    }
-
-    public static String b2(String[] var0, int var1, int var2) {
-        int var3 = var0.length;
-        if (var3 < 1 && var3 > 3) {
-            return "";
-        } else {
-            int var4 = var1 / 4;
-            if (var3 == 2) {
-                var4 -= var0[1].length();
-                if (var1 < 240) {
-                    if (var0[1].length() > 3) {
-                        var4 -= var0[1].length();
-                    }
-
-                    var4 -= var0[1].length();
-                }
-            } else {
-                if (var1 < 240) {
-                    if (var0[2].length() > 3) {
-                        var4 -= var0[2].length();
-                    }
-
-                    var4 -= var0[2].length();
-                }
-
-                var4 -= var0[2].length();
-            }
-
-            String var5 = "";
-            int var6 = var2 / 20;
-            var5 = var5 + var0[0];
-            int var7;
-            if (var3 == 2) {
-                for(var7 = 0; var7 < var6; ++var7) {
-                    var5 = var5 + "\n";
-                }
-
-                for(var7 = 0; var7 < var4; ++var7) {
-                    var5 = var5 + " ";
-                }
-
-                var5 = var5 + var0[1];
-            }
-
-            if (var3 == 3) {
-                var7 = var1 / 4;
-                var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
-                if (var1 < 150) {
-                    var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
-                }
-
-                if (var0[1].length() > 2) {
-                    if (var1 < 260) {
-                        var7 -= var0[1].length();
-                    }
-
-                    var7 -= var0[1].length();
-                }
-
-                if (var0[0].length() > 3) {
-                    var7 -= var0[0].length();
-                }
-
-                String var8 = " ";
-
-                int var9;
-                for(var9 = 0; var9 < var7; ++var9) {
-                    var8 = var8 + " ";
-                }
-
-                var5 = var5 + var8 + var0[1];
-
-                for(var9 = 0; var9 < var6; ++var9) {
-                    var5 = var5 + "\n";
-                }
-
-                for(var9 = 0; var9 < var7; ++var9) {
-                    var5 = var5 + " ";
-                }
-
-                var5 = var5 + var0[2];
-            }
-
-            return var5;
-        }
-    }
-
-    public static String a14(String[] var0, int var1, int var2) {
-        int var3 = var0.length;
-        if (var3 < 1 && var3 > 3) {
-            return "";
-        } else {
-            int var4 = var1 / 4;
-            if (var3 == 2) {
-                var4 -= var0[1].length();
-                if (var1 < 150) {
-                    var4 -= var0[1].length() * 3;
-                }
-            } else {
-                if (var1 < 186) {
-                    var4 -= var0[2].length();
-                }
-
-                if (var1 < 160) {
-                    if (var0[2].length() == 2) {
-                        var4 -= var0[2].length() * 2;
-                    } else if (var0[2].length() > 2) {
-                        var4 -= var0[2].length();
-                    }
-                }
-
-                var4 -= var0[2].length();
-                if (var0[2].length() > 3) {
-                    var4 -= var0[2].length();
-                }
-            }
-
-            String var5 = "";
-
-            int var6;
-            for(var6 = 0; var6 < var4; ++var6) {
-                var5 = var5 + " ";
-            }
-
-            var6 = var2 / 20;
-            if (var3 == 2) {
-                var5 = var5 + var0[1];
-            } else {
-                var5 = var5 + var0[2];
-            }
-
-            int var7;
-            for(var7 = 0; var7 < var6; ++var7) {
-                var5 = var5 + "\n";
-            }
-
-            if (var3 == 2) {
-                var5 = var5 + var0[0];
-            }
-
-            if (var3 == 3) {
-                var5 = var5 + var0[0];
-                var7 = var1 / 4;
-                if (var1 < 270) {
-                    var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
-                }
-
-                if (var1 < 160) {
-                    var7 = var7 - var0[0].length() - var0[1].length();
-                }
-
-                var7 = var7 - var0[0].length() - var0[1].length();
-                if (var0[0].length() > 3) {
-                    var7 -= var0[0].length();
-                }
-
-                if (var0[1].length() > 3) {
-                    if (var1 > 270) {
-                        var7 -= var0[1].length() * 2;
-                    } else {
-                        var7 -= var0[1].length();
-                    }
-                }
-
-                String var8 = "";
-
-                for(int var9 = 0; var9 < var7; ++var9) {
-                    var8 = var8 + " ";
-                }
-
-                var5 = var5 + var8 + var0[1];
-            }
-
-            return var5;
-        }
-    }
-
-    private void a16(Sheet var1, XSSFWorkbook var2, JSONArray var3, Map<String, String> var4, Map<String, Object> var5) {
-        Drawing var6 = var1.createDrawingPatriarch();
-        HttpURLConnection var7 = null;
-
-        try {
-            for(int var9 = 0; var9 < var3.size(); ++var9) {
-                boolean var10 = false;
-                boolean var11 = false;
-                String var12 = "";
-                String var13 = "";
-                String var14 = "";
-                JSONObject var15 = var3.getJSONObject(var9);
-                int var37 = Integer.valueOf(var15.getString("col"));
-                int var36 = Integer.valueOf(var15.getString("row"));
-                var13 = (String)var15.get("width");
-                var14 = (String)var15.get("height");
-                var12 = (String)var15.get("src");
-                String var16 = var15.getString("layer_id");
-                Object var17 = var15.get("colspan");
-                Object var18 = var15.get("rowspan");
-                Object var19 = var5.get(var16);
-                if (null != var19) {
-                    String[] var20 = String.valueOf(var19).split(",");
-                    var36 = Integer.parseInt(var20[0]);
-                    var37 = Integer.parseInt(var20[1]);
-                }
-
-                if (var14.contains("px") && var13.contains("px")) {
-                    var14 = var14.substring(0, var14.lastIndexOf("px"));
-                    var13 = var13.substring(0, var13.lastIndexOf("px"));
-                }
-
-                byte[] var8;
-                if (var12.contains("http")) {
-                    URL var38 = new URL(var12);
-                    if (var12.contains("https")) {
-                        var8 = b.a(var12);
-                    } else {
-                        var7 = (HttpURLConnection)var38.openConnection();
-                        var7.setRequestMethod("GET");
-                        var7.setConnectTimeout(50000);
-                        InputStream var21 = var7.getInputStream();
-                        var8 = a21(var21);
-                    }
-                } else {
-                    var8 = this.c1(var12);
-                }
-
-                boolean var39 = false;
-                String var41 = (String)var4.get(var36 + "," + var37);
-                boolean var22 = false;
-                int var40;
-                int var42;
-                if (null != var17 && null != var18) {
-                    var42 = var36 + Integer.parseInt(var18.toString());
-                    var40 = var37 + Integer.parseInt(var17.toString());
-                } else {
-                    if (oConvertUtils.isNotEmpty(var41)) {
-                        String var23 = var41.split(",")[0];
-                        var42 = Integer.parseInt(var23);
-                    } else {
-                        var42 = var36 + Integer.parseInt(String.format("%.0f", Float.parseFloat(var14) / 25.0F));
-                    }
-
-                    Integer var43 = this.a22(var1, var36, (float)Integer.parseInt(var14));
-                    if (var43 > 0) {
-                        var42 = var43;
-                    } else {
-                        var42 += var36;
-                    }
-
-                    var40 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var13) / 100.0F));
-                    var40 += var37;
-                }
-
-                Object var44 = var15.get("isBackend");
-                if (null != var44 && (Boolean)var44) {
-                    int var45 = var2.addPicture(var8, 6);
-                    XSSFPictureData var25 = (XSSFPictureData)var2.getAllPictures().get(var45);
-
-                    try {
-                        for(int var26 = 0; var26 < var2.getNumberOfSheets(); ++var26) {
-                            XSSFSheet var46 = var2.getSheetAt(var26);
-                            PackagePartName var28 = var25.getPackagePart().getPartName();
-                            String var29 = XSSFRelation.IMAGES.getRelation();
-                            PackageRelationship var30 = var46.getPackagePart().addRelationship(var28, TargetMode.EXTERNAL, var29, (String)null);
-                            var46.getCTWorksheet().addNewPicture().setId(var30.getId());
-                        }
-                    } catch (Exception var31) {
-                        XSSFClientAnchor var27 = new XSSFClientAnchor(0, 0, Integer.parseInt(var13), Integer.parseInt(var14), var37, var36, var40, var42);
-                        var6.createPicture(var27, var2.addPicture(var8, 5));
-                    }
-                } else {
-                    XSSFClientAnchor var24 = new XSSFClientAnchor(0, 0, Integer.parseInt(var13), Integer.parseInt(var14), var37, var36, var40, var42);
-                    var6.createPicture(var24, var2.addPicture(var8, 5));
-                }
-            }
-        } catch (MalformedURLException var32) {
-            var32.printStackTrace();
-        } catch (ProtocolException var33) {
-            var33.printStackTrace();
-        } catch (IOException var34) {
-            var34.printStackTrace();
-        } catch (Exception var35) {
-            var35.printStackTrace();
-        }
-
-    }
-
-    private void a17(Sheet var1, SXSSFWorkbook var2, JSONArray var3, Map<String, Object> var4, JSONObject var5, JSONObject var6) {
-        Drawing var7 = var1.createDrawingPatriarch();
-        Object var8 = null;
-
-        try {
-            for(int var9 = 0; var9 < var3.size(); ++var9) {
-                boolean var10 = false;
-                boolean var11 = false;
-                String var12 = "";
-                String var13 = "";
-                String var14 = "";
-                JSONObject var15 = var3.getJSONObject(var9);
-                int var33 = Integer.valueOf(var15.getString("col"));
-                int var32 = Integer.valueOf(var15.getString("row"));
-                var13 = (String)var15.get("width");
-                var14 = (String)var15.get("height");
-                var12 = (String)var15.get("url");
-                String var16 = var15.getString("layer_id");
-                Object var17 = var4.get(var16);
-                if (null != var17) {
-                    String[] var18 = String.valueOf(var17).split(",");
-                    var32 = Integer.parseInt(var18[0]);
-                    var33 = Integer.parseInt(var18[1]);
-                }
-
-                byte[] var34 = new byte[0];
-                var34 = oConvertUtils.decodeBase64(var12);
-                int var20 = 0;
-                float var21 = Float.parseFloat(var14);
-
-                for(int var22 = var32; var22 < var32 + 99; ++var22) {
-                    Row var23 = var1.getRow(var22);
-                    if (var23 == null) {
-                        break;
-                    }
-
-                    ++var20;
-                    var21 -= var23.getHeightInPoints();
-                }
-
-                Object var35 = var15.get("colspan");
-                Object var36 = var15.get("rowspan");
-                boolean var24 = false;
-                int var37;
-                if (null != var35 && null != var36) {
-                    var20 = var32 + Integer.parseInt(var36.toString());
-                    var37 = var33 + Integer.parseInt(var35.toString());
-                } else {
-                    var20 += Integer.parseInt(String.format("%.0f", var21 / 25.0F));
-                    var37 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var13) / 100.0F));
-                    var37 += var33;
-                }
-
-                int var25 = 0;
-
-                int var26;
-                for(var26 = var33; var26 < var37; ++var26) {
-                    Object var27 = var5.get(var26);
-                    if (oConvertUtils.isNotEmpty(var27)) {
-                        JSONObject var28 = (JSONObject)var27;
-                        Object var29 = var28.get("width");
-                        var25 += Integer.valueOf(String.valueOf(var29));
-                    } else {
-                        var25 += 100;
-                    }
-                }
-
-                if (var25 > Integer.parseInt(var13)) {
-                    var25 -= Integer.parseInt(var13);
-                } else {
-                    var25 = 0;
-                }
-
-                var25 = var25 * 3 / 4;
-                var26 = 0;
-
-                for(int var38 = var32; var38 < var20; ++var38) {
-                    Object var40 = var6.get(var38);
-                    if (oConvertUtils.isNotEmpty(var40)) {
-                        JSONObject var41 = (JSONObject)var40;
-                        Object var30 = var41.get("height");
-                        if (oConvertUtils.isNotEmpty(var30)) {
-                            var26 += Integer.parseInt(var30.toString());
-                        } else {
-                            var26 += 25;
-                        }
-                    } else {
-                        var26 += 25;
-                    }
-                }
-
-                if (var26 > Integer.parseInt(var14)) {
-                    var26 -= Integer.parseInt(var14);
-                } else {
-                    var26 = 0;
-                }
-
-                var26 = var26 * 3 / 4;
-                XSSFClientAnchor var39 = new XSSFClientAnchor(0, 0, 12700 * -var25, 12700 * -var26, var33, var32, var37, var20);
-                var7.createPicture(var39, var2.addPicture(var34, 5));
-            }
-        } catch (Exception var31) {
-            var31.printStackTrace();
-        }
-
-    }
-
-    private void a18(Sheet var1, Workbook var2, JSONArray var3, List var4, Map<String, Object> var5) {
-        Drawing var6 = var1.createDrawingPatriarch();
-
-        for(int var7 = 0; var7 < var3.size(); ++var7) {
-            JSONObject var8 = var3.getJSONObject(var7);
-            boolean var9 = false;
-            boolean var10 = false;
-            String var11 = "";
-            String var12 = "";
-            int var25 = Integer.valueOf(var8.getString("col"));
-            int var24 = Integer.valueOf(var8.getString("row"));
-            var11 = String.valueOf(var8.get("width"));
-            var12 = String.valueOf(var8.get("height"));
-            String var13 = (String)var8.get("layer_id");
-            String var14 = "";
-            Object var15 = var5.get(var13);
-            if (null != var15) {
-                String[] var16 = String.valueOf(var15).split(",");
-                var24 = Integer.parseInt(var16[0]);
-                var25 = Integer.parseInt(var16[1]);
-            }
-
-            Object var18;
-            for(int var26 = 0; var26 < var4.size(); ++var26) {
-                Map var17 = (Map)var4.get(var26);
-                var18 = var17.get("id");
-                if (var13.equals(var18.toString())) {
-                    var14 = (String)var17.get("base64");
-                }
-            }
-
-            byte[] var27 = new byte[0];
-            var27 = oConvertUtils.decodeBase64(var14.replace("data:image/png;base64,", ""));
-            var18 = var8.get("colspan");
-            Object var19 = var8.get("rowspan");
-            boolean var20 = false;
-            boolean var21 = false;
-            float var22 = Float.parseFloat(var12);
-            int var28;
-            int var29;
-            if (null != var18 && null != var19) {
-                var29 = var24 + Integer.parseInt(var19.toString());
-                var28 = var25 + Integer.parseInt(var18.toString());
-            } else {
-                var28 = var24 + Integer.parseInt(String.format("%.0f", Float.parseFloat(var12) / 25.0F));
-                var29 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var11) / 100.0F));
-            }
-
-            XSSFClientAnchor var23 = new XSSFClientAnchor(0, 0, Integer.parseInt(var11), Integer.parseInt(var12), var25, var24, var28, var29);
-            var6.createPicture(var23, var2.addPicture(var27, 5));
-        }
-
-    }
-
-    private void a19(Sheet var1, XSSFWorkbook var2, JSONObject var3) {
-        Drawing var4 = var1.createDrawingPatriarch();
-        Object var5 = null;
-        String var6 = "";
-        String var7 = "";
-        String var8 = "";
-        Object var18 = var3.get("width");
-        Object var19 = var3.get("height");
-        var6 = var3.getString("path");
-        byte[] var9 = this.a20(var6);
-        XSSFPictureData var10 = null;
-        boolean var11 = false;
-
-        try {
-            int var20 = var2.addPicture(var9, 6);
-            var10 = (XSSFPictureData)var2.getAllPictures().get(var20);
-        } catch (NullPointerException var17) {
-            a.debug("数据为空", var17.getMessage());
-        }
-
-        if (var10 != null) {
-            for(int var12 = 0; var12 < var2.getNumberOfSheets(); ++var12) {
-                XSSFSheet var13 = var2.getSheetAt(var12);
-                PackagePartName var14 = var10.getPackagePart().getPartName();
-                String var15 = XSSFRelation.IMAGES.getRelation();
-                PackageRelationship var16 = var13.getPackagePart().addRelationship(var14, TargetMode.EXTERNAL, var15, (String)null);
-                var13.getCTWorksheet().addNewPicture().setId(var16.getId());
-            }
-        }
-
-    }
-
-    public byte[] a20(String var1) {
-        URL var2 = null;
-        Object var3 = null;
-        byte[] var7;
-        if (var1.contains("http")) {
-            try {
-                var2 = new URL(var1);
-                if (var1.contains("https")) {
-                    var7 = b.a(var1);
-                    return var7;
-                } else {
-                    HttpURLConnection var4 = null;
-                    var4 = (HttpURLConnection)var2.openConnection();
-                    var4.setRequestMethod("GET");
-                    var4.setConnectTimeout(50000);
-                    InputStream var5 = var4.getInputStream();
-                    var7 = a21(var5);
-                    return var7;
-                }
-            } catch (Exception var6) {
-                var6.printStackTrace();
-                return null;
-            }
-        } else {
-            var7 = this.c1(var1);
-            return var7;
-        }
-    }
-
-    private static byte[] a21(InputStream var0) throws Exception {
-        ByteArrayOutputStream var1 = new ByteArrayOutputStream();
-        byte[] var2 = new byte[1024];
-        boolean var3 = false;
-
-        int var4;
-        while((var4 = var0.read(var2)) != -1) {
-            var1.write(var2, 0, var4);
-        }
-
-        var0.close();
-        return var1.toByteArray();
-    }
-
-    private byte[] c1(String var1) {
-        File var2 = new File(this.jimuReportUploadConfig.getPath().getUpload() + File.separator + var1);
-
-        try {
-            byte[] var3 = Files.readAllBytes(var2.toPath());
-            return var3;
-        } catch (IOException var4) {
-            var4.printStackTrace();
-            return null;
-        }
-    }
-
-    public Integer a22(Sheet var1, Integer var2, float var3) {
-        int var4 = 0;
-        Double var5 = 0.0D;
-
-        for(Iterator var6 = var1.iterator(); var6.hasNext(); ++var4) {
-            Row var7 = (Row)var6.next();
-            if (var2 <= var4) {
-                var5 = var5 + (double)var7.getHeightInPoints();
-            }
-
-            if (var5 != 0.0D && (double)var3 - var5 <= 10.0D && var4 > 0) {
-                return var4;
-            }
-
-            if (var5 >= (double)var3 && var4 > 0) {
-                return var4;
-            }
-        }
-
-        return 0;
-    }
-}
-
+//package org.jeecg.modules.jmreport.common;
+//
+//import com.alibaba.fastjson.JSON;
+//import com.alibaba.fastjson.JSONArray;
+//import com.alibaba.fastjson.JSONObject;
+//import org.apache.commons.lang3.StringUtils;
+//import org.apache.poi.openxml4j.opc.PackagePartName;
+//import org.apache.poi.openxml4j.opc.PackageRelationship;
+//import org.apache.poi.openxml4j.opc.TargetMode;
+//import org.apache.poi.ss.usermodel.*;
+//import org.apache.poi.ss.util.CellRangeAddress;
+//import org.apache.poi.ss.util.CellReference;
+//import org.apache.poi.ss.util.RegionUtil;
+//import org.apache.poi.xssf.streaming.SXSSFCell;
+//import org.apache.poi.xssf.streaming.SXSSFRow;
+//import org.apache.poi.xssf.streaming.SXSSFSheet;
+//import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+//import org.apache.poi.xssf.usermodel.*;
+//import org.jeecg.modules.jmreport.common.constant.CommonConstant;
+//import org.jeecg.modules.jmreport.common.constant.JmConst;
+//import org.jeecg.modules.jmreport.common.expetion.JimuReportException;
+//import org.jeecg.modules.jmreport.common.util.CommonUtils;
+//import org.jeecg.modules.jmreport.common.util.ExcelUtil;
+//import org.jeecg.modules.jmreport.common.util.GoogleBarCodeUtils;
+//import org.jeecg.modules.jmreport.common.util.oConvertUtils;
+//import org.jeecg.modules.jmreport.common.vo.JmDictModel;
+//import org.jeecg.modules.jmreport.common.vo.Result;
+//import org.jeecg.modules.jmreport.config.JmReportBaseConfig;
+//import org.jeecg.modules.jmreport.config.oss.JmReportUploadConfig;
+//import org.jeecg.modules.jmreport.desreport.dao.JimuReportDao;
+//import org.jeecg.modules.jmreport.desreport.dao.JimuReportDbDao;
+//import org.jeecg.modules.jmreport.desreport.dao.JimuReportDbFieldDao;
+//import org.jeecg.modules.jmreport.desreport.dao.JimuReportDbParamDao;
+//import org.jeecg.modules.jmreport.desreport.entity.JimuReport;
+//import org.jeecg.modules.jmreport.desreport.entity.JmReportDb;
+//import org.jeecg.modules.jmreport.desreport.entity.JmReportDbField;
+//import org.jeecg.modules.jmreport.desreport.entity.JmReportDbParam;
+//import org.jeecg.modules.jmreport.desreport.model.JmExpression;
+//import org.jeecg.modules.jmreport.desreport.model.RenderInfo;
+//import org.jeecg.modules.jmreport.desreport.model.ReportDbInfo;
+//import org.jeecg.modules.jmreport.desreport.render.utils.ExcelColumn;
+//import org.jeecg.modules.jmreport.desreport.render.utils.ReportUtil;
+//import org.jeecg.modules.jmreport.desreport.service.IJimuReportDictService;
+//import org.jeecg.modules.jmreport.desreport.service.IJmReportExportExcel;
+//import org.jeecg.modules.jmreport.desreport.service.a.e;
+//import org.jeecg.modules.jmreport.desreport.util.b;
+//import org.jeecg.modules.jmreport.desreport.util.d;
+//import org.jeecg.modules.jmreport.dyndb.JmreportDataSourceCachePool;
+//import org.jeecg.modules.jmreport.dyndb.JmreportDynamicDbUtil;
+//import org.jeecg.modules.jmreport.dyndb.util.JmreportSqlUtils;
+//import org.jeecg.modules.jmreport.dyndb.vo.JmreportDynamicDataSourceVo;
+//import org.jeecgframework.minidao.pojo.MiniDaoPage;
+//import org.jeecgframework.minidao.util.MiniDaoUtil;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Service;
+//import org.springframework.web.client.ResourceAccessException;
+//
+//import java.io.ByteArrayOutputStream;
+//import java.io.File;
+//import java.io.IOException;
+//import java.io.InputStream;
+//import java.net.HttpURLConnection;
+//import java.net.MalformedURLException;
+//import java.net.ProtocolException;
+//import java.net.URL;
+//import java.nio.file.Files;
+//import java.text.SimpleDateFormat;
+//import java.util.*;
+//import java.util.regex.Matcher;
+//import java.util.regex.Pattern;
+//import java.util.stream.Collectors;
+//
+//import static com.boman.common.core.utils.obj.ObjectUtils.*;
+//
+///**
+// * @author shiqian
+// * @date 2021年08月19日 15:17
+// **/
+//@Service
+//public class ExportExcelService {
+//    @Autowired
+//    private e jmReportDesignService;
+//    @Autowired
+//    private JmReportBaseConfig jmBaseConfig;
+//    @Autowired
+//    private JmReportUploadConfig jimuReportUploadConfig;
+//    @Autowired
+//    private JimuReportDao reportDao;
+//    @Autowired
+//    private JimuReportDbParamDao dbParamDao;
+//    @Autowired
+//    private JimuReportDbDao reportDbDao;
+//    @Autowired
+//    private JmreportDynamicDbUtil jmreportDynamicDbUtil;
+//    @Autowired
+//    private JimuReportDbFieldDao dbFieldDao;
+//    @Autowired
+//    private IJimuReportDictService dictService;
+//
+//    private static final Logger a = LoggerFactory.getLogger(ExportExcelService.class);
+//
+//    public Map<String, Object> exportEmptyExcel(String excelConfigId, JSONObject queryParam, List echartBase) {
+//        XSSFWorkbook var4 = new XSSFWorkbook();
+//        SXSSFWorkbook var5 = new SXSSFWorkbook(var4, -1, Boolean.FALSE, Boolean.TRUE);
+//        String var6 = "";
+//        HashMap var7 = new HashMap();
+//        XSSFCellStyle var8 = this.a1(var5);
+//        var7.put("generalStyle", var8);
+//        boolean var9 = true;
+//        new HashMap();
+//        int var11 = 1;
+//        Integer var12 = this.jmBaseConfig.getPageSizeNumber();
+//        if (null == queryParam || queryParam.size() == 0) {
+//            queryParam = new JSONObject();
+//        }
+//
+//        while(var9) {
+//            if (oConvertUtils.isEmpty(var12)) {
+//                var12 = 10000;
+//            }
+//
+//            if (oConvertUtils.isNotEmpty(var12) && "0".equals(String.valueOf(var12))) {
+//                var12 = 10000;
+//            }
+//
+//            queryParam.put("pageNo", var11);
+//            queryParam.put("pageSize", var12);
+//            Result var13 = this.jmReportDesignService.show(excelConfigId, queryParam.toJSONString());
+//            JimuReport var14 = (JimuReport)var13.getResult();
+//            JSONObject var15 = JSON.parseObject(var14.getJsonStr());
+//            JSONObject var16 = var15.getJSONObject("rows");
+//            if (var16.containsKey("-1")) {
+//                var16.remove("-1");
+//            }
+//
+//            if (var16.containsKey("len")) {
+//                var16.remove("len");
+//            }
+//
+//            if (var16.size() < var12) {
+//                var9 = false;
+//            }
+//
+//            if (var16.size() > var12) {
+//                var9 = false;
+//            }
+//
+//            var6 = var14.getName();
+//            JSONObject var17 = JSON.parseObject(var14.getJsonStr());
+//            this.a2((JSONObject)var17, (List)echartBase, (SXSSFWorkbook)var5, (XSSFWorkbook)var4, (Integer)var11, (Map)var7);
+//            ++var11;
+//        }
+//
+//        HashMap var18 = new HashMap();
+//        var18.put("name", var6 + ".xlsx");
+//        var18.put("workbook", var5);
+//        return var18;
+//    }
+//
+//    private XSSFCellStyle a1(SXSSFWorkbook var1) {
+//        XSSFCellStyle var2 = (XSSFCellStyle)var1.createCellStyle();
+//        XSSFFont var3 = (XSSFFont)var1.createFont();
+//        var3.setFontName("宋体");
+//        var2.setFont(var3);
+//        var2.setAlignment(HorizontalAlignment.CENTER);
+//        var2.setVerticalAlignment(VerticalAlignment.CENTER);
+//        return var2;
+//    }
+//
+//    private void a3(Sheet var1, JSONObject var2) {
+//        var1.setDefaultColumnWidth(12);
+//        Iterator var3 = var2.keySet().iterator();
+//
+//        while(var3.hasNext()) {
+//            String var4 = (String)var3.next();
+//            JSONObject var5 = (JSONObject)var2.get(var4);
+//            var1.setColumnWidth(Integer.parseInt(var4), 35 * (int)((double)var5.getInteger("width") + 0.8D));
+//        }
+//
+//    }
+//
+//    private SXSSFWorkbook a2(JSONObject var1, List var2, SXSSFWorkbook var3, XSSFWorkbook var4, Integer var5, Map<String, CellStyle> var6) {
+//        JSONArray var7 = null;
+//        JSONArray var8 = null;
+//        JSONArray var9 = null;
+//        JSONArray var10 = null;
+//        JSONObject var11 = null;
+//        if (var1.containsKey("imgList")) {
+//            var7 = var1.getJSONArray("imgList");
+//        }
+//
+//        if (var1.containsKey("chartList")) {
+//            var8 = var1.getJSONArray("chartList");
+//        }
+//
+//        if (var1.containsKey("barcodeList")) {
+//            var9 = var1.getJSONArray("barcodeList");
+//        }
+//
+//        if (var1.containsKey("qrcodeList")) {
+//            var10 = var1.getJSONArray("qrcodeList");
+//        }
+//
+//        if (var1.containsKey("background")) {
+//            Object var12 = var1.get("background");
+//            if (var12 instanceof JSONObject) {
+//                var11 = var1.getJSONObject("background");
+//            }
+//        }
+//
+//        JSONObject var13;
+//        String var14;
+//        if (var8 != null && var8.size() > 0 && var2.size() > 0) {
+//            for(int var31 = 0; var31 < var8.size(); ++var31) {
+//                var13 = var8.getJSONObject(var31);
+//                var14 = (String)var13.get("layer_id");
+//                List var15 = var2;
+//                String var16 = "";
+//
+//                for(int var17 = 0; var17 < var15.size(); ++var17) {
+//                    Map var18 = (Map)var15.get(var17);
+//                    if (((String)var18.get("id")).equals(var14)) {
+//                        var16 = (String)var18.get("base64");
+//                    }
+//                }
+//
+//                String[] var35 = var16.split("base64,");
+//                var13.put("url", var35[1]);
+//            }
+//        }
+//
+//        JSONObject var32 = var1.getJSONObject("rows");
+//        var13 = var1.getJSONObject("cols");
+//        if (var13.containsKey("len")) {
+//            var13.remove("len");
+//        }
+//
+//        if (var32.containsKey("-1")) {
+//            var32.remove("-1");
+//        }
+//
+//        var14 = var1.getString("name");
+//        Object var33 = var1.get("styles");
+//        HashMap var34 = new HashMap();
+//        int var37;
+//        if (var33 instanceof JSONArray) {
+//            JSONArray var36 = var1.getJSONArray("styles");
+//
+//            for(var37 = 0; var37 < var36.size(); ++var37) {
+//                var34.put(String.valueOf(var37), var36.get(var37));
+//            }
+//        }
+//
+//        if (var33 instanceof JSONObject) {
+//            JSONObject var38 = (JSONObject)var33;
+//
+//            for(var37 = 1; var37 <= var38.size(); ++var37) {
+//                var34.put(String.valueOf(var37), var38.get(var37));
+//            }
+//        }
+//
+//        Object var39 = null;
+//        String var40 = this.jmBaseConfig.getExportExcelPattern();
+//        if (oConvertUtils.isEmpty(var40) || "fast".equals(var40)) {
+//            var3.createSheet("sheet" + var5);
+//            var39 = var3.getSheetAt(var5 - 1);
+//        }
+//
+//        if ("primary".equals(var40)) {
+//            var4.createSheet("sheet" + var5);
+//            var39 = var4.getSheetAt(var5 - 1);
+//        }
+//
+//        this.a3((Sheet)var39, var13);
+//        ((Sheet)var39).setDefaultRowHeightInPoints(19.5F);
+//        HashMap var19 = new HashMap();
+//        HashMap var20 = new HashMap();
+//        HashMap var21 = new HashMap();
+//        ArrayList var22 = new ArrayList();
+//        HashMap var23 = new HashMap();
+//        Map var24 = this.a4(var32);
+//        HashMap var25 = new HashMap();
+//        long var26 = System.currentTimeMillis();
+//        HashMap var28 = new HashMap();
+//        this.a5((Map)var34, (Workbook)var3, (Map)var6);
+//        if (var39 instanceof SXSSFSheet) {
+//            this.a5((SXSSFWorkbook)var3, var32, var34, (SXSSFSheet)((SXSSFSheet)var39), var19, var20, var21, var22, var24, var25, var28, var5, var6);
+//        }
+//
+//        if (var39 instanceof XSSFSheet) {
+//            this.a7((XSSFWorkbook)var4, var32, var34, (XSSFSheet)((XSSFSheet)var39), var19, var20, var21, var22, var24, var25, var28, var5, var6);
+//        }
+//
+//        long var29 = System.currentTimeMillis();
+//        a.info("循环数据运行时间:" + (var29 - var26) + "ms");
+//        if (var32.size() < this.jmBaseConfig.excelStyleRow && var5 == 1 || var39 instanceof XSSFSheet) {
+//            this.a10((JSONObject)var32, (Sheet)var39, (SXSSFWorkbook)var3, (Map)var34, (Map)var28, (Map)var23);
+//            this.a11((Sheet)var39, (SXSSFWorkbook)var3, (Map)var23);
+//        }
+//
+//        this.a12((Workbook)var3, (Sheet)var39, (Map)var19, (Map)var28, (Map)var20, (Map)var21);
+//        if (var7 != null) {
+//            this.a16((Sheet)var39, (XSSFWorkbook)var4, (JSONArray)var7, (Map)var28, var25);
+//        }
+//
+//        if (var8 != null) {
+//            this.a17((Sheet)var39, (SXSSFWorkbook)var3, (JSONArray)var8, (Map)var25, (JSONObject)var13, (JSONObject)var32);
+//        }
+//
+//        if (var9 != null) {
+//            this.a18((Sheet)var39, (Workbook)var3, (JSONArray)var9, (List)var2, var25);
+//        }
+//
+//        if (var10 != null) {
+//            this.a18((Sheet)var39, (Workbook)var3, (JSONArray)var10, (List)var2, var25);
+//        }
+//
+//        if (var11 != null) {
+//            this.a19((Sheet)var39, (XSSFWorkbook)var4, (JSONObject)var11);
+//        }
+//
+//        if (null != var22 && var22.size() > 0) {
+//            this.a23((Sheet)var39, (SXSSFWorkbook)var3, (List)var22, (Map)var28, var25);
+//        }
+//
+//        return var3;
+//    }
+//
+//
+//    public Map<String, Integer> a24(Sheet var1, Map<String, String> var2, Integer var3, Integer var4) {
+//        HashMap var5 = new HashMap();
+//        String var6 = (String)var2.get(var3 + "," + var4);
+//        Row var7 = var1.getRow(var3);
+//        Cell var8 = var7.getCell(var4);
+//        var8.setCellValue("");
+//        int var9 = (int)var8.getSheet().getColumnWidthInPixels(var8.getColumnIndex());
+//        int var10 = (int)var7.getHeightInPoints();
+//        int var11 = 0;
+//        int var12 = 0;
+//        int var13 = var3;
+//        int var14 = var4;
+//        if (oConvertUtils.isNotEmpty(var6)) {
+//            String[] var15 = var6.split(",");
+//            int var16 = Integer.parseInt(var15[0]);
+//            int var17 = Integer.parseInt(var15[1]);
+//
+//            int var18;
+//            for(var18 = var7.getRowNum() + 1; var18 < var16 + 1; ++var18) {
+//                Row var19 = var1.getRow(var18);
+//                if (var19 != null) {
+//                    var12 += (int)var1.getRow(var18).getHeightInPoints();
+//                }
+//            }
+//
+//            for(var18 = var8.getColumnIndex() + 1; var18 < var17 + 1; ++var18) {
+//                var11 += (int)var1.getColumnWidthInPixels(var18);
+//            }
+//        }
+//
+//        var9 += var11;
+//        var10 += var12;
+//        var5.put("width", var9);
+//        var5.put("height", var10);
+//        return var5;
+//    }
+//
+//    private void a23(Sheet var1, SXSSFWorkbook var2, List<Map<String, Object>> var3, Map<String, String> var4, Map<String, Object> var5) {
+//        Drawing var6 = var1.createDrawingPatriarch();
+//
+//        for(int var7 = 0; var7 < var3.size(); ++var7) {
+//            Map var8 = (Map)var3.get(var7);
+//            boolean var9 = false;
+//            boolean var10 = false;
+//            int var23 = Integer.valueOf(var8.get("cell").toString());
+//            int var22 = Integer.valueOf(var8.get("row").toString());
+//            String var11 = var8.get("text").toString();
+//            String var12 = var8.get("display").toString();
+//            Map var13 = this.a24(var1, var4, var22, var23);
+//            Integer var14 = (Integer)var13.get("width");
+//            Integer var15 = (Integer)var13.get("height");
+//            Object var16 = null;
+//            String var17 = (String)var8.get("layer_id");
+//            Object var18 = var5.get(var17);
+//            if (null != var18) {
+//                String[] var19 = String.valueOf(var18).split(",");
+//                var22 = Integer.parseInt(var19[0]);
+//                var23 = Integer.parseInt(var19[1]);
+//            }
+//
+//            byte[] var24;
+//            if ("img".equals(var12)) {
+//                var24 = this.a20(var11);
+//            } else {
+//                var24 = GoogleBarCodeUtils.createCodeToFile(var11, var12, var14, var15);
+//            }
+//
+//            String var25 = (String)var4.get(var22 + "," + var23);
+//            if (oConvertUtils.isNotEmpty(var25)) {
+//                String[] var20 = var25.split(",");
+//                XSSFClientAnchor var21 = new XSSFClientAnchor(0, 0, var14, var15, var23, var22, Integer.parseInt(var20[1]) + 1, Integer.parseInt(var20[0]) + 1);
+//                var6.createPicture(var21, var2.addPicture(var24, 5));
+//            } else {
+//                XSSFClientAnchor var26 = new XSSFClientAnchor(0, 0, var14, var15, var23, var22, var23 + 1, var22 + 1);
+//                var6.createPicture(var26, var2.addPicture(var24, 5));
+//            }
+//        }
+//
+//    }
+//
+//    private Map<String, Object> a4(JSONObject var1) {
+//        HashMap var2 = new HashMap();
+//        Iterator var3 = var1.keySet().iterator();
+//
+//        label60:
+//        while(true) {
+//            String var4;
+//            int var5;
+//            do {
+//                do {
+//                    do {
+//                        do {
+//                            if (!var3.hasNext()) {
+//                                return var2;
+//                            }
+//
+//                            var4 = (String)var3.next();
+//                        } while("cells".equals(var4));
+//                    } while("isDrag".equals(var4));
+//                } while("len".equals(var4));
+//
+//                var5 = Integer.parseInt(var4);
+//            } while(var5 < 0);
+//
+//            JSONObject var6 = var1.getJSONObject(var4).getJSONObject("cells");
+//            var6 = this.b1(var6);
+//            Iterator var7 = var6.keySet().iterator();
+//
+//            while(true) {
+//                String var8;
+//                String var10;
+//                Matcher var13;
+//                do {
+//                    JSONObject var9;
+//                    do {
+//                        do {
+//                            if (!var7.hasNext()) {
+//                                continue label60;
+//                            }
+//
+//                            var8 = (String)var7.next();
+//                        } while("-1".equals(var8));
+//
+//                        var9 = var6.getJSONObject(var8);
+//                    } while(!var9.containsKey("text"));
+//
+//                    var10 = var9.getString("text");
+//                    String var11 = "^[=][A-Z]{1,2}[^\\u4e00-\\u9fa5]+$";
+//                    Pattern var12 = Pattern.compile(var11);
+//                    var13 = var12.matcher(var10);
+//                } while(!ExcelUtil.isHave(CommonConstant.JIMUREPORT_FUNCTION, var10) && !var13.matches());
+//
+//                var2.put(var4 + "," + var8, var10);
+//            }
+//        }
+//    }
+//    private void a5(Map<String, JSONObject> var1, Workbook var2, Map<String, CellStyle> var3) {
+//        Iterator var4 = var1.entrySet().iterator();
+//
+//        while(true) {
+//            Map.Entry var5;
+//            JSONObject var7;
+//            XSSFCellStyle var8;
+//            do {
+//                do {
+//                    do {
+//                        CellStyle var6;
+//                        do {
+//                            if (!var4.hasNext()) {
+//                                return;
+//                            }
+//
+//                            var5 = (Map.Entry)var4.next();
+//                            var6 = (CellStyle)var3.get(var5.getKey());
+//                        } while(null != var6);
+//
+//                        var7 = (JSONObject)var5.getValue();
+//                    } while(var7 == null);
+//                } while("null".equals(var7));
+//
+//                var8 = (XSSFCellStyle)var2.createCellStyle();
+//            } while(null == var7);
+//
+//            String var9;
+//            if (!var7.containsKey("align")) {
+//                var8.setAlignment(HorizontalAlignment.LEFT);
+//            } else {
+//                var9 = var7.getString("align").toUpperCase();
+//                var8.setAlignment(HorizontalAlignment.valueOf(var9));
+//            }
+//
+//            if (null != var7 && !var7.containsKey("valign")) {
+//                var8.setVerticalAlignment(VerticalAlignment.valueOf("center".toUpperCase()));
+//            } else {
+//                var9 = var7.getString("valign").toUpperCase();
+//                if ("MIDDLE".equals(var9)) {
+//                    var9 = "center".toUpperCase();
+//                }
+//
+//                var8.setVerticalAlignment(VerticalAlignment.valueOf(var9));
+//            }
+//
+//            if (null == var7 || var7.containsKey("bgcolor")) {
+//                var9 = var7.getString("bgcolor");
+//                XSSFColor var10 = new XSSFColor();
+//                if (var9.indexOf("#") != -1 && var9.length() > 6) {
+//                    String var11 = var9.replaceAll("#", "");
+//                    if (var11.length() == 6) {
+//                        byte[] var12 = new byte[]{(byte)Integer.parseInt(var11.substring(0, 2), 16), (byte)Integer.parseInt(var11.substring(2, 4), 16), (byte)Integer.parseInt(var11.substring(4, 6), 16)};
+//                        var10.setRGB(var12);
+//                    }
+//                }
+//
+//                var8.setFillForegroundColor(var10);
+//                var8.setFillBackgroundColor(var10);
+//                var8.setFillPattern(FillPatternType.BIG_SPOTS);
+//            }
+//
+//            XSSFColor var14;
+//            if (null != var7 && var7.containsKey("font") || var7.containsKey("underline") || var7.containsKey("strike") || var7.containsKey("color")) {
+//                XSSFFont var18 = (XSSFFont)var2.createFont();
+//                JSONObject var17 = (JSONObject)var7.get("font");
+//                Object var22 = var7.get("underline");
+//                Object var25 = var7.get("strike");
+//                if (null != var17) {
+//                    if (var17.containsKey("name")) {
+//                        var18.setFontName(var17.getString("name"));
+//                    }
+//
+//                    if (var17.containsKey("italic")) {
+//                        var18.setItalic(true);
+//                    }
+//
+//                    if (var17.containsKey("size")) {
+//                        var18.setFontHeightInPoints(var17.getShort("size"));
+//                    }
+//
+//                    if (var17.containsKey("bold")) {
+//                        boolean var13 = var17.getBoolean("bold");
+//                        var18.setBold(var13);
+//                    }
+//                }
+//
+//                if (null != var22) {
+//                    var18.setUnderline((byte)1);
+//                }
+//
+//                if (null != var25) {
+//                    var18.setStrikeout(true);
+//                }
+//
+//                if (null != var7 && var7.containsKey("color")) {
+//                    String var27 = var7.getString("color");
+//                    var14 = new XSSFColor();
+//                    if (var27.length() > 6) {
+//                        if (var27.contains("rgb")) {
+//                            var27 = var27.replace("rgb", "").replace("(", "").replace(")", "");
+//                            String[] var15 = var27.split(",");
+//                            if (var15.length == 3) {
+//                                byte[] var16 = new byte[]{(byte)Integer.parseInt(var15[0]), (byte)Integer.parseInt(var15[1]), (byte)Integer.parseInt(var15[2])};
+//                                var14.setRGB(var16);
+//                            }
+//                        } else if (var27.contains("#")) {
+//                            byte[] var29 = new byte[]{(byte)Integer.parseInt(var27.substring(1, 3), 16), (byte)Integer.parseInt(var27.substring(3, 5), 16), (byte)Integer.parseInt(var27.substring(5, 7), 16)};
+//                            var14.setRGB(var29);
+//                        }
+//                    }
+//
+//                    var18.setColor(var14);
+//                }
+//
+//                var8.setFont(var18);
+//            }
+//
+//            if (var7.containsKey("border")) {
+//                JSONObject var20 = var7.getJSONObject("border");
+//                JSONArray var19 = var20.getJSONArray("right");
+//                JSONArray var24 = var20.getJSONArray("top");
+//                JSONArray var26 = var20.getJSONArray("left");
+//                JSONArray var28 = var20.getJSONArray("bottom");
+//                if (null != var24 && var24.size() > 1) {
+//                    var8.setBorderTop(BorderStyle.THIN);
+//                    var14 = this.b(var24.get(1).toString());
+//                    var8.setTopBorderColor(var14);
+//                }
+//
+//                if (null != var28 && var28.size() > 1) {
+//                    var8.setBorderBottom(BorderStyle.THIN);
+//                    var14 = this.b(var28.get(1).toString());
+//                    var8.setBottomBorderColor(var14);
+//                }
+//
+//                if (null != var26 && var26.size() > 1) {
+//                    var8.setBorderLeft(BorderStyle.THIN);
+//                    var14 = this.b(var26.get(1).toString());
+//                    var8.setLeftBorderColor(var14);
+//                }
+//
+//                if (null != var19 && var19.size() > 1) {
+//                    var8.setBorderRight(BorderStyle.THIN);
+//                    var14 = this.b(var19.get(1).toString());
+//                    var8.setRightBorderColor(var14);
+//                }
+//            }
+//
+//            if (var7.containsKey("format")) {
+//                DataFormat var23 = var2.createDataFormat();
+//                String var21 = var7.getString("format");
+//                if ("percent".equals(var21)) {
+//                    var8.setDataFormat(var23.getFormat("0.00%"));
+//                }
+//
+//                if ("rmb".equals(var21)) {
+//                    var8.setDataFormat(var23.getFormat("¥#,##0"));
+//                }
+//
+//                if ("usd".equals(var21)) {
+//                    var8.setDataFormat(var23.getFormat("$#,##0"));
+//                }
+//
+//                if ("eur".equals(var21)) {
+//                    var8.setDataFormat(var23.getFormat("€#,##0"));
+//                }
+//            }
+//
+//            var8.setWrapText(true);
+//            var3.put(var5.getKey().toString(), var8);
+//        }
+//    }
+//
+//    public XSSFColor b(String var1) {
+//        XSSFColor var2 = new XSSFColor();
+//        if (var1.contains("rgb")) {
+//            var1 = var1.replace("rgb", "").replace("(", "").replace(")", "");
+//            String[] var3 = var1.split(",");
+//            if (var3.length == 3) {
+//                byte[] var4 = new byte[]{(byte)Integer.parseInt(var3[0]), (byte)Integer.parseInt(var3[1]), (byte)Integer.parseInt(var3[2])};
+//                var2.setRGB(var4);
+//            }
+//        } else if (var1.contains("#") && var1.length() > 6) {
+//            byte[] var5 = new byte[]{(byte)Integer.parseInt(var1.substring(1, 3), 16), (byte)Integer.parseInt(var1.substring(3, 5), 16), (byte)Integer.parseInt(var1.substring(5, 7), 16)};
+//            var2.setRGB(var5);
+//        }
+//
+//        return var2;
+//    }
+//
+//    private JSONObject b1(JSONObject var1) {
+//        ArrayList var2 = new ArrayList();
+//        Iterator var3 = var1.keySet().iterator();
+//
+//        while(var3.hasNext()) {
+//            String var4 = (String)var3.next();
+//            if (oConvertUtils.isNotEmpty(var4) && !"NaN".equals(var4) && !"len".equals(var4)) {
+//                var2.add(Integer.parseInt(var4));
+//            }
+//        }
+//
+//        Collections.sort(var2);
+//        JSONArray var9 = new JSONArray();
+//        JSONObject var5 = new JSONObject(true);
+//        Iterator var6 = var2.iterator();
+//
+//        while(var6.hasNext()) {
+//            Integer var7 = (Integer)var6.next();
+//            JSONObject var8 = var1.getJSONObject(String.valueOf(var7));
+//            var9.add(var8);
+//            var5.put(String.valueOf(var7), var8);
+//        }
+//
+//        return var5;
+//    }
+//
+//    private void a5(SXSSFWorkbook var1, JSONObject var2, Map var3, SXSSFSheet var4, Map<String, String> var5, Map<String, JSONObject> var6, Map<String, List<String>> var7, List<Map<String, Object>> var8, Map<String, Object> var9, Map<String, Object> var10, Map<String, String> var11, Integer var12, Map<String, CellStyle> var13) {
+//        var2 = this.b1(var2);
+//        Iterator var14 = var2.keySet().iterator();
+//
+//        while(true) {
+//            String var15;
+//            int var16;
+//            do {
+//                do {
+//                    do {
+//                        do {
+//                            if (!var14.hasNext()) {
+//                                return;
+//                            }
+//
+//                            var15 = (String)var14.next();
+//                        } while("cells".equals(var15));
+//                    } while("isDrag".equals(var15));
+//                } while("len".equals(var15));
+//
+//                var16 = Integer.parseInt(var15);
+//            } while(var16 < 0);
+//
+//            SXSSFRow var17 = var4.createRow(Integer.parseInt(var15));
+//            if (var2.getJSONObject(var15).containsKey("height")) {
+//                Integer var18 = var2.getJSONObject(var15).getInteger("height");
+//                var17.setHeightInPoints((float)var18 - 9.5F);
+//            }
+//
+//            JSONObject var24 = var2.getJSONObject(var15).getJSONObject("cells");
+//            var24 = this.b1(var24);
+//            Iterator var19 = var24.keySet().iterator();
+//
+//            while(var19.hasNext()) {
+//                String var20 = (String)var19.next();
+//                if (!"-1".equals(var20)) {
+//                    JSONObject var21 = var24.getJSONObject(var20);
+//                    SXSSFCell var22 = var17.createCell(Integer.parseInt(var20));
+//                    if (var21.containsKey("style") && var2.size() < this.jmBaseConfig.excelStyleRow && var12 == 1) {
+//                        String var23 = var21.getString("style");
+//                        var22.setCellStyle((CellStyle)var13.get(var23));
+//                    }
+//
+//                    if (var2.size() >= this.jmBaseConfig.excelStyleRow) {
+//                        var22.setCellStyle((CellStyle)var13.get("generalStyle"));
+//                    }
+//
+//                    this.a6(var1, var21, var15, var20, var4, var22, var3, var11, var8, var5, var9, var13, var6, var7, var17, var10);
+//                }
+//            }
+//        }
+//    }
+//
+//    private void a6(Workbook var1, JSONObject var2, String var3, String var4, Sheet var5, Cell var6, Map var7, Map var8, List var9, Map var10, Map var11, Map<String, CellStyle> var12, Map var13, Map var14, Row var15, Map var16) {
+//        String var17 = var2.getString("merge");
+//        String var18;
+//        if (var2.containsKey("virtual")) {
+//            var18 = var2.getString("virtual");
+//            if (var16.get(var18) == null) {
+//                var16.put(var18, var3 + "," + var4);
+//            }
+//        }
+//
+//        if (var17 != null && !"".equals(var17)) {
+//            String[] var32 = a9(var17, "[", "]").split(",");
+//            int var19 = Integer.parseInt(var32[0]);
+//            int var20 = Integer.parseInt(var32[1]);
+//            int var21 = Integer.parseInt(var3);
+//            int var22 = var19 + var21;
+//            int var23 = Integer.parseInt(var4);
+//            int var24 = var20 + var23;
+//            CellRangeAddress var25 = new CellRangeAddress(var21, var22, var23, var24);
+//
+//            try {
+//                var5.addMergedRegion(var25);
+//            } catch (IllegalStateException var30) {
+//                a.warn("单元格合并失败,原因重复单元格或者一个单元格不允许重复合并", var30.getMessage());
+//            } catch (IllegalArgumentException var31) {
+//                a.warn("单元格合并失败,原因重复单元格或者一个单元格不允许重复合并", var31.getMessage());
+//            }
+//
+//            var8.put(var21 + "," + var23, var22 + "," + var24);
+//        }
+//
+//        String var35;
+//        String var37;
+//        if (var2.containsKey("display")) {
+//            var18 = var2.getString("display");
+//            if ("barcode".equals(var18) || "qrcode".equals(var18) || "img".equals(var18)) {
+//                HashMap var33 = new HashMap();
+//                var35 = var2.getString("display");
+//                var37 = var2.getString("text");
+//                String var38 = var2.getString("style");
+//                String var41 = var2.getString("rendered");
+//                var33.put("style", (JSONObject)var7.get(var38));
+//                var33.put("text", var37);
+//                var33.put("display", var35);
+//                var33.put("row", var6.getRowIndex());
+//                var33.put("cell", var6.getColumnIndex());
+//                var33.put("layer_id", var41);
+//                var9.add(var33);
+//            }
+//        }
+//
+//        if (var2.containsKey("text")) {
+//            var18 = var2.getString("text");
+//            String var34 = "";
+//
+//            try {
+//                var34 = this.a8(var2, var7, var18);
+//            } catch (Exception var29) {
+//                var29.printStackTrace();
+//            }
+//
+//            if (var18.contains("|")) {
+//                Object var36 = var2.get("lineStart");
+//                if (null != var36) {
+//                    var10.put(var3 + "," + var4, var36.toString());
+//                    var37 = var2.getString("style");
+//                    var13.put(var3 + "," + var4, (JSONObject)var7.get(var37));
+//                    ArrayList var39 = new ArrayList();
+//                    var39.add(var3);
+//                    var39.add(var4);
+//                    var14.put(var3, var39);
+//                }
+//            }
+//
+//            var35 = "";
+//            var37 = var2.getString("style");
+//            if (oConvertUtils.isNotEmpty(var37)) {
+//                JSONObject var40 = (JSONObject)var7.get(var37);
+//                if (var40.containsKey("format")) {
+//                    var35 = var40.getString("format");
+//                }
+//            }
+//
+//            if (oConvertUtils.isNotEmpty(var35) && oConvertUtils.isNotEmpty(var18) && ExcelUtil.isHave(JmConst.NUMBER_FUNCTION, var35)) {
+//                DataFormat var42 = var1.createDataFormat();
+//                CellStyle var43 = (CellStyle)var12.get(var37);
+//                String var44 = "0.00";
+//                Object var45 = var2.get("decimalPlaces");
+//                if (oConvertUtils.isNotEmpty(var45) && "number".equals(var35)) {
+//                    Integer var26 = Integer.valueOf(var45.toString());
+//                    if (var26 <= 0) {
+//                        var44 = "0";
+//                    } else {
+//                        String var27 = "0.";
+//
+//                        for(int var28 = 0; var28 < var26; ++var28) {
+//                            var27 = var27 + "0";
+//                        }
+//
+//                        var44 = var27;
+//                    }
+//
+//                    var43.setDataFormat(var42.getFormat(var44));
+//                    var6.setCellStyle(var43);
+//                }
+//
+//                var6.setCellValue(Double.parseDouble(var18));
+//                return;
+//            }
+//
+//            var6.setCellValue(oConvertUtils.isNotEmpty(var34) ? var34 : var18);
+//        }
+//    }
+//    private void a7(XSSFWorkbook var1, JSONObject var2, Map var3, XSSFSheet var4, Map<String, String> var5, Map<String, JSONObject> var6, Map<String, List<String>> var7, List<Map<String, Object>> var8, Map<String, Object> var9, Map<String, Object> var10, Map<String, String> var11, Integer var12, Map<String, CellStyle> var13) {
+//        var2 = this.b1(var2);
+//        Iterator var14 = var2.keySet().iterator();
+//        boolean var15 = true;
+//
+//        while(true) {
+//            String var16;
+//            int var17;
+//            do {
+//                do {
+//                    do {
+//                        do {
+//                            if (!var14.hasNext()) {
+//                                return;
+//                            }
+//
+//                            var16 = (String)var14.next();
+//                        } while("cells".equals(var16));
+//                    } while("isDrag".equals(var16));
+//                } while("len".equals(var16));
+//
+//                var17 = Integer.parseInt(var16);
+//            } while(var17 < 0);
+//
+//            XSSFRow var18 = var4.createRow(Integer.parseInt(var16));
+//            if (var2.getJSONObject(var16).containsKey("height")) {
+//                Integer var19 = var2.getJSONObject(var16).getInteger("height");
+//                var18.setHeightInPoints((float)var19 - 9.5F);
+//            }
+//
+//            JSONObject var25 = var2.getJSONObject(var16).getJSONObject("cells");
+//            var25 = this.b1(var25);
+//            Iterator var20 = var25.keySet().iterator();
+//
+//            while(var20.hasNext()) {
+//                String var21 = (String)var20.next();
+//                if (!"-1".equals(var21)) {
+//                    JSONObject var22 = var25.getJSONObject(var21);
+//                    XSSFCell var23 = var18.createCell(Integer.parseInt(var21));
+//                    if (var22.containsKey("style")) {
+//                        String var24 = var22.getString("style");
+//                        var23.setCellStyle((CellStyle)var13.get(var24));
+//                    }
+//
+//                    this.a6(var1, var22, var16, var21, var4, var23, var3, var11, var8, var5, var9, var13, var6, var7, var18, var10);
+//                }
+//            }
+//        }
+//    }
+//
+//    public String a8(JSONObject var1, Map var2, String var3) throws Exception {
+//        String var4 = var1.getString("style");
+//        JSONObject var5 = (JSONObject)var2.get(var4);
+//        if (null != var5 && var4 != null && !"null".equals(var4)) {
+//            Object var6 = var5.get("format");
+//            if (null != var6) {
+//                SimpleDateFormat var7 = ExcelUtil.getFormat(var6.toString());
+//                if (null != var7 && oConvertUtils.isNotEmpty(var3)) {
+//                    SimpleDateFormat var8 = ExcelUtil.getDataFormat(var3);
+//                    if (null != var8) {
+//                        Date var9 = var8.parse(var3);
+//
+//                        try {
+//                            String var10 = var7.format(var9);
+//                            a.info("日期格式化之后的文本:" + var10);
+//                            return var10;
+//                        } catch (Exception var11) {
+//                            a.info("日期格式不正确:" + var11.getMessage());
+//                        }
+//                    } else {
+//                        String var12 = d.a(var3, var7);
+//                        if (oConvertUtils.isNotEmpty(var12)) {
+//                            return var12;
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//
+//        return "";
+//    }
+//
+//    public static String a9(String var0, String var1, String var2) {
+//        int var3 = var0.indexOf(var1);
+//        int var4 = var0.indexOf(var2);
+//        if (var3 < 0) {
+//            return "";
+//        } else if (var4 < 0) {
+//            return "";
+//        } else {
+//            String var5 = var0.substring(var3, var4).substring(var1.length());
+//            return var5;
+//        }
+//    }
+//
+//    private void a10(JSONObject var1, Sheet var2, SXSSFWorkbook var3, Map var4, Map<String, String> var5, Map<String, JSONObject> var6) {
+//        Iterator var7 = var1.keySet().iterator();
+//
+//        while(true) {
+//            String var8;
+//            JSONObject var9;
+//            do {
+//                do {
+//                    do {
+//                        do {
+//                            if (!var7.hasNext()) {
+//                                return;
+//                            }
+//
+//                            var8 = (String)var7.next();
+//                        } while("len".equals(var8));
+//                    } while("cells".equals(var8));
+//                } while("isDrag".equals(var8));
+//
+//                var9 = var1.getJSONObject(var8).getJSONObject("cells");
+//            } while(null == var9);
+//
+//            Iterator var10 = var9.keySet().iterator();
+//
+//            while(var10.hasNext()) {
+//                String var11 = (String)var10.next();
+//                JSONObject var12 = var9.getJSONObject(var11);
+//                if (var12.containsKey("merge")) {
+//                    String var13 = var12.getString("merge");
+//                    String[] var14 = a9(var13, "[", "]").split(",");
+//                    int var15 = Integer.parseInt(var14[0]);
+//                    int var16 = Integer.parseInt(var14[1]);
+//                    if (var13 != null && !"".equals(var13)) {
+//                        JSONObject var17 = new JSONObject();
+//                        int var18 = Integer.parseInt(var8);
+//                        int var19 = var15 + var18;
+//                        int var20 = Integer.parseInt(var11);
+//                        int var21 = var16 + var20;
+//                        CellRangeAddress var22 = new CellRangeAddress(var18, var19, var20, var21);
+//                        if (var12.containsKey("style")) {
+//                            String var23 = var12.getString("style");
+//                            JSONObject var24 = (JSONObject)var4.get(var23);
+//                            if (null != var24 && var24.containsKey("border")) {
+//                                JSONObject var25 = var24.getJSONObject("border");
+//                                Iterator var26 = var25.keySet().iterator();
+//                                JSONArray var27 = var25.getJSONArray("right");
+//                                JSONArray var28 = var25.getJSONArray("top");
+//                                if (null != var28 && var28.size() > 1) {
+//                                    RegionUtil.setBorderTop(BorderStyle.THIN, var22, var2);
+//                                    var17.put("top", var28.get(1).toString());
+//                                }
+//
+//                                if (null != var27 && var27.size() > 1) {
+//                                    RegionUtil.setBorderRight(BorderStyle.THIN, var22, var2);
+//                                    var17.put("right", var27.get(1).toString());
+//                                }
+//
+//                                JSONArray var29 = var25.getJSONArray("left");
+//                                if (null != var29 && var29.size() > 1) {
+//                                    RegionUtil.setBorderLeft(BorderStyle.THIN, var22, var2);
+//                                    var17.put("left", var29.get(1).toString());
+//                                }
+//
+//                                JSONArray var30 = var25.getJSONArray("bottom");
+//                                if (null != var30 && var30.size() > 1) {
+//                                    RegionUtil.setBorderBottom(BorderStyle.THIN, var22, var2);
+//                                    var17.put("bottom", var30.get(1).toString());
+//                                }
+//                            }
+//
+//                            String var31 = var18 + "," + var19 + "," + var20 + "," + var21;
+//                            var6.put(var31, var17);
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//    }
+//
+//    private void a11(Sheet var1, SXSSFWorkbook var2, Map<String, JSONObject> var3) {
+//        Iterator var4 = var3.keySet().iterator();
+//
+//        while(true) {
+//            JSONObject var6;
+//            String[] var7;
+//            do {
+//                if (!var4.hasNext()) {
+//                    return;
+//                }
+//
+//                String var5 = (String)var4.next();
+//                var6 = JSONObject.parseObject(String.valueOf(var3.get(var5)));
+//                var7 = var5.split(",");
+//            } while(var7.length != 4);
+//
+//            int var8 = Integer.valueOf(var7[0]);
+//            int var9 = Integer.valueOf(var7[1]);
+//            int var10 = Integer.valueOf(var7[2]);
+//            int var11 = Integer.valueOf(var7[3]);
+//
+//            for(int var12 = var8; var12 < var9 + 1; ++var12) {
+//                Row var13 = var1.getRow(var12);
+//
+//                for(int var14 = var10; var14 < var11 + 1; ++var14) {
+//                    try {
+//                        Cell var15 = var13.getCell(var14);
+//                        if (null != var15) {
+//                            XSSFCellStyle var16 = (XSSFCellStyle)var15.getCellStyle();
+//                            Object var17 = var6.get("top");
+//                            Object var18 = var6.get("left");
+//                            Object var19 = var6.get("right");
+//                            Object var20 = var6.get("bottom");
+//                            XSSFColor var21;
+//                            if (null != var17) {
+//                                var21 = this.b(var17.toString());
+//                                var16.setTopBorderColor(var21);
+//                            }
+//
+//                            if (null != var18) {
+//                                var21 = this.b(var18.toString());
+//                                var16.setLeftBorderColor(var21);
+//                            }
+//
+//                            if (null != var19) {
+//                                var21 = this.b(var19.toString());
+//                                var16.setRightBorderColor(var21);
+//                            }
+//
+//                            if (null != var20) {
+//                                var21 = this.b(var20.toString());
+//                                var16.setBottomBorderColor(var21);
+//                            }
+//
+//                            var15.setCellStyle(var16);
+//                        }
+//                    } catch (NullPointerException var22) {
+//                        a.debug("单元格为空", var22.getMessage());
+//                    }
+//                }
+//            }
+//        }
+//    }
+//
+//    private void a12(Workbook var1, Sheet var2, Map<String, String> var3, Map<String, String> var4, Map<String, JSONObject> var5, Map<String, List<String>> var6) {
+//        Set var7 = var6.keySet();
+//        Iterator var8 = var7.iterator();
+//
+//        while(true) {
+//            String var11;
+//            String var12;
+//            Cell var13;
+//            String var14;
+//            String var15;
+//            String var16;
+//            JSONObject var17;
+//            Row var18;
+//            int var19;
+//            int var20;
+//            do {
+//                do {
+//                    if (!var8.hasNext()) {
+//                        return;
+//                    }
+//
+//                    String var9 = (String)var8.next();
+//                    List var10 = (List)var6.get(var9);
+//                    var11 = (String)var10.get(0);
+//                    var12 = (String)var10.get(1);
+//                    var13 = var2.getRow(Integer.parseInt(var11)).getCell(Integer.parseInt(var12));
+//                    var14 = ExcelUtil.getCellValueByCell(var13);
+//                } while(!var14.contains("|"));
+//
+//                var15 = (String)var3.get(var13.getRowIndex() + "," + var13.getColumnIndex());
+//                var16 = (String)var4.get(var13.getRowIndex() + "," + var13.getColumnIndex());
+//                var17 = (JSONObject)var5.get(var13.getRowIndex() + "," + var13.getColumnIndex());
+//                var18 = var2.getRow(Integer.parseInt(var11));
+//                var19 = (int)var13.getSheet().getColumnWidthInPixels(var13.getColumnIndex());
+//                var20 = (int)var18.getHeightInPoints();
+//            } while(!oConvertUtils.isNotEmpty(var15));
+//
+//            int var21 = 0;
+//            int var22 = 0;
+//            int var23 = Integer.parseInt(var11);
+//            int var24 = Integer.parseInt(var12);
+//            if (oConvertUtils.isNotEmpty(var16)) {
+//                String[] var25 = var16.split(",");
+//                int var26 = Integer.parseInt(var25[0]);
+//                int var27 = Integer.parseInt(var25[1]);
+//                var23 = var26;
+//                var24 = var27;
+//
+//                int var28;
+//                for(var28 = var18.getRowNum() + 1; var28 < var26 + 1; ++var28) {
+//                    Row var29 = var2.getRow(var28);
+//                    if (var29 != null) {
+//                        var22 += (int)var2.getRow(var28).getHeightInPoints();
+//                    }
+//                }
+//
+//                for(var28 = var13.getColumnIndex() + 1; var28 < var27 + 1; ++var28) {
+//                    var21 += (int)var2.getColumnWidthInPixels(var28);
+//                }
+//            }
+//
+//            var19 += var21;
+//            var20 += var22;
+//            var13.setCellValue("");
+//            if (var2 instanceof SXSSFSheet) {
+//                try {
+//                    byte[] var32 = ExcelUtil.getImage(var14, var15, var19, var20, var17);
+//                    Drawing var33 = var2.createDrawingPatriarch();
+//                    XSSFClientAnchor var34 = new XSSFClientAnchor(12700, 12700, -12700, -12700, Integer.parseInt(var12), Integer.parseInt(var11), var24 + 1, var23 + 1);
+//                    var34.setAnchorType(ClientAnchor.AnchorType.MOVE_AND_RESIZE);
+//                    var33.createPicture(var34, var1.addPicture(var32, 5));
+//                } catch (IOException var31) {
+//                    var31.printStackTrace();
+//                }
+//            }
+//
+//            if (var2 instanceof XSSFSheet) {
+//                try {
+//                    a13(var14, var1, var2, var19, var20, var15, Integer.parseInt(var11), Integer.parseInt(var12), var23 + 1, var24 + 1, var17);
+//                } catch (Exception var30) {
+//                    var30.printStackTrace();
+//                }
+//            }
+//        }
+//    }
+//
+//    public static void a13(String var0, Workbook var1, Sheet var2, int var3, int var4, String var5, int var6, int var7, int var8, int var9, JSONObject var10) {
+//        String[] var11 = var0.split("\\|");
+//        int var12 = var11.length;
+//        Cell var13 = var2.getRow(var6).getCell(var7);
+//        CellStyle var14 = var13.getCellStyle();
+//        var14.setWrapText(true);
+//        Font var15 = var1.getFontAt(var14.getFontIndex());
+//        var15.setFontName("Microsoft YaHei");
+//        var15.setFontHeightInPoints((short)10);
+//        CreationHelper var16 = var1.getCreationHelper();
+//        String var17 = "";
+//        if (null != var10 && var10.containsKey("color")) {
+//            var17 = var10.getString("color");
+//        }
+//
+//        String var18;
+//        if (var5.equals("lefttop")) {
+//            var18 = a14(var11, var3, var4);
+//            var13.setCellValue(var18);
+//            Drawing var19 = var2.createDrawingPatriarch();
+//            if (var11.length == 2) {
+//                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, 0, 0, var7, var6, var9, var8), var5, var17);
+//            } else if (var11.length == 3) {
+//                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, 0, -((int)((double)var4 / 2.5D)) * 12700, var7, var6, var9, var8), var5, var17);
+//                ExcelUtil.paintLine(var19, var19.createAnchor(0, 0, -var3 / 4 * 12700, 0, var7, var6, var9, var8), var5, var17);
+//            }
+//        } else {
+//            var18 = b2(var11, var3, var4);
+//            var13.setCellValue(var18);
+//            a15(var2, var16, var7, var6, var9, var8, var4, var3, var12 - 1, var5, var17);
+//        }
+//
+//        var14.setFont(var15);
+//        var13.setCellStyle(var14);
+//    }
+//
+//    public static void a15(Sheet var0, CreationHelper var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, String var9, String var10) {
+//        Drawing var11;
+//        ClientAnchor var12;
+//        if (var8 == 1) {
+//            var11 = var0.createDrawingPatriarch();
+//            var12 = var1.createClientAnchor();
+//            var12.setCol1(var2);
+//            var12.setRow1(var3);
+//            var12.setCol2(var4);
+//            var12.setRow2(var5);
+//            ExcelUtil.paintLine(var11, var12, var9, var10);
+//        } else if (var8 == 2) {
+//            var11 = var0.createDrawingPatriarch();
+//            var12 = var1.createClientAnchor();
+//            var12.setCol1(var2);
+//            var12.setRow1(var3);
+//            var12.setCol2(var4);
+//            var12.setRow2(var5);
+//            var12.setDx2(-var7 / 4 * 12700);
+//            ExcelUtil.paintLine(var11, var12, var9, var10);
+//            ClientAnchor var13 = var1.createClientAnchor();
+//            Drawing var14 = var0.createDrawingPatriarch();
+//            var13.setCol1(var2);
+//            var13.setRow1(var3);
+//            var13.setCol2(var4);
+//            var13.setRow2(var5);
+//            var13.setDy1((int)((double)var6 / 2.5D) * 12700);
+//            ExcelUtil.paintLine(var14, var13, var9, var10);
+//        }
+//
+//    }
+//
+//    public static String b2(String[] var0, int var1, int var2) {
+//        int var3 = var0.length;
+//        if (var3 < 1 && var3 > 3) {
+//            return "";
+//        } else {
+//            int var4 = var1 / 4;
+//            if (var3 == 2) {
+//                var4 -= var0[1].length();
+//                if (var1 < 240) {
+//                    if (var0[1].length() > 3) {
+//                        var4 -= var0[1].length();
+//                    }
+//
+//                    var4 -= var0[1].length();
+//                }
+//            } else {
+//                if (var1 < 240) {
+//                    if (var0[2].length() > 3) {
+//                        var4 -= var0[2].length();
+//                    }
+//
+//                    var4 -= var0[2].length();
+//                }
+//
+//                var4 -= var0[2].length();
+//            }
+//
+//            String var5 = "";
+//            int var6 = var2 / 20;
+//            var5 = var5 + var0[0];
+//            int var7;
+//            if (var3 == 2) {
+//                for(var7 = 0; var7 < var6; ++var7) {
+//                    var5 = var5 + "\n";
+//                }
+//
+//                for(var7 = 0; var7 < var4; ++var7) {
+//                    var5 = var5 + " ";
+//                }
+//
+//                var5 = var5 + var0[1];
+//            }
+//
+//            if (var3 == 3) {
+//                var7 = var1 / 4;
+//                var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
+//                if (var1 < 150) {
+//                    var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
+//                }
+//
+//                if (var0[1].length() > 2) {
+//                    if (var1 < 260) {
+//                        var7 -= var0[1].length();
+//                    }
+//
+//                    var7 -= var0[1].length();
+//                }
+//
+//                if (var0[0].length() > 3) {
+//                    var7 -= var0[0].length();
+//                }
+//
+//                String var8 = " ";
+//
+//                int var9;
+//                for(var9 = 0; var9 < var7; ++var9) {
+//                    var8 = var8 + " ";
+//                }
+//
+//                var5 = var5 + var8 + var0[1];
+//
+//                for(var9 = 0; var9 < var6; ++var9) {
+//                    var5 = var5 + "\n";
+//                }
+//
+//                for(var9 = 0; var9 < var7; ++var9) {
+//                    var5 = var5 + " ";
+//                }
+//
+//                var5 = var5 + var0[2];
+//            }
+//
+//            return var5;
+//        }
+//    }
+//
+//    public static String a14(String[] var0, int var1, int var2) {
+//        int var3 = var0.length;
+//        if (var3 < 1 && var3 > 3) {
+//            return "";
+//        } else {
+//            int var4 = var1 / 4;
+//            if (var3 == 2) {
+//                var4 -= var0[1].length();
+//                if (var1 < 150) {
+//                    var4 -= var0[1].length() * 3;
+//                }
+//            } else {
+//                if (var1 < 186) {
+//                    var4 -= var0[2].length();
+//                }
+//
+//                if (var1 < 160) {
+//                    if (var0[2].length() == 2) {
+//                        var4 -= var0[2].length() * 2;
+//                    } else if (var0[2].length() > 2) {
+//                        var4 -= var0[2].length();
+//                    }
+//                }
+//
+//                var4 -= var0[2].length();
+//                if (var0[2].length() > 3) {
+//                    var4 -= var0[2].length();
+//                }
+//            }
+//
+//            String var5 = "";
+//
+//            int var6;
+//            for(var6 = 0; var6 < var4; ++var6) {
+//                var5 = var5 + " ";
+//            }
+//
+//            var6 = var2 / 20;
+//            if (var3 == 2) {
+//                var5 = var5 + var0[1];
+//            } else {
+//                var5 = var5 + var0[2];
+//            }
+//
+//            int var7;
+//            for(var7 = 0; var7 < var6; ++var7) {
+//                var5 = var5 + "\n";
+//            }
+//
+//            if (var3 == 2) {
+//                var5 = var5 + var0[0];
+//            }
+//
+//            if (var3 == 3) {
+//                var5 = var5 + var0[0];
+//                var7 = var1 / 4;
+//                if (var1 < 270) {
+//                    var7 = var7 - var0[0].length() * 2 - var0[1].length() * 2;
+//                }
+//
+//                if (var1 < 160) {
+//                    var7 = var7 - var0[0].length() - var0[1].length();
+//                }
+//
+//                var7 = var7 - var0[0].length() - var0[1].length();
+//                if (var0[0].length() > 3) {
+//                    var7 -= var0[0].length();
+//                }
+//
+//                if (var0[1].length() > 3) {
+//                    if (var1 > 270) {
+//                        var7 -= var0[1].length() * 2;
+//                    } else {
+//                        var7 -= var0[1].length();
+//                    }
+//                }
+//
+//                String var8 = "";
+//
+//                for(int var9 = 0; var9 < var7; ++var9) {
+//                    var8 = var8 + " ";
+//                }
+//
+//                var5 = var5 + var8 + var0[1];
+//            }
+//
+//            return var5;
+//        }
+//    }
+//
+//    private void a16(Sheet var1, XSSFWorkbook var2, JSONArray var3, Map<String, String> var4, Map<String, Object> var5) {
+//        Drawing var6 = var1.createDrawingPatriarch();
+//        HttpURLConnection var7 = null;
+//
+//        try {
+//            for(int var9 = 0; var9 < var3.size(); ++var9) {
+//                boolean var10 = false;
+//                boolean var11 = false;
+//                String var12 = "";
+//                String var13 = "";
+//                String var14 = "";
+//                JSONObject var15 = var3.getJSONObject(var9);
+//                int var37 = Integer.valueOf(var15.getString("col"));
+//                int var36 = Integer.valueOf(var15.getString("row"));
+//                var13 = (String)var15.get("width");
+//                var14 = (String)var15.get("height");
+//                var12 = (String)var15.get("src");
+//                String var16 = var15.getString("layer_id");
+//                Object var17 = var15.get("colspan");
+//                Object var18 = var15.get("rowspan");
+//                Object var19 = var5.get(var16);
+//                if (null != var19) {
+//                    String[] var20 = String.valueOf(var19).split(",");
+//                    var36 = Integer.parseInt(var20[0]);
+//                    var37 = Integer.parseInt(var20[1]);
+//                }
+//
+//                if (var14.contains("px") && var13.contains("px")) {
+//                    var14 = var14.substring(0, var14.lastIndexOf("px"));
+//                    var13 = var13.substring(0, var13.lastIndexOf("px"));
+//                }
+//
+//                byte[] var8;
+//                if (var12.contains("http")) {
+//                    URL var38 = new URL(var12);
+//                    if (var12.contains("https")) {
+//                        var8 = b.a(var12);
+//                    } else {
+//                        var7 = (HttpURLConnection)var38.openConnection();
+//                        var7.setRequestMethod("GET");
+//                        var7.setConnectTimeout(50000);
+//                        InputStream var21 = var7.getInputStream();
+//                        var8 = a21(var21);
+//                    }
+//                } else {
+//                    var8 = this.c1(var12);
+//                }
+//
+//                boolean var39 = false;
+//                String var41 = (String)var4.get(var36 + "," + var37);
+//                boolean var22 = false;
+//                int var40;
+//                int var42;
+//                if (null != var17 && null != var18) {
+//                    var42 = var36 + Integer.parseInt(var18.toString());
+//                    var40 = var37 + Integer.parseInt(var17.toString());
+//                } else {
+//                    if (oConvertUtils.isNotEmpty(var41)) {
+//                        String var23 = var41.split(",")[0];
+//                        var42 = Integer.parseInt(var23);
+//                    } else {
+//                        var42 = var36 + Integer.parseInt(String.format("%.0f", Float.parseFloat(var14) / 25.0F));
+//                    }
+//
+//                    Integer var43 = this.a22(var1, var36, (float)Integer.parseInt(var14));
+//                    if (var43 > 0) {
+//                        var42 = var43;
+//                    } else {
+//                        var42 += var36;
+//                    }
+//
+//                    var40 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var13) / 100.0F));
+//                    var40 += var37;
+//                }
+//
+//                Object var44 = var15.get("isBackend");
+//                if (null != var44 && (Boolean)var44) {
+//                    int var45 = var2.addPicture(var8, 6);
+//                    XSSFPictureData var25 = (XSSFPictureData)var2.getAllPictures().get(var45);
+//
+//                    try {
+//                        for(int var26 = 0; var26 < var2.getNumberOfSheets(); ++var26) {
+//                            XSSFSheet var46 = var2.getSheetAt(var26);
+//                            PackagePartName var28 = var25.getPackagePart().getPartName();
+//                            String var29 = XSSFRelation.IMAGES.getRelation();
+//                            PackageRelationship var30 = var46.getPackagePart().addRelationship(var28, TargetMode.EXTERNAL, var29, (String)null);
+//                            var46.getCTWorksheet().addNewPicture().setId(var30.getId());
+//                        }
+//                    } catch (Exception var31) {
+//                        XSSFClientAnchor var27 = new XSSFClientAnchor(0, 0, Integer.parseInt(var13), Integer.parseInt(var14), var37, var36, var40, var42);
+//                        var6.createPicture(var27, var2.addPicture(var8, 5));
+//                    }
+//                } else {
+//                    XSSFClientAnchor var24 = new XSSFClientAnchor(0, 0, Integer.parseInt(var13), Integer.parseInt(var14), var37, var36, var40, var42);
+//                    var6.createPicture(var24, var2.addPicture(var8, 5));
+//                }
+//            }
+//        } catch (MalformedURLException var32) {
+//            var32.printStackTrace();
+//        } catch (ProtocolException var33) {
+//            var33.printStackTrace();
+//        } catch (IOException var34) {
+//            var34.printStackTrace();
+//        } catch (Exception var35) {
+//            var35.printStackTrace();
+//        }
+//
+//    }
+//
+//    private void a17(Sheet var1, SXSSFWorkbook var2, JSONArray var3, Map<String, Object> var4, JSONObject var5, JSONObject var6) {
+//        Drawing var7 = var1.createDrawingPatriarch();
+//        Object var8 = null;
+//
+//        try {
+//            for(int var9 = 0; var9 < var3.size(); ++var9) {
+//                boolean var10 = false;
+//                boolean var11 = false;
+//                String var12 = "";
+//                String var13 = "";
+//                String var14 = "";
+//                JSONObject var15 = var3.getJSONObject(var9);
+//                int var33 = Integer.valueOf(var15.getString("col"));
+//                int var32 = Integer.valueOf(var15.getString("row"));
+//                var13 = (String)var15.get("width");
+//                var14 = (String)var15.get("height");
+//                var12 = (String)var15.get("url");
+//                String var16 = var15.getString("layer_id");
+//                Object var17 = var4.get(var16);
+//                if (null != var17) {
+//                    String[] var18 = String.valueOf(var17).split(",");
+//                    var32 = Integer.parseInt(var18[0]);
+//                    var33 = Integer.parseInt(var18[1]);
+//                }
+//
+//                byte[] var34 = new byte[0];
+//                var34 = oConvertUtils.decodeBase64(var12);
+//                int var20 = 0;
+//                float var21 = Float.parseFloat(var14);
+//
+//                for(int var22 = var32; var22 < var32 + 99; ++var22) {
+//                    Row var23 = var1.getRow(var22);
+//                    if (var23 == null) {
+//                        break;
+//                    }
+//
+//                    ++var20;
+//                    var21 -= var23.getHeightInPoints();
+//                }
+//
+//                Object var35 = var15.get("colspan");
+//                Object var36 = var15.get("rowspan");
+//                boolean var24 = false;
+//                int var37;
+//                if (null != var35 && null != var36) {
+//                    var20 = var32 + Integer.parseInt(var36.toString());
+//                    var37 = var33 + Integer.parseInt(var35.toString());
+//                } else {
+//                    var20 += Integer.parseInt(String.format("%.0f", var21 / 25.0F));
+//                    var37 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var13) / 100.0F));
+//                    var37 += var33;
+//                }
+//
+//                int var25 = 0;
+//
+//                int var26;
+//                for(var26 = var33; var26 < var37; ++var26) {
+//                    Object var27 = var5.get(var26);
+//                    if (oConvertUtils.isNotEmpty(var27)) {
+//                        JSONObject var28 = (JSONObject)var27;
+//                        Object var29 = var28.get("width");
+//                        var25 += Integer.valueOf(String.valueOf(var29));
+//                    } else {
+//                        var25 += 100;
+//                    }
+//                }
+//
+//                if (var25 > Integer.parseInt(var13)) {
+//                    var25 -= Integer.parseInt(var13);
+//                } else {
+//                    var25 = 0;
+//                }
+//
+//                var25 = var25 * 3 / 4;
+//                var26 = 0;
+//
+//                for(int var38 = var32; var38 < var20; ++var38) {
+//                    Object var40 = var6.get(var38);
+//                    if (oConvertUtils.isNotEmpty(var40)) {
+//                        JSONObject var41 = (JSONObject)var40;
+//                        Object var30 = var41.get("height");
+//                        if (oConvertUtils.isNotEmpty(var30)) {
+//                            var26 += Integer.parseInt(var30.toString());
+//                        } else {
+//                            var26 += 25;
+//                        }
+//                    } else {
+//                        var26 += 25;
+//                    }
+//                }
+//
+//                if (var26 > Integer.parseInt(var14)) {
+//                    var26 -= Integer.parseInt(var14);
+//                } else {
+//                    var26 = 0;
+//                }
+//
+//                var26 = var26 * 3 / 4;
+//                XSSFClientAnchor var39 = new XSSFClientAnchor(0, 0, 12700 * -var25, 12700 * -var26, var33, var32, var37, var20);
+//                var7.createPicture(var39, var2.addPicture(var34, 5));
+//            }
+//        } catch (Exception var31) {
+//            var31.printStackTrace();
+//        }
+//
+//    }
+//
+//    private void a18(Sheet var1, Workbook var2, JSONArray var3, List var4, Map<String, Object> var5) {
+//        Drawing var6 = var1.createDrawingPatriarch();
+//
+//        for(int var7 = 0; var7 < var3.size(); ++var7) {
+//            JSONObject var8 = var3.getJSONObject(var7);
+//            boolean var9 = false;
+//            boolean var10 = false;
+//            String var11 = "";
+//            String var12 = "";
+//            int var25 = Integer.valueOf(var8.getString("col"));
+//            int var24 = Integer.valueOf(var8.getString("row"));
+//            var11 = String.valueOf(var8.get("width"));
+//            var12 = String.valueOf(var8.get("height"));
+//            String var13 = (String)var8.get("layer_id");
+//            String var14 = "";
+//            Object var15 = var5.get(var13);
+//            if (null != var15) {
+//                String[] var16 = String.valueOf(var15).split(",");
+//                var24 = Integer.parseInt(var16[0]);
+//                var25 = Integer.parseInt(var16[1]);
+//            }
+//
+//            Object var18;
+//            for(int var26 = 0; var26 < var4.size(); ++var26) {
+//                Map var17 = (Map)var4.get(var26);
+//                var18 = var17.get("id");
+//                if (var13.equals(var18.toString())) {
+//                    var14 = (String)var17.get("base64");
+//                }
+//            }
+//
+//            byte[] var27 = new byte[0];
+//            var27 = oConvertUtils.decodeBase64(var14.replace("data:image/png;base64,", ""));
+//            var18 = var8.get("colspan");
+//            Object var19 = var8.get("rowspan");
+//            boolean var20 = false;
+//            boolean var21 = false;
+//            float var22 = Float.parseFloat(var12);
+//            int var28;
+//            int var29;
+//            if (null != var18 && null != var19) {
+//                var29 = var24 + Integer.parseInt(var19.toString());
+//                var28 = var25 + Integer.parseInt(var18.toString());
+//            } else {
+//                var28 = var24 + Integer.parseInt(String.format("%.0f", Float.parseFloat(var12) / 25.0F));
+//                var29 = Integer.parseInt(String.format("%.0f", Float.parseFloat(var11) / 100.0F));
+//            }
+//
+//            XSSFClientAnchor var23 = new XSSFClientAnchor(0, 0, Integer.parseInt(var11), Integer.parseInt(var12), var25, var24, var28, var29);
+//            var6.createPicture(var23, var2.addPicture(var27, 5));
+//        }
+//
+//    }
+//
+//    private void a19(Sheet var1, XSSFWorkbook var2, JSONObject var3) {
+//        Drawing var4 = var1.createDrawingPatriarch();
+//        Object var5 = null;
+//        String var6 = "";
+//        String var7 = "";
+//        String var8 = "";
+//        Object var18 = var3.get("width");
+//        Object var19 = var3.get("height");
+//        var6 = var3.getString("path");
+//        byte[] var9 = this.a20(var6);
+//        XSSFPictureData var10 = null;
+//        boolean var11 = false;
+//
+//        try {
+//            int var20 = var2.addPicture(var9, 6);
+//            var10 = (XSSFPictureData)var2.getAllPictures().get(var20);
+//        } catch (NullPointerException var17) {
+//            a.debug("数据为空", var17.getMessage());
+//        }
+//
+//        if (var10 != null) {
+//            for(int var12 = 0; var12 < var2.getNumberOfSheets(); ++var12) {
+//                XSSFSheet var13 = var2.getSheetAt(var12);
+//                PackagePartName var14 = var10.getPackagePart().getPartName();
+//                String var15 = XSSFRelation.IMAGES.getRelation();
+//                PackageRelationship var16 = var13.getPackagePart().addRelationship(var14, TargetMode.EXTERNAL, var15, (String)null);
+//                var13.getCTWorksheet().addNewPicture().setId(var16.getId());
+//            }
+//        }
+//
+//    }
+//
+//    public byte[] a20(String var1) {
+//        URL var2 = null;
+//        Object var3 = null;
+//        byte[] var7;
+//        if (var1.contains("http")) {
+//            try {
+//                var2 = new URL(var1);
+//                if (var1.contains("https")) {
+//                    var7 = b.a(var1);
+//                    return var7;
+//                } else {
+//                    HttpURLConnection var4 = null;
+//                    var4 = (HttpURLConnection)var2.openConnection();
+//                    var4.setRequestMethod("GET");
+//                    var4.setConnectTimeout(50000);
+//                    InputStream var5 = var4.getInputStream();
+//                    var7 = a21(var5);
+//                    return var7;
+//                }
+//            } catch (Exception var6) {
+//                var6.printStackTrace();
+//                return null;
+//            }
+//        } else {
+//            var7 = this.c1(var1);
+//            return var7;
+//        }
+//    }
+//
+//    private static byte[] a21(InputStream var0) throws Exception {
+//        ByteArrayOutputStream var1 = new ByteArrayOutputStream();
+//        byte[] var2 = new byte[1024];
+//        boolean var3 = false;
+//
+//        int var4;
+//        while((var4 = var0.read(var2)) != -1) {
+//            var1.write(var2, 0, var4);
+//        }
+//
+//        var0.close();
+//        return var1.toByteArray();
+//    }
+//
+//    private byte[] c1(String var1) {
+//        File var2 = new File(this.jimuReportUploadConfig.getPath().getUpload() + File.separator + var1);
+//
+//        try {
+//            byte[] var3 = Files.readAllBytes(var2.toPath());
+//            return var3;
+//        } catch (IOException var4) {
+//            var4.printStackTrace();
+//            return null;
+//        }
+//    }
+//
+//    public Integer a22(Sheet var1, Integer var2, float var3) {
+//        int var4 = 0;
+//        Double var5 = 0.0D;
+//
+//        for(Iterator var6 = var1.iterator(); var6.hasNext(); ++var4) {
+//            Row var7 = (Row)var6.next();
+//            if (var2 <= var4) {
+//                var5 = var5 + (double)var7.getHeightInPoints();
+//            }
+//
+//            if (var5 != 0.0D && (double)var3 - var5 <= 10.0D && var4 > 0) {
+//                return var4;
+//            }
+//
+//            if (var5 >= (double)var3 && var4 > 0) {
+//                return var4;
+//            }
+//        }
+//
+//        return 0;
+//    }
+//}
+//

+ 1260 - 1260
boman-report/src/main/java/org/jeecg/modules/jmreport/desreport/a/a.java

@@ -1,1262 +1,1262 @@
+////
+//// Source code recreated from a .class file by IntelliJ IDEA
+//// (powered by FernFlower decompiler)
+////
 //
-// Source code recreated from a .class file by IntelliJ IDEA
-// (powered by FernFlower decompiler)
-//
-
-package org.jeecg.modules.jmreport.desreport.a;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.Scanner;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.poi.xssf.streaming.SXSSFWorkbook;
-import org.jeecg.modules.jmreport.api.data.IDataSetFactory;
-import org.jeecg.modules.jmreport.common.ColumnCovertService;
-//import org.jeecg.modules.jmreport.common.ExportExcelService;
-import org.jeecg.modules.jmreport.common.annotation.JimuLoginRequired;
-import org.jeecg.modules.jmreport.common.expetion.JimuReportException;
-import org.jeecg.modules.jmreport.common.util.CommonUtils;
-import org.jeecg.modules.jmreport.common.util.MinioUtil;
-import org.jeecg.modules.jmreport.common.util.OssBootUtil;
-import org.jeecg.modules.jmreport.common.util.ViewFreemarker;
-import org.jeecg.modules.jmreport.common.util.oConvertUtils;
-import org.jeecg.modules.jmreport.common.vo.JmDictModel;
-import org.jeecg.modules.jmreport.common.vo.Result;
-import org.jeecg.modules.jmreport.config.JmReportBaseConfig;
-import org.jeecg.modules.jmreport.config.client.JmReportTokenClient;
-import org.jeecg.modules.jmreport.config.oss.JmReportUploadConfig;
-import org.jeecg.modules.jmreport.desreport.a.service.a.IJmReportDbService;
-import org.jeecg.modules.jmreport.desreport.entity.JimuReport;
-import org.jeecg.modules.jmreport.desreport.entity.JmReportDataSource;
-import org.jeecg.modules.jmreport.desreport.entity.JmReportDb;
-import org.jeecg.modules.jmreport.desreport.entity.JmReportDbField;
-import org.jeecg.modules.jmreport.desreport.entity.JmReportDbParam;
-import org.jeecg.modules.jmreport.desreport.model.QueryVO;
-import org.jeecg.modules.jmreport.desreport.render.utils.FreeMarkerUtils;
-import org.jeecg.modules.jmreport.desreport.service.IJimuReportService;
-import org.jeecg.modules.jmreport.desreport.service.IJmReportDbFieldService;
-import org.jeecg.modules.jmreport.desreport.service.IJmReportDbParamService;
-import org.jeecg.modules.jmreport.desreport.service.IJmReportDbSourceService;
-import org.jeecg.modules.jmreport.desreport.service.IJmReportExportExcel;
-import org.jeecg.modules.jmreport.desreport.service.IJmReportExportPdf;
-import org.jeecg.modules.jmreport.desreport.service.IJmReportMapService;
-import org.jeecg.modules.jmreport.desreport.util.d;
-import org.jeecg.modules.jmreport.desreport.util.e;
-import org.jeecg.modules.jmreport.dyndb.vo.JmreportDynamicDataSourceVo;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.core.io.Resource;
-import org.springframework.util.AntPathMatcher;
-import org.springframework.util.Base64Utils;
-import org.springframework.util.FileCopyUtils;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.HandlerMapping;
-
-@RestController("designReportController")
-@RequestMapping({"/jmreport"})
-public class a {
-    private static final Logger a = LoggerFactory.getLogger(a.class);
-    @Value("classpath:static/jmreport/json/excel.virtual.json")
-    private Resource virtualJson;
-    @Autowired
-    private IJimuReportService jmReportDesignService;
-    @Autowired
-    private IJmReportDbService reportDbService;
-    @Autowired
-    private IJmReportDbParamService jmReportDbParamService;
-    @Autowired
-    private IJmReportDbFieldService jmReportDbFieldService;
-    @Autowired
-    private IJmReportDbSourceService jmReportDbSourceService;
-    @Autowired
-    private IJmReportMapService jmReportMapService;
-    @Autowired
-    private IJmReportExportExcel exportExcel;
+//package org.jeecg.modules.jmreport.desreport.a;
+//
+//import com.alibaba.fastjson.JSON;
+//import com.alibaba.fastjson.JSONArray;
+//import com.alibaba.fastjson.JSONObject;
+//
+//import java.io.BufferedInputStream;
+//import java.io.ByteArrayOutputStream;
+//import java.io.File;
+//import java.io.FileInputStream;
+//import java.io.IOException;
+//import java.sql.Connection;
+//import java.sql.DriverManager;
+//import java.sql.SQLException;
+//import java.util.ArrayList;
+//import java.util.Date;
+//import java.util.HashMap;
+//import java.util.Iterator;
+//import java.util.List;
+//import java.util.Map;
+//import java.util.Random;
+//import java.util.Scanner;
+//import javax.servlet.ServletOutputStream;
+//import javax.servlet.http.HttpServletRequest;
+//import javax.servlet.http.HttpServletResponse;
+//
+//import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+//import org.jeecg.modules.jmreport.api.data.IDataSetFactory;
+//import org.jeecg.modules.jmreport.common.ColumnCovertService;
+////import org.jeecg.modules.jmreport.common.ExportExcelService;
+//import org.jeecg.modules.jmreport.common.annotation.JimuLoginRequired;
+//import org.jeecg.modules.jmreport.common.expetion.JimuReportException;
+//import org.jeecg.modules.jmreport.common.util.CommonUtils;
+//import org.jeecg.modules.jmreport.common.util.MinioUtil;
+//import org.jeecg.modules.jmreport.common.util.OssBootUtil;
+//import org.jeecg.modules.jmreport.common.util.ViewFreemarker;
+//import org.jeecg.modules.jmreport.common.util.oConvertUtils;
+//import org.jeecg.modules.jmreport.common.vo.JmDictModel;
+//import org.jeecg.modules.jmreport.common.vo.Result;
+//import org.jeecg.modules.jmreport.config.JmReportBaseConfig;
+//import org.jeecg.modules.jmreport.config.client.JmReportTokenClient;
+//import org.jeecg.modules.jmreport.config.oss.JmReportUploadConfig;
+//import org.jeecg.modules.jmreport.desreport.a.service.a.IJmReportDbService;
+//import org.jeecg.modules.jmreport.desreport.entity.JimuReport;
+//import org.jeecg.modules.jmreport.desreport.entity.JmReportDataSource;
+//import org.jeecg.modules.jmreport.desreport.entity.JmReportDb;
+//import org.jeecg.modules.jmreport.desreport.entity.JmReportDbField;
+//import org.jeecg.modules.jmreport.desreport.entity.JmReportDbParam;
+//import org.jeecg.modules.jmreport.desreport.model.QueryVO;
+//import org.jeecg.modules.jmreport.desreport.render.utils.FreeMarkerUtils;
+//import org.jeecg.modules.jmreport.desreport.service.IJimuReportService;
+//import org.jeecg.modules.jmreport.desreport.service.IJmReportDbFieldService;
+//import org.jeecg.modules.jmreport.desreport.service.IJmReportDbParamService;
+//import org.jeecg.modules.jmreport.desreport.service.IJmReportDbSourceService;
+//import org.jeecg.modules.jmreport.desreport.service.IJmReportExportExcel;
+//import org.jeecg.modules.jmreport.desreport.service.IJmReportExportPdf;
+//import org.jeecg.modules.jmreport.desreport.service.IJmReportMapService;
+//import org.jeecg.modules.jmreport.desreport.util.d;
+//import org.jeecg.modules.jmreport.desreport.util.e;
+//import org.jeecg.modules.jmreport.dyndb.vo.JmreportDynamicDataSourceVo;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.core.io.Resource;
+//import org.springframework.util.AntPathMatcher;
+//import org.springframework.util.Base64Utils;
+//import org.springframework.util.FileCopyUtils;
+//import org.springframework.web.bind.annotation.CrossOrigin;
+//import org.springframework.web.bind.annotation.DeleteMapping;
+//import org.springframework.web.bind.annotation.GetMapping;
+//import org.springframework.web.bind.annotation.PathVariable;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestBody;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RequestParam;
+//import org.springframework.web.bind.annotation.ResponseBody;
+//import org.springframework.web.bind.annotation.RestController;
+//import org.springframework.web.multipart.MultipartFile;
+//import org.springframework.web.multipart.MultipartHttpServletRequest;
+//import org.springframework.web.servlet.HandlerMapping;
+//
+//@RestController("designReportController")
+//@RequestMapping({"/jmreport"})
+//public class a {
+//    private static final Logger a = LoggerFactory.getLogger(a.class);
+//    @Value("classpath:static/jmreport/json/excel.virtual.json")
+//    private Resource virtualJson;
+//    @Autowired
+//    private IJimuReportService jmReportDesignService;
+//    @Autowired
+//    private IJmReportDbService reportDbService;
+//    @Autowired
+//    private IJmReportDbParamService jmReportDbParamService;
+//    @Autowired
+//    private IJmReportDbFieldService jmReportDbFieldService;
+//    @Autowired
+//    private IJmReportDbSourceService jmReportDbSourceService;
+//    @Autowired
+//    private IJmReportMapService jmReportMapService;
+//    @Autowired
+//    private IJmReportExportExcel exportExcel;
+////    @Autowired
+////    private ExportExcelService exportExcelService;
 //    @Autowired
-//    private ExportExcelService exportExcelService;
-    @Autowired
-    private JmReportTokenClient jimuTokenClient;
-    @Autowired
-    private JmReportUploadConfig jimuReportUploadConfig;
-    @Autowired
-    private JmReportBaseConfig jmBaseConfig;
-    @Autowired
-    private IJmReportExportPdf jmReportExportPdf;
-
-    public a() {
-    }
-
-    @RequestMapping({"/demo"})
-    public void a(HttpServletRequest var1, HttpServletResponse var2) throws Exception {
-        a.debug(" --- 进入报表设计器demo --- ");
-        HashMap var3 = new HashMap();
-        this.a((HttpServletRequest) var1, (HttpServletResponse) var2, (Map) var3, (String) "jmreport/desreport/demo.ftl");
-    }
-
-    @RequestMapping({"/list"})
-    public void b(HttpServletRequest var1, HttpServletResponse var2) throws Exception {
-        a.debug(" --- 进入报表设计器列表展示 --- ");
-        HashMap var3 = new HashMap();
-        this.a((HttpServletRequest) var1, (HttpServletResponse) var2, (Map) var3, (String) "jmreport/desreport/list.ftl");
-    }
-
-    @PostMapping({"/excelCreate"})
-    @JimuLoginRequired
-    public Result<?> a(HttpServletRequest var1, @RequestBody JimuReport var2) {
-        a.debug("============EXCEL模板创建/编辑==========");
-
-        try {
-            String var3 = this.jimuTokenClient.getUsername(var1);
-            var2.setCreateBy(var3);
-            var2 = this.jmReportDesignService.excelCreate(var2);
-        } catch (Exception var4) {
-            a.error(var4.getMessage(), var4);
-            return Result.error(var4.getMessage());
-        }
-
-        return Result.OK(var2);
-    }
-
-    @PostMapping({"/excelQueryName"})
-    @JimuLoginRequired
-    public Result<?> b(HttpServletRequest var1, @RequestBody JimuReport var2) {
-        boolean var3 = this.jmReportDesignService.excelQueryName(var2);
-        return var3 ? Result.OK() : Result.FAIL("您输入的报表名字已经存在,换一个吧!", var3);
-    }
-
-    @GetMapping({"/excelQuery"})
-    @JimuLoginRequired
-    public Result<?> a(@RequestParam(name = "reportType", required = false) String var1, @RequestParam(name = "name") String var2, @RequestParam(name = "pageNo", defaultValue = "1") Integer var3, @RequestParam(name = "pageSize", defaultValue = "10") Integer var4, HttpServletRequest var5) {
-        a.debug("============EXCEL模板查询==========");
-        return this.jmReportDesignService.excelQuery(var1, var2, var5, var3, var4);
-    }
-
-    @GetMapping({"/excelQueryByTemplate"})
-    public Result<?> b(@RequestParam(name = "reportType", required = false) String var1, @RequestParam(name = "name") String var2, @RequestParam(name = "pageNo", defaultValue = "1") Integer var3, @RequestParam(name = "pageSize", defaultValue = "10") Integer var4, HttpServletRequest var5) {
-        return this.jmReportDesignService.excelQueryByTemplate(var1, var2, var5, var3, var4);
-    }
-
-    @GetMapping({"/userinfo"})
-    @JimuLoginRequired
-    public Result<?> a(HttpServletRequest var1) {
-        Result var2 = Result.OK();
-        String var3 = this.jimuTokenClient.getUsername(var1);
-        var2.setMessage(var3);
-        return Result.OK(var2);
-    }
-
-    public void c(HttpServletRequest var1, HttpServletResponse var2) throws Exception {
-        a.debug(" --- 进入报表设计器 --- ");
-        HashMap var3 = new HashMap();
-        this.a((HttpServletRequest) var1, (HttpServletResponse) var2, (Map) var3, (String) "jmreport/desreport/index.ftl");
-    }
-
-    @RequestMapping({"/index/{id}"})
-    public void a(@PathVariable("id") String var1, HttpServletRequest var2, HttpServletResponse var3) throws Exception {
-        a.debug(" --- 进入报表设计器 --- ");
-        HashMap var4 = new HashMap();
-        if (oConvertUtils.isNotEmpty(var1)) {
-            var4.put("id", var1);
-        }
-
-        var4.put("mode", this.jmBaseConfig.getMode());
-        String var5 = "jmreport/desreport/index.ftl";
-        a.info("进入设计器页面,saas: " + this.jmBaseConfig.getSaas() + " ,登录Token: " + this.jimuTokenClient.getToken());
-        if (this.jmBaseConfig.getSaas() && oConvertUtils.isNotEmpty(this.jimuTokenClient.getToken())) {
-            String var6 = this.jimuTokenClient.getUsername(var2);
-            JimuReport var7 = this.jmReportDesignService.getById(var1);
-            if (var7 != null && !var6.equals(var7.getCreateBy())) {
-                var5 = "jmreport/desreport/authority.ftl";
-            }
-        }
-
-        this.a((HttpServletRequest) var2, (HttpServletResponse) var3, (Map) var4, (String) var5);
-    }
-
-    @RequestMapping({"/view/{id}"})
-    public void b(@PathVariable("id") String var1, HttpServletRequest var2, HttpServletResponse var3) throws Exception {
-        HashMap var4 = new HashMap();
-        if (oConvertUtils.isNotEmpty(var1)) {
-            var4.put("id", var1);
-        }
-
-        var4.put("shareView", "0");
-        this.a((HttpServletRequest) var2, (HttpServletResponse) var3, (Map) var4, (String) "jmreport/desreport/view.ftl");
-    }
-
-    @RequestMapping({"/shareView/{id}"})
-    public void a(@PathVariable("id") String var1, HttpServletResponse var2, HttpServletRequest var3) throws Exception {
-        HashMap var4 = new HashMap();
-        if (oConvertUtils.isNotEmpty(var1)) {
-            var4.put("id", var1);
-        }
-
-        var4.put("shareView", "1");
-        this.a((HttpServletRequest) var3, (HttpServletResponse) var2, (Map) var4, (String) "jmreport/desreport/view.ftl");
-    }
-
-    @PostMapping({"/addViewCount/{id}"})
-    public Result<?> a(@PathVariable("id") String var1) {
-        Integer var2 = this.jmReportDesignService.updateViewCount(var1);
-        boolean var3 = false;
-        if (var2 > 0) {
-            var3 = true;
-        }
-
-        return Result.OK("", var3);
-    }
-
-    @GetMapping({"/checkParam/{id}"})
-    public Result<List<JmReportDbParam>> b(@PathVariable(name = "id") String var1) {
-        Result var2 = new Result();
-        List var3 = this.jmReportDesignService.queryReportParam(var1);
-        if (var3 != null && var3.size() != 0) {
-            var2.setSuccess(true);
-            var2.setResult(var3);
-        } else {
-            var2.setSuccess(false);
-        }
-
-        return var2;
-    }
-
-    @RequestMapping({"/show"})
-    public Result<?> a(@RequestParam(name = "id") String var1, HttpServletRequest var2) {
-        String var3 = var2.getParameter("params");
-
-        try {
-            return this.jmReportDesignService.show(var1, var3);
-        } catch (Exception var5) {
-            a.error(var5.getMessage(), var5);
-            return Result.error(var5.getMessage());
-        }
-    }
-
-    @PostMapping({"/save"})
-    @JimuLoginRequired
-    public Result<?> a(HttpServletRequest var1, @RequestBody JSONObject var2) {
-        try {
-            JimuReport var3 = this.jmReportDesignService.saveReport(var2, var1);
-            return Result.OK(var3);
-        } catch (Exception var4) {
-            a.error(var4.getMessage(), var4);
-            return Result.error("保存失败!");
-        }
-    }
-
-    @GetMapping({"/get/{id}"})
-    @JimuLoginRequired
-    public Result<?> a(HttpServletRequest var1, @PathVariable("id") String var2) {
-        a.debug("============EXCEL JSON数据查询==========");
-        JimuReport var3 = this.jmReportDesignService.getById(var2);
-        return Result.OK(var3);
-    }
-
-    @GetMapping({"/mockPieData"})
-    public Result<?> a() {
-        a.debug("============模拟图表数据==========");
-        ArrayList var1 = new ArrayList();
-        String[] var2 = new String[]{"IE", "Safari", "Firefox", "Opera", "Chrome"};
-        Random var3 = new Random();
-        String[] var4 = var2;
-        int var5 = var2.length;
-
-        for (int var6 = 0; var6 < var5; ++var6) {
-            String var7 = var4[var6];
-            HashMap var8 = new HashMap();
-            var8.put("name", var7);
-            var8.put("value", var3.nextInt(1901) + 100);
-            var1.add(var8);
-        }
-
-        return Result.OK(var1);
-    }
-
-    @GetMapping({"/mockChartData"})
-    public Result<?> b() {
-        a.debug("============模拟图表数据2==========");
-        ArrayList var1 = new ArrayList();
-        String[] var2 = new String[]{"邮件营销", "联盟广告", "视频广告", "直接访问", "搜索引擎"};
-        Random var3 = new Random();
-        String[] var4 = var2;
-        int var5 = var2.length;
-
-        for (int var6 = 0; var6 < var5; ++var6) {
-            String var7 = var4[var6];
-            HashMap var8 = new HashMap();
-            var8.put("name", var7);
-            ArrayList var9 = new ArrayList();
-
-            for (int var10 = 0; var10 < 7; ++var10) {
-                var9.add(var3.nextInt(1901) + 100);
-            }
-
-            var8.put("data", var9);
-            var1.add(var8);
-        }
-
-        return Result.OK(var1);
-    }
-
-    @PostMapping({"/upload"})
-    public Result<?> d(HttpServletRequest var1, HttpServletResponse var2) {
-        Result var3 = new Result();
-
-        try {
-            MultipartHttpServletRequest var4 = (MultipartHttpServletRequest) var1;
-            MultipartFile var5 = var4.getFile("file");
-            String var6 = var1.getParameter("bizType");
-            if (oConvertUtils.isEmpty(var6)) {
-                var6 = this.jimuReportUploadConfig.getUploadType();
-            }
-
-            String var7 = "";
-            a.debug("文件上传开始------------------------------uploadType  " + var6);
-            if ("alioss".equals(var6)) {
-                a.debug("进入OSS方法----->CommonConstant.UPLOAD_TYPE_OSS  alioss");
-                var7 = OssBootUtil.upload(var5, "designreport/images");
-            } else if ("minio".equals(var6)) {
-                a.debug("进入MINIO方法----->CommonConstant.UPLOAD_TYPE_MINIO  minio");
-                var7 = MinioUtil.upload(var5, "designreport/images");
-            } else if ("local".equals(var6)) {
-                a.debug("进入LOCAL方法----->CommonConstant.UPLOAD_TYPE_LOCAL local");
-                var7 = this.a(var5, "excel_online");
-            }
-
-            a.debug("文件上传结束------------------------------返回url", var7);
-            var3.setMessage(var7);
-            var3.setSuccess(true);
-        } catch (Exception var8) {
-            var3.setSuccess(false);
-            var3.setMessage("");
-            a.error(var8.getMessage(), var8);
-        }
-
-        return var3;
-    }
-
-    @CrossOrigin
-    @GetMapping({"/img/**"})
-    public void e(HttpServletRequest var1, HttpServletResponse var2) {
-        String var3 = e(var1);
-        BufferedInputStream var4 = null;
-        ServletOutputStream var5 = null;
-
-        try {
-            var3 = var3.replace("..", "");
-            if (var3.endsWith(",")) {
-                var3 = var3.substring(0, var3.length() - 1);
-            }
-
-            var2.setContentType("image/jpeg;charset=utf-8");
-            String var6 = this.jimuReportUploadConfig.getPath().getUpload();
-            String var7 = var6 + File.separator + var3;
-            var4 = new BufferedInputStream(new FileInputStream(var7));
-            var5 = var2.getOutputStream();
-            byte[] var8 = new byte[1024];
-
-            int var9;
-            while ((var9 = var4.read(var8)) > 0) {
-                var5.write(var8, 0, var9);
-            }
-
-            var2.flushBuffer();
-        } catch (IOException var22) {
-            a.error("预览图片失败" + var22.getMessage(), var22);
-        } finally {
-            if (var4 != null) {
-                try {
-                    var4.close();
-                } catch (IOException var21) {
-                    a.error(var21.getMessage(), var21);
-                }
-            }
-
-            if (var5 != null) {
-                try {
-                    var5.close();
-                } catch (IOException var20) {
-                    a.error(var20.getMessage(), var20);
-                }
-            }
-
-        }
-
-    }
-
-    private String a(File var1) {
-        Scanner var2 = null;
-        StringBuilder var3 = new StringBuilder();
-
-        try {
-            var2 = new Scanner(var1, "utf-8");
-
-            while (var2.hasNextLine()) {
-                var3.append(var2.nextLine());
-            }
-        } catch (Exception var8) {
-            var8.printStackTrace();
-        } finally {
-            if (var2 != null) {
-                var2.close();
-            }
-
-        }
-
-        return var3.toString();
-    }
-
-    private void a(HttpServletRequest var1, HttpServletResponse var2, Map var3, String var4) throws Exception {
-        try {
-            var3.put("base", var1.getContextPath());
-            var3.put("baseURL", d.a(var1));
-            a.info("freemarker customPrePath: {}", oConvertUtils.getString(var1.getAttribute("customPrePath"), ""));
-            var3.put("customPrePath", oConvertUtils.getString(var1.getAttribute("customPrePath"), ""));
-            var3.put("reportConfig", JSON.toJSONString(this.jmBaseConfig));
-        } catch (Exception var6) {
-            var6.printStackTrace();
-            var3.put("message", var6.getMessage());
-        }
-
-        ViewFreemarker.view(var1, var2, var4, var3);
-    }
-
-    private static String e(HttpServletRequest var0) {
-        String var1 = (String) var0.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
-        String var2 = (String) var0.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
-        return (new AntPathMatcher()).extractPathWithinPattern(var2, var1);
-    }
-
-    @PostMapping({"/loadTable"})
-    public Result<?> a(HttpServletRequest var1, @RequestParam("dbSource") String var2, @RequestParam(name = "pageNo", defaultValue = "1") Integer var3, @RequestParam(name = "pageSize", defaultValue = "50") Integer var4) {
-        a.debug("============加载表信息loadTable()==========");
-        if (oConvertUtils.isNotEmpty(var2)) {
-            JmreportDynamicDataSourceVo var5 = this.jmReportDbSourceService.getByDbKey(var2);
-            if (var5 == null) {
-                return Result.error("数据源不存在");
-            }
-        }
-
-        List var7 = this.reportDbService.loadDataSourceTable(var2);
-        Map var6 = e.a(var7, var3, var4);
-        return Result.OK(var6);
-    }
-
-    @PostMapping({"/loadTableData"})
-    public Result<?> a(HttpServletRequest var1, @RequestParam(value = "dbSource", required = false) String var2, @RequestParam(value = "tableName", required = false) String var3, @RequestParam(value = "pageNo", required = false) Integer var4, @RequestParam(value = "pageSize", required = false) Integer var5, @RequestParam(value = "sql", required = false) String var6, @RequestParam("paramArray") String var7) {
-        a.debug("============加载表数据信息loadTableData()==========");
-        if (oConvertUtils.isEmpty(var2) && this.jmBaseConfig.getSaas()) {
-            return Result.error(1001, "数据源不允许为空,请选择数据源!");
-        } else {
-            JmreportDynamicDataSourceVo var8;
-            if (oConvertUtils.isNotEmpty(var2)) {
-                var8 = this.jmReportDbSourceService.getByDbKey(var2);
-                if (var8 == null) {
-                    return Result.error("数据源不存在");
-                }
-            }
-
-            var8 = null;
-
-            Map var11;
-            try {
-                var11 = this.reportDbService.loadTableData(var2, var3, var4, var5, var6, var7);
-            } catch (Exception var10) {
-                var10.printStackTrace();
-                return Result.error("SQL执行失败,{}" + var10.getMessage());
-            }
-
-            return Result.OK(var11);
-        }
-    }
-
-    @PostMapping({"/queryFieldBySql"})
-    public Result<?> a(@RequestBody JSONObject var1) {
-        a.debug("============解析sql==========");
-        String var2 = var1.getString("sql");
-        String var3 = var1.getString("dbSource");
-        Object var4 = var1.get("paramArray");
-        String var5 = var1.getString("type");
-        String tableName = var1.getString("tableName");
-        Integer var6 = 0;
-        JmreportDynamicDataSourceVo var7 = null;
-        if (oConvertUtils.isEmpty(var3) && this.jmBaseConfig.getSaas()) {
-            return Result.error(1001, "数据源不允许为空,请选择数据源!");
-        } else {
-            if (oConvertUtils.isNotEmpty(var3)) {
-                var7 = this.jmReportDbSourceService.getByDbKey(var3);
-                var6 = var7.getConnectTimes();
-                if (var6 != null && var6 > 5) {
-                    return Result.error("数据源配置不正确,请修改!");
-                }
-
-                if (var7 == null) {
-                    return Result.error("数据源不存在");
-                }
-            }
-
-            try {
-                Map var8 = this.reportDbService.parseReportSql(var2, var3, var4, var5, tableName);
-                return var8.get("message") != null ? Result.OK(var8) : Result.OK("解析成功", var8);
-            } catch (Exception var10) {
-                if (var10 instanceof JimuReportException) {
-                    JimuReportException var9 = (JimuReportException) var10;
-                    return Result.error(var9.getExceptionCode(), var9.getMessage());
-                } else {
-                    return Result.error(var10.getMessage());
-                }
-            }
-        }
-    }
-
-    @PostMapping({"/queryFieldByBean"})
-    public Result<?> b(@RequestBody JSONObject var1) {
-        a.debug("============解析javabean==========");
-        String var2 = var1.getString("javaType");
-        String var3 = var1.getString("javaValue");
-        Boolean var4 = var1.getBoolean("isPage");
-        JSONObject var5 = var1.getJSONObject("param");
-        Map var6 = d.a(var5);
-
-        try {
-            Object var7 = d.c(var2, var3);
-            if (var7 != null && var7 instanceof IDataSetFactory) {
-                IDataSetFactory var8 = (IDataSetFactory) var7;
-                List var9 = d.a(var8, var6, var4);
-                return var9 != null && var9.size() != 0 ? Result.OK("解析成功", var9) : Result.error("解析成功但是无数据!");
-            } else {
-                return Result.error("javabean数据集需要实现接口IDataSetFactory");
-            }
-        } catch (Exception var10) {
-            return Result.error(var10.getMessage());
-        }
-    }
-
-    @PostMapping({"/executeSelectApi"})
-    @JimuLoginRequired
-    public Result<?> a(HttpServletRequest var1, @RequestParam("api") String var2, @RequestParam("method") String var3) {
-        String var4 = var1.getParameter("token");
-        String var5 = var1.getParameter("apiConvert");
-        String var6 = var1.getParameter("paramArray");
-        if (oConvertUtils.isEmpty(var4)) {
-            var4 = this.jimuTokenClient.getToken();
-        }
-
-        a.info("报表executeSelectApi:: api= " + var2 + ", method= " + var3 + ", token= " + var4);
-        Map var7 = this.reportDbService.executeSelectApi(var2, var3, var4, var5, var6);
-        List var8 = this.reportDbService.parseData(var7);
-        return Result.OK(var8);
-    }
-
-    @PostMapping({"/saveDb"})
-    @JimuLoginRequired
-    public Result<?> a(HttpServletRequest var1, @RequestBody JmReportDb var2) {
-        a.debug("============saveDb==========");
-
-        try {
-            String var3 = this.jimuTokenClient.getUsername(var1);
-            var2.setCreateBy(var3);
-            Date var4 = new Date();
-            var2.setCreateTime(var4);
-            var2.setUpdateTime(var4);
-            var2 = this.reportDbService.saveDb(var2);
-        } catch (Exception var5) {
-            a.error(var5.getMessage(), var5);
-            return Result.error(var5.getMessage());
-        }
-
-        return Result.OK(var2);
-    }
-
-    @GetMapping({"/field/tree/{reportId}"})
-    @JimuLoginRequired
-    public Result<?> b(HttpServletRequest var1, @PathVariable("reportId") String var2) {
-        a.debug("============fieldTree==========");
-        Object var3 = new ArrayList();
-
-        try {
-            var3 = this.reportDbService.fieldTree(var2);
-        } catch (Exception var5) {
-            var5.printStackTrace();
-        }
-
-        return Result.OK(var3);
-    }
-
-    @GetMapping({"/queryIsPage/{reportId}"})
-    @JimuLoginRequired
-    public Result<?> c(HttpServletRequest var1, @PathVariable("reportId") String var2) {
-        boolean var3 = this.reportDbService.queryIsPage(var2);
-        return Result.OK(var3);
-    }
-
-    @GetMapping({"loadDbData/{dbId}"})
-    @JimuLoginRequired
-    public Result<?> d(HttpServletRequest var1, @PathVariable("dbId") String var2) {
-        a.debug("============loadDbData==========");
-        Map var3 = this.reportDbService.loadDbData(var2);
-        return Result.OK(var3);
-    }
-
-    @GetMapping({"initDataSource"})
-    @JimuLoginRequired
-    public Result<?> b(HttpServletRequest var1) {
-        a.debug("============initDataSource==========");
-        String var2 = "";
-        if (this.jmBaseConfig.getSaas()) {
-            var2 = this.jimuTokenClient.getUsername(var1);
-        }
-
-        List var3 = this.reportDbService.initDataSource(var2);
-        return Result.OK(var3);
-    }
-
-    @GetMapping({"/delDbData/{dbId}"})
-    @JimuLoginRequired
-    public Result<?> e(HttpServletRequest var1, @PathVariable("dbId") String var2) {
-        a.debug("============delDbData==========");
-        this.reportDbService.delDbData(var2);
-        return Result.OK();
-    }
-
-    @PostMapping({"/deleteParamByIds"})
-    @JimuLoginRequired
-    public Result<?> b(HttpServletRequest var1, @RequestBody JSONObject var2) {
-        a.debug("============deleteParamByIds==========");
-        JSONArray var3 = var2.getJSONArray("selectIds");
-        String var4 = var2.getString("id");
-        String var5 = var2.getString("dbDynSql");
-        this.jmReportDbParamService.deleteParamByIdsAndUpdateDbSql(var3, var4, var5);
-        return Result.OK();
-    }
-
-    @DeleteMapping({"/deleteFieldByIds"})
-    @JimuLoginRequired
-    public Result<?> f(HttpServletRequest var1, @RequestBody String var2) {
-        a.debug("============deleParams==========");
-        this.jmReportDbFieldService.deleteByIds(var2);
-        return Result.OK();
-    }
-
-    @DeleteMapping({"/delete"})
-    @ResponseBody
-    @JimuLoginRequired
-    public Result<?> g(HttpServletRequest var1, @RequestParam(name = "id", required = true) String var2) {
-        JimuReport var3 = new JimuReport();
-        var3.setId(var2);
-        var3.setDelFlag(1);
-        this.jmReportDesignService.updateById(var3);
-        return Result.OK("删除成功!", true);
-    }
-
-    @GetMapping({"/reportCopy"})
-    @ResponseBody
-    @JimuLoginRequired
-    public Result<?> h(HttpServletRequest var1, @RequestParam(name = "id", required = true) String var2) {
-        try {
-            String var3 = this.jimuTokenClient.getUsername(var1);
-            JimuReport var4 = new JimuReport();
-            var4.setCreateBy(var3);
-            Date var5 = new Date();
-            var4.setCreateTime(var5);
-            var4.setUpdateTime(var5);
-            var4.setId(var2);
-            this.jmReportDesignService.reportCopy(var4);
-        } catch (Exception var6) {
-            var6.printStackTrace();
-            return Result.error(403, "您没有权限");
-        }
-
-        return Result.OK("复制成功!", true);
-    }
-
-    @GetMapping({"/setTemplate"})
-    @ResponseBody
-    @JimuLoginRequired
-    public Result<?> a(HttpServletRequest var1, @RequestParam(name = "id", required = true) String var2, @RequestParam(name = "template", required = true) Integer var3) {
-        JimuReport var4 = new JimuReport();
-        var4.setId(var2);
-        var4.setTemplate(var3);
-        Integer var5 = this.jmReportDesignService.updateById(var4);
-        boolean var6 = false;
-        if (var5 > 0) {
-            var6 = true;
-        }
-
-        return Result.OK("设置成功!", var6);
-    }
-
-    @PostMapping({"/importExcel"})
-    @ResponseBody
-    @JimuLoginRequired
-    public Result<Object> a(HttpServletRequest var1, @RequestParam("file") MultipartFile var2) throws IOException {
-        Result var3 = new Result();
-        Map var4 = this.jmReportDesignService.importExcel(var2);
-        if (var4.size() > 0 && !var4.isEmpty()) {
-            var3.setResult(var4);
-            var3.setSuccess(true);
-        } else {
-            var3.setSuccess(false);
-        }
-
-        return var3;
-    }
-
-    @PostMapping({"/exportAllExcel"})
-    @ResponseBody
-    public Result<Object> a(HttpServletRequest var1, HttpServletResponse var2, @RequestBody JSONObject var3) throws IOException {
-        HashMap var4 = new HashMap(var1.getParameterMap());
-        boolean var5 = var4.containsKey("token");
-        if (var5) {
-            var4.remove("token");
-        }
-
-        String var6 = var3.getString("excelConfigId");
-        JSONObject var7 = var3.getJSONObject("queryParam");
-        long var8 = System.currentTimeMillis();
-        JSONArray var10 = var3.getJSONArray("base64Arry");
-        Map var11 = this.exportExcel.exportExcel(var6, var7, var10);
-        File var12 = new File(var11.get("name").toString());
-        ServletOutputStream var13 = var2.getOutputStream();
-        SXSSFWorkbook var14 = (SXSSFWorkbook) var11.get("workbook");
-        ByteArrayOutputStream var15 = new ByteArrayOutputStream();
-        HashMap var16 = new HashMap();
-
-        try {
-            var14.write(var15);
-            String var17 = Base64Utils.encodeToString(var15.toByteArray());
-            var16.put("file", var17);
-            var16.put("success", true);
-            var16.put("name", var12.getName());
-        } catch (IOException var26) {
-            var26.printStackTrace();
-            var16.put("error", var26.getMessage());
-        } finally {
-            try {
-                var15.close();
-            } catch (IOException var25) {
-                var25.printStackTrace();
-            }
-
-        }
-
-        long var28 = System.currentTimeMillis();
-        a.info("导出excel数据运行时间:" + (var28 - var8) + "ms");
-        return Result.OK(var16);
-    }
-
-    @PostMapping({"/exportEmptyExcel"})
-    @ResponseBody
-    public Result<Object> exportEmptyExcel(HttpServletRequest var1, HttpServletResponse var2, @RequestBody JSONObject var3) throws IOException {
-        HashMap var4 = new HashMap(var1.getParameterMap());
-        boolean var5 = var4.containsKey("token");
-        if (var5) {
-            var4.remove("token");
-        }
-
-        String var6 = var3.getString("excelConfigId");
-        JSONObject var7 = var3.getJSONObject("queryParam");
-        long var8 = System.currentTimeMillis();
-        JSONArray var10 = var3.getJSONArray("base64Arry");
-//        Map var11 = this.exportExcelService.exportEmptyExcel(var6, var7, var10);
-        Map var11 = null;
-        File var12 = new File(var11.get("name").toString());
-        ServletOutputStream var13 = var2.getOutputStream();
-        SXSSFWorkbook var14 = (SXSSFWorkbook) var11.get("workbook");
-        ByteArrayOutputStream var15 = new ByteArrayOutputStream();
-        HashMap var16 = new HashMap();
-
-        try {
-            var14.write(var15);
-            String var17 = Base64Utils.encodeToString(var15.toByteArray());
-            var16.put("file", var17);
-            var16.put("success", true);
-            var16.put("name", var12.getName());
-        } catch (IOException var26) {
-            var26.printStackTrace();
-            var16.put("error", var26.getMessage());
-        } finally {
-            try {
-                var15.close();
-            } catch (IOException var25) {
-                var25.printStackTrace();
-            }
-
-        }
-
-        long var28 = System.currentTimeMillis();
-        a.info("导出excel数据运行时间:" + (var28 - var8) + "ms");
-        return Result.OK(var16);
-    }
-
-    @RequestMapping({"/print"})
-    public void a(HttpServletResponse var1, HttpServletRequest var2) throws Exception {
-        HashMap var3 = new HashMap();
-        this.a((HttpServletRequest) var2, (HttpServletResponse) var1, (Map) var3, (String) "jmreport/desreport/print.ftl");
-    }
-
-    @PostMapping({"/putFile"})
-    @ResponseBody
-    @JimuLoginRequired
-    public Result<JimuReport> i(HttpServletRequest var1, @RequestParam String var2) {
-        Result var3 = new Result();
-
-        try {
-            MultipartHttpServletRequest var4 = (MultipartHttpServletRequest) var1;
-            MultipartFile var5 = var4.getFile("file");
-            String var6 = "";
-            String var7 = this.jimuReportUploadConfig.getUploadType();
-            if ("alioss".equals(var7)) {
-                var6 = OssBootUtil.upload(var5, "designreport/images");
-            } else if ("minio".equals(var7)) {
-                var6 = MinioUtil.upload(var5, "designreport/images");
-            } else {
-                var6 = this.a(var5, "excel_online");
-            }
-
-            JimuReport var8 = new JimuReport();
-            if (oConvertUtils.isNotEmpty(var6) && oConvertUtils.isNotEmpty(var2)) {
-                var8.setId(var2);
-                var8.setThumb(var6);
-                this.jmReportDesignService.updateById(var8);
-                var3.setMessage("封面图上传成功!");
-                var3.setResult(var8);
-            }
-        } catch (Exception var9) {
-            var3.setSuccess(false);
-            var3.setMessage("");
-            a.error(var9.getMessage(), var9);
-        }
-
-        return var3;
-    }
-
-    @GetMapping({"/download/image"})
-    @ResponseBody
-    public Result<Object> f(HttpServletRequest var1, HttpServletResponse var2) throws IOException {
-        String var3 = var1.getParameter("imageUrl");
-        Result var4 = new Result();
-        if (oConvertUtils.isEmpty(var3)) {
-            var4.setSuccess(false);
-            return var4;
-        } else {
-            if (!var3.contains("http")) {
-                var4.setSuccess(true);
-                var4.setResult(var3);
-            }
-
-            String var5 = File.separator + "designreport" + File.separator + "images" + File.separator;
-            String var6 = var3.substring(var3.lastIndexOf("/") + 1);
-            String var7 = this.jimuReportUploadConfig.getPath().getUpload();
-            File var8 = new File(var7 + var5);
-            if (!var8.exists()) {
-                var8.mkdirs();
-            }
-
-            a.debug("----imageUrl------" + var3);
-            a.debug("----fileName------" + var6);
-            a.debug("----downFilePath------" + var7 + var5 + var6);
-            File var9 = new File(var7 + var5 + var6);
-            if (!var9.exists()) {
-                d.a(var3, var9);
-            }
-
-            var4.setSuccess(true);
-            var4.setResult(var5 + var6);
-            return var4;
-        }
-    }
-
-    private String a(MultipartFile var1, String var2) {
-        try {
-            String var3 = this.jimuReportUploadConfig.getPath().getUpload();
-            a.info(" --- local upload path : " + var3 + " --- ");
-            String var4 = null;
-            File var5 = new File(var3 + File.separator + var2 + File.separator);
-            if (!var5.exists()) {
-                var5.mkdirs();
-            }
-
-            String var6 = var1.getOriginalFilename();
-            var6 = CommonUtils.getFileName(var6);
-            if (var6.indexOf(".") != -1) {
-                var4 = var6.substring(0, var6.lastIndexOf(".")) + "_" + System.currentTimeMillis() + var6.substring(var6.indexOf("."));
-            } else {
-                var4 = var6 + "_" + System.currentTimeMillis();
-            }
-
-            String var7 = var5.getPath() + File.separator + var4;
-            File var8 = new File(var7);
-            FileCopyUtils.copy(var1.getBytes(), var8);
-            String var9 = null;
-            if (oConvertUtils.isNotEmpty(var2)) {
-                var9 = var2 + File.separator + var4;
-            } else {
-                var9 = var4;
-            }
-
-            if (var9.contains("\\")) {
-                var9 = var9.replace("\\", "/");
-            }
-
-            return var9;
-        } catch (IOException var10) {
-            a.error(var10.getMessage(), var10);
-            return "";
-        }
-    }
-
-    @PostMapping({"/addDataSource"})
-    @JimuLoginRequired
-    public Result<?> a(HttpServletRequest var1, @RequestBody JmReportDataSource var2) {
-        return this.reportDbService.addDataSource(var2, var1);
-    }
-
-    @PostMapping({"/querySourceCode"})
-    @JimuLoginRequired
-    public Result<?> b(HttpServletRequest var1, @RequestBody JmReportDataSource var2) {
-        boolean var3 = this.reportDbService.querySourceCode(var2);
-        return Result.OK(var3);
-    }
-
-    @PostMapping({"/delDataSource"})
-    @JimuLoginRequired
-    public Result<?> c(HttpServletRequest var1, @RequestBody JmReportDataSource var2) {
-        this.reportDbService.delDataSource(var2);
-        return Result.OK("删除成功", true);
-    }
-
-    @PostMapping({"/testConnection"})
-    public Result a(@RequestBody JmreportDynamicDataSourceVo var1) {
-        Connection var2 = null;
-
-        Result var3;
-        try {
-            Result var4;
-            try {
-                Class.forName(var1.getDbDriver());
-                DriverManager.setLoginTimeout(10);
-                var2 = DriverManager.getConnection(var1.getDbUrl(), var1.getDbUsername(), var1.getDbPassword());
-                if (var2 != null) {
-                    var3 = Result.OK("数据库连接成功", true);
-                    return var3;
-                }
-
-                var3 = Result.OK("数据库连接失败:错误未知", true);
-            } catch (ClassNotFoundException var17) {
-                a.error(var17.toString());
-                var4 = Result.error("数据库连接失败:驱动类不存在");
-                return var4;
-            } catch (Exception var18) {
-                a.error(var18.toString());
-                var4 = Result.error("数据库连接失败:" + var18.getMessage());
-                return var4;
-            }
-        } finally {
-            try {
-                if (var2 != null && !var2.isClosed()) {
-                    var2.close();
-                }
-            } catch (SQLException var16) {
-                a.error(var16.toString());
-            }
-
-        }
-
-        return var3;
-    }
-
-    @RequestMapping({"/qurestApi"})
-    public Result<?> b(@RequestParam(name = "apiSelectId") String var1, HttpServletRequest var2) {
-        String var3 = "";
-        JmReportDb var4 = this.reportDbService.getById(var1);
-        if (var4 == null) {
-            return Result.ok("");
-        } else {
-            String var5 = var2.getParameter("token");
-            if (oConvertUtils.isEmpty(var5)) {
-                var5 = var2.getHeader("token");
-            }
-
-            String var6 = var4.getApiUrl();
-            Map var7 = this.jimuTokenClient.getUserInfo(var5);
-            var6 = d.a(var6, var7, this.jmBaseConfig.getApiBasePath());
-            List var8 = this.jmReportDbParamService.list(var4.getId());
-            HashMap var9;
-            Iterator var10;
-            JmReportDbParam var11;
-            if ("1".equals(var4.getDbType())) {
-                var9 = new HashMap();
-                var10 = var8.iterator();
-
-                while (var10.hasNext()) {
-                    var11 = (JmReportDbParam) var10.next();
-                    if (var6.indexOf(var11.getParamName()) > 0) {
-                        var9.put(var11.getParamName(), var11.getParamValue());
-                    }
-                }
-
-                String var15 = FreeMarkerUtils.a(var6, var9);
-                var15 = var15.replace("'", "");
-                if ("0".equals(var4.getApiMethod())) {
-                    var3 = d.b(var15, var5);
-                } else {
-                    var3 = d.a(var15, var5, (JSONObject) null);
-                }
-
-                JSONObject var17 = JSONObject.parseObject(var3);
-                return Result.OK(var17);
-            } else if ("3".equals(var4.getDbType())) {
-                JSONObject var13 = JSONObject.parseObject(var4.getJsonData());
-                return Result.OK(var13);
-            } else if (!"2".equals(var4.getDbType())) {
-                return null;
-            } else {
-                var9 = new HashMap();
-                var10 = var8.iterator();
-
-                while (var10.hasNext()) {
-                    var11 = (JmReportDbParam) var10.next();
-                    var9.put(var11.getParamName(), var11.getParamValue());
-                }
-
-                JSONObject var14 = JSONObject.parseObject(var4.getJsonData());
-                IDataSetFactory var16 = d.d(var4.getJavaType(), var4.getJavaValue());
-                if ("1".equals(var4.getIsPage())) {
-                    var16.createPageData(var9);
-                    return Result.OK(var14);
-                } else {
-                    List var12 = var16.createData(var9);
-                    return Result.OK(var12);
-                }
-            }
-        }
-    }
-
-    @RequestMapping({"/qurestSql"})
-    public Result<?> c(@RequestParam(name = "apiSelectId") String var1, HttpServletRequest var2) {
-        JmReportDb var3 = this.reportDbService.getById(var1);
-        List var4 = this.reportDbService.qurestechSql(var3);
-        this.jmReportDesignService.replaceDbCode(var1, var4);
-        return Result.OK(d.b(var4));
-    }
-
-    @GetMapping({"/dataCodeExist"})
-    public Result<Boolean> a(@RequestParam(name = "reportId") String var1, @RequestParam(name = "code") String var2) {
-        int var3 = this.reportDbService.getCount(var1, var2);
-        return Result.OK(var3 > 0);
-    }
-
-    @GetMapping({"/getQueryInfo"})
-    public Result<List<QueryVO>> a(@RequestParam(name = "reportId") String var1, HttpServletRequest var2, @RequestParam("param") String var3) {
-        String var4 = this.jimuTokenClient.getUsername(var2);
-        if (!this.jmBaseConfig.getSaas()) {
-            var4 = "";
-        }
-
-        List var5 = this.jmReportDesignService.getReportQueryInfo(var1, var4, var3);
-        return Result.OK(var5);
-    }
-
-    @RequestMapping({"/addChart"})
-    @JimuLoginRequired
-    public Result<?> d(@RequestParam(name = "chartType") String var1, HttpServletRequest var2) {
-        JSONObject var3 = this.jmReportDesignService.addChart(var1);
-        return Result.OK(var3);
-    }
-
-    @PostMapping({"/queryTableName"})
-    public Result<?> a(HttpServletRequest var1, @RequestParam("dbSource") String var2, @RequestParam("tableName") String var3, @RequestParam(name = "pageNo", defaultValue = "1") Integer var4, @RequestParam(name = "pageSize", defaultValue = "50") Integer var5) {
-        List var6 = this.reportDbService.queryTableName(var2, var3);
-        Map var7 = e.a(var6, var4, var5);
-        return Result.OK(var7);
-    }
-
-    @GetMapping({"/getReportByUser"})
-    public Result<List<JimuReport>> j(HttpServletRequest var1, @RequestParam(name = "reportId") String var2) {
-        Result var3 = new Result();
-        String var4 = this.jimuTokenClient.getUsername(var1);
-        List var5 = this.jmReportDesignService.getReportByUser(var4, var2);
-        var3.setSuccess(true);
-        var3.setResult(var5);
-        return var3;
-    }
-
-    @GetMapping({"/getReportChars"})
-    public Result<List<JSONObject>> b(@RequestParam(name = "reportId") String var1, @RequestParam(name = "charId", required = false) String var2) {
-        ArrayList var3 = new ArrayList();
-        JimuReport var4 = this.jmReportDesignService.getById(var1);
-        if (var4 != null) {
-            String var5 = var4.getJsonStr();
-            JSONObject var6 = JSONObject.parseObject(var5);
-            Object var7 = var6.get("chartList");
-            if (null != var7) {
-                JSONArray var8 = JSONArray.parseArray(var7.toString());
-
-                for (int var9 = 0; var9 < var8.size(); ++var9) {
-                    JSONObject var10 = new JSONObject();
-                    Object var11 = var8.getJSONObject(var9).get("layer_id");
-                    Object var12 = var8.getJSONObject(var9).get("config");
-                    JSONObject var13 = JSONObject.parseObject(var12.toString());
-                    JSONObject var14 = var13.getJSONObject("title");
-                    Object var15 = var14.get("text");
-                    if (null != var15 && null != var11) {
-                        if (oConvertUtils.isNotEmpty(var2) && !var2.equals(var11)) {
-                            var10.put("id", var11);
-                            var10.put("name", var15);
-                            var3.add(var10);
-                        }
-
-                        if (oConvertUtils.isEmpty(var2)) {
-                            var10.put("id", var11);
-                            var10.put("name", var15);
-                            var3.add(var10);
-                        }
-                    }
-                }
-            }
-        }
-
-        return Result.OK(var3);
-    }
-
-    @GetMapping({"/getCharData"})
-    public Result<JSONObject> a(@RequestParam(name = "reportId") String var1, @RequestParam(name = "charId") String var2, @RequestParam(name = "params") String var3, HttpServletRequest var4) {
-        String var5 = var4.getParameter("X-Access-Token");
-        JSONObject var6 = this.jmReportDesignService.getCharData(var1, var2, var3, var5);
-        return Result.OK(var6);
-    }
-
-    @GetMapping({"/verificationToken"})
-    public void c(HttpServletRequest var1) {
-        this.jimuTokenClient.verifyToken(var1);
-    }
-
-    @PostMapping({"/exportPdf"})
-    public Result<Object> b(HttpServletRequest var1, HttpServletResponse var2, @RequestBody JSONObject var3) {
-        HashMap var4 = new HashMap(var1.getParameterMap());
-        boolean var5 = var4.containsKey("token");
-        if (var5) {
-            var4.remove("token");
-        }
-
-        String var6 = var3.getString("excelConfigId");
-        JSONObject var7 = var3.getJSONObject("queryParam");
-        var7.put("printAll", true);
-        Result var8 = this.jmReportDesignService.show(var6, var7.toJSONString());
-        JimuReport var9 = (JimuReport) var8.getResult();
-        String var10 = var1.getParameter("dpi");
-        float var11 = 96.0F;
-        if (oConvertUtils.isNotEmpty(var10)) {
-            var11 = Float.parseFloat(var10);
-        }
-
-        JSONArray var12 = var3.getJSONArray("base64Arry");
-        Map var13 = this.jmReportExportPdf.exportPdf(var9, var12, var11);
-        return Result.OK(var13);
-    }
-
-    @GetMapping({"/getLinkageChartInfo"})
-    public Result<Object> d(HttpServletRequest var1) {
-        String var2 = var1.getParameter("reportId");
-        String var3 = var1.getParameter("dbCode");
-        String var4 = var1.getParameter("linkageDbCode");
-        List var5 = this.jmReportDbParamService.queryParamByDbcode(var2, var4);
-        List var6 = this.jmReportDbFieldService.queryFieldsByDbcode(var2, var3);
-        HashMap var7 = new HashMap();
-        var7.put("paramList", var5);
-        var7.put("fieldList", var6);
-        return Result.OK(var7);
-    }
-
-    @GetMapping({"/getListReportDb"})
-    public Result<Map<String, Object>> c(@RequestParam(name = "reportId") String var1) {
-        HashMap var2 = new HashMap();
-        List var3 = this.reportDbService.getListReportDb(var1);
-        new HashMap();
-        HashMap var5 = new HashMap();
-        Iterator var6 = var3.iterator();
-
-        while (var6.hasNext()) {
-            JmReportDb var7 = (JmReportDb) var6.next();
-            List var8 = this.jmReportDbParamService.list(var7.getId());
-            var5.put(var7.getDbCode(), var8);
-        }
-
-        var2.put("reportDbParam", var5);
-        return Result.OK(var2);
-    }
-
-    @GetMapping({"/dictCodeSearch"})
-    public Result<List<JmDictModel>> a(@RequestParam(name = "key") String var1, @RequestParam(name = "text") String var2, @RequestParam(name = "reportId") String var3) {
-        Result var4 = new Result();
-        List var5 = this.reportDbService.getListReportDb(var3);
-        String var6 = this.jimuTokenClient.getUsername();
-        if (oConvertUtils.isEmpty(var1)) {
-            return null;
-        } else {
-            String[] var7 = var1.split("__");
-            Iterator var8 = var5.iterator();
-
-            while (true) {
-                JmReportDb var9;
-                do {
-                    do {
-                        if (!var8.hasNext()) {
-                            return null;
-                        }
-
-                        var9 = (JmReportDb) var8.next();
-                    } while (var7.length != 2);
-                } while (!var7[0].equals(var9.getDbCode()));
-
-                List var10 = this.jmReportDbFieldService.getByDbId(var9.getId());
-                Iterator var11 = var10.iterator();
-
-                while (var11.hasNext()) {
-                    JmReportDbField var12 = (JmReportDbField) var11.next();
-                    if (var12.getFieldName().equals(var7[1])) {
-                        new JSONObject();
-                        List var14 = this.jmReportDesignService.queryQueryDictList(var9, var12, var6, var2, (String) null);
-                        var4.setResult(var14);
-                        var4.setSuccess(true);
-                        return var4;
-                    }
-                }
-            }
-        }
-    }
-}
+//    private JmReportTokenClient jimuTokenClient;
+//    @Autowired
+//    private JmReportUploadConfig jimuReportUploadConfig;
+//    @Autowired
+//    private JmReportBaseConfig jmBaseConfig;
+//    @Autowired
+//    private IJmReportExportPdf jmReportExportPdf;
+//
+//    public a() {
+//    }
+//
+//    @RequestMapping({"/demo"})
+//    public void a(HttpServletRequest var1, HttpServletResponse var2) throws Exception {
+//        a.debug(" --- 进入报表设计器demo --- ");
+//        HashMap var3 = new HashMap();
+//        this.a((HttpServletRequest) var1, (HttpServletResponse) var2, (Map) var3, (String) "jmreport/desreport/demo.ftl");
+//    }
+//
+//    @RequestMapping({"/list"})
+//    public void b(HttpServletRequest var1, HttpServletResponse var2) throws Exception {
+//        a.debug(" --- 进入报表设计器列表展示 --- ");
+//        HashMap var3 = new HashMap();
+//        this.a((HttpServletRequest) var1, (HttpServletResponse) var2, (Map) var3, (String) "jmreport/desreport/list.ftl");
+//    }
+//
+//    @PostMapping({"/excelCreate"})
+//    @JimuLoginRequired
+//    public Result<?> a(HttpServletRequest var1, @RequestBody JimuReport var2) {
+//        a.debug("============EXCEL模板创建/编辑==========");
+//
+//        try {
+//            String var3 = this.jimuTokenClient.getUsername(var1);
+//            var2.setCreateBy(var3);
+//            var2 = this.jmReportDesignService.excelCreate(var2);
+//        } catch (Exception var4) {
+//            a.error(var4.getMessage(), var4);
+//            return Result.error(var4.getMessage());
+//        }
+//
+//        return Result.OK(var2);
+//    }
+//
+//    @PostMapping({"/excelQueryName"})
+//    @JimuLoginRequired
+//    public Result<?> b(HttpServletRequest var1, @RequestBody JimuReport var2) {
+//        boolean var3 = this.jmReportDesignService.excelQueryName(var2);
+//        return var3 ? Result.OK() : Result.FAIL("您输入的报表名字已经存在,换一个吧!", var3);
+//    }
+//
+//    @GetMapping({"/excelQuery"})
+//    @JimuLoginRequired
+//    public Result<?> a(@RequestParam(name = "reportType", required = false) String var1, @RequestParam(name = "name") String var2, @RequestParam(name = "pageNo", defaultValue = "1") Integer var3, @RequestParam(name = "pageSize", defaultValue = "10") Integer var4, HttpServletRequest var5) {
+//        a.debug("============EXCEL模板查询==========");
+//        return this.jmReportDesignService.excelQuery(var1, var2, var5, var3, var4);
+//    }
+//
+//    @GetMapping({"/excelQueryByTemplate"})
+//    public Result<?> b(@RequestParam(name = "reportType", required = false) String var1, @RequestParam(name = "name") String var2, @RequestParam(name = "pageNo", defaultValue = "1") Integer var3, @RequestParam(name = "pageSize", defaultValue = "10") Integer var4, HttpServletRequest var5) {
+//        return this.jmReportDesignService.excelQueryByTemplate(var1, var2, var5, var3, var4);
+//    }
+//
+//    @GetMapping({"/userinfo"})
+//    @JimuLoginRequired
+//    public Result<?> a(HttpServletRequest var1) {
+//        Result var2 = Result.OK();
+//        String var3 = this.jimuTokenClient.getUsername(var1);
+//        var2.setMessage(var3);
+//        return Result.OK(var2);
+//    }
+//
+//    public void c(HttpServletRequest var1, HttpServletResponse var2) throws Exception {
+//        a.debug(" --- 进入报表设计器 --- ");
+//        HashMap var3 = new HashMap();
+//        this.a((HttpServletRequest) var1, (HttpServletResponse) var2, (Map) var3, (String) "jmreport/desreport/index.ftl");
+//    }
+//
+//    @RequestMapping({"/index/{id}"})
+//    public void a(@PathVariable("id") String var1, HttpServletRequest var2, HttpServletResponse var3) throws Exception {
+//        a.debug(" --- 进入报表设计器 --- ");
+//        HashMap var4 = new HashMap();
+//        if (oConvertUtils.isNotEmpty(var1)) {
+//            var4.put("id", var1);
+//        }
+//
+//        var4.put("mode", this.jmBaseConfig.getMode());
+//        String var5 = "jmreport/desreport/index.ftl";
+//        a.info("进入设计器页面,saas: " + this.jmBaseConfig.getSaas() + " ,登录Token: " + this.jimuTokenClient.getToken());
+//        if (this.jmBaseConfig.getSaas() && oConvertUtils.isNotEmpty(this.jimuTokenClient.getToken())) {
+//            String var6 = this.jimuTokenClient.getUsername(var2);
+//            JimuReport var7 = this.jmReportDesignService.getById(var1);
+//            if (var7 != null && !var6.equals(var7.getCreateBy())) {
+//                var5 = "jmreport/desreport/authority.ftl";
+//            }
+//        }
+//
+//        this.a((HttpServletRequest) var2, (HttpServletResponse) var3, (Map) var4, (String) var5);
+//    }
+//
+//    @RequestMapping({"/view/{id}"})
+//    public void b(@PathVariable("id") String var1, HttpServletRequest var2, HttpServletResponse var3) throws Exception {
+//        HashMap var4 = new HashMap();
+//        if (oConvertUtils.isNotEmpty(var1)) {
+//            var4.put("id", var1);
+//        }
+//
+//        var4.put("shareView", "0");
+//        this.a((HttpServletRequest) var2, (HttpServletResponse) var3, (Map) var4, (String) "jmreport/desreport/view.ftl");
+//    }
+//
+//    @RequestMapping({"/shareView/{id}"})
+//    public void a(@PathVariable("id") String var1, HttpServletResponse var2, HttpServletRequest var3) throws Exception {
+//        HashMap var4 = new HashMap();
+//        if (oConvertUtils.isNotEmpty(var1)) {
+//            var4.put("id", var1);
+//        }
+//
+//        var4.put("shareView", "1");
+//        this.a((HttpServletRequest) var3, (HttpServletResponse) var2, (Map) var4, (String) "jmreport/desreport/view.ftl");
+//    }
+//
+//    @PostMapping({"/addViewCount/{id}"})
+//    public Result<?> a(@PathVariable("id") String var1) {
+//        Integer var2 = this.jmReportDesignService.updateViewCount(var1);
+//        boolean var3 = false;
+//        if (var2 > 0) {
+//            var3 = true;
+//        }
+//
+//        return Result.OK("", var3);
+//    }
+//
+//    @GetMapping({"/checkParam/{id}"})
+//    public Result<List<JmReportDbParam>> b(@PathVariable(name = "id") String var1) {
+//        Result var2 = new Result();
+//        List var3 = this.jmReportDesignService.queryReportParam(var1);
+//        if (var3 != null && var3.size() != 0) {
+//            var2.setSuccess(true);
+//            var2.setResult(var3);
+//        } else {
+//            var2.setSuccess(false);
+//        }
+//
+//        return var2;
+//    }
+//
+//    @RequestMapping({"/show"})
+//    public Result<?> a(@RequestParam(name = "id") String var1, HttpServletRequest var2) {
+//        String var3 = var2.getParameter("params");
+//
+//        try {
+//            return this.jmReportDesignService.show(var1, var3);
+//        } catch (Exception var5) {
+//            a.error(var5.getMessage(), var5);
+//            return Result.error(var5.getMessage());
+//        }
+//    }
+//
+//    @PostMapping({"/save"})
+//    @JimuLoginRequired
+//    public Result<?> a(HttpServletRequest var1, @RequestBody JSONObject var2) {
+//        try {
+//            JimuReport var3 = this.jmReportDesignService.saveReport(var2, var1);
+//            return Result.OK(var3);
+//        } catch (Exception var4) {
+//            a.error(var4.getMessage(), var4);
+//            return Result.error("保存失败!");
+//        }
+//    }
+//
+//    @GetMapping({"/get/{id}"})
+//    @JimuLoginRequired
+//    public Result<?> a(HttpServletRequest var1, @PathVariable("id") String var2) {
+//        a.debug("============EXCEL JSON数据查询==========");
+//        JimuReport var3 = this.jmReportDesignService.getById(var2);
+//        return Result.OK(var3);
+//    }
+//
+//    @GetMapping({"/mockPieData"})
+//    public Result<?> a() {
+//        a.debug("============模拟图表数据==========");
+//        ArrayList var1 = new ArrayList();
+//        String[] var2 = new String[]{"IE", "Safari", "Firefox", "Opera", "Chrome"};
+//        Random var3 = new Random();
+//        String[] var4 = var2;
+//        int var5 = var2.length;
+//
+//        for (int var6 = 0; var6 < var5; ++var6) {
+//            String var7 = var4[var6];
+//            HashMap var8 = new HashMap();
+//            var8.put("name", var7);
+//            var8.put("value", var3.nextInt(1901) + 100);
+//            var1.add(var8);
+//        }
+//
+//        return Result.OK(var1);
+//    }
+//
+//    @GetMapping({"/mockChartData"})
+//    public Result<?> b() {
+//        a.debug("============模拟图表数据2==========");
+//        ArrayList var1 = new ArrayList();
+//        String[] var2 = new String[]{"邮件营销", "联盟广告", "视频广告", "直接访问", "搜索引擎"};
+//        Random var3 = new Random();
+//        String[] var4 = var2;
+//        int var5 = var2.length;
+//
+//        for (int var6 = 0; var6 < var5; ++var6) {
+//            String var7 = var4[var6];
+//            HashMap var8 = new HashMap();
+//            var8.put("name", var7);
+//            ArrayList var9 = new ArrayList();
+//
+//            for (int var10 = 0; var10 < 7; ++var10) {
+//                var9.add(var3.nextInt(1901) + 100);
+//            }
+//
+//            var8.put("data", var9);
+//            var1.add(var8);
+//        }
+//
+//        return Result.OK(var1);
+//    }
+//
+//    @PostMapping({"/upload"})
+//    public Result<?> d(HttpServletRequest var1, HttpServletResponse var2) {
+//        Result var3 = new Result();
+//
+//        try {
+//            MultipartHttpServletRequest var4 = (MultipartHttpServletRequest) var1;
+//            MultipartFile var5 = var4.getFile("file");
+//            String var6 = var1.getParameter("bizType");
+//            if (oConvertUtils.isEmpty(var6)) {
+//                var6 = this.jimuReportUploadConfig.getUploadType();
+//            }
+//
+//            String var7 = "";
+//            a.debug("文件上传开始------------------------------uploadType  " + var6);
+//            if ("alioss".equals(var6)) {
+//                a.debug("进入OSS方法----->CommonConstant.UPLOAD_TYPE_OSS  alioss");
+//                var7 = OssBootUtil.upload(var5, "designreport/images");
+//            } else if ("minio".equals(var6)) {
+//                a.debug("进入MINIO方法----->CommonConstant.UPLOAD_TYPE_MINIO  minio");
+//                var7 = MinioUtil.upload(var5, "designreport/images");
+//            } else if ("local".equals(var6)) {
+//                a.debug("进入LOCAL方法----->CommonConstant.UPLOAD_TYPE_LOCAL local");
+//                var7 = this.a(var5, "excel_online");
+//            }
+//
+//            a.debug("文件上传结束------------------------------返回url", var7);
+//            var3.setMessage(var7);
+//            var3.setSuccess(true);
+//        } catch (Exception var8) {
+//            var3.setSuccess(false);
+//            var3.setMessage("");
+//            a.error(var8.getMessage(), var8);
+//        }
+//
+//        return var3;
+//    }
+//
+//    @CrossOrigin
+//    @GetMapping({"/img/**"})
+//    public void e(HttpServletRequest var1, HttpServletResponse var2) {
+//        String var3 = e(var1);
+//        BufferedInputStream var4 = null;
+//        ServletOutputStream var5 = null;
+//
+//        try {
+//            var3 = var3.replace("..", "");
+//            if (var3.endsWith(",")) {
+//                var3 = var3.substring(0, var3.length() - 1);
+//            }
+//
+//            var2.setContentType("image/jpeg;charset=utf-8");
+//            String var6 = this.jimuReportUploadConfig.getPath().getUpload();
+//            String var7 = var6 + File.separator + var3;
+//            var4 = new BufferedInputStream(new FileInputStream(var7));
+//            var5 = var2.getOutputStream();
+//            byte[] var8 = new byte[1024];
+//
+//            int var9;
+//            while ((var9 = var4.read(var8)) > 0) {
+//                var5.write(var8, 0, var9);
+//            }
+//
+//            var2.flushBuffer();
+//        } catch (IOException var22) {
+//            a.error("预览图片失败" + var22.getMessage(), var22);
+//        } finally {
+//            if (var4 != null) {
+//                try {
+//                    var4.close();
+//                } catch (IOException var21) {
+//                    a.error(var21.getMessage(), var21);
+//                }
+//            }
+//
+//            if (var5 != null) {
+//                try {
+//                    var5.close();
+//                } catch (IOException var20) {
+//                    a.error(var20.getMessage(), var20);
+//                }
+//            }
+//
+//        }
+//
+//    }
+//
+//    private String a(File var1) {
+//        Scanner var2 = null;
+//        StringBuilder var3 = new StringBuilder();
+//
+//        try {
+//            var2 = new Scanner(var1, "utf-8");
+//
+//            while (var2.hasNextLine()) {
+//                var3.append(var2.nextLine());
+//            }
+//        } catch (Exception var8) {
+//            var8.printStackTrace();
+//        } finally {
+//            if (var2 != null) {
+//                var2.close();
+//            }
+//
+//        }
+//
+//        return var3.toString();
+//    }
+//
+//    private void a(HttpServletRequest var1, HttpServletResponse var2, Map var3, String var4) throws Exception {
+//        try {
+//            var3.put("base", var1.getContextPath());
+//            var3.put("baseURL", d.a(var1));
+//            a.info("freemarker customPrePath: {}", oConvertUtils.getString(var1.getAttribute("customPrePath"), ""));
+//            var3.put("customPrePath", oConvertUtils.getString(var1.getAttribute("customPrePath"), ""));
+//            var3.put("reportConfig", JSON.toJSONString(this.jmBaseConfig));
+//        } catch (Exception var6) {
+//            var6.printStackTrace();
+//            var3.put("message", var6.getMessage());
+//        }
+//
+//        ViewFreemarker.view(var1, var2, var4, var3);
+//    }
+//
+//    private static String e(HttpServletRequest var0) {
+//        String var1 = (String) var0.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
+//        String var2 = (String) var0.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
+//        return (new AntPathMatcher()).extractPathWithinPattern(var2, var1);
+//    }
+//
+//    @PostMapping({"/loadTable"})
+//    public Result<?> a(HttpServletRequest var1, @RequestParam("dbSource") String var2, @RequestParam(name = "pageNo", defaultValue = "1") Integer var3, @RequestParam(name = "pageSize", defaultValue = "50") Integer var4) {
+//        a.debug("============加载表信息loadTable()==========");
+//        if (oConvertUtils.isNotEmpty(var2)) {
+//            JmreportDynamicDataSourceVo var5 = this.jmReportDbSourceService.getByDbKey(var2);
+//            if (var5 == null) {
+//                return Result.error("数据源不存在");
+//            }
+//        }
+//
+//        List var7 = this.reportDbService.loadDataSourceTable(var2);
+//        Map var6 = e.a(var7, var3, var4);
+//        return Result.OK(var6);
+//    }
+//
+//    @PostMapping({"/loadTableData"})
+//    public Result<?> a(HttpServletRequest var1, @RequestParam(value = "dbSource", required = false) String var2, @RequestParam(value = "tableName", required = false) String var3, @RequestParam(value = "pageNo", required = false) Integer var4, @RequestParam(value = "pageSize", required = false) Integer var5, @RequestParam(value = "sql", required = false) String var6, @RequestParam("paramArray") String var7) {
+//        a.debug("============加载表数据信息loadTableData()==========");
+//        if (oConvertUtils.isEmpty(var2) && this.jmBaseConfig.getSaas()) {
+//            return Result.error(1001, "数据源不允许为空,请选择数据源!");
+//        } else {
+//            JmreportDynamicDataSourceVo var8;
+//            if (oConvertUtils.isNotEmpty(var2)) {
+//                var8 = this.jmReportDbSourceService.getByDbKey(var2);
+//                if (var8 == null) {
+//                    return Result.error("数据源不存在");
+//                }
+//            }
+//
+//            var8 = null;
+//
+//            Map var11;
+//            try {
+//                var11 = this.reportDbService.loadTableData(var2, var3, var4, var5, var6, var7);
+//            } catch (Exception var10) {
+//                var10.printStackTrace();
+//                return Result.error("SQL执行失败,{}" + var10.getMessage());
+//            }
+//
+//            return Result.OK(var11);
+//        }
+//    }
+//
+//    @PostMapping({"/queryFieldBySql"})
+//    public Result<?> a(@RequestBody JSONObject var1) {
+//        a.debug("============解析sql==========");
+//        String var2 = var1.getString("sql");
+//        String var3 = var1.getString("dbSource");
+//        Object var4 = var1.get("paramArray");
+//        String var5 = var1.getString("type");
+//        String tableName = var1.getString("tableName");
+//        Integer var6 = 0;
+//        JmreportDynamicDataSourceVo var7 = null;
+//        if (oConvertUtils.isEmpty(var3) && this.jmBaseConfig.getSaas()) {
+//            return Result.error(1001, "数据源不允许为空,请选择数据源!");
+//        } else {
+//            if (oConvertUtils.isNotEmpty(var3)) {
+//                var7 = this.jmReportDbSourceService.getByDbKey(var3);
+//                var6 = var7.getConnectTimes();
+//                if (var6 != null && var6 > 5) {
+//                    return Result.error("数据源配置不正确,请修改!");
+//                }
+//
+//                if (var7 == null) {
+//                    return Result.error("数据源不存在");
+//                }
+//            }
+//
+//            try {
+//                Map var8 = this.reportDbService.parseReportSql(var2, var3, var4, var5, tableName);
+//                return var8.get("message") != null ? Result.OK(var8) : Result.OK("解析成功", var8);
+//            } catch (Exception var10) {
+//                if (var10 instanceof JimuReportException) {
+//                    JimuReportException var9 = (JimuReportException) var10;
+//                    return Result.error(var9.getExceptionCode(), var9.getMessage());
+//                } else {
+//                    return Result.error(var10.getMessage());
+//                }
+//            }
+//        }
+//    }
+//
+//    @PostMapping({"/queryFieldByBean"})
+//    public Result<?> b(@RequestBody JSONObject var1) {
+//        a.debug("============解析javabean==========");
+//        String var2 = var1.getString("javaType");
+//        String var3 = var1.getString("javaValue");
+//        Boolean var4 = var1.getBoolean("isPage");
+//        JSONObject var5 = var1.getJSONObject("param");
+//        Map var6 = d.a(var5);
+//
+//        try {
+//            Object var7 = d.c(var2, var3);
+//            if (var7 != null && var7 instanceof IDataSetFactory) {
+//                IDataSetFactory var8 = (IDataSetFactory) var7;
+//                List var9 = d.a(var8, var6, var4);
+//                return var9 != null && var9.size() != 0 ? Result.OK("解析成功", var9) : Result.error("解析成功但是无数据!");
+//            } else {
+//                return Result.error("javabean数据集需要实现接口IDataSetFactory");
+//            }
+//        } catch (Exception var10) {
+//            return Result.error(var10.getMessage());
+//        }
+//    }
+//
+//    @PostMapping({"/executeSelectApi"})
+//    @JimuLoginRequired
+//    public Result<?> a(HttpServletRequest var1, @RequestParam("api") String var2, @RequestParam("method") String var3) {
+//        String var4 = var1.getParameter("token");
+//        String var5 = var1.getParameter("apiConvert");
+//        String var6 = var1.getParameter("paramArray");
+//        if (oConvertUtils.isEmpty(var4)) {
+//            var4 = this.jimuTokenClient.getToken();
+//        }
+//
+//        a.info("报表executeSelectApi:: api= " + var2 + ", method= " + var3 + ", token= " + var4);
+//        Map var7 = this.reportDbService.executeSelectApi(var2, var3, var4, var5, var6);
+//        List var8 = this.reportDbService.parseData(var7);
+//        return Result.OK(var8);
+//    }
+//
+//    @PostMapping({"/saveDb"})
+//    @JimuLoginRequired
+//    public Result<?> a(HttpServletRequest var1, @RequestBody JmReportDb var2) {
+//        a.debug("============saveDb==========");
+//
+//        try {
+//            String var3 = this.jimuTokenClient.getUsername(var1);
+//            var2.setCreateBy(var3);
+//            Date var4 = new Date();
+//            var2.setCreateTime(var4);
+//            var2.setUpdateTime(var4);
+//            var2 = this.reportDbService.saveDb(var2);
+//        } catch (Exception var5) {
+//            a.error(var5.getMessage(), var5);
+//            return Result.error(var5.getMessage());
+//        }
+//
+//        return Result.OK(var2);
+//    }
+//
+//    @GetMapping({"/field/tree/{reportId}"})
+//    @JimuLoginRequired
+//    public Result<?> b(HttpServletRequest var1, @PathVariable("reportId") String var2) {
+//        a.debug("============fieldTree==========");
+//        Object var3 = new ArrayList();
+//
+//        try {
+//            var3 = this.reportDbService.fieldTree(var2);
+//        } catch (Exception var5) {
+//            var5.printStackTrace();
+//        }
+//
+//        return Result.OK(var3);
+//    }
+//
+//    @GetMapping({"/queryIsPage/{reportId}"})
+//    @JimuLoginRequired
+//    public Result<?> c(HttpServletRequest var1, @PathVariable("reportId") String var2) {
+//        boolean var3 = this.reportDbService.queryIsPage(var2);
+//        return Result.OK(var3);
+//    }
+//
+//    @GetMapping({"loadDbData/{dbId}"})
+//    @JimuLoginRequired
+//    public Result<?> d(HttpServletRequest var1, @PathVariable("dbId") String var2) {
+//        a.debug("============loadDbData==========");
+//        Map var3 = this.reportDbService.loadDbData(var2);
+//        return Result.OK(var3);
+//    }
+//
+//    @GetMapping({"initDataSource"})
+//    @JimuLoginRequired
+//    public Result<?> b(HttpServletRequest var1) {
+//        a.debug("============initDataSource==========");
+//        String var2 = "";
+//        if (this.jmBaseConfig.getSaas()) {
+//            var2 = this.jimuTokenClient.getUsername(var1);
+//        }
+//
+//        List var3 = this.reportDbService.initDataSource(var2);
+//        return Result.OK(var3);
+//    }
+//
+//    @GetMapping({"/delDbData/{dbId}"})
+//    @JimuLoginRequired
+//    public Result<?> e(HttpServletRequest var1, @PathVariable("dbId") String var2) {
+//        a.debug("============delDbData==========");
+//        this.reportDbService.delDbData(var2);
+//        return Result.OK();
+//    }
+//
+//    @PostMapping({"/deleteParamByIds"})
+//    @JimuLoginRequired
+//    public Result<?> b(HttpServletRequest var1, @RequestBody JSONObject var2) {
+//        a.debug("============deleteParamByIds==========");
+//        JSONArray var3 = var2.getJSONArray("selectIds");
+//        String var4 = var2.getString("id");
+//        String var5 = var2.getString("dbDynSql");
+//        this.jmReportDbParamService.deleteParamByIdsAndUpdateDbSql(var3, var4, var5);
+//        return Result.OK();
+//    }
+//
+//    @DeleteMapping({"/deleteFieldByIds"})
+//    @JimuLoginRequired
+//    public Result<?> f(HttpServletRequest var1, @RequestBody String var2) {
+//        a.debug("============deleParams==========");
+//        this.jmReportDbFieldService.deleteByIds(var2);
+//        return Result.OK();
+//    }
+//
+//    @DeleteMapping({"/delete"})
+//    @ResponseBody
+//    @JimuLoginRequired
+//    public Result<?> g(HttpServletRequest var1, @RequestParam(name = "id", required = true) String var2) {
+//        JimuReport var3 = new JimuReport();
+//        var3.setId(var2);
+//        var3.setDelFlag(1);
+//        this.jmReportDesignService.updateById(var3);
+//        return Result.OK("删除成功!", true);
+//    }
+//
+//    @GetMapping({"/reportCopy"})
+//    @ResponseBody
+//    @JimuLoginRequired
+//    public Result<?> h(HttpServletRequest var1, @RequestParam(name = "id", required = true) String var2) {
+//        try {
+//            String var3 = this.jimuTokenClient.getUsername(var1);
+//            JimuReport var4 = new JimuReport();
+//            var4.setCreateBy(var3);
+//            Date var5 = new Date();
+//            var4.setCreateTime(var5);
+//            var4.setUpdateTime(var5);
+//            var4.setId(var2);
+//            this.jmReportDesignService.reportCopy(var4);
+//        } catch (Exception var6) {
+//            var6.printStackTrace();
+//            return Result.error(403, "您没有权限");
+//        }
+//
+//        return Result.OK("复制成功!", true);
+//    }
+//
+//    @GetMapping({"/setTemplate"})
+//    @ResponseBody
+//    @JimuLoginRequired
+//    public Result<?> a(HttpServletRequest var1, @RequestParam(name = "id", required = true) String var2, @RequestParam(name = "template", required = true) Integer var3) {
+//        JimuReport var4 = new JimuReport();
+//        var4.setId(var2);
+//        var4.setTemplate(var3);
+//        Integer var5 = this.jmReportDesignService.updateById(var4);
+//        boolean var6 = false;
+//        if (var5 > 0) {
+//            var6 = true;
+//        }
+//
+//        return Result.OK("设置成功!", var6);
+//    }
+//
+//    @PostMapping({"/importExcel"})
+//    @ResponseBody
+//    @JimuLoginRequired
+//    public Result<Object> a(HttpServletRequest var1, @RequestParam("file") MultipartFile var2) throws IOException {
+//        Result var3 = new Result();
+//        Map var4 = this.jmReportDesignService.importExcel(var2);
+//        if (var4.size() > 0 && !var4.isEmpty()) {
+//            var3.setResult(var4);
+//            var3.setSuccess(true);
+//        } else {
+//            var3.setSuccess(false);
+//        }
+//
+//        return var3;
+//    }
+//
+//    @PostMapping({"/exportAllExcel"})
+//    @ResponseBody
+//    public Result<Object> a(HttpServletRequest var1, HttpServletResponse var2, @RequestBody JSONObject var3) throws IOException {
+//        HashMap var4 = new HashMap(var1.getParameterMap());
+//        boolean var5 = var4.containsKey("token");
+//        if (var5) {
+//            var4.remove("token");
+//        }
+//
+//        String var6 = var3.getString("excelConfigId");
+//        JSONObject var7 = var3.getJSONObject("queryParam");
+//        long var8 = System.currentTimeMillis();
+//        JSONArray var10 = var3.getJSONArray("base64Arry");
+//        Map var11 = this.exportExcel.exportExcel(var6, var7, var10);
+//        File var12 = new File(var11.get("name").toString());
+//        ServletOutputStream var13 = var2.getOutputStream();
+//        SXSSFWorkbook var14 = (SXSSFWorkbook) var11.get("workbook");
+//        ByteArrayOutputStream var15 = new ByteArrayOutputStream();
+//        HashMap var16 = new HashMap();
+//
+//        try {
+//            var14.write(var15);
+//            String var17 = Base64Utils.encodeToString(var15.toByteArray());
+//            var16.put("file", var17);
+//            var16.put("success", true);
+//            var16.put("name", var12.getName());
+//        } catch (IOException var26) {
+//            var26.printStackTrace();
+//            var16.put("error", var26.getMessage());
+//        } finally {
+//            try {
+//                var15.close();
+//            } catch (IOException var25) {
+//                var25.printStackTrace();
+//            }
+//
+//        }
+//
+//        long var28 = System.currentTimeMillis();
+//        a.info("导出excel数据运行时间:" + (var28 - var8) + "ms");
+//        return Result.OK(var16);
+//    }
+//
+//    @PostMapping({"/exportEmptyExcel"})
+//    @ResponseBody
+//    public Result<Object> exportEmptyExcel(HttpServletRequest var1, HttpServletResponse var2, @RequestBody JSONObject var3) throws IOException {
+//        HashMap var4 = new HashMap(var1.getParameterMap());
+//        boolean var5 = var4.containsKey("token");
+//        if (var5) {
+//            var4.remove("token");
+//        }
+//
+//        String var6 = var3.getString("excelConfigId");
+//        JSONObject var7 = var3.getJSONObject("queryParam");
+//        long var8 = System.currentTimeMillis();
+//        JSONArray var10 = var3.getJSONArray("base64Arry");
+////        Map var11 = this.exportExcelService.exportEmptyExcel(var6, var7, var10);
+//        Map var11 = null;
+//        File var12 = new File(var11.get("name").toString());
+//        ServletOutputStream var13 = var2.getOutputStream();
+//        SXSSFWorkbook var14 = (SXSSFWorkbook) var11.get("workbook");
+//        ByteArrayOutputStream var15 = new ByteArrayOutputStream();
+//        HashMap var16 = new HashMap();
+//
+//        try {
+//            var14.write(var15);
+//            String var17 = Base64Utils.encodeToString(var15.toByteArray());
+//            var16.put("file", var17);
+//            var16.put("success", true);
+//            var16.put("name", var12.getName());
+//        } catch (IOException var26) {
+//            var26.printStackTrace();
+//            var16.put("error", var26.getMessage());
+//        } finally {
+//            try {
+//                var15.close();
+//            } catch (IOException var25) {
+//                var25.printStackTrace();
+//            }
+//
+//        }
+//
+//        long var28 = System.currentTimeMillis();
+//        a.info("导出excel数据运行时间:" + (var28 - var8) + "ms");
+//        return Result.OK(var16);
+//    }
+//
+//    @RequestMapping({"/print"})
+//    public void a(HttpServletResponse var1, HttpServletRequest var2) throws Exception {
+//        HashMap var3 = new HashMap();
+//        this.a((HttpServletRequest) var2, (HttpServletResponse) var1, (Map) var3, (String) "jmreport/desreport/print.ftl");
+//    }
+//
+//    @PostMapping({"/putFile"})
+//    @ResponseBody
+//    @JimuLoginRequired
+//    public Result<JimuReport> i(HttpServletRequest var1, @RequestParam String var2) {
+//        Result var3 = new Result();
+//
+//        try {
+//            MultipartHttpServletRequest var4 = (MultipartHttpServletRequest) var1;
+//            MultipartFile var5 = var4.getFile("file");
+//            String var6 = "";
+//            String var7 = this.jimuReportUploadConfig.getUploadType();
+//            if ("alioss".equals(var7)) {
+//                var6 = OssBootUtil.upload(var5, "designreport/images");
+//            } else if ("minio".equals(var7)) {
+//                var6 = MinioUtil.upload(var5, "designreport/images");
+//            } else {
+//                var6 = this.a(var5, "excel_online");
+//            }
+//
+//            JimuReport var8 = new JimuReport();
+//            if (oConvertUtils.isNotEmpty(var6) && oConvertUtils.isNotEmpty(var2)) {
+//                var8.setId(var2);
+//                var8.setThumb(var6);
+//                this.jmReportDesignService.updateById(var8);
+//                var3.setMessage("封面图上传成功!");
+//                var3.setResult(var8);
+//            }
+//        } catch (Exception var9) {
+//            var3.setSuccess(false);
+//            var3.setMessage("");
+//            a.error(var9.getMessage(), var9);
+//        }
+//
+//        return var3;
+//    }
+//
+//    @GetMapping({"/download/image"})
+//    @ResponseBody
+//    public Result<Object> f(HttpServletRequest var1, HttpServletResponse var2) throws IOException {
+//        String var3 = var1.getParameter("imageUrl");
+//        Result var4 = new Result();
+//        if (oConvertUtils.isEmpty(var3)) {
+//            var4.setSuccess(false);
+//            return var4;
+//        } else {
+//            if (!var3.contains("http")) {
+//                var4.setSuccess(true);
+//                var4.setResult(var3);
+//            }
+//
+//            String var5 = File.separator + "designreport" + File.separator + "images" + File.separator;
+//            String var6 = var3.substring(var3.lastIndexOf("/") + 1);
+//            String var7 = this.jimuReportUploadConfig.getPath().getUpload();
+//            File var8 = new File(var7 + var5);
+//            if (!var8.exists()) {
+//                var8.mkdirs();
+//            }
+//
+//            a.debug("----imageUrl------" + var3);
+//            a.debug("----fileName------" + var6);
+//            a.debug("----downFilePath------" + var7 + var5 + var6);
+//            File var9 = new File(var7 + var5 + var6);
+//            if (!var9.exists()) {
+//                d.a(var3, var9);
+//            }
+//
+//            var4.setSuccess(true);
+//            var4.setResult(var5 + var6);
+//            return var4;
+//        }
+//    }
+//
+//    private String a(MultipartFile var1, String var2) {
+//        try {
+//            String var3 = this.jimuReportUploadConfig.getPath().getUpload();
+//            a.info(" --- local upload path : " + var3 + " --- ");
+//            String var4 = null;
+//            File var5 = new File(var3 + File.separator + var2 + File.separator);
+//            if (!var5.exists()) {
+//                var5.mkdirs();
+//            }
+//
+//            String var6 = var1.getOriginalFilename();
+//            var6 = CommonUtils.getFileName(var6);
+//            if (var6.indexOf(".") != -1) {
+//                var4 = var6.substring(0, var6.lastIndexOf(".")) + "_" + System.currentTimeMillis() + var6.substring(var6.indexOf("."));
+//            } else {
+//                var4 = var6 + "_" + System.currentTimeMillis();
+//            }
+//
+//            String var7 = var5.getPath() + File.separator + var4;
+//            File var8 = new File(var7);
+//            FileCopyUtils.copy(var1.getBytes(), var8);
+//            String var9 = null;
+//            if (oConvertUtils.isNotEmpty(var2)) {
+//                var9 = var2 + File.separator + var4;
+//            } else {
+//                var9 = var4;
+//            }
+//
+//            if (var9.contains("\\")) {
+//                var9 = var9.replace("\\", "/");
+//            }
+//
+//            return var9;
+//        } catch (IOException var10) {
+//            a.error(var10.getMessage(), var10);
+//            return "";
+//        }
+//    }
+//
+//    @PostMapping({"/addDataSource"})
+//    @JimuLoginRequired
+//    public Result<?> a(HttpServletRequest var1, @RequestBody JmReportDataSource var2) {
+//        return this.reportDbService.addDataSource(var2, var1);
+//    }
+//
+//    @PostMapping({"/querySourceCode"})
+//    @JimuLoginRequired
+//    public Result<?> b(HttpServletRequest var1, @RequestBody JmReportDataSource var2) {
+//        boolean var3 = this.reportDbService.querySourceCode(var2);
+//        return Result.OK(var3);
+//    }
+//
+//    @PostMapping({"/delDataSource"})
+//    @JimuLoginRequired
+//    public Result<?> c(HttpServletRequest var1, @RequestBody JmReportDataSource var2) {
+//        this.reportDbService.delDataSource(var2);
+//        return Result.OK("删除成功", true);
+//    }
+//
+//    @PostMapping({"/testConnection"})
+//    public Result a(@RequestBody JmreportDynamicDataSourceVo var1) {
+//        Connection var2 = null;
+//
+//        Result var3;
+//        try {
+//            Result var4;
+//            try {
+//                Class.forName(var1.getDbDriver());
+//                DriverManager.setLoginTimeout(10);
+//                var2 = DriverManager.getConnection(var1.getDbUrl(), var1.getDbUsername(), var1.getDbPassword());
+//                if (var2 != null) {
+//                    var3 = Result.OK("数据库连接成功", true);
+//                    return var3;
+//                }
+//
+//                var3 = Result.OK("数据库连接失败:错误未知", true);
+//            } catch (ClassNotFoundException var17) {
+//                a.error(var17.toString());
+//                var4 = Result.error("数据库连接失败:驱动类不存在");
+//                return var4;
+//            } catch (Exception var18) {
+//                a.error(var18.toString());
+//                var4 = Result.error("数据库连接失败:" + var18.getMessage());
+//                return var4;
+//            }
+//        } finally {
+//            try {
+//                if (var2 != null && !var2.isClosed()) {
+//                    var2.close();
+//                }
+//            } catch (SQLException var16) {
+//                a.error(var16.toString());
+//            }
+//
+//        }
+//
+//        return var3;
+//    }
+//
+//    @RequestMapping({"/qurestApi"})
+//    public Result<?> b(@RequestParam(name = "apiSelectId") String var1, HttpServletRequest var2) {
+//        String var3 = "";
+//        JmReportDb var4 = this.reportDbService.getById(var1);
+//        if (var4 == null) {
+//            return Result.ok("");
+//        } else {
+//            String var5 = var2.getParameter("token");
+//            if (oConvertUtils.isEmpty(var5)) {
+//                var5 = var2.getHeader("token");
+//            }
+//
+//            String var6 = var4.getApiUrl();
+//            Map var7 = this.jimuTokenClient.getUserInfo(var5);
+//            var6 = d.a(var6, var7, this.jmBaseConfig.getApiBasePath());
+//            List var8 = this.jmReportDbParamService.list(var4.getId());
+//            HashMap var9;
+//            Iterator var10;
+//            JmReportDbParam var11;
+//            if ("1".equals(var4.getDbType())) {
+//                var9 = new HashMap();
+//                var10 = var8.iterator();
+//
+//                while (var10.hasNext()) {
+//                    var11 = (JmReportDbParam) var10.next();
+//                    if (var6.indexOf(var11.getParamName()) > 0) {
+//                        var9.put(var11.getParamName(), var11.getParamValue());
+//                    }
+//                }
+//
+//                String var15 = FreeMarkerUtils.a(var6, var9);
+//                var15 = var15.replace("'", "");
+//                if ("0".equals(var4.getApiMethod())) {
+//                    var3 = d.b(var15, var5);
+//                } else {
+//                    var3 = d.a(var15, var5, (JSONObject) null);
+//                }
+//
+//                JSONObject var17 = JSONObject.parseObject(var3);
+//                return Result.OK(var17);
+//            } else if ("3".equals(var4.getDbType())) {
+//                JSONObject var13 = JSONObject.parseObject(var4.getJsonData());
+//                return Result.OK(var13);
+//            } else if (!"2".equals(var4.getDbType())) {
+//                return null;
+//            } else {
+//                var9 = new HashMap();
+//                var10 = var8.iterator();
+//
+//                while (var10.hasNext()) {
+//                    var11 = (JmReportDbParam) var10.next();
+//                    var9.put(var11.getParamName(), var11.getParamValue());
+//                }
+//
+//                JSONObject var14 = JSONObject.parseObject(var4.getJsonData());
+//                IDataSetFactory var16 = d.d(var4.getJavaType(), var4.getJavaValue());
+//                if ("1".equals(var4.getIsPage())) {
+//                    var16.createPageData(var9);
+//                    return Result.OK(var14);
+//                } else {
+//                    List var12 = var16.createData(var9);
+//                    return Result.OK(var12);
+//                }
+//            }
+//        }
+//    }
+//
+//    @RequestMapping({"/qurestSql"})
+//    public Result<?> c(@RequestParam(name = "apiSelectId") String var1, HttpServletRequest var2) {
+//        JmReportDb var3 = this.reportDbService.getById(var1);
+//        List var4 = this.reportDbService.qurestechSql(var3);
+//        this.jmReportDesignService.replaceDbCode(var1, var4);
+//        return Result.OK(d.b(var4));
+//    }
+//
+//    @GetMapping({"/dataCodeExist"})
+//    public Result<Boolean> a(@RequestParam(name = "reportId") String var1, @RequestParam(name = "code") String var2) {
+//        int var3 = this.reportDbService.getCount(var1, var2);
+//        return Result.OK(var3 > 0);
+//    }
+//
+//    @GetMapping({"/getQueryInfo"})
+//    public Result<List<QueryVO>> a(@RequestParam(name = "reportId") String var1, HttpServletRequest var2, @RequestParam("param") String var3) {
+//        String var4 = this.jimuTokenClient.getUsername(var2);
+//        if (!this.jmBaseConfig.getSaas()) {
+//            var4 = "";
+//        }
+//
+//        List var5 = this.jmReportDesignService.getReportQueryInfo(var1, var4, var3);
+//        return Result.OK(var5);
+//    }
+//
+//    @RequestMapping({"/addChart"})
+//    @JimuLoginRequired
+//    public Result<?> d(@RequestParam(name = "chartType") String var1, HttpServletRequest var2) {
+//        JSONObject var3 = this.jmReportDesignService.addChart(var1);
+//        return Result.OK(var3);
+//    }
+//
+//    @PostMapping({"/queryTableName"})
+//    public Result<?> a(HttpServletRequest var1, @RequestParam("dbSource") String var2, @RequestParam("tableName") String var3, @RequestParam(name = "pageNo", defaultValue = "1") Integer var4, @RequestParam(name = "pageSize", defaultValue = "50") Integer var5) {
+//        List var6 = this.reportDbService.queryTableName(var2, var3);
+//        Map var7 = e.a(var6, var4, var5);
+//        return Result.OK(var7);
+//    }
+//
+//    @GetMapping({"/getReportByUser"})
+//    public Result<List<JimuReport>> j(HttpServletRequest var1, @RequestParam(name = "reportId") String var2) {
+//        Result var3 = new Result();
+//        String var4 = this.jimuTokenClient.getUsername(var1);
+//        List var5 = this.jmReportDesignService.getReportByUser(var4, var2);
+//        var3.setSuccess(true);
+//        var3.setResult(var5);
+//        return var3;
+//    }
+//
+//    @GetMapping({"/getReportChars"})
+//    public Result<List<JSONObject>> b(@RequestParam(name = "reportId") String var1, @RequestParam(name = "charId", required = false) String var2) {
+//        ArrayList var3 = new ArrayList();
+//        JimuReport var4 = this.jmReportDesignService.getById(var1);
+//        if (var4 != null) {
+//            String var5 = var4.getJsonStr();
+//            JSONObject var6 = JSONObject.parseObject(var5);
+//            Object var7 = var6.get("chartList");
+//            if (null != var7) {
+//                JSONArray var8 = JSONArray.parseArray(var7.toString());
+//
+//                for (int var9 = 0; var9 < var8.size(); ++var9) {
+//                    JSONObject var10 = new JSONObject();
+//                    Object var11 = var8.getJSONObject(var9).get("layer_id");
+//                    Object var12 = var8.getJSONObject(var9).get("config");
+//                    JSONObject var13 = JSONObject.parseObject(var12.toString());
+//                    JSONObject var14 = var13.getJSONObject("title");
+//                    Object var15 = var14.get("text");
+//                    if (null != var15 && null != var11) {
+//                        if (oConvertUtils.isNotEmpty(var2) && !var2.equals(var11)) {
+//                            var10.put("id", var11);
+//                            var10.put("name", var15);
+//                            var3.add(var10);
+//                        }
+//
+//                        if (oConvertUtils.isEmpty(var2)) {
+//                            var10.put("id", var11);
+//                            var10.put("name", var15);
+//                            var3.add(var10);
+//                        }
+//                    }
+//                }
+//            }
+//        }
+//
+//        return Result.OK(var3);
+//    }
+//
+//    @GetMapping({"/getCharData"})
+//    public Result<JSONObject> a(@RequestParam(name = "reportId") String var1, @RequestParam(name = "charId") String var2, @RequestParam(name = "params") String var3, HttpServletRequest var4) {
+//        String var5 = var4.getParameter("X-Access-Token");
+//        JSONObject var6 = this.jmReportDesignService.getCharData(var1, var2, var3, var5);
+//        return Result.OK(var6);
+//    }
+//
+//    @GetMapping({"/verificationToken"})
+//    public void c(HttpServletRequest var1) {
+//        this.jimuTokenClient.verifyToken(var1);
+//    }
+//
+//    @PostMapping({"/exportPdf"})
+//    public Result<Object> b(HttpServletRequest var1, HttpServletResponse var2, @RequestBody JSONObject var3) {
+//        HashMap var4 = new HashMap(var1.getParameterMap());
+//        boolean var5 = var4.containsKey("token");
+//        if (var5) {
+//            var4.remove("token");
+//        }
+//
+//        String var6 = var3.getString("excelConfigId");
+//        JSONObject var7 = var3.getJSONObject("queryParam");
+//        var7.put("printAll", true);
+//        Result var8 = this.jmReportDesignService.show(var6, var7.toJSONString());
+//        JimuReport var9 = (JimuReport) var8.getResult();
+//        String var10 = var1.getParameter("dpi");
+//        float var11 = 96.0F;
+//        if (oConvertUtils.isNotEmpty(var10)) {
+//            var11 = Float.parseFloat(var10);
+//        }
+//
+//        JSONArray var12 = var3.getJSONArray("base64Arry");
+//        Map var13 = this.jmReportExportPdf.exportPdf(var9, var12, var11);
+//        return Result.OK(var13);
+//    }
+//
+//    @GetMapping({"/getLinkageChartInfo"})
+//    public Result<Object> d(HttpServletRequest var1) {
+//        String var2 = var1.getParameter("reportId");
+//        String var3 = var1.getParameter("dbCode");
+//        String var4 = var1.getParameter("linkageDbCode");
+//        List var5 = this.jmReportDbParamService.queryParamByDbcode(var2, var4);
+//        List var6 = this.jmReportDbFieldService.queryFieldsByDbcode(var2, var3);
+//        HashMap var7 = new HashMap();
+//        var7.put("paramList", var5);
+//        var7.put("fieldList", var6);
+//        return Result.OK(var7);
+//    }
+//
+//    @GetMapping({"/getListReportDb"})
+//    public Result<Map<String, Object>> c(@RequestParam(name = "reportId") String var1) {
+//        HashMap var2 = new HashMap();
+//        List var3 = this.reportDbService.getListReportDb(var1);
+//        new HashMap();
+//        HashMap var5 = new HashMap();
+//        Iterator var6 = var3.iterator();
+//
+//        while (var6.hasNext()) {
+//            JmReportDb var7 = (JmReportDb) var6.next();
+//            List var8 = this.jmReportDbParamService.list(var7.getId());
+//            var5.put(var7.getDbCode(), var8);
+//        }
+//
+//        var2.put("reportDbParam", var5);
+//        return Result.OK(var2);
+//    }
+//
+//    @GetMapping({"/dictCodeSearch"})
+//    public Result<List<JmDictModel>> a(@RequestParam(name = "key") String var1, @RequestParam(name = "text") String var2, @RequestParam(name = "reportId") String var3) {
+//        Result var4 = new Result();
+//        List var5 = this.reportDbService.getListReportDb(var3);
+//        String var6 = this.jimuTokenClient.getUsername();
+//        if (oConvertUtils.isEmpty(var1)) {
+//            return null;
+//        } else {
+//            String[] var7 = var1.split("__");
+//            Iterator var8 = var5.iterator();
+//
+//            while (true) {
+//                JmReportDb var9;
+//                do {
+//                    do {
+//                        if (!var8.hasNext()) {
+//                            return null;
+//                        }
+//
+//                        var9 = (JmReportDb) var8.next();
+//                    } while (var7.length != 2);
+//                } while (!var7[0].equals(var9.getDbCode()));
+//
+//                List var10 = this.jmReportDbFieldService.getByDbId(var9.getId());
+//                Iterator var11 = var10.iterator();
+//
+//                while (var11.hasNext()) {
+//                    JmReportDbField var12 = (JmReportDbField) var11.next();
+//                    if (var12.getFieldName().equals(var7[1])) {
+//                        new JSONObject();
+//                        List var14 = this.jmReportDesignService.queryQueryDictList(var9, var12, var6, var2, (String) null);
+//                        var4.setResult(var14);
+//                        var4.setSuccess(true);
+//                        return var4;
+//                    }
+//                }
+//            }
+//        }
+//    }
+//}

+ 1 - 1
boman-report/src/main/resources/static/jmreport/desreport_/corelib/jmsheet.js

@@ -59878,7 +59878,7 @@
                 print_all: "Canvas打印",
                 print_table: "Html打印",
                 export: "导出",
-                exportExcel_empty: "导出模板",
+                // exportExcel_empty: "导出模板",
                 pdf: "PDF",
                 slider: "清晰度",
                 back_previous: "返回上一页"

+ 1 - 1
boman-report/src/main/resources/static/jmreport/desreport_/corelib/locale/en.js

@@ -90,7 +90,7 @@
             print_all: "Canvas Print",
             print_table: "Html Print",
             export: "导出",
-            exportExcel_empty: "导出模板",
+            // exportExcel_empty: "导出模板",
             pdf: "PDF",
             slider: "清晰度",
             back_previous: "返回上一页"

+ 1 - 1
boman-report/src/main/resources/static/jmreport/desreport_/corelib/locale/zh-cn.js

@@ -92,7 +92,7 @@
                 print_all: "Canvas打印",
                 print_table: "Html打印",
                 export: "导出",
-                exportExcel_empty: "导出模板",
+                // exportExcel_empty: "导出模板",
                 pdf: "PDF",
                 slider: "清晰度",
                 back_previous: "返回上一页"