namespace Admin.NET.Plugin.AiDOP.WorkOrder; /// BOM 单行物料(前端 Excel 解析后传入)。 public class BomItemDto { /// 子物料号(必填)。 public string ItemNum { get; set; } = string.Empty; /// 子物料描述。 public string Descr { get; set; } = string.Empty; /// 规格型号(子件长描述)。 public string? Descr1 { get; set; } /// 单位。 public string? UM { get; set; } /// 需求数量。 public decimal QtyRequired { get; set; } /// 工序号(项目文本解析;非数字则为 0)。 public int Op { get; set; } /// 销售订单号(用于匹配工单:对应 WorkOrdMaster.SalesJob)。 public string? SalesOrderNo { get; set; } /// 父物料号(用于匹配工单:对应 WorkOrdMaster.ItemNum)。 public string? ParentItemNum { get; set; } } /// 物料存在性校验请求。 public class BomCheckMaterialsInput { public List Items { get; set; } = new(); } /// 物料存在性校验结果。 public class BomCheckResult { /// 已在 ItemMaster 中存在的物料编码。 public List Existing { get; set; } = new(); /// 不存在、需要新建的物料。 public List Missing { get; set; } = new(); } /// BOM 写入请求。 public class BomUploadInput { /// 是否同时创建 ItemMaster 中不存在的物料。 public bool CreateMissingItems { get; set; } public List Items { get; set; } = new(); } /// BOM 写入结果。 public class BomUploadResult { /// WorkOrdDetail 新增行数。 public int Inserted { get; set; } /// WorkOrdDetail 更新行数。 public int Updated { get; set; } /// ItemMaster 新建行数。 public int NewItems { get; set; } /// 本次处理的 BOM 总行数。 public int Total { get; set; } /// 成功匹配写入的工单数量。 public int MatchedWorkOrders { get; set; } /// 未能匹配到未下达工单的行(格式:订单号+父物料号)。 public List Unmatched { get; set; } = new(); }