package com.zcxk.service;

import com.zcxk.entity.DayReportEntity;
import com.zcxk.entity.MonitorDataEntity;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @description
 * @auto wangli
 * @data 2020-12-01 10:14
 */
public interface MonitorDataService {

    /**
     * 保存
     * @param monitorDataEntity
     * @return
     */
    MonitorDataEntity save(MonitorDataEntity monitorDataEntity);

    /**
     * 删除
     * @param id
     */
    void remove(Long id);

    /**
     * 修改
     * @param monitorDataEntity
     */
    void update(MonitorDataEntity monitorDataEntity);

    /**
     * 通过id查询
     * @param id
     * @return
     */
    MonitorDataEntity findById(Long id);

    /**
     * 查询基础设备信息
     * @param deviceCode
     * @return
     */
    MonitorDataEntity getDeviceMonitorInfoByDeviceCode(String deviceCode);

    List<DayReportEntity> getMonitorDataGroupByHour(LocalDateTime dateTime,List<Integer> deviceIds);

    /**
     * 生成每小时数据的日报
     * @return
     */
    void getMonitorDataReportByHour();
    /**
     * 生成每天数据的月报
     * @return
     */
    void getMonitorDataByDay();
    /**
     * 生成每月数据的年报
     * @return
     */
    void getMonitorDataByMonth();
}
