|
@@ -1,6 +1,5 @@
|
|
|
using Newtonsoft.Json;
|
|
|
using ServiceCenter.Extensions;
|
|
|
-using ServiceCenter.Logs;
|
|
|
using ServiceCenter.SqlSugars;
|
|
|
using System.ComponentModel;
|
|
|
using WCS.Core;
|
|
@@ -184,6 +183,22 @@ namespace WCS.WorkEngineering.Systems
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ ////判断本次周期应该优先取哪一侧的任务
|
|
|
+ //var warehouseCode = obj.Entity.GetFlag<string>("warehouseCode"); //获取对应的Key
|
|
|
+ //if (warehouseCode == default(string)) //如果获取结果为默认值表示系统初始化,系统初始化时默认优先北侧
|
|
|
+ //{
|
|
|
+ // warehouseCode = "N";
|
|
|
+ // obj.Entity.SetFlag<string>("warehouseCode", "N");
|
|
|
+ //}
|
|
|
+ //var quantity = obj.Entity.GetFlag<int>(warehouseCode); //获取当前侧执行的次数
|
|
|
+ //var maxQuantity = 3; //南北库的周期检查比为3:3
|
|
|
+ //if (quantity >= quantity) //如果当前侧检查周期大于等于最大检查周期,切换到另一侧
|
|
|
+ //{
|
|
|
+ // obj.Entity.SetFlag(warehouseCode, 0);
|
|
|
+ // warehouseCode = warehouseCode == "N" ? "S" : "N"; //如果是北侧切换到南侧 如果是南侧切换到北侧
|
|
|
+ // quantity = obj.Entity.GetFlag<int>(warehouseCode); //获取南库的侧执行的次数
|
|
|
+ //}
|
|
|
+
|
|
|
List<WCS_PalletizingRow> palletizingRowList = null;
|
|
|
WCS_Palletizing palletizing = null;
|
|
|
SqlSugarHelper.Do(_db =>
|
|
@@ -191,7 +206,7 @@ namespace WCS.WorkEngineering.Systems
|
|
|
var db = _db.Default;
|
|
|
//找到当前桁架所属所有还有层没结束的码垛记录信息,有对应托盘
|
|
|
var palletizingLsit = db.Queryable<WCS_Palletizing>().Includes(x => x.Layers, r => r.Rows, l => l.Locs)
|
|
|
- .Where(x => !x.Finish && x.DeviceCode == obj.Entity.Code)
|
|
|
+ .Where(x => !x.Finish && x.DeviceCode == obj.Entity.Code /*&& x.WarehouseCode.Contains(warehouseCode)*/)
|
|
|
.Where(x => x.Layers.Any(l => !l.Finish) && x.PalletizingStation != null).ToList();
|
|
|
//筛选出目标位置有光电的码垛记录信息
|
|
|
var devCode = palletizingLsit.Select(x => x.PalletizingStation);
|
|
@@ -203,6 +218,7 @@ namespace WCS.WorkEngineering.Systems
|
|
|
if (!devCode.Any())
|
|
|
{
|
|
|
World.Log($"无可用放货码垛位,请检查实际有货位置的光电是否正常");
|
|
|
+ //obj.Entity.SetFlag(warehouseCode, maxQuantity + 1); //当前侧无满足抓取条件的码垛信息直接进行切侧
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -224,6 +240,7 @@ namespace WCS.WorkEngineering.Systems
|
|
|
if (!cacheLines.Any())
|
|
|
{
|
|
|
World.Log($"无可用取货线体");
|
|
|
+ //obj.Entity.SetFlag(warehouseCode, maxQuantity + 1); //当前侧无满足抓取条件的码垛信息直接进行切侧
|
|
|
return;
|
|
|
}
|
|
|
World.Log($"物理可用取货线体:{JsonConvert.SerializeObject(pickUpDevices.Select(x => x.key).ToList())}");
|
|
@@ -239,6 +256,7 @@ namespace WCS.WorkEngineering.Systems
|
|
|
if (!palletizingLsit.Any())
|
|
|
{
|
|
|
World.Log($"没有可用取货点,码垛信息是否正常");
|
|
|
+ //obj.Entity.SetFlag(warehouseCode, maxQuantity + 1); //当前侧无满足抓取条件的码垛信息直接进行切侧
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -326,8 +344,6 @@ namespace WCS.WorkEngineering.Systems
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- rowList = rowList!.Take(1).ToList();
|
|
|
-
|
|
|
var palletizingRows = new List<WCS_PalletizingRow>();
|
|
|
|
|
|
foreach (var row in rowList)
|
|
@@ -362,9 +378,10 @@ namespace WCS.WorkEngineering.Systems
|
|
|
if (palletizingRowList == null || !palletizingRowList.Any())
|
|
|
{
|
|
|
World.Log($"没有可用任务");
|
|
|
+ //obj.Entity.SetFlag(warehouseCode, maxQuantity + 1); //当前侧无满足抓取条件的码垛信息直接进行切侧
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+ //obj.Entity.SetFlag(warehouseCode, quantity + 1); //满足抓取条件,当前侧的执行周期加一
|
|
|
for (var i = 0; i < palletizingRowList.Count; i++)
|
|
|
{
|
|
|
var palletizingRow = palletizingRowList[i];
|
|
@@ -533,4 +550,4 @@ namespace WCS.WorkEngineering.Systems
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
+}
|