using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using NPP.SmartSchedue.Api.Contracts.Services.Equipment.Dto;
namespace NPP.SmartSchedue.Api.Contracts.Services.Equipment;
///
/// 设备本地服务接口(专用于SmartSchedule模块)
///
public interface IEquipmentLocalService
{
///
/// 获取设备列表
///
/// 查询条件
/// 设备列表
Task> GetListAsync(GetEquipmentListInput input);
///
/// 获取设备详情
///
/// 设备ID
/// 设备详情
Task GetAsync(long id);
///
/// 获取可用设备列表
///
/// 指定日期
/// 工序ID(可选)
/// 可用设备列表
Task> GetAvailableEquipmentAsync(DateTime date, long? processId = null);
///
/// 检查设备是否可用
///
/// 设备ID
/// 指定日期
/// 是否可用
Task IsEquipmentAvailableAsync(long equipmentId, DateTime date);
///
/// 获取需要维护的设备列表
///
/// 指定日期
/// 需要维护的设备列表
Task> GetNeedMaintenanceAsync(DateTime date);
///
/// 获取需要校验的设备列表
///
/// 指定日期
/// 需要校验的设备列表
Task> GetNeedCalibrationAsync(DateTime date);
///
/// 批量检查设备可用性
///
/// 设备ID列表
/// 指定日期
/// 设备可用性字典
Task> BatchCheckEquipmentAvailabilityAsync(List equipmentIds, DateTime date);
}