|
@@ -228,11 +228,6 @@ namespace WCS.Service.Works.Station
|
|
|
//获取需要执行的设备信息
|
|
|
foreach (var dev in stationDeviceGroup.Items)
|
|
|
{
|
|
|
- if (!dev.Data3.Status.HasFlag(StationStatus.低位))
|
|
|
- {
|
|
|
- InfoLog.INFO_INFO($"{dev.Entity.CODE}--不在低位");
|
|
|
- continue;
|
|
|
- }
|
|
|
if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
|
|
|
{
|
|
|
InfoLog.INFO_INFO($"{dev.Entity.CODE}--没有光电");
|
|
@@ -270,35 +265,52 @@ namespace WCS.Service.Works.Station
|
|
|
|
|
|
var stationList = new List<FinishTaskList<WCS_TASK>>();
|
|
|
|
|
|
- //开始处理需要分配目标地址的设备
|
|
|
- foreach (var dev in devise)
|
|
|
+ var G1340 = Device.Find("1340", "1341").Select(v => v.Create<StationDevice>());
|
|
|
+ var G1343 = Device.Find("1343", "1344").Select(v => v.Create<StationDevice>());
|
|
|
+ List<StationDevice> station = new List<StationDevice>();
|
|
|
+ if (G1340.Any(v => v.Data3.Status.HasFlag(StationStatus.自动)
|
|
|
+ && !v.Data3.Status.HasFlag(StationStatus.运行状态位)
|
|
|
+ && !v.Data3.Status.HasFlag(StationStatus.有货状态位)
|
|
|
+ && !v.Data2.Status.HasFlag(IstationStatus.光电状态)
|
|
|
+ && v.Data2.Tasknum < 10000))
|
|
|
+ {
|
|
|
+ station.AddRange(G1340);
|
|
|
+ }
|
|
|
+ else if (G1343.Any(v => v.Data3.Status.HasFlag(StationStatus.自动)
|
|
|
+ && !v.Data3.Status.HasFlag(StationStatus.运行状态位)
|
|
|
+ && !v.Data3.Status.HasFlag(StationStatus.有货状态位)
|
|
|
+ && !v.Data2.Status.HasFlag(IstationStatus.光电状态)
|
|
|
+ && v.Data2.Tasknum < 10000))
|
|
|
{
|
|
|
- var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.ID == dev.Station.Data2.Tasknum) ?? throw new WarnException($"WCS无[{dev.Station.Data2.Tasknum}]任务信息");
|
|
|
+ station.AddRange(G1343);
|
|
|
+ }
|
|
|
+
|
|
|
+ //先判断1340是否可以放货
|
|
|
+ foreach (var dev in stationDeviceGroup.Items)
|
|
|
+ {
|
|
|
+ var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.ID == dev.Data2.Tasknum) ?? throw new WarnException($"WCS无[{dev.Data2.Tasknum}]任务信息");
|
|
|
var addNext = "";
|
|
|
- switch (dev.Station.Entity.CODE)
|
|
|
+ switch (dev.Entity.CODE)
|
|
|
{
|
|
|
- case "1340":
|
|
|
+ case "1337":
|
|
|
{
|
|
|
var station1343 = Device.Find("1343").Create<StationDevice>();
|
|
|
- addNext = "1343";
|
|
|
- if (!station1343.Data3.Status.HasFlag(StationStatus.自动) || station1343.Data2.Tasknum > 10000)
|
|
|
- addNext = "1340";
|
|
|
+ addNext = station.OrderBy(v => v.Entity.CODE).FirstOrDefault().Entity.CODE;
|
|
|
+
|
|
|
break;
|
|
|
}
|
|
|
- case "1341":
|
|
|
+ case "1338":
|
|
|
{
|
|
|
var station1344 = Device.Find("1344").Create<StationDevice>();
|
|
|
- addNext = "1344";
|
|
|
- if (!station1344.Data3.Status.HasFlag(StationStatus.自动) || station1344.Data2.Tasknum > 10000)
|
|
|
- addNext = "1341";
|
|
|
+ addNext = station.OrderByDescending(v => v.Entity.CODE).FirstOrDefault().Entity.CODE;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
task.ADDRNEXT = addNext;
|
|
|
task.CreateStatusLog(db, $"涂布出库分配AGV取货点{addNext}", this.GetType());
|
|
|
- finishTaskList.Add(new FinishTaskList<int>(task.ID, dev.Station));
|
|
|
- stationList.Add(new FinishTaskList<WCS_TASK>(task, dev.Station));
|
|
|
+ finishTaskList.Add(new FinishTaskList<int>(task.ID, dev.Entity.Create<StationDevice>()));
|
|
|
+ stationList.Add(new FinishTaskList<WCS_TASK>(task, dev.Entity.Create<StationDevice>()));
|
|
|
}
|
|
|
|
|
|
#region 校验两个地址是否一致
|
|
@@ -319,7 +331,7 @@ namespace WCS.Service.Works.Station
|
|
|
default:
|
|
|
{
|
|
|
var devise1 = stationList.Select(v => v.Station);
|
|
|
- foreach (var dev in devise1)
|
|
|
+ foreach (var dev in devise1)
|
|
|
{
|
|
|
if (!dev.Data3.Status.HasFlag(StationStatus.自动)) throw new WarnException($"{dev.Entity.CODE}--不是自动");
|
|
|
if (dev.Data2.Tasknum > 10000) throw new WarnException($"{dev.Entity.CODE}--已有任务");
|
|
@@ -356,7 +368,7 @@ namespace WCS.Service.Works.Station
|
|
|
|
|
|
protected override bool SelectDevice(WCS_DEVICE dev)
|
|
|
{
|
|
|
- return dev.CODE == "G1340";
|
|
|
+ return dev.CODE == "G1337";
|
|
|
}
|
|
|
}
|
|
|
|