gkj пре 2 година
родитељ
комит
00638e2ed5

+ 4 - 18
WCS.WorkEngineering/WebApi/Controllers/AgvApi.cs

@@ -188,15 +188,16 @@ namespace WCS.WorkEngineering.WebApi.Controllers
         /// <summary>
         /// 取消任务
         /// </summary>
-        /// <param name="taskCode">AGV任务号</param>
+        /// <param name="AGVtaskCode">AGV任务号</param>
         /// <returns></returns>
         /// <exception cref="KnownException"></exception>
-        public static CancelTaskResponse CancelAgvTask(string taskCode)
+        public static CancelTaskResponse CancelAgvTask(string AGVtaskCode)
         {
             var res = APICaller.CallApi2<CancelTaskResponse>(AgvUrl + "/rcms/services/rest/hikRpcService/CancelTaskRequest", new CancelTaskRequest
             {
                 reqCode = Guid.NewGuid().ToString().Replace("-", ""),
-                taskCode = taskCode,
+                taskCode = AGVtaskCode,
+                forceCancel = "0",
             });
             if (res.code != AgvResponseCode.Success)
             {
@@ -204,20 +205,5 @@ namespace WCS.WorkEngineering.WebApi.Controllers
             }
             return res;
         }
-
-        public static SRes CancelAgvTask(List<int> taskNo, int state)
-        {
-            var res = APICaller.CallApi2<SRes>(AgvUrl + "/rcms/services/rest/hikRpcService/CancelTaskRequest", new CancelTaskRequest
-            {
-                //TaskNo = taskNo,
-                //State = state
-            });
-            if (res.ResCode != ResponseStatusCodeEnum.Sucess)
-            {
-                throw new KnownException(res.ResMsg, LogLevelEnum.High);
-            }
-            return res;
-        }
-
     }
 }

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

@@ -98,7 +98,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                         var res = WmsApi.GetTunnelEmptyConCount();
 
                         var agvStations = db.Default.Queryable<WCS_AgvTaskInfo>().SplitTable(tabs => tabs.Take(2))
-                                          .Where(v => v.AgvStatus < AGVTaskStatus.Complete3 && v.TaskType == AGVTaskType.CallForMaterial).Select(v => v.Station).ToList();
+                                          .Where(v => v.Status < AGVTaskStatus.Complete3 && v.TaskType == AGVTaskType.CallForMaterial).Select(v => v.Station).ToList();
                         obj = obj.Where(v => !agvStations.Contains(v.Entity.Code)).ToList();
                         if (!obj.Any())
                         {

+ 33 - 40
WCS.WorkEngineering/WebApi/Controllers/WcsController.cs

@@ -40,16 +40,16 @@ namespace WCS.WorkEngineering.WebApi.Controllers
             //取消任务
             if (req.Type == HandleTaskTypeEnum.取消任务)
             {
-                foreach (var item in req.TaskIds)
+                SqlSugarHelper.Do(db =>
                 {
-                    SqlSugarHelper.Do(db =>
+                    foreach (var item in req.TaskIds)
                     {
                         var task = db.Default.Queryable<WCS_TaskInfo>().Where(t => t.ID == item).First();
                         if (task != null)
                         {
                             //验证wms是否能取消
                             SRes res = HandleTaskVerify(response, item, 106);
-                            if (res == null) return;
+                            if (res == null) continue;
 
                             switch (task.Type)
                             {
@@ -62,7 +62,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                             TaskNo = item,
                                             Message = $"只能取消待执行状态组盘任务",
                                         });
-                                        return;
+                                        continue;
                                     }
                                     break;
 
@@ -75,7 +75,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                             TaskNo = item,
                                             Message = $"只能取消待执行状态入库任务",
                                         });
-                                        return;
+                                        continue;
                                     }
                                     break;
 
@@ -88,7 +88,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                             TaskNo = item,
                                             Message = $"只能取消待执行状态出库任务",
                                         });
-                                        return;
+                                        continue;
                                     }
 
                                     break;
@@ -102,7 +102,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                             TaskNo = item,
                                             Message = $"无法取消{task.Status.GetDescription()}的移库任务,只能取消新建/待执行的移库任务",
                                         });
-                                        return;
+                                        continue;
                                     }
                                     break;
 
@@ -119,43 +119,29 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                             TaskNo = item,
                                             Message = $"只能取消待执行状态空轮初始化任务",
                                         });
