出库申请,分拣出时业务回更,调用载具移入不await

This commit is contained in:
yang.lee
2023-11-14 10:28:09 +08:00
parent 8e3f2ec579
commit cd7d12a301
2 changed files with 35 additions and 16 deletions

View File

@@ -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>() == EnumSysStatus. && tuple.runStatus.ToEnum<EnumRunStatus>() == EnumRunStatus.)
{
Log.Information($"disTask.require_id={disTask.require_id}");
Logger.Information($"disTask.require_id={disTask.require_id}");
List<string> 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;
}

View File

@@ -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
/// </summary>
[OverideVisualDev(ModuleConsts.MODULE_WMSOUTSTOCK_ID)]
[ServiceModule(BizTypeId)]
public class WmsOutStockService : BaseWareHouseService, IWmsOutStockService
public class WmsOutStockService : BaseWareHouseService<WmsOutStockService>, 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<dynamic> OutStockApplyFor(VisualDevModelDataCrInput input)
@@ -133,16 +135,16 @@ namespace Tnb.WarehouseMgr
List<string> carryIds = new();
var mapKeys = new List<string> { "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<List<WmsOutstockD>>();
}
else
else
{
outStockDList = input.data["details"].ToObject<List<WmsOutstockD>>();
}
@@ -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<WmsPointH> points = await _wareHouseService.PathAlgorithmsEle(sPoint.id, ePoint.id, ele);
List<WmsPointH> 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<EnumOutStatus>();
if (outStatus == EnumOutStatus.)
{
Stopwatch swAllOut = Stopwatch.StartNew();
//当前载具对应的所有条码插入
List<WmsCarryCode> carryCodes = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == carryId).ToListAsync();
List<WmsOutstockCode> outStockCodes = carryCodes.Adapt<List<WmsOutstockCode>>();
@@ -872,10 +876,14 @@ namespace Tnb.WarehouseMgr
//如果没有完成,修改为工作中
_ = await _db.Updateable<WmsOutstockH>().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<WmsOutstockCode> osCodes = input.distaskCodes.Adapt<List<WmsOutstockCode>>();
@@ -962,6 +970,13 @@ namespace Tnb.WarehouseMgr
}
int row = await _db.Updateable<WmsCarryH>().SetColumns(it => new WmsCarryH { out_status = ((int)EnumOutStatus.).ToString() }).Where(it => input.carryIds.Contains(it.id)).ExecuteCommandAsync();
_ = await _db.Deleteable<WmsCarryMat>().Where(it => input.carryIds.Contains(it.carry_id)).ExecuteCommandAsync();
swFJOut.Stop();
Logger.Information($"出库申请运行耗时{swFJOut.ElapsedMilliseconds}ms");
sw = Stopwatch.StartNew();
//载具移入
WmsOutstockH outStockH = await _db.Queryable<WmsOutstockH>().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)