package edu.sjtu.infosec.ismp.manager.RAM.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import edu.sjtu.infosec.ismp.manager.RAM.dao.DicAsseKindDao;
import edu.sjtu.infosec.ismp.manager.RAM.model.AsseKnowDicAsseKind;
import edu.sjtu.infosec.ismp.manager.RAM.service.DicAsseKindService;
import edu.sjtu.infosec.ismp.manager.comm.model.page.Page;
/**
* 应用层 资产类型数据字典Manager实现类.
*
*/
public class DicAsseKindServiceImpl implements DicAsseKindService{
/**
* 资产类型数据访问对象接口
*/
private DicAsseKindDao dicAsseKindDao;
/**
* @param dicasseKindDao
* 资产类型数据访问对象接口(Spring Ioc容器依赖注入)
*/
public void setDicAsseKindDao(DicAsseKindDao dicasseKindDao) {
this.dicAsseKindDao = dicasseKindDao;
}
/**
* 查询资产类型
*
* @param assetKindId
* 资产类型编号
* @return 资产类型对象
*/
public AsseKnowDicAsseKind find(String assetKindId) {
return dicAsseKindDao.find(assetKindId);
}
/**
* 查询资产类型
*
* @param id
* 资产类型id
* @return 资产类型对象
*/
public AsseKnowDicAsseKind findById(String id) {
return dicAsseKindDao.find(new Integer(id));
}
/**
* 查询资产类型记录数
*
* @param paramMap
* 查询条件
* @return 资产类型记录数
*/
public int getCount(Map paramMap) {
return dicAsseKindDao.getCount(paramMap);
}
/**
* 查询资产类型
* @param paramMap
* 查询条件
* @return 资产类型列表
*/
public List listDicAsseKind(Map paramMap) {
return dicAsseKindDao.listDicAsseKind(paramMap);
}
public List listDicAsseKindByid(){
return dicAsseKindDao.listDicAsseKindByid();
}
/**
* 查询资产类型分页记录
* .
* @param page
* 分页对象
* @param paramMap
* 查询条件
* @return 分页记录列表
*/
public List listDicAsseKindPage(Page page, Map paramMap) {
return dicAsseKindDao.listDicAsseKindPage(page, paramMap);
}
/**
* 删除资产类型
*
* @param dicAsseKind
* 资产类型
*/
public void remove(AsseKnowDicAsseKind dicAsseKind) {
dicAsseKindDao.remove(dicAsseKind);
}
/**
* 保存/更新资产类型
*
* @param dicAsseKind
* 资产类型
*/
public void saveOrUpdate(AsseKnowDicAsseKind dicAsseKind) {
dicAsseKindDao.saveOrUpdate(dicAsseKind);
}
/**
* 查询资产类型树父节点
* @return 资产类型树父节点列表
*/
public List listRootNode() {
return dicAsseKindDao.listRootNode();
}
/**
* 查询选择的资产类型
* @return 选择的资产类型列表
*/
public List listChildNode(){
//AsseKnowDicAsseKind asseKind = new AsseKnowDicAsseKind();
List asseKindList = new ArrayList();
List childNodeList = dicAsseKindDao.listChildNode1();
List parentNodeList = dicAsseKindDao.listRootNode1();
if(childNodeList!=null && childNodeList.size()>0) {
asseKindList.addAll(childNodeList);
}
if(parentNodeList!=null && parentNodeList.size()>0) {
for(int i=0;i<parentNodeList.size();i++) {
// asseKind = (AsseKnowDicAsseKind) parentNodeList.get(i);
// if(asseKind.getChildAsseKinds().size()==0){
// asseKindList.add(asseKind);
// }
Object[] parentNode = (Object[]) parentNodeList.get(i);
String assetKindId = (String) parentNode[1];
List list = dicAsseKindDao.listChildNode(assetKindId);
if(list.isEmpty()) {
asseKindList.add(parentNode);
}
}
}
return asseKindList;
}
}