原材料调拨入库
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user