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