Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r41192 -r41223 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 41192) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 41223) @@ -435,9 +435,9 @@ } session.setAttribute("jasperPrintForPrint", jasperPrintForPrint); String fileName = (String) (parametMap.get("title")==null?"未命名":parametMap.get("title")); - - StrutsParamUtils.getRequest().getSession() - .setAttribute("fileName", fileName); + session.setAttribute("fileName", fileName); + session.setAttribute("startTime", parameters.get("startTime")); + session.setAttribute("endTime", parameters.get("endTime")); } catch (Exception e) { e.printStackTrace(); } Index: ssts-web/src/main/webapp/jasperRtp/exportReport.jsp =================================================================== diff -u -r35613 -r41223 --- ssts-web/src/main/webapp/jasperRtp/exportReport.jsp (.../exportReport.jsp) (revision 35613) +++ ssts-web/src/main/webapp/jasperRtp/exportReport.jsp (.../exportReport.jsp) (revision 41223) @@ -6,18 +6,29 @@ <%@page import="net.sf.jasperreports.j2ee.servlets.ImageServlet"%> <%@page import="java.io.IOException"%> <%@page import="java.io.OutputStream"%> +<%@page import="com.forgon.tools.SpringBeanManger"%> <%@page import="net.sf.jasperreports.engine.JRExporterParameter"%> <%@page import="net.sf.jasperreports.engine.export.JExcelApiExporter"%> <%@page import="net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter"%> <%@page import="net.sf.jasperreports.engine.JasperPrint"%> -<% +<%@page import="com.forgon.directory.vo.LoginUserData"%> +<%@page import="com.forgon.directory.acegi.tools.AcegiHelper"%> +<%@page import="org.springframework.context.ApplicationContext"%> +<%@page import="com.forgon.log.dwr.table.LogTableManager"%> +<%@page import="java.text.DecimalFormat"%> +<% +long start = System.currentTimeMillis(); Object obj = session.getAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE); JasperPrint jasperPrint = null; if(obj instanceof JasperPrint){ jasperPrint = (JasperPrint)obj; } +//获取Spring上下文和LogManager Bean +ApplicationContext ctx = SpringBeanManger.getApplicationContext(); +LogTableManager logTableManager = (LogTableManager)ctx.getBean("logTableManager"); OutputStream outputStream = null; + String filename = ""; try { //out.clear(); //清空缓存的内容 //out = pageContext.pushBody(); @@ -29,9 +40,11 @@ appointFileName = ""; } if(appointFileName == ""){ - response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(session.getAttribute("fileName") + appointFileName +".xlsx", "UTF-8")); + filename = session.getAttribute("fileName") + appointFileName; + response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(filename +".xlsx", "UTF-8")); }else{ - response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(appointFileName +".xlsx", "UTF-8")); + filename = appointFileName; + response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(filename +".xlsx", "UTF-8")); } }catch (IOException e) { @@ -52,6 +65,23 @@ outputStream.close(); out.clear(); out = pageContext.pushBody(); + if (logTableManager != null && filename.contains("明细核算月报")) { + try { + // 计算耗时 + long totalTime = System.currentTimeMillis() - start; + + // 格式化时间 + DecimalFormat df = new DecimalFormat("0.00"); + double totalSeconds = totalTime * 1.00 / 1000; + // 根据LogManager的实际方法进行调整 + logTableManager.log("报表管理","导出报表","导出了【"+ session.getAttribute("fileName") +"】,总耗时【"+totalSeconds+"】秒,查询条件:开始时间:【" + +session.getAttribute("startTime") + + "】结束时间:【"+session.getAttribute("endTime") + +"】"); + } catch (Exception e) { + e.printStackTrace(); + } + } } catch (JRException e) { e.printStackTrace(); }