林豪 左 2 yıl önce
ebeveyn
işleme
141b8a7a08

+ 22 - 0
WCS.WorkEngineering/Extensions/TaskExtension.cs

@@ -102,6 +102,17 @@ namespace WCS.WorkEngineering.Extensions
             }
         }
 
+        /// <summary>
+        ///  获取出库任务
+        /// </summary>
+        /// <param name="taskInfo">任务</param>
+        /// <param name="db">db</param>
+        /// <param name="allOutCode">可用出库站台</param>
+        /// <param name="floor">楼层</param>
+        /// <param name="obj">堆垛机</param>
+        /// <param name="index">递归次数</param>
+        /// <returns></returns>
+        /// <exception cref="KnownException"></exception>
         public static WCS_TaskInfo GetOutTask(this WCS_TaskInfo taskInfo, SqlSugarHelper db, List<string> allOutCode, int floor, SRM obj, int index = 1)
         {
             //按条件先后排序获取一条排序后第一条结果1.优先级2.所在楼层与本次优先执行楼层
@@ -138,5 +149,16 @@ namespace WCS.WorkEngineering.Extensions
 
             return task;
         }
+
+        /// <summary>
+        /// 获取AGV任务ID
+        /// </summary>
+        /// <param name="db">db</param>
+        /// <returns></returns>
+        public static int GetAGVTaskId(this SqlSugarHelper db)
+        {
+            var id = db.Default.Queryable<WCS_AgvTaskInfo>().SplitTable(v => v.Take(1)).Max(v => v.ID);
+            return id + 1;
+        }
     }
 }

+ 2 - 2
WCS.WorkEngineering/Systems/NoInteractionSystems.cs

@@ -44,7 +44,7 @@ namespace WCS.WorkEngineering.Systems
                         task.AddWCS_TASK_DTL(db, task.Device, $"初始化入库任务信息,并创建AGV任务中间表");
                         db.Default.Insertable(new WCS_AgvTaskInfo()
                         {
-                            ID = task.ID,
+                            ID = db.GetAGVTaskId(),
                             TaskType = AGVTaskType.EnterDepot,
                             Status = AGVTaskStatus.NewBuild,
                             Station = task.WorkBench,
@@ -125,7 +125,7 @@ namespace WCS.WorkEngineering.Systems
                         task.AddWCS_TASK_DTL(db, task.Device, $"初始化搬运任务信息,并创建AGV任务中间表");
                         db.Default.Insertable(new WCS_AgvTaskInfo()
                         {
-                            ID = task.ID,
+                            ID = db.GetAGVTaskId(),
                             TaskType = AGVTaskType.ForkliftFilling,
                             Status = AGVTaskStatus.NewBuild,
                             Station = task.WorkBench,

+ 1 - 12
WCS.WorkEngineering/WebApi/Controllers/AgvController.cs

@@ -120,7 +120,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                     //创建对应的AGV任务
                     db.Default.Insertable(new WCS_AgvTaskInfo()
                     {
-                        ID = id + 1,
+                        ID = db.GetAGVTaskId(),
                         TaskType = AGVTaskType.CallForMaterial,
                         Status = AGVTaskStatus.NewBuild,
                         Station = agvFill.LocCode,
@@ -216,17 +216,6 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                             agvTask.Status = AGVTaskStatus.MissionCompleted;
                             break;
 
-                        case "applyEmpty": //申请补空任务
-                            db.Default.Insertable(new WCS_AgvTaskInfo()
-                            {
-                                AgvID = reqDto.taskCode,
-                                TaskType = AGVTaskType.CallForMaterial,
-                                Status = AGVTaskStatus.NewBuild,
-                            }).AddQueue();
-                            AgvApi.缓存架补空(reqDto.taskCode, "1016");
-
-                            break;
-
                         case "exc_end": //异常信息上抛-值不匹配
                             agvTask.Status = AGVTaskStatus.MissionCompleted;
                             break;

+ 1 - 1
WCS.WorkEngineering/Worlds/NoInteractionWorld.cs

@@ -12,6 +12,6 @@ namespace WCS.WorkEngineering.Worlds
         ///  世界执行周期间隔
         ///  单位:毫秒
         /// </summary>
-        protected override int Interval => 300;
+        protected override int Interval => 500;
     }
 }

+ 1 - 1
WCS.WorkEngineering/worlds/MainWorld.cs

@@ -31,7 +31,7 @@ namespace WCS.WorkEngineering.Worlds
         ///  世界执行周期间隔
         ///  单位:毫秒
         /// </summary>
-        protected override int Interval => 300;
+        protected override int Interval => 500;
 
         /// <summary>
         ///  更新前执行,重写改方法后请自行添加执行内容