优化
This commit is contained in:
@@ -4440,7 +4440,7 @@
|
|||||||
<param name="loginInfo"></param>
|
<param name="loginInfo"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Services.InStockService.Push(WMS.Web.Core.Dto.Erp.ErpPushDto,WMS.Web.Domain.Entitys.InStockErpDetails,System.String,Microsoft.Extensions.DependencyInjection.IServiceScope)">
|
<member name="M:WMS.Web.Domain.Services.InStockService.Push(WMS.Web.Core.Dto.Erp.ErpPushDto,WMS.Web.Domain.Entitys.InStockErpDetails,System.String,WMS.Web.Domain.IService.Public.IErpService)">
|
||||||
<summary>
|
<summary>
|
||||||
下推
|
下推
|
||||||
</summary>
|
</summary>
|
||||||
|
|||||||
@@ -766,7 +766,25 @@ namespace WMS.Web.Domain.Services
|
|||||||
|
|
||||||
if (entity.Type != InstockType.Purchase) return Result.ReSuccess();
|
if (entity.Type != InstockType.Purchase) return Result.ReSuccess();
|
||||||
if (entity.SuccessSync == SyncStatus.Success) 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)
|
foreach (var s in erpDetails)
|
||||||
{
|
{
|
||||||
var erp_details = entity.ErpDetails
|
var erp_details = entity.ErpDetails
|
||||||
@@ -780,7 +798,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
IsDraftWhenSaveFail=true
|
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)
|
if (res.result.IsSuccess)
|
||||||
entity.SyncSuccess(s.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo);
|
entity.SyncSuccess(s.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo);
|
||||||
else
|
else
|
||||||
@@ -799,10 +817,10 @@ namespace WMS.Web.Domain.Services
|
|||||||
/// <param name="erpDetail"></param>
|
/// <param name="erpDetail"></param>
|
||||||
/// <param name="billNo"></param>
|
/// <param name="billNo"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private async Task<(Result result, SyncStatus syncStatus, string erpBillNo)> Push(ErpPushDto dto, InStockErpDetails erpDetail, string billNo, IServiceScope scope)
|
private async Task<(Result result, SyncStatus syncStatus, string erpBillNo)> Push(ErpPushDto dto, InStockErpDetails erpDetail, string billNo, IErpService sc_erpService)
|
||||||
{
|
{
|
||||||
var sc_erpService = scope.ServiceProvider.GetRequiredService<IErpService>();
|
|
||||||
|
|
||||||
|
//下推动作
|
||||||
var res = await sc_erpService.Push(dto);
|
var res = await sc_erpService.Push(dto);
|
||||||
if (!res.IsSuccess)
|
if (!res.IsSuccess)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user