package com.cabletech.business.workflow.fault.service.impl;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.cabletech.baseinfo.business.entity.UserInfo;
import com.cabletech.business.flowservice.util.WorkFlowServiceClient;
import com.cabletech.business.workflow.fault.condition.parameter.FaultQueryParameter;
import com.cabletech.business.workflow.fault.dao.FaultBaseDao;
import com.cabletech.business.workflow.fault.model.FaultAlert;
import com.cabletech.business.workflow.fault.model.FaultDispatch;
import com.cabletech.business.workflow.fault.service.FaultDispatchCancelService;
import com.cabletech.common.util.Page;
/**
* 取消任务业务处理类
*
* @author 杨隽 2012-02-22 创建
*
*/
@Service
public class FaultDispatchCancelServiceImpl extends
FaultBaseServiceImpl<FaultDispatch, String> implements
FaultDispatchCancelService {
@Resource(name = "workFlowServiceClient")
private WorkFlowServiceClient workflowClient;
// 故障告警单Dao操作
@Resource(name = "faultAlertDao")
private FaultBaseDao<FaultAlert, String> faultAlertDao;
// 故障派单Dao操作
@Resource(name = "faultDispatchDao")
private FaultBaseDao<FaultDispatch, String> faultDispatchDao;
@Override
protected FaultBaseDao<FaultDispatch, String> getFaultBaseDao() {
// TODO Auto-generated method stub
return faultDispatchDao;
}
/**
* 获取待取消任务列表
*
* @param faultQueryParameter
* FaultQueryParameter 查询条件的故障派单实体
* @param userInfo
* UserInfo 当前用户信息
* @return Page 故障派单的待取消任务列表
*/
@SuppressWarnings("rawtypes")
@Transactional(readOnly = true)
public Page getWaitCanceledList(FaultQueryParameter faultQueryParameter,
UserInfo userInfo) {
// 使用DispatchFaultWaitCanceledListConditionGenerateImpl的条件生成器实例进行sql组装查询
faultQueryParameter.setUser(userInfo);
Page page = getFaultList(faultQueryParameter,
WAIT_CANCELED_CONDITION_GENERATE_KEY);
return page;
}
/**
* 获取已取消任务列表
*
* @param faultQueryParameter
* FaultQueryParameter 查询条件的故障派单实体
* @param userInfo
* UserInfo 当前用户信息
* @return Page 故障派单的已取消任务列表
*/
@SuppressWarnings("rawtypes")
@Transactional(readOnly = true)
public Page getCanceledList(FaultQueryParameter faultQueryParameter,
UserInfo userInfo) {
// 使用DispatchFaultCanceledListConditionGenerateImpl的条件生成器实例进行sql组装查询
faultQueryParameter.setUser(userInfo);
Page page = getFaultList(faultQueryParameter,
CANCELED_CONDITION_GENERATE_KEY);
return page;
}
/**
* 取消任务
*
* @param id
* String 任务分发派单编号
*/
@Transactional
public void cancelDispatch(String id) {
workflowClient.deletePins(id);
FaultDispatch faultDispatch = faultDispatchDao.get(id);
FaultAlert faultAlert = faultAlertDao.get(faultDispatch.getAlarmId());
faultAlert.setState(FaultAlert.CANCELED_STATE);
faultAlertDao.save(faultAlert);
}
}