|
@@ -277,16 +277,17 @@ namespace WCS.Service.Works.Station
|
|
|
if (obj.Items.Any(v => v.Data2.VoucherNo != v.Data.VoucherNo)) throw new WarnException("等待执行任务");
|
|
|
if (obj.Items.Any(v => !v.Data3.Status.HasFlag(StationStatus.自动))) return;
|
|
|
if (obj.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位))) throw new WarnException("设备运行中");
|
|
|
- if (obj.Items.Any(v => !v.Data2.Status.HasFlag(IstationStatus.光电状态))) throw new DoException("没有光电");
|
|
|
|
|
|
var taskIds = new List<int>();
|
|
|
obj.Items.ToList().ForEach(dev => taskIds.Add(dev.Data2.Tasknum));
|
|
|
DB.Do(db =>
|
|
|
{
|
|
|
var taskList = db.Default.Set<WCS_TASK>().Where(v => taskIds.Contains(v.ID));
|
|
|
+ if (taskList.Count() == 0) return;
|
|
|
if (taskList == null) throw new WarnException($"WCS任务号{JsonConvert.SerializeObject(taskIds)}不存在");
|
|
|
if (taskList.Any(v => v.TYPE != TaskType.出库)) throw new WarnException("有任务的类型不是出库");
|
|
|
if (taskList.Any(v => v.AgvTask == 0)) throw new WarnException("人工出库任务,请手动搬走");
|
|
|
+
|
|
|
var agvtask = db.Default.Set<WCS_AGVTask>().Find(taskList.FirstOrDefault().AgvTask);
|
|
|
if (agvtask == null) throw new WarnException($"AGV任务号{taskList.FirstOrDefault().AgvTask}不存在");
|
|
|
if (taskList.Count() != db.Default.Set<WCS_TASK>().Count(v => v.TaskGroupKey == taskList.FirstOrDefault().TaskGroupKey && v.TYPE == TaskType.出库)) throw new WarnException("可执行任务数与实际任务数不符");
|
|
@@ -316,6 +317,7 @@ namespace WCS.Service.Works.Station
|
|
|
if (!obj.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.高位))) throw new WarnException("不在高位");
|
|
|
if (agvtask.Status < AGVTaskStatus.执行) throw new WarnException($"AGV状态错误-{agvtask.Status}");
|
|
|
if (obj.Items.Any(v => v.Data2.Status.HasFlag(IstationStatus.AGV取货完成信号))) throw new WarnException("任务清零信号未清除");
|
|
|
+ if (obj.Items.Any(v => !v.Data2.Status.HasFlag(IstationStatus.光电状态))) throw new DoException("没有光电");
|
|
|
|
|
|
agvtask.Status = agvtask.AGVStatus;
|
|
|
agvtask.UpdateTime = DateTime.Now;
|
|
@@ -324,7 +326,7 @@ namespace WCS.Service.Works.Station
|
|
|
else if (agvtask.AGVStatus == AGVTaskStatus.取放完成)
|
|
|
{
|
|
|
if (obj.Items.Any(v => v.Data2.Status.HasFlag(IstationStatus.AGV取货完成信号))) throw new WarnException("任务清零信号未清除");
|
|
|
- if (obj.Items.Any(v => !v.Data2.Status.HasFlag(IstationStatus.光电状态))) throw new WarnException("AGV取货完成后依然有光电信号");
|
|
|
+ if (obj.Items.Any(v => v.Data2.Status.HasFlag(IstationStatus.光电状态))) throw new WarnException("AGV取货完成后依然有光电信号");
|
|
|
if (agvtask.Status < AGVTaskStatus.请求_允许) throw new WarnException("AGV任务状态有误");
|
|
|
|
|
|
agvtask.Status = agvtask.AGVStatus;
|