WorkOrderBomDtos.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. /// <summary>合同号(自动建单时写入 crm_seorder.bill_from)。</summary>
  22. public string? ContractNo { get; set; }
  23. /// <summary>父物料描述(自动建单时写入 WorkOrdMaster.ItemName)。</summary>
  24. public string? ParentDescr { get; set; }
  25. }
  26. /// <summary>物料存在性校验请求。</summary>
  27. public class BomCheckMaterialsInput
  28. {
  29. public List<BomItemDto> Items { get; set; } = new();
  30. }
  31. /// <summary>物料存在性校验结果。</summary>
  32. public class BomCheckResult
  33. {
  34. /// <summary>已在 ItemMaster 中存在的物料编码。</summary>
  35. public List<string> Existing { get; set; } = new();
  36. /// <summary>不存在、需要新建的物料。</summary>
  37. public List<BomItemDto> Missing { get; set; } = new();
  38. }
  39. /// <summary>BOM 写入请求。</summary>
  40. public class BomUploadInput
  41. {
  42. /// <summary>是否同时创建 ItemMaster 中不存在的物料。</summary>
  43. public bool CreateMissingItems { get; set; }
  44. public List<BomItemDto> Items { get; set; } = new();
  45. }
  46. /// <summary>BOM 写入结果。</summary>
  47. public class BomUploadResult
  48. {
  49. /// <summary>WorkOrdDetail 新增行数。</summary>
  50. public int Inserted { get; set; }
  51. /// <summary>WorkOrdDetail 更新行数。</summary>
  52. public int Updated { get; set; }
  53. /// <summary>ItemMaster 新建行数。</summary>
  54. public int NewItems { get; set; }
  55. /// <summary>本次处理的 BOM 总行数。</summary>
  56. public int Total { get; set; }
  57. /// <summary>成功匹配写入的工单数量。</summary>
  58. public int MatchedWorkOrders { get; set; }
  59. /// <summary>未能匹配到未下达工单的行(格式:订单号+父物料号)。</summary>
  60. public List<string> Unmatched { get; set; } = new();
  61. /// <summary>自动建单开关打开时新建的销售订单数量(crm_seorder)。</summary>
  62. public int CreatedOrders { get; set; }
  63. /// <summary>自动建单开关打开时新建的工单数量(WorkOrdMaster)。</summary>
  64. public int CreatedWorkOrders { get; set; }
  65. }