提交测试

This commit is contained in:
tongfei
2024-04-25 15:54:33 +08:00
parent 93d216d51f
commit 81bd764a72
5 changed files with 89 additions and 9 deletions

View File

@@ -53,12 +53,14 @@ namespace WMS.Web.Api.Controllers
private readonly IMaterialService _materialService; private readonly IMaterialService _materialService;
private readonly IMemoryCache _memoryCache; private readonly IMemoryCache _memoryCache;
private readonly IRedisConcurrentProcessService _redisConcurrentProcessService; private readonly IRedisConcurrentProcessService _redisConcurrentProcessService;
private IInStockService _inStockService;
public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBoxInventoryRepositories boxInventoryRepositories, IRedisConcurrentProcessService redisConcurrentProcessService, public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBoxInventoryRepositories boxInventoryRepositories, IRedisConcurrentProcessService redisConcurrentProcessService,
IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService, IBasicsRepositories basicsRepositories, IMemoryCache memoryCache, IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService, IBasicsRepositories basicsRepositories, IMemoryCache memoryCache,
IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IOptions<AppOptions> options, ILoginService loginService, ISendMessageService sendMessageService, IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IOptions<AppOptions> options, ILoginService loginService, ISendMessageService sendMessageService,
ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories, IOutStockService outStockService, IInStockTaskRepositories inStockTaskRepositories, ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories, IOutStockService outStockService, IInStockTaskRepositories inStockTaskRepositories,
IWebHostEnvironment env, IMaterialService materialService, IOutStockRepositories outStockRepositories) IWebHostEnvironment env, IMaterialService materialService, IOutStockRepositories outStockRepositories, IInStockService inStockService)
{ {
_inStockService = inStockService;
_redisConcurrentProcessService = redisConcurrentProcessService; _redisConcurrentProcessService = redisConcurrentProcessService;
_memoryCache = memoryCache; _memoryCache = memoryCache;
_materialService = materialService; _materialService = materialService;
@@ -424,5 +426,27 @@ namespace WMS.Web.Api.Controllers
var data=await _erpService.BillQueryForPurchaseInStockBy("1541693",null); var data=await _erpService.BillQueryForPurchaseInStockBy("1541693",null);
return true; return true;
} }
/// <summary>
/// 测试-重传
/// </summary>
/// <param name="id"></param>
/// <param name="errorType"></param>
/// <returns></returns>
[HttpGet]
[Route("sync/{id}")]
public async Task<Result> sync([FromRoute]int id,[FromQuery] int errorType)
{
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null)
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
var part = new OperateRequest();
part.Ids = new List<int>();
part.Ids.Add(id);
return await _inStockService.Sync(part, loginInfo, errorType);
}
} }
} }

View File

@@ -837,5 +837,13 @@
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WMS.Web.Api.Controllers.TestController.sync(System.Int32,System.Int32)">
<summary>
测试-重传
</summary>
<param name="id"></param>
<param name="errorType"></param>
<returns></returns>
</member>
</members> </members>
</doc> </doc>

View File

@@ -3524,6 +3524,14 @@
<param name="loginInfo"></param> <param name="loginInfo"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WMS.Web.Domain.IService.IInStockService.Sync(WMS.Web.Core.Dto.OperateRequest,WMS.Web.Core.Dto.Login.LoginInDto,System.Int32)">
<summary>
同步金蝶
</summary>
<param name="dto"></param>
<param name="loginInfo"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.IInStockService.Receive(WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskRequest,WMS.Web.Core.Dto.Login.LoginInDto)"> <member name="M:WMS.Web.Domain.IService.IInStockService.Receive(WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskRequest,WMS.Web.Core.Dto.Login.LoginInDto)">
<summary> <summary>
收货 收货
@@ -5171,7 +5179,7 @@
<param name="dto"></param> <param name="dto"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WMS.Web.Domain.Services.InStockService.PurchaseInStock(WMS.Web.Domain.Entitys.InStock,WMS.Web.Core.Dto.Login.LoginInDto)"> <member name="M:WMS.Web.Domain.Services.InStockService.PurchaseInStock(WMS.Web.Domain.Entitys.InStock,WMS.Web.Core.Dto.Login.LoginInDto,System.Int32)">
<summary> <summary>
采购:同步金蝶 采购:同步金蝶
</summary> </summary>
@@ -5179,7 +5187,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,WMS.Web.Domain.IService.Public.IErpService,WMS.Web.Domain.Infrastructure.IInStockRepositories)"> <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,WMS.Web.Domain.Infrastructure.IInStockRepositories,System.Int32)">
<summary> <summary>
下推 下推
</summary> </summary>

View File

@@ -26,6 +26,14 @@ namespace WMS.Web.Domain.IService
/// <returns></returns> /// <returns></returns>
Task<Result> Sync(OperateRequest dto, LoginInDto loginInfo, bool isRepeatSync = true); Task<Result> Sync(OperateRequest dto, LoginInDto loginInfo, bool isRepeatSync = true);
/// <summary>
/// 同步金蝶
/// </summary>
/// <param name="dto"></param>
/// <param name="loginInfo"></param>
/// <returns></returns>
Task<Result> Sync(OperateRequest dto, LoginInDto loginInfo, int errorType);
/// <summary> /// <summary>
/// 收货 /// 收货
/// </summary> /// </summary>

View File

