AdoS6IpqcQualityDisposition.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. using Admin.NET.Core;
  2. namespace Admin.NET.Plugin.AiDOP.Entity;
  3. /// <summary>
  4. /// S6 过程检验(IPQC)不合格质量处置记录。
  5. ///
  6. /// 整批不合格过程检验单(主管 N2 判定不合格)进入 N3_QUALITY_DISPOSITION,质量工程师提交处置方案落此表。
  7. /// 仅"记录处置结论"(disposition_type=REWORK/CONCESSION/SCRAP/OTHER);
  8. /// 本批不做仓储确认/库存/入库/出库/返工单/报废单/附件上传(attachment_json 预留)。
  9. /// 一单一有效处置由 service 校验(status=1 且未软删)+ inspection_id 唯一约束。
  10. /// </summary>
  11. [SugarTable("ado_s6_ipqc_quality_disposition", "S6过程检验质量处置")]
  12. [SugarIndex("uk_s6_ipqc_disp_insp", nameof(InspectionId), OrderByType.Asc, true)]
  13. [SugarIndex("idx_s6_ipqc_disp_flow", nameof(FlowInstanceId), OrderByType.Asc)]
  14. [SugarIndex("uk_s6_ipqc_disp_no", nameof(DispositionNo), OrderByType.Asc, true)]
  15. public class AdoS6IpqcQualityDisposition : EntityBaseDel, ITenantIdFilter
  16. {
  17. /// <summary>租户</summary>
  18. [SugarColumn(ColumnName = "tenant_id", ColumnDescription = "租户", IsNullable = true)]
  19. public long? TenantId { get; set; }
  20. /// <summary>工厂/组织</summary>
  21. [SugarColumn(ColumnName = "org_id", ColumnDescription = "工厂/组织", IsNullable = true)]
  22. public long? OrgId { get; set; }
  23. /// <summary>检验单 id(qms_gcjyd.id,BizId)</summary>
  24. [SugarColumn(ColumnName = "inspection_id", ColumnDescription = "检验单id")]
  25. public long InspectionId { get; set; }
  26. /// <summary>检验单号(qms_gcjyd.djbh)</summary>
  27. [SugarColumn(ColumnName = "inspection_no", ColumnDescription = "检验单号", Length = 255, IsNullable = true)]
  28. public string? InspectionNo { get; set; }
  29. /// <summary>业务类型(IPQC_INSPECTION)</summary>
  30. [SugarColumn(ColumnName = "biz_type", ColumnDescription = "业务类型", Length = 80, IsNullable = true)]
  31. public string? BizType { get; set; } = "IPQC_INSPECTION";
  32. /// <summary>流程实例 id</summary>
  33. [SugarColumn(ColumnName = "flow_instance_id", ColumnDescription = "流程实例id", IsNullable = true)]
  34. public long? FlowInstanceId { get; set; }
  35. /// <summary>处置单号(唯一)</summary>
  36. [SugarColumn(ColumnName = "disposition_no", ColumnDescription = "处置单号", Length = 80)]
  37. public string DispositionNo { get; set; } = string.Empty;
  38. /// <summary>处置类型:REWORK 返工 / CONCESSION 让步 / SCRAP 报废 / OTHER 其它</summary>
  39. [SugarColumn(ColumnName = "disposition_type", ColumnDescription = "处置类型", Length = 32)]
  40. public string DispositionType { get; set; } = string.Empty;
  41. /// <summary>处置数量</summary>
  42. [SugarColumn(ColumnName = "disposition_qty", ColumnDescription = "处置数量", Length = 18, DecimalDigits = 6, IsNullable = true)]
  43. public decimal? DispositionQty { get; set; }
  44. /// <summary>返工数量</summary>
  45. [SugarColumn(ColumnName = "rework_qty", ColumnDescription = "返工数量", Length = 18, DecimalDigits = 6, IsNullable = true)]
  46. public decimal? ReworkQty { get; set; }
  47. /// <summary>让步数量</summary>
  48. [SugarColumn(ColumnName = "concession_qty", ColumnDescription = "让步数量", Length = 18, DecimalDigits = 6, IsNullable = true)]
  49. public decimal? ConcessionQty { get; set; }
  50. /// <summary>报废数量</summary>
  51. [SugarColumn(ColumnName = "scrap_qty", ColumnDescription = "报废数量", Length = 18, DecimalDigits = 6, IsNullable = true)]
  52. public decimal? ScrapQty { get; set; }
  53. /// <summary>处置意见(必填)</summary>
  54. [SugarColumn(ColumnName = "disposition_opinion", ColumnDescription = "处置意见", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
  55. public string? DispositionOpinion { get; set; }
  56. /// <summary>责任部门</summary>
  57. [SugarColumn(ColumnName = "responsibility_dept", ColumnDescription = "责任部门", Length = 255, IsNullable = true)]
  58. public string? ResponsibilityDept { get; set; }
  59. /// <summary>责任人</summary>
  60. [SugarColumn(ColumnName = "responsible_user", ColumnDescription = "责任人", Length = 100, IsNullable = true)]
  61. public string? ResponsibleUser { get; set; }
  62. /// <summary>附件 JSON(预留,本批不做上传)</summary>
  63. [SugarColumn(ColumnName = "attachment_json", ColumnDescription = "附件JSON", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
  64. public string? AttachmentJson { get; set; }
  65. /// <summary>状态:1 已提交(本批最小)</summary>
  66. [SugarColumn(ColumnName = "status", ColumnDescription = "状态")]
  67. public int Status { get; set; }
  68. /// <summary>提交人 id(质量工程师)</summary>
  69. [SugarColumn(ColumnName = "submitted_by", ColumnDescription = "提交人id", IsNullable = true)]
  70. public long? SubmittedBy { get; set; }
  71. /// <summary>提交人姓名</summary>
  72. [SugarColumn(ColumnName = "submitted_by_name", ColumnDescription = "提交人姓名", Length = 100, IsNullable = true)]
  73. public string? SubmittedByName { get; set; }
  74. /// <summary>提交时间</summary>
  75. [SugarColumn(ColumnName = "submitted_at", ColumnDescription = "提交时间", IsNullable = true)]
  76. public DateTime? SubmittedAt { get; set; }
  77. /// <summary>确认人(预留,本批 N3 提交即完成,不做独立确认)</summary>
  78. [SugarColumn(ColumnName = "confirmed_by", ColumnDescription = "确认人", IsNullable = true)]
  79. public long? ConfirmedBy { get; set; }
  80. /// <summary>确认时间(预留)</summary>
  81. [SugarColumn(ColumnName = "confirmed_at", ColumnDescription = "确认时间", IsNullable = true)]
  82. public DateTime? ConfirmedAt { get; set; }
  83. /// <summary>乐观锁版本</summary>
  84. [SugarColumn(ColumnName = "row_version", ColumnDescription = "乐观锁版本", IsNullable = true)]
  85. public long? RowVersion { get; set; }
  86. }