package com.cabletech.business.workflow.fault.dao;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import com.cabletech.business.base.condition.ConditionGenerate;
import com.cabletech.common.base.BaseDao;
import com.cabletech.common.util.Page;
/**
* 故障DAO基类
*
* @param <T>
* 实体类
* @param <PK>
* 主键类
* @author 杨隽 2011-10-26 创建
* @author 杨隽 2012-02-07 将getSql()方法改为getBusinessTableSql()方法并修改传入的参数
* @author 杨隽 2012-02-07 添加queryPageForSql()方法
* @author 杨隽 2012-02-07 将queryForList()方法改为queryListForSql()方法
*
*/
public abstract class FaultBaseDao<T, PK extends Serializable> extends
BaseDao<T, PK> {
/**
* 根据查询条件获取表单的分页数据信息
*
* @param conditionGenerate
* ConditionGenerate 查询条件生成器
* @return Page<Map<String, Object>> 表单的分页数据信息
*/
@SuppressWarnings("unchecked")
public Page<Map<String, Object>> queryPageForSql(
ConditionGenerate conditionGenerate) {
StringBuffer sql = getSqlBuffer(conditionGenerate);
return (Page<Map<String, Object>>) super.getSQLPageAll(
conditionGenerate.getPage(), sql.toString());
}
/**
* 根据查询条件获取故障数据信息列表
*
* @param conditionGenerate
* ConditionGenerate 查询条件生成器
* @return List<Map<String, Object>> 故障数据信息列表
*/
public List<Map<String, Object>> queryListForSql(
ConditionGenerate conditionGenerate) {
StringBuffer sql = getSqlBuffer(conditionGenerate);
return super.getSQLALL(sql.toString());
}
/**
* 获取根据查询条件生成的sql语句
*
* @param conditionGenerate
* ConditionGenerate 查询条件生成器
* @return StringBuffer 根据查询条件生成的sql语句
*/
public StringBuffer getSqlBuffer(ConditionGenerate conditionGenerate) {
StringBuffer sql = new StringBuffer("");
sql.append(" SELECT * FROM ( ");
sql.append(getBusinessTableSql());
sql.append(conditionGenerate.getBusinessTableDataCondition());
sql.append(" ) business_table ");
sql.append(conditionGenerate.getJoinTableSql());
sql.append(conditionGenerate.getOrder());
return sql;
}
/**
* 根据查询条件获取sql语句
*
* @return String 生成后的sql语句
*/
public abstract String getBusinessTableSql();
}