IFatigueTestConfigService.cs 2.8 KB
using Rcs.Domain.Entities;

namespace Rcs.Application.Services;

/// <summary>
/// 疲劳测试配置服务接口
/// @author zzy
/// </summary>
public interface IFatigueTestConfigService
{
    /// <summary>
    /// 获取疲劳测试配置
    /// </summary>
    /// <param name="cancellationToken">取消令牌</param>
    /// <returns>配置信息</returns>
    Task<FatigueTestConfig?> GetConfigAsync(CancellationToken cancellationToken = default);

    /// <summary>
    /// 保存疲劳测试配置
    /// </summary>
    /// <param name="config">配置信息</param>
    /// <param name="cancellationToken">取消令牌</param>
    /// <returns>是否保存成功</returns>
    Task<bool> SaveConfigAsync(FatigueTestConfig config, CancellationToken cancellationToken = default);

    /// <summary>
    /// 获取运行状态
    /// </summary>
    /// <param name="cancellationToken">取消令牌</param>
    /// <returns>是否正在运行</returns>
    Task<bool> GetRunningStatusAsync(CancellationToken cancellationToken = default);

    /// <summary>
    /// 设置运行状态
    /// </summary>
    /// <param name="isRunning">是否运行</param>
    /// <param name="cancellationToken">取消令牌</param>
    /// <returns>是否设置成功</returns>
    Task<bool> SetRunningStatusAsync(bool isRunning, CancellationToken cancellationToken = default);

    /// <summary>
    /// 启动疲劳测试
    /// </summary>
    /// <param name="cancellationToken">取消令牌</param>
    /// <returns>是否启动成功</returns>
    Task<bool> StartAsync(CancellationToken cancellationToken = default);

    /// <summary>
    /// 停止疲劳测试
    /// </summary>
    /// <param name="cancellationToken">取消令牌</param>
    /// <returns>是否停止成功</returns>
    Task<bool> StopAsync(CancellationToken cancellationToken = default);
}

/// <summary>
/// 疲劳测试配置实体
/// @author zzy
/// </summary>
public class FatigueTestConfig
{
    /// <summary>
    /// 地图ID
    /// </summary>
    public string MapId { get; set; } = string.Empty;

    /// <summary>
    /// 机器人ID集合
    /// </summary>
    public List<string> RobotIds { get; set; } = new();

    /// <summary>
    /// 库位ID集合(包含所有可用于搬运的库位)
    /// </summary>
    public List<string> LocationIds { get; set; } = new();

    /// <summary>
    /// 是否正在运行
    /// </summary>
    public bool IsRunning { get; set; } = false;

    /// <summary>
    /// 任务生成间隔(毫秒,默认1000ms)
    /// </summary>
    public int TaskIntervalMs { get; set; } = 1000;

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime CreatedAt { get; set; } = DateTime.Now;

    /// <summary>
    /// 最后更新时间
    /// </summary>
    public DateTime UpdatedAt { get; set; } = DateTime.Now;
}