package com.cabletech.business.workflow.electricity.oilengine.dao; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Repository; import com.cabletech.baseinfo.business.entity.UserInfo; import com.cabletech.business.workflow.electricity.oilengine.model.OilEngine; import com.cabletech.common.base.BaseDao; import com.cabletech.common.base.SysConstant; import com.cabletech.common.util.Page; /** * 获取单个实体信息 * * @author wangt * @author 杨隽 2012-05-14 修改额定功率的查询条件比较 */ @Repository public class OilEngineManageDao extends BaseDao<OilEngine, String> { /** * 获取查询列表的语句 * * @param entity * OilEngine * @param user * 登录用户 * @return */ public StringBuffer getSqlBuffer(OilEngine entity, UserInfo user) { StringBuffer sqlBuffer = new StringBuffer(""); sqlBuffer .append(" select t.id,t.oilengine_code,t.oilengine_model,n1.lable oil_type,t.producer,t.ration_power, "); sqlBuffer .append(" t.standard_oilwear,t.oilengine_type,t.oilengine_weight,t.property_right, "); sqlBuffer .append(" t.oilengine_state,r.REGIONNAME district,t.station_type,t.station_id,t.address,t.lon,t.lat, "); sqlBuffer .append(" t.ct_x,t.ct_y,e.orgname maintenance_id,t.principal,t.phone,d.lable state,t.remark "); sqlBuffer .append(" from oe_oilengine t left join base_sysdictionary n1 on t.oil_type=n1.codevalue and n1.columntype='OIL_TYPE'"); sqlBuffer.append(" left join region r on t.district = r.REGIONID"); sqlBuffer.append(" left join view_org e on e.id=t.maintenance_id"); sqlBuffer .append(" left join base_sysdictionary d on t.state=d.codevalue and d.columntype='OLIENGINE_USE'"); sqlBuffer.append(" WHERE 1=1 "); getCondition(entity, sqlBuffer, user); return sqlBuffer; } /** * 获取查询条件 * * @param entity * OilEngine * @param sqlBuffer * StringBuffer * @param user * UserInfo * @param user */ private void getCondition(OilEngine entity, StringBuffer sqlBuffer, UserInfo user) { if (user.isMobile()) { sqlBuffer .append(" and exists(select 1 from region r1 where r1.regionid=t.district start with r1.REGIONID='"); sqlBuffer.append(user.getRegionId()); sqlBuffer .append("' connect by prior r1.regionid=r1.PARENTREGIONID)"); } if (user.isContractor()) { sqlBuffer .append(" and exists(select 1 from view_org r1 where r1.id=t.maintenance_id start with r1.ID='"); sqlBuffer.append(user.getOrgId()); sqlBuffer.append("' connect by prior r1.ID=r1.PARENTID)"); } sqlBuffer.append(" and t.oilengine_state!='"); sqlBuffer.append(SysConstant.OILENGINEUSE_STATE); sqlBuffer.append("'"); if (StringUtils.isNotBlank(entity.getOilengineCode())) { sqlBuffer.append(" and t.oilengine_code like '%"); sqlBuffer.append(entity.getOilengineCode()); sqlBuffer.append("%'"); } if (StringUtils.isNotBlank(entity.getOilengineModel())) { sqlBuffer.append(" and t.oilengine_model like '%"); sqlBuffer.append(entity.getOilengineModel()); sqlBuffer.append("%'"); } if (StringUtils.isNotBlank(entity.getOilType())) { sqlBuffer.append(" and t.oil_type = '"); sqlBuffer.append(entity.getOilType()); sqlBuffer.append("'"); } if (StringUtils.isNotBlank(entity.getRationPowerMin())) { sqlBuffer.append(" and t.ration_power >= "); sqlBuffer.append(entity.getRationPowerMin()); } if (StringUtils.isNotBlank(entity.getRationPowerMax())) { sqlBuffer.append(" and t.ration_power <= "); sqlBuffer.append(entity.getRationPowerMax()); } if (StringUtils.isNotBlank(entity.getDistrict())) { sqlBuffer.append(" and t.district = '"); sqlBuffer.append(entity.getDistrict()); sqlBuffer.append("'"); } if (StringUtils.isNotBlank(entity.getMaintenanceId())) { sqlBuffer.append(" and t.maintenance_id = '"); sqlBuffer.append(entity.getMaintenanceId()); sqlBuffer.append("'"); } if (StringUtils.isNotBlank(entity.getPrincipal())) { sqlBuffer.append(" and t.principal like '%"); sqlBuffer.append(entity.getPrincipal()); sqlBuffer.append("%'"); } } /** * 获取列表 * * @param entity * OilEngine * @param user * 登录用户user * @return */ @SuppressWarnings({ "rawtypes", "unchecked" }) public Page getlist(OilEngine entity, UserInfo user) { StringBuffer sql = getSqlBuffer(entity, user); return getSQLPageAll(entity.getPage(), sql.toString()); } /** * 检查编码是否已存在 * * @param id * 要填写编码的数据编号 * @param codevalue * 编号 * @return */ public long getCodeNumber(String id, String codevalue) { StringBuffer sql = new StringBuffer(""); sql.append(" select 1 from oe_oilengine t where t.oilengine_code = '"); sql.append(codevalue); sql.append("' "); if (StringUtils.isNotBlank(id)) { sql.append(" and t.id!='"); sql.append(id); sql.append("' "); } sql.append(" and t.oilengine_state<>'"); sql.append(SysConstant.OILENGINEUSE_STATE); sql.append("' "); return countSQLResult(sql.toString()); } /** * 获取可分配滴油机列表 * * @param propertyRight * String * @param oilengineCode * String * @return */ public List<Map<String, Object>> getOilEngine(String propertyRight, String oilengineCode) { StringBuffer sql = new StringBuffer(""); sql.append(" select t.id,t.oilengine_code name from oe_oilengine t"); sql.append(" join view_org vo on vo.id=t.property_right "); sql.append(" where 1=1 and vo.orgtype='1' and t.oilengine_state !='"); sql.append(SysConstant.OILENGINEUSE_STATE); sql.append("'"); if (StringUtils.isNotBlank(propertyRight)) { sql.append(" and t.property_right = '"); sql.append(propertyRight); sql.append("'"); } if (StringUtils.isNotBlank(oilengineCode)) { sql.append(" and t.oilengine_code like '%"); sql.append(oilengineCode); sql.append("%'"); } sql.append(" and rownum < 50"); return super.getSQLALL(sql.toString()); } }