package com.cabletech.business.ah.excelreport.dao; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Repository; import com.cabletech.business.ah.excelreport.model.AhExcelReportRecode; import com.cabletech.common.base.BaseDao; import com.cabletech.common.util.Page; /** * * 地市每个月上传的excel报表DAO * * @author wj * */ @Repository public class AhExcelReportRecodeDao extends BaseDao<AhExcelReportRecode, String> { /** * 检索报表记录列表 * @param parameters 查询参数封装 * @param page 分页对象 * @return */ public Page searchReportRecodes(Map<String, Object> parameters, Page page) { String qSql = getReportRecodesSql(parameters); return super.findSQLPage(page, qSql); } /** * 检索报表记录 * @param parameters 查询参数 */ public Map<String, Object> searchReportRecode(Map<String, Object> parameters) { String qSql = getReportRecodesSql(parameters); List<Map<String, Object>> ls = super.getJdbcTemplate().queryForList( qSql); if (ls.size() > 0) return ls.get(0); return null; } /** * 获取查询语句 * @param parameters 查询参数 * @return */ private String getReportRecodesSql(Map<String, Object> parameters) { String regionId = (String) parameters.get("regionId"); String reportDate = (String) parameters.get("reportDate"); String id = (String) parameters.get("id"); StringBuffer sqlBuf = new StringBuffer(""); sqlBuf.append(" select t.id,r.REGIONNAME,t.reportdate,t.fileurl,to_char(t.uploadtime,'yyyy-mm-dd hh24:mi:ss') as uploadtime,vu.username from ah_excelreport_recode t "); sqlBuf.append(" left join view_region r on r.REGIONID = t.regionid "); sqlBuf.append(" left join view_userinfo vu on vu.sid=t.uploaduserid "); sqlBuf.append(" where 1=1 "); if (StringUtils.isNotBlank(regionId)) { sqlBuf.append(" and t.regionid in (select regionid from base_region start with regionid= '" + regionId + "' connect by prior regionid=parentid) "); } if (StringUtils.isNotBlank(reportDate)) { sqlBuf.append(" and t.reportdate = to_date('" + reportDate + "','yyyy-mm-dd') "); } if (StringUtils.isNotBlank(id)) { sqlBuf.append(" and t.id = '" + id + "' "); } sqlBuf.append(" order by t.regionid,t.reportdate "); return sqlBuf.toString(); } /** * 根据查询条件获取上传的月报表数据信息 * * @param report * AhExcelReportRecode 查询条件 * @return AhExcelReportRecode 上传的月报表数据信息 */ public AhExcelReportRecode viewahExcelReportRecode( AhExcelReportRecode report) { StringBuffer hqlBuf = getHql(report); return super.findHQLUnique(hqlBuf.toString()); } /** * 根据查询条件获取上传的月报表数据列表信息 * * @param report * AhExcelReportRecode 查询条件 * @return AhExcelReportRecode 上传的月报表数据信息 */ public List<AhExcelReportRecode> queryAhExcelReportRecodeList( AhExcelReportRecode report) { StringBuffer hqlBuf = getHql(report); return super.find(hqlBuf.toString()); } /** * 根据查询条件组织hql语句 * * @param report * AhExcelReportRecode 查询条件 * @return StringBuffer hql语句 */ private StringBuffer getHql(AhExcelReportRecode report) { DateFormat f = new SimpleDateFormat("yyyy-MM-dd"); StringBuffer hqlBuf = new StringBuffer( " from AhExcelReportRecode where 1=1 "); if (StringUtils.isNotBlank(report.getRegionId())) { hqlBuf.append(" and regionId='"); hqlBuf.append(report.getRegionId()); hqlBuf.append("' "); } hqlBuf.append(" and reportDate=to_date('"); hqlBuf.append(f.format(report.getReportDate())); hqlBuf.append("','yyyy-mm-dd') "); return hqlBuf; } }