WorkOrderBomDtos.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. namespace Admin.NET.Plugin.AiDOP.WorkOrder;
  2. /// <summary>BOM 单行物料(前端 Excel 解析后传入)。</summary>
  3. public class BomItemDto
  4. {
  5. /// <summary>子物料号(必填)。</summary>
  6. public string ItemNum { get; set; } = string.Empty;
  7. /// <summary>子物料描述。</summary>
  8. public string Descr { get; set; } = string.Empty;
  9. /// <summary>规格型号(子件长描述)。</summary>
  10. public string? Descr1 { get; set; }
  11. /// <summary>单位。</summary>
  12. public string? UM { get; set; }
  13. /// <summary>需求数量。</summary>
  14. public decimal QtyRequired { get; set; }
  15. /// <summary>工序号(项目文本解析;非数字则为 0)。</summary>
  16. public int Op { get; set; }
  17. /// <summary>销售订单号(用于匹配工单:对应 WorkOrdMaster.SalesJob)。</summary>
  18. public string? SalesOrderNo { get; set; }
  19. /// <summary>父物料号(用于匹配工单:对应 WorkOrdMaster.ItemNum)。</summary>
  20. public string? ParentItemNum { get; set; }
  21. }
  22. /// <summary>物料存在性校验请求。</summary>
  23. public class BomCheckMaterialsInput
  24. {
  25. public List<BomItemDto> Items { get; set; } = new();
  26. }
  27. /// <summary>物料存在性校验结果。</summary>
  28. public class BomCheckResult
  29. {
  30. /// <summary>已在 ItemMaster 中存在的物料编码。</summary>
  31. public List<string> Existing { get; set; } = new();
  32. /// <summary>不存在、需要新建的物料。</summary>
  33. public List<BomItemDto> Missing { get; set; } = new();
  34. }
  35. /// <summary>BOM 写入请求。</summary>
  36. public class BomUploadInput
  37. {
  38. /// <summary>是否同时创建 ItemMaster 中不存在的物料。</summary>
  39. public bool CreateMissingItems { get; set; }
  40. public List<BomItemDto> Items { get; set; } = new();
  41. }
  42. /// <summary>BOM 写入结果。</summary>
  43. public class BomUploadResult
  44. {
  45. /// <summary>WorkOrdDetail 新增行数。</summary>
  46. public int Inserted { get; set; }
  47. /// <summary>WorkOrdDetail 更新行数。</summary>
  48. public int Updated { get; set; }
  49. /// <summary>ItemMaster 新建行数。</summary>
  50. public int NewItems { get; set; }
  51. /// <summary>本次处理的 BOM 总行数。</summary>
  52. public int Total { get; set; }
  53. /// <summary>成功匹配写入的工单数量。</summary>
  54. public int MatchedWorkOrders { get; set; }
  55. /// <summary>未能匹配到未下达工单的行(格式:订单号+父物料号)。</summary>
  56. public List<string> Unmatched { get; set; } = new();
  57. }