| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using Furion.ConfigurableOptions;
- namespace Admin.NET.Plugin.AiDOP;
- /// <summary>
- /// S8 Stage-3 采购完成态数据源绑定。配置节 <c>AiDOP:PoCompletion</c>。
- ///
- /// <para>承担的角色是 <b>S8_PO_COMPLETION_SOURCE</b>:接收 Ai-DOP 推送的采购单、执行收货、
- /// 并维护 <c>PurOrdDetail.Status</c>(<c>'C'</c>=收完关闭)。该角色由 WMS/MES 承担,
- /// 与建单方(本库)是两个系统。</para>
- ///
- /// <para><b>为什么源编码必须留在配置里</b>:仓库现有代码把 <c>DOPDEMORQ_SQLSERVER</c>
- /// 硬编码进了 9+ 处业务服务,导致换环境必须改代码。本选项沿用
- /// <see cref="AidopInventoryOptions"/> 已在生产使用的配置驱动绑定模式,
- /// 业务 Service 内不出现任何具体源编码字面量。</para>
- ///
- /// <para><b>非开发环境必须显式绑定真实 WMS 源</b>:默认值指向开发/UAT 实例,
- /// <see cref="DevOnlySourceCodes"/> 中的编码在非开发环境会被 fail-closed 拒绝,
- /// 绝不静默使用。</para>
- /// </summary>
- [OptionsSettings("AiDOP:PoCompletion")]
- public sealed class AidopPoCompletionOptions : IConfigurableOptions
- {
- /// <summary>承担 S8_PO_COMPLETION_SOURCE 角色的 <c>mdp_source.source_code</c>。</summary>
- public string SourceCode { get; set; } = "DOPDEMORQ_SQLSERVER";
- /// <summary>
- /// 仅限开发/UAT 使用的源编码。非开发环境命中其中任意一个即拒绝运行(fail-closed),
- /// 防止把测试库的执行态当成生产采购完成事实。
- /// </summary>
- public string[] DevOnlySourceCodes { get; set; } = new[] { "DOPDEMORQ_SQLSERVER" };
- /// <summary>
- /// 入账范围:只消费该 Potype 的采购行。与 <c>PurOrdWmsPushService</c> 的自建单推送口径
- /// (<c>Potype='po'</c>)对齐 —— 没被推过去的单据,WMS 侧的状态不属于本角色。
- /// </summary>
- public string SourcePotype { get; set; } = "po";
- /// <summary>单轮从源侧读取的行数上限,防止异常配置下拉爆内存。</summary>
- public int MaxSourceRows { get; set; } = 50000;
- /// <summary>UPSERT 分片大小。</summary>
- public int UpsertBatchSize { get; set; } = 200;
- }
|