This commit is contained in:
tongfei
2024-03-12 18:04:30 +08:00
parent 22026f7489
commit 76af7a49ce
2 changed files with 24 additions and 6 deletions

View File

@@ -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<InStockErpDetails>();
var sc_erpService = scope.ServiceProvider.GetRequiredService<IErpService>();
//找到金蝶最新的采购订单数据
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
/// <param name="erpDetail"></param>
/// <param name="billNo"></param>
/// <returns></returns>
private async Task<(Result result, SyncStatus syncStatus, string erpBillNo)> Push(ErpPushDto dto, InStockErpDetails erpDetail, string billNo, IServiceScope scope)
{
var sc_erpService = scope.ServiceProvider.GetRequiredService<IErpService>();
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)
{