AdoIqcPostingCompletion.cs 1.6 KB

12345678910111213141516171819202122232425262728
  1. using SqlSugar;
  2. namespace Admin.NET.Plugin.AiDOP.MaterialWarehouse.InventoryPosting.Entity;
  3. /// <summary>
  4. /// DOP-L3 IQC 过账完成锚(Phase 7C)。**与 C6/C5/C7 在同一 C2 外层事务内提交**,作为「业务事务已完整提交」的权威证据。
  5. /// 用于闭合 commit→MarkPosted 崩溃窗口:stale Processing 重投时,若本锚存在即证明业务已完成 → 修复 POSTED + ack,不重复过账。
  6. /// UNIQUE (tenant_id, domain_code, fbillno):同一 IQC 入库事件仅一条完成锚。
  7. /// </summary>
  8. [SugarTable("ado_iqc_posting_completion", "DOP-L3 IQC过账完成锚(与C2业务事务同提交)")]
  9. [SugarIndex("uk_ado_iqc_completion", nameof(TenantId), OrderByType.Asc, nameof(DomainCode), OrderByType.Asc, nameof(FbillNo), OrderByType.Asc, IsUnique = true)]
  10. public class AdoIqcPostingCompletion : AdoInvEntityBase
  11. {
  12. [SugarColumn(ColumnName = "fbillno", ColumnDescription = "来料检验单号", Length = 50, IsNullable = false, DefaultValue = "")]
  13. public string FbillNo { get; set; }
  14. [SugarColumn(ColumnName = "posting_id", ColumnDescription = "过账头Id")]
  15. public long PostingId { get; set; }
  16. [SugarColumn(ColumnName = "transaction_group_id", ColumnDescription = "库存事务组Id", IsNullable = true)]
  17. public long? TransactionGroupId { get; set; }
  18. [SugarColumn(ColumnName = "route_kind", ColumnDescription = "路由(FullReceipt/MrbChoose)", Length = 30, IsNullable = true)]
  19. public string RouteKind { get; set; }
  20. [SugarColumn(ColumnName = "completed_at", ColumnDescription = "完成时间")]
  21. public DateTime CompletedAt { get; set; }
  22. }