package com.cabletech.business.ah.familyband.dao; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Repository; import com.cabletech.business.ah.familyband.model.AhFamilyBandRecode; import com.cabletech.common.base.BaseDao; import com.cabletech.common.util.Page; /** * * 家庭宽带巡检登记表DAO * @author wj * */ @Repository public class AhFamilyBandRecodeDao extends BaseDao<AhFamilyBandRecode, String> { /** * * 按条件检索巡检记录 * @param parameters 参数封装 * @param page page * @return List * */ public Page searchRecods(Map<String,Object> parameters,Page page){ return super.findSQLPage(page,getcondition(parameters)); } /** * 获取记录家庭宽带记录及隐患条数 * @param parameters 参数id * @return */ public Map<String,Object> getRecode(Map<String,Object> parameters){ return super.jdbcTemplate.queryForMap(getcondition(parameters)); } /** * 获取条件 * @param parameters 参数 * @return */ private String getcondition(Map<String,Object> parameters){ String orgid = (String) parameters.get("orgid"); String regionid = (String) parameters.get("regionid"); String creatername = (String) parameters.get("creatername"); String startTime = (String) parameters.get("starttime"); String endTime = (String) parameters.get("endtime"); StringBuffer sb = new StringBuffer(); sb.append(" select t.id,o.orgname,o.id as orgid,u.username,t.patrolmanid,u.sid as userid,t.range ,t.usernum,to_char(t.starttime,'yyyy-MM-dd HH24:mi:ss') as starttime, "); sb.append(" to_char(t.endtime,'yyyy-MM-dd HH24:mi:ss') as endtime, "); sb.append(" (select count(1) from ah_familyband_trouble where recodeid = t.id) as troublenum, "); sb.append(" (select count(1) from ah_familyband_trouble where recodeid = t.id and status !='1') as unhandletroublenum "); sb.append(" from ah_familyband_recode t "); sb.append(" left join view_org o on t.contractorid = o.id "); sb.append(" left join view_userinfo u on t.patrolmanid = u.sid "); sb.append(" where 1 =1 "); if(StringUtils.isNotBlank(orgid)){ sb.append("and t.contractorid in (select id from view_org start with id = '"); sb.append(orgid); sb.append("' connect by prior id=parentid) "); }else{ if(StringUtils.isNotBlank(regionid)){ sb.append("and o.regionid in(select regionid from view_region start with regionid = '"); sb.append(regionid); sb.append("' connect by prior regionid=parentid) "); } } if(StringUtils.isNotBlank(creatername)){ sb.append(" and u.username like '%"); sb.append(creatername); sb.append("%' "); } if(StringUtils.isNotBlank(startTime)){ sb.append(" and t.starttime>=to_date('"); sb.append(startTime); sb.append("','yyyy-MM-dd HH24:mi:ss') "); } if(StringUtils.isNotBlank(endTime)){ sb.append(" and t.starttime<=to_date('"); sb.append(endTime); sb.append("','yyyy-MM-dd HH24:mi:ss') "); } if(StringUtils.isNotBlank((String) parameters.get("id"))){ sb.append("and t.id= '"); sb.append((String) parameters.get("id")); sb.append("' "); } sb.append(" order by t.contractorid,t.starttime "); return sb.toString(); } }