namespace Admin.NET.Plugin.AiDOP.Entity.S8.Demo; /// /// ORDER-FLOW-BE-DEMO-DATASET-RESET-1 演示基线聚合快照:chain 默认全选展示用。 /// 注意:本快照不是当前明细 20 单的实时聚合结果,而是冻结的 105 单基线展示快照, /// 由 SeedData 一次性写入。前端 chain 默认全选独立读取此快照,与 /orders 不同源。 /// [SugarTable("ado_demo_order_flow_snapshot", "演示基线聚合快照(baseline,独立于 20 单明细)")] [SugarIndex("uk_demo_order_flow_snapshot_code", nameof(SnapshotCode), OrderByType.Asc, true)] public class AdoDemoOrderFlowSnapshot { [SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsIdentity = false, ColumnDataType = "bigint")] public long Id { get; set; } /// 固定为 'CHAIN_AGGREGATE_BASELINE'。 [SugarColumn(ColumnName = "snapshot_code", Length = 64)] public string SnapshotCode { get; set; } = "CHAIN_AGGREGATE_BASELINE"; /// UI 直接展示的标签文本,例如 "基线聚合 · 样本 105"。 [SugarColumn(ColumnName = "snapshot_label", Length = 64)] public string SnapshotLabel { get; set; } = "基线聚合 · 样本 105"; [SugarColumn(ColumnName = "total_orders")] public int TotalOrders { get; set; } [SugarColumn(ColumnName = "total_customers")] public int TotalCustomers { get; set; } [SugarColumn(ColumnName = "avg_response_minutes", DecimalDigits = 2, Length = 8)] public decimal AvgResponseMinutes { get; set; } [SugarColumn(ColumnName = "avg_processing_minutes", DecimalDigits = 2, Length = 8)] public decimal AvgProcessingMinutes { get; set; } [SugarColumn(ColumnName = "avg_loss_minutes", DecimalDigits = 2, Length = 8)] public decimal AvgLossMinutes { get; set; } /// 5 阶段聚合 JSON 数组:stageKey/stageName/ownerDept/kpiAvgDays/actualAvgDays/onTimeRate/green/yellow/red/pending。 [SugarColumn(ColumnName = "stage_snapshots_json", ColumnDataType = "longtext", IsJson = false)] public string StageSnapshotsJson { get; set; } = "[]"; [SugarColumn(ColumnName = "remark", Length = 256, IsNullable = true)] public string? Remark { get; set; } [SugarColumn(ColumnName = "tenant_id", ColumnDataType = "bigint")] public long TenantId { get; set; } [SugarColumn(ColumnName = "factory_id", ColumnDataType = "bigint")] public long FactoryId { get; set; } [SugarColumn(ColumnName = "created_at")] public DateTime CreatedAt { get; set; } = DateTime.Now; [SugarColumn(ColumnName = "updated_at", IsNullable = true)] public DateTime? UpdatedAt { get; set; } [SugarColumn(ColumnName = "is_deleted", ColumnDataType = "boolean")] public bool IsDeleted { get; set; } }