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; }
}