using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using JiShe.CollectBus.Ammeters;
using JiShe.CollectBus.GatherItem;
using JiShe.CollectBus.IotSystems.Ammeters;
using JiShe.CollectBus.IotSystems.Devices;
using JiShe.CollectBus.IotSystems.MeterReadingRecords;
using JiShe.CollectBus.IotSystems.Watermeter;
using Volo.Abp.Application.Services;
namespace JiShe.CollectBus.ScheduledMeterReading
{
///
/// 定时任务基础约束
///
public interface IScheduledMeterReadingService : IApplicationService
{
///
/// 获取采集项列表
///
///
Task> GetGatherItemByDataTypes();
///
/// 构建待处理的下发指令任务处理
///
///
Task CreateToBeIssueTasks();
#region 电表采集处理
///
/// 获取电表信息
///
/// 采集端Code
///
Task> GetAmmeterInfoList(string gatherCode = "");
///
/// 初始化电表缓存数据
///
/// 采集端Code
///
Task InitAmmeterCacheData(string gatherCode = "");
///
/// 1分钟采集电表数据,只获取任务数据下发,不构建任务
///
///
Task AmmeterScheduledMeterOneMinuteReading();
///
/// 5分钟采集电表数据,只获取任务数据下发,不构建任务
///
///
Task AmmeterScheduledMeterFiveMinuteReading();
///
/// 15分钟采集电表数据,只获取任务数据下发,不构建任务
///
///
Task AmmeterScheduledMeterFifteenMinuteReading();
///
/// 获取电表阀控配置
///
/// 阀控的时间
///
Task> GetAmmeterAutoValveControlSetting(string currentTime);
///
/// 电表自动阀控
///
///
Task> AmmeterScheduledAutoValveControl();
///
/// 电表自动校时
///
/// 采集频率
/// 电表信息
/// 集中器所在分组
/// 采集频率对应的时间戳
///
Task> AmmeterScheduledAutomaticVerificationTime(int timeDensity, DeviceInfo ammeterInfo, int groupIndex, DateTime timestamps);
///
/// 日冻结抄读
///
/// 采集频率
/// 电表信息
/// 集中器所在分组
/// 采集频率对应的时间戳
///
Task> AmmeterScheduledGetAutomaticDayFreezeData(int timeDensity, DeviceInfo ammeterInfo, int groupIndex, DateTime timestamps);
///
/// 月冻结数据抄读
///
/// 采集频率
/// 电表信息
/// 集中器所在分组
/// 采集频率对应的时间戳
///
Task> AmmeterScheduledGetAutomaticMonthFreezeData(int timeDensity, DeviceInfo ammeterInfo, int groupIndex, DateTime timestamps);
#endregion
#region 水表采集处理
///
/// 获取水表信息
///
/// 采集端Code
///
Task> GetWatermeterInfoList(string gatherCode = "");
///
/// 初始化水表缓存数据,只获取任务数据下发,不构建任务
///
/// 采集端Code
///
Task InitWatermeterCacheData(string gatherCode = "");
///
/// 水表数据采集
///
///
Task WatermeterScheduledMeterAutoReadding();
#endregion
#region 集中器处理
///
/// 自动获取终端版
///
/// 采集频率
/// 电表信息
/// 集中器所在分组
/// 采集频率对应的时间戳
///
Task> ConcentratorScheduledAutomaticGetTerminalVersion(int timeDensity, DeviceInfo ammeterInfo, int groupIndex, DateTime timestamps);
///
/// 自动获取远程通信模块(SIM)版本信息
///
/// 采集频率
/// 电表信息
/// 集中器所在分组
/// 采集频率对应的时间戳
///
Task> ConcentratorScheduledAutomaticGetTelematicsModule(int timeDensity, DeviceInfo ammeterInfo, int groupIndex, DateTime timestamps);
#endregion
}
}