|
|
@@ -12,6 +12,7 @@ using WCS.Core.Redis;
|
|
|
using WCS.Entity;
|
|
|
using WCS.Entity.Protocol;
|
|
|
using WCS.Entity.Protocol.RGV;
|
|
|
+using WCS.Entity.Protocol.Station;
|
|
|
using WCS.Service.Helpers;
|
|
|
using LogHelper = WCS.Service.Helpers.LogHelper;
|
|
|
using TaskStatus = WCS.Entity.TaskStatus;
|
|
|
@@ -365,13 +366,13 @@ namespace WCS.Service.Extensions
|
|
|
/// <param name="type">给当前设备组下发任务时需要的请求</param>
|
|
|
/// <returns>true:不满足执行条件需要进行停止执行 false:表示满足条件不需要停止执行 </returns>
|
|
|
/// <exception cref="Exception"></exception>
|
|
|
- public void WhetherToExecute(IstationRequest type = IstationRequest.无)
|
|
|
+ public void WhetherToExecute(IstationRequest type = IstationRequest.None)
|
|
|
{
|
|
|
foreach (var item in Items)
|
|
|
{
|
|
|
- if (item.Data.VoucherNo != item.Data2.VoucherNo) throw new WarnException($"等待{item.Entity.CODE}执行任务{item.Data.Tasknum},凭证号不一致");
|
|
|
- if (item.Data3.Status.HasFlag(StationStatus.运行状态位)) throw new DoException($"{item.Entity.CODE}运行中");
|
|
|
- if (!item.Data2.Status.HasFlag(IstationStatus.光电状态)) throw new DoException($"[{item.Entity.CODE}]无光电");
|
|
|
+ if (item.Data.VoucherNo != item.Data2.VoucherNo) throw new WarnException($"等待{item.Entity.CODE}执行任务{item.Data.TaskNumber},凭证号不一致");
|
|
|
+ if (item.Data2.Status.HasFlag(IstationStatus.Run)) throw new DoException($"{item.Entity.CODE}运行中");
|
|
|
+ if (!item.Data2.Status.HasFlag(IstationStatus.PhStatus)) throw new DoException($"[{item.Entity.CODE}]无光电");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -381,8 +382,8 @@ namespace WCS.Service.Extensions
|
|
|
/// <returns></returns>
|
|
|
public List<Device<IStation520, IStation521, IStation523>> RGVGetTaskedDevice()
|
|
|
{
|
|
|
- var a = Items.Where(v => v.Data2.Status.HasFlag(IstationStatus.光电状态) && v.Data2.Tasknum > 10000)
|
|
|
- .Where(v => v.Entity.CODE.ToShort() != v.Data2.Goodsend && v.Data2.Goodsend != 0)
|
|
|
+ var a = Items.Where(v => v.Data2.Status.HasFlag(IstationStatus.PhStatus) && v.Data2.TaskNumber > 10000)
|
|
|
+ .Where(v => v.Entity.CODE.ToShort() != v.Data2.GoodsEnd && v.Data2.GoodsEnd != 0)
|
|
|
.ToList();
|
|
|
return a.Count == 0 ? null : a;
|
|
|
}
|
|
|
@@ -396,8 +397,7 @@ namespace WCS.Service.Extensions
|
|
|
if (Entity.CODE is "G2" or "G3") return true;
|
|
|
var dCount = Device.Where(v => v.CODE is "G1" or "G1340" or "G1337").Select(v => v.Create<StationDeviceGroup>()).Count(v =>
|
|
|
{
|
|
|
- var count = v.Items.Count(v => !v.Data3.Status.HasFlag(StationStatus.运行状态位) && !v.Data2.Status.HasFlag(IstationStatus.光电状态) && v.Data2.Tasknum < 10000
|
|
|
- && v.Data3.Status.HasFlag(StationStatus.自动));
|
|
|
+ var count = v.Items.Count(v => !v.Data2.Status.HasFlag(IstationStatus.Run) && !v.Data2.Status.HasFlag(IstationStatus.PhStatus) && v.Data2.TaskNumber < 10000);
|
|
|
return count == 2 ? true : false;
|
|
|
});
|
|
|
var rCount = rgvDevice.RGVList.Count(v => v.Data.DestPosition_1 == 1);
|
|
|
@@ -415,17 +415,17 @@ namespace WCS.Service.Extensions
|
|
|
//获取需要执行的设备信息
|
|
|
foreach (var dev in Items)
|
|
|
{
|
|
|
- if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
|
|
|
+ if (!dev.Data2.Status.HasFlag(IstationStatus.PhStatus))
|
|
|
{
|
|
|
InfoLog.INFO_INFO($"{dev.Entity.CODE}--没有光电");
|
|
|
continue;
|
|
|
}
|
|
|
- if (dev.Data2.Request != IstationRequest.扫码入库)
|
|
|
+ if (dev.Data2.Request != IstationRequest.Request)
|
|
|
{
|
|
|
InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电没有扫码入库请求--1", Entity.CODE);
|
|
|
continue;
|
|
|
};
|
|
|
- if (dev.Data2.Tasknum > 10000)
|
|
|
+ if (dev.Data2.TaskNumber > 10000)
|
|
|
{
|
|
|
InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电有请求,但已有任务号", Entity.CODE);
|
|
|
continue;
|
|
|
@@ -455,17 +455,17 @@ namespace WCS.Service.Extensions
|
|
|
//获取需要执行的设备信息
|
|
|
foreach (var dev in Items)
|
|
|
{
|
|
|
- if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
|
|
|
+ if (!dev.Data2.Status.HasFlag(IstationStatus.PhStatus))
|
|
|
{
|
|
|
InfoLog.INFO_INFO($"{dev.Entity.CODE}--没有光电");
|
|
|
continue;
|
|
|
}
|
|
|
- if (dev.Data2.Request != IstationRequest.请求分配目标地址)
|
|
|
+ if (dev.Data2.Request != IstationRequest.Request)
|
|
|
{
|
|
|
InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电没有分配目标地址请求--2", Entity.CODE);
|
|
|
continue;
|
|
|
};
|
|
|
- if (dev.Data2.Tasknum < 10000)
|
|
|
+ if (dev.Data2.TaskNumber < 10000)
|
|
|
{
|
|
|
InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电有请求没有任务号", Entity.CODE);
|
|
|
continue;
|
|
|
@@ -529,8 +529,8 @@ namespace WCS.Service.Extensions
|
|
|
throw new WarnException("已有RGV执行中");
|
|
|
foreach (var item in Items)
|
|
|
{
|
|
|
- if (item.Data3.Status.HasFlag(StationStatus.运行状态位)) return false;
|
|
|
- if (!item.Data2.Status.HasFlag(IstationStatus.光电状态)) return false;
|
|
|
+ if (item.Data2.Status.HasFlag(IstationStatus.Run)) return false;
|
|
|
+ if (!item.Data2.Status.HasFlag(IstationStatus.PhStatus)) return false;
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
@@ -562,40 +562,42 @@ namespace WCS.Service.Extensions
|
|
|
/// <param name="type">给当前设备组下发任务时需要的请求</param>
|
|
|
/// <returns>true:不满足执行条件需要进行停止执行 false:表示满足条件不需要停止执行 </returns>
|
|
|
/// <exception cref="Exception"></exception>
|
|
|
- public void WhetherToExecute(IstationRequest type = IstationRequest.无)
|
|
|
+ public void WhetherToExecute(IstationRequest type = IstationRequest.None)
|
|
|
{
|
|
|
//正在运行
|
|
|
- if (Data3.Status.HasFlag(StationStatus.运行状态位)) throw new DoException("运行中");
|
|
|
+ if (Data2.Status.HasFlag(IstationStatus.Run)) throw new DoException("运行中");
|
|
|
//上一次的任务还未执行
|
|
|
if (Data.VoucherNo != Data2.VoucherNo)
|
|
|
- throw new WarnException($"等待任务[{Data2.Tasknum}]执行");
|
|
|
+ throw new WarnException($"等待任务[{Data2.TaskNumber}]执行");
|
|
|
//没有光电
|
|
|
- if (!Data2.Status.HasFlag(IstationStatus.光电状态)) throw new DoException("无光电"); ;
|
|
|
+ if (!Data2.Status.HasFlag(IstationStatus.PhStatus)) throw new DoException("无光电"); ;
|
|
|
//没有任务号
|
|
|
switch (type)
|
|
|
{
|
|
|
- case IstationRequest.无:
|
|
|
- if (Data2.Tasknum < 10000 && Data.Tasknum < 10000)
|
|
|
+ case IstationRequest.None:
|
|
|
+ if (Data2.TaskNumber < 10000 && Data.TaskNumber < 10000)
|
|
|
throw new WarnException($"设备无任务");
|
|
|
break;
|
|
|
|
|
|
- case IstationRequest.扫码入库:
|
|
|
- if (Data2.Tasknum > 10000 && Data.Tasknum > 10000)
|
|
|
+ case IstationRequest.Request:
|
|
|
+ if (Data2.TaskNumber > 10000 && Data.TaskNumber > 10000)
|
|
|
throw new WarnException($"设备已有任务任务");
|
|
|
break;
|
|
|
|
|
|
- case IstationRequest.堆垛机放货完成请求目标地址:
|
|
|
- if (Data2.Tasknum < 10000 && Data.Tasknum < 10000)
|
|
|
- throw new WarnException($"设备无任务信息");
|
|
|
- break;
|
|
|
-
|
|
|
- case IstationRequest.请求分配目标地址:
|
|
|
- if (Data2.Tasknum < 10000 && Data.Tasknum < 10000)
|
|
|
- throw new WarnException($"设备无任务信息");
|
|
|
- break;
|
|
|
+ //case IstationRequest.堆垛机放货完成请求目标地址:
|
|
|
+ // if (Data2.Tasknum < 10000 && Data.Tasknum < 10000)
|
|
|
+ // throw new WarnException($"设备无任务信息");
|
|
|
+ // break;
|
|
|
+
|
|
|
+ //case IstationRequest.请求分配目标地址:
|
|
|
+ // if (Data2.Tasknum < 10000 && Data.Tasknum < 10000)
|
|
|
+ // throw new WarnException($"设备无任务信息");
|
|
|
+ // break;
|
|
|
+ default:
|
|
|
+ throw new ArgumentOutOfRangeException(nameof(type), type, null);
|
|
|
}
|
|
|
//没有请求
|
|
|
- if (type != IstationRequest.无 && Data2.Request != type)
|
|
|
+ if (type != IstationRequest.None && Data2.Request != type)
|
|
|
throw new WarnException($"有光电无{type}请求");
|
|
|
}
|
|
|
|