package com.cabletech.business.wplan.patrolitem.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基类
*
* @author 杨隽 2012-02-14 创建
* @param <T>
* T
* @param <PK>
* PK
*
*/
public abstract class PatrolItemBaseDao<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();
}