|
|
@@ -2,7 +2,6 @@ package com.uas.report.controller;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.io.OutputStream;
|
|
|
-import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
@@ -54,21 +53,19 @@ public class PrintController {
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping("/export")
|
|
|
- public String export(String userName, String reportName, String whereCondition,
|
|
|
- Map<String, Object> otherParameters, String exportFileType, HttpServletRequest request,
|
|
|
- HttpServletResponse response) {
|
|
|
+ @ResponseBody
|
|
|
+ public void export(String userName, String reportName, String whereCondition, Map<String, Object> otherParameters,
|
|
|
+ String exportFileType, HttpServletRequest request, HttpServletResponse response) {
|
|
|
String message = "";
|
|
|
if (StringUtils.isEmpty(userName)) {
|
|
|
message = "未传入当前账套用户名!";
|
|
|
logger.error(message);
|
|
|
- request.setAttribute("message", message);
|
|
|
- return "error.jsp";
|
|
|
+ throw new SystemError(message);
|
|
|
}
|
|
|
if (StringUtils.isEmpty(reportName)) {
|
|
|
message = "报表名称无效!";
|
|
|
logger.error(message);
|
|
|
- request.setAttribute("message", message);
|
|
|
- return "error.jsp";
|
|
|
+ throw new SystemError(message);
|
|
|
}
|
|
|
|
|
|
logger.info("开始导出报表: " + reportName);
|
|
|
@@ -78,10 +75,9 @@ public class PrintController {
|
|
|
|
|
|
byte[] data = printService.export(userName, reportName, whereCondition, otherParameters, exportFileType);
|
|
|
if (ArrayUtils.isEmpty(data)) {
|
|
|
- message = "报表 " + reportName + " 导出失败!";
|
|
|
+ message = "报表导出失败: " + reportName;
|
|
|
logger.error(message);
|
|
|
- request.setAttribute("message", message);
|
|
|
- return "error.jsp";
|
|
|
+ throw new SystemError(message);
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
@@ -93,31 +89,7 @@ public class PrintController {
|
|
|
} catch (IOException e) {
|
|
|
logger.error("浏览器重复请求!");
|
|
|
}
|
|
|
-
|
|
|
- message = "报表 " + reportName + " 导出完成!";
|
|
|
- logger.info(message);
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 测试导出
|
|
|
- *
|
|
|
- * @param response
|
|
|
- * @return
|
|
|
- */
|
|
|
- @RequestMapping("/test")
|
|
|
- public String testPrint(HttpServletRequest request, HttpServletResponse response) {
|
|
|
- String reportName = "Purchase";
|
|
|
- // String userName = "UAS";
|
|
|
- // String whereCondition = "where pu_code = 'MP160800017' and pd_qty >
|
|
|
- // 1000";
|
|
|
- // 多账套测试
|
|
|
- String userName = "UAS_DEMO";
|
|
|
- String whereCondition = "where pu_code = 'YFMP160600001'";
|
|
|
- Map<String, Object> otherParameters = new HashMap<>();
|
|
|
- otherParameters.put("OTHER_PARAMETER_TEST", "天气真好!");
|
|
|
- String exportFileType = "xls";
|
|
|
- return export(userName, reportName, whereCondition, otherParameters, exportFileType, request, response);
|
|
|
+ logger.info("报表导出完成: " + reportName);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -139,11 +111,16 @@ public class PrintController {
|
|
|
@ResponseBody
|
|
|
public Map<String, Object> loadPdfData(String userName, String reportName, String whereCondition,
|
|
|
Map<String, Object> otherParameters, Integer pageIndex) {
|
|
|
+ String message = "";
|
|
|
if (StringUtils.isEmpty(userName)) {
|
|
|
- throw new SystemError("未传入当前账套用户名!");
|
|
|
+ message = "未传入当前账套用户名!";
|
|
|
+ logger.error(message);
|
|
|
+ throw new SystemError(message);
|
|
|
}
|
|
|
if (StringUtils.isEmpty(reportName)) {
|
|
|
- throw new SystemError("报表名称无效!");
|
|
|
+ message = "报表名称无效!";
|
|
|
+ logger.error(message);
|
|
|
+ throw new SystemError(message);
|
|
|
}
|
|
|
|
|
|
logger.info("开始预览报表: " + reportName);
|
|
|
@@ -154,7 +131,9 @@ public class PrintController {
|
|
|
data = (byte[]) result.get("data");
|
|
|
}
|
|
|
if (data == null) {
|
|
|
- throw new SystemError("获取预览数据失败");
|
|
|
+ message = "获取预览数据失败";
|
|
|
+ logger.error(message);
|
|
|
+ throw new SystemError(message);
|
|
|
}
|
|
|
// 对pdf流进行base64编码
|
|
|
result.put("data", Base64.encodeBase64String(data));
|