From c3877b2ebec19f473f45e8c2245926f65d2a3948 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 10 九月 2025 09:26:23 +0800
Subject: [PATCH] 代码提交

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/SocketClientService.cs |  145 ++++++++++++++++++++++++++++-------------------
 1 files changed, 86 insertions(+), 59 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/SocketClientService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/SocketClientService.cs"
index ee2d69f..9ae7a23 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/SocketClientService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/SocketClientService.cs"
@@ -48,11 +48,13 @@
         string url = AppSettings.Configuration["AGVIP"];
         private readonly IDt_TaskService _taskService;
         private readonly IDt_HostLogRepository _hostLogRepository;
-        private bool _IsOnline=false;
+        private bool _IsOnline = false;
         public DateTime Time { get; set; } = DateTime.Now;
+        private static int _currentNumber = 0;
+        private static readonly object _lock = new object();
 
 
-        public SocketClientService(IDt_TaskService TaskService, IDt_TaskRepository TaskRepository, IDt_StationManagerRepository stationManagerRepository, ILogger<SocketClientService> logger,IDt_HostLogRepository hostLogRepository)
+        public SocketClientService(IDt_TaskService TaskService, IDt_TaskRepository TaskRepository, IDt_StationManagerRepository stationManagerRepository, ILogger<SocketClientService> logger, IDt_HostLogRepository hostLogRepository)
         {
             BaseDal = TaskRepository;
             _stationManagerRepository = stationManagerRepository;
@@ -62,7 +64,7 @@
         }
 
         /// <summary>
-        /// TCPSocket杩炴帴
+        /// Socket杩炴帴
         /// </summary>
         /// <param name="IP"></param>
         /// <param name="Port"></param>
@@ -106,6 +108,7 @@
             {
                 _IsOnline = false;
                 ConsoleHelper.WriteErrorLine($"Socket杩炴帴澶辫触{ex.Message}");
+                LogFactory.GetLog("Socket杩炴帴寮傚父").Error(true, $"Socket杩炴帴澶辫触{ex.Message}{ex.StackTrace}");
                 HandleDisconnection();
             }
         }
@@ -169,7 +172,7 @@
                         else
                         {
                             CheckSum("3");
-                            LogFactory.GetLog("Socket鎺ユ敹鏁版嵁").Error(true, $"CheckSum鏍¢獙澶辫触,瑙f瀽{calculatedChecksum}銆佽鍙杮receivedChecksum}");
+                            LogFactory.GetLog("Socket鎺ユ敹鏁版嵁").Error(true, $"CheckSum鏍¢獙澶辫触,瑙f瀽{calculatedChecksum}銆佽鍙杮receivedChecksum}鏁版嵁{JsonConvert.SerializeObject(GetParse(str))}");
                         }
                     }
                     else
@@ -361,7 +364,7 @@
 
         public const string JobOrderIDPDA = "PDA0000000000000";
 
-        public const string JobOrderIDF   = "FIRE000000000000";
+        public const string JobOrderIDF = "FIRE000000000000";
 
         /// <summary>
         /// 浼樺厛绾�  棰勭暀
@@ -437,6 +440,23 @@
         #endregion
 
         #region WMS涓嬪彂HOST鏂规硶
+        public static string Sequence()
+        {
+            // 浣跨敤閿佺‘淇濈嚎绋嬪畨鍏�
+            lock (_lock)
+            {
+                _currentNumber++;
+
+                // 濡傛灉瓒呰繃99999锛屽彲浠ラ噸缃垨鎶涘嚭寮傚父锛岃繖閲岄�夋嫨閲嶇疆
+                if (_currentNumber > 99999)
+                {
+                    _currentNumber = 1;
+                }
+
+                return _currentNumber.ToString("D5");
+            }
+        }
+
 
         /// <summary>
         /// 璁惧璇锋眰鍏ュ簱  宸ュ簭101
