原材料调拨入库
This commit is contained in:
@@ -117,6 +117,8 @@ namespace Tnb.ProductionMgr
|
||||
public SemaphoreSlim s_taskF2KTPsupplement = new(1);
|
||||
public SemaphoreSlim s_taskYCLInternalTransfer = new(1);
|
||||
|
||||
public SemaphoreSlim s_elevatortask = new(1);
|
||||
|
||||
private StackExRedisHelper _redisData;
|
||||
private readonly IPrdInstockService _prdInstockService;
|
||||
private readonly ISqlSugarRepository<RedisReadConfig> _repository;
|
||||
@@ -1909,7 +1911,9 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
{
|
||||
try
|
||||
{
|
||||
await _wareHouseService._s_GenTaskExecute.WaitAsync();
|
||||
if (s_elevatortask.CurrentCount == 0)
|
||||
return;
|
||||
await s_elevatortask.WaitAsync();
|
||||
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
|
||||
&& 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
|
||||
{
|
||||
LoggerElevatorTask.LogError($"电梯 {e.elevator_code} 待执行的电梯任务数异常 目前是{group.Count()} 超过了两托");
|
||||
LoggerElevatorTask.LogError($"【ElevatorTaskExceptionHandle】电梯 {e.elevator_code} 待执行的电梯任务数异常 目前是{group.Count()} 超过了两托");
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1990,7 +1994,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
}
|
||||
finally
|
||||
{
|
||||
_wareHouseService._s_GenTaskExecute.Release();
|
||||
s_elevatortask.Release();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -104,8 +104,6 @@ public partial class WmsTransferInstockD : BaseEntity<string>
|
||||
/// </summary>
|
||||
public string? pi_code { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 库存地点
|
||||
/// </summary>
|
||||
|
||||
@@ -75,8 +75,6 @@ public partial class WmsTransferInstockH : BaseEntity<string>
|
||||
/// </summary>
|
||||
public string? status { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 出库组织id
|
||||
/// </summary>
|
||||
|
||||
@@ -747,9 +747,9 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
string number = devName.Replace("Elevator", "");
|
||||
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();
|
||||
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)
|
||||
{
|
||||
await _db.Updateable<WmsElevatorH>().SetColumns(r => new WmsElevatorH
|
||||
|
||||
@@ -2436,33 +2436,34 @@ namespace Tnb.WarehouseMgr
|
||||
public async Task TaskExecuteAfter(TaskExecuteAfterUpInput input)
|
||||
{
|
||||
//更新任务执行表单据状态
|
||||
var db = _db.CopyNew();
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
Logger.Error("设备取返回操作失败", ex);
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
await db.Ado.RollbackTranAsync();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user