MdpStdObjectCatalog.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. namespace Admin.NET.Plugin.AiDOP.DataPlatform;
  2. /// <summary>
  3. /// 标准对象目录。附录 A 是本文的来源;新增中立表必须先加在这里。
  4. /// </summary>
  5. public static class MdpStdObjectCatalog
  6. {
  7. public sealed record Def(string Code, string[] Tables, string? DocType, string Module, bool IsS0);
  8. public static readonly IReadOnlyList<Def> All =
  9. [
  10. new("INV_TRANS", ["mdp_std_inv_trans"], null, "S5", false),
  11. new("WO_LINE_PROD", ["mdp_std_work_order_line"], "PROD_TASK", "S6", false),
  12. new("WO_LINE_SALES", ["mdp_std_work_order_line"], "SALES_ORDER", "S7", false),
  13. new("WO_BOM", ["mdp_std_work_order_bom"], null, "S5", false),
  14. new("EMPLOYEE", ["mdp_std_employee"], null, "S5", false),
  15. new("INV_BAL_MONTHLY", ["mdp_std_inventory_balance_monthly"], null, "S5", false),
  16. new("S6_REPORT", ["mdp_std_s6_report"], null, "S6", false),
  17. new("FQC_TASK", ["mdp_std_fqc_task", "mdp_std_fqc_result", "mdp_std_fqc_result_detail"], null, "S7", false),
  18. new("SO", ["mdp_std_so", "mdp_std_ship_trans"], null, "S1", false),
  19. new("WO_SCHEDULE", ["mdp_std_work_order_schedule", "mdp_std_operation_schedule"], null, "S2", false),
  20. new("SUPPLY_DEMAND", ["mdp_std_supply_demand", "mdp_std_material_readiness"], null, "S3", false),
  21. new("PURCHASE", ["mdp_std_purchase_request", "mdp_std_purchase_order", "mdp_std_purchase_order_completion", "mdp_std_purchase_receipt"], null, "S3", false),
  22. new("SUPPLIER_DELIVERY", ["mdp_std_delivery_schedule", "mdp_std_delivery_result", "mdp_std_delivery_exception", "mdp_std_s4_shipment", "mdp_std_s4_shortage", "mdp_std_s4_return", "mdp_std_s4_iqc"], null, "S4", false),
  23. new("MASTER_ITEM", ["mdp_std_item"], null, "S0", true),
  24. new("SUPPLIER", ["mdp_std_supplier", "mdp_std_supplier_item"], null, "S3", false),
  25. new("ACTION_EVENT", ["mdp_std_action_event"], null, "S1", false),
  26. new("INV_SNAPSHOT", ["mdp_std_inventory"], null, "S5", false),
  27. new("IQC", ["mdp_std_iqc_inspection", "mdp_std_iqc_receipt_state"], null, "S5", false),
  28. new("IPQC", ["mdp_std_ipqc_inspection", "mdp_std_ipqc_inspection_detail"], null, "S6", false),
  29. new("PROD_DOC", ["mdp_std_production_issue", "mdp_std_production_receipt", "mdp_std_production_return", "mdp_std_production_return_detail"], null, "S5", false),
  30. new("OUTSOURCE", ["mdp_std_outsource_issue", "mdp_std_outsource_issue_detail", "mdp_std_process_outsource_order"], null, "S5", false),
  31. ];
  32. public static Def? FindByTable(string table) =>
  33. All.FirstOrDefault(d => d.Tables.Contains(table, StringComparer.OrdinalIgnoreCase));
  34. public static Def? Find(string code) =>
  35. All.FirstOrDefault(d => string.Equals(d.Code, code, StringComparison.OrdinalIgnoreCase));
  36. }