-                                        return;
+                                        continue;
                                     }
                                     break;
                             }
 
                             SRes cancelRes = CarryTaskInfo(response, item, 106);
-                            if (cancelRes == null) return;
-                            ////取消任务
-                            //try
-                            //{
-                            //    cancelRes = WmsApi.CarryTaskInfo(new List<int>() { task.ID }, 106);
-                            //}
-                            //catch (Exception ex)
-                            //{
-                            //    response.ResDataList.Add(new HandleTaskResponse()
-                            //    {
-                            //        IsSuccess = false,
-                            //        TaskNo = item,
-                            //        Message = ex.Message,
-                            //    });
-                            //    return;
-                            //}
+                            if (cancelRes == null) continue;
+                           
                             //找到对应的AGV任务
                             var agv = db.Default.Queryable<WCS_AgvTaskInfo>().Where(v => v.ID == task.AgvTaskID).SplitTable(v => v.Take(2)).First();
                             if (agv != null)
                             {
                                 var cancelTaskUpdateRes = AgvApi.CancelAgvTask(agv.ID.ToString());
-                                //if (cancelTaskUpdateRes == null)
-                                //{
-                                //    response.ResDataList.Add(new HandleTaskResponse()
-                                //    {
-                                //        IsSuccess = false,
-                                //        TaskNo = item,
-                                //        Message = ex.Message,
-                                //    });
-                                //    return;
-                                //}                              
+                                if (cancelTaskUpdateRes == null)
+                                {
+                                    response.ResDataList.Add(new HandleTaskResponse()
+                                    {
+                                        IsSuccess = false,
+                                        TaskNo = item,
+                                        Message = ex.Message,
+                                    });
+                                    return;
+                                }
                                 agv.Status = AGVTaskStatus.Cancel;
                                 agv.AgvStatus = AGVTaskStatus.Cancel;
                                 db.Default.Updateable(agv).SplitTable().ExecuteCommand();
@@ -178,8 +164,10 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                 Message = $"未找到对应任务{item}"
                             });
                         }
-                    });
-                }
+
+                    }
+                });
+
             }
             // 完成任务
             else if (req.Type == HandleTaskTypeEnum.完成任务)
@@ -194,7 +182,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                             if (task.Type == TaskType.OutDepot)
                             {
                                 SRes res = HandleTaskVerify(response, item, 99);
-                                if (res == null) return;
+                                if (res == null) continue;
 
                                 switch (task.Type)
                                 {
@@ -207,13 +195,13 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                                 TaskNo = item,
                                                 Message = $"只能完成未完成状态的任务",
                                             });
-                                            return;
+                                            continue;
                                         }
                                         break;
                                 }
 
                                 SRes cancelRes = CarryTaskInfo(response, item, 99);
-                                if (cancelRes == null) return;
+                                if (cancelRes == null) continue;
 
                                 //找到对应的AGV任务
                                 var agv = db.Default.Queryable<WCS_AgvTaskInfo>().Where(v => v.ID == task.AgvTaskID).SplitTable(v => v.Take(2)).First();
@@ -262,6 +250,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                     TaskNo = item,
                                     Message = $"组盘任务无AGV执行流程",
                                 });
+                                continue;
                             }
                             else if (task.Type == TaskType.EnterDepot) //入库任务
                             {
@@ -276,6 +265,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                         TaskNo = item,
                                         Message = $"二楼入库任务重新下发AGV未实现",
                                     });
+                                    continue;
                                 }
                             }
                             else if (task.Type == TaskType.OutDepot) //出库
@@ -289,6 +279,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                     TaskNo = item,
                                     Message = $"组盘任务无AGV执行流程",
                                 });
+                                continue;
                             }
                             else if (task.Type == TaskType.Delivery) //搬运
                             {
@@ -303,6 +294,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                         TaskNo = item,
                                         Message = $"二楼搬运任务重新下发AGV未实现",
                                     });
+                                    continue;
                                 }
                             }
                             else if (task.Type == TaskType.EmptyInit) //空轮初始化
@@ -313,6 +305,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                     TaskNo = item,
                                     Message = $"空轮初始化无AGV执行流程",
                                 });
+                                continue;
                             }
 
                             //找到对应的AGV任务
@@ -397,7 +390,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                 {
                     IsSuccess = false,
                     TaskNo = id,
-                    Message = ex.Message,
+                    Message = $"WMS",
                 });
                 return null;
             }