From 960b33fa24c47a330e51a2c24859d681ae62caeb Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期四, 16 四月 2026 10:09:49 +0800
Subject: [PATCH] 重构任务与库存模型,增强日志管理与区域接口

---
 Code Management/WCS/WIDESEA_WCSServer/WIDESEAWCS_Tasks/ESS/ESSSignal.cs |   74 +++++++++++++++++++++++++++++--------
 1 files changed, 58 insertions(+), 16 deletions(-)

diff --git a/Code Management/WCS/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/AGVSignal.cs b/Code Management/WCS/WIDESEA_WCSServer/WIDESEAWCS_Tasks/ESS/ESSSignal.cs
similarity index 84%
rename from Code Management/WCS/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/AGVSignal.cs
rename to Code Management/WCS/WIDESEA_WCSServer/WIDESEAWCS_Tasks/ESS/ESSSignal.cs
index b9da5ff..ae15f58 100644
--- a/Code Management/WCS/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/AGVSignal.cs
+++ b/Code Management/WCS/WIDESEA_WCSServer/WIDESEAWCS_Tasks/ESS/ESSSignal.cs
@@ -1,6 +1,8 @@
-锘縰sing AutoMapper;
+锘縰sing AngleSharp.Io;
+using AutoMapper;
 using LogLibrary.Log;
 using Newtonsoft.Json;
+using System.Threading.Tasks;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_DTO.AGV;
@@ -11,10 +13,11 @@
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob;
 using WIDESEAWCS_Tasks.ConveyorLineJob;
+using TaskStatus = WIDESEAWCS_DTO.AGV.TaskStatus;
 
 namespace WIDESEAWCS_Tasks.AGV
 {
-    public class AGVSignal:IAGVSignal
+    public class ESSSignal:IESSSignal
     {
         private readonly ITaskRepository _taskRepository;
         private readonly ITask_HtyRepository _taskhtyRepository;
@@ -22,7 +25,7 @@
         private readonly IDt_StationManagerRepository _stationManagerRepository;
         private readonly IMapper _mapper;
 
-        public AGVSignal(ITaskRepository taskRepository, ITaskService taskService,IDt_StationManagerRepository stationManagerRepository,ITask_HtyRepository taskhtyRepository, IMapper mapper) 
+        public ESSSignal(ITaskRepository taskRepository, ITaskService taskService,IDt_StationManagerRepository stationManagerRepository,ITask_HtyRepository taskhtyRepository, IMapper mapper) 
         {
             _taskRepository = taskRepository;
             _taskService = taskService;
@@ -30,28 +33,40 @@
             _taskhtyRepository = taskhtyRepository;
             _mapper = mapper;
         }
-        #region  AGV涓庤澶囦俊鍙蜂氦浜�
+        #region  ESS浠诲姟鐘舵�佸洖璋�
 
         /// <summary>
-        /// AGV--璁惧浜や簰
+        /// ESS浠诲姟鐘舵�佸洖璋�
         /// </summary>
         /// <returns></returns>
-        public WebResponseContent SignalInteraction(AGVReceiveDTO receiveDTO)
+        public WebResponseContent TaskStatusCallback(StatusCallbackRequest result)
         {
             WebResponseContent content = new WebResponseContent();
             try
             {
-                LogFactory.WriteInfo($"AGV鐘舵�佷笂鎶�", $"鍙傛暟銆恵JsonConvert.SerializeObject(receiveDTO)}銆憑Environment.NewLine}{Environment.NewLine}");
-                var task = _taskRepository.QueryFirst(t => t.TaskNum == Convert.ToInt32(receiveDTO.orderId));
+                var task = _taskRepository.QueryFirst(t => t.TaskNum == Convert.ToInt32(result.TaskCode));
                 if (task == null)
                 {
                     return content.Error("鏈壘鍒颁换鍔�");
                 }
-
-                CommonConveyorLine? commonConveyorLine = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1001") as CommonConveyorLine;
-                CommonElevator? elevator = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ1") as CommonElevator;
-                switch (receiveDTO.status)
+                switch (result.EventType)
                 {
+                    case EventType.tote_load:
+                        content.OK();
+                        break;
+                    case EventType.tote_unload:
+                        content.OK();
+                        break;
+                    case EventType.robot_reach:
+                        content.OK();
+                        break;
+                    case EventType.task:
+                        content = RobotTaskStatusCallback(result, task);
+                        break;
+                    case EventType.task_allocated:
+                        _taskService.UpdateTaskStatusToNext(task.TaskNum);
+                        break;
+
                     //case 20:
                     //    content = RequestPickUp(task, commonConveyorLine, elevator);
                     //    break;
@@ -65,10 +80,9 @@
                     //    content = PutFinish(task, commonConveyorLine, elevator);
                     //    break;
                     default:
-                        content.Error("鏈煡鐘舵��");
+                        content.Error($"鏈煡鐨勪簨浠剁被鍨�: {result.EventType}");
                         break;
                 }
-                LogFactory.WriteInfo($"AGV鐘舵�佷笂鎶�", $"杩斿洖鍙傛暟銆恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
                 return content;
             }
             catch (Exception ex)
@@ -77,6 +91,34 @@
             }
         }
 
+        public WebResponseContent RobotTaskStatusCallback(StatusCallbackRequest result,Dt_Task task)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                switch (result.Status)
+                {
+                    case TaskStatus.cancel:
+                        _taskService.UpdateTaskStatusToNext(task.TaskNum);
+                        break;
+                    case TaskStatus.success:
+                        break;
+                    case TaskStatus.suspend:
+                        break;
+                    default:
+                        break;
+                }
+                content.OK();
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+        #endregion
+
+        #region  ESS浠诲姟鐘舵�佸洖璋�
         ///// <summary>
         ///// 鏀捐揣瀹屾垚
         ///// </summary>
@@ -297,9 +339,9 @@
         //                _taskRepository.UpdateData(task);
         //                content.Error("璁惧涓嶅厑璁稿彇璐�");
         //            }
-                    
+
         //        }
-                
+
         //    }
         //    catch (Exception ex)
         //    {

--
Gitblit v1.9.3