@Override
public void exportCsxxExcel(String xtbh, HttpServletRequest request, HttpServletResponse response) throws Exception {
ArrayList<Csxx> resultList = new ArrayList<>();
String agent = request.getHeader("User-Agent");
HashMap<String, Object> csflMap = new HashMap<>();
logger.info("下载运行参数系统编号为 : " + xtbh);
csflMap.put("xtbh", xtbh);
csflMap.put("scbj", 0);
List<Csfl> csflList = csflService.query(csflMap);
if (csflList == null) {
throw new RuntimeException("参数分类为空");
}
HashMap<String, Object> csxxMap = new HashMap<>();
csxxMap.put("scbj", 0);
List<Csxx> csxxList = csxxMapper.query(csxxMap);
if (csxxList == null) {
throw new RuntimeException("参数信息为空");
}
for (Csfl fl : csflList) {
for (Csxx cs : csxxList) {
if (fl.getBh().equals(cs.getCsflbh())) {
Csxx csxx = new Csxx();
csxx.setFlmc(fl.getFlmc());
csxx.setCsdm(cs.getCsdm());
csxx.setCsz(cs.getCsz());
csxx.setSm(cs.getSm());
resultList.add(csxx);
}
}
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
String date = dateFormat.format(new Date());
String fileName = "运行参数" + date + ".xlsx";
logger.info("文件名为 : " + fileName);
ExportParams params = new ExportParams();
params.setTitle("运行参数列表");
params.setSheetName("运行参数sheet");
Workbook workbook = ExcelExportUtil.exportExcel(params, Csxx.class, resultList);
response.setCharacterEncoding("UTF-8");
logger.info("用户浏览器 : " + agent);
String filenameEncoder = "";
if (agent.contains("MSIE")) {
filenameEncoder = URLEncoder.encode(fileName, "utf-8");
filenameEncoder = filenameEncoder.replace("+", " ");
} else if (agent.contains("Firefox")) {
BASE64Encoder base64Encoder = new BASE64Encoder();
filenameEncoder = "=?utf-8?B?" + base64Encoder.encode(fileName.getBytes("utf-8")) + "?=";
} else {
filenameEncoder = URLEncoder.encode(fileName, "utf-8");
}
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));
response.addHeader("Access-Control-Allow-Origin", "*");
OutputStream out = null;
try {
out = response.getOutputStream();
workbook.write(out);
} catch (Exception e) {
logger.error("写入模板异常:", e);
} finally {
out.close();
}
}