package edu.sjtu.infosec.ismp.manager.ERM.web.actions.respList;
import java.io.PrintWriter;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
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.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.ContiBia;
import edu.sjtu.infosec.ismp.manager.ERM.model.LinkMan;
import edu.sjtu.infosec.ismp.manager.ERM.model.RespInfoBO;
import edu.sjtu.infosec.ismp.manager.ERM.service.BiaService;
import edu.sjtu.infosec.ismp.manager.ERM.service.LinkManService;
import edu.sjtu.infosec.ismp.manager.ERM.service.NotifyrocService;
import edu.sjtu.infosec.ismp.manager.ERM.service.RespInfoService;
import edu.sjtu.infosec.ismp.manager.ERM.service.RespProcService;
import edu.sjtu.infosec.ismp.manager.ERM.web.form.AddRespInfoForm;
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.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;
public class UpdateAndDelRespAction extends DispatchAction {
public RespInfoService respInfoService;
private DomainService domainService;
private BiaService biaService;
private LinkManService linkManService;
private NotifyrocService continotifyrocService;
private RespProcService respprocService;
private SystemLogService logService;
public void setLogService(SystemLogService logService){
this.logService = logService;
}
public void setRespprocService(RespProcService respprocService) {
this.respprocService = respprocService;
}
public void setContinotifyrocService(NotifyrocService continotifyrocService) {
this.continotifyrocService = continotifyrocService;
}
public void setBiaService(BiaService biaService) {
this.biaService = biaService;
}
public void setLinkManService(LinkManService linkManService) {
this.linkManService = linkManService;
}
public void setRespInfoService(RespInfoService respInfoService) {
this.respInfoService = respInfoService;
}
public void setDomainService(DomainService domainService) {
this.domainService = domainService;
}
public ActionForward update(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
try {
request.setAttribute("currPage", 1);
AddRespInfoForm respform=(AddRespInfoForm)form;
RespInfoBO info=new RespInfoBO();
String respId=request.getSession().getAttribute("respId").toString();
SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化当前系统日期
String dateTime = dateFm.format(new java.util.Date().getTime());
java.util.Date timeDate = dateFm.parse(dateTime);
java.sql.Timestamp dTime = new java.sql.Timestamp(timeDate.getTime());
if(null!=respId && !"".equals(respId))
{
info.setId(Integer.parseInt(respId));
info.setName(respform.getName());
info.setDomain(domainService.findById(respform.getDmid()));
info.setSysName(respform.getSysName());
info.setSysDesc(respform.getSysDesc());
info.setRefs(respform.getReferences());
info.setTouchBy(respform.getTouchBy());
info.setCreateTime(dTime);
info.setUpdateTime(new Timestamp(new Date().getTime()));
respInfoService.update(info);
//添加日志
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);
log.setOperationDesc("应急响应模块,更新预案信息,ID为:"+info.getId()+",预案名称为:"+info.getName());
log.setControl("成功");
logService.saveSystemLog(log);
}
//更新后从新查询数据库
List<RespInfoBO> respList=respInfoService.findAll();
request.setAttribute("respList", respList);
PrintWriter out = response.getWriter();
out = response.getWriter();
response.setContentType("text/html; charset=UTF-8");
out.println("<script language=\"javascript\">");
out.println("window.opener.location.href=window.opener.location.href;");
out.println("window.opener.location.reload();");
out.println("window.close();");
out.println("</script>");
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return null;
//return new ActionForward("/ismp/domain/local/erm/respShow.do");
}
@SuppressWarnings("deprecation")
public ActionForward delete(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String respId=request.getParameter("id");
if(null!=respId && !"".equals(respId))
{
RespInfoBO info=respInfoService.findrespInfoById(Integer.parseInt(respId));
if(info!=null&&!"".equals(info)){
//删除bia
biaService.deleteBiaByRespInfo(info);
//删除应急响应过程
respprocService.deleteProcByRespInfo(info);
//删除应急通知规程
continotifyrocService.deleteNotifyByRespInfo(info);
//删除电话树
//List<LinkMan> link = linkManService.findByRespInfo(info);
linkManService.deleteLinkManByRespInfo(info);
//删除打印文件
respInfoService.deleteFileByRespInfo(info);
respInfoService.delete(info);
//添加日志
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);
log.setOperationDesc("应急响应模块,删除预案,ID为:"+info.getId()+"预案名称为:"+info.getName());
log.setControl("成功");
}
}
return new ActionForward("/ismp/domain/local/erm/respShow.do");
}
public ActionForward updateValue(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
try {
String respId=request.getParameter("id");
//System.out.println("应急预案id====="+respId);
request.getSession().setAttribute("respId", respId);
if(respId!=null && !respId.equals(""))
{
RespInfoBO respInfo=respInfoService.findrespInfoById(Integer.parseInt(respId));
request.setAttribute("respInfo", respInfo);
}
OperatorDetails user = SecurityUserHolder.getCurrentUser();
List<Domain> userDomainList = new ArrayList<Domain>();
if(user != null){
userDomainList = user.getDomainList();
}else{
userDomainList = null;
}
request.setAttribute("udl", userDomainList);
} catch (Exception e) {
e.printStackTrace();
}
return mapping.findForward("showlistResp");
}
}