package cn.cecep.talroad.service;

import cn.cecep.talroad.domain.BasDevice;
import cn.cecep.talroad.vo.*;
import cn.cecep.talroad.vo.query.BasDeviceDCSSystemParamQuery;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 设备信息(有组织)Service接口
 *
 * @author szhpt
 * @date 2023-01-10*/
public interface IBasDeviceService extends  IService<BasDevice>
{
    /**
     * 查询设备信息(有组织)列表
     *
     * @param basDevice 设备信息(有组织)
     * @return 设备信息(有组织)集合
     */
    List<BasDevice> selectBasDeviceList(BasDevice basDevice);

    void getDeviceDataByType(String timeType, String industry, String factoryId, String deviceId, String deviceType, String startTime, String endTime, String orderField, String orderType, Page page);

    EChartsVO getDeviceChart(String deviceId, String startTime, String endTime);
    EChartsVO getDeviceChart(String deviceId, String startTime, String endTime, String timeType);
    EChartsVO getDeviceChart(String deviceId, String startTime, String endTime, String timeType, List<AmProblemFiVo.PollutantVo> pollutantVos);

    void editBatch(BasDeviceVo[] basDeviceVoArr);

    List<String> groupByWorkStepSelect(String factoryId, String industryCategory);

    IPage<BasDeviceDCSSystemParamVo> listDCSSystemParam(BasDeviceDCSSystemParamQuery query);
    List<BasDeviceDCSSystemParamExcelVo> exportDCSSystemParam(BasDeviceDCSSystemParamQuery query);

    List<String> groupByParamNameSelect(String factoryId, String industryCategory);

    FactoryDeviceVo selectFactoryDeviceVoByDeviceId(String deviceId);

    EChartsVO getDeviceStatusChart(BasDeviceVo.SimpleStatusVo deviceVo, String startTime, String endTime);

    BasDeviceVo.CountOverview getCountOverview();

    BasDeviceVo.CoalCountOverview getCoalCountOverview();

    ChartVo getDeviceChart3(String deviceId, String startTime, String endTime, String timeType);
    ChartVo getDeviceChart5(String deviceId, String startTime, String endTime, String timeType);

    List<BasDeviceVo.CoalDiffuse> getCoalDiffuseList(String deviceName, String status);

    ChartVo getDeviceChart6(String deviceId, String startTime, String endTime, String timeType);

}
