林豪 左 2 anos atrás
pai
commit
b020e27545
1 arquivos alterados com 35 adições e 19 exclusões
  1. 35 19
      WCS.WorkEngineering/WebApi/Controllers/WcsController.cs

+ 35 - 19
WCS.WorkEngineering/WebApi/Controllers/WcsController.cs

@@ -14,6 +14,7 @@ using WCS.Entity.Protocol.DataStructure;
 using WCS.Entity.Protocol.SRM;
 using WCS.WorkEngineering.Extensions;
 using WCS.WorkEngineering.Systems;
+using WCS.WorkEngineering.WebApi.Models.AGV.Response;
 using WCS.WorkEngineering.WebApi.Models.WCS.Request;
 using WCS.WorkEngineering.WebApi.Models.WCS.Response;
 using WCS.WorkEngineering.WebApi.Models.WMS.Response;
@@ -126,22 +127,14 @@ namespace WCS.WorkEngineering.WebApi.Controllers
 
                             SRes cancelRes = CarryTaskInfo(response, item, 106);
                             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;
-                                }
+                                var cancelTaskUpdateRes = CancelAgvTask(response, item, agv.AgvID);
+                                if (cancelTaskUpdateRes != null) continue;
+
                                 agv.Status = AGVTaskStatus.Cancel;
                                 agv.AgvStatus = AGVTaskStatus.Cancel;
                                 db.Default.Updateable(agv).SplitTable().ExecuteCommand();
@@ -164,10 +157,8 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                 Message = $"未找到对应任务{item}"
                             });
                         }
-
                     }
                 });
-
             }
             // 完成任务
             else if (req.Type == HandleTaskTypeEnum.完成任务)
@@ -207,6 +198,8 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                 var agv = db.Default.Queryable<WCS_AgvTaskInfo>().Where(v => v.ID == task.AgvTaskID).SplitTable(v => v.Take(2)).First();
                                 if (agv != null)
                                 {
+                                    var cancelTaskUpdateRes = CancelAgvTask(response, item, agv.AgvID);
+                                    if (cancelTaskUpdateRes != null) continue;
                                     agv.Status = AGVTaskStatus.MissionCompleted;
                                     agv.AgvStatus = AGVTaskStatus.MissionCompleted;
                                     db.Default.Updateable(agv).SplitTable().ExecuteCommand();
@@ -340,10 +333,35 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                     }
                 });
             }
-
             return response;
         }
 
+        /// <summary>
+        ///  WMS完成或取消任务验证
+        /// </summary>
+        /// <param name="sRes"></param>
+        /// <param name="id"></param>
+        /// <param name="agvTask">需要取消任务的AGV任务号</param>
+        /// <returns></returns>
+        public CancelTaskResponse? CancelAgvTask(SRes<HandleTaskResponse> sRes, int id, string agvTask)
+        {
+            try
+            {
+                var res = AgvApi.CancelAgvTask(agvTask);
+                return res;
+            }
+            catch (Exception ex)
+            {
+                sRes.ResDataList.Add(new HandleTaskResponse()
+                {
+                    IsSuccess = false,
+                    TaskNo = id,
+                    Message = $"AGV错误:{ex.Message}",
+                });
+                return null;
+            }
+        }
+
         /// <summary>
         ///  WMS完成或取消任务验证
         /// </summary>
@@ -364,7 +382,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                 {
                     IsSuccess = false,
                     TaskNo = id,
-                    Message = ex.Message,
+                    Message = $"WMS错误:{ex.Message}",
                 });
                 return null;
             }
@@ -390,13 +408,12 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                 {
                     IsSuccess = false,
                     TaskNo = id,
-                    Message = $"WMS",
+                    Message = $"WMS错误:{ex.Message}",
                 });
                 return null;
             }
         }
 
-
         public SRes? CancelAgvTaskUpdate(SRes<HandleTaskResponse> sRes, int id, int type)
         {
             try
@@ -416,7 +433,6 @@ namespace WCS.WorkEngineering.WebApi.Controllers
             }
         }
 
-
         /// <summary>
         ///  设备信息写入接口
         /// </summary>