using Furion.ConfigurableOptions; namespace Admin.NET.Plugin.AiDOP; /// /// 齐套检查的库存读取来源。配置节 AiDOP:Stock。 /// /// Source = Mes(默认,直读 165 InvMaster 实时值)| Local(本库 InvMaster 快照,降级用)。 /// 本库 InvMaster 是 165 的一次性拷贝、不随交易更新(实测 max UpdateTime 停在 2025-12-31), /// 故齐套判定默认必须走 Mes;出问题时改配置回落,不需回滚代码。 /// [OptionsSettings("AiDOP:Stock")] public sealed class AidopStockOptions : IConfigurableOptions { /// Mes | Local。 public string Source { get; set; } = "Mes"; /// 165 账套(InvMaster.Domain)。实测 165 仅有 8010 一个账套。 public string MesDomain { get; set; } = "8010"; /// /// 允许走 165 的租户。仅该租户在本库与 165 一一对应(实测同为 16022 行); /// 其他租户(如 824585161322565)的库存与 165 无关,必须回落本库,否则会读到别人的库存。 /// public long MesTenantId { get; set; } = 797403760988229L; /// 单次 IN 查询的物料数上限(防止 SQL 过长 / 参数过多)。 public int BatchSize { get; set; } = 500; public bool IsMes => string.Equals(Source?.Trim(), "Mes", StringComparison.OrdinalIgnoreCase); }