package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.common.core.domain.TreeSelect;
import com.ruoyi.common.core.domain.entity.CategoryProposal;
import com.ruoyi.common.core.domain.entity.SysDept;

/**
 * 提案类别Service接口
 * 
 * @author boman
 * @date 2024-03-07
 */
public interface ICategoryProposalService 
{
    /**
     * 查询提案类别
     * 
     * @param categoryId 提案类别主键
     * @return 提案类别
     */
    public CategoryProposal selectCategoryProposalByCategoryId(Long categoryId);

    /**
     * 查询提案类别列表
     * 
     * @param categoryProposal 提案类别
     * @return 提案类别集合
     */
    public List<CategoryProposal> selectCategoryProposalList(CategoryProposal categoryProposal);

    /**
     * 新增提案类别
     * 
     * @param categoryProposal 提案类别
     * @return 结果
     */
    public int insertCategoryProposal(CategoryProposal categoryProposal);

    /**
     * 修改提案类别
     * 
     * @param categoryProposal 提案类别
     * @return 结果
     */
    public int updateCategoryProposal(CategoryProposal categoryProposal);

    /**
     * 批量删除提案类别
     * 
     * @param categoryIds 需要删除的提案类别主键集合
     * @return 结果
     */
    public int deleteCategoryProposalByCategoryIds(Long[] categoryIds);

    /**
     * 删除提案类别信息
     * 
     * @param categoryId 提案类别主键
     * @return 结果
     */
    public int deleteCategoryProposalByCategoryId(Long categoryId);

    List<TreeSelect> selectCategoryTreeList(CategoryProposal categoryProposal);

    public List<TreeSelect> buildCategoryTreeSelect(List<CategoryProposal> categoryProposals);
}
