package com.jeeplus.psimanage.materialType.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.jeeplus.core.domain.TreeMapper;
import com.jeeplus.psimanage.materialType.domain.PsiMaterialTypeInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author: 王强
 * @create: 2022-11-25 09:02
 **/
public interface PsiMaterialTypeMapper extends BaseMapper<PsiMaterialTypeInfo>, TreeMapper<PsiMaterialTypeInfo> {

    /**
     * 查询数据集合
     * @param queryWrapper
     * @return
     */
    List<PsiMaterialTypeInfo> findList(@Param(Constants.WRAPPER) Wrapper<PsiMaterialTypeInfo> queryWrapper);


    /**
     * 根据id查询详情信息
     * @param id
     * @return
     */
    PsiMaterialTypeInfo getById(String id);
    /**
     * 根据name和parentId查询名称是否重复
     * @param name
     * @param parentId
     * @return
     */
    Integer checkNameIsExist(@Param("name") String name, @Param("parentId") String parentId);

    Integer getNo(@Param("parentId") String parentId);

    Integer getLevel(@Param("parentId") String parentId);

    List<String> getChildId(String id);

    /**
     * 获取所有业务类型的数据
     * @return
     */
    List<PsiMaterialTypeInfo> getAllList();

    /**
     * 删除报销类型关联表对应信息
     * @param id
     */
    void deleteReimbursementTypeOfficeInfo(String id);

    /**
     * 删除三级层级
     * @param id
     */
    void deleteLevel3(String id);

    /**
     * 删除二级层级
     * @param id
     */
    void deleteLevel2(String id);

}
