From 486fc00f4cf32e2a3239b00fe173264de25f1286 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期日, 19 四月 2026 19:24:32 +0800
Subject: [PATCH] feat(RobotState): 新增 IRobotStateRepository 接口

---
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/IRobotStateRepository.cs |   53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 53 insertions(+), 0 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/IRobotStateRepository.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/IRobotStateRepository.cs
new file mode 100644
index 0000000..2ee6a06
--- /dev/null
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/IRobotStateRepository.cs
@@ -0,0 +1,53 @@
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITaskInfoRepository
+{
+    /// <summary>
+    /// 鏈烘鎵嬬姸鎬佷粨鍌ㄦ帴鍙�
+    /// </summary>
+    /// <remarks>
+    /// 瀹氫箟鏈烘鎵嬬姸鎬佺殑鏁版嵁搴撹闂搷浣溿��
+    /// 澶嶆潅瀵硅薄锛圧obotCrane銆丆urrentTask銆佹暟缁勭瓑锛夊湪璋冪敤鏂逛娇鐢ㄥ己绫诲瀷锛�
+    /// 鍦ㄦ鎺ュ彛灞傞潰浠� Dt_RobotState 瀹炰綋涓烘搷浣滃崟浣嶃��
+    /// </remarks>
+    public interface IRobotStateRepository
+    {
+        /// <summary>
+        /// 鏍规嵁 IP 鍦板潃鑾峰彇鏈烘鎵嬬姸鎬�
+        /// </summary>
+        /// <param name="ipAddress">璁惧 IP 鍦板潃</param>
+        /// <returns>鐘舵�佸疄浣擄紝涓嶅瓨鍦ㄥ垯杩斿洖 null</returns>
+        Dt_RobotState? GetByIp(string ipAddress);
+
+        /// <summary>
+        /// 鑾峰彇鎴栧垱寤烘満姊版墜鐘舵��
+        /// </summary>
+        /// <param name="ipAddress">璁惧 IP 鍦板潃</param>
+        /// <param name="robotCrane">鏈哄櫒浜鸿澶囦俊鎭紝鐢ㄤ簬鍒濆鍖栨柊鐘舵��</param>
+        /// <returns>鐘舵�佸疄浣�</returns>
+        Dt_RobotState GetOrCreate(string ipAddress, RobotCraneDevice robotCrane);
+
+        /// <summary>
+        /// 瀹夊叏鏇存柊鏈烘鎵嬬姸鎬侊紙涔愯閿侊級
+        /// </summary>
+        /// <param name="ipAddress">璁惧 IP 鍦板潃</param>
+        /// <param name="newState">鏂扮姸鎬佸疄浣擄紙RowVersion 浼氳鏇存柊锛�</param>
+        /// <param name="expectedRowVersion">鏈熸湜鐨勮鐗堟湰鍙凤紙鏇存柊鍓嶇殑鐗堟湰锛�</param>
+        /// <returns>鏄惁鏇存柊鎴愬姛锛沠alse 琛ㄧず鐗堟湰鍐茬獊鎴栬褰曚笉瀛樺湪</returns>
+        bool TryUpdate(string ipAddress, Dt_RobotState newState, byte[] expectedRowVersion);
+
+        /// <summary>
+        /// 灏� Dt_RobotState 瀹炰綋杞崲涓� RobotSocketState 鍐呭瓨瀵硅薄
+        /// </summary>
+        /// <param name="entity">鏁版嵁搴撳疄浣�</param>
+        /// <returns>鍐呭瓨鐘舵�佸璞�</returns>
+        RobotSocketState ToSocketState(Dt_RobotState entity);
+
+        /// <summary>
+        /// 灏� RobotSocketState 鍐呭瓨瀵硅薄杞崲涓� Dt_RobotState 瀹炰綋
+        /// </summary>
+        /// <param name="state">鍐呭瓨鐘舵�佸璞�</param>
+        /// <returns>鏁版嵁搴撳疄浣�</returns>
+        Dt_RobotState ToEntity(RobotSocketState state);
+    }
+}

--
Gitblit v1.9.3