package com.cabletech.business.workflow.fault.service.impl; import java.io.Serializable; import java.util.Map; import javax.annotation.Resource; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import com.cabletech.baseinfo.business.Service.BaseInfoProvider; import com.cabletech.business.base.condition.ConditionGenerate; import com.cabletech.business.workflow.fault.condition.parameter.FaultQueryParameter; import com.cabletech.business.workflow.fault.dao.FaultBaseDao; import com.cabletech.business.workflow.fault.service.FaultWorkflowService; import com.cabletech.common.base.BaseDao; import com.cabletech.common.base.BaseServiceImpl; import com.cabletech.common.util.Page; /** * 故障业务操作基类 * * @author 杨隽 2011-10-31 创建 * @author 杨隽 2011-12-12 添加getUserPhone()方法 * @author 杨隽 2012-02-08 添加getBaseDao()方法实现和getFaultBaseDao ()抽象方法 * @author 杨隽 2012-02-08 提取获取故障业务单列表的公共方法 * @author 杨隽 2012-02-22 * 添加“故障派单草稿箱查询条件生成器KEY”常量、“故障派单已办工作查询条件生成器KEY”常量、“故障派单待取消工作查询条件生成器KEY * ”常量、“故障派单已取消工作查询条件生成器KEY”常量和 “故障派单待删除故障查询条件生成器KEY”常量 * @author 杨隽 2012-03-27 添加getOrgTel()方法 * @author 杨隽 2012-03-27 添加“短信发送信息配置文件参数”常量 * * @param <T> * @param <PK> */ public abstract class FaultBaseServiceImpl<T, PK extends Serializable> extends BaseServiceImpl<T, PK> { // “查询条件生成器KEY”常量 // “获取未派单故障告警单列表查询条件生成器KEY” public static final String UNDISPATCHED_FAULT_LIST_CONDITION_GENERATE_KEY = "unDispatchFaultListConditionGenerateImpl"; // “获取故障告警单列表查询条件生成器KEY” public static final String FAULT_LIST_CONDITION_GENERATE_KEY = "faultListConditionGenerateImpl"; // “获取待办故障派单列表查询条件生成器KEY” public static final String WAIT_HANDLED_DISPATCH_FAULT_LIST_CONDITION_GENERATE_KEY = "waitHandledDispatchFaultListConditionGenerateImpl"; // “获取故障派单列表查询条件生成器KEY” public static final String DISPATCH_FAULT_LIST_CONDITION_GENERATE_KEY = "dispatchFaultListConditionGenerateImpl"; // “故障派单草稿箱查询条件生成器KEY” public static final String DRAFT_CONDITION_GENERATE_KEY = "dispatchFaultDraftListConditionGenerateImpl"; // “故障派单已办工作查询条件生成器KEY” public static final String HANDLED_CONDITION_GENERATE_KEY = "dispatchFaultHandledListConditionGenerateImpl"; // “故障派单待取消工作查询条件生成器KEY” public static final String WAIT_CANCELED_CONDITION_GENERATE_KEY = "dispatchFaultWaitCanceledListConditionGenerateImpl"; // “故障派单已取消工作查询条件生成器KEY” public static final String CANCELED_CONDITION_GENERATE_KEY = "dispatchFaultCanceledListConditionGenerateImpl"; // “故障派单待删除故障查询条件生成器KEY” public static final String WAIT_DELETED_TASK_CONDITION_GENERATE_KEY = "dispatchFaultCanceledListConditionGenerateImpl"; // 短信发送信息配置文件参数常量 // 短信发送信息配置文件编号常量 public static final String FAULT_XML_FILE_ID = "fault"; // 故障派发短信发送信息编号 public static final String SEND_TROUBLE_MSG_ID = "send_trouble"; // 故障回复短信发送信息编号 public static final String REPLY_TROUBLE_MSG_ID = "reply_trouble"; // 故障回复验证不通过短信发送信息编号 public static final String APPROVE_NOTPASSED_TROUBLE_MSG_ID = "approve_not_passed"; // 故障回复转审短信发送信息编号 public static final String APPROVE_TRANSFER_TROUBLE_MSG_ID = "transfer_approve"; // 故障回复验证通过短信发送信息编号 public static final String APPROVE_PASSED_TROUBLE_MSG_ID = "approve_passed"; // 故障派单工作流业务处理服务 @Resource(name = "faultWorkflowService") private FaultWorkflowService faultWorkflowManager; // 基础信息业务处理服务 @Resource(name = "baseInfoProvider") private BaseInfoProvider baseInfoProvider; // 故障查询条件生成器Map @Autowired protected Map<String, ConditionGenerate> conditionGenerateMap; /** * 根据组织编号获取组织名称 * * @param orgId * String 组织编号 * @return String 组织名称 */ @SuppressWarnings("deprecation") public String getOrgName(String orgId) { String orgName = ""; Map<String, Object> orgInfo = baseInfoProvider.getOrgMap(orgId); if (MapUtils.isNotEmpty(orgInfo)) { orgName = (String) orgInfo.get("ORGANIZENAME"); } return orgName; } /** * 根据组织编号获取组织联系人电话 * * @param orgId * String 组织编号 * @return String 组织联系人电话 */ @SuppressWarnings("deprecation") public String getOrgTel(String orgId) { String orgName = ""; Map<String, Object> orgInfo = baseInfoProvider.getOrgMap(orgId); if (MapUtils.isNotEmpty(orgInfo)) { orgName = (String) orgInfo.get("LINKMANTEL"); } return orgName; } /** * 根据巡检组编号获取巡检组名称 * * @param patrolGroupId * String 巡检组编号 * @return String 巡检组名称 */ @SuppressWarnings("deprecation") public String getPatrolGroupName(String patrolGroupId) { String patrolGroupName = ""; Map<String, Object> patrolGroupInfo = baseInfoProvider .getPatrolmanMap(patrolGroupId); if (MapUtils.isNotEmpty(patrolGroupInfo)) { patrolGroupName = (String) patrolGroupInfo.get("patrolname"); } return patrolGroupName; } /** * 根据用户编号获取用户名称 * * @param userId * String 用户编号 * @return String 用户名称 */ @SuppressWarnings("deprecation") public String getUserName(String userId) { String userName = ""; Map<String, Object> userInfo = baseInfoProvider.getUserMap(userId); if (MapUtils.isNotEmpty(userInfo)) { userName = (String) userInfo.get("USERNAME"); } return userName; } /** * 根据用户编号获取用户联系电话 * * @param userId * String 用户编号 * @return String 用户联系电话 */ @SuppressWarnings("deprecation") public String getUserPhone(String userId) { // TODO Auto-generated method stub String phone = ""; Map<String, Object> userInfo = baseInfoProvider.getUserMap(userId); if (MapUtils.isNotEmpty(userInfo)) { phone = (String) userInfo.get("phone"); if (StringUtils.isBlank(phone)) { phone = (String) userInfo.get("mobile"); } } return phone; } public FaultWorkflowService getFaultWorkflowManager() { return faultWorkflowManager; } public void setFaultWorkflowManager( FaultWorkflowService faultWorkflowManager) { this.faultWorkflowManager = faultWorkflowManager; } /** * 根据输入参数和查询条件生成器Key获取故障派单任务分页列表 * * @param faultQueryParameter * FaultQueryParameter 输入参数 * @param key * String 查询条件生成器Key * @return Page 故障派单任务分页列表 */ @SuppressWarnings("rawtypes") protected Page getFaultList(FaultQueryParameter faultQueryParameter, String key) { ConditionGenerate conditionGenerate = conditionGenerateMap.get(key); conditionGenerate.setQuerySql(faultQueryParameter); conditionGenerate.setPage(faultQueryParameter.getPage()); Page page = getFaultBaseDao().queryPageForSql(conditionGenerate); return page; } /** * @return BaseDao<T, PK> 业务操作Dao */ @Override protected BaseDao<T, PK> getBaseDao() { // TODO Auto-generated method stub return getFaultBaseDao(); } /** * 获取工单处理操作Dao * * @return FaultBaseDao<T, PK> 业务操作Dao */ protected abstract FaultBaseDao<T, PK> getFaultBaseDao(); }