using System; using System.Collections.Generic; using System.Threading.Tasks; using NPP.SmartSchedue.Api.Contracts.Services.Integration.Output; namespace NPP.SmartSchedue.Api.Contracts.Services.Integration { /// /// 设备服务客户端接口 /// 用于调度模块与EAM设备管理模块之间的通信 /// 避免直接依赖EAM模块的服务接口,实现模块解耦 /// public interface IEquipmentClientService { /// /// 获取指定日期的可用设备列表 /// 用于任务整合前的资源充足性检查 /// /// 指定日期 /// 工序ID(可选,用于筛选特定工序的设备) /// 可用设备列表 Task> GetAvailableEquipmentAsync(DateTime date, long? processId = null); /// /// 检查指定设备在指定日期是否可用 /// 用于验证特定设备的可用性状态 /// /// 设备ID /// 指定日期 /// 是否可用 Task IsEquipmentAvailableAsync(long equipmentId, DateTime date); /// /// 获取指定日期范围内的设备使用统计 /// 用于资源容量计算和负荷分析 /// /// 开始日期 /// 结束日期 /// 设备使用统计信息 Task GetEquipmentUsageStatisticsAsync(DateTime startDate, DateTime endDate); /// /// 获取指定日期需要维护的设备列表 /// 用于计算维护中不可用的设备数量 /// /// 指定日期 /// 需要维护的设备列表 Task> GetMaintenanceEquipmentAsync(DateTime date); /// /// 获取指定日期需要校验的设备列表 /// 用于计算校验中不可用的设备数量 /// /// 指定日期 /// 需要校验的设备列表 Task> GetCalibrationEquipmentAsync(DateTime date); /// /// 批量检查设备可用性 /// 用于大批量任务的设备资源验证,提高查询效率 /// /// 设备ID列表 /// 指定日期 /// 设备可用性状态字典,Key为设备ID,Value为是否可用 Task> BatchCheckEquipmentAvailabilityAsync(List equipmentIds, DateTime date); } }