外协提升二楼入库、erp包材入库同步、erp重发调拨出库处理、电梯优化
This commit is contained in:
@@ -138,6 +138,14 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
get { return _db_ElevatorTaskExceptionHandles; }
|
||||
}
|
||||
/// <summary>
|
||||
/// WCS请求
|
||||
/// </summary>
|
||||
public Dictionary<string, SemaphoreSlim> s_elevatortaskWCSRequestDic
|
||||
{
|
||||
get { return _s_elevatortaskWCSRequestDic; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
public WareHouseService(ISqlSugarRepository<WmsInstockH> repository, IDictionaryDataService dictionaryDataService, StackExRedisHelper redisData,
|
||||
@@ -429,6 +437,17 @@ namespace Tnb.WarehouseMgr
|
||||
, WmsWareHouseConst.Floor1WXSGWOutstockStation3 };
|
||||
}
|
||||
|
||||
///// <summary>
|
||||
///// 是否为二楼(一楼外协三存位送上来)入暂存仓起点
|
||||
///// </summary>
|
||||
///// <param name="location_id"></param>
|
||||
///// <returns></returns>
|
||||
//public string[] GetFloor2WX2ZCCStartLocation()
|
||||
//{
|
||||
// return new string[3] { WmsWareHouseConst.Floor1WXSGWOutstockStation1 , WmsWareHouseConst.Floor1WXSGWOutstockStation2
|
||||
// , WmsWareHouseConst.Floor1WXSGWOutstockStation3 };
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// 出库策略-销售出库下发
|
||||
/// </summary>
|
||||
@@ -1441,11 +1460,46 @@ namespace Tnb.WarehouseMgr
|
||||
!it.area_code.Contains("ELE", StringComparison.OrdinalIgnoreCase))
|
||||
.ToList();
|
||||
|
||||
#region 三楼三四号梯如果与判断一托下有冲突
|
||||
if (s_elevatortaskWCSRequestDic.Count > 0)
|
||||
{
|
||||
for (int index_agvElevatorTasks = 0; index_agvElevatorTasks < agvElevatorTasks.Count; index_agvElevatorTasks++)
|
||||
{
|
||||
WmsPretaskH wmsPretaskH = agvElevatorTasks[index_agvElevatorTasks];
|
||||
string area_code = "";
|
||||
// 找到电梯任务的电梯区域
|
||||
if (wmsPretaskH.start_floor == "3" && wmsPretaskH.end_floor == "3")
|
||||
{
|
||||
if (wmsPretaskH.endlocation_code == "DT-3-3")
|
||||
{
|
||||
area_code = "ELE03";
|
||||
}
|
||||
else if (wmsPretaskH.endlocation_code == "DT-3-4") { area_code = "ELE04"; }
|
||||
}
|
||||
// 如果不是三楼三四号梯出货
|
||||
if (string.IsNullOrEmpty(area_code))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
SemaphoreSlim s_elevatortaskWCSRequest = s_elevatortaskWCSRequestDic[area_code];
|
||||
if (s_elevatortaskWCSRequest.CurrentCount == 0)
|
||||
{
|
||||
Logger.Information($"【GenTaskExecute】 获取到AGV到电梯{area_code}的预任务{wmsPretaskH.bill_code}正在执行一托下判断,此时不下发任务");
|
||||
agvElevatorTasks.RemoveAt(index_agvElevatorTasks);
|
||||
index_agvElevatorTasks--;
|
||||
}
|
||||
else
|
||||
{
|
||||
Logger.Information($"【GenTaskExecute】AGV到电梯{area_code}的预任务{wmsPretaskH.bill_code}没有在执行一托下判断,正常下发任务");
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
var elePreTasks = preTasks.Where(it => it.area_code.Contains("ELE", StringComparison.OrdinalIgnoreCase)).ToList();
|
||||
var normalPreTasks = preTasks.Where(it => it.area_code != "B" && !agvElevatorTasks.Concat(elePreTasks).Select(x => x.endlocation_code).Contains(it.endlocation_code)).ToList();
|
||||
|
||||
|
||||
//Logger.Information("【GenTaskExecute】 电梯预任务elePreTasks:" + JsonConvert.SerializeObject(elePreTasks));
|
||||
//Logger.Information("【GenTaskExecute】 AGV/CTU/KIVA预任务normalPreTasks:" + JsonConvert.SerializeObject(normalPreTasks));
|
||||
//Logger.Information("【GenTaskExecute】 AGV电梯预任务agvElevatorTasks:" + JsonConvert.SerializeObject(agvElevatorTasks));
|
||||
@@ -2259,6 +2313,11 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
}
|
||||
catch { throw; }
|
||||
finally
|
||||
{
|
||||
SemaphoreSlim s_elevatortaskWCSRequest = s_elevatortaskWCSRequestDic[disTask.area_code];
|
||||
s_elevatortaskWCSRequest.Release();
|
||||
}
|
||||
|
||||
|
||||
try
|
||||
|
||||
Reference in New Issue
Block a user