package com.persagy.dmp.codetable.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.persagy.dmp.basic.dto.RequestData;
import com.persagy.dmp.codetable.entity.CodeTableData;

import java.util.List;

/**
 * 码表数据 service
 * @author Charlie Yu
 * @date 2021-07-27
 */
public interface ICodeTableDataService {

    /**
     * 新增
     * @param vo
     * @return
     */
    CodeTableData insert(CodeTableData vo);

    /**
     * 修改
     * @param vo
     * @return
     */
    CodeTableData update(CodeTableData vo);

    /**
     * 删除
     * @param id
     */
    void delete(String id);

    /**
     * 通过ID查询
     * @param id 主键
     * @return
     */
    CodeTableData load(String id);

    /**
     * 按条件查询
     * @param queryWrapper 查询条件
     * @return 列表
     */
    List<CodeTableData> queryByCondition(Wrapper<CodeTableData> queryWrapper);

    /**
     * 通过类型查询所有码表数据
     * @param projectId 项目ID
     * @param typeCode 码表类型编码
     * @return 码表数据。如果为树型，则返回树型结果
     */
    List<CodeTableData> queryAllByTypeCode(String projectId, String typeCode);
    /**
     * 通过类型和code查询所有码表数据
     * @param projectId 项目ID
     * @param typeCode 码表类型编码
     * @return 码表数据。如果为树型，则返回树型结果
     */
    List<CodeTableData> queryCodeTableDatasByTypeCodeAndCodes(String projectId, String typeCode, RequestData requestData);
    /***
     * Description: 根据父码表code查询其下的码表数据
     * @param projectId : 项目id
     * @param requestData : 请求参数
     * @return : java.util.List<com.persagy.dmp.codetable.entity.CodeTableData>
     * @author : lijie
     * @date :2021/8/30 22:58
     * Update By lijie 2021/8/30 22:58
     */
    List<CodeTableData> queryCodeTableDatasByParentCode(String projectId, RequestData requestData);
}
