|
@@ -165,6 +165,15 @@ namespace WCS.Service.Works.SRM
|
|
|
var dev1IsThereATask = dev1.Data2.Tasknum > 0 && dev1.Data2.Status.HasFlag(IstationStatus.光电状态) && !dev1.Data3.Status.HasFlag(StationStatus.运行状态位);
|
|
|
var dev2IsThereATask = dev2.Data2.Tasknum > 0 && dev2.Data2.Status.HasFlag(IstationStatus.光电状态) && !dev2.Data3.Status.HasFlag(StationStatus.运行状态位);
|
|
|
|
|
|
+ var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.STATUS < TaskStatus.堆垛机执行 && v.ID == st.Data2.Tasknum);
|
|
|
+ var taskCount = db.Default.Set<WCS_TASK>().Count(v => v.TaskGroupKey == task.TaskGroupKey);
|
|
|
+ return taskCount switch
|
|
|
+ {
|
|
|
+ 1 => dev1IsThereATask || dev2IsThereATask,
|
|
|
+ 2 => dev1IsThereATask && dev2IsThereATask,
|
|
|
+ _ => throw new WarnException($"同组任务最多为2,当前任务组有{taskCount}"),
|
|
|
+ };
|
|
|
+
|
|
|
//处理一工位
|
|
|
if (dev1IsThereATask)
|
|
|
{
|
|
@@ -172,7 +181,6 @@ namespace WCS.Service.Works.SRM
|
|
|
var task1 = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.STATUS < TaskStatus.堆垛机执行 && v.ID == dev1.Data2.Tasknum);
|
|
|
if (task1 == null)
|
|
|
throw new WarnException($"设备有光电有任务且不在运行状态,但WCS找不到任务{dev1.Data2.Tasknum}");
|
|
|
- if (!task1.TaskValid(dev1IsThereATask, dev2IsThereATask, db)) throw new WarnException("任务数量异常");
|
|
|
var loc = WMS.GetLocalIn(task1.WMSTASK, tunnel, dev1.Entity.CODE, Entity.WareCellForkNum.货叉1);
|
|
|
var locno = string.Format("{0}-{1}-{2}", loc.Row, loc.Colomn, loc.Layer);
|
|
|
var oldTask = task1.STATUS;
|
|
@@ -199,7 +207,6 @@ namespace WCS.Service.Works.SRM
|
|
|
var tunnel = dev2.Entity.ROUTES.First().NEXT.CODE;
|
|
|
var task2 = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.STATUS < TaskStatus.堆垛机执行 && v.ID == dev2.Data2.Tasknum);
|
|
|
if (task2 == null) throw new WarnException($"设备有光电有任务且不在运行状态,但WCS找不到任务{dev2.Data2.Tasknum}");
|
|
|
- if (!task2.TaskValid(dev1IsThereATask, dev2IsThereATask, db)) throw new WarnException("任务数量异常");
|
|
|
var loc = WMS.GetLocalIn(task2.WMSTASK, tunnel, dev2.Entity.CODE, Entity.WareCellForkNum.货叉2);
|
|
|
var locno = string.Format("{0}-{1}-{2}", loc.Row, loc.Colomn, loc.Layer);
|
|
|
var oldTask = task2.STATUS;
|