diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index f19c666e..b6169e7f 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -4440,7 +4440,7 @@
-
+
下推
diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs
index afca00b4..f13a93d9 100644
--- a/src/WMS.Web.Domain/Services/InStockService.cs
+++ b/src/WMS.Web.Domain/Services/InStockService.cs
@@ -766,7 +766,25 @@ namespace WMS.Web.Domain.Services
if (entity.Type != InstockType.Purchase) return Result.ReSuccess();
if (entity.SuccessSync == SyncStatus.Success) return Result.ReSuccess();
- var erpDetails = entity.ErpDetails.Where(w => w.SuccessSync == SyncStatus.SyncIng).ToList();
+ var erpDetails_tags = entity.ErpDetails.Where(w => w.SuccessSync == SyncStatus.SyncIng).ToList();
+
+ //要下推的明细
+ var erpDetails = new List();
+ var sc_erpService = scope.ServiceProvider.GetRequiredService();
+
+ //找到金蝶最新的采购订单数据
+ var erp_purchase_result =await sc_erpService.BillQueryForPurchaseInStock(entity.ErpDetails.GroupBy(x=>x.SourceBillNo).Select(x=>x.Key).ToList());
+ if (!erp_purchase_result.IsSuccess)
+ return erp_purchase_result;
+ //然后刷选出对应金蝶明细和物料和wms的任务单的明细和物料是一致的就同步下推
+ foreach (var item in erpDetails_tags)
+ {
+ var isHave= erp_purchase_result.Data.Where(x => x.ErpDetailId == item.ErpDetailId && x.MaterialId == item.MaterialId).Any();
+ if (isHave)
+ erpDetails.Add(item);
+ }
+
+
foreach (var s in erpDetails)
{
var erp_details = entity.ErpDetails
@@ -780,7 +798,7 @@ namespace WMS.Web.Domain.Services
IsDraftWhenSaveFail=true
};
//下推金蝶
- var res = await this.Push(erpDto, s, entity.BillNo, scope);
+ var res = await this.Push(erpDto, s, entity.BillNo, sc_erpService);
if (res.result.IsSuccess)
entity.SyncSuccess(s.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo);
else
@@ -799,10 +817,10 @@ namespace WMS.Web.Domain.Services
///
///
///
- private async Task<(Result result, SyncStatus syncStatus, string erpBillNo)> Push(ErpPushDto dto, InStockErpDetails erpDetail, string billNo, IServiceScope scope)
- {
- var sc_erpService = scope.ServiceProvider.GetRequiredService();
+ private async Task<(Result result, SyncStatus syncStatus, string erpBillNo)> Push(ErpPushDto dto, InStockErpDetails erpDetail, string billNo, IErpService sc_erpService)
+ {
+ //下推动作
var res = await sc_erpService.Push(dto);
if (!res.IsSuccess)
{