package cn.ksource.web.facade.cfgcate;
|
|
import cn.ksource.core.dao.BaseDao;
|
import cn.ksource.core.dao.SqlParameter;
|
import cn.ksource.core.page.PageInfo;
|
import cn.ksource.core.util.ConvertUtil;
|
import cn.ksource.core.util.StringUtil;
|
import cn.ksource.core.util.TreeUtil;
|
import cn.ksource.web.Constants;
|
import org.apache.commons.lang.StringUtils;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.*;
|
|
@Service
|
@SuppressWarnings({"rawtypes","unchecked"})
|
public class CfgcateFacadeImpl implements CfgcateFacade{
|
@Resource
|
private BaseDao baseDao;
|
|
@Override
|
public List getCfgcateTree(Map<String, String> params) {
|
StringBuilder sql = new StringBuilder();
|
sql.append(" select id,type,lv,name,code,pid from cmdb_ci_category where state = 1 and cate_type=:cateType "
|
+ " order by lv asc,serial asc,name ");
|
List list = baseDao.queryForList(sql.toString(),params);
|
List<Map> tlist = TreeUtil.createTreeByList(list);
|
return tlist;
|
}
|
|
@Override
|
public PageInfo getCfgcateData(PageInfo pageInfo,Map<String, String> params) {
|
Map support = getCfgcateSupport(params);
|
String sql = support.get("sql").toString();
|
return baseDao.queryforSplitPageInfo(pageInfo, sql, params);
|
}
|
|
@Override
|
public Integer getCfgcateCount(Map<String, String> params) {
|
Map support = getCfgcateSupport(params);
|
String sql = "select count(*) from ( " + support.get("sql").toString() + " ) t ";
|
return baseDao.queryForInteger(sql, params);
|
}
|
|
private Map getCfgcateSupport(Map<String, String> params){
|
Map<String, Object> support = new HashMap<String, Object>();
|
StringBuilder sql = new StringBuilder();
|
sql.append(" select a.* ");
|
sql.append(" from cmdb_ci_category a ");
|
sql.append(" where 1=1 ");
|
if(StringUtil.isNotBlank(params.get("pid"))){
|
sql.append(" and a.pid=:pid ");
|
}
|
if(StringUtil.isNotBlank(params.get("cateType"))){
|
sql.append(" and a.CATE_TYPE=:cateType ");
|
}
|
sql.append(" order by a.lv asc,a.serial asc ");
|
support.put("sql", sql.toString());
|
support.put("param", params);
|
return support;
|
}
|
|
@Override
|
public Map getCfgcateById(String id) {
|
return baseDao.queryForMap("select * from cmdb_ci_category where id=:id ",new SqlParameter("id",id));
|
}
|
|
@Override
|
public Map saveCfgcate(Map<String, String> params) {
|
StringBuilder sql = new StringBuilder();
|
if(StringUtil.isBlank(params.get("id"))){//新增
|
params.put("id", StringUtil.getUUID());
|
String lv1_id = "";
|
String lv1_name = "";
|
String lv2_id = "";
|
String lv2_name = "";
|
String lv3_id = "";
|
String lv3_name = "";
|
String full_id = "";
|
String full_name = "";
|
if(params.get("lv").equals("1")){//一级
|
lv1_id = params.get("id");
|
lv1_name = params.get("name");
|
full_id = lv1_id;
|
full_name = lv1_name;
|
}else{
|
Map pcate = getCfgcateById(params.get("pid"));
|
lv1_id = pcate.get("lv1_id").toString();
|
lv1_name = pcate.get("lv1_name").toString();
|
if(params.get("lv").equals("2")){//二级
|
lv2_id = params.get("id");
|
lv2_name = params.get("name");
|
full_id = lv1_id + "-" + lv2_id;
|
full_name = lv1_name + "-" + lv2_name;
|
}else if(params.get("lv").equals("3")){//三级
|
lv2_id = pcate.get("lv2_id").toString();
|
lv2_name = pcate.get("lv2_name").toString();
|
lv3_id = params.get("id");
|
lv3_name = params.get("name");
|
full_id = lv1_id + "-" + lv2_id + "-" + lv3_id ;
|
full_name = lv1_name + "-" + lv2_name + "-" + lv3_name;
|
}
|
}
|
params.put("lv1_id", lv1_id);
|
params.put("lv1_name", lv1_name);
|
params.put("lv2_id", lv2_id);
|
params.put("lv2_name", lv2_name);
|
params.put("lv3_id", lv3_id);
|
params.put("lv3_name", lv3_name);
|
params.put("full_id", full_id);
|
params.put("full_name", full_name);
|
|
sql.append("insert into cmdb_ci_category "
|
+ " (id,pid,type,name,code,lv,serial,note,state,lv1_id,lv1_name,lv2_id,lv2_name,lv3_id,lv3_name,full_id,full_name,cate_type) values "
|
+ " (:id,:pid,1,:name,:code,:lv,:serial,:note,1,:lv1_id,:lv1_name,:lv2_id,:lv2_name,:lv3_id,:lv3_name,:full_id,:full_name,:cateType) ");
|
baseDao.execute(sql.toString(), params);
|
}else{//修改
|
String colId = "";
|
String colName = "";
|
if(params.get("lv").equals("1")){
|
colId = "lv1_id";
|
colName = "lv1_name";
|
}else if(params.get("lv").equals("2")){
|
colId = "lv2_id";
|
colName = "lv2_name";
|
}else if(params.get("lv").equals("3")){
|
colId = "lv3_id";
|
colName = "lv3_name";
|
}
|
//更新本记录
|
sql.append(" update cmdb_ci_category set name=:name,serial=:serial,note=:note,cate_type=:cateType "
|
+ " where id=:id ");
|
baseDao.execute(sql.toString(), params);
|
//更新子记录
|
sql.setLength(0);
|
sql.append(" update cmdb_ci_category set "+colName+"=:name "
|
+ " where "+colId+"=:id ");
|
baseDao.execute(sql.toString(), params);
|
|
//更新一级全名称
|
if(params.get("lv").equals("1")){
|
sql.setLength(0);
|
sql.append(" update cmdb_ci_category set full_name = lv1_name "
|
+ " where "+colId+"=:id and lv=1 ");
|
baseDao.execute(sql.toString(), params);
|
}
|
|
sql.setLength(0);
|
sql.append(" update cmdb_ci_category set full_name = concat(lv1_name,'-',lv2_name) "
|
+ " where "+colId+"=:id and lv=2 ");
|
baseDao.execute(sql.toString(), params);
|
|
//更新三级全名称
|
sql.setLength(0);
|
sql.append(" update cmdb_ci_category set full_name = concat(lv1_name,'-',lv2_name,'-',lv3_name) "
|
+ " where "+colId+"=:id and lv=3 ");
|
baseDao.execute(sql.toString(), params);
|
}
|
|
//树回显
|
Map echo = new HashMap();
|
String lv1Id = "";
|
String lv2Id = "";
|
if(!params.get("lv").equals("1")){
|
Map pMap = baseDao.queryForMap("select * from cmdb_ci_category where id=:pid ",params);
|
if(ConvertUtil.obj2StrBlank(pMap.get("pid")).equals("0")){//父节点为一级
|
lv1Id = pMap.get("id").toString();
|
lv2Id = params.get("id");
|
}else{//父节点为二级
|
lv1Id = pMap.get("pid").toString();
|
lv2Id = pMap.get("id").toString();
|
}
|
}
|
echo.put("lv1Id", lv1Id);
|
echo.put("lv2Id", lv2Id);
|
return echo;
|
}
|
|
@Override
|
public int checkCateName(String name, String id) {
|
StringBuffer sql=new StringBuffer(" select count(*) from cmdb_ci_category where name= :name ");
|
if (StringUtils.isNotBlank(id)) {
|
sql.append(" and id <> :id");
|
}
|
SqlParameter param = new SqlParameter();
|
param.addValue("name", name);
|
param.addValue("id", id);
|
int count=baseDao.queryForInteger(sql.toString(),param);
|
return count;
|
}
|
|
@Override
|
public int checkCateCode(String code, String id, String lv) {
|
StringBuffer sql=new StringBuffer(" select count(*) from cmdb_ci_category where code= :code and lv=:lv ");
|
if (StringUtils.isNotBlank(id)) {
|
sql.append(" and id <> :id");
|
}
|
SqlParameter param = new SqlParameter();
|
param.addValue("code", code);
|
param.addValue("id", id);
|
param.addValue("lv", lv);
|
int count=baseDao.queryForInteger(sql.toString(),param);
|
return count;
|
}
|
|
@Override
|
public PageInfo getCateGroupData(PageInfo pageInfo, Map<String, String> params) {
|
Map support = getCateGroupSupport(params);
|
String sql = support.get("sql").toString();
|
return baseDao.queryforSplitPageInfo(pageInfo, sql, params);
|
}
|
|
@Override
|
public Integer getCateGroupCount(Map<String, String> params) {
|
Map support = getCateGroupSupport(params);
|
String sql = "select count(*) from ( " + support.get("sql").toString() + " ) t ";
|
return baseDao.queryForInteger(sql, params);
|
}
|
|
private Map getCateGroupSupport(Map<String, String> params){
|
Map<String, Object> support = new HashMap<String, Object>();
|
StringBuilder sql = new StringBuilder();
|
sql.append(" select a.* ");
|
sql.append(" from prop_group a ");
|
sql.append(" where link_id=:linkId ");
|
sql.append(" order by a.serial asc ");
|
support.put("sql", sql.toString());
|
support.put("param", params);
|
return support;
|
}
|
|
@Override
|
public Map getGroupById(String id) {
|
return baseDao.queryForMap("select * from prop_group where id=:id ",new SqlParameter("id",id));
|
}
|
|
@Override
|
public void saveGroup(Map<String, String> params) {
|
StringBuilder sql = new StringBuilder();
|
if(StringUtil.isBlank(params.get("id"))){//新增
|
params.put("id", StringUtil.getUUID());
|
sql.append("insert into prop_group (id,group_name,serial,note,state,link_id) values "
|
+ " (:id,:group_name,:serial,:note,1,:linkId) ");
|
}else{//修改
|
sql.append(" update prop_group set group_name=:group_name,serial=:serial,note=:note "
|
+ " where id=:id ");
|
}
|
baseDao.execute(sql.toString(), params);
|
}
|
|
@Override
|
public int checkGroupName(String id, String group_name, String linkId) {
|
String sql = " select count(*) from prop_group "
|
+ " where group_name=:group_name and link_id=:linkId and id<>:id ";
|
SqlParameter param = new SqlParameter();
|
param.addValue("group_name", group_name);
|
param.addValue("linkId", linkId);
|
param.addValue("id", id);
|
return baseDao.queryForInteger(sql, param);
|
}
|
|
@Override
|
public void delGroup(Map params) {
|
baseDao.execute("update prop_group set state=:flag where id=:id ", params);
|
}
|
|
@Override
|
public List<Map> getGroupListByLinkId(Map<String, String> params) {
|
StringBuilder sql = new StringBuilder();
|
sql.append(" select * from prop_group where link_id = :linkId and state=1 ");
|
return baseDao.queryForList(sql.toString(),params);
|
}
|
|
@Override
|
public PageInfo getPropData(PageInfo pageInfo, Map<String, String> params) {
|
Map support = getPropSupport(params);
|
String sql = support.get("sql").toString();
|
return baseDao.queryforSplitPageInfo(pageInfo, sql, params);
|
}
|
|
@Override
|
public Integer getPropCount(Map<String, String> params) {
|
Map support = getPropSupport(params);
|
String sql = "select count(*) from ( " + support.get("sql").toString() + " ) t ";
|
return baseDao.queryForInteger(sql, params);
|
}
|
|
private Map getPropSupport(Map<String, String> params){
|
Map<String, Object> support = new HashMap<String, Object>();
|
StringBuilder sql = new StringBuilder();
|
sql.append(" select a.* ");
|
sql.append(" from prop_column a ");
|
sql.append(" where 1=1 ");
|
if(StringUtil.isNotBlank(params.get("linkId"))){
|
sql.append(" and a.group_id in ( select id from prop_group where link_id=:linkId ) ");
|
}
|
if(StringUtil.isNotBlank(params.get("groupId"))){
|
sql.append(" and a.group_id =:groupId ");
|
}
|
sql.append(" order by a.serial asc ");
|
support.put("sql", sql.toString());
|
support.put("param", params);
|
return support;
|
}
|
|
@Override
|
public Map getPropById(String id) {
|
return baseDao.queryForMap("select * from prop_column where id=:id ",new SqlParameter("id",id));
|
}
|
|
@Override
|
public int checkPropCode(String id, String groupId, String columncode) {
|
StringBuffer sql=new StringBuffer(" select count(*) from prop_column where columncode= :columncode and group_id=:groupId ");
|
if (StringUtils.isNotBlank(id)) {
|
sql.append(" and id <> :id");
|
}
|
SqlParameter param = new SqlParameter();
|
param.addValue("columncode", columncode);
|
param.addValue("id", id);
|
param.addValue("groupId", groupId);
|
int count=baseDao.queryForInteger(sql.toString(),param);
|
return count;
|
}
|
|
@Override
|
public void saveProp(Map<String, String> params) {
|
if(StringUtil.isBlank(params.get("id"))){//新增
|
params.put("id", StringUtil.getUUID());
|
baseDao.execute(getPropInsertSql(params), params);
|
}else{//更新
|
baseDao.execute(getPropUpdateSql(params), params);
|
}
|
}
|
|
private String getPropInsertSql(Map<String, String> params){
|
StringBuilder sql = new StringBuilder();
|
StringBuilder frontsql = new StringBuilder();
|
StringBuilder endsql = new StringBuilder();
|
if(params.get("id")!=null){
|
frontsql.append("id,");
|
endsql.append(":id,");
|
}
|
if(params.get("group_id")!=null){
|
frontsql.append("group_id,");
|
endsql.append(":group_id,");
|
}
|
if(params.get("columnname")!=null){
|
frontsql.append("columnname,");
|
endsql.append(":columnname,");
|
}
|
if(params.get("columncode")!=null){
|
frontsql.append("columncode,");
|
endsql.append(":columncode,");
|
}
|
if(params.get("datatype")!=null){
|
frontsql.append("datatype,");
|
endsql.append(":datatype,");
|
}
|
if(params.get("allownull")!=null){
|
frontsql.append("allownull,");
|
endsql.append(":allownull,");
|
}
|
if(params.get("minvalues")!=null){
|
frontsql.append("minvalues,");
|
endsql.append(":minvalues,");
|
}
|
if(params.get("maxvalues")!=null){
|
frontsql.append("maxvalues,");
|
endsql.append(":maxvalues,");
|
}
|
if(params.get("default_ext")!=null){
|
frontsql.append("default_ext,");
|
endsql.append(":default_ext,");
|
}
|
if(params.get("default_val")!=null){
|
frontsql.append("default_val,");
|
endsql.append(":default_val,");
|
}
|
if(params.get("showinlist")!=null){
|
frontsql.append("showinlist,");
|
endsql.append(":showinlist,");
|
}
|
if(params.get("allowquery")!=null){
|
frontsql.append("allowquery,");
|
endsql.append(":allowquery,");
|
}
|
if(params.get("inputtype")!=null){
|
frontsql.append("inputtype,");
|
endsql.append(":inputtype,");
|
}
|
if(params.get("state")!=null){
|
frontsql.append("state,");
|
endsql.append(":state,");
|
}
|
if(params.get("createtime")!=null){
|
frontsql.append("createtime,");
|
endsql.append(":createtime,");
|
}
|
if(params.get("note")!=null){
|
frontsql.append("note,");
|
endsql.append(":note,");
|
}
|
if(params.get("serial")!=null){
|
frontsql.append("serial,");
|
endsql.append(":serial,");
|
}
|
if(params.get("alert")!=null){
|
frontsql.append("alert,");
|
endsql.append(":alert,");
|
}
|
sql.append(" insert into prop_column ( ");
|
sql.append(StringUtils.removeEnd(frontsql.toString(),","));
|
sql.append(" ) values ( ");
|
sql.append(StringUtils.removeEnd(endsql.toString(),","));
|
sql.append(" ) ");
|
return sql.toString();
|
}
|
|
private String getPropUpdateSql(Map<String, String> params){
|
StringBuilder sql = new StringBuilder();
|
StringBuilder frontsql = new StringBuilder();
|
if(params.get("id")!=null){
|
frontsql.append("id=:id,");
|
}
|
if(params.get("columnname")!=null){
|
frontsql.append("columnname=:columnname,");
|
}
|
if(params.get("columncode")!=null){
|
frontsql.append("columncode=:columncode,");
|
}
|
if(params.get("datatype")!=null){
|
frontsql.append("datatype=:datatype,");
|
}
|
if(params.get("allownull")!=null){
|
frontsql.append("allownull=:allownull,");
|
}
|
if(params.get("minvalues")!=null){
|
frontsql.append("minvalues=:minvalues,");
|
}
|
if(params.get("maxvalues")!=null){
|
frontsql.append("maxvalues=:maxvalues,");
|
}
|
if(params.get("default_ext")!=null){
|
frontsql.append("default_ext=:default_ext,");
|
}
|
if(params.get("default_val")!=null){
|
frontsql.append("default_val=:default_val,");
|
}
|
if(params.get("showinlist")!=null){
|
frontsql.append("showinlist=:showinlist,");
|
}
|
if(params.get("allowquery")!=null){
|
frontsql.append("allowquery=:allowquery,");
|
}
|
if(params.get("inputtype")!=null){
|
frontsql.append("inputtype=:inputtype,");
|
}
|
if(params.get("state")!=null){
|
frontsql.append("state=:state,");
|
}
|
if(params.get("note")!=null){
|
frontsql.append("note=:note,");
|
}
|
if(params.get("serial")!=null){
|
frontsql.append("serial=:serial,");
|
}
|
if(params.get("alert")!=null){
|
frontsql.append("alert=:alert,");
|
}
|
sql.append(" update prop_column set ");
|
sql.append(StringUtils.removeEnd(frontsql.toString(),","));
|
sql.append(" where id= :id ");
|
return sql.toString();
|
}
|
|
@Override
|
public void delProp(Map params) {
|
baseDao.execute("update prop_column set state=:flag where id=:id ", params);
|
}
|
|
@Override
|
public PageInfo getPropSelData(PageInfo pageInfo, Map<String, String> params) {
|
Map support = getPropSelSupport(params);
|
String sql = support.get("sql").toString();
|
return baseDao.queryforSplitPageInfo(pageInfo, sql, params);
|
}
|
|
@Override
|
public Integer getPropSelCount(Map<String, String> params) {
|
Map support = getPropSelSupport(params);
|
String sql = "select count(*) from ( " + support.get("sql").toString() + " ) t ";
|
return baseDao.queryForInteger(sql, params);
|
}
|
|
private Map getPropSelSupport(Map<String, String> params){
|
Map<String, Object> support = new HashMap<String, Object>();
|
StringBuilder sql = new StringBuilder();
|
sql.append(" select a.* ");
|
sql.append(" from prop_sel a ");
|
sql.append(" where a.column_id=:colId ");
|
sql.append(" order by a.serial asc ");
|
support.put("sql", sql.toString());
|
support.put("param", params);
|
return support;
|
}
|
|
@Override
|
public Map getPropSelById(String id) {
|
return baseDao.queryForMap(" select * from prop_sel where id=:id ",new SqlParameter("id",id));
|
}
|
|
@Override
|
public void savePropSel(Map<String, String> params) {
|
StringBuilder sql = new StringBuilder();
|
if(StringUtil.isBlank(params.get("id"))){//新增
|
params.put("id", StringUtil.getUUID());
|
sql.append("insert into prop_sel (id,column_id,itemvalue,serial,state) values "
|
+ " (:id,:column_id,:itemvalue,:serial,1) ");
|
}else{//修改
|
sql.append(" update prop_sel set itemvalue=:itemvalue,serial=:serial "
|
+ " where id=:id ");
|
}
|
baseDao.execute(sql.toString(), params);
|
}
|
|
@Override
|
public void delPropSel(Map params) {
|
baseDao.execute("update prop_sel set state=:flag where id=:id ", params);
|
}
|
|
@Override
|
public void setSelDef(String sid, String sval, String pid) {
|
StringBuilder sql = new StringBuilder();
|
sql.append(" update prop_column set default_ext=:sval,default_val=:sid where id=:pid ");
|
SqlParameter param = new SqlParameter().addValue("sid", sid)
|
.addValue("sval", sval)
|
.addValue("pid", pid);
|
baseDao.execute(sql.toString(), param);
|
sql.setLength(0);
|
sql.append("update prop_sel set is_default = 0 where column_id = :pid");
|
baseDao.execute(sql.toString(), param);
|
|
List<SqlParameter> params = new ArrayList<SqlParameter>();
|
String[] arr = sid.split(",");
|
for(int i=0;i<arr.length;i++){
|
SqlParameter p = new SqlParameter();
|
p.addValue("sid", arr[i]);
|
params.add(p);
|
}
|
baseDao.executeBatch(" update prop_sel set is_default=1 where id = :sid ", params);
|
}
|
|
@Override
|
public List<Map> getPropTemplate(String linkId ,String busId) {
|
StringBuilder sql = new StringBuilder();
|
Map propSet = new HashMap();
|
if(StringUtil.isNotBlank(busId)){
|
sql.append(" select * from prop_data where bus_id=:busId ");
|
List<Map> propList = baseDao.queryForList(sql.toString(),new SqlParameter("busId",busId));
|
if(propList!=null&&propList.size()>0){
|
for(Map p:propList){
|
propSet.put(p.get("column_id"), p);
|
}
|
}
|
sql.setLength(0);
|
}
|
|
SqlParameter param = new SqlParameter();
|
param.addValue("linkId", linkId);
|
Map cate = baseDao.queryForMap("select lv,pid from cmdb_ci_category where id = :linkId ",param);
|
String lv = ConvertUtil.obj2StrBlank(cate.get("lv"));
|
String pid = ConvertUtil.obj2StrBlank(cate.get("pid"));
|
param.addValue("pid", pid);
|
List<Map> list = new ArrayList<Map>();
|
|
sql.append(" select g.serial gserial,g.id gid,g.group_name,p.id pid,p.* from ( ");
|
sql.append(" select g.id,g.group_name,g.serial from prop_group g,cmdb_ci_category c where g.link_id=c.id and c.state=1 ");
|
if(lv.equals("3")){
|
sql.append(" and (c.id = :linkId or c.id = :pid||'') ");
|
}else{
|
sql.append(" and c.id = :linkId ");
|
}
|
sql.append(" union select '-1' as id,'通用属性' as group_name,0 as serial from prop_group g ");
|
sql.append(" ) g ,prop_column p ");
|
sql.append(" where g.id = p.group_id and p.state=1 order by gid,p.serial desc ");
|
//查出所有的通用属性和分组属性
|
List<Map> glist = baseDao.queryForList(sql.toString(),param);
|
sql.setLength(0);
|
sql.append(" select * from prop_sel where state=1 and column_id = :pid ");
|
if (glist != null && glist.size() > 0) {
|
Stack<Map> stack = new Stack<Map>();
|
for (int i = 0; i <= glist.size(); i++) {
|
if (i != glist.size()) {
|
int datatype = ConvertUtil.obj2Int(glist.get(i).get("DATATYPE"));
|
if (datatype == Constants.PROP_TYPE_SEL
|
|| datatype == Constants.YSY_TYPE_MULTI_SEL) {
|
List sList = baseDao.queryForList(sql.toString(), new SqlParameter("pid", glist.get(i).get("pid")));
|
//如果该通用属性 选项为空 然后又不允许为空
|
if (sList.size() == 0 && ConvertUtil.obj2Int(glist.get(i).get("ALLOWNULL")) == 2) {
|
//type等1的时候,该属性不显示
|
glist.get(i).put("notShow", 1);
|
} else {
|
glist.get(i).put("items", sList);
|
}
|
}
|
}
|
//如果stack为空
|
if(stack.isEmpty()){
|
//放入stack中
|
stack.push(glist.get(i));
|
//不为空
|
}else{
|
//最后一个或最上面的map的gid不等于当前属性的gid
|
if(i==glist.size()||!stack.peek().get("gid").toString().equals(glist.get(i).get("gid").toString())){
|
Map temp = stack.peek();
|
List plist = new ArrayList();
|
while(!stack.isEmpty()){
|
Map p = stack.pop();
|
if(!propSet.isEmpty()){
|
if(propSet.containsKey(p.get("pid").toString())){
|
Map prop = (Map)propSet.get(p.get("pid").toString());
|
String def_val = ConvertUtil.obj2StrBlank(prop.get("column_value"));
|
String def_text = ConvertUtil.obj2StrBlank(prop.get("column_text"));
|
p.put("default_val", def_val);
|
p.put("default_ext", def_text);
|
}
|
}
|
if (p.get("notShow")==null) {
|
plist.add(p);
|
}
|
}
|
temp.put("props", plist);
|
list.add(temp);
|
}
|
if(i!=glist.size()){
|
stack.push(glist.get(i));
|
}
|
}
|
}
|
}
|
|
// Collections.sort(list, new Comparator<Map>(){
|
// @Override
|
// public int compare(Map o1, Map o2) {
|
// return ConvertUtil.obj2Integer(o1.get("gserial")).compareTo(ConvertUtil.obj2Integer(o2.get("gserial")));
|
// }
|
// });
|
return list;
|
}
|
|
@Override
|
public void delCfgcate(Map params) {
|
baseDao.execute("update cmdb_ci_category set state=:flag where id=:id ", params);
|
}
|
|
@Override
|
public Integer checkDelGroup(Map<String, String> params) {
|
String flag = params.get("flag");
|
Integer res = 0;
|
//如果要禁用操作
|
if(!flag.equals("1")){
|
//判断该分组下的自定义属性是否都被禁用
|
Integer temp = baseDao.queryForInteger("select count(*) from prop_column where group_id=:id and state=1 ",params);
|
if(temp==0){
|
res = 1;
|
}
|
}else{//启用操作
|
//随时可以启动
|
res=1;
|
}
|
return res;
|
}
|
|
@Override
|
public Integer checkCateFlag(Map<String,String> params) {
|
String flag = params.get("flag");
|
String pid = params.get("pid");
|
Integer res = 0;
|
if(flag.equals("0")){//禁用
|
Integer temp = baseDao.queryForInteger("select count(*) from cmdb_ci_category where pid=:id and state=1 ",params);
|
if(temp==0){
|
res = 1;
|
}
|
}else{//启用
|
if(pid.equals("0")){
|
return 1;
|
}else{
|
Integer temp = baseDao.queryForInteger("select count(*) from cmdb_ci_category where id=:pid and state=1 ",params);
|
if(temp>0){
|
res = 1;
|
}
|
}
|
}
|
return res;
|
}
|
|
@Override
|
public List getCfgcateList(Map<String, String> params){
|
StringBuilder sql = new StringBuilder();
|
sql.append(" select id,name from cmdb_ci_category where state=1 and cate_type=1 ");
|
if(StringUtil.isNotBlank(params.get("lv"))){
|
sql.append(" and lv = :lv ");
|
}
|
if(StringUtil.isNotBlank(params.get("pid"))){
|
sql.append(" and pid = :pid ");
|
}
|
return baseDao.queryForList(sql.toString(), params);
|
}
|
}
|