package com.iailab.module.data.point.service;

import com.iailab.framework.common.pojo.PageResult;
import com.iailab.module.data.api.point.dto.ApiPointDTO;
import com.iailab.module.data.point.dto.DaPointDTO;
import com.iailab.module.data.point.vo.*;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * @author lirm
 * @Description
 * @createTime 2024年09月2日
 */
public interface DaPointService{
    PageResult<DaPointDTO> queryPage(DaPointPageReqVO reqVO);

    DaPointDTO info(String id);

    ApiPointDTO getSimpleInfoById(String id);

    DaPointDTO getSimpleInfoByNo(String no);

    void add(DaPointDTO daPointDTO);

    void update(DaPointDTO daPointDTO);

    void delete(String[] id);

    List<DaPointDTO> list(Map<String, Object> params);

    List<DaPointDTO> getConstantPoint(String freq);

    List<DaPointDTO> getConstantPoint(List<String> pointNos);

    List<DaPointDTO> getMeasurePoint(String freq);

    List<DaPointDTO> getMeasurePoint(List<String> pointNos);

    DaPointDTO getMeasurePointByNo(String pointNo);

    List<DaPointDTO> getMathPoint(String freq);

    List<DaPointDTO> getMathPoint(List<String> pointNos);

    List<DaPointDTO> getCumulatePoint(String freq);

    List<DaPointDTO> getCumulatePoint(List<String> pointNos);

    List<DaPointDTO> getCumulatePoint(DaPointPageReqVO reqVO);

    DaPointDTO getByNo(String pointNo);

    List<DaPointDTO> getByNos(List<String> pointNos);

    void enableByIds(String[] ids);

    void disableByIds(String[] ids);

    void updateDefaultValue(DaPointDTO dto);

    PointImportRespVO importPointList(List<PointImportExcelVO> importPoints, boolean isUpdateSupport);

    List<DaPointDTO> getList(DaPointPageReqVO exportReqVO);

    List<DaPointDTO> getConstantPoint(DaPointPageReqVO reqVO);

    List<DaPointDTO> getMeasurePoint(DaPointPageReqVO reqVO);

    List<DaPointDTO> getMathPoint(DaPointPageReqVO reqVO);
}