|
@@ -17,11 +17,11 @@ using DeviceFlags = WCS.WorkEngineering.Extensions.DeviceFlags;
|
|
|
namespace WCS.WorkEngineering.Systems
|
|
|
{
|
|
|
/// <summary>
|
|
|
- /// 扫码入库
|
|
|
+ /// 库尾入库
|
|
|
/// </summary>
|
|
|
[BelongTo(typeof(MainWorld))]
|
|
|
- [Description("扫码入库")]
|
|
|
- public class 扫码入库 : DeviceSystem<Device<IStation520, IStation521, IStation523, IStation91, IBCR81>>
|
|
|
+ [Description("库尾入库")]
|
|
|
+ public class 库尾入库 : DeviceSystem<Device<IStation520, IStation521, IStation523, IStation91, IBCR81>>
|
|
|
{
|
|
|
protected override bool ParallelDo => true;
|
|
|
|
|
@@ -30,7 +30,7 @@ namespace WCS.WorkEngineering.Systems
|
|
|
private List<Station> devs = new List<Station>();
|
|
|
private List<SRM> srms = new List<SRM>();
|
|
|
|
|
|
- public 扫码入库()
|
|
|
+ public 库尾入库()
|
|
|
{
|
|
|
devs = Device.All.Where(v => v.HasFlag(DeviceFlags.入库)).Select(v => new Station(v, this.World)).ToList();
|
|
|
srms = Device.All.Where(v => v.HasProtocol(typeof(ISRM520))).Select(v => new SRM(v, this.World)).ToList();
|
|
@@ -38,15 +38,12 @@ namespace WCS.WorkEngineering.Systems
|
|
|
|
|
|
public override void Do(Device<IStation520, IStation521, IStation523, IStation91, IBCR81> obj)
|
|
|
{
|
|
|
-
|
|
|
-
|
|
|
obj.入库站点是否被禁止();
|
|
|
obj.入库站点是否满足执行条件();
|
|
|
|
|
|
if (obj.Data2.Request != 1.ToShort()) throw new KnownException("无请求", LogLevelEnum.Mid);
|
|
|
if (!obj.Data3.Status.HasFlag(StationStatus.OT_Status)) throw new KnownException("无光电", LogLevelEnum.Mid);
|
|
|
|
|
|
-
|
|
|
//开始读取条码
|
|
|
var bcr = obj.Data5.GetBCRCode();
|
|
|
WCS_TaskInfo task = null;
|
|
@@ -77,13 +74,7 @@ namespace WCS.WorkEngineering.Systems
|
|
|
//筛选出可用站台c
|
|
|
stations = stations.Where(v => v.Data.VoucherNo == v.Data2.VoucherNo && v.Data3.Status.HasFlag(StationStatus.Auto))
|
|
|
.Where(v => !v.Data3.Status.HasFlag(StationStatus.PH_Status) && !v.Data3.Status.HasFlag(StationStatus.OT_Status))
|
|
|
- .Where(v => !v.Data3.Status.HasFlag(StationStatus.Run)).ToList(); // 筛选出可用站台
|
|
|
- var count = stations.Where(v => v.Data.VoucherNo == v.Data2.VoucherNo && v.Data3.Status.HasFlag(StationStatus.Auto))
|
|
|
- .Where(v => !v.Data3.Status.HasFlag(StationStatus.PH_Status) && !v.Data3.Status.HasFlag(StationStatus.OT_Status))
|
|
|
- .Where(v => !v.Data3.Status.HasFlag(StationStatus.Run)).Count();
|
|
|
- var count1 = stations.Where(v => v.Data.VoucherNo == v.Data2.VoucherNo && v.Data3.Status.HasFlag(StationStatus.Auto))
|
|
|
- .Where(v => !v.Data3.Status.HasFlag(StationStatus.PH_Status) && !v.Data3.Status.HasFlag(StationStatus.OT_Status))
|
|
|
- .Where(v => !v.Data3.Status.HasFlag(StationStatus.Run)).ToArray();
|
|
|
+ .Where(v => !v.Data3.Status.HasFlag(StationStatus.Run)).ToList(); // 筛选出可用站台
|
|
|
if (stations == null)
|
|
|
{
|
|
|
throw new KnownException($"{obj.Entity.Code}无可用放货站台", LogLevelEnum.High);
|
|
@@ -98,7 +89,7 @@ namespace WCS.WorkEngineering.Systems
|
|
|
.MinBy(v => tunnelNo.IndexOf(v.Entity.Code)); //按照巷道优先级排序
|
|
|
if (srm == null)
|
|
|
{
|
|
|
- throw new Exception($"任务{taskInfo.ID}无可用堆垛机{count}{count1[0].Entity.Code}");
|
|
|
+ throw new Exception($"任务{taskInfo.ID}无可用堆垛机");
|
|
|
}
|
|
|
//筛选出堆垛机的取货站台
|
|
|
var nextPos = stations.FirstOrDefault(v => v.Entity.Sources.Where(t => t.IsTunnel()).Select(t => t.Sources).SelectMany(v => v) //获取所有巷道
|
|
@@ -129,22 +120,15 @@ namespace WCS.WorkEngineering.Systems
|
|
|
taskInfo.AddWCS_TASK_DTL(_db, obj.Entity.Code, taskInfo.AddrNext, $"完成巷道分配,分配至{taskInfo.Device}");
|
|
|
taskInfo.updateRedisHash();
|
|
|
task = taskInfo;
|
|
|
-
|
|
|
- if (task == null) return;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
+ if (task == null) return;
|
|
|
+ }
|
|
|
});
|
|
|
-
|
|
|
-
|
|
|
obj.Data.TaskNumber = task.ID;
|
|
|
obj.Data.GoodsStart = obj.Entity.Code.ToShort();
|
|
|
obj.Data.GoodsEnd = task.SrmStation.ToShort();
|
|
|
obj.Data.VoucherNo++;
|
|
|
|
|
|
}
|
|
|
-
|
|
|
public override bool Select(Device dev)
|
|
|
{
|
|
|
return dev.HasFlag(DeviceFlags.扫码);
|