package com.cabletech.business.assess.dao;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.cabletech.business.assess.model.AssessMentDetail;
import com.cabletech.common.base.BaseDao;
/**
* 考核/检查明细Dao
*
* @author 杨隽 2012-08-03 创建
*
*/
@Repository
public class AssessExaminationDetailDao extends
BaseDao<AssessMentDetail, String> {
/**
* 获取最大深度级别
*
* @param map
* 表名
* @return int
*/
public int getMaxLvItem(Map<String, Object> map) {
StringBuffer sb = new StringBuffer("");
sb.append("select nvl(max(lv),0) maxlv from (");
sb.append(getTemplateContentSql(map) + ")");
String sql = sb.toString();
logger.debug("获取最大模版级别:" + sql);
return super.getJdbcTemplate().queryForInt(sql);
}
/**
* 获取模板项内容
*
* @param map
* 表格ID
* @return List<Map<String, Object>>
*/
public List<Map<String, Object>> getTableItemContent(Map<String, Object> map) {
StringBuffer sb = new StringBuffer("select * from (");
sb.append(getTemplateContentSql(map));
sb.append(" order by cid,lv,itempath asc) c where c.childcount=0");
String sql = sb.toString();
logger.debug("获取模版内容项:" + sql);
return super.getJdbcTemplate().queryForList(sql);
}
/**
* 根据考核表ID获取模版内容
*
* @param map
* Map<String, Object>
* @return
*/
private String getTemplateContentSql(Map<String, Object> map) {
StringBuffer sb = new StringBuffer();
sb.append(" select sys_connect_by_path(m.item_name, '>') itempath,m.id,m.table_id,nvl(m.item_id,'root') item_id,m.item_name,level lv,mc.id as cid,(select count(id) from MM_appraise_item pm where pm.item_id=m.id ) CHILDCOUNT, ");
sb.append(" mc.name,mc.demand_desc,mc.evaluation_criterion,mc.benchmark_value,mc.challenge_value,mc.weight,mc.id contentid,mad.indicators_value,mad.score,mad.rating_desc from MM_appraise_item m ");
sb.append(" left join MM_appraise_content mc on m.id=mc.item_id ");
sb.append(" left join mm_assessmentdetails mad on mad.content_id=mc.id ");
sb.append(" left join mm_examinationresults mer on mad.result_id=mer.id and m.table_id=mer.table_id ");
sb.append(" where mer.id='");
sb.append(map.get("id"));
sb.append("' ");
sb.append(" start with m.item_id is null connect by prior m.id=m.item_id ");
return sb.toString();
}
/**
* 删除所有考核明细内容
*
* @param resultId
* String
*/
public void deleteAll(String resultId) {
String sql = "delete from mm_assessmentdetails where RESULT_ID='"
+ resultId + "' ";
super.getJdbcTemplate().execute(sql);
}
}