原材料调拨入库

This commit is contained in:
2024-08-20 17:58:28 +08:00
parent cac75ad03f
commit b28ffc9dea
5 changed files with 18 additions and 17 deletions

View File

@@ -117,6 +117,8 @@ namespace Tnb.ProductionMgr
public SemaphoreSlim s_taskF2KTPsupplement = new(1); public SemaphoreSlim s_taskF2KTPsupplement = new(1);
public SemaphoreSlim s_taskYCLInternalTransfer = new(1); public SemaphoreSlim s_taskYCLInternalTransfer = new(1);
public SemaphoreSlim s_elevatortask = new(1);
private StackExRedisHelper _redisData; private StackExRedisHelper _redisData;
private readonly IPrdInstockService _prdInstockService; private readonly IPrdInstockService _prdInstockService;
private readonly ISqlSugarRepository<RedisReadConfig> _repository; private readonly ISqlSugarRepository<RedisReadConfig> _repository;
@@ -1909,7 +1911,9 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
{ {
try try
{ {
await _wareHouseService._s_GenTaskExecute.WaitAsync(); if (s_elevatortask.CurrentCount == 0)
return;
await s_elevatortask.WaitAsync();
List<WmsDistaskH> elevatorTasks = db_ElevatorTaskExceptionHandle.Queryable<WmsDistaskH>() List<WmsDistaskH> elevatorTasks = db_ElevatorTaskExceptionHandle.Queryable<WmsDistaskH>()
.Where(r => r.startlocation_code.Contains("DT") && r.endlocation_code.Contains("DT") && r.act_start_date == null && r.act_end_date == null .Where(r => r.startlocation_code.Contains("DT") && r.endlocation_code.Contains("DT") && r.act_start_date == null && r.act_end_date == null
&& r.status != WmsWareHouseConst.TASK_BILL_STATUS_CANCEL_ID && r.status != WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID).ToList(); && r.status != WmsWareHouseConst.TASK_BILL_STATUS_CANCEL_ID && r.status != WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID).ToList();
@@ -1965,7 +1969,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
} }
else else
{ {
LoggerElevatorTask.LogError($"电梯 {e.elevator_code} 待执行的电梯任务数异常 目前是{group.Count()} 超过了两托"); LoggerElevatorTask.LogError($"【ElevatorTaskExceptionHandle】电梯 {e.elevator_code} 待执行的电梯任务数异常 目前是{group.Count()} 超过了两托");
} }
} }
else else
@@ -1990,7 +1994,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
} }
finally finally
{ {
_wareHouseService._s_GenTaskExecute.Release(); s_elevatortask.Release();
} }
} }

View File

@@ -104,8 +104,6 @@ public partial class WmsTransferInstockD : BaseEntity<string>
    /// </summary>     /// </summary>
    public string? pi_code { get; set; }     public string? pi_code { get; set; }
/// <summary> /// <summary>
/// 库存地点 /// 库存地点
/// </summary> /// </summary>

View File

@@ -75,8 +75,6 @@ public partial class WmsTransferInstockH : BaseEntity<string>
    /// </summary>     /// </summary>
    public string? status { get; set; }     public string? status { get; set; }
/// <summary> /// <summary>
/// 出库组织id /// 出库组织id
/// </summary> /// </summary>

View File

