package com.cabletech.business.workflow.fault.action;
import java.util.Map;
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.fault.condition.parameter.FaultQueryParameter;
import com.cabletech.business.workflow.fault.model.FaultAlert;
import com.cabletech.business.workflow.fault.model.FaultDispatch;
import com.cabletech.business.workflow.fault.model.FaultReply;
import com.cabletech.business.workflow.fault.service.FaultAlertService;
import com.cabletech.business.workflow.fault.service.FaultDispatchService;
import com.cabletech.business.workflow.fault.service.FaultReplyService;
import com.cabletech.common.base.SysConstant;
import com.cabletech.common.util.Page;
/**
* 故障派单处理Action
*
* @author 杨隽 2011-10-26 创建
* @author 杨隽 2011-10-27 修改“故障派单填写页面跳转”方法、“故障派单操作”方法和“待办故障派单列表页面跳转”方法
* @author 杨隽 2011-11-02 修改list方法
* @author 杨隽 2011-11-04 添加“获取待办数量”的方法
* @author 杨隽 2011-11-04 修改input方法和dispatch方法以支持手动派单
* @author 杨隽 2011-11-05 添加“发现方式”变量属性
* @author 杨隽 2011-11-29 修改waitHandledList()方法(将获取待办任务的巡检组编号改为代维单位编号)
* @author 杨隽 2012-02-07 修改waitHandledList()方法和list()方法
* @author 杨隽 2012-02-22 添加进入编辑派单页面时读取保存派单信息的业务功能
* @author 杨隽 2012-05-04 更改使用公共的表单提交标识
* @author 杨隽 2012-07-18 添加系统定义的“是否选择”Map
*
*/
@Namespace("/workflow")
@Results({
@Result(name = "input", location = "/workflow/fault/fault_dispatch_input.jsp"),
@Result(name = "waithandled_list", location = "/workflow/fault/fault_dispatch_waithandled_list.jsp"),
@Result(name = "view", location = "/workflow/fault/fault_dispatch_viewdetail.jsp"),
@Result(name = "list", location = "/workflow/fault/fault_dispatch_list.jsp") })
@Action("/faultDispatchAction")
public class FaultDispatchAction extends FaultBaseAction<FaultDispatch, String> {
// 序列化编号
private static final long serialVersionUID = 1L;
// 待办故障派单列表跳转页面
private static final String WAIT_HANDLED_LIST = "waithandled_list";
// 故障发现方式
private String findType;
// 故障告警单实体
private FaultAlert faultAlert;
// 故障派单实体
private FaultDispatch faultDispatch;
// 故障告警单业务处理服务
@Resource(name = "faultAlertServiceImpl")
private FaultAlertService faultAlertManager;
// 故障派单业务处理服务
@Resource(name = "faultDispatchServiceImpl")
private FaultDispatchService faultDispatchManager;
// 故障派单回复业务处理服务
@Resource(name = "faultReplyServiceImpl")
private FaultReplyService faultReplyManager;
/**
* 转到故障查询页面
*
* @return String
*/
public String list() {
return LIST;
}
/**
* 获取故障查询数据
*
*/
@SuppressWarnings("rawtypes")
public void listdata() {
UserInfo userInfo = super.getUser();
super.preSetListQuery(userInfo);
Page page = faultDispatchManager.getList(super.parameter, userInfo);
super.setExcelParameter(page);
convertObjToJson(page);
}
/**
* 故障待办任务列表页面
*
* @return String
*/
public String waitHandledList() {
return WAIT_HANDLED_LIST;
}
/**
* 故障待办任务列表数据
*
*/
@SuppressWarnings({ "rawtypes" })
public void waitHandledListdata() {
UserInfo userInfo = super.getUser();
super.preSetListQuery(userInfo);
Page page = faultDispatchManager.getWaitHandledList(super.parameter,
userInfo);
super.setExcelParameter(page);
convertObjToJson(page);
}
@Override
public String view() {
FaultDispatch faultDispatch = faultDispatchManager
.viewFaultDispatch(super.parameter.getId());
FaultAlert faultAlert = faultAlertManager.viewFaultAlert(faultDispatch
.getAlarmId());
FaultReply faultReply = faultReplyManager.getFaultReply(super.parameter
.getId());
// 获取故障告警单的资源名称
String resourceName = super.faultResourceManager.viewResourceInfo(
faultAlert.getStationId()).getResourceName();
faultAlert.setStationName(resourceName);
Map<String, String> whetherMap = SysConstant.getWhetherMap();
super.getRequest().setAttribute("whetherMap", whetherMap);
super.getRequest().setAttribute("fault_alert", faultAlert);
super.getRequest().setAttribute("fault_dispatch", faultDispatch);
super.getRequest().setAttribute("fault_reply", faultReply);
return VIEW;
}
@Override
public String input() {
faultAlert = new FaultAlert();
if (StringUtils.isNotBlank(super.parameter.getId())) {
faultAlert = faultAlertManager.viewFaultAlert(super.parameter
.getId());
String resourceName = super.faultResourceManager.viewResourceInfo(
faultAlert.getStationId()).getResourceName();
faultAlert.setStationName(resourceName);
} else {
faultAlert.setFindType(getFindType());
}
if (StringUtils.isNotBlank(super.parameter.getDispatchId())) {
String dispatchId = super.parameter.getDispatchId();
faultDispatch = faultDispatchManager.viewFaultDispatch(dispatchId);
faultAlert = faultAlertManager.viewFaultAlert(faultDispatch
.getAlarmId());
String resourceName = super.faultResourceManager.viewResourceInfo(
faultAlert.getStationId()).getResourceName();
faultAlert.setStationName(resourceName);
}
return INPUT;
}
/**
* 故障派单操作
*
* @return String
*/
public String dispatch() throws Exception {
UserInfo userInfo = super.getUser();
if (StringUtils.isBlank(faultDispatch.getId())) {
faultDispatch.setId(null);
}
faultDispatchManager.dispatch(faultAlert, faultDispatch, userInfo);
String message = "提示:故障保存成功!";
if (SysConstant.FORM_IS_SUBMITED.equals(faultDispatch.getIsSubmited())) {
message = "提示:故障派单成功!";
}
String url = UNDISPATCHED_PAGE_URL;
if (FaultQueryParameter.DRAFT_ORIGIN
.equals(super.parameter.getOrigin())) {
url = DISPATCH_DRAFT_PAGE_URL;
}
super.addMessage(message, url, SysConstant.SUCCESS);
return SUCCESS;
}
/**
* 故障删除
*
* @return String
*/
public String delete() {
faultDispatchManager.deleteDispatch(super.parameter.getId());
String message = "提示:故障删除成功!";
String url = UNDISPATCHED_PAGE_URL;
if (FaultQueryParameter.DRAFT_ORIGIN
.equals(super.parameter.getOrigin())) {
url = DISPATCH_DRAFT_PAGE_URL;
}
if (FaultQueryParameter.WAIT_DELETED_ORIGIN.equals(super.parameter
.getOrigin())) {
url = WAIT_DELETED_PAGE_URL;
}
super.addMessage(message, url, SysConstant.SUCCESS);
return SUCCESS;
}
@Override
public FaultDispatch getModel() {
return null;
}
public String getFindType() {
return findType;
}
public void setFindType(String findType) {
this.findType = findType;
}
public FaultAlert getFaultAlert() {
return faultAlert;
}
public void setFaultAlert(FaultAlert faultAlert) {
this.faultAlert = faultAlert;
}
public FaultDispatch getFaultDispatch() {
return faultDispatch;
}
public void setFaultDispatch(FaultDispatch faultDispatch) {
this.faultDispatch = faultDispatch;
}
@Override
protected void prepareViewModel() throws Exception {
}
@Override
protected void prepareSaveModel() throws Exception {
}
}