修复bug
This commit is contained in:
@@ -4976,14 +4976,14 @@
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.TakeStockService.Loss_Profit(WMS.Web.Domain.Entitys.TakeStock)">
|
||||
<member name="M:WMS.Web.Domain.Services.TakeStockService.Loss_Profit(WMS.Web.Domain.Entitys.TakeStock,Microsoft.Extensions.DependencyInjection.IServiceScope)">
|
||||
<summary>
|
||||
盘盈盘亏同步金蝶
|
||||
</summary>
|
||||
<param name="entity"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.TakeStockService.ErpOperate(WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockSaveDto,WMS.Web.Domain.Values.Erp.FormIdParam)">
|
||||
<member name="M:WMS.Web.Domain.Services.TakeStockService.ErpOperate(WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockSaveDto,WMS.Web.Domain.Values.Erp.FormIdParam,Microsoft.Extensions.DependencyInjection.IServiceScope)">
|
||||
<summary>
|
||||
同步金蝶操作
|
||||
</summary>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@@ -20,6 +21,6 @@ namespace WMS.Web.Domain.IService
|
||||
// 同步金蝶
|
||||
Task<Result> Sync(OperateRequest dto);
|
||||
//盘亏盘亏
|
||||
Task<Result> Loss_Profit(TakeStock entity);
|
||||
Task<Result> Loss_Profit(TakeStock entity, IServiceScope scope);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using AutoMapper;
|
||||
using Microsoft.EntityFrameworkCore.Storage;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
@@ -40,12 +41,13 @@ namespace WMS.Web.Domain.Services
|
||||
private readonly IBoxInventoryService _boxInventoryService;
|
||||
private readonly IErpBasicDataExtendService _erpBasicDataExtendService;
|
||||
private readonly ISerialNumberService _serialNumberService;
|
||||
private readonly IServiceScopeFactory _serviceScopeFactory;
|
||||
public TakeStockService(IMapper mapper, ILoginService loginService,
|
||||
IBasicsRepositories transactionRepositories,
|
||||
ITakeStockRepositories takeStockRepositories, ILoginRepositories loginRepositories,
|
||||
ISingleDataService singleDataService, IErpService erpService, ILogger<TakeStockService> logger,
|
||||
IBoxInventoryService boxInventoryService, IErpBasicDataExtendService erpBasicDataExtendService,
|
||||
ISerialNumberService serialNumberService)
|
||||
ISerialNumberService serialNumberService, IServiceScopeFactory serviceScopeFactory)
|
||||
{
|
||||
_mapper = mapper;
|
||||
_loginService = loginService;
|
||||
@@ -58,6 +60,7 @@ namespace WMS.Web.Domain.Services
|
||||
_boxInventoryService = boxInventoryService;
|
||||
_erpBasicDataExtendService = erpBasicDataExtendService;
|
||||
_serialNumberService = serialNumberService;
|
||||
_serviceScopeFactory = serviceScopeFactory;
|
||||
}
|
||||
/// <summary>
|
||||
/// 保存
|
||||
@@ -151,20 +154,23 @@ namespace WMS.Web.Domain.Services
|
||||
public Task<Result> Sync(OperateRequest dto)
|
||||
{
|
||||
_logger.LogInformation($"盘点同步1:{JsonConvert.SerializeObject(dto)}");
|
||||
|
||||
Task.Run(async () =>
|
||||
{
|
||||
var scope = _serviceScopeFactory.CreateScope();
|
||||
var sc_takeStockRepositories = scope.ServiceProvider.GetRequiredService<ITakeStockRepositories>();
|
||||
_logger.LogInformation($"盘点同步2");
|
||||
var list = await sc_takeStockRepositories.GetEntityList(dto.Ids);
|
||||
list = list.Where(w => w.SuccessSync == SyncStatus.Fail || w.SuccessSync == SyncStatus.SyncIng).ToList();
|
||||
foreach (var entity in list)
|
||||
{
|
||||
_logger.LogInformation($"盘点同步2");
|
||||
var list = _takeStockRepositories.GetEntityList(dto.Ids).GetAwaiter().GetResult();
|
||||
list = list.Where(w => w.SuccessSync == SyncStatus.Fail || w.SuccessSync == SyncStatus.SyncIng).ToList();
|
||||
foreach (var entity in list)
|
||||
{
|
||||
_logger.LogInformation($"盘点同步3");
|
||||
var res = await Loss_Profit(entity);
|
||||
_logger.LogInformation($"盘点同步4:{JsonConvert.SerializeObject(res)}");
|
||||
if (!res.IsSuccess)
|
||||
_logger.LogError($"盘点同步失败:{res.Message}");
|
||||
}
|
||||
});
|
||||
_logger.LogInformation($"盘点同步3");
|
||||
var res = await Loss_Profit(entity, scope);
|
||||
_logger.LogInformation($"盘点同步4:{JsonConvert.SerializeObject(res)}");
|
||||
if (!res.IsSuccess)
|
||||
_logger.LogError($"盘点同步失败:{res.Message}");
|
||||
}
|
||||
});
|
||||
|
||||
return Task.FromResult(Result.ReSuccess());
|
||||
}
|
||||
@@ -174,28 +180,25 @@ namespace WMS.Web.Domain.Services
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> Loss_Profit(TakeStock entity)
|
||||
public async Task<Result> Loss_Profit(TakeStock entity, IServiceScope scope)
|
||||
{
|
||||
_logger.LogInformation($"盘点同步金蝶: {JsonConvert.SerializeObject(entity)}");
|
||||
try
|
||||
{
|
||||
var sc_erpService = scope.ServiceProvider.GetRequiredService<IErpService>();
|
||||
var sc_erpBasicDataExtendService = scope.ServiceProvider.GetRequiredService<IErpBasicDataExtendService>();
|
||||
var sc_takeStockRepositories = scope.ServiceProvider.GetRequiredService<ITakeStockRepositories>();
|
||||
|
||||
if (entity.Details.Count() == 0) return Result.ReSuccess();
|
||||
var materials_result = await _erpService.BillQueryForMaterial();
|
||||
var materials_result = await sc_erpService.BillQueryForMaterial();
|
||||
if (!materials_result.IsSuccess) return Result.ReFailure(ResultCodes.ErpMaterialError);
|
||||
var materials = materials_result.Data.ToList();
|
||||
|
||||
//var res = await _erpService.BillQueryForStock();
|
||||
//if (!res.IsSuccess) return Result.ReFailure(ResultCodes.ErpStockError);
|
||||
//var stock = res.Data.FirstOrDefault(f => f.Code == entity.Details[0].StockCode && f.OrgCode == entity.Details[0].OrgCode);//需要根据单点code搜索
|
||||
//if (stock == null) return Result.ReFailure(ResultCodes.ErpStockNoData);
|
||||
//组装dto
|
||||
#region 组装dto
|
||||
//子仓库 ORICO_JD:1000008 GD:1000005 HD:1000007 AD:1000004
|
||||
List<ErpTakeStockDetailsSaveDto> detils = new List<ErpTakeStockDetailsSaveDto>();
|
||||
foreach (var d in entity.Details)
|
||||
{
|
||||
//var subStockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, d.SubStockId);
|
||||
|
||||
var unitNumber = _erpBasicDataExtendService.GetMaterialUnitNumber(materials, d.MaterialId);
|
||||
detils.Add(new ErpTakeStockDetailsSaveDto()
|
||||
{
|
||||
@@ -224,9 +227,9 @@ namespace WMS.Web.Domain.Services
|
||||
//判断盘盈盘亏
|
||||
FormIdParam type = entity.ResultType == TakeStockType.Loss ? FormIdParam.STK_StockCountLoss : FormIdParam.STK_StockCountGain;
|
||||
//操作金蝶
|
||||
var resSync = await ErpOperate(dto, type);
|
||||
var resSync = await ErpOperate(dto, type, scope);
|
||||
entity.Sync(resSync.result.IsSuccess, resSync.result.Message, resSync.syncStatus, resSync.erpBillNo);
|
||||
await _takeStockRepositories.Edit(entity, true);
|
||||
await sc_takeStockRepositories.Edit(entity, true);
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -241,11 +244,12 @@ namespace WMS.Web.Domain.Services
|
||||
/// <param name="dto"></param>
|
||||
/// <param name="type"></param>
|
||||
/// <returns></returns>
|
||||
private async Task<(Result result, SyncStatus syncStatus, string erpBillNo)> ErpOperate(ErpTakeStockSaveDto dto, FormIdParam type)
|
||||
private async Task<(Result result, SyncStatus syncStatus, string erpBillNo)> ErpOperate(ErpTakeStockSaveDto dto, FormIdParam type, IServiceScope scope)
|
||||
{
|
||||
var sc_erpService = scope.ServiceProvider.GetRequiredService<IErpService>();
|
||||
string formId = type.ToString();
|
||||
_logger.LogInformation($"盘点单->开始同步金蝶 单号:{dto.BillNo} 数据: {JsonConvert.SerializeObject(dto)}");
|
||||
var res_s = await _erpService.Save<ErpTakeStockSaveDto>(dto, formId);
|
||||
var res_s = await sc_erpService.Save<ErpTakeStockSaveDto>(dto, formId);
|
||||
if (!res_s.IsSuccess)
|
||||
{
|
||||
_logger.LogInformation($"盘点单->保存失败 单号:{dto.BillNo} 错误:{res_s.Message}");
|
||||
@@ -254,7 +258,7 @@ namespace WMS.Web.Domain.Services
|
||||
//提交
|
||||
_logger.LogInformation($"盘点单->保存成功 开始提交 单号:{dto.BillNo}");
|
||||
ErpOperateDto o_dto = new ErpOperateDto(formId, res_s.Data);//res_s.Data
|
||||
var res = await _erpService.Submit(o_dto, formId);
|
||||
var res = await sc_erpService.Submit(o_dto, formId);
|
||||
if (!res.IsSuccess)
|
||||
{
|
||||
//如果提交失败
|
||||
@@ -267,7 +271,7 @@ namespace WMS.Web.Domain.Services
|
||||
}
|
||||
//审核
|
||||
_logger.LogInformation($"盘点单->提交成功 开始审核 单号:{dto.BillNo}");
|
||||
res = await _erpService.Audit(o_dto, formId);
|
||||
res = await sc_erpService.Audit(o_dto, formId);
|
||||
if (!res.IsSuccess)
|
||||
{
|
||||
//如果审核失败
|
||||
|
||||
Reference in New Issue
Block a user