package edu.sjtu.infosec.ismp.manager.ERM.web.actions.respPrint; 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.Action; 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 edu.sjtu.infosec.ismp.manager.ERM.model.RespFilePrint; import edu.sjtu.infosec.ismp.manager.ERM.model.RespInfoBO; import edu.sjtu.infosec.ismp.manager.ERM.service.RespInfoService; import edu.sjtu.infosec.ismp.manager.ERM.web.actions.respList.RespShowAction; import edu.sjtu.infosec.ismp.manager.ERM.web.form.FilePrintFrom; import edu.sjtu.infosec.ismp.manager.LM.pfLog.service.SystemLogService; import edu.sjtu.infosec.ismp.manager.SYSM.user.self.comm.SecurityUserHolder; import edu.sjtu.infosec.ismp.security.Domain; import edu.sjtu.infosec.ismp.security.OperatorDetails; import edu.sjtu.infosec.ismp.security.Role; import edu.sjtu.infosec.ismp.util.EscapeUnescape; public class RespPrintAction extends DispatchAction { private static Logger logger = Logger.getLogger(RespShowAction.class); /** * 注入 service 接口 */ private RespInfoService respInfoService; private SystemLogService logService; public void setLogService(SystemLogService logService){ this.logService = logService; } public void setRespInfoService(RespInfoService respInfoService) { this.respInfoService = respInfoService; } public ActionForward showselect(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String toPage = "success"; try{ toPage = "success"; String isAll = (request.getParameter("isAll")==null)?"0":request.getParameter("isAll"); OperatorDetails user = SecurityUserHolder.getCurrentUser(); List<Domain> userDomainList = new ArrayList<Domain>(); if(user != null){ userDomainList = user.getDomainList(); }else{ userDomainList = null; } //数据相关的基本信息 List<RespInfoBO> respList = new ArrayList<RespInfoBO>(); if(isAll.equals("1")){ respList = respInfoService.findAll(); }else{ respList = respInfoService.findAllByDomain(userDomainList); } request.getSession().setAttribute("respList", respList); }catch(Exception e){ toPage = "failed"; logger.debug("应急响应--预案打印--首页访问出错啦!"); e.printStackTrace(); } logger.debug("=====toPage======="+toPage); request.setAttribute("respMenu", "fp"); return mapping.findForward(toPage); } public ActionForward showContent(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { System.out.println("~~~~~根据select条件查询对应的文本信息~~~~~~~~"); RespFilePrint file=new RespFilePrint(); String selectid=request.getParameter("selectid"); request.setAttribute("selectid", selectid); System.out.println("selectid======="+selectid); if(null!=selectid && !"".equals(selectid)) { RespFilePrint res=respInfoService.findFileContentById(respInfoService.findrespInfoById(Integer.parseInt(selectid))); if(null!=res) { request.setAttribute("printid", res.getId()); //打印信息编号 request.setAttribute("printres", res.getContent());//打印信息内容 request.setAttribute("printResp", res.getRespInfo());//打印信息对应的应急编号 } } request.setAttribute("respMenu", "fp"); return mapping.findForward("filecount"); } public ActionForward saveorupdate(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { boolean flag = false; System.out.println("~~~~增加或更新打印信息~~~~~"); FilePrintFrom fileform=(FilePrintFrom)form; RespFilePrint file=new RespFilePrint(); System.out.println("id==="+fileform.getId()); System.out.println("content==="+fileform.getPrintcontent()); System.out.println("procid==="+fileform.getSelectresp()); request.setAttribute("printres", fileform.getPrintcontent()); request.setAttribute("selectid", fileform.getSelectresp()); if(fileform.getId()==0){ flag=true; file.setId(null); }else{ file.setId(fileform.getId()); } file.setContent(fileform.getPrintcontent()); file.setRespInfo(respInfoService.findrespInfoById(fileform.getSelectresp())); respInfoService.saveorupdate(file); //添加日志 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_ERM); if(flag){ log.setOperationDesc("应急响应模块文件打印,新增打印信息,ID为:"+file.getId()+",所属预案名称为:"+file.getRespInfo().getName()); }else{ log.setOperationDesc("应急响应模块文件打印,修改打印信息,ID为:"+file.getId()+",所属预案名称为:"+file.getRespInfo().getName()); } log.setControl("成功"); logService.saveSystemLog(log); request.setAttribute("respMenu", "fp"); return mapping.findForward("filecount"); } }