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 | 141 ++++++++++++++++++++++++++-------------------- 1 files changed, 80 insertions(+), 61 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 840f968..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,11 +1877,11 @@ public string CapitalizeFirstLetter(string s) { - if(s == "Pause") + if (s == "Pause") { return "S"; } - else if(s== "PowerOFF") + else if (s == "PowerOFF") { return "O"; } -- Gitblit v1.9.3