package com.njcn.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.system.pojo.param.EleEpdPqdParam;
import com.njcn.system.pojo.po.EleEpdPqd;
import com.njcn.system.pojo.vo.EleEpdPqdListVO;
import com.njcn.system.pojo.vo.EleEpdPqdVO;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;

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

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author xuyang
 * @since 2023-05-24
 */
public interface IEleEpdPqdService extends IService<EleEpdPqd> {

    /**
     * 存储模板的字典数据
     * @param eleEpdPqdParam
     */
    void saveData(List<EleEpdPqdParam> eleEpdPqdParam);

    /**
     * 存储字典数据
     * @param eleEpdPqdParam
     */
    EleEpdPqd add(EleEpdPqdParam eleEpdPqdParam);

    /**
     * 删除字典数据
     * @param id
     */
    void delete(String id);

    /**
     * 更新字典数据
     * @param updateParam
     */
    void update(EleEpdPqdParam.EleEpdPqdUpdateParam updateParam);

    /**
     * 查询字典分页
     * @param queryParam
     * @return
     */
    Page<EleEpdPqdVO> eleEpdPqdList(EleEpdPqdParam.EleEpdPqdQueryParam queryParam);

    /**
     * 查询所有字典数据组成唯一标识，用于验证字典是否重复
     * @return
     */
    List<EleEpdPqd> dictMarkByDataType(String dataType);

    /**
     * 存储事件的字典数据
     * @param eleEpdPqdParam
     */
    Map<String,String> saveEvt(List<EleEpdPqdParam> eleEpdPqdParam);

    /**
     * 存储事件的字典数据
     * @param id
     */
    EleEpdPqd selectById(String id);
    /** 
    * @Description: 查询指标库，按datatype分类
    * @Param:  
    * @return: java.util.List<com.njcn.system.pojo.vo.EleEpdPqdListVO> 
    * @Author: clam
    * @Date: 2023/6/12 
    */ 
    List<EleEpdPqdListVO> selectAll();

    /**
     * 根据集合查询字典数据
     * @param ids
     * @return
     */
    List<EleEpdPqd> selectByIds(List<String> ids);

    /**
     * 校验字典是否存在
     * @param name
     * @param dataType
     * @return
     */
    List<EleEpdPqd> judgeExist(String name, String dataType);

    /**
     * 根据条件查询字典数据
     * @param name
     * @param dataType
     * @param phase
     * @return
     */
    EleEpdPqd findByParam(String name, String dataType, String phase);

}
