package com.unis.crk.basic.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.unis.crk.basic.entity.BasicEnum;
import com.baomidou.mybatisplus.extension.service.IService;
import com.unis.crk.basic.entity.vo.BasicEnumVo;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 数据字典大类 服务类
 * </p>
 *
 * @author TangSong
 * @since 2021-08-04
 */
public interface IBasicEnumService extends IService<BasicEnum> {

        /**
         * 按照条件查询枚举大类信息
         * @param pageQuery
         * @throws Exception
         */
        public IPage<BasicEnum> findPageVo(BasicEnumVo pageQuery) ;

        /**
         * 按父级ID获取所有枚举数据
         * @return
         * @throws Exception
         */
        public Map<String, List<BasicEnum>> findEnumObjParentId() ;

        /**
         * 按数据ID获取所有枚举数据
         * @return
         * @throws Exception
         */
        public Map<Object, Object> findEnumObjEnumId() ;

        /**
         * 获取以Id为对象的字典值
         * @return
         */
        List<BasicEnum> queryByTree();

        /**
         * 获取所有子节点
         * @param enumid
         * @return
         */
        List<BasicEnum> queryAllChildren(String enumid);

        /**
         * 导入
         * @param list
         */
        String importData(List<List<String>> list);


        /**
         * 更新数据字典大类信息
         *
         * @param enumJson
         * @return
         * @throws Exception
         */
        public Map<String, Object> updateOrSave(String enumJson);

        /**
         * 按数据字典大类ID逻辑删除数据字典大类信息
         *
         * @param id
         * @return
         * @throws Exception
         */
        public Map<String, Object> removeObj(String id);
        /**
         * 获取所有子节点
         * @param enumid
         * @param isQueryFristNode
         * @return
         */
        List<BasicEnum> queryAllChildren(String enumid, Boolean isQueryFristNode);

        List<BasicEnum> getAllParen();

    int getCountChildren(String enumId);

    Boolean moveDepotEnum(String parentId);
}
