namespace Admin.NET.Plugin.AiDOP.Service.S8.OrderFlow; /// /// ORDER-FLOW-S8-INTEGRATED-DOMAIN-RESET-1 t3b:ORDER_FLOW 5 项常量 + 派生映射。 /// 5 阶段顺序由 SortNo 隐含(同 ORDER_FLOW_ALL 数组顺序);S_STAGE 与 OrderFlowName 字典为只读引用。 /// 不在此文件硬编码任何业务真值(KPI 天数 / 行数 / 真值矩阵)。 /// public static class OrderFlowConstants { public const string ORDER_REVIEW_PLAN_CALC = "ORDER_REVIEW_PLAN_CALC"; public const string PRODUCT_DESIGN = "PRODUCT_DESIGN"; public const string MATERIAL_PURCHASE = "MATERIAL_PURCHASE"; public const string BODY_PRODUCTION = "BODY_PRODUCTION"; public const string FINAL_ASSEMBLY_DELIVERY = "FINAL_ASSEMBLY_DELIVERY"; /// 5 阶段固定顺序(与 ado_s8_order_flow_stage.sort_no 1~5 对齐)。 public static readonly IReadOnlyList All = new[] { ORDER_REVIEW_PLAN_CALC, PRODUCT_DESIGN, MATERIAL_PURCHASE, BODY_PRODUCTION, FINAL_ASSEMBLY_DELIVERY, }; /// ORDER_FLOW → S 阶段编码(演示协议固定)。 public static readonly IReadOnlyDictionary SStageMap = new Dictionary { [ORDER_REVIEW_PLAN_CALC] = "S1", [PRODUCT_DESIGN] = "S2", [MATERIAL_PURCHASE] = "S3", [BODY_PRODUCTION] = "S6", [FINAL_ASSEMBLY_DELIVERY] = "S7", }; /// ORDER_FLOW → 展示中文名(与 t2a stage seed FlowDef 一致)。 public static readonly IReadOnlyDictionary OrderFlowName = new Dictionary { [ORDER_REVIEW_PLAN_CALC] = "评审/排产/测算", [PRODUCT_DESIGN] = "产品设计", [MATERIAL_PURCHASE] = "材料采购", [BODY_PRODUCTION] = "本体生产", [FINAL_ASSEMBLY_DELIVERY] = "总装发货", }; /// 未识别 code 时的 fallback 名称(直接回显 code)。 public static string ResolveName(string? orderFlowCode) => !string.IsNullOrEmpty(orderFlowCode) && OrderFlowName.TryGetValue(orderFlowCode, out var n) ? n : (orderFlowCode ?? string.Empty); /// 未识别 code 时回退为空字符串(service 调用方决定是否升级为异常)。 public static string ResolveSStage(string? orderFlowCode) => !string.IsNullOrEmpty(orderFlowCode) && SStageMap.TryGetValue(orderFlowCode, out var s) ? s : string.Empty; }