package edu.sjtu.infosec.ismp.manager.OSS.wom.web.actions; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import org.infosec.ismp.manager.rmi.comm.model.SystemModelInfo; import org.infosec.ismp.manager.rmi.lm.pfLog.model.SystemLog; import org.infosec.ismp.manager.rmi.sensor.operation.service.WinsensorOperationWorkOrdersService; import edu.sjtu.infosec.ismp.manager.ERM.web.form.ShowListForm; import edu.sjtu.infosec.ismp.manager.LM.pfLog.service.SystemLogService; import edu.sjtu.infosec.ismp.manager.OSS.wom.model.ClientQuestion; import edu.sjtu.infosec.ismp.manager.OSS.wom.model.WorkOrder; import edu.sjtu.infosec.ismp.manager.OSS.wom.service.ClientQuestionService; import edu.sjtu.infosec.ismp.manager.OSS.wom.service.WorkOrderService; import edu.sjtu.infosec.ismp.manager.OSS.wom.web.form.ClientQuestionForm; import edu.sjtu.infosec.ismp.manager.SYSM.user.self.comm.SecurityUserHolder; import edu.sjtu.infosec.ismp.manager.SYSM.user.self.service.DomainService; import edu.sjtu.infosec.ismp.security.Domain; import edu.sjtu.infosec.ismp.security.OperatorDetails; import edu.sjtu.infosec.ismp.security.Role; /** * web层 客户端问题Action. */ public class ClientQuestionAction extends DispatchAction { private static Logger logger = Logger.getLogger(ClientQuestionAction.class); //派工单访问接口 private WorkOrderService workOrderService; //注入客户端问题service. private ClientQuestionService clientQuestionService; private DomainService domainService; private WinsensorOperationWorkOrdersService winsensorOperationWorkOrdersService; private SystemLogService logService; public void setLogService(SystemLogService logService) { this.logService = logService; } public static void setLogger(Logger logger) { ClientQuestionAction.logger = logger; } public void setWinsensorOperationWorkOrdersService( WinsensorOperationWorkOrdersService winsensorOperationWorkOrdersService) { this.winsensorOperationWorkOrdersService = winsensorOperationWorkOrdersService; } public WorkOrderService getWorkOrderService() { return workOrderService; } public void setWorkOrderService(WorkOrderService workOrderService) { this.workOrderService = workOrderService; } public ClientQuestionService getClientQuestionService() { return clientQuestionService; } public void setClientQuestionService(ClientQuestionService clientQuestionService) { this.clientQuestionService = clientQuestionService; } public DomainService getDomainService() { return domainService; } public void setDomainService(DomainService domainService) { this.domainService = domainService; } /** * 客户端问题分页 */ public ActionForward showQuestion(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { int currPage = 1; Double totalPage = 0d; int totalNum = 0; int startResult = 0; int maxResult = 5; Domain domain = null; try{ String isAll = (request.getParameter("isAll")==null)?"0":request.getParameter("isAll"); System.out.println("---------------isAll:----------"+isAll); OperatorDetails user = SecurityUserHolder.getCurrentUser(); List<Domain> userDomainList = new ArrayList<Domain>(); if(user != null){ userDomainList = user.getDomainList(); }else{ userDomainList = null; } //分页定义的相关的基本信息 String cp = (request.getParameter("currPage")==null)?"1":request.getParameter("currPage"); if(cp!=null && !cp.equals("")){ currPage = Integer.parseInt(cp); } startResult = (currPage-1)*maxResult; if(startResult < 0){ startResult = 0; } //数据相关的基本信息 ClientQuestionForm show=(ClientQuestionForm)form; request.setAttribute("domain", show.getDomain()); request.setAttribute("state",show.getState()); if(show.getDomain()!=null){ domain = domainService.findById(show.getDomain()); } List<ClientQuestion> questionList = new ArrayList<ClientQuestion>(); if(isAll.equals("1")){ request.setAttribute("isAll", isAll); questionList = clientQuestionService.findAll(startResult, maxResult,domain,show.getState()); }else{ questionList = clientQuestionService.findAllByDomain(userDomainList, startResult, maxResult,domain,show.getState()); } //分页定义的相关的基本信息 if(questionList!=null && questionList.size()>=0){ if(isAll.equals("1")){ totalNum=clientQuestionService.getCount(domain,show.getState()); }else{ totalNum = clientQuestionService.getCountByDomain(userDomainList,domain,show.getState()); } } totalPage = Math.ceil((double)totalNum/maxResult); if(totalPage>0 && currPage<=0){ currPage = 1; } request.setAttribute("udl", userDomainList); request.setAttribute("questionList", questionList); }catch(Exception e){ logger.debug("应急响应--预案管理--首页访问出错啦!"); e.printStackTrace(); } request.setAttribute("currPage", currPage); request.setAttribute("totalPage", totalPage.intValue()); request.setAttribute("ossMenu","wom"); request.setAttribute("womMenu","ques"); return mapping.findForward("showQues"); } /** * 关闭客户端问题 */ public ActionForward OnClose(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { try { request.setAttribute("isAll", request.getParameter("isAll")); request.setAttribute("currPage", request.getParameter("currPage")); String id = request.getParameter("id"); ClientQuestion clientQuestion =null; WorkOrder workOrder=null; if(id!=null&&id.length()>0){ clientQuestion=clientQuestionService.findById(Integer.parseInt(id)); clientQuestion.setState(4); clientQuestionService.saveOrUpdate(clientQuestion); //向后台发送数据 workOrder=workOrderService.findByQuestion(clientQuestion.getId()); if(workOrder!=null){ workOrder.setState(4); workOrderService.saveOrUpdate(workOrder); } if(clientQuestion.getSn()!=null&&clientQuestion.getSn().length()>0){ winsensorOperationWorkOrdersService.closeProblem(clientQuestion.getSn()); //向后台发送数据 if(workOrder!=null){ winsensorOperationWorkOrdersService.closeWorkOrders(clientQuestion.getId().toString(), workOrder.getId().toString()); } } } //添加日志 OperatorDetails user = SecurityUserHolder.getCurrentUser(); SystemLog log = new SystemLog(); log.setUsername(user.getUsername()); List<Role> list=user.getRoleList(); String roles=""; for(Role role:list){ roles+=role.getRole()+","; } log.setRoleName(roles.substring(0,roles.length()-1)); log.setTime(new Timestamp(new Date().getTime())); log.setModuleName(SystemModelInfo.MOD_OSS_wom); if(workOrder!=null){ log.setOperationDesc("运维工单,关闭客户端问题,问题ID为:"+clientQuestion.getId()+",问题标题为:"+clientQuestion.getName()+",工单ID为:"+workOrder.getId()); }else{ log.setOperationDesc("运维工单,关闭客户端问题,问题ID为:"+clientQuestion.getId()+",问题标题为:"+clientQuestion.getName()); } log.setControl("成功"); logService.saveSystemLog(log); } catch (Exception e) { e.printStackTrace(); } return showQuestion(mapping,form,request,response); } /** * 查看客户端问题 */ public ActionForward lookQuestion(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String id = request.getParameter("id"); ClientQuestion clientQuestion =null; if(id!=null&&id.length()>0){ clientQuestion=clientQuestionService.findById(Integer.parseInt(id)); } request.setAttribute("clientQuestion", clientQuestion); return mapping.findForward("lookQues"); } /** * 生成工单前 */ public ActionForward addWorkOrder(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String id = request.getParameter("id"); ClientQuestion clientQuestion =null; if(id!=null&&id.length()>0){ clientQuestion=clientQuestionService.findById(Integer.parseInt(id)); } request.setAttribute("clientQuestion", clientQuestion); return showQuestion(mapping,form,request,response); } }