package com.cabletech.business.workflow.electricity.security.dao;
import org.springframework.stereotype.Repository;
/**
* 搜索油机信息DAO
*
* @author 杨隽 2012-05-09 创建
*
*/
@SuppressWarnings("rawtypes")
@Repository
public class OeOilengineSearchDao extends ElectricitySecurityBaseDao {
/**
* 根据查询条件获取sql语句
*
* @return String 生成后的sql语句
*/
@Override
public String getBusinessTableSql() {
// TODO Auto-generated method stub
StringBuffer sqlBuffer = new StringBuffer("");
sqlBuffer.append(" SELECT t_.*, ");
sqlBuffer.append(" substr( ");
sqlBuffer.append(" t_.STATION_INFO, ");
sqlBuffer.append(" instr(t_.STATION_INFO,'_')+1 ");
sqlBuffer.append(" ) AS BASESTATION_ID, ");
sqlBuffer.append(" to_char(t_.DISTANCE,'FM999990.0999') ");
sqlBuffer.append(" AS DISTANCE_DIS ");
sqlBuffer.append(" FROM ( ");
sqlBuffer.append(" SELECT ooe.*, ");
sqlBuffer.append(" dic01.LABLE AS OIL_TYPE_DIS, ");
sqlBuffer.append(" dic02.LABLE AS STATE_DIS, ");
sqlBuffer.append(" sqrt( ");
sqlBuffer.append(" power((ooe.CT_X-res.CT_X),2) ");
sqlBuffer.append(" + ");
sqlBuffer.append(" power((ooe.CT_Y-res.CT_Y),2) ");
sqlBuffer.append(" ) AS DISTANCE, ");
sqlBuffer.append(" ( ");
sqlBuffer.append(" SELECT MAX(odt.ID||'_'||STATION_ID) ");
sqlBuffer.append(" FROM OE_DISPATCHTASK odt ");
sqlBuffer.append(" WHERE odt.OILENGINE_ID=ooe.ID ");
sqlBuffer.append(" ) AS STATION_INFO, ");
sqlBuffer.append(" vr.REGIONNAME,vo.ORGNAME AS ORG_NAME ");
sqlBuffer.append(" FROM OE_OILENGINE ooe ");
sqlBuffer.append(" JOIN VIEW_REGION vr ");
sqlBuffer.append(" ON vr.REGIONID=ooe.DISTRICT ");
sqlBuffer.append(" JOIN BASE_SYSDICTIONARY dic01 ");
sqlBuffer.append(" ON dic01.CODEVALUE=ooe.OIL_TYPE ");
sqlBuffer.append(" AND dic01.COLUMNTYPE='OIL_TYPE' ");
sqlBuffer.append(" JOIN BASE_SYSDICTIONARY dic02 ");
sqlBuffer.append(" ON dic02.CODEVALUE=ooe.STATE ");
sqlBuffer.append(" AND dic02.COLUMNTYPE='OLIENGINE_USE' ");
sqlBuffer.append(" JOIN VIEW_ORG vo ");
sqlBuffer.append(" ON vo.ID=ooe.MAINTENANCE_ID ");
putTableToSql(sqlBuffer);
sqlBuffer.append(" ) t_ ");
sqlBuffer.append(" WHERE 1=1 ");
return sqlBuffer.toString();
}
/**
* 将业务数据表的from语句放到sql缓冲区中
*
* @param sqlBuffer
* StringBuffer sql缓冲区
*/
private void putTableToSql(StringBuffer sqlBuffer) {
sqlBuffer.append(" JOIN RS_RESOURCERECORD_V res ");
sqlBuffer.append(super.getInnerCondition());
}
}