namespace Admin.NET.Plugin.AiDOP;
///
/// S8 场景树基线种子(3 层结构:S 模块 → 流程 → 动作)。
/// TenantId=0 / FactoryId=0 表示全局基线,服务层用 OR 逻辑兼容所有租户/工厂。
/// S1 含 4 条叶子节点;S2-S7 各含 1 条 3 层叶子路径。
///
[IncreSeed]
public class S8SceneTreeSeedData : ISqlSugarEntitySeedData
{
public IEnumerable HasData()
{
const long b = 1329910000000L;
var ct = DateTime.Parse("2026-05-07 00:00:00");
return new[]
{
// ── S1 产销协同 ──
N(b+1, null, "S1", "S1 产销协同", 1, "S1", "S1", false, 10, ct),
N(b+2, b+1, "S1_ORDER_REVIEW", "订单评审", 2, "S1/ORDER_REVIEW", "S1", false, 11, ct),
N(b+3, b+2, "S1_LEGAL_REVIEW", "法务评审", 3, "S1/ORDER_REVIEW/LEGAL_REVIEW", "S1", true, 12, ct),
N(b+4, b+2, "S1_TECH_REVIEW", "技术评审", 3, "S1/ORDER_REVIEW/TECH_REVIEW", "S1", true, 13, ct),
N(b+5, b+2, "S1_GENERAL_REVIEW","综合评审", 3, "S1/ORDER_REVIEW/GENERAL_REVIEW", "S1", true, 14, ct),
N(b+6, b+2, "S1_LAB_REVIEW", "实验室评审", 3, "S1/ORDER_REVIEW/LAB_REVIEW", "S1", true, 15, ct),
// ── S2 生产准备 ──
N(b+10, null, "S2", "S2 生产准备", 1, "S2", "S2", false, 20, ct),
N(b+11, b+10, "S2_WORK_ORDER_PREP","工单准备", 2, "S2/WORK_ORDER_PREP", "S2", false, 21, ct),
N(b+12, b+11, "S2_MATERIAL_KITTING","物料齐套确认", 3, "S2/WORK_ORDER_PREP/MATERIAL_KITTING", "S2", true, 22, ct),
// ── S3 采购协同 ──
N(b+20, null, "S3", "S3 采购协同", 1, "S3", "S3", false, 30, ct),
N(b+21, b+20, "S3_PURCHASE_EXEC", "采购执行", 2, "S3/PURCHASE_EXEC", "S3", false, 31, ct),
N(b+22, b+21, "S3_ARRIVAL_CONFIRM","到货确认", 3, "S3/PURCHASE_EXEC/ARRIVAL_CONFIRM", "S3", true, 32, ct),
// ── S4 质量检验 ──
N(b+30, null, "S4", "S4 质量检验", 1, "S4", "S4", false, 40, ct),
N(b+31, b+30, "S4_QUALITY_INSPECT","来料检验", 2, "S4/QUALITY_INSPECT", "S4", false, 41, ct),
N(b+32, b+31, "S4_IQC_INSPECT", "IQC 检验", 3, "S4/QUALITY_INSPECT/IQC_INSPECT", "S4", true, 42, ct),
// ── S5 仓储供应 ──
N(b+40, null, "S5", "S5 仓储供应", 1, "S5", "S5", false, 50, ct),
N(b+41, b+40, "S5_INVENTORY_ASSURANCE","库存保障", 2, "S5/INVENTORY_ASSURANCE","S5", false, 51, ct),
N(b+42, b+41, "S5_STOCK_ALERT_HANDLING","库存预警处理", 3, "S5/INVENTORY_ASSURANCE/STOCK_ALERT_HANDLING", "S5", true, 52, ct),
// ── S6 生产制造 ──
N(b+50, null, "S6", "S6 生产制造", 1, "S6", "S6", false, 60, ct),
N(b+51, b+50, "S6_PRODUCTION_EXEC","生产执行", 2, "S6/PRODUCTION_EXEC", "S6", false, 61, ct),
N(b+52, b+51, "S6_PROCESS_COMPLETION","工序完工确认", 3, "S6/PRODUCTION_EXEC/PROCESS_COMPLETION", "S6", true, 62, ct),
// ── S7 订单交付 ──
N(b+60, null, "S7", "S7 订单交付", 1, "S7", "S7", false, 70, ct),
N(b+61, b+60, "S7_DELIVERY_EXEC", "交付执行", 2, "S7/DELIVERY_EXEC", "S7", false, 71, ct),
N(b+62, b+61, "S7_SHIPMENT_CONFIRM","发货确认", 3, "S7/DELIVERY_EXEC/SHIPMENT_CONFIRM", "S7", true, 72, ct),
};
}
private static Entity.S8.AdoS8SceneTree N(
long id, long? parentId, string nodeCode, string nodeName,
int level, string path, string sModule, bool isLeaf, int sortNo, DateTime ct) =>
new()
{
Id = id,
TenantId = 0,
FactoryId = 0,
ParentId = parentId,
NodeCode = nodeCode,
NodeName = nodeName,
Level = level,
Path = path,
SModule = sModule,
IsLeaf = isLeaf,
Enabled = true,
SortNo = sortNo,
CreatedAt = ct,
};
}