From cd7d12a301ae1604e194a4bbf720fe38a580bb2d Mon Sep 17 00:00:00 2001 From: "yang.lee" Date: Tue, 14 Nov 2023 10:28:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=BA=93=E7=94=B3=E8=AF=B7=EF=BC=8C?= =?UTF-8?q?=E5=88=86=E6=8B=A3=E5=87=BA=E6=97=B6=E4=B8=9A=E5=8A=A1=E5=9B=9E?= =?UTF-8?q?=E6=9B=B4=EF=BC=8C=E8=B0=83=E7=94=A8=E8=BD=BD=E5=85=B7=E7=A7=BB?= =?UTF-8?q?=E5=85=A5=E4=B8=8Dawait?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.WarehouseMgr/WareHouseService.cs | 10 ++--- .../Tnb.WarehouseMgr/WmsOutStockService.cs | 41 ++++++++++++++----- 2 files changed, 35 insertions(+), 16 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index b119c4be..2d3a6937 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -15,8 +15,6 @@ using Mapster; using Microsoft.AspNetCore.Mvc; using Microsoft.CodeAnalysis; using Newtonsoft.Json; -using NPOI.SS.Formula.Functions; -//using NPOI.SS.Formula.Functions; using SqlSugar; using Tnb.BasicData.Entities; using Tnb.Common.Extension; @@ -595,7 +593,7 @@ namespace Tnb.WarehouseMgr if (tuple.sysStatus.ToEnum() == EnumSysStatus.正常状态 && tuple.runStatus.ToEnum() == EnumRunStatus.停梯) { - Log.Information($"disTask.require_id={disTask.require_id}"); + Logger.Information($"disTask.require_id={disTask.require_id}"); List disTaskIds = new() { disTask.id }; var upInput = new { disTaskIds = disTask.id }; TaskExecuteAfterUpInput teaUpInput = new() @@ -691,7 +689,7 @@ namespace Tnb.WarehouseMgr } catch (Exception ex) { - Log.Error("任务执行失败", ex); + Logger.Error("任务执行失败", ex); await _db.Ado.RollbackTranAsync(); throw; } @@ -727,7 +725,7 @@ namespace Tnb.WarehouseMgr } catch (Exception ex) { - Log.Error("设备取返回操作失败", ex); + Logger.Error("设备取返回操作失败", ex); await _db.Ado.RollbackTranAsync(); } } @@ -836,7 +834,7 @@ namespace Tnb.WarehouseMgr catch (Exception ex) { Logger.Error($"任务结束失败", ex); - Log.Error($"任务结束失败堆栈异常", ex.StackTrace); + Logger.Error($"任务结束失败堆栈异常", ex); await _db.Ado.RollbackTranAsync(); throw; } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs index c2f0b740..aeeae4be 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs @@ -1,4 +1,5 @@ -using System.Linq.Expressions; +using System.Diagnostics; +using System.Linq.Expressions; using System.Runtime.InteropServices; using JNPF.Common.Core.Manager; using JNPF.Common.Dtos.VisualDev; @@ -33,7 +34,7 @@ namespace Tnb.WarehouseMgr /// [OverideVisualDev(ModuleConsts.MODULE_WMSOUTSTOCK_ID)] [ServiceModule(BizTypeId)] - public class WmsOutStockService : BaseWareHouseService, IWmsOutStockService + public class WmsOutStockService : BaseWareHouseService, IWmsOutStockService { private const string BizTypeId = "26191522660645"; private readonly ISqlSugarClient _db; @@ -70,6 +71,7 @@ namespace Tnb.WarehouseMgr _wareCarryService = wareCarryService; OverideFuncs.CreateAsync = OutStockApplyFor; + _ = InitializationTask; } public async Task OutStockApplyFor(VisualDevModelDataCrInput input) @@ -133,16 +135,16 @@ namespace Tnb.WarehouseMgr List carryIds = new(); var mapKeys = new List { "tablefield120", "details" }; - + //tablefield120 出库物料明细 if (input.data.Keys.Any(k => mapKeys.Contains(k))) //input.data.ContainsKey("tablefield120") && input.data["tablefield120"].IsNotEmptyOrNull() { - + if (input.data.ContainsKey("tablefield120") && input.data["tablefield120"].IsNotEmptyOrNull()) { outStockDList = input.data["tablefield120"].ToObject>(); } - else + else { outStockDList = input.data["details"].ToObject>(); } @@ -269,7 +271,7 @@ namespace Tnb.WarehouseMgr int ele = 2; foreach (WmsCarryH carry in carrys) { - + bool isMatch = await IsCarryAndLocationMatchByCarryStd(carry, loc); if (!isMatch) { @@ -289,7 +291,7 @@ namespace Tnb.WarehouseMgr if (sPoint != null && ePoint != null) { - List points = await _wareHouseService.PathAlgorithmsEle(sPoint.id, ePoint.id, ele); + List points = await _wareHouseService.PathAlgorithmsEle(sPoint.id, ePoint.id, ele); locIds.AddRange(points.Select(x => x.location_id).ToList()!); //根据获取的路径点生成预任务,生成顺序必须预路径算法返回的起终点的顺序一致(预任务顺序) if (points?.Count > 0) @@ -817,6 +819,7 @@ namespace Tnb.WarehouseMgr try { + Stopwatch sw = Stopwatch.StartNew(); await _db.Ado.BeginTranAsync(); @@ -829,6 +832,7 @@ namespace Tnb.WarehouseMgr EnumOutStatus outStatus = carry.out_status.ToEnum(); if (outStatus == EnumOutStatus.全部出) { + Stopwatch swAllOut = Stopwatch.StartNew(); //当前载具对应的所有条码插入 List carryCodes = await _db.Queryable().Where(it => it.carry_id == carryId).ToListAsync(); List outStockCodes = carryCodes.Adapt>(); @@ -872,10 +876,14 @@ namespace Tnb.WarehouseMgr //如果没有完成,修改为工作中 _ = await _db.Updateable().SetColumns(it => new WmsOutstockH { status = WmsWareHouseConst.BILLSTATUS_ON_ID }).Where(it => it.id == input.requireId).ExecuteCommandAsync(); } - _ = await _wareCarryService.UpdateNullCarry(carry).Unwrap(); + _ = _wareCarryService.UpdateNullCarry(carry).Unwrap(); + swAllOut.Stop(); + Logger.Information($"全部出耗时:{swAllOut.ElapsedMilliseconds}ms"); } else if (outStatus == EnumOutStatus.分拣出) { + Stopwatch swFJOut = Stopwatch.StartNew(); + if (input.distaskCodes?.Count > 0) { List osCodes = input.distaskCodes.Adapt>(); @@ -962,6 +970,13 @@ namespace Tnb.WarehouseMgr } int row = await _db.Updateable().SetColumns(it => new WmsCarryH { out_status = ((int)EnumOutStatus.正常).ToString() }).Where(it => input.carryIds.Contains(it.id)).ExecuteCommandAsync(); _ = await _db.Deleteable().Where(it => input.carryIds.Contains(it.carry_id)).ExecuteCommandAsync(); + + + swFJOut.Stop(); + + Logger.Information($"出库申请运行耗时{swFJOut.ElapsedMilliseconds}ms"); + + sw = Stopwatch.StartNew(); //载具移入 WmsOutstockH outStockH = await _db.Queryable().SingleAsync(it => it.id == input.requireId); VisualDevModelDataCrInput visulDevInput = new() @@ -980,12 +995,18 @@ namespace Tnb.WarehouseMgr } }; - await _wmsCarryMoveInStockService.CarryMoveIn(visulDevInput); + _ = _wmsCarryMoveInStockService.CarryMoveIn(visulDevInput); + + + Logger.Information($"载具移入耗时{sw.ElapsedMilliseconds}ms"); + + await _db.Ado.CommitTranAsync(); + } } - await _db.Ado.CommitTranAsync(); + } } catch (Exception)