using Microsoft.Extensions.Options; namespace Admin.NET.Plugin.AiDOP.WorkOrder; /// /// WP9 · 按 选择 Local / Mes 建单实现。 /// 注入点应使用本类型(或 ),勿直接多实现竞注。 /// public sealed class PickBillCreatorFacade : IPickBillCreator, ITransient { private readonly AidopPickBillOptions _opt; private readonly WorkOrderPickBillService _local; private readonly MesPickBillCreator _mes; private readonly WorkOrderKittingCheckService _kittingCheckService; public PickBillCreatorFacade( IOptions opt, WorkOrderPickBillService local, MesPickBillCreator mes, WorkOrderKittingCheckService kittingCheckService) { _opt = opt.Value; _local = local; _mes = mes; _kittingCheckService = kittingCheckService; } public async Task CreateAsync( long tenantId, string domain, string workOrd, string account, CancellationToken ct = default) { var result = _opt.IsMes ? await _mes.CreateAsync(tenantId, domain, workOrd, account, ct) : await _local.CreateAsync(tenantId, domain, workOrd, account, ct); // 领料单新建成功后,将已有的齐套率结果回写到 NbrMaster.MFRate / NbrDetail.SatisfyQty if (result.Created) { await _kittingCheckService.WriteBackMFRateAsync(tenantId, workOrd); } return result; } }