package com.cabletech.business.workflow.electricity.security.action;
import javax.annotation.Resource;
import org.apache.commons.lang.StringUtils;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.cabletech.baseinfo.business.entity.UserInfo;
import com.cabletech.business.workflow.electricity.security.model.OeDispatchTask;
import com.cabletech.business.workflow.electricity.security.model.OeOutageAlarm;
import com.cabletech.business.workflow.electricity.security.service.OeOutageAlarmService;
import com.cabletech.common.base.SysConstant;
/**
* 供电保障派单Action
*
* @author 杨隽 2012-05-04 创建
* @author 杨隽 2012-05-07 进行后台处理的细化
*
*/
@Namespace("/workflow")
@Results({
@Result(name = "input", location = "/workflow/electricity/security/oe_dispatchtask_input.jsp"),
@Result(name = "view", location = "/workflow/electricity/security/oe_dispatchtask_view.jsp") })
@Action("/oeDispatchTaskAction")
public class OeDispatchTaskAction extends
OeDispatchTaskBaseAction<OeDispatchTask, String> {
/**
* 序列化编号
*/
private static final long serialVersionUID = 1L;
// 供电保障派单表单数据
private OeDispatchTask oeDispatchTask;
// 断电告警单业务处理服务
@Resource(name = "oeOutageAlarmServiceImpl")
private OeOutageAlarmService oeOutageAlarmService;
/**
* 进入断电告警派单页面
*
* @return String
*/
public String input() {
String id = super.getParameter("id");
if (StringUtils.isNotBlank(id)) {
OeDispatchTask oeDispatchTask = oeDispatchTaskService
.viewOeDispatchTask(id);
super.getRequest().setAttribute("oeDispatchTask", oeDispatchTask);
super.getRequest().setAttribute("showReturn", "y");
}
return INPUT;
}
/**
* 从断电告警单列表中进行派单
*
* @return String
*/
public String dispatchInput() {
String id = super.getParameter("id");
if (StringUtils.isNotBlank(id)) {
OeOutageAlarm oeOutageAlarm = oeOutageAlarmService
.viewOeOutageAlarm(id);
OeDispatchTask oeDispatchTask = oeOutageAlarmService
.cloneAlarmToDispatchTask(oeOutageAlarm);
super.getRequest().setAttribute("oeDispatchTask", oeDispatchTask);
}
super.getRequest().setAttribute("showReturn", "y");
super.getRequest().setAttribute("origin", "alarm");
return INPUT;
}
/**
* 执行断电告警派单
*
* @return String
*/
public String save() {
UserInfo userInfo = super.getUser();
String id = oeDispatchTask.getId();
oeDispatchTaskService.save(oeDispatchTask, userInfo);
String message = getMessage();
String url = getUrl(id);
super.addMessage(message, url, SysConstant.SUCCESS);
return SUCCESS;
}
/**
* 删除断电告警派单
*
* @return String
*/
public String delete() {
String[] id = super.getRequest().getParameterValues("id");
String state = super.getParameter("state");
oeDispatchTaskService.deleteOeDispatchTask(id);
String url = "";
if (OeDispatchTask.WAIT_DISPATCHED_STATE.equals(state)) {
url = DRAFT_PAGE_URL;
} else {
url = WAIT_DELETED_PAGE_URL;
}
super.addMessage("供电故障派单删除成功!", url, SysConstant.SUCCESS);
return SUCCESS;
}
/**
* 查看断电结果派单
*
* @return String
*/
public String view() {
String id = super.getParameter("id");
String origin = super.getParameter("origin");
String showReturn = super.getParameter("showReturn");
if (StringUtils.isBlank(showReturn)) {
showReturn = "1";
}
OeDispatchTask oeDispatchTask = oeDispatchTaskService
.viewOeDispatchTask(id);
super.getRequest().setAttribute("oeDispatchTask", oeDispatchTask);
super.getRequest().setAttribute("origin", origin);
super.getRequest().setAttribute("showReturn", showReturn);
return VIEW;
}
@Override
public OeDispatchTask getModel() {
return oeDispatchTask;
}
public OeDispatchTask getOeDispatchTask() {
return oeDispatchTask;
}
public void setOeDispatchTask(OeDispatchTask oeDispatchTask) {
this.oeDispatchTask = oeDispatchTask;
}
/**
* 获取“返回”按钮的URL
*
* @param id
* String 发电派单编号
* @return String “返回”按钮的URL
*/
private String getUrl(String id) {
String url = NEW_INPUT_PAGE_URL;
if (StringUtils.isNotBlank(oeDispatchTask.getAlarmId())) {
url = ALARMLIST_PAGE_URL;
}
if (StringUtils.isNotBlank(id)) {
url = DRAFT_PAGE_URL;
}
return url;
}
/**
* 获取提示信息
*
* @return String 提示信息
*/
private String getMessage() {
String message = "保存断电告警派单成功!";
if (OeDispatchTask.IS_SUBMITED.equals(oeDispatchTask.getIsSubmited())) {
message = "提交断电告警派单成功!";
}
return message;
}
@Override
protected void prepareViewModel() throws Exception {
}
@Override
protected void prepareSaveModel() throws Exception {
}
}