using SJZY.Track.Domain.Enums;
using Volo.Abp;
namespace SJZY.Track.Domain.Aggregates.ForewarningAggregate;
[SugarTable("t_warning")]
public class WarningEntity: IFullAuditedBasicEntitys, IAggregateRoot
{
///
/// 自增主键
///
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
///
/// 子系统id
///
[SugarColumn(ColumnName = "SubSystemId")]
public int SubSystemId { get; set; }
///
/// 客户id
///
[SugarColumn(ColumnName = "CustomerId")]
public int CustomerId { get; set; }
///
/// 规则模板名称,KPI名称
///
[SugarColumn(ColumnName = "Name")]
public string Name { get; set; } = null!;
///
/// 因素类型排序
///
[SugarColumn(ColumnName = "FactorTypeSort")]
public string FactorTypeSort { get; set; } = null!;
///
/// 是否启用,默认否
///
[SugarColumn(ColumnName = "IsEnable")]
public bool IsEnable { get; set; }
///
/// 预警规则
///
[SugarColumn(IsIgnore = true)]
public List WarningRules { get; set; } = new();
///
/// 预警因素
///
[SugarColumn(IsIgnore = true)]
public List WarningFactors { get; set; } = new();
public void SetName(string name)
{
Name = name;
}
public void SetEnable(bool isEnable)
{
if (IsEnable == isEnable)
{
throw new BusinessException(message: $"预警已经是{(isEnable ? "启用" : "禁用")}状态");
}
IsEnable = isEnable;
}
}