package com.ho.flow.service;


import com.ho.business.vo.req.deviceModel.SynchronousReqVo;
import com.ho.common.tools.entity.SimpleUser;
import com.ho.flow.vo.AlarmConfig;
import com.ho.flow.vo.req.AlarmConfig.*;

import java.util.List;

/**
* @author gyan
* @description 针对表【alarm_config】的数据库操作Service
* @createDate 2023-02-01 17:15:01
*/
public interface AlarmConfigService{

    List<AlarmConfig> selectList(AlarmConfigPageReqVo vo);

    List<AlarmConfig> selectListGroupCache(Integer groupId,Integer scope, String deviceType);

    List<AlarmConfig> selectListCompanyCache(Integer groupId,Integer stationId, Integer scope, String deviceType);


    void add(AlarmConfigAddReqVo vo, SimpleUser user);

    //批量添加遥信
    void addSignalBatch(AlarmSignalBatchAddReq addReq);

    //批量添加遥测
    void addMeasureBatch(AlarmMeasureBatchAddReq addReq);

    void deletedById(Integer id);

    //批量删除遥信
    void deleteSignalBatch(AlarmBatchDeleteReq deleteReq);

    int update(AlarmConfigUpdateReqVo vo);

    /**
     * 一键同步数据
     * @param vo
     * @return
     */
    int syAlarmConfig(SynchronousReqVo vo);
}
