package edu.sjtu.infosec.ismp.manager.AM.web.actions;
import java.util.ArrayList;
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.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 DeviceCountInBureauGroupByType extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
try{
ServletContext application = request.getSession().getServletContext();
int outPutFileType = (request.getParameter("outPutFileType")!=null
&& !((String)request.getParameter("outPutFileType")).equals(""))
? Integer.parseInt((String)request.getParameter("outPutFileType"))
: 1;
String bureauId = "";
if(request.getParameter("bureauId")!=null && !((String)request.getParameter("bureauId")).equals("")){
bureauId = (String)request.getParameter("bureauId");
}else{
bureauId = "all";
}
String myWhere="";
if(bureauId!=null && !bureauId.equals("") && !bureauId.equals("all")){
myWhere = " where a.locationId="+bureauId+" ";
}else{
myWhere = " ";
}
String subReportDir = application.getRealPath("/reports/AM/")+"\\";
//参数
Map params = new HashMap();
params.put("SUBREPORT_DIR", subReportDir);
params.put("myWhere", myWhere);
//.jrxml
List<String> jrxmlFilePathList = new ArrayList<String>();
jrxmlFilePathList.add(application.getRealPath("/reports/AM/DeviceCountInBureauGroupByTypeImage.jrxml"));
jrxmlFilePathList.add(application.getRealPath("/reports/AM/DeviceCountInBureauGroupByTypeTable.jrxml"));
jrxmlFilePathList.add(application.getRealPath("/reports/AM/DeviceCountInBureauGroupByType.jrxml"));
//.jasper
String reportFilePath = application.getRealPath("/reports/AM/DeviceCountInBureauGroupByType.jasper");
ExportToFileOrHtml export = new ExportToFileOrHtml();
if(outPutFileType==2){
String outPutFileUrl = application.getRealPath("/reports/AM/DeviceCountInBureauGroupByType.rtf");
response.addHeader("Content-Disposition", "attachment; filename=DeviceCountInBureauGroupByType.rtf");
export.exportToRtfFile(request, jrxmlFilePathList, reportFilePath, params, outPutFileUrl);
ReadFile.readFileToOutputStream(response.getOutputStream(), outPutFileUrl);
}else{
String outPutFileUrl = application.getRealPath("/reports/AM/DeviceCountInBureauGroupByType.pdf");
response.addHeader("Content-Disposition", "attachment; filename=DeviceCountInBureauGroupByType.pdf");
export.exportToPdfFile(request, jrxmlFilePathList, reportFilePath, params, outPutFileUrl);
ReadFile.readFileToOutputStream(response.getOutputStream(), outPutFileUrl);
}
}catch(Exception e){
e.printStackTrace();
}
return null;
}
}