@@ -747,9 +747,9 @@ namespace Tnb.WarehouseMgr
{ {
string number = devName.Replace("Elevator", ""); string number = devName.Replace("Elevator", "");
List<WmsDistaskH> elevatorTasks = _db.Queryable<WmsDistaskH>() List<WmsDistaskH> elevatorTasks = _db.Queryable<WmsDistaskH>()
.Where(r => r.startlocation_code.Contains($"DT-1-{number}") && r.endlocation_code.Contains($"RC") && r.act_start_date == null && r.act_end_date == null .Where(r => r.startlocation_code.Contains($"DT-1-{number}") && r.end_floor == 1 && r.start_floor == 1 && r.act_start_date == null && r.act_end_date == null
&& r.status != WmsWareHouseConst.TASK_BILL_STATUS_CANCEL_ID && r.status != WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID).ToList(); && r.status != WmsWareHouseConst.TASK_BILL_STATUS_CANCEL_ID && r.status != WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID).ToList();
Logger.Information($"【TaskCallback】{devName.Match(@"\d+")}#梯 仍有未取货任务{elevatorTasks}条 {string.Join(',', elevatorTasks.Select(r => r.bill_code))}"); Logger.Information($"【TaskCallback】{devName.Match(@"\d+")}#梯 仍有未取货任务{elevatorTasks.Count}条 {string.Join(',', elevatorTasks.Select(r => r.bill_code))}");
if (elevatorTasks.Count == 0) if (elevatorTasks.Count == 0)
{ {
await _db.Updateable<WmsElevatorH>().SetColumns(r => new WmsElevatorH await _db.Updateable<WmsElevatorH>().SetColumns(r => new WmsElevatorH

View File

@@ -2436,33 +2436,34 @@ namespace Tnb.WarehouseMgr
public async Task TaskExecuteAfter(TaskExecuteAfterUpInput input) public async Task TaskExecuteAfter(TaskExecuteAfterUpInput input)
{ {
//更新任务执行表单据状态 //更新任务执行表单据状态
var db = _db.CopyNew();
try try
{ {
await _db.Ado.BeginTranAsync();
_ = await _db.Updateable<WmsDistaskH>().SetColumns(it => new WmsDistaskH { status = WmsWareHouseConst.TASK_BILL_STATUS_RUNING_ID, act_start_date = DateTime.Now }).Where(it => input.disTaskIds.Contains(it.id)).ExecuteCommandAsync(); await db.Ado.BeginTranAsync();
_ = await db.Updateable<WmsDistaskH>().SetColumns(it => new WmsDistaskH { status = WmsWareHouseConst.TASK_BILL_STATUS_RUNING_ID, act_start_date = DateTime.Now }).Where(it => input.disTaskIds.Contains(it.id)).ExecuteCommandAsync();
//清空载具库位数据 //清空载具库位数据
var carryAndLocIds = await _db.Queryable<WmsDistaskH>().Where(it => input.disTaskIds.Contains(it.id)).Select(it => new { it.carry_id, it.startlocation_id }).ToListAsync(); var carryAndLocIds = await db.Queryable<WmsDistaskH>().Where(it => input.disTaskIds.Contains(it.id)).Select(it => new { it.carry_id, it.startlocation_id }).ToListAsync();
if (carryAndLocIds?.Count > 0) if (carryAndLocIds?.Count > 0)
{ {
List<string> carryIds = carryAndLocIds.Select(x => x.carry_id).ToList(); List<string> carryIds = carryAndLocIds.Select(x => x.carry_id).ToList();
_ = await _db.Updateable<WmsCarryH>().SetColumns(it => new WmsCarryH { location_id = null, location_code = null }).Where(it => carryIds.Contains(it.id)).ExecuteCommandAsync(); _ = await db.Updateable<WmsCarryH>().SetColumns(it => new WmsCarryH { location_id = null, location_code = null }).Where(it => carryIds.Contains(it.id)).ExecuteCommandAsync();
} }
//更新起始库位,状态改为空闲、锁定状态,未锁定 //更新起始库位,状态改为空闲、锁定状态,未锁定
if (carryAndLocIds?.Count > 0) if (carryAndLocIds?.Count > 0)
{ {
List<string> startLocationIds = carryAndLocIds.Select(x => x.startlocation_id).ToList(); List<string> startLocationIds = carryAndLocIds.Select(x => x.startlocation_id).ToList();
_ = await _db.Updateable<BasLocation>().SetColumns(it => new BasLocation { is_use = ((int)EnumCarryStatus.).ToString(), is_lock = 0 }).Where(it => startLocationIds.Contains(it.id)).ExecuteCommandAsync(); _ = await db.Updateable<BasLocation>().SetColumns(it => new BasLocation { is_use = ((int)EnumCarryStatus.).ToString(), is_lock = 0 }).Where(it => startLocationIds.Contains(it.id)).ExecuteCommandAsync();
} }
await _db.Ado.CommitTranAsync(); await db.Ado.CommitTranAsync();
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Error("设备取返回操作失败", ex); Logger.Error("设备取返回操作失败", ex);
await _db.Ado.RollbackTranAsync(); await db.Ado.RollbackTranAsync();
} }
} }
/// <summary> /// <summary>