@@ -103,7 +103,28 @@ namespace WMS.Web.Domain.Services
{ {
foreach (var entity in list) foreach (var entity in list)
{ {
var res = await this.PurchaseInStock(entity, loginInfo); var res = await this.PurchaseInStock(entity, loginInfo, 0);
if (!res.IsSuccess)
_logger.LogError($"入库单同步失败:{res.Message}");
}
});
return Task.FromResult(Result.ReSuccess());
}
public Task<Result> Sync(OperateRequest dto, LoginInDto loginInfo, int errorType)
{
var list = _inStockRepositories.GetList(dto.Ids).GetAwaiter().GetResult();
var isSuccess = true;
list = list.Where(w => w.SuccessSync == SyncStatus.Fail).ToList();
list.ForEach(f => f.RepeatSync());
isSuccess = _inStockRepositories.UpdateRange(list, true).GetAwaiter().GetResult();
Task.Run(async () =>
{
foreach (var entity in list)
{
var res = await this.PurchaseInStock(entity, loginInfo, errorType);
if (!res.IsSuccess) if (!res.IsSuccess)
_logger.LogError($"入库单同步失败:{res.Message}"); _logger.LogError($"入库单同步失败:{res.Message}");
} }
@@ -827,7 +848,7 @@ namespace WMS.Web.Domain.Services
/// <param name="entity"></param> /// <param name="entity"></param>
/// <param name="loginInfo"></param> /// <param name="loginInfo"></param>
/// <returns></returns> /// <returns></returns>
private async Task<Result> PurchaseInStock(InStock entity, LoginInDto loginInfo) private async Task<Result> PurchaseInStock(InStock entity, LoginInDto loginInfo, int errorType)
{ {
_logger.LogInformation($"采购下推-同步:{JsonConvert.SerializeObject(entity)} 操作人:{loginInfo.UserInfo.StaffId}"); _logger.LogInformation($"采购下推-同步:{JsonConvert.SerializeObject(entity)} 操作人:{loginInfo.UserInfo.StaffId}");
var scope = _serviceScopeFactory.CreateScope(); var scope = _serviceScopeFactory.CreateScope();
@@ -892,7 +913,7 @@ namespace WMS.Web.Domain.Services
else else
{ {
//下推金蝶 //下推金蝶
var res = await this.Push(erpDto, det, entity.BillNo, sc_erpService, sc_inStockRepositories); var res = await this.Push(erpDto, det, entity.BillNo, sc_erpService, sc_inStockRepositories, errorType);
if (res.result.IsSuccess) if (res.result.IsSuccess)
entity.SyncSuccess(det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo); entity.SyncSuccess(det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo);
else else
@@ -916,7 +937,7 @@ 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, string instockDetailId)> Push(ErpPushDto dto, InStockErpDetails erpDetail, string billNo, IErpService sc_erpService, IInStockRepositories sc_inStockRepositories) private async Task<(Result result, SyncStatus syncStatus, string erpBillNo, string instockDetailId)> Push(ErpPushDto dto, InStockErpDetails erpDetail, string billNo, IErpService sc_erpService, IInStockRepositories sc_inStockRepositories, int errorType)
{ {
var erp_instock_detId = string.Empty; var erp_instock_detId = string.Empty;
try try
@@ -935,8 +956,10 @@ namespace WMS.Web.Domain.Services
purchaseInStock.Details[0].Qty = erpDetail.Qty; purchaseInStock.Details[0].Qty = erpDetail.Qty;
string formId = dto.TargetFormId.ToString(); string formId = dto.TargetFormId.ToString();
erp_instock_detId = purchaseInStock.Details[0].DetailId; erp_instock_detId = purchaseInStock.Details[0].DetailId;
if (errorType == 1)
//var tt = Convert.ToInt32("abc"); {
int tt = Convert.ToInt32("abc");
}
//批号生成和同步 //批号生成和同步
if (string.IsNullOrEmpty(erpDetail.BatchBillNo)) if (string.IsNullOrEmpty(erpDetail.BatchBillNo))
{ {
@@ -972,6 +995,10 @@ namespace WMS.Web.Domain.Services
_logger.LogInformation($"入库单->保存失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{res_s.Message}"); _logger.LogInformation($"入库单->保存失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{res_s.Message}");
return (Result.ReFailure(res_s.Message, res_s.Status), SyncStatus.SubmitFail, "", purchaseInStock.Details[0].DetailId); return (Result.ReFailure(res_s.Message, res_s.Status), SyncStatus.SubmitFail, "", purchaseInStock.Details[0].DetailId);
} }
if (errorType == 2)
{
int tt = Convert.ToInt32("abc");
}
//提交 //提交
_logger.LogInformation($"入库单->保存成功 开始提交 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}"); _logger.LogInformation($"入库单->保存成功 开始提交 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}");
ErpOperateDto o_dto = new ErpOperateDto(formId, res_s.Data);//res_s.Data ErpOperateDto o_dto = new ErpOperateDto(formId, res_s.Data);//res_s.Data
@@ -981,6 +1008,11 @@ namespace WMS.Web.Domain.Services
_logger.LogInformation($"入库单->提交失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{resSubmit.Message}"); _logger.LogInformation($"入库单->提交失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{resSubmit.Message}");
return (resSubmit, SyncStatus.SubmitFail, o_dto.Numbers.First(), purchaseInStock.Details[0].DetailId); return (resSubmit, SyncStatus.SubmitFail, o_dto.Numbers.First(), purchaseInStock.Details[0].DetailId);
} }
if (errorType == 3)
{
int tt = Convert.ToInt32("abc");
}
//审核 //审核
_logger.LogInformation($"入库单->提交成功 开始审核 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}"); _logger.LogInformation($"入库单->提交成功 开始审核 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}");
resSubmit = await sc_erpService.Audit(o_dto, formId); resSubmit = await sc_erpService.Audit(o_dto, formId);