package edu.sjtu.infosec.ismp.manager.EM.web.reports;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import edu.sjtu.infosec.ismp.manager.EM.web.form.ReportEventGroupByForm;
import edu.sjtu.infosec.ismp.manager.comm.comm.reports.ExportToFileOrHtml;
import edu.sjtu.infosec.ismp.manager.comm.comm.reports.ReadFile;
/**
* 各类型事件统计
* @author Wu Guojie
* @date 2009-7-4
* @version 1.0
*/
public class EventGroupByType extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ReportEventGroupByForm reportEventGroupByForm = (ReportEventGroupByForm)form;
try{
ServletContext application = request.getSession().getServletContext();
int outPutFileType = (reportEventGroupByForm.getOutPutFileType()!=null) ? reportEventGroupByForm.getOutPutFileType() : 1;
Date startDate = (reportEventGroupByForm.getStartDate()!=null) ? reportEventGroupByForm.getStartDate() : new Date();
Date endDate = (reportEventGroupByForm.getEndDate()!=null) ? reportEventGroupByForm.getEndDate() : new Date();
int bureauId = (reportEventGroupByForm.getBureauId()!=null) ? reportEventGroupByForm.getBureauId() : 0;
String subReportDir = application.getRealPath("/reports/EM/")+"\\";
//参数
Map params = new HashMap();
params.put("SUBREPORT_DIR", subReportDir);
params.put("startDate", startDate);
params.put("endDate", endDate);
params.put("bureauId", bureauId);
//.jrxml
List<String> jrxmlFilePathList = new ArrayList<String>();
jrxmlFilePathList.add(application.getRealPath("/reports/EM/EventGroupByTypeImage.jrxml"));
jrxmlFilePathList.add(application.getRealPath("/reports/EM/EventGroupByTypeTable.jrxml"));
jrxmlFilePathList.add(application.getRealPath("/reports/EM/EventGroupByType.jrxml"));
//.jasper
String reportFilePath = application.getRealPath("/reports/EM/EventGroupByType.jasper");
ExportToFileOrHtml export = new ExportToFileOrHtml();
if(outPutFileType==2){
String outPutFileUrl = application.getRealPath("/reports/EM/EventGroupByType.rtf");
response.addHeader("Content-Disposition", "attachment; filename=EventGroupByType.rtf");
export.exportToRtfFile(request, jrxmlFilePathList, reportFilePath, params, outPutFileUrl);
ReadFile.readFileToOutputStream(response.getOutputStream(), outPutFileUrl);
}else{
String outPutFileUrl = application.getRealPath("/reports/EM/EventGroupByType.pdf");
response.addHeader("Content-Disposition", "attachment; filename=EventGroupByType.pdf");
export.exportToPdfFile(request, jrxmlFilePathList, reportFilePath, params, outPutFileUrl);
ReadFile.readFileToOutputStream(response.getOutputStream(), outPutFileUrl);
}
}catch(Exception e){
e.printStackTrace();
}
return null;
}
}