林豪 左 3 năm trước cách đây
mục cha
commit
a1867194ec

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

@@ -4,6 +4,7 @@ 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;
@@ -139,6 +140,23 @@ 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")
+                                {
+                                    //最大三个任务
+                                    if (rgvDevice.RGVList.Count(v => v.Data.DestPosition_1 == 1) < 3)
+                                    {
+                                        //放货点是否有货
+                                        var G1 = Device.Find("G1").Create<StationDeviceGroup>();
+                                        //只能有一组任务的下一个地址是交货点同时,放货点必须无货
+
+                                        if (G1.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位)
+                                                              || v.Data2.Status.HasFlag(IstationStatus.光电状态)
+                                                              || v.Data2.Tasknum > 10000
+                                                              || !v.Data3.Status.HasFlag(StationStatus.自动))) return;
+                                    }
+                                    else return;
+                                }
+
                                 var taskids = devs.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)
@@ -397,4 +415,4 @@ namespace WCS.Service.Works.RGV
             return dev.Is(DF.BOPPRGV);
         }
     }
-}
+}

+ 8 - 8
Projects/永冠OPP/WCS.Service/Works/Station/涂布出库.cs

@@ -129,13 +129,13 @@ namespace WCS.Service.Works.Station
                             }
                             devs.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
                         }
-                        var G1 = Device.Find("G1").Create<StationDeviceGroup>();
-                        //只能有一组任务的下一个地址是交货点同时,放货点必须无货
-                        if (db.Default.Set<WCS_TASK>().Any(v => v.ADDRNEXT == "G1") || 
-                            G1.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位)
-                                            || v.Data2.Status.HasFlag(IstationStatus.光电状态)
-                                            || v.Data2.Tasknum > 10000
-                                            || !v.Data3.Status.HasFlag(StationStatus.自动))) return;
+                        //var G1 = Device.Find("G1").Create<StationDeviceGroup>();
+                        ////只能有一组任务的下一个地址是交货点同时,放货点必须无货
+                        //if (db.Default.Set<WCS_TASK>().Count(v => v.ADDRNEXT == "G1") >= 2 ||
+                        //    G1.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位)
+                        //                    || v.Data2.Status.HasFlag(IstationStatus.光电状态)
+                        //                    || v.Data2.Tasknum > 10000
+                        //                    || !v.Data3.Status.HasFlag(StationStatus.自动))) return;
                         foreach (var dev in devs)
                         {
                             var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.ID == dev.Station.Data2.Tasknum) ?? throw new WarnException("无任务");
@@ -567,4 +567,4 @@ namespace WCS.Service.Works.Station
             return dev.CODE == "G1340" || dev.CODE == "G1343";
         }
     }
-}
+}