Merge branch 'master' of https://git.kaiyili-lab.com/huangsucan/IOT_API
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
namespace Model.Dto.Config
|
||||
{
|
||||
/// <summary>
|
||||
/// 设备指令下发请求 DTO
|
||||
/// </summary>
|
||||
public class DeviceCommandDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 设备主键 Id(string)
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 物模型点 Id(string,决定写哪个寄存器/线圈)
|
||||
/// </summary>
|
||||
public string PointId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 下发的工程值
|
||||
/// </summary>
|
||||
public double Value { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否仅记录(模拟/离线调试:不实际发网络报文)
|
||||
/// </summary>
|
||||
public bool IsSimulated { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,12 @@ namespace Model.Dto.Config
|
||||
/// <summary>设备类型(型号,对应 DeviceCommand 驱动类)</summary>
|
||||
public string DeviceType { get; set; }
|
||||
|
||||
/// <summary>所属产品Id(string,0=未分类)</summary>
|
||||
public string ProductId { get; set; }
|
||||
|
||||
/// <summary>所属产品型号/名称(只读展示)</summary>
|
||||
public string? ProductName { get; set; }
|
||||
|
||||
/// <summary>所属网关Code</summary>
|
||||
public string GatewayCode { get; set; }
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
namespace Model.Dto.Config
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品分类 DTO(Id 由 long 改为 string,避免前端精度丢失)
|
||||
/// </summary>
|
||||
public class ProductCategoryDto
|
||||
{
|
||||
/// <summary>主键 Id(long → string)</summary>
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>分类编码</summary>
|
||||
public string Code { get; set; }
|
||||
|
||||
/// <summary>分类名称</summary>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <summary>排序号</summary>
|
||||
public int Sort { get; set; }
|
||||
|
||||
/// <summary>备注</summary>
|
||||
public string? Remark { get; set; }
|
||||
|
||||
/// <summary>创建时间</summary>
|
||||
public DateTime? CreateTime { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
using Model.Entity.Config;
|
||||
|
||||
namespace Model.Dto.Config
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品 DTO(Id 由 long 改为 string,避免前端精度丢失)
|
||||
/// </summary>
|
||||
public class ProductDto
|
||||
{
|
||||
/// <summary>主键 Id(long → string)</summary>
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>型号(唯一)</summary>
|
||||
public string Model { get; set; }
|
||||
|
||||
/// <summary>产品名称</summary>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <summary>产品分类Id</summary>
|
||||
public string CategoryId { get; set; }
|
||||
|
||||
/// <summary>分类名称(只读展示)</summary>
|
||||
public string? CategoryName { get; set; }
|
||||
|
||||
/// <summary>制造商</summary>
|
||||
public string? Manufacturer { get; set; }
|
||||
|
||||
/// <summary>产品描述</summary>
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <summary>通讯协议</summary>
|
||||
public IotDeviceProtocolEnum ProtocolType { get; set; }
|
||||
|
||||
/// <summary>消息模型</summary>
|
||||
public string? MessageModel { get; set; }
|
||||
|
||||
/// <summary>是否启用</summary>
|
||||
public bool IsEnabled { get; set; } = true;
|
||||
|
||||
/// <summary>备注</summary>
|
||||
public string? Remark { get; set; }
|
||||
|
||||
/// <summary>创建时间</summary>
|
||||
public DateTime? CreateTime { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
namespace Model.Dto.Config
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品下拉选项 DTO(设备选择"所属产品"、筛选下拉用)
|
||||
/// </summary>
|
||||
public class ProductOptionDto
|
||||
{
|
||||
/// <summary>主键 Id(string)</summary>
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>型号</summary>
|
||||
public string Model { get; set; }
|
||||
|
||||
/// <summary>产品名称</summary>
|
||||
public string? Name { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
using Model.Entity.Config;
|
||||
|
||||
namespace Model.Dto.Config
|
||||
{
|
||||
/// <summary>
|
||||
/// 物模型点 DTO(Id 由 long 改为 string,避免前端精度丢失)
|
||||
/// </summary>
|
||||
public class ThingModelPointDto
|
||||
{
|
||||
/// <summary>主键 Id(long → string)</summary>
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>归属类型(1=产品 2=设备)</summary>
|
||||
public ThingOwnerTypeEnum OwnerType { get; set; }
|
||||
|
||||
/// <summary>归属对象Id(string)</summary>
|
||||
public string OwnerId { get; set; }
|
||||
|
||||
/// <summary>点编码</summary>
|
||||
public string Code { get; set; }
|
||||
|
||||
/// <summary>点名称</summary>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <summary>寄存器类型</summary>
|
||||
public ThingRegisterTypeEnum RegisterType { get; set; }
|
||||
|
||||
/// <summary>读写权限</summary>
|
||||
public ThingRwEnum Rw { get; set; }
|
||||
|
||||
/// <summary>数据类型</summary>
|
||||
public ThingDataTypeEnum DataType { get; set; }
|
||||
|
||||
/// <summary>寄存器起始地址</summary>
|
||||
public ushort Address { get; set; }
|
||||
|
||||
/// <summary>换算系数</summary>
|
||||
public double Scale { get; set; } = 1;
|
||||
|
||||
/// <summary>偏移量</summary>
|
||||
public double Offset { get; set; }
|
||||
|
||||
/// <summary>单位</summary>
|
||||
public string? Unit { get; set; }
|
||||
|
||||
/// <summary>是否启用</summary>
|
||||
public bool Enabled { get; set; } = true;
|
||||
|
||||
/// <summary>排序号</summary>
|
||||
public int Sort { get; set; }
|
||||
|
||||
/// <summary>备注</summary>
|
||||
public string? Remark { get; set; }
|
||||
|
||||
/// <summary>创建时间</summary>
|
||||
public DateTime? CreateTime { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
using Model.Entity.Inspection;
|
||||
|
||||
namespace Model.Dto.Inspection
|
||||
{
|
||||
/// <summary>
|
||||
/// 告警消息 DTO(Id 转 string 防前端精度丢失)
|
||||
/// </summary>
|
||||
public class AlertMessageDto
|
||||
{
|
||||
/// <summary>主键 Id</summary>
|
||||
public string? Id { get; set; }
|
||||
|
||||
/// <summary>创建时间</summary>
|
||||
public DateTime? CreateTime { get; set; }
|
||||
|
||||
/// <summary>告警来源</summary>
|
||||
public AlertSourceEnum Source { get; set; }
|
||||
|
||||
/// <summary>关联告警规则Id("0"表示无)</summary>
|
||||
public string? RuleId { get; set; }
|
||||
|
||||
/// <summary>设备编号</summary>
|
||||
public string? DeviceCode { get; set; }
|
||||
|
||||
/// <summary>设备名称</summary>
|
||||
public string? DeviceName { get; set; }
|
||||
|
||||
/// <summary>设备类型</summary>
|
||||
public string? DeviceType { get; set; }
|
||||
|
||||
/// <summary>测点/监测指标</summary>
|
||||
public string? Metric { get; set; }
|
||||
|
||||
/// <summary>告警类型</summary>
|
||||
public AlertTypeEnum AlertType { get; set; }
|
||||
|
||||
/// <summary>告警级别(1信息/2警告/3紧急)</summary>
|
||||
public AlertLevelEnum AlertLevel { get; set; }
|
||||
|
||||
/// <summary>当前值</summary>
|
||||
public double? CurrentValue { get; set; }
|
||||
|
||||
/// <summary>阈值</summary>
|
||||
public double? ThresholdValue { get; set; }
|
||||
|
||||
/// <summary>告警内容描述</summary>
|
||||
public string? Content { get; set; }
|
||||
|
||||
/// <summary>通知模板编码(预留)</summary>
|
||||
public string? TemplateCode { get; set; }
|
||||
|
||||
/// <summary>触发次数(合并窗口内累计)</summary>
|
||||
public int TriggerCount { get; set; }
|
||||
|
||||
/// <summary>首次告警时间</summary>
|
||||
public DateTime FirstAlertTime { get; set; }
|
||||
|
||||
/// <summary>最近告警时间</summary>
|
||||
public DateTime LastAlertTime { get; set; }
|
||||
|
||||
/// <summary>告警状态(1未确认/2已确认/3已处理/4已关闭/5已忽略/6已转工单)</summary>
|
||||
public AlertStatusEnum AlertStatus { get; set; }
|
||||
|
||||
/// <summary>确认人</summary>
|
||||
public string? AckBy { get; set; }
|
||||
|
||||
/// <summary>确认时间</summary>
|
||||
public DateTime? AckTime { get; set; }
|
||||
|
||||
/// <summary>处理人</summary>
|
||||
public string? HandleBy { get; set; }
|
||||
|
||||
/// <summary>处理时间</summary>
|
||||
public DateTime? HandleTime { get; set; }
|
||||
|
||||
/// <summary>处理备注</summary>
|
||||
public string? HandleRemark { get; set; }
|
||||
|
||||
/// <summary>关联工单Id(预留二期,"0"表示未转工单)</summary>
|
||||
public string? WorkOrderId { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
using Model.Entity.Inspection;
|
||||
|
||||
namespace Model.Dto.Inspection
|
||||
{
|
||||
/// <summary>
|
||||
/// 通知渠道 DTO(Id 转 string;Secret 出口脱敏为是否已配置)
|
||||
/// </summary>
|
||||
public class AlertNotifyChannelDto
|
||||
{
|
||||
/// <summary>主键 Id</summary>
|
||||
public string? Id { get; set; }
|
||||
|
||||
/// <summary>创建时间</summary>
|
||||
public DateTime? CreateTime { get; set; }
|
||||
|
||||
/// <summary>渠道类型(1飞书/2钉钉/3企微)</summary>
|
||||
public NotifyChannelTypeEnum ChannelType { get; set; }
|
||||
|
||||
/// <summary>渠道名称</summary>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <summary>Webhook 地址</summary>
|
||||
public string? WebhookUrl { get; set; }
|
||||
|
||||
/// <summary>加签密钥(入参可传;出口仅返回脱敏标记,不回传明文)</summary>
|
||||
public string? Secret { get; set; }
|
||||
|
||||
/// <summary>是否已配置加签密钥(出口专用)</summary>
|
||||
public bool HasSecret { get; set; }
|
||||
|
||||
/// <summary>推送模式(1直连/2Outbox跨网中转)</summary>
|
||||
public NotifyPushModeEnum PushMode { get; set; }
|
||||
|
||||
/// <summary>是否启用</summary>
|
||||
public bool IsEnabled { get; set; }
|
||||
|
||||
/// <summary>备注</summary>
|
||||
public string? Remark { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 通知规则 DTO
|
||||
/// </summary>
|
||||
public class AlertNotifyRuleDto
|
||||
{
|
||||
/// <summary>主键 Id</summary>
|
||||
public string? Id { get; set; }
|
||||
|
||||
/// <summary>创建时间</summary>
|
||||
public DateTime? CreateTime { get; set; }
|
||||
|
||||
/// <summary>规则名称</summary>
|
||||
public string? RuleName { get; set; }
|
||||
|
||||
/// <summary>适用告警级别(1信息/2警告/3紧急)</summary>
|
||||
public AlertLevelEnum AlertLevel { get; set; }
|
||||
|
||||
/// <summary>通知渠道Id</summary>
|
||||
public string? ChannelId { get; set; }
|
||||
|
||||
/// <summary>接收人(@手机号/账号,逗号分隔)</summary>
|
||||
public string? Receivers { get; set; }
|
||||
|
||||
/// <summary>是否通知当班值班人</summary>
|
||||
public bool NotifyDutyPerson { get; set; }
|
||||
|
||||
/// <summary>静默期(分钟)</summary>
|
||||
public int SilenceMinutes { get; set; }
|
||||
|
||||
/// <summary>是否启用</summary>
|
||||
public bool IsEnabled { get; set; }
|
||||
|
||||
/// <summary>备注</summary>
|
||||
public string? Remark { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 推送日志 DTO
|
||||
/// </summary>
|
||||
public class AlertNotifyLogDto
|
||||
{
|
||||
/// <summary>主键 Id</summary>
|
||||
public string? Id { get; set; }
|
||||
|
||||
/// <summary>告警消息Id("0"表示渠道测试推送)</summary>
|
||||
public string? AlertId { get; set; }
|
||||
|
||||
/// <summary>渠道类型</summary>
|
||||
public NotifyChannelTypeEnum ChannelType { get; set; }
|
||||
|
||||
/// <summary>渠道Id</summary>
|
||||
public string? ChannelId { get; set; }
|
||||
|
||||
/// <summary>推送目标(脱敏)</summary>
|
||||
public string? Target { get; set; }
|
||||
|
||||
/// <summary>推送内容摘要</summary>
|
||||
public string? Content { get; set; }
|
||||
|
||||
/// <summary>是否成功</summary>
|
||||
public bool Success { get; set; }
|
||||
|
||||
/// <summary>错误信息</summary>
|
||||
public string? ErrorMsg { get; set; }
|
||||
|
||||
/// <summary>重试次数</summary>
|
||||
public int RetryCount { get; set; }
|
||||
|
||||
/// <summary>推送时间</summary>
|
||||
public DateTime NotifyTime { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 值班排班 DTO
|
||||
/// </summary>
|
||||
public class DutyRosterDto
|
||||
{
|
||||
/// <summary>主键 Id</summary>
|
||||
public string? Id { get; set; }
|
||||
|
||||
/// <summary>创建时间</summary>
|
||||
public DateTime? CreateTime { get; set; }
|
||||
|
||||
/// <summary>值班日期</summary>
|
||||
public DateTime DutyDate { get; set; }
|
||||
|
||||
/// <summary>值班人姓名</summary>
|
||||
public string? PersonName { get; set; }
|
||||
|
||||
/// <summary>联系电话</summary>
|
||||
public string? Phone { get; set; }
|
||||
|
||||
/// <summary>备注</summary>
|
||||
public string? Remark { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
namespace Model.Dto.Inspection
|
||||
{
|
||||
/// <summary>
|
||||
/// 跨网发件箱拉取结果 DTO(AlertBridge 拉取到的待推送项;Payload 自包含全部推送要素)
|
||||
/// </summary>
|
||||
public class AlertOutboxItemDto
|
||||
{
|
||||
/// <summary>发件箱 Id(回写结果时使用)</summary>
|
||||
public string? Id { get; set; }
|
||||
|
||||
/// <summary>告警消息Id</summary>
|
||||
public string? AlertId { get; set; }
|
||||
|
||||
/// <summary>渠道Id</summary>
|
||||
public string? ChannelId { get; set; }
|
||||
|
||||
/// <summary>完整推送报文 JSON(AlertOutboxPayload 序列化)</summary>
|
||||
public string? Payload { get; set; }
|
||||
|
||||
/// <summary>重试次数</summary>
|
||||
public int RetryCount { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 发件箱推送报文(自包含:AlertBridge 无需访问数据库/配置即可推送)
|
||||
/// </summary>
|
||||
public class AlertOutboxPayload
|
||||
{
|
||||
/// <summary>渠道类型(1飞书/2钉钉/3企微)</summary>
|
||||
public int ChannelType { get; set; }
|
||||
|
||||
/// <summary>Webhook 地址</summary>
|
||||
public string? WebhookUrl { get; set; }
|
||||
|
||||
/// <summary>加签密钥(可空)</summary>
|
||||
public string? Secret { get; set; }
|
||||
|
||||
/// <summary>消息标题</summary>
|
||||
public string? Title { get; set; }
|
||||
|
||||
/// <summary>消息正文(markdown)</summary>
|
||||
public string? Content { get; set; }
|
||||
|
||||
/// <summary>@ 手机号列表</summary>
|
||||
public List<string>? AtMobiles { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 发件箱结果回写 DTO(AlertBridge 推送完成后回写)
|
||||
/// </summary>
|
||||
public class OutboxResultDto
|
||||
{
|
||||
/// <summary>是否成功</summary>
|
||||
public bool Success { get; set; }
|
||||
|
||||
/// <summary>结果信息(失败原因)</summary>
|
||||
public string? ResultMsg { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
using Model.Entity.Inspection;
|
||||
|
||||
namespace Model.Dto.Inspection
|
||||
{
|
||||
/// <summary>
|
||||
/// 告警上报 DTO(其它模块调用告警中心的统一入参:IAlertCenterService.RaiseAsync / POST raise)
|
||||
/// 除设备标识外全部可空,降低调用方接入成本
|
||||
/// </summary>
|
||||
public class AlertRaiseDto
|
||||
{
|
||||
/// <summary>告警来源(调用方标识自身模块)</summary>
|
||||
public AlertSourceEnum Source { get; set; } = AlertSourceEnum.Other;
|
||||
|
||||
/// <summary>关联告警规则Id(来源为规则引擎时传,可空/0 表示无)</summary>
|
||||
public long RuleId { get; set; }
|
||||
|
||||
/// <summary>设备编号(建议必传,用于去重合并)</summary>
|
||||
public string? DeviceCode { get; set; }
|
||||
|
||||
/// <summary>设备名称</summary>
|
||||
public string? DeviceName { get; set; }
|
||||
|
||||
/// <summary>设备类型(如 TemperatureBox)</summary>
|
||||
public string? DeviceType { get; set; }
|
||||
|
||||
/// <summary>测点/监测指标(如 Temperature)</summary>
|
||||
public string? Metric { get; set; }
|
||||
|
||||
/// <summary>告警类型(默认阈值超限)</summary>
|
||||
public AlertTypeEnum AlertType { get; set; } = AlertTypeEnum.ThresholdExceed;
|
||||
|
||||
/// <summary>告警级别(1信息/2警告/3紧急)</summary>
|
||||
public AlertLevelEnum AlertLevel { get; set; } = AlertLevelEnum.Warning;
|
||||
|
||||
/// <summary>当前值</summary>
|
||||
public double? CurrentValue { get; set; }
|
||||
|
||||
/// <summary>阈值</summary>
|
||||
public double? ThresholdValue { get; set; }
|
||||
|
||||
/// <summary>告警内容描述(空则由告警中心按内置模板生成)</summary>
|
||||
public string? Content { get; set; }
|
||||
|
||||
/// <summary>通知模板编码(预留对接通知模板模块)</summary>
|
||||
public string? TemplateCode { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 告警操作 DTO(确认/处理/关闭/忽略/转工单 共用入参)
|
||||
/// </summary>
|
||||
public class AlertOperateDto
|
||||
{
|
||||
/// <summary>操作人</summary>
|
||||
public string? Operator { get; set; }
|
||||
|
||||
/// <summary>备注(处理说明/忽略原因等)</summary>
|
||||
public string? Remark { get; set; }
|
||||
|
||||
/// <summary>工单Id(仅转工单时使用,二期工单模块创建后回填,可空)</summary>
|
||||
public long WorkOrderId { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,15 @@ namespace Model.Dto.Inspection
|
||||
/// <summary>主键 Id(long → string)</summary>
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>归属类型(0=全局;1=产品 2=设备)</summary>
|
||||
public byte OwnerType { get; set; }
|
||||
|
||||
/// <summary>归属对象Id(0 表示全局)</summary>
|
||||
public long OwnerId { get; set; }
|
||||
|
||||
/// <summary>绑定点编码(空表示整产品/设备级规则)</summary>
|
||||
public string PointCode { get; set; }
|
||||
|
||||
/// <summary>删除状态(0、未删除;1、已删除)</summary>
|
||||
public byte IsDel { get; set; }
|
||||
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
namespace Model.Dto.Inspection
|
||||
{
|
||||
/// <summary>
|
||||
/// 告警趋势统计项(按日/周/月分桶)
|
||||
/// </summary>
|
||||
public class AlertTrendItemDto
|
||||
{
|
||||
/// <summary>时间桶(日:yyyy-MM-dd / 周:yyyy-Www / 月:yyyy-MM)</summary>
|
||||
public string Bucket { get; set; }
|
||||
|
||||
/// <summary>告警总数</summary>
|
||||
public int Total { get; set; }
|
||||
|
||||
/// <summary>信息级数量</summary>
|
||||
public int InfoCount { get; set; }
|
||||
|
||||
/// <summary>警告级数量</summary>
|
||||
public int WarningCount { get; set; }
|
||||
|
||||
/// <summary>紧急级数量</summary>
|
||||
public int UrgentCount { get; set; }
|
||||
|
||||
/// <summary>未闭环数量(未确认+已确认未处理)</summary>
|
||||
public int UnhandledCount { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 告警分布统计项(按设备/类型/级别/来源维度)
|
||||
/// </summary>
|
||||
public class AlertDistributionItemDto
|
||||
{
|
||||
/// <summary>维度名称</summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>数量</summary>
|
||||
public int Count { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 高频告警 TOP 排名项
|
||||
/// </summary>
|
||||
public class AlertTopItemDto
|
||||
{
|
||||
/// <summary>设备编号</summary>
|
||||
public string? DeviceCode { get; set; }
|
||||
|
||||
/// <summary>设备名称</summary>
|
||||
public string? DeviceName { get; set; }
|
||||
|
||||
/// <summary>告警次数(含合并累计 TriggerCount)</summary>
|
||||
public int Count { get; set; }
|
||||
|
||||
/// <summary>最近告警时间</summary>
|
||||
public DateTime LastAlertTime { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 告警处理及时率统计
|
||||
/// </summary>
|
||||
public class AlertTimelinessDto
|
||||
{
|
||||
/// <summary>统计范围内告警总数</summary>
|
||||
public int Total { get; set; }
|
||||
|
||||
/// <summary>已确认数(含已处理/已关闭)</summary>
|
||||
public int AckCount { get; set; }
|
||||
|
||||
/// <summary>已处理/已关闭数</summary>
|
||||
public int HandledCount { get; set; }
|
||||
|
||||
/// <summary>未闭环数</summary>
|
||||
public int UnhandledCount { get; set; }
|
||||
|
||||
/// <summary>平均确认时长(分钟,无确认记录为 null)</summary>
|
||||
public double? AvgAckMinutes { get; set; }
|
||||
|
||||
/// <summary>平均处理时长(分钟,无处理记录为 null)</summary>
|
||||
public double? AvgHandleMinutes { get; set; }
|
||||
|
||||
/// <summary>及时率(%):30 分钟内确认的占比</summary>
|
||||
public double TimelyRate { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 告警概览统计(列表页顶部卡片)
|
||||
/// </summary>
|
||||
public class AlertOverviewDto
|
||||
{
|
||||
/// <summary>未确认数量</summary>
|
||||
public int UnacknowledgedCount { get; set; }
|
||||
|
||||
/// <summary>今日新增数量</summary>
|
||||
public int TodayCount { get; set; }
|
||||
|
||||
/// <summary>今日紧急数量</summary>
|
||||
public int TodayUrgentCount { get; set; }
|
||||
|
||||
/// <summary>近7日总数</summary>
|
||||
public int WeekCount { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user