package com.cms.web.controller.project;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.cms.utils.y;
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.b.d;
import org.jeecg.modules.jmreport.common.b.g;
import org.jeecg.modules.jmreport.common.constant.c;
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.JimuReportDbDao;
import org.jeecg.modules.jmreport.desreport.entity.JimuReport;
import org.jeecg.modules.jmreport.desreport.entity.JmReportDb;
import org.jeecg.modules.jmreport.desreport.model.DbModel;
import org.jeecg.modules.jmreport.desreport.model.ReportDbInfo;
import org.jeecg.modules.jmreport.desreport.render.utils.ExcelColumn;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
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;
@Service("jmExportExcelImpl")
@Primary
public class jmExportExcelImpl implements IJmReportExportExcel {
private static final Logger a = LoggerFactory.getLogger(com.cms.web.controller.project.jmExportExcelImpl.class);
@Autowired
private e jmReportDesignService;
@Autowired
private JmReportBaseConfig jmBaseConfig;
@Autowired
private JmReportUploadConfig jimuReportUploadConfig;
@Autowired
private JimuReportDbDao jimuReportDbDao;
public Map<String, Object> exportExcel(String excelConfigId, JSONObject queryParam, List echartBase) {
XSSFWorkbook var4 = new XSSFWorkbook();
SXSSFWorkbook var5 = new SXSSFWorkbook(var4, -1, Boolean.FALSE, Boolean.TRUE);
String var6 = "";
Map var7 = this.d(excelConfigId);
Object var8 = var7.get("dbList");
Object var9 = var7.get("moredbSource");
byte var10 = 1;
HashMap var11 = new HashMap(5);
XSSFCellStyle var12 = this.a(var5);
var11.put("generalStyle", var12);
if (g.d(var8)) {
boolean var13 = (Boolean)var9;
String var14 = (String)var7.get("pageCode");
List var15 = (List)var7.get("upCodeList");
List var16 = (List)var7.get("downCodeList");
a.debug("多数据源导出excel");
Map var17;
if (!var13) {
a.debug("全部导出excel");
var17 = this.a(excelConfigId, queryParam, (String)null, var6, echartBase, var4, var5, var10, var11);
var6 = String.valueOf(var17.get("name"));
} else {
a.debug("分页导出excel");
a.debug("分页数据源的code:" + var14);
var17 = this.a(queryParam, excelConfigId, var6, echartBase, var4, var5, var11, var14, var15, var16);
var6 = String.valueOf(var17.get("name"));
}
} else {
a.debug("编码不存在,全部导出");
Map var19 = this.a(excelConfigId, queryParam, (String)null, var6, echartBase, var4, var5, var10, var11);
var6 = String.valueOf(var19.get("name"));
int var18 = Integer.valueOf(String.valueOf(var19.get("sheetKey")));
}
HashMap var20 = new HashMap(5);
var20.put("name", var6 + ".xlsx");
var20.put("workbook", var5);
return var20;
}
private Map<String, Object> a(String var1, JSONObject var2, String var3, String var4, List var5, XSSFWorkbook var6, SXSSFWorkbook var7, int var8, Map<String, CellStyle> var9) {
var2.put("printAll", true);
Result var10 = this.jmReportDesignService.show(var1, var2.toJSONString(), (List)null);
//查询样式
JimuReport var11 = (JimuReport)var10.getResult();
var4 = var11.getName();
//
JSONObject var12 = JSON.parseObject(var11.getJsonStr());
this.a(var12, var5, var7, var6, var8, var9);
++var8;
HashMap var13 = new HashMap(5);
var13.put("sheetKey", var8);
var13.put("name", var4);
return var13;
}
private Map<String, Object> a(JSONObject var1, String var2, String var3, List var4, XSSFWorkbook var5, SXSSFWorkbook var6, Map<String, CellStyle> var7, String var8, List<String> var9, List<String> var10) {
boolean var11 = true;
HashMap var12 = new HashMap(5);
new HashMap(5);
Integer var14 = this.jmBaseConfig.getPageSizeNumber();
if (null == var1 || var1.size() == 0) {
var1 = new JSONObject();
}
int var15 = 1;
int var16 = 0;
for(boolean var17 = false; var11; ++var15) {
if (g.c(var14)) {
var14 = 10000;
}
if (g.d(var14) && "0".equals(String.valueOf(var14))) {
var14 = 10000;
}
a.debug("每页页数:", var14);
var1.put("pageNo", var15);
var1.put("pageSize", var14);
new HashMap(5);
Map var18;
if (var17) {
a.debug("数据源code长度:", var9.size());
var18 = this.a(var2, var1, var9, var8, var14);
} else {
a.debug("数据源code长度:", var10.size());
var18 = this.a(var2, var1, var10, var8, var14);
}
long var19 = (Long)var18.get("pageCount");
a.debug("总数量:", var19);
if (var19 == 0L) {
var11 = false;
}
if (var19 == (long)var15) {
var11 = false;
}
if ((long)var15 == var19 - 1L && var10.size() > 0) {
var17 = true;
}
boolean var21 = var19 == (long)var15 || var19 == 0L;
if (var21 && var16 == 0) {
a.debug("进入最后一页,或者第一次进入的时候页数为0", var16);
var18 = this.a(var2, var1, (List)null, var8, var14);
}
JSONObject var22 = (JSONObject)var18.get("excelObject");
var3 = (String)var18.get("name");
this.a(var22, var4, var6, var5, var16 + 1, var7);
++var16;
}
var12.put("name", var3);
return var12;
}
public Map<String, Object> a(String var1, JSONObject var2, List<String> var3, String var4, int var5) {
HashMap var6 = new HashMap(5);
a.debug("数据源集合数据::" + var3);
Result var7 = this.jmReportDesignService.show(var1, var2.toJSONString
评论0