| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- using SqlSugar;
- namespace Admin.NET.Plugin.AiDOP.MaterialWarehouse.InventoryPosting.Entity;
- /// <summary>
- /// DOP-L3 IQC 入库过账头 / 幂等锚(结构层)。
- /// 幂等键(DB UNIQUE)= tenant_id + domain_code + FBILLNO —— 统一 IQC 入库事件业务幂等键。
- /// **禁止**用 FINSPECTSTATUS='检验完成' 判断是否已入库;改用本表 DB 唯一约束 + 状态。
- /// 注意:Phase 2 仅建结构;完整幂等处理逻辑(先查/占位/AlreadyProcessed)在 Phase 4 实现。
- /// </summary>
- [SugarTable("ado_iqc_inventory_posting", "DOP-L3 IQC入库过账头/幂等锚")]
- [SugarIndex("uk_ado_iqc_posting_fbillno", nameof(TenantId), OrderByType.Asc, nameof(DomainCode), OrderByType.Asc, nameof(FbillNo), OrderByType.Asc, IsUnique = true)]
- public class AdoIqcInventoryPosting : AdoInvEntityBase
- {
- /// <summary>来料检验单号(qms_qcp_inspbill.lydjbh / FBILLNO)——幂等键第 3 维。</summary>
- [SugarColumn(ColumnName = "fbillno", ColumnDescription = "来料检验单号FBILLNO", Length = 50, IsNullable = false, DefaultValue = "")]
- public string FbillNo { get; set; }
- [SugarColumn(ColumnName = "receiver", ColumnDescription = "收货单号Receiver", Length = 50, IsNullable = true)]
- public string Receiver { get; set; }
- [SugarColumn(ColumnName = "rct_qc_nbr", ColumnDescription = "检验单号RctQCNbr(旧对账关联键)", Length = 100, IsNullable = true)]
- public string RctQcNbr { get; set; }
- [SugarColumn(ColumnName = "item_num", ColumnDescription = "物料号", Length = 50, IsNullable = true)]
- public string ItemNum { get; set; }
- /// <summary>过账状态:PENDING / PROCESSING / POSTED / FAILED / ALREADY_PROCESSED(Phase 4 驱动)。</summary>
- [SugarColumn(ColumnName = "posting_status", ColumnDescription = "过账状态", Length = 20, IsNullable = false, DefaultValue = "PENDING")]
- public string PostingStatus { get; set; }
- /// <summary>过账模式:DISABLED / SHADOW / AUTHORITATIVE。本批次最高只允许 SHADOW。</summary>
- [SugarColumn(ColumnName = "posting_mode", ColumnDescription = "过账模式(DISABLED/SHADOW/AUTHORITATIVE)", Length = 20, IsNullable = false, DefaultValue = "SHADOW")]
- public string PostingMode { get; set; }
- /// <summary>MRB 状态(0 无 / 1 挑选 / 2 退货 / 3 让步接收)——来自 C1 IqcResultMapping。</summary>
- [SugarColumn(ColumnName = "mrb_status", ColumnDescription = "MRB状态", DefaultValue = "0")]
- public int MrbStatus { get; set; }
- /// <summary>命中分支号 1-5(C1)。</summary>
- [SugarColumn(ColumnName = "branch_no", ColumnDescription = "IQC路由分支号1-5", DefaultValue = "0")]
- public int BranchNo { get; set; }
- /// <summary>本次过账对应的库存事务组 Id(关联 ado_inventory_transaction.transaction_group_id)。</summary>
- [SugarColumn(ColumnName = "transaction_group_id", ColumnDescription = "库存事务组Id", IsNullable = true)]
- public long? TransactionGroupId { get; set; }
- }
|