AidopSceneTreeSeed.cs 5.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using System.Diagnostics;
  2. using Admin.NET.Plugin.AiDOP.Entity.S8;
  3. using SqlSugar;
  4. namespace Admin.NET.Plugin.AiDOP.Infrastructure;
  5. /// <summary>
  6. /// S8 场景树基线种子。
  7. /// 首次启动空表时灌入 S1-S7 三层结构;表已有数据则跳过(幂等)。
  8. /// </summary>
  9. public static class AidopSceneTreeSeed
  10. {
  11. public static void EnsureSeed(ISqlSugarClient db)
  12. {
  13. try
  14. {
  15. if (db.Queryable<AdoS8SceneTree>().Any())
  16. return;
  17. var ct = DateTime.Parse("2026-05-07 00:00:00");
  18. const long b = 1329910000000L;
  19. var nodes = new List<AdoS8SceneTree>
  20. {
  21. // S1 产销协同
  22. N(b+1, null, "S1", "S1 产销协同", 1, "S1", "S1", false, 10, ct),
  23. N(b+2, b+1, "S1_ORDER_REVIEW", "订单评审", 2, "S1/ORDER_REVIEW", "S1", false, 11, ct),
  24. N(b+3, b+2, "S1_LEGAL_REVIEW", "法务评审", 3, "S1/ORDER_REVIEW/LEGAL_REVIEW", "S1", true, 12, ct),
  25. N(b+4, b+2, "S1_TECH_REVIEW", "技术评审", 3, "S1/ORDER_REVIEW/TECH_REVIEW", "S1", true, 13, ct),
  26. N(b+5, b+2, "S1_GENERAL_REVIEW", "综合评审", 3, "S1/ORDER_REVIEW/GENERAL_REVIEW", "S1", true, 14, ct),
  27. N(b+6, b+2, "S1_LAB_REVIEW", "实验室评审", 3, "S1/ORDER_REVIEW/LAB_REVIEW", "S1", true, 15, ct),
  28. // S2 生产准备
  29. N(b+10, null, "S2", "S2 生产准备", 1, "S2", "S2", false, 20, ct),
  30. N(b+11, b+10, "S2_WORK_ORDER_PREP","工单准备", 2, "S2/WORK_ORDER_PREP", "S2", false, 21, ct),
  31. N(b+12, b+11, "S2_MATERIAL_KITTING","物料齐套确认", 3, "S2/WORK_ORDER_PREP/MATERIAL_KITTING", "S2", true, 22, ct),
  32. // S3 采购协同
  33. N(b+20, null, "S3", "S3 采购协同", 1, "S3", "S3", false, 30, ct),
  34. N(b+21, b+20, "S3_PURCHASE_EXEC", "采购执行", 2, "S3/PURCHASE_EXEC", "S3", false, 31, ct),
  35. N(b+22, b+21, "S3_ARRIVAL_CONFIRM","到货确认", 3, "S3/PURCHASE_EXEC/ARRIVAL_CONFIRM", "S3", true, 32, ct),
  36. // S4 质量检验
  37. N(b+30, null, "S4", "S4 质量检验", 1, "S4", "S4", false, 40, ct),
  38. N(b+31, b+30, "S4_QUALITY_INSPECT","来料检验", 2, "S4/QUALITY_INSPECT", "S4", false, 41, ct),
  39. N(b+32, b+31, "S4_IQC_INSPECT", "IQC 检验", 3, "S4/QUALITY_INSPECT/IQC_INSPECT", "S4", true, 42, ct),
  40. // S5 仓储供应
  41. N(b+40, null, "S5", "S5 仓储供应", 1, "S5", "S5", false, 50, ct),
  42. N(b+41, b+40, "S5_INVENTORY_ASSURANCE","库存保障", 2, "S5/INVENTORY_ASSURANCE", "S5", false, 51, ct),
  43. N(b+42, b+41, "S5_STOCK_ALERT_HANDLING","库存预警处理", 3, "S5/INVENTORY_ASSURANCE/STOCK_ALERT_HANDLING", "S5", true, 52, ct),
  44. // S6 生产制造
  45. N(b+50, null, "S6", "S6 生产制造", 1, "S6", "S6", false, 60, ct),
  46. N(b+51, b+50, "S6_PRODUCTION_EXEC","生产执行", 2, "S6/PRODUCTION_EXEC", "S6", false, 61, ct),
  47. N(b+52, b+51, "S6_PROCESS_COMPLETION","工序完工确认", 3, "S6/PRODUCTION_EXEC/PROCESS_COMPLETION", "S6", true, 62, ct),
  48. // S7 订单交付
  49. N(b+60, null, "S7", "S7 订单交付", 1, "S7", "S7", false, 70, ct),
  50. N(b+61, b+60, "S7_DELIVERY_EXEC", "交付执行", 2, "S7/DELIVERY_EXEC", "S7", false, 71, ct),
  51. N(b+62, b+61, "S7_SHIPMENT_CONFIRM","发货确认", 3, "S7/DELIVERY_EXEC/SHIPMENT_CONFIRM", "S7", true, 72, ct),
  52. };
  53. db.Insertable(nodes).ExecuteCommand();
  54. }
  55. catch (Exception ex)
  56. {
  57. Trace.TraceWarning("AidopSceneTreeSeed: " + ex);
  58. }
  59. }
  60. private static AdoS8SceneTree N(
  61. long id, long? parentId, string nodeCode, string nodeName,
  62. int level, string path, string sModule, bool isLeaf, int sortNo, DateTime ct) =>
  63. new()
  64. {
  65. Id = id,
  66. TenantId = 0,
  67. FactoryId = 0,
  68. ParentId = parentId,
  69. NodeCode = nodeCode,
  70. NodeName = nodeName,
  71. Level = level,
  72. Path = path,
  73. SModule = sModule,
  74. IsLeaf = isLeaf,
  75. Enabled = true,
  76. SortNo = sortNo,
  77. CreatedAt = ct,
  78. };
  79. }