package edu.sjtu.infosec.ismp.manager.OSS.pm.web.actions;
import java.sql.Timestamp;
import java.util.ArrayList;
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 common.Logger;
import edu.sjtu.infosec.ismp.manager.GOSP.comm.LogUtil;
import edu.sjtu.infosec.ismp.manager.LM.pfLog.service.SystemLogService;
import edu.sjtu.infosec.ismp.manager.OSS.pm.model.Roster;
import edu.sjtu.infosec.ismp.manager.OSS.pm.service.RosterService;
import edu.sjtu.infosec.ismp.manager.OSS.pm.web.form.RosterForm;
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.manager.VPM.pm.comm.HtmlFactory;
import edu.sjtu.infosec.ismp.manager.VPM.pm.comm.PMPage;
import edu.sjtu.infosec.ismp.security.Domain;
import edu.sjtu.infosec.ismp.security.OperatorDetails;
import edu.sjtu.infosec.ismp.security.Role;
public class RosterAction extends DispatchAction {
Logger logger = Logger.getLogger(RosterAction.class);
public void setRosterService(RosterService rosterService) {
this.rosterService = rosterService;
}
private RosterService rosterService;
public void setDomainService(DomainService domainService) {
this.domainService = domainService;
}
/**
* @param systemlogservice the systemlogservice to set
*/
public void setSystemlogservice(SystemLogService systemlogservice) {
this.systemlogservice = systemlogservice;
}
private SystemLogService systemlogservice;
@SuppressWarnings("unused")
private DomainService domainService;
/**
* 查询所有人员
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward rosterInfoAll(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception{
OperatorDetails user = SecurityUserHolder.getCurrentUser();
RosterForm rosterForm =(RosterForm)form;
request.setAttribute("curpage", request.getParameter("currPage"));
String type=request.getParameter("type");
String doMainId=request.getParameter("doid");
List<Domain> domainList =null;
PMPage page = new PMPage();
String curpage = request.getParameter("currPage") != null
&& (!request.getParameter("currPage").equals("")) ? request
.getParameter("currPage") : "1";
page.setCurrentPage(Integer.parseInt(curpage));
page.setBeginIndex((page.getCurrentPage() - 1) * page.getEveryPage());
if(!(user == null)){
if("seach".equals(type)){
if(HtmlFactory.isNotEmpty(doMainId)){
Domain domain = new Domain();
domain.setId(Integer.valueOf(doMainId));
List<Domain> list = new ArrayList<Domain>();
list.add(domain);
domainList=list;
}
}
domainList = domainList == null ? user.getDomainList() : domainList;
List<Roster> list = rosterService.findConditionsInfo(rosterForm.getRoster(), domainList, page, rosterForm.getCreateStartDate(), rosterForm.getCreateEndDate());
request.setAttribute("list", list);
request.setAttribute("page", page.getPageInfo());
request.setAttribute("currPage", page.getPageInfo().getCurrentPage());
request.setAttribute("totalPage", page.getPageInfo().getTotalPage());
request.setAttribute("ossMenu","pm");
return mapping.findForward("index");
}
return null;
}
/**
* 查询所有人员
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward selectRosterAll(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception{
OperatorDetails user = SecurityUserHolder.getCurrentUser();
if(!(user == null)){
StringBuffer sbf = new StringBuffer();
List<Roster> list = rosterService.selectAll(user.getDomainList());
String[][] obj ={{"id","getId"},{"name","getName"}};
for(Roster roster : list){
Object[][] objs={{roster,obj}};
HtmlFactory.getDataArray(objs, sbf,"ROSTER");
}
HtmlFactory.flushData(response, sbf);
}
return null;
}
/**
* 添加人员
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward rosterInfoadd(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception{
Roster roster = new Roster();
Domain dm = new Domain();;
String domain = request.getParameter("userdomain");
String usersn = request.getParameter("usersn");
String userposition = request.getParameter("userposition");
String usermobile = request.getParameter("usermobile");
String userphone = request.getParameter("userphone");
String useremail = request.getParameter("useremail");
String userremark = request.getParameter("userremark");
String username = request.getParameter("username");
String usersex = request.getParameter("usersex");
if(domain != null && !domain.isEmpty()){
dm.setId(Integer.valueOf(domain));
}
roster.setSex(usersex == null || !usersex.isEmpty() ? Integer.valueOf(usersex) : 1);
roster.setEMail(useremail);
roster.setMobile(usermobile);
roster.setName(username);
roster.setPhone(userphone);
roster.setRemark(userremark);
roster.setSn(usersn);
roster.setPosition(userposition);
roster.setDomain(dm);
roster.setCreateTime(new Timestamp(System.currentTimeMillis()));
String falg="成功!";
try {
rosterService.update(roster);
} catch (Exception e) {
falg = "失败!";
}finally{
try {
systemlogservice.saveSystemLog(LogUtil.userName, LogUtil.roleName, SystemModelInfo.MOD_OSS_pm, "添加人员", new Timestamp(System.currentTimeMillis()), falg);
} catch (Exception e) {
logger.debug("连接日志出错",e);
}
}
/* PrintWriter out = response.getWriter();
response.setContentType("text ml; charset=UTF-8");
out.println("<script language=\"javascript\">");
out.println("window.opener.location.href=window.opener.location.href;");
out.println("window.close();");
out.println("</script>");
out.close();*/
return null;
}
/**
* 查询id 人员
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward rosterInfoById(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception{
String rid= request.getParameter("rid");
String identifier = request.getParameter("identifier");
Roster roster = rosterService.findById(Integer.valueOf(rid));
request.setAttribute("roster",roster);
return mapping.findForward(identifier);
}
/**
* 更新Id 人员
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward rosterInfoUpdate(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception{
Roster roster = new Roster();
String rosterid = request.getParameter("rosterid");
if(rosterid != null && !rosterid.isEmpty()){
Domain dm = new Domain();
String domain = request.getParameter("userdomain");
String usersn = request.getParameter("usersn");
String userposition = request.getParameter("userposition");
String usermobile = request.getParameter("usermobile");
String userphone = request.getParameter("userphone");
String useremail = request.getParameter("useremail");
String userremark = request.getParameter("userremark");
String username = request.getParameter("username");
String usersex = request.getParameter("usersex");
if(domain != null && !domain.isEmpty()){
dm.setId(Integer.valueOf(domain));
}
roster.setSex(usersex == null || usersex.isEmpty() ? 1 : Integer.valueOf(usersex));
roster.setEMail(useremail);
roster.setId(Integer.valueOf(rosterid));
roster.setMobile(usermobile);
roster.setName(username);
roster.setPhone(userphone);
roster.setRemark(userremark);
roster.setSn(usersn);
roster.setPosition(userposition);
roster.setDomain(dm);
roster.setLastUpdateTime(new Timestamp(System.currentTimeMillis()));
String falg="成功!";
try {
rosterService.update(roster);
} catch (Exception e) {
falg = "失败!";
}finally{
try {
systemlogservice.saveSystemLog(LogUtil.userName, LogUtil.roleName, SystemModelInfo.MOD_OSS_pm, "更新人员", new Timestamp(System.currentTimeMillis()), falg);
} catch (Exception e) {
logger.debug("连接日志出错",e);
}
}
}
return null;
}
/**
* 删除id人员
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward rosterInfoDel(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception{
String rid= request.getParameter("rid");
Roster roster = rosterService.findById(Integer.valueOf(rid));
String falg="成功!";
try {
rosterService.delete(roster);
} catch (Exception e) {
falg = "失败!";
}finally{
try {
systemlogservice.saveSystemLog(LogUtil.userName, LogUtil.roleName, SystemModelInfo.MOD_OSS_pm, "删除人员", new Timestamp(System.currentTimeMillis()), falg);
} catch (Exception e) {
logger.debug("连接日志出错",e);
}
}
return rosterInfoAll(mapping,new RosterForm(),request,response );
}
}