AdoS8CellDataDto.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. namespace Admin.NET.Plugin.AiDOP.Dto.S8;
  2. /// <summary>
  3. /// 大屏卡片数据出参(GET /api/aidop/s8/dashboard/cell-data)。
  4. /// 结构平铺:value 为主指标;breakdown 为可选的明细分组(按部门或异常类型等)。
  5. /// </summary>
  6. public class AdoS8CellDataDto
  7. {
  8. public string CellCode { get; set; } = string.Empty;
  9. public string PageCode { get; set; } = string.Empty;
  10. /// <summary>卡片标题(来自配置 cell_title;若空由前端走组件默认)</summary>
  11. public string? Title { get; set; }
  12. /// <summary>binding_type:EXCEPTION_TYPE / AGGREGATE / CUSTOM</summary>
  13. public string BindingType { get; set; } = string.Empty;
  14. /// <summary>统计口径:OPEN_COUNT / FREQUENCY / AVG_DURATION / CLOSE_RATE</summary>
  15. public string StatMetric { get; set; } = string.Empty;
  16. /// <summary>时间窗:TODAY / LAST_24H / LAST_7D / LAST_30D</summary>
  17. public string TimeWindow { get; set; } = string.Empty;
  18. /// <summary>主指标值(按 stat_metric 语义:计数为 int 语义;百分比 0-100;时长为小时)</summary>
  19. public double Value { get; set; }
  20. /// <summary>附加明细(部门分组 / 类型分组 / 趋势等;CUSTOM 卡片可为空由前端保留原实现)</summary>
  21. public List<AdoS8CellBreakdownItem> Breakdown { get; set; } = new();
  22. /// <summary>未配置 / 未启用时的说明(便于前端区分"空数据"与"未配置")</summary>
  23. public string? Message { get; set; }
  24. }
  25. /// <summary>
  26. /// 卡片明细分组项。label 含义由 groupBy 决定(OWNER / OCCUR / TYPE 等)。
  27. /// </summary>
  28. public class AdoS8CellBreakdownItem
  29. {
  30. public string Label { get; set; } = string.Empty;
  31. public double Value { get; set; }
  32. public string? Code { get; set; }
  33. }
  34. /// <summary>卡片数据查询入参</summary>
  35. public class AdoS8CellDataQueryDto
  36. {
  37. public long TenantId { get; set; } = 1;
  38. public long FactoryId { get; set; } = 1;
  39. public string PageCode { get; set; } = string.Empty;
  40. public string CellCode { get; set; } = string.Empty;
  41. /// <summary>可选:ALL 或具体 orderId(预留未落地)</summary>
  42. public string? OrderScope { get; set; }
  43. /// <summary>可选:OWNER / OCCUR,覆盖配置中的 dept_group_by</summary>
  44. public string? DeptGroupBy { get; set; }
  45. }