Browse Source

优化环穿调度

林豪 左 3 years ago
parent
commit
29c83b9c45

+ 1 - 1
Projects/永冠OPP/WCS.Entity.Protocol/Station/IStation521.cs

@@ -88,7 +88,7 @@ namespace WCS.Entity.Protocol
     [Flags]
     public enum IstationStatus : ushort
     {
-        备用1 = 1 << 0,
+        手动入库 = 1 << 0,
         备用2 = 1 << 1,
         RES3 = 1 << 2,
         上位机未分配任务 = 1 << 3,

+ 1 - 1
Projects/永冠OPP/WCS.Service/Works/RGV/RGVWorks.cs

@@ -196,7 +196,7 @@ namespace WCS.Service.Works.RGV
                             {
                                 //为了减少空跑,需要被阻拦的小车后面的小车任务类型为移动并且位置值要大于618500小于被阻拦小车的位置值
                                 var afterRgv1 = afterRgv.After();
-                                if (afterRgv1.Data2.WorkMode == RGVMode.自动 && afterRgv1.Data2.TaskType_1 != RGVTaskType.移动 && !(afterRgv1.Position < afterRgv.Position && afterRgv1.Position > 618500)) return;
+                                if (afterRgv1.Data2.WorkMode == RGVMode.自动 && afterRgv.Data2.TaskType_1 == RGVTaskType.放货 && !(afterRgv1.Position < afterRgv.Position && afterRgv1.Position > 618500)) return;
                             }
                             //找到当前所在站台的下一个取货点
                             var beforeStation = Device.Where(v => v.Is(DF.涂布RGV取货设备组) && v.CODE != pickStation.Entity.CODE)

+ 10 - 5
Projects/永冠OPP/WCS.Service/Works/Station/涂布入库.cs

@@ -212,12 +212,17 @@ namespace WCS.Service.Works.Station
                     devs.Valid();
                     var infos = devs.GetWMSInTask();
 
-                    var agvTask = db.Default.Set<WCS_AGVTask>().Where(v => v.Status == AGVTaskStatus.完成 && v.Station == obj.Entity.CODE).FirstOrDefault() ?? throw new WarnException("无完成AGV任务");
+                    WCS_AGVTask agvTask = null;
 
-                    if (agvTask.Status != AGVTaskStatus.完成扫码)
+                    if (!obj.Items.Any(v => v.Data2.Status.HasFlag(IstationStatus.手动入库)))
                     {
-                        agvTask.Status = AGVTaskStatus.完成扫码;
-                        agvTask.UpdateTime = DateTime.Now;
+                        agvTask = db.Default.Set<WCS_AGVTask>().Where(v => v.Status == AGVTaskStatus.完成 && v.Station == obj.Entity.CODE).FirstOrDefault() ?? throw new WarnException("无完成AGV任务");
+
+                        if (agvTask.Status != AGVTaskStatus.完成扫码)
+                        {
+                            agvTask.Status = AGVTaskStatus.完成扫码;
+                            agvTask.UpdateTime = DateTime.Now;
+                        }
                     }
 
                     foreach (var item in devs)
@@ -241,7 +246,7 @@ namespace WCS.Service.Works.Station
                         task.TaskGroupKey = info.TaskGroupKey;
                         task.ADDRNEXT = next.CODE;
                         task.HEIGHT = dev.Data2.GoodsSize;
-                        task.AgvTask = agvTask.ID;
+                        task.AgvTask = agvTask == null ? 0 : agvTask.ID;
                         task.FLOOR = 2;
 
                         db.Default.Set<WCS_TASK>().Add(task);