namespace Admin.NET.Plugin.AiDOP.Dto.S8.Demo; /// /// ORDER-FLOW-BE-DEMO-DATASET-RESET-1:阶段子表 DTO。 /// 时间字符串:expected_date = "YYYY-MM-DD";actual_*_at = "YYYY-MM-DD HH:mm"。 /// public class AdoDemoOrderFlowStageDto { public string StageKey { get; set; } = string.Empty; public string StageName { get; set; } = string.Empty; public int SortNo { get; set; } public decimal PlannedDays { get; set; } public decimal? ActualDays { get; set; } public string ExpectedDate { get; set; } = string.Empty; public string? ActualStartAt { get; set; } public string? ActualEndAt { get; set; } public string Status { get; set; } = "pending"; public decimal? NodeVarianceDays { get; set; } public decimal? CumulativeVarianceDays { get; set; } } /// /// ORDER-FLOW-BE-DEMO-DATASET-RESET-1:订单主表 DTO,含完整 5 阶段 lifecycle。 /// 由 /api/aidop/s8/demo/order-flow/orders 返回。 /// public class AdoDemoOrderFlowDto { public string SoNo { get; set; } = string.Empty; public string ProductName { get; set; } = string.Empty; public string ProductLine { get; set; } = string.Empty; public string CustomerName { get; set; } = string.Empty; public string CustomerCode { get; set; } = string.Empty; public string CustomerType { get; set; } = "KA"; public string Region { get; set; } = string.Empty; public string Priority { get; set; } = "P2"; public string MaterialCode { get; set; } = "XX"; public string SupplierGroup { get; set; } = "A"; public string WorkflowStatus { get; set; } = "completed"; public string CurrentNodeKey { get; set; } = "final_assembly_shipping"; public string FocusNodeKey { get; set; } = "final_assembly_shipping"; public string CurrentNodeLabel { get; set; } = "总装发货"; public string NodeStatus { get; set; } = "green"; public string ReleaseAt { get; set; } = string.Empty; public decimal TargetCycleDays { get; set; } public decimal? CurrentCycleDays { get; set; } public decimal? ActualCycleDays { get; set; } public decimal? NodeVarianceDays { get; set; } public decimal? CumulativeVarianceDays { get; set; } public int ExceptionCount { get; set; } public int? ResponseMinutes { get; set; } public int? ProcessingMinutes { get; set; } public int? TotalLossMinutes { get; set; } public string ExceptionStatus { get; set; } = "已闭环"; public List Lifecycle { get; set; } = new(); } /// /// ORDER-FLOW-BE-DEMO-DATASET-RESET-1:基线聚合快照 DTO。 /// 注意:本 DTO 不是 /orders 明细的实时聚合,而是 105 单基线展示快照(独立快照表 1 行)。 /// 由 /api/aidop/s8/demo/order-flow/aggregate-snapshot 返回。 /// public class AdoDemoOrderFlowSnapshotDto { public string SnapshotCode { get; set; } = "CHAIN_AGGREGATE_BASELINE"; public string SnapshotLabel { get; set; } = "基线聚合 · 样本 105"; public int TotalOrders { get; set; } public int TotalCustomers { get; set; } public decimal AvgResponseMinutes { get; set; } public decimal AvgProcessingMinutes { get; set; } public decimal AvgLossMinutes { get; set; } public List StageSnapshots { get; set; } = new(); public string? Remark { get; set; } } public class AdoDemoOrderFlowStageSnapshotItem { public string StageKey { get; set; } = string.Empty; public string StageName { get; set; } = string.Empty; public string OwnerDept { get; set; } = string.Empty; public decimal KpiAvgDays { get; set; } public decimal ActualAvgDays { get; set; } public int OnTimeRate { get; set; } public int Green { get; set; } public int Yellow { get; set; } public int Red { get; set; } public int Pending { get; set; } }