package com.yuchen.saas.park.service.service;

import com.yuchen.saas.park.api.entity.device.PmgBatSmartEquipment;
import com.yuchen.saas.park.api.vo.park.devicepro.DeviceBasePro;
import org.nest.springwrap.core.tool.api.R;

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

/**
 * @Author: 肖润飞
 * @CreateTime: 2022/09/07 10:59
 * @Description: 智慧物联网感知数据接口
 * @Version: 1.0
 */
public interface PmgBatParkPerceiveService {
    /**
     * @return Map
     * @Author 肖润飞
     * @Description 获取产品统计数据
     * @CreateTime 2022/9/7 15:20
     * @Param []
     **/
    List<DeviceBasePro> getDeviceList(String type, String parkId);

    /**
     * @return List
     * @Author 肖润飞
     * @Description 根据设备的productKey获得设备列表
     * @CreateTime 2022/9/7 15:20
     * @Param [parkId]
     **/
    HashMap<String, Object> getDeviceList(String parkId);


    /**
     * 对指定设备缓存进行上线/下线设置
     *
     * @param upOrDown   上线或者下线 0/1
     * @param productKey 设备productKey
     * @param deviceName 设备deviceName
     * @return
     */
    R upOrDownDevice(String upOrDown, String productKey, String deviceName, long parkId);

    /**
     * 园区设备数量查询
     *
     * @param productKey 需要查询的设备分类
     * @param parkId     指定园区的id
     * @return
     */
    Map<String, Object> deviceNumber(String[] productKey, String parkId);

    /**
     * 更新设备缓存数据
     * @param equipment
     */
    void updateDeviceCash(PmgBatSmartEquipment equipment);

    /**
     * 根据产品productKeys 查询设备信息
     * @param parkId 园区id
     * @return
     */
    Map<String, Object> getDeviceListByProductKeys(String parkId);
}
