using SqlSugar; namespace Admin.NET.Plugin.AiDOP.MaterialWarehouse.InventoryPosting.Entity; /// /// DOP-L3 库位/批次库存明细(影子)。**非旧 LocationDetail**。 /// 自然键据 pr_SFM_InventoryTransactionProcessing2 实核(L33-35 JOIN / L370-371 UPDATE): /// Domain + ItemNum + Location + LotSerial + Refs 五维。 /// ⚠️ 非批控物料 LotSerial/Refs 旧系统落**空串 ''(非 NULL)**并以空串占位唯一(L332-333 显式写 '',JOIN 用 IsNull(x,''))。 /// 故 lot_serial / refs 必须 NOT NULL DEFAULT '',否则 MySQL「多 NULL 不冲突」会让同库位非批控物料重复建行。 /// [SugarTable("ado_inventory_location_detail", "DOP-L3库位批次库存明细(影子,非旧LocationDetail)")] [SugarIndex("uk_ado_inv_loc_detail", nameof(TenantId), OrderByType.Asc, nameof(DomainCode), OrderByType.Asc, nameof(ItemNum), OrderByType.Asc, nameof(Location), OrderByType.Asc, nameof(LotSerial), OrderByType.Asc, nameof(Refs), OrderByType.Asc, IsUnique = true)] public class AdoInventoryLocationDetail : AdoInvEntityBase { [SugarColumn(ColumnName = "item_num", ColumnDescription = "物料号", Length = 50, IsNullable = false, DefaultValue = "")] public string ItemNum { get; set; } [SugarColumn(ColumnName = "location", ColumnDescription = "库位", Length = 30, IsNullable = false, DefaultValue = "")] public string Location { get; set; } /// 批次/序列号。非批控物料落空串 ''(NOT NULL DEFAULT ''),空串占位唯一。 [SugarColumn(ColumnName = "lot_serial", ColumnDescription = "批次/序列号(空批落空串非NULL)", Length = 50, IsNullable = false, DefaultValue = "")] public string LotSerial { get; set; } /// 旧 Refs 维度(唯一键第 6 维;空落空串 '')。 [SugarColumn(ColumnName = "refs", ColumnDescription = "Refs维度(空落空串非NULL)", Length = 50, IsNullable = false, DefaultValue = "")] public string Refs { get; set; } [SugarColumn(ColumnName = "qty_on_hand", ColumnDescription = "在手库存", Length = 18, DecimalDigits = 5, DefaultValue = "0")] public decimal QtyOnHand { get; set; } [SugarColumn(ColumnName = "avail_status_qty", ColumnDescription = "非限制/可用库存", Length = 18, DecimalDigits = 5, DefaultValue = "0")] public decimal AvailStatusQty { get; set; } [SugarColumn(ColumnName = "assay_qty", ColumnDescription = "质检库存", Length = 18, DecimalDigits = 5, DefaultValue = "0")] public decimal AssayQty { get; set; } [SugarColumn(ColumnName = "freeze_qty", ColumnDescription = "冻结库存", Length = 18, DecimalDigits = 5, DefaultValue = "0")] public decimal FreezeQty { get; set; } }