package edu.sjtu.infosec.ismp.manager.RAM.dao.impl;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.Order;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import edu.sjtu.infosec.ismp.manager.RAM.dao.DynaAsseValueDao;
import edu.sjtu.infosec.ismp.manager.RAM.model.AsseKnowDynaAsseValue;
import edu.sjtu.infosec.ismp.manager.comm.model.page.Page;
/**
* 数据层 知识库项目总体评估值Dao实现类.
**/
public class DynaAsseValueDaoImpl extends HibernateDaoSupport implements DynaAsseValueDao {
/**
* 查询项目总体评估值
* @param id
* 项目总体评估值id
* @return 项目总体评估值对象
**/
public AsseKnowDynaAsseValue find(Integer id) {
AsseKnowDynaAsseValue dynaAsseValue = null;
dynaAsseValue = (AsseKnowDynaAsseValue) getHibernateTemplate().load(AsseKnowDynaAsseValue.class, id);
return dynaAsseValue;
}
/**
* 查询项目总体评估值记录数
* @param projCode
* 测评项目id
* @return 项目总体评估值记录数
**/
public int getCount(String projCode) {
Criteria criteria = getSession().createCriteria(AsseKnowDynaAsseValue.class)
.addOrder(Order.asc("id"));
if(projCode!=null && !"".equals(projCode)) {
criteria.add(Expression.eq("projCode", projCode));
}
return 0;//count(criteria);
}
/**
* 返回项目总体评估值
* @param projCode
* 测评项目id
* @return 项目总体评估值列表
**/
public List<AsseKnowDynaAsseValue> listDynaAsseValue(String projCode) {
Criteria criteria = getSession().createCriteria(AsseKnowDynaAsseValue.class)
.addOrder(Order.asc("id"));
if(projCode!=null && !"".equals(projCode)) {
criteria.add(Expression.eq("projCode", projCode));
}
return criteria.list();
}
/**
* 查询矩阵规则分页记录
* @param page
* 分页对象
* @param projCode
* 测评项目id
* @return 分页记录列表
**/
public List<AsseKnowDynaAsseValue> listDynaAsseValuePage(Page page,String projCode) {
Criteria criteria = getSession().createCriteria(AsseKnowDynaAsseValue.class)
.addOrder(Order.asc("id"));
if(page!=null) {
criteria.setFirstResult(page.getBeginIndex());
criteria.setMaxResults(page.getEveryPage());
}
if(projCode!=null && !"".equals(projCode)) {
criteria.add(Expression.eq("projCode", projCode));
}
return criteria.list();
}
/**
* 删除矩阵规则
* @param dynaAsseValue
* 项目总体评估值
**/
public void remove(AsseKnowDynaAsseValue dynaAsseValue) {
getHibernateTemplate().delete(dynaAsseValue);
}
/**
* 保存/更新项目总体评估值
*
* @param dynaAsseValue
* 项目总体评估值
**/
public void saveOrUpdate(AsseKnowDynaAsseValue dynaAsseValue) {
getHibernateTemplate().saveOrUpdate(dynaAsseValue);
}
/**
* 查询项目总体评估值
* @param projCode
* 测评项目id
* @return 项目总体评估值对象
**/
public AsseKnowDynaAsseValue find(String projCode) {
AsseKnowDynaAsseValue dynaAsseValue = null;
List list=getHibernateTemplate().find("from AsseKnowDynaAsseValue where projCode='"+projCode+"' ");
if(list!=null && list.size()>0) {
dynaAsseValue = (AsseKnowDynaAsseValue) list.get(0);
}
return dynaAsseValue;
}
public Object[] getExpQuesAndAdvice(String projCode) {
Object[] o = null;
List list=getHibernateTemplate().find("select totalAsse,expertSuggest from AsseKnowDynaAsseValue where projCode='"+projCode+"' ");
if(list!=null && list.size()>0) {
o = (Object[]) list.get(0);
}
return o;
}
}