xu.lu 1 anno fa
parent
commit
a9bdbf72e2

+ 112 - 112
业务工程/分拣库/WCS.WorkEngineering/WebApi/Controllers/AgvController.cs

@@ -10,127 +10,127 @@ using WCS.WorkEngineering.WebApi.Models.AGV.Response;
 
 namespace WCS.WorkEngineering.WebApi.Controllers
 {
-    ///// <summary>
-    ///// AGV相关接口控制器
-    ///// </summary>
-    //[ApiController]
-    //[Route("api/[controller]/[action]")]
-    //public class AgvController : ControllerBase
-    //{
-    //    /// <summary>
-    //    ///  AGV任务下发测试
-    //    /// </summary>
-    //    /// <param name="type">任务类型</param>
-    //    /// <param name="code">RFID</param>
-    //    /// <param name="pos">目标位置</param>
-    //    /// <returns></returns>
-    //    [HttpPost]
-    //    public string AgvDebug(int type, string code, string pos)
-    //    {
-    //        try
-    //        {
-    //            switch (type)
-    //            {
-    //                case 1:
-    //                    //AgvApi.机台补空(pos, code, "1");
-    //                    break;
+    /// <summary>
+    /// AGV相关接口控制器
+    /// </summary>
+    [ApiController]
+    [Route("api/[controller]/[action]")]
+    public class AgvController : ControllerBase
+    {
+        /// <summary>
+        ///  AGV任务下发测试
+        /// </summary>
+        /// <param name="type">任务类型</param>
+        /// <param name="code">RFID</param>
+        /// <param name="pos">目标位置</param>
+        /// <returns></returns>
+        [HttpPost]
+        public string AgvDebug(int type, string code, string pos)
+        {
+            try
+            {
+                switch (type)
+                {
+                    case 1:
+                        //AgvApi.机台补空(pos, code, "1");
+                        break;
 
-    //                case 2:
-    //                    //AgvApi.机台补满();
-    //                    break;
+                    case 2:
+                        //AgvApi.机台补满();
+                        break;
 
-    //                case 3:
-    //                    //AgvApi.满轮入库(code, pos, Guid.NewGuid().ToString().Replace("-", ""), "1");
-    //                    break;
-    //            }
-    //            return "成功";
-    //        }
-    //        catch (Exception ex)
-    //        {
-    //            return $"Error-----" +
-    //                  $"{ex.Message}------" +
-    //                  $"{ex.StackTrace}";
-    //        }
-    //    }
+                    case 3:
+                        //AgvApi.满轮入库(code, pos, Guid.NewGuid().ToString().Replace("-", ""), "1");
+                        break;
+                }
+                return "成功";
+            }
+            catch (Exception ex)
+            {
+                return $"Error-----" +
+                      $"{ex.Message}------" +
+                      $"{ex.StackTrace}";
+            }
+        }
 
-    //    /// <summary>
-    //    /// AGV执行回调
-    //    /// </summary>
-    //    /// <param name="reqDto"></param>
-    //    /// <returns></returns>
-    //    [HttpPost]
-    //    public AgvCallbackResponse AgvCallback([FromBody] AgvCallbackRequest reqDto)
-    //    {
-    //        var key = $"WCS:Lock:AGV:{nameof(AgvCallback)}";
-    //        var res = new AgvCallbackResponse() { code = AgvResponseCode.Success, message = "失败" };
-    //        //LogHub.InterfacePublish(nameof(AgvCallback), $"传入参数--reqCode:{reqDto.reqCode}--taskCode:{reqDto.taskCode}--method:{reqDto.method}");
-    //        try
-    //        {
-    //            RedisHub.Do(key, redis =>
-    //            {
-    //                SqlSugarHelper.Do(db =>
-    //                {
-    //                    //跟据AGVid找到对应的AGV任务
-    //                    var agvTask = db.Default.Queryable<WCS_AgvTaskInfo>().UpdLock().SplitTable(tabs => tabs.Take(2))
-    //                        .First(v => v.AgvID == reqDto.taskCode && v.Status < AGVTaskStatus.MissionCompleted);
-    //                    if (agvTask == null)
-    //                    {
-    //                        res.code = AgvResponseCode.Fail;
-    //                        res.message = "未找到对应的AGV任务";
+        /// <summary>
+        /// AGV执行回调
+        /// </summary>
+        /// <param name="reqDto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public AgvCallbackResponse AgvCallback([FromBody] AgvCallbackRequest reqDto)
+        {
+            var key = $"WCS:Lock:AGV:{nameof(AgvCallback)}";
+            var res = new AgvCallbackResponse() { code = AgvResponseCode.Success, message = "失败" };
+            //LogHub.InterfacePublish(nameof(AgvCallback), $"传入参数--reqCode:{reqDto.reqCode}--taskCode:{reqDto.taskCode}--method:{reqDto.method}");
+            try
+            {
+                RedisHub.Do(key, redis =>
+                {
+                    SqlSugarHelper.Do(db =>
+                    {
+                        //跟据AGVid找到对应的AGV任务
+                        var agvTask = db.Default.Queryable<WCS_AgvTaskInfo>().UpdLock().SplitTable(tabs => tabs.Take(2))
+                            .First(v => v.AgvID == reqDto.taskCode && v.Status < AGVTaskStatus.MissionCompleted);
+                        if (agvTask == null)
+                        {
+                            res.code = AgvResponseCode.Fail;
+                            res.message = "未找到对应的AGV任务";
 
-    //                        return;
-    //                    }
-    //                    switch (reqDto.method)
-    //                    {
-    //                        case "applyContinue": //表示请求巷道
-    //                            agvTask.AgvStatus = AGVTaskStatus.RequestOrPermission1;
-    //                            break;
+                            return;
+                        }
+                        switch (reqDto.method)
+                        {
+                            case "applyContinue": //表示请求巷道
+                                agvTask.AgvStatus = AGVTaskStatus.RequestOrPermission1;
+                                break;
 
-    //                        case "outbin": //小车退出取货位
-    //                            agvTask.AgvStatus = AGVTaskStatus.LeaveGet;
-    //                            break;
+                            case "outbin": //小车退出取货位
+                                agvTask.AgvStatus = AGVTaskStatus.LeaveGet;
+                                break;
 
-    //                        case "applySecurity": //表示请求放货或取货
-    //                            agvTask.AgvStatus = AGVTaskStatus.RequestOrPermission2;
-    //                            break;
+                            case "applySecurity": //表示请求放货或取货
+                                agvTask.AgvStatus = AGVTaskStatus.RequestOrPermission2;
+                                break;
 
-    //                        case "applySecurityPut": //表示请求放货或取货
-    //                            agvTask.AgvStatus = AGVTaskStatus.PutRequestOrPermission;
-    //                            break;
+                            case "applySecurityPut": //表示请求放货或取货
+                                agvTask.AgvStatus = AGVTaskStatus.PutRequestOrPermission;
+                                break;
 
-    //                        case "FJend": //任务完成
-    //                            agvTask.AgvStatus = AGVTaskStatus.MissionCompleted;
-    //                            break;
+                            case "FJend": //任务完成
+                                agvTask.AgvStatus = AGVTaskStatus.MissionCompleted;
+                                break;
 
-    //                        case "cancel": //取消任务
-    //                            if (agvTask.TaskType == AGVTaskType.EnterDepot)
-    //                            {
-    //                                agvTask.AgvStatus = AGVTaskStatus.Cancel;
-    //                            }
+                            case "cancel": //取消任务
+                                if (agvTask.TaskType == AGVTaskType.EnterDepot)
+                                {
+                                    agvTask.AgvStatus = AGVTaskStatus.Cancel;
+                                }
 
-    //                            break;
-    //                    }
+                                break;
+                        }
 
-    //                    int i = db.Default.Updateable(agvTask).SplitTable(x => x.Take(2)).ExecuteCommand();
-    //                    if (i > 0)
-    //                    {
-    //                        res.code = AgvResponseCode.Success;
-    //                        res.message = "成功";
-    //                    }
-    //                    else
-    //                    {
-    //                        return;
-    //                    }
-    //                });
-    //            });
-    //        }
-    //        catch (Exception ex)
-    //        {
-    //            res.code = AgvResponseCode.Error;
-    //            res.message = ex.Message;
-    //        }
-    //        //LogHub.InterfacePublish(nameof(AgvCallback), $"返回结果--reqCode:{reqDto.reqCode}--code:{res.code}--message:{res.message}--taskCode:{reqDto.taskCode}");
-    //        return res;
-    //    }
-    //}
+                        int i = db.Default.Updateable(agvTask).SplitTable(x => x.Take(2)).ExecuteCommand();
+                        if (i > 0)
+                        {
+                            res.code = AgvResponseCode.Success;
+                            res.message = "成功";
+                        }
+                        else
+                        {
+                            return;
+                        }
+                    });
+                });
+            }
+            catch (Exception ex)
+            {
+                res.code = AgvResponseCode.Error;
+                res.message = ex.Message;
+            }
+            //LogHub.InterfacePublish(nameof(AgvCallback), $"返回结果--reqCode:{reqDto.reqCode}--code:{res.code}--message:{res.message}--taskCode:{reqDto.taskCode}");
+            return res;
+        }
+    }
 }