package com.yfd.platform.modules.auxcontrol.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.modules.auxcontrol.domain.MeterDevice;
import com.baomidou.mybatisplus.extension.service.IService;

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

/**
 * <p>
 * 变电站二次设备中的智能仪表监控设备 服务类
 * </p>
 *
 * @author zhengsl
 * @since 2025-04-23
 */
public interface IMeterDeviceService extends IService<MeterDevice> {

    /**********************************
    * 用途说明: 分页查询变电站辅控设备
    * 参数说明 deviceName 设备名称
    * 参数说明 deviceModel设备型号
    * 参数说明 deviceType设备类型
    * 参数说明 status 状态
    * 参数说明 systemcode 系统编码
    * 参数说明 page
    * 返回值说明: com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.yfd.platform.modules.auxcontrol.domain.MeterDevice>
    ***********************************/
    Page<MeterDevice> getDevicePage(String stationId,String deviceName, String deviceModel, String deviceType, String status, String systemcode, Page<MeterDevice> page);

    /**********************************
    * 用途说明: 新增变电站辅控设备信息
    * 参数说明 meterDevice 辅控设备信息
    * 返回值说明: boolean
    ***********************************/
    boolean addMeterDevice(MeterDevice meterDevice);

    /**********************************
    * 用途说明: 修改变电站辅控设备信息
    * 参数说明 meterDevice 辅控设备信息
    * 返回值说明: boolean
    ***********************************/
    boolean updateMeterDevice(MeterDevice meterDevice);

    /**********************************
    * 用途说明: 批量修改变电站辅控设备信息
    * 参数说明 ids 设备id集合
    * 参数说明 ip 设备ip
    * 返回值说明: boolean
    ***********************************/
    boolean batchUpdateDeviceIp(List<String> ids, String ip);

    /**********************************
    * 用途说明: 根据系统编号查询设备
    * 参数说明 stationId 变电站Id
    * 参数说明 systemCode 系统编号
    * 返回值说明: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
    ***********************************/
    List<Map<String, Object>> getMeterDeviceByCode(String stationId, String systemCode);
}
