package edu.sjtu.infosec.ismp.manager.AM.web.actions; import java.sql.Timestamp; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; 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 org.jfree.chart.JFreeChart; import org.jfree.chart.servlet.ServletUtilities; import org.jfree.data.category.CategoryDataset; import edu.sjtu.infosec.ismp.manager.AM.model.AssetDeviceBO; import edu.sjtu.infosec.ismp.manager.AM.model.AssetDeviceVO; import edu.sjtu.infosec.ismp.manager.AM.model.DeviceChartVO; import edu.sjtu.infosec.ismp.manager.AM.service.AssetDeviceService; import edu.sjtu.infosec.ismp.manager.AM.comm.DeviceCountChart; import edu.sjtu.infosec.ismp.manager.SYSM.user.self.service.DomainService; import edu.sjtu.infosec.ismp.manager.comm.model.page.Page; import edu.sjtu.infosec.ismp.manager.comm.model.page.PageUtil; import edu.sjtu.infosec.ismp.security.Domain; public class DeviceAnalysisAction extends Action { private AssetDeviceService assetDeviceService; private DomainService domainService; public void setDomainService(DomainService domainService) { this.domainService = domainService; } public void setAssetDeviceService(AssetDeviceService assetDeviceService) { this.assetDeviceService = assetDeviceService; } @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { AssetDeviceBO bean = new AssetDeviceBO(); Integer locId = null; if (request.getParameter("locid") != null && !"-1".equals(request.getParameter("locid"))) { locId = Integer.parseInt(request.getParameter("locid").toString()); bean.setLocationId(locId); }else{ bean.setLocationId(null); } List<DeviceChartVO> datas = assetDeviceService.getDeviceChartData(bean); CategoryDataset dataset = DeviceCountChart.createDataset(datas); JFreeChart chart = DeviceCountChart.createChart(dataset); String path = ServletUtilities.saveChartAsPNG(chart, 1000, 400, request .getSession()); request.setAttribute("deviceImg", path); request.setAttribute("locid", locId); request.getSession().setAttribute("topcss", "analysis"); // // Page page = new Page(); // page.setEveryPage(20); // String curpage = request.getParameter("curpage") == null ? "1" // : request.getParameter("curpage"); // page.setCurrentPage(Integer.parseInt(curpage)); // page.setBeginIndex((page.getCurrentPage() - 1) * page.getEveryPage()); // // // DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); // String domainid = request.getParameter("domainid"); // String startDate = request.getParameter("startDate"); // String endDate = request.getParameter("endDate"); // String deviceType = request.getParameter("deviceType"); // List<Domain> domainList = new ArrayList<Domain>(); // domainList.add(domainService.findById(Integer.parseInt(domainid))); // Timestamp startRecordTime = new java.sql.Timestamp( df.parse(startDate).getTime()); // Timestamp endRecordTime = new java.sql.Timestamp( df.parse(endDate).getTime()); // // List<AssetDeviceBO> list = assetDeviceService.findAllByDomain(domainList, startRecordTime, endRecordTime, page.getCurrentPage(), page.getEveryPage()); // page = PageUtil.createPage(page.getEveryPage(), page.getCurrentPage(), page.getTotalCount()); // List<AssetDeviceVO> listVO =new ArrayList<AssetDeviceVO>(); // for(AssetDeviceBO assetBO : list){ // // } return mapping.findForward("success"); } }