@@ -447,7 +467,7 @@
         {
             try
             {
-                string str = SendandReply + "101" + BaseDal.GetSeqNo().Result.ToString("D5") + GetFieldsAsString(Agvstatus) + GetListStringOutStation(outStations) + OutStationSpare2 + "1" + GetFieldsAsString(inStation);
+                string str = SendandReply + "101" + Sequence() + GetFieldsAsString(Agvstatus) + GetListStringOutStation(outStations) + OutStationSpare2 + "1" + GetFieldsAsString(inStation);
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -465,7 +485,7 @@
         {
             try
             {
-                string str = SendandReply + "925" + BaseDal.GetSeqNo().Result.ToString("D5");
+                string str = SendandReply + "925" + Sequence();
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -483,14 +503,13 @@
         {
             try
             {
-                string str = SendNotReply + "915" + BaseDal.GetSeqNo().Result.ToString("D5") + Command;
+                string str = SendNotReply + "915" + Sequence() + Command;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
             {
                 LogFactory.GetLog("JobReady").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-
         }
 
         /// <summary>
@@ -502,14 +521,13 @@
         {
             try
             {
-                string str = SendNotReply + "913" + BaseDal.GetSeqNo().Result.ToString("D5") + Status;
+                string str = SendNotReply + "913" + Sequence() + Status;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
             {
                 LogFactory.GetLog("DeviceStateReport").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-
         }
 
         /// <summary>
@@ -521,7 +539,7 @@
         {
             try
             {
-                string str = SendandReply + "917" + BaseDal.GetSeqNo().Result.ToString("D5") + Status;
+                string str = SendandReply + "917" + Sequence() + Status;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -542,14 +560,13 @@
         {
             try
             {
-                string str = SendandReply + "905" + BaseDal.GetSeqNo().Result.ToString("D5") + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
+                string str = SendandReply + "905" + Sequence() + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
             {
                 LogFactory.GetLog("JobStartOrEnd").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-
         }
 
         /// <summary>
@@ -565,14 +582,13 @@
         {
             try
             {
-                string str = SendNotReply + "907" + BaseDal.GetSeqNo().Result.ToString("D5") + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
+                string str = SendNotReply + "907" + Sequence() + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
             {
                 LogFactory.GetLog("PalletActionReport宸ュ簭907").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-
         }
 
         /// <summary>
@@ -587,12 +603,12 @@
         {
             try
             {
-                string str = SendandReply + "901" + BaseDal.GetSeqNo().Result.ToString("D5") + "0" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
+                string str = SendandReply + "901" + Sequence() + "0" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
                 Dt_HostLog hostLog = new Dt_HostLog()
                 {
                     CommandID = 901,
-                    Count=0,
-                    Messgae=str,
+                    Count = 0,
+                    Messgae = str,
                 };
                 _hostLogRepository.AddData(hostLog);
                 clientSend(MakeStringToByteMsg(str));
@@ -601,35 +617,32 @@
             {
                 LogFactory.GetLog("PalletActionReport宸ュ簭901").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-
         }
 
         public void PalletActionReportPDA(string FormLocation, string ToLocation, string TaskType, string PallteCode)
         {
             try
             {
-                string str = SendandReply + "901" + BaseDal.GetSeqNo().Result.ToString("D5") + "0" + JobOrderIDPDA + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
+                string str = SendandReply + "901" + Sequence() + "0" + JobOrderIDPDA + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
             {
                 LogFactory.GetLog("PalletActionReportPDA宸ュ簭901").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-
         }
 
         public void PalletActionReportFrie(string FormLocation, string ToLocation, string TaskType, string PallteCode)
         {
             try
             {
-                string str = SendandReply + "901" + BaseDal.GetSeqNo().Result.ToString("D5") + "0" + JobOrderIDF + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
+                string str = SendandReply + "901" + Sequence() + "0" + JobOrderIDF + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
             {
                 LogFactory.GetLog("PalletActionReportPDA宸ュ簭901").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-
         }
 
         /// <summary>
@@ -654,7 +667,6 @@
             {
                 LogFactory.GetLog("DeviceStationStatusReport").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-
         }
 
         /// /// <summary>
@@ -669,7 +681,7 @@
             try
             {
                 ErrorReport(Restocking, "A", "00");
-                string str = SendandReply + "105" + BaseDal.GetSeqNo().Result.ToString("D5") + "R" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
+                string str = SendandReply + "105" + Sequence() + "R" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
                 Dt_HostLog hostLog = new Dt_HostLog()
                 {
                     CommandID = 105,
@@ -683,7 +695,6 @@
             {
                 LogFactory.GetLog("RecreateGetLocation").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-
         }
 
         /// <summary>
@@ -694,7 +705,7 @@
         {
             try
             {
-                string str = SendNotReply + "981" + BaseDal.GetSeqNo().Result.ToString("D5") + message;
+                string str = SendNotReply + "981" + Sequence() + message;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -713,7 +724,8 @@
         {
             try
             {
-                string str = SendNotReply + "985" + BaseDal.GetSeqNo().Result.ToString("D5") + Trouble + Level + Location;
+                string str = SendNotReply + "985" + Sequence() + Trouble + Level + Location;
+
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -731,14 +743,13 @@
         {
             try
             {
-                string str = SendNotReply + "104" + BaseDal.GetSeqNo().Result.ToString("D5") + Statues;
+                string str = SendNotReply + "104" + Sequence() + Statues;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
             {
                 LogFactory.GetLog("DeviceReceiveJobResponse").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-
         }
 
         /// /// <summary>
@@ -753,7 +764,7 @@
             try
             {
                 ErrorReport(EmptyOutBoundconst, "A", "00");
-                string str = SendandReply + "107" + BaseDal.GetSeqNo().Result.ToString("D5") + "1" + JobOrderID + priority + FormLocation + ToLocation + "O" + TrayCnt + PallteCode;
+                string str = SendandReply + "107" + Sequence() + "1" + JobOrderID + priority + FormLocation + ToLocation + "O" + TrayCnt + PallteCode;
                 Dt_HostLog hostLog = new Dt_HostLog()
                 {
                     CommandID = 107,
@@ -767,7 +778,6 @@
             {
                 LogFactory.GetLog("EmptyOutBound").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-
         }
 
         /// <summary>
@@ -778,15 +788,24 @@
         {
             try
             {
-                string str = SendNotReply + "910" + BaseDal.GetSeqNo().Result.ToString("D5") + GetFieldsAsString(AgvStatus) + X + Y;
+                string str = SendNotReply + "910" + Sequence() + GetFieldsAsString(AgvStatus) + X + Y;
                 clientSend(MakeStringToByteMsg(str));
-                Dt_HostLog hostLog = new Dt_HostLog()
+                var hostlog = SqlSugarHelper.DbWMS.Queryable<Dt_HostLog>().Where(x => x.CommandID == 910).First();
+                if (hostlog != null) 
                 {
-                    CommandID = 910,
-                    Count = 0,
-                    Messgae = str,
-                };
-                _hostLogRepository.AddData(hostLog);
+                    hostlog.ModifyDate=DateTime.Now;
+                    SqlSugarHelper.DbWMS.Updateable(hostlog).ExecuteCommand();
+                }
+                else
+                {
+                    Dt_HostLog hostLog = new Dt_HostLog()
+                    {
+                        CommandID = 910,
+                        Count = 0,
+                        Messgae = str,
+                    };
+                    _hostLogRepository.AddData(hostLog);
+                }
             }
             catch (Exception ex)
             {
@@ -800,7 +819,7 @@
         /// <param name="AgvStatus"></param>
         /// <param name="X"></param>
         /// <param name="Y"></param>
-        public void FireAlarmReportResponse(string SeqNo,string IsOK,string Location)
+        public void FireAlarmReportResponse(string SeqNo, string IsOK, string Location)
         {
             try
             {
@@ -811,7 +830,7 @@
             {
                 LogFactory.GetLog("FireAlarmReportResponse").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-            
+
         }
 
 
@@ -821,7 +840,7 @@
         /// <param name="AgvStatus"></param>
         /// <param name="X"></param>
         /// <param name="Y"></param>
-        public void UpdateLocalTimeResponse(string message,string SeqNo)
+        public void UpdateLocalTimeResponse(string message, string SeqNo)
         {
             try
             {
@@ -882,7 +901,7 @@
             {
                 ErrorReport("2199", "A", "00");
                 LogFactory.GetLog("Host102鍥炲WMS101ReceiveCommandResponse").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
-            }         
+            }
         }
 
         /// <summary>
@@ -922,9 +941,9 @@
                 ErrorReport("2199", "A", "00");
                 LogFactory.GetLog("Host906鍥炲WMS905AGVJobStartOrEndResponse").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-           
 
-            
+
+
         }
 
         /// <summary>
@@ -956,7 +975,7 @@
                 ErrorReport("2199", "A", "00");
                 LogFactory.GetLog("Host902鍥炲WMS901DataReportResponse").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-            
+
             #endregion
         }
         /// <summary>
@@ -998,7 +1017,7 @@
                 StationStatus stationIn = GetStationStatus("B002");
                 StationStatus stationOut = GetStationStatus("B001");
 
-                if(stationIn == null || stationOut == null)
+                if (stationIn == null || stationOut == null)
                 {
                     ErrorReport("2103", "A", "00");
                 }
@@ -1078,7 +1097,7 @@
                 {
                     //OK
                     case "0":
-                        GetLocation(parseMessage,true);
+                        GetLocation(parseMessage, true);
                         break;
                     //NG
                     case "1":
@@ -1227,7 +1246,7 @@
                 CommandID = Convert.ToInt32(987),
             };
         }
-       
+
         /// <summary>
         /// HOST鑾峰彇璁惧鐘舵��  宸ュ簭909
         /// </summary>
@@ -1261,20 +1280,20 @@
                 ErrorReport("2199", "A", "00");
                 LogFactory.GetLog("Host蹇冭烦").InfoFormat(true, $"璇锋眰鍙傛暟锛歿JsonConvert.SerializeObject(ex.Message)}{Environment.NewLine}{ex.StackTrace}", "");
             }
-            
+
         }
 
 
         /// <summary>
         /// WMS鍚屾Host鏃堕棿  宸ュ簭301
         /// </summary>
-        public void UpdateLocalTime(string Time,string SeqNo)
+        public void UpdateLocalTime(string Time, string SeqNo)
         {
             try
             {
                 SYSTEMTIME newTime = new SYSTEMTIME
                 {
-                    Year = Convert.ToUInt16(Time.Substring(0,4)),
+                    Year = Convert.ToUInt16(Time.Substring(0, 4)),
                     Month = Convert.ToUInt16(Time.Substring(4, 2)),
                     Day = Convert.ToUInt16(Time.Substring(6, 2)),
                     Hour = Convert.ToUInt16(Time.Substring(8, 2)),
@@ -1495,7 +1514,7 @@
             {
                 taskType = (int)TaskStationTypeEnum.StationToStation;
                 taskState = (int)TaskOutStatusEnum.OutNew;
-                task.SourceAddress = StationParse(parseMessage.body.FromLocation)  ;
+                task.SourceAddress = StationParse(parseMessage.body.FromLocation);
                 task.TargetAddress = StationParse(parseMessage.body.ToLocation);
                 task.CurrentAddress = StationParse(parseMessage.body.FromLocation);
                 task.NextAddress = StationParse(parseMessage.body.ToLocation);
@@ -1530,7 +1549,7 @@
         }
 
 
-        public void GetLocation(ParseMessage parseMessage,bool repeat=false)
+        public void GetLocation(ParseMessage parseMessage, bool repeat = false)
         {
 
             switch (parseMessage.body.JobType)
@@ -1636,7 +1655,7 @@
                     break;
                 default:
                     break;
-            }  
+            }
         }
         /// <summary>
         /// 娣诲姞AGV浠诲姟
@@ -1698,7 +1717,7 @@
         }
         public ParseMessage GetParse(string x)
         {
-            
+
             if (string.IsNullOrEmpty(x))
             {
                 throw new ArgumentNullException(nameof(x), "Input string cannot be null or empty");
@@ -1777,7 +1796,7 @@
 
             return result;
         }
-        
+
         public AGVStatusRespone GetAGVStatus()
         {
             string urlnew = url + "/ilns/AGV/getState";
@@ -1846,7 +1865,7 @@
         public string StationParse(string station)
         {
             var Station = SqlSugarHelper.DbWMS.Queryable<Dt_StationManager>().Where(x => x.HostName == station.Substring(4, 2)).First();
-            if(Station != null)
+            if (Station != null)
             {
                 return Station.stationName;
             }
@@ -1858,6 +1877,14 @@
 
         public string CapitalizeFirstLetter(string s)
         {
+            if (s == "Pause")
+            {
+                return "S";
+            }
+            else if (s == "PowerOFF")
+            {
+                return "O";
+            }
             if (string.IsNullOrEmpty(s))
             {
                 return "";

--
Gitblit v1.9.3