优化
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user