|
@@ -4,7 +4,6 @@ using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using WCS.Core;
|
|
|
using WCS.Entity;
|
|
|
-using WCS.Entity.Protocol;
|
|
|
using WCS.Entity.Protocol.RGV;
|
|
|
using WCS.Service.Extensions;
|
|
|
using WCS.Service.Handlers;
|
|
@@ -129,9 +128,10 @@ namespace WCS.Service.Works.RGV
|
|
|
if (pickStation.Entity.Is(DF.涂布RGV取货设备组))
|
|
|
{
|
|
|
// 筛选出有任务号和起始及目标地址的设备
|
|
|
- var devs = pickStation.RGVGetTaskedDevice();
|
|
|
+ var devise = pickStation.RGVGetTaskedDevice();
|
|
|
+
|
|
|
//是否需要取货
|
|
|
- if (devs != null && devs.Count > 0)
|
|
|
+ if (devise is { Count: > 0 } && pickStation.IsPickUp(rgvDevice))
|
|
|
{
|
|
|
//开始下达取货任务
|
|
|
DB.Do(db =>
|
|
@@ -140,18 +140,7 @@ namespace WCS.Service.Works.RGV
|
|
|
if (rgvDevice.Data2.Status_1.HasFlag(WCS.Entity.Protocol.RGVStatus.光电)) throw new WarnException("RGV有光电,无法取货,请检查实际情况");
|
|
|
if (!rgvDevice.Data2.Status_1.HasFlag(WCS.Entity.Protocol.RGVStatus.RGV到站)) throw new WarnException("RGV无到站状态,请检查RGV实际状态");
|
|
|
|
|
|
- if (pickStation.Entity.CODE != "G2" && pickStation.Entity.CODE != "G3")
|
|
|
- {
|
|
|
- var a = Device.Where(v => v.CODE is "G1" or "G1340" or "G1337").Select(v => v.Create<StationDeviceGroup>()).Count(v => v.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位)
|
|
|
- || v.Data2.Status.HasFlag(IstationStatus.光电状态)
|
|
|
- || v.Data2.Tasknum > 10000
|
|
|
- || !v.Data3.Status.HasFlag(StationStatus.自动)));
|
|
|
- var b = rgvDevice.RGVList.Count(v => v.Data.DestPosition_1 == 1);
|
|
|
- //最大三个任务
|
|
|
- if (b >= 3) return;
|
|
|
- }
|
|
|
-
|
|
|
- var taskids = devs.Select(v => v.Data2.Tasknum);
|
|
|
+ var taskids = devise.Select(v => v.Data2.Tasknum);
|
|
|
var tasks = db.Default.Set<WCS_TASK>().Where(p => taskids.Contains(p.ID));
|
|
|
if (tasks.GroupBy(p => p.TaskGroupKey).Count() > 1)
|
|
|
throw new WarnException("任务组ID不一致");
|