林豪 左 3 роки тому
батько
коміт
2f44ce94b6

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

@@ -45,15 +45,16 @@ namespace WCS.Service.Works.Station
 
                         if (agvtask.Status == AGVTaskStatus.新建)
                         {
+                            //TODO:暂时不管控产线任务数
                             var qty = db.Default.Set<WCS_AGVTask>().Where(v => v.TaskType == AGVTaskType.入库 && v.Status > AGVTaskStatus.新建 && v.Status < AGVTaskStatus.完成)
-                           .Where(v => v.Position == agvtask.Position).Count();
+                                                                   .Where((v) => v.Station == obj.Entity.CODE) //当前站点
+                                                                   .Count();
 
-                            if (qty >= 2)
+                            if (qty >= 5) //每个入库口同时最多执行五个任务
                             {
-                                throw new Exception($"{agvtask.Position}正在执行的入库任务数量已达{qty},暂停入库");
+                                throw new Exception($"{obj.Entity.CODE}正在执行的入库任务数量已达{qty},暂停入库");
                             }
-                            //暂时管控同一时间被确认的任务数为1
-                            if (db.Default.Set<WCS_AGVTask>().Any(v => v.Status == AGVTaskStatus.确认 && v.Station == obj.Entity.CODE)) continue;
+
                             agvtask.Station = obj.Entity.CODE;
                             agvtask.Status = AGVTaskStatus.确认;
                             agvtask.UpdateTime = DateTime.Now;
@@ -61,6 +62,7 @@ namespace WCS.Service.Works.Station
                         }
                         else if (agvtask.Status == AGVTaskStatus.确认 && agvtask.Status > agvtask.AGVStatus)
                         {
+                            //TODO:暂时直接执行,不再管控,后续如有需求,再行启用
                             //if (agvtask.Station != obj.Entity.CODE) continue;
                             //if (obj.Items.Any(v => !v.Data3.Status.HasFlag(StationStatus.高位))) continue;
                             //if (obj.Items.Any(v => !v.Data3.Status.HasFlag(StationStatus.自动))) continue;
@@ -69,7 +71,7 @@ namespace WCS.Service.Works.Station
                             //if (obj.Items.Any(v => v.Data2.Tasknum > 10000)) continue;
 
                             //暂时管控同一时间被执行的任务数为1
-                            if (db.Default.Set<WCS_AGVTask>().Count(v => v.Status == AGVTaskStatus.执行 && v.Station == obj.Entity.CODE && v.ID != agvtask.ID) >= 2) continue;
+                            //if (db.Default.Set<WCS_AGVTask>().Count(v => v.Status == AGVTaskStatus.执行 && v.Station == obj.Entity.CODE && v.ID != agvtask.ID) >= 2) continue;
                             agvtask.Status = AGVTaskStatus.执行;
                             agvtask.UpdateTime = DateTime.Now;
                             db.Default.SaveChanges();