From 6c8b4c256053c61e848c3f9dd494feebf6ef0cea Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <1247017146@qq.com>
Date: 星期三, 21 五月 2025 14:25:50 +0800
Subject: [PATCH] 1

---
 /dev/null                                                                                             | 1006 -----------------------------------------------
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json                                         |    4 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/AGVService.cs                        |   80 ++-
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/SocketClientService.cs                       |  129 +++--
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/AGV/IAGVService.cs                      |    3 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Socket/ParseMessage.cs                                         |    3 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/WIDESEA_StoragIntegrationServices.csproj |    1 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/AGVController.cs                             |   23 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo                                             |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/ISocketClientServices.cs                    |    6 
 10 files changed, 148 insertions(+), 1,107 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
index a7edf7d..91c3958 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Socket/ParseMessage.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Socket/ParseMessage.cs"
index 3459c27..1511bdd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Socket/ParseMessage.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Socket/ParseMessage.cs"
@@ -153,7 +153,8 @@
         /// <summary>
         /// 鏄惁鍚敤
         /// </summary>
-        public string StationEnable { get; set; }
+        public string WorkstationO { get; set; }
+        public string WorkstationT { get; set; }
 
     }
     public class Connection
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/AGV/IAGVService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/AGV/IAGVService.cs"
index edcbd9f..e461c8d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/AGV/IAGVService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/AGV/IAGVService.cs"
@@ -16,7 +16,8 @@
         WebResponseContent AGVStartOrEndJob(string Status, int TaskNum);
         //public WebResponseContent PallteLoadOrUnLoad(string Message, string PallteCode);
 
-        WebResponseContent DeviceErrorResponse(string Message,int TaskNum);
+        WebResponseContent DeviceErrorResponse(string Message, int TaskNum);
+
         WebResponseContent RequestOutTask(string PalletCode, string SourceAddress, string TargetAddress);
 
         WebResponseContent InTask(string PalletCode, string SourceAddress, string TargetAddress);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/ISocketClientServices.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/ISocketClientServices.cs"
index 9f32bed..2c2d481 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/ISocketClientServices.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/ISocketClientServices.cs"
@@ -19,7 +19,7 @@
         /// <param name="IP"></param>
         /// <param name="Port"></param>
         /// <returns></returns>
-         void ConnectServer(string IP, int Port);
+        void ConnectServer(string IP, int Port);
 
         /// <summary>
         /// 鍙戦��
@@ -107,7 +107,7 @@
         /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
         /// <param name="PallteCode">鎵樼洏鍙�</param>
         /// <returns></returns>
-        public void DeviceStationStatusReport(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, List<InStationStatus> inStation);
+        public void DeviceStationStatusReport(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, List<InStationStatus> inStation, string sGetSeqNo);
 
         /// /// <summary>
         /// 閲嶆柊鑾峰彇璐т綅淇℃伅 宸ュ簭105
@@ -168,7 +168,7 @@
         /// HOST璁惧鐘舵�佽幏鍙�  宸ュ簭935
         /// </summary>
         /// <param name="message"></param>
-        public void DeviceStationStatusInvite();
+        public void DeviceStationStatusInvite(string sSeqNo);
 
         /// <summary>
         /// 鎺ユ敹HOST閲嶆柊鍒嗛厤璐т綅  宸ュ簭106
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/IWorkTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/IWorkTaskService.cs"
deleted file mode 100644
index 26872f7..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageSocketServices/IWorkTaskService.cs"
+++ /dev/null
@@ -1,199 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using WIDESEA_Core;
-using WIDESEA_DTO;
-using WIDESEA_DTO.AGV;
-using WIDESEA_StorageSocketServices;
-
-namespace WIDESEA_IStorageSocketServices
-{
-    public interface IWorkTaskService : IDependency
-    {
-        /// <summary>
-        /// 璁惧璇锋眰鍏ュ簱  宸ュ簭101
-        /// </summary>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        /// <param name="InStation">鍏ュ簱绔欏彴</param>
-        public void DeviceRequestInbound(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, InStationStatus inStation);
-
-        /// <summary>
-        /// 璇锋眰閫氳  宸ュ簭925
-        /// </summary>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        /// <param name="InStation">鍏ュ簱绔欏彴</param>
-        public void RequestCommunication();
-
-        /// <summary>
-        /// 涓嶅厑璁镐笅鍙戜换鍔�  宸ュ簭915
-        /// </summary>
-        /// <param name="Command">鍛戒护</param>
-        /// <returns></returns>
-        public void JobReady(string Command);
-
-        /// <summary>
-        /// 璁惧鐘舵�佷笂鎶� 宸ュ簭913
-        /// </summary>
-        /// <param name="state">鐘舵�乗銆丷杩愯</param>
-        /// <returns></returns>
-        public void DeviceStateReport(string Status);
-
-        /// <summary>
-        /// 璁惧鐘舵�佷笂鎶� 宸ュ簭917
-        /// </summary>
-        /// <param name="state">鐘舵�乗銆丆ontrolMode鑷姩銆丮aintenanceMode鎵嬪姩</param>
-        public void DeviceAutoStatusReport(string Status);
-
-        /// /// <summary>
-        /// 浣滀笟寮�濮嬫垨缁撴潫 宸ュ簭905
-        /// </summary>
-        /// <param name="Status">鐘舵�� L鎸嘇GV灏嗘墭鐩樺弶鍒拌揣鍙変笂銆乁鎸嘇GV灏嗘墭鐩樻斁鍒板簱浣嶄笂</param>
-        /// <param name="FormLocation">璧风偣</param>
-        /// <param name="ToLocation">缁堢偣</param>
-        /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        public void JobStartOrEnd(string Status, string FormLocation, string ToLocation, string TaskType, string PallteCode);
-
-        
-        /// <summary>
-        /// 鎵樼洏鍔ㄤ綔涓婃姤 宸ュ簭907
-        /// </summary>
-        /// <param name="Status">鐘舵�� L鎸嘇GV灏嗘墭鐩樺弶鍒拌揣鍙変笂銆乁鎸嘇GV灏嗘墭鐩樻斁鍒板簱浣嶄笂</param>
-        /// <param name="FormLocation">璧风偣</param>
-        /// <param name="ToLocation">缁堢偣</param>
-        /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        /// <returns></returns>
-        public void PalletActionReport(string Status, string FormLocation, string ToLocation, string TaskType, string PallteCode);
-
-        /// <summary>
-        /// 浣滀笟瀹屾垚涓婃姤 宸ュ簭901
-        /// </summary>
-        /// <param name="FormLocation">璧风偣</param>
-        /// <param name="ToLocation">缁堢偣</param>
-        /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        /// <returns></returns>
-        public void PalletActionReport(string FormLocation, string ToLocation, string TaskType, string PallteCode);
-
-        /// <summary>
-        /// 鍥炲HOST909宸ュ簭  宸ュ簭910
-        /// </summary>
-        /// <param name="AgvStatus"></param>
-        public void DeviceStatusReportResponse(HOSTAGVStatus AgvStatus, string X, string Y);
-
-        /// <summary>
-        /// 璁惧绔欏彴鐘舵�佷笂鎶� 宸ュ簭936
-        /// </summary>
-        /// <param name="FormLocation">璧风偣</param>
-        /// <param name="ToLocation">缁堢偣</param>
-        /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        /// <returns></returns>
-        public void DeviceStationStatusReport(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, List<InStationStatus> inStation);
-
-        /// /// <summary>
-        /// 閲嶆柊鑾峰彇璐т綅淇℃伅 宸ュ簭105
-        /// </summary>
-        /// <param name="FormLocation">璧风偣</param>
-        /// <param name="ToLocation">缁堢偣</param>
-        /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        public void RecreateGetLocation(string FormLocation, string ToLocation, string TaskType, string PallteCode);
-
-        /// /// <summary>
-        ///  寮傚父涓婃姤  宸ュ簭985
-        /// </summary>
-        /// <param name="FormLocation">璧风偣</param>
-        /// <param name="ToLocation">缁堢偣</param>
-        /// <param name="Location">00琛ㄧずAGV閿欒銆�01-08琛ㄧず绔欏彴閿欒銆�99琛ㄧず浣滀笟鎺ユ敹鍓嶆暟鎹敊璇�</param>
-        public void ErrorReport(string Trouble, string Level, string Location);
-
-        /// <summary>
-        /// 鎺ユ敹HOST宸ュ簭103鍥為鍝嶅簲  宸ュ簭104
-        /// </summary>
-        /// <param name="Statues">0琛ㄧずOK鎺ユ敹浣滀笟銆�1琛ㄧず鎷掔粷銆�9琛ㄧず浣滀笟浠诲姟楠岃瘉鏈夎</param>
-        /// <returns></returns>
-        public void DeviceReceiveJobResponse(string Statues);
-
-        /// /// <summary>
-        /// 绌哄嚭搴� 宸ュ簭107
-        /// </summary>
-        /// <param name="FormLocation">璧风偣</param>
-        /// <param name="ToLocation">缁堢偣</param>
-        /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        public void EmptyOutBound(string FormLocation, string ToLocation, string PallteCode);
-
-        /// <summary>
-        /// 鎺ユ敹HOST 鍝嶅簲璇锋眰  宸ュ簭102 鍥炲宸ュ簭101
-        /// </summary>
-        /// <param name="message"></param>
-        public void ReceiveCommandResponse(string message);
-
-        /// <summary>
-        /// 鎺ユ敹HOST鍝嶅簲AGV浣滀笟寮�濮嬫垨鍚姩 宸ュ簭906 鍥炲宸ュ簭905
-        /// </summary>
-        public void AGVJobStartOrEndResponse(string status,string message);
-
-        /// <summary>
-        /// 鏁版嵁鎶ュ憡鍝嶅簲 宸ュ簭902 鍥炲宸ュ簭901
-        /// </summary>
-        public void DataReportResponse(string message);
-
-        /// <summary>
-        /// HOST涓嬪彂鍑哄簱浠诲姟  宸ュ簭103
-        /// </summary>
-        /// <param name="message"></param>
-        public void HOSTOutBoundTask(string message);
-
-        /// <summary>
-        /// HOST璁惧鐘舵�佽幏鍙�  宸ュ簭935
-        /// </summary>
-        /// <param name="message"></param>
-        public void DeviceStationStatusInvite();
-
-        /// <summary>
-        /// 鎺ユ敹HOST閲嶆柊鍒嗛厤璐т綅  宸ュ簭106
-        /// </summary>
-        /// <param name="message"></param>
-        public void RecreateGetLocation(string message);
-
-        /// <summary>
-        ///  HOST绌哄嚭搴撳搷搴� 宸ュ簭108
-        /// </summary>
-        /// <param name="message"></param>
-        public void EmptyOutBoundResponse(string message);
-
-        /// <summary>
-        /// HOST鑾峰彇璁惧鐘舵��  宸ュ簭909
-        /// </summary>
-        public void DeviceStatusReportRequest();
-
-        /// <summary>
-        /// 鎷兼帴鎶ユ枃
-        /// </summary>
-        /// <param name="Message"></param>
-        /// <returns></returns>
-        /// <exception cref="Exception"></exception>
-        public byte[] MakeStringToByteMsg(string Message);
-
-        /// <summary>
-        /// 鑾峰彇CheckSum鍊�
-        /// </summary>
-        /// <param name="data"></param>
-        /// <returns></returns>
-        /// <exception cref="Exception"></exception>
-        public string GetCheckSum(byte[] data);
-
-        public string GetListStringOutStation(List<OutStationStatus> outStationStatus);
-        public string GetListStringInStation(List<InStationStatus> inStationStatus);
-
-        public AGVStatusRespone GetAGVStatus();
-
-        public string CapitalizeFirstLetter(string s);
-        public StationStatus GetStationStatus(string stationName);
-    }
-}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/AGVService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/AGVService.cs"
index 3c643e1..0a6e45e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/AGVService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/AGVService.cs"
@@ -27,11 +27,11 @@
         private readonly ISys_ConfigService _configService;
         private readonly IDt_StationManagerRepository _stationManagerRepository;
         private readonly LogFactory LogFactory = new LogFactory();
-        private readonly ISocketClientServices _Socket;
+        public SocketClientService _Socket { get; set; }
         private readonly IMapper _mapper;
         private readonly IDt_DeviceInfoRepository _deviceInfoRepository;
 
-        public AGVService(ILocationInfoRepository locationRepository,IDt_TaskRepository taskRepository,IStockInfoRepository stockInfoRepository, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository,IDt_DeviceInfoRepository deviceInfoRepository, IMapper mapper, ISocketClientServices socketClientServices)
+        public AGVService(ILocationInfoRepository locationRepository, IDt_TaskRepository taskRepository, IStockInfoRepository stockInfoRepository, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository, IDt_DeviceInfoRepository deviceInfoRepository, IMapper mapper, SocketClientService socketClientService)
         {
             _locationRepository = locationRepository;
             BaseDal = taskRepository;
@@ -40,7 +40,7 @@
             _stationManagerRepository = stationManagerRepository;
             _deviceInfoRepository = deviceInfoRepository;
             _mapper = mapper;
-            _Socket= socketClientServices;
+            _Socket = socketClientService;
         }
         #region 澶栭儴鎺ュ彛鏂规硶
 
@@ -67,38 +67,39 @@
                     return content.Error("璇ユ墭鐩樺凡瀛樺湪浠诲姟");
                 }
                 List<OutStationStatus> outStationStatus = new List<OutStationStatus>();
-                foreach (var item in Outstation)
+                StationStatus stationOut = _Socket.GetStationStatus("B001");
+                var taskOutStationO = BaseDal.QueryFirst(x => x.SourceAddress == "B001::1" || x.TargetAddress == "B001::1");
+                var taskOutStationT = BaseDal.QueryFirst(x => x.SourceAddress == "B001::2" || x.TargetAddress == "B001::2");
+                outStationStatus.Add(new OutStationStatus()
                 {
-                    StationStatus station = _Socket.GetStationStatus(item.stationName);
-                    var taskStation = BaseDal.QueryFirst(x => x.SourceAddress == item.stationName || x.TargetAddress == item.stationName);
-                    outStationStatus.Add(new OutStationStatus()
-                    {
-                        StationName = item.HostName,
-                        StationEnable = station.StationEnable == "1" ? "0" : "1",
-                        IsDistributionTask = taskStation == null ? "0" : "1",
-                        Spare1 = "00"
-                    });
-                }
+                    StationName = "04",
+                    StationEnable = stationOut.WorkstationO == "1" ? "0" : "1",
+                    IsDistributionTask = taskOutStationO == null ? "0" : "1",
+                    Spare1 = "00"
+                });
+                outStationStatus.Add(new OutStationStatus()
+                {
+                    StationName = "03",
+                    StationEnable = stationOut.WorkstationT == "1" ? "0" : "1",
+                    IsDistributionTask = taskOutStationT == null ? "0" : "1",
+                    Spare1 = "00"
+                });
                 AGVStatusRespone status = _Socket.GetAGVStatus();
                 HOSTAGVStatus AgvStatus = new HOSTAGVStatus()
                 {
                     RuntimeStatus = _Socket.CapitalizeFirstLetter(status.RuntimeStatus),
-                    AutoStatus = status.AutoStatus== "MaintenanceMode"?"1":"0",
+                    AutoStatus = status.AutoStatus == "MaintenanceMode" ? "1" : "0",
                     Ready = status.AutoStatus == "MaintenanceMode" ? "0" : "1",
                 };
                 InStationStatus inStationStatus = new InStationStatus()
                 {
-                    StationName = Instation.stationName,
+                    StationName = Instation.HostName,
                     StationEnable = "0",
                     IsDistributionTask = "0",
-                    PallteCode = task.PalletCode,
+                    PallteCode = PalletCode,
                 };
                 _Socket.DeviceRequestInbound(AgvStatus, outStationStatus, inStationStatus);
                 return content.OK("宸蹭笅鍙戝叆搴撲换鍔�");
-            }
-            catch (Autofac.Core.DependencyResolutionException ex)
-            {
-                return content.Error(ex.Message);
             }
             catch (Exception ex)
             {
@@ -161,12 +162,12 @@
                     switch (Status.AutoStatus)
                     {
                         case "MaintenanceMode":
-                            //鎵嬪姩
+                            //杩愯
                             _Socket.DeviceAutoStatusReport("1");
                             Thread.Sleep(500);
                             break;
                         case "ControlMode":
-                            //鑷姩
+                            //鍏虫満
                             _Socket.DeviceAutoStatusReport("0");
                             Thread.Sleep(500);
                             break;
@@ -191,7 +192,7 @@
             }
         }
 
-       
+
         public WebResponseContent AGVStartOrEndJob(string Status, int TaskNum)
         {
             WebResponseContent content = new WebResponseContent();
@@ -293,7 +294,7 @@
         }
 
 
-        public WebResponseContent DeviceErrorResponse(string Message,int TaskNum)
+        public WebResponseContent DeviceErrorResponse(string Message, int TaskNum)
         {
             WebResponseContent content = new WebResponseContent();
             try
@@ -301,7 +302,7 @@
                 var task = BaseDal.QueryFirst(x => x.TaskNum == TaskNum);
                 if (task != null)
                 {
-                    switch(Message)
+                    switch (Message)
                     {
                         case "RepeatInbound":
 
@@ -309,7 +310,7 @@
                         case "EmptyOutbound":
 
                             break;
-                        default:break;
+                        default: break;
                     }
                 }
                 return content.OK();
@@ -319,6 +320,30 @@
                 return content.Error(ex.Message);
             }
         }
+
+        public WebResponseContent add()
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                task_call task_Call = new task_call()
+                {
+                    d_task_type = 2,
+                    d_floor = 1,
+                    d_involed1 = "000004",
+                    d_involed2 = "450101",
+                    d_involed5 = 11,
+                };
+
+                var x = SqlSugarHelper.DbAGV.Insertable(task_Call).ExecuteCommand();
+                return content.OK(data: x);
+            }
+            catch (Exception ex)
+            {
+                return content.Error(ex.Message);
+            }
+        }
+
         public WebResponseContent RequestOutTask(string PalletCode, string SourceAddress, string TargetAddress)
         {
             WebResponseContent content = new WebResponseContent();
@@ -395,6 +420,7 @@
                 return content.Error(ex.Message);
             }
         }
+
         public WebResponseContent GetAGVStatus()
         {
             try
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/WIDESEA_StoragIntegrationServices.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/WIDESEA_StoragIntegrationServices.csproj"
index cf16f6a..17616aa 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/WIDESEA_StoragIntegrationServices.csproj"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/WIDESEA_StoragIntegrationServices.csproj"
@@ -14,6 +14,7 @@
     <ProjectReference Include="..\WIDESEA_IStoragIntegrationServices\WIDESEA_IStoragIntegrationServices.csproj" />
     <ProjectReference Include="..\WIDESEA_Services\WIDESEA_Services.csproj" />
     <ProjectReference Include="..\WIDESEA_StorageBasicServices\WIDESEA_StorageBasicServices.csproj" />
+    <ProjectReference Include="..\WIDESEA_StorageSocketServices\WIDESEA_StorageSocketServices.csproj" />
   </ItemGroup>
 
 </Project>
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 43d6f4f..8caa053 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"
@@ -22,7 +22,6 @@
 using WIDESEA_Core.BaseRepository;
 using AutoMapper;
 using Mapster;
-using System.Threading.Tasks;
 
 namespace WIDESEA_StorageSocketServices
 {
@@ -45,9 +44,8 @@
         private readonly ILocationInfoRepository _locationRepository;
 
 
-        public SocketClientService(/*IDt_TaskService taskService*/IDt_TaskRepository TaskRepository, IDt_StationManagerRepository stationManagerRepository, ILogger<SocketClientService> logger)
+        public SocketClientService(IDt_TaskRepository TaskRepository, IDt_StationManagerRepository stationManagerRepository, ILogger<SocketClientService> logger)
         {
-            //_taskService = taskService;
             BaseDal = TaskRepository;
             _stationManagerRepository = stationManagerRepository;
             _logger = logger;
@@ -143,7 +141,7 @@
                     }
                     else
                     {
-                        LogFactory.GetLog("Socket鎺ユ敹鏁版嵁").Error(true, "鏃犳晥鎶ユ枃鏍煎紡");
+                        LogFactory.GetLog("Socket鎺ユ敹鏁版嵁").Error(true, $"鏃犳晥鎶ユ枃鏍煎紡:{JsonConvert.SerializeObject(Y)}");
                     }
                 }
                 catch
@@ -168,7 +166,7 @@
                     DataReportResponse(x.Substring(21, 1));
                     break;
                 case "935":
-                    DeviceStationStatusInvite();
+                    DeviceStationStatusInvite(x.Substring(15, 5));
                     break;
                 case "103":
                     HOSTOutBoundTask(x);
@@ -230,7 +228,7 @@
         public void clientSend(byte[] buffer)
         {
             var Y = Encoding.UTF8.GetString(buffer);
-            LogFactory.GetLog("Socket鍙戦�佹暟鎹�").Error(true, Y);
+            LogFactory.GetLog("Socket鍙戦�佹暟鎹�").Info(true, Y);
             socket.Send(buffer);
         }
 
@@ -275,7 +273,7 @@
         /// <summary>
         /// 璁惧缂栧彿
         /// </summary>
-        public const string DeviceID = "0000000001";
+        public const string DeviceID = "0013130010";
         /// <summary>
         /// 鍙戦�佷笉闇�瑕佸洖澶�
         /// </summary>
@@ -338,7 +336,7 @@
         {
             try
             {
-                string str = SendandReply + "101" + BaseDal.GetSeqNo().Result.ToString() + GetFieldsAsString(Agvstatus) + GetListStringOutStation(outStations) + "1" + GetFieldsAsString(inStation);
+                string str = SendandReply + "101" + BaseDal.GetSeqNo().Result.ToString("D5") + GetFieldsAsString(Agvstatus) + GetListStringOutStation(outStations) + "1" + GetFieldsAsString(inStation);
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -356,7 +354,7 @@
         {
             try
             {
-                string str = SendandReply + "925" + BaseDal.GetSeqNo().Result.ToString();
+                string str = SendandReply + "925" + BaseDal.GetSeqNo().Result.ToString("D5");
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -374,7 +372,7 @@
         {
             try
             {
-                string str = SendNotReply + "915" + BaseDal.GetSeqNo().Result.ToString() + Command;
+                string str = SendNotReply + "915" + BaseDal.GetSeqNo().Result.ToString("D5") + Command;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -393,7 +391,7 @@
         {
             try
             {
-                string str = SendNotReply + "913" + BaseDal.GetSeqNo().Result.ToString() + Status;
+                string str = SendNotReply + "913" + BaseDal.GetSeqNo().Result.ToString("D5") + Status;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -412,7 +410,7 @@
         {
             try
             {
-                string str = SendNotReply + "917" + BaseDal.GetSeqNo().Result.ToString() + Status;
+                string str = SendNotReply + "917" + BaseDal.GetSeqNo().Result.ToString("D5") + Status;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -434,7 +432,7 @@
         {
             try
             {
-                string str = SendandReply + "905" + BaseDal.GetSeqNo().Result.ToString() + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
+                string str = SendandReply + "905" + BaseDal.GetSeqNo().Result.ToString("D5") + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -457,7 +455,7 @@
         {
             try
             {
-                string str = SendNotReply + "907" + BaseDal.GetSeqNo().Result.ToString() + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
+                string str = SendNotReply + "907" + BaseDal.GetSeqNo().Result.ToString("D5") + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -479,7 +477,7 @@
         {
             try
             {
-                string str = SendandReply + "901" + BaseDal.GetSeqNo().Result.ToString() + "0" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
+                string str = SendandReply + "901" + BaseDal.GetSeqNo().Result.ToString("D5") + "0" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -497,11 +495,14 @@
         /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
         /// <param name="PallteCode">鎵樼洏鍙�</param>
         /// <returns></returns>
-        public void DeviceStationStatusReport(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, List<InStationStatus> inStation)
+        public void DeviceStationStatusReport(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, List<InStationStatus> inStation, string sGetSeqNo)
         {
             try
             {
-                string str = SendNotReply + "936" + BaseDal.GetSeqNo().Result.ToString() + GetFieldsAsString(Agvstatus) + GetListStringOutStation(outStations) + GetListStringInStation(inStation);
+                var agvstatus = GetFieldsAsString(Agvstatus);
+                var outstation = GetListStringOutStation(outStations);
+                var instation = GetListStringInStation(inStation);
+                string str = SendNotReply + "936" + sGetSeqNo + agvstatus + outstation + OutStationSpare2 + "2" + instation;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -522,7 +523,7 @@
         {
             try
             {
-                string str = SendandReply + "105" + BaseDal.GetSeqNo().Result.ToString() + "R" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
+                string str = SendandReply + "105" + BaseDal.GetSeqNo().Result.ToString("D5") + "R" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -542,7 +543,7 @@
         {
             try
             {
-                string str = SendNotReply + "985" + BaseDal.GetSeqNo().Result.ToString() + Trouble + Level + Location;
+                string str = SendNotReply + "985" + BaseDal.GetSeqNo().Result.ToString("D5") + Trouble + Level + Location;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -561,7 +562,7 @@
         {
             try
             {
-                string str = SendNotReply + "104" + BaseDal.GetSeqNo().Result.ToString() + Statues;
+                string str = SendNotReply + "104" + BaseDal.GetSeqNo().Result.ToString("D5") + Statues;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -582,7 +583,7 @@
         {
             try
             {
-                string str = SendandReply + "107" + BaseDal.GetSeqNo().Result.ToString() + "1" + JobOrderID + priority + FormLocation + ToLocation + "O" + TrayCnt + PallteCode;
+                string str = SendandReply + "107" + BaseDal.GetSeqNo().Result.ToString("D5") + "1" + JobOrderID + priority + FormLocation + ToLocation + "O" + TrayCnt + PallteCode;
                 clientSend(MakeStringToByteMsg(str));
             }
             catch (Exception ex)
@@ -598,7 +599,8 @@
         /// <param name="AgvStatus"></param>
         public void DeviceStatusReportResponse(HOSTAGVStatus AgvStatus, string X, string Y)
         {
-            string str = SendNotReply + "910" + BaseDal.GetSeqNo().Result.ToString() + "1" + GetFieldsAsString(AgvStatus) + X + Y;
+            string str = SendNotReply + "910" + BaseDal.GetSeqNo().Result.ToString("D5") + GetFieldsAsString(AgvStatus) + X + Y;
+            clientSend(MakeStringToByteMsg(str));
         }
 
         #endregion
@@ -783,44 +785,47 @@
         /// HOST璁惧鐘舵�佽幏鍙�  宸ュ簭935
         /// </summary>
         /// <param name="message"></param>
-        public void DeviceStationStatusInvite()
+        public void DeviceStationStatusInvite(string sSeqNo)
         {
             try
             {
                 //鍥炲936
-                List<Dt_StationManager> Instation = _stationManagerRepository.QueryData(x => x.stationType == 1).ToList();
-                List<Dt_StationManager> Outstation = _stationManagerRepository.QueryData(x => x.stationType == 2).ToList();
                 List<OutStationStatus> outStationStatus = new List<OutStationStatus>();
                 List<InStationStatus> inStationStatus = new List<InStationStatus>();
-                foreach (var item in Instation)
+                StationStatus stationIn = GetStationStatus("B002");
+
+                inStationStatus.Add(new InStationStatus()
                 {
-                    inStationStatus.Add(new InStationStatus()
-                    {
-                        StationName = item.stationName,
-                        StationEnable = item.stationStatus,
-                        IsDistributionTask = item.stationHasTask,
-                        PallteCode = "0000000000",
-                    });
-                }
-                foreach (var item in Outstation)
+                    StationName = "02",
+                    StationEnable = stationIn.WorkstationO == "1" ? "0" : "1",
+                    IsDistributionTask = "0",
+                    PallteCode = "0000000000",
+                });
+                inStationStatus.Add(new InStationStatus()
                 {
-                    StationStatus station = GetStationStatus(item.stationName);
-                    var taskStation = BaseDal.QueryFirst(x => x.SourceAddress == item.stationName || x.TargetAddress == item.stationName);
-                    outStationStatus.Add(new OutStationStatus()
-                    {
-                        StationName = item.HostName,
-                        StationEnable = station.StationEnable == "1" ? "0" : "1",
-                        IsDistributionTask = taskStation == null ? "0" : "1",
-                        Spare1 = "00"
-                    });
-                    //outStationStatus.Add(new OutStationStatus()
-                    //{
-                    //    StationName = item.stationName,
-                    //    StationEnable = item.stationStatus,
-                    //    IsDistributionTask = item.stationHasTask,
-                    //    Spare1 = "00"
-                    //});
-                }
+                    StationName = "01",
+                    StationEnable = stationIn.WorkstationT == "1" ? "0" : "1",
+                    IsDistributionTask = "0",
+                    PallteCode = "0000000000",
+                });
+
+                StationStatus stationOut = GetStationStatus("B001");
+                var taskOutStationO = BaseDal.QueryFirst(x => x.SourceAddress == "B001::1" || x.TargetAddress == "B001::1");
+                var taskOutStationT = BaseDal.QueryFirst(x => x.SourceAddress == "B001::2" || x.TargetAddress == "B001::2");
+                outStationStatus.Add(new OutStationStatus()
+                {
+                    StationName = "04",
+                    StationEnable = stationOut.WorkstationO == "1" ? "0" : "1",
+                    IsDistributionTask = taskOutStationO == null ? "0" : "1",
+                    Spare1 = "00"
+                });
+                outStationStatus.Add(new OutStationStatus()
+                {
+                    StationName = "03",
+                    StationEnable = stationOut.WorkstationT == "1" ? "0" : "1",
+                    IsDistributionTask = taskOutStationT == null ? "0" : "1",
+                    Spare1 = "00"
+                });
                 AGVStatusRespone status = GetAGVStatus();
                 HOSTAGVStatus AgvStatus = new HOSTAGVStatus()
                 {
@@ -828,7 +833,7 @@
                     AutoStatus = status.AutoStatus == "MaintenanceMode" ? "1" : "0",
                     Ready = status.AutoStatus == "MaintenanceMode" ? "0" : "1",
                 };
-                DeviceStationStatusReport(AgvStatus, outStationStatus, inStationStatus);
+                DeviceStationStatusReport(AgvStatus, outStationStatus, inStationStatus, sSeqNo);
             }
             catch (Exception)
             {
@@ -900,6 +905,7 @@
                 Ready = status.AutoStatus == "MaintenanceMode" ? "0" : "1",
             };
             string axis = "000000";
+
             DeviceStatusReportResponse(AgvStatus, axis, axis);
         }
         #endregion
@@ -917,7 +923,6 @@
             {
                 byte[] byt = Encoding.UTF8.GetBytes(Message);  // 浣跨敤 UTF-8 閬垮厤缂栫爜闂
 
-                LogFactory.GetLog("璇锋眰鎵樼洏浠诲姟").Error(true, BitConverter.ToString(byt));
                 string checksum = GetCheckSum(byt);
 
                 string str = Message + checksum;
@@ -939,6 +944,8 @@
                 // 澶嶅埗鍘熷鏁扮粍鐨勬墍鏈夋暟鎹埌鏂版暟缁勭殑涓棿閮ㄥ垎
                 Array.Copy(buffer, 0, newArray, 1, buffer.Length);
 
+                //var parseMessage = GetParse(str);
+                LogFactory.GetLog("Socket鍙戦�佹姤鏂�").Info(true, str);
                 return newArray;
             }
             catch (Exception ex)
@@ -946,17 +953,13 @@
                 throw new Exception(ex.Message);
             }
         }
-        //public bool IsOnline()
-        //{
-
-        //}
         public string GetListStringOutStation(List<OutStationStatus> outStationStatus)
         {
             return string.Join("", outStationStatus.Select(status => $"{status.StationName}{status.StationEnable}{status.IsDistributionTask}{status.Spare1}"));
         }
         public string GetListStringInStation(List<InStationStatus> inStationStatus)
         {
-            return string.Join("", inStationStatus.Select(status => $"{status.StationName}{status.StationEnable}{status.IsDistributionTask}{status.Spare1}"));
+            return string.Join("", inStationStatus.Select(status => $"{status.StationName}{status.StationEnable}{status.IsDistributionTask}{status.IsHasPallte}{status.Spare1}{status.StationPallteCount}{status.PallteCode}{status.Spare2}"));
         }
         /// <summary>
         /// 灏嗗璞″�煎嚟鎷兼帴
@@ -1050,6 +1053,8 @@
                 }
                 else
                 {
+
+
                     Console.WriteLine("鏍¢獙澶辫触锛�");
                     return null;
                 }
@@ -1186,7 +1191,7 @@
         }
         public AGVStatusRespone GetAGVStatus()
         {
-            string urlnew = url + "/ilns/AGV/getAgvState";
+            string urlnew = url + "/ilns/AGV/getState";
             var result = HttpsClient.PostAsync(urlnew, JsonConvert.DeserializeObject<Dictionary<string, object>>(new { getStatus = "1" }.ToJson())).Result;
 
             return JsonConvert.DeserializeObject<AGVStatusRespone>(result.ToString());
@@ -1194,8 +1199,8 @@
 
         public StationStatus GetStationStatus(string stationName)
         {
-            string urlnew = url + "/ilns/strl/getState";
-            var result = HttpsClient.PostAsync(urlnew, JsonConvert.DeserializeObject<Dictionary<string, object>>(new { strlName = stationName }.ToJson())).Result;
+            string urlnew = url + "/ilns/ctrl/getState";
+            var result = HttpsClient.PostAsync(urlnew, JsonConvert.DeserializeObject<Dictionary<string, object>>(new { ctrlName = "B001" }.ToJson())).Result;
             return JsonConvert.DeserializeObject<StationStatus>(result.ToString());
         }
         public string CapitalizeFirstLetter(string s)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/WorkTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/WorkTaskService.cs"
deleted file mode 100644
index 59b2d03..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageSocketServices/WorkTaskService.cs"
+++ /dev/null
@@ -1,1006 +0,0 @@
-锘縰sing AngleSharp.Dom;
-using AutoMapper;
-using LogLibrary.Log;
-using Newtonsoft.Json;
-using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net.NetworkInformation;
-using System.Reflection;
-using System.Reflection.Metadata;
-using System.Text;
-using System.Threading.Tasks;
-using WIDESEA_Common;
-using WIDESEA_Core;
-using WIDESEA_Core.BaseRepository;
-using WIDESEA_Core.Enums;
-using WIDESEA_Core.Helper;
-using WIDESEA_DTO;
-using WIDESEA_DTO.AGV;
-using WIDESEA_IStorageBasicRepository;
-using WIDESEA_IStorageSocketServices;
-using WIDESEA_IStorageTaskRepository;
-using WIDESEA_IStorageTaskServices;
-using WIDESEA_Model.Models;
-using WIDESEA_Model.Models.AGV;
-using WIDESEA_StorageTaskRepository;
-using WIDESEAWCS_BasicInfoRepository;
-using WIDESEAWCS_Model.Models;
-using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
-
-namespace WIDESEA_StorageSocketServices
-{
-    public class WorkTaskService:IWorkTaskService
-    {
-        private readonly IDt_TaskRepository _taskRepository;
-        private readonly IDt_Task_HtyRepository _task_HtyRepository;
-        private readonly IDt_TaskService _taskService;
-        private readonly IMapper _mapper;
-        private readonly IStockInfoRepository _stockInfoRepository;
-        private readonly IUnitOfWorkManage _unitOfWorkManage;
-        private readonly ILocationInfoRepository _locationRepository;
-        private readonly IDt_StationManagerRepository _stationManagerRepository;
-        private readonly LogFactory LogFactory = new LogFactory();
-        private readonly ISocketClientServices _socket;
-        string url = AppSettings.Configuration["AGVIP"];
-        public WorkTaskService(IDt_TaskRepository dt_TaskRepository, ISocketClientServices socket, IDt_StationManagerRepository stationManagerRepository,IDt_TaskService taskService, IDt_Task_HtyRepository dt_Task_HtyRepository,ILocationInfoRepository locationRepository, IMapper mapper,IUnitOfWorkManage unitOfWorkManage,IStockInfoRepository stockInfoRepository)
-        {
-            _taskRepository = dt_TaskRepository;
-            _socket = socket;
-            _stationManagerRepository = stationManagerRepository;
-            _taskService = taskService;
-            _task_HtyRepository = dt_Task_HtyRepository;
-            _locationRepository = locationRepository;
-            _mapper = mapper;
-            _unitOfWorkManage = unitOfWorkManage;
-            _stockInfoRepository = stockInfoRepository;
-        }
-
-        #region 甯搁噺
-        public const byte STX = 2;
-        public const byte ETX = 3;
-
-        
-        /// <summary>
-        /// 浣滀笟浠诲姟ID  棰勭暀
-        /// </summary>
-        public const string JobOrderID = "0000000000000000";
-
-        /// <summary>
-        /// 浼樺厛绾�  棰勭暀
-        /// </summary>
-        public const string priority = "1";
-
-        /// <summary>
-        /// 鎵樼洏涓暟  棰勭暀
-        /// </summary>
-        public const string TrayCnt = "1";
-
-        /// <summary>
-        /// 璁惧缂栧彿
-        /// </summary>
-        public const string DeviceID = "0000000001";
-        /// <summary>
-        /// 鍙戦�佷笉闇�瑕佸洖澶�
-        /// </summary>
-        public const string SendNotReply = "1" + DeviceID + "0";
-        /// <summary>
-        /// 鍙戦�侀渶瑕佸洖澶�
-        /// </summary>
-        public const string SendandReply = "1" + DeviceID + "1";
-        /// <summary>
-        /// 鍑哄簱绔欏彴鍚敤宸插垎閰嶄换鍔�
-        /// </summary>
-        public const string OutBoundStationEnableDistribution = "1000";
-        /// <summary>
-        /// 鍑哄簱绔欏彴鍚敤鏈垎閰嶄换鍔�
-        /// </summary>
-        public const string OutBoundStationEnableUndistributed = "1100";
-        /// <summary>
-        /// 鍑哄簱绔欏彴绂佺敤
-        /// </summary>
-        public const string OutBoundStationDisabled = "0000";
-        /// <summary>
-        /// 鍏ュ簱绔欏彴涓暟
-        /// </summary>
-        public const string InBoundStationCount = "1";
-
-        /// <summary>
-        /// 鍏ュ簱绔欏彴鐘舵��
-        /// </summary>
-        public const string InBoundStationStatus = "1010001";
-        /// <summary>
-        /// 棰勭暀
-        /// </summary>
-        public const string Spare1 = "0000000000000000000000000000000000000000000000000000000000000000000000";
-
-        /// <summary>
-        /// 鍑哄簱绔欏彴棰勭暀
-        /// </summary>
-        public const string OutStationSpare2 = "000000000000";
-
-        /// <summary>
-        /// 棰勭暀
-        /// </summary>
-        public const string Spare3 = "000";
-
-        /// <summary>
-        /// 鎵樼洏鍙�
-        /// </summary>
-        public const string Spare4 = "0000000000";
-
-        #endregion
-
-        #region WMS涓嬪彂HOST鏂规硶
-
-        /// <summary>
-        /// 璁惧璇锋眰鍏ュ簱  宸ュ簭101
-        /// </summary>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        /// <param name="InStation">鍏ュ簱绔欏彴</param>
-        public void DeviceRequestInbound(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, InStationStatus inStation)
-        {
-            try
-            {
-                string str = SendandReply + "101" + _taskRepository.GetSeqNo().Result.ToString() + GetFieldsAsString(Agvstatus) + GetListStringOutStation(outStations) +"1" + GetFieldsAsString(inStation);
-                _socket.clientSend(MakeStringToByteMsg(str));
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-        }
-
-        /// <summary>
-        /// 璇锋眰閫氳  宸ュ簭925
-        /// </summary>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        /// <param name="InStation">鍏ュ簱绔欏彴</param>
-        public void RequestCommunication()
-        {
-            try
-            {
-                string str = SendandReply + "925" + _taskRepository.GetSeqNo().Result.ToString();
-                _socket.clientSend(MakeStringToByteMsg(str));
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-        }
-
-        /// <summary>
-        /// 涓嶅厑璁镐笅鍙戜换鍔�  宸ュ簭915
-        /// </summary>
-        /// <param name="Command">鍛戒护</param>
-        /// <returns></returns>
-        public void JobReady(string Command)
-        {
-            try
-            {
-                string str = SendNotReply + "915" + _taskRepository.GetSeqNo().Result.ToString() + Command;
-                _socket.clientSend(MakeStringToByteMsg(str));
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-            
-        }
-
-        /// <summary>
-        /// 璁惧鐘舵�佷笂鎶� 宸ュ簭913
-        /// </summary>
-        /// <param name="state">鐘舵�乗銆丷杩愯</param>
-        /// <returns></returns>
-        public void DeviceStateReport(string Status)
-        {
-            try
-            {
-                string str = SendNotReply + "913" + _taskRepository.GetSeqNo().Result.ToString() + Status;
-                _socket.clientSend(MakeStringToByteMsg(str));
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-            
-        }
-
-        /// <summary>
-        /// 璁惧鐘舵�佷笂鎶� 宸ュ簭917
-        /// </summary>
-        /// <param name="state">鐘舵�乗銆丷杩愯</param>
-        /// <returns></returns>
-        public void DeviceAutoStatusReport(string Status)
-        {
-            try
-            {
-                string str = SendNotReply + "917" + _taskRepository.GetSeqNo().Result.ToString() + Status;
-                _socket.clientSend(MakeStringToByteMsg(str));
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-
-        }
-
-        /// /// <summary>
-        /// 浣滀笟寮�濮嬫垨缁撴潫 宸ュ簭905
-        /// </summary>
-        /// <param name="Status">鐘舵�� L鎸嘇GV灏嗘墭鐩樺弶鍒拌揣鍙変笂銆乁鎸嘇GV灏嗘墭鐩樻斁鍒板簱浣嶄笂</param>
-        /// <param name="FormLocation">璧风偣</param>
-        /// <param name="ToLocation">缁堢偣</param>
-        /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        public void JobStartOrEnd(string Status, string FormLocation, string ToLocation, string TaskType, string PallteCode)
-        {
-            try
-            {
-                string str = SendandReply + "905" + _taskRepository.GetSeqNo().Result.ToString() + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
-                _socket.clientSend(MakeStringToByteMsg(str));
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-           
-        }
-
-        /// <summary>
-        /// 鎵樼洏鍔ㄤ綔涓婃姤 宸ュ簭907
-        /// </summary>
-        /// <param name="Status">鐘舵�� L鎸嘇GV灏嗘墭鐩樺弶鍒拌揣鍙変笂銆乁鎸嘇GV灏嗘墭鐩樻斁鍒板簱浣嶄笂</param>
-        /// <param name="FormLocation">璧风偣</param>
-        /// <param name="ToLocation">缁堢偣</param>
-        /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        /// <returns></returns>
-        public void PalletActionReport(string Status, string FormLocation, string ToLocation, string TaskType, string PallteCode)
-        {
-            try
-            {
-                string str = SendNotReply + "907" + _taskRepository.GetSeqNo().Result.ToString() + Status + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
-                _socket.clientSend(MakeStringToByteMsg(str));
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-            
-        }
-
-        /// <summary>
-        /// 浣滀笟瀹屾垚涓婃姤 宸ュ簭901
-        /// </summary>
-        /// <param name="FormLocation">璧风偣</param>
-        /// <param name="ToLocation">缁堢偣</param>
-        /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        /// <returns></returns>
-        public void PalletActionReport(string FormLocation, string ToLocation, string TaskType, string PallteCode)
-        {
-            try
-            {
-                string str = SendandReply + "901" + _taskRepository.GetSeqNo().Result.ToString() + "0" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
-                _socket.clientSend(MakeStringToByteMsg(str));
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-            
-        }
-
-        /// <summary>
-        /// 璁惧绔欏彴鐘舵�佷笂鎶� 宸ュ簭936
-        /// </summary>
-        /// <param name="FormLocation">璧风偣</param>
-        /// <param name="ToLocation">缁堢偣</param>
-        /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        /// <returns></returns>
-        public void DeviceStationStatusReport(HOSTAGVStatus Agvstatus, List<OutStationStatus> outStations, List<InStationStatus> inStation)
-        {
-            try
-            {
-                string str = SendNotReply + "936" + _taskRepository.GetSeqNo().Result.ToString() + GetFieldsAsString(Agvstatus) + GetListStringOutStation(outStations) + GetListStringInStation(inStation);
-                _socket.clientSend(MakeStringToByteMsg(str));
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-            
-        }
-
-        /// /// <summary>
-        /// 閲嶆柊鑾峰彇璐т綅淇℃伅 宸ュ簭105
-        /// </summary>
-        /// <param name="FormLocation">璧风偣</param>
-        /// <param name="ToLocation">缁堢偣</param>
-        /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        public void RecreateGetLocation(string FormLocation, string ToLocation, string TaskType, string PallteCode)
-        {
-            try
-            {
-                string str = SendandReply + "105" + _taskRepository.GetSeqNo().Result.ToString() + "R" + JobOrderID + priority + FormLocation + ToLocation + TaskType + TrayCnt + PallteCode;
-                _socket.clientSend(MakeStringToByteMsg(str));
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-            
-        }
-
-        /// /// <summary>
-        ///  寮傚父涓婃姤  宸ュ簭985
-        /// </summary>
-        /// <param name="FormLocation">璧风偣</param>
-        /// <param name="ToLocation">缁堢偣</param>
-        /// <param name="Location">00琛ㄧずAGV閿欒銆�01-08琛ㄧず绔欏彴閿欒銆�99琛ㄧず浣滀笟鎺ユ敹鍓嶆暟鎹敊璇�</param>
-        public void ErrorReport(string Trouble, string Level, string Location)
-        {
-            try
-            {
-                string str = SendNotReply + "985" + _taskRepository.GetSeqNo().Result.ToString() + Trouble + Level + Location;
-                _socket.clientSend(MakeStringToByteMsg(str));
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-            
-        }
-
-        /// <summary>
-        /// 鎺ユ敹HOST宸ュ簭103鍥為鍝嶅簲  宸ュ簭104
-        /// </summary>
-        /// <param name="Statues">0琛ㄧずOK鎺ユ敹浣滀笟銆�1琛ㄧず鎷掔粷銆�9琛ㄧず浣滀笟浠诲姟楠岃瘉鏈夎</param>
-        /// <returns></returns>
-        public void DeviceReceiveJobResponse(string Statues)
-        {
-            try
-            {
-                string str = SendNotReply + "104" + _taskRepository.GetSeqNo().Result.ToString() + Statues;
-                _socket.clientSend(MakeStringToByteMsg(str));
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-            
-        }
-
-        /// /// <summary>
-        /// 绌哄嚭搴� 宸ュ簭107
-        /// </summary>
-        /// <param name="FormLocation">璧风偣</param>
-        /// <param name="ToLocation">缁堢偣</param>
-        /// <param name="TaskType">浠诲姟绫诲瀷 I鍏ュ簱銆丱鍑哄簱銆丼绔欏彴鍒扮珯鍙般�丷绉诲簱</param>
-        /// <param name="PallteCode">鎵樼洏鍙�</param>
-        public void EmptyOutBound( string FormLocation, string ToLocation, string PallteCode)
-        {
-            try
-            {
-                string str = SendandReply + "107" + _taskRepository.GetSeqNo().Result.ToString() + "1" + JobOrderID + priority + FormLocation + ToLocation + "O" + TrayCnt + PallteCode;
-                _socket.clientSend(MakeStringToByteMsg(str));
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-            
-        }
-
-        /// <summary>
-        /// 鍥炲HOST909宸ュ簭  宸ュ簭910
-        /// </summary>
-        /// <param name="AgvStatus"></param>
-        public void DeviceStatusReportResponse(HOSTAGVStatus AgvStatus,string X,string Y)
-        {
-            string str = SendNotReply + "910" + _taskRepository.GetSeqNo().Result.ToString() + "1" + GetFieldsAsString(AgvStatus)+X+Y;
-        }
-
-        #endregion
-
-        #region WMS鎺ユ敹HOST鍥炰紶鏂规硶 
-
-        /// <summary>
-        /// 鎺ユ敹HOST 鍝嶅簲璇锋眰  宸ュ簭102 鍥炲宸ュ簭101
-        /// </summary>
-        /// <param name="message"></param>
-        public void ReceiveCommandResponse(string message)
-        {
-            var parseMessage = GetParse(message);
-            switch (parseMessage.body.ret)
-            {
-                //OK
-                case "0":
-                    //UpdateTaskLocation(parseMessage);
-                    InsertWMSTask(parseMessage);
-                    Thread.Sleep(500);
-                    //915
-                    JobReady("0");
-                    break;
-                //NG
-                case "1":
-                    break;
-                //鏃犲簱浣嶅垎閰�
-                case "2":
-                    break;
-                //绔欏彴鍒扮珯鍙帮紝鍑哄簱绔欏彴鏈噯澶囧ソ
-                case "3":
-                    break;
-                //闈炲父娓╁伐绋�
-                case "4":
-                    break;
-
-                case "9":
-                    break;
-                default:
-                    break;
-            }
-        }
-
-        /// <summary>
-        /// 鎺ユ敹HOST鍝嶅簲AGV浣滀笟寮�濮嬫垨鍚姩 宸ュ簭906 鍥炲宸ュ簭905
-        /// </summary>
-        public void AGVJobStartOrEndResponse(string status, string message)
-        {
-            switch (message)
-            {
-                //OK
-                case "0":
-                    if (status == "E")
-                    {
-                        DeviceStateReport("I");
-                        Thread.Sleep(3000);
-                        JobReady("1");
-                    } 
-                    break;
-                //NG
-                case "1":
-                    //璋冪敤AGV鏆傚仠鎺ュ彛
-                    break;
-                case "9":
-                    break;
-                default:
-                    break;
-            }
-        }
-
-        /// <summary>
-        /// 鏁版嵁鎶ュ憡鍝嶅簲 宸ュ簭902 鍥炲宸ュ簭901
-        /// </summary>
-        public void DataReportResponse(string message)
-        {
-            Dt_Task task = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskOutStatusEnum.AGV_OutFinish || x.TaskState == (int)TaskRelocationStatusEnum.AGV_RelocationFinish || x.TaskState == (int)TaskInStatusEnum.AGV_InFinish);
-            if (task != null)
-            {
-                switch (task.TaskType)
-                {
-                    case (int)TaskInboundTypeEnum.Inbound:
-                        //鍏ュ簱
-                        task.TaskState = (int)TaskInStatusEnum.AGV_InFinish;
-                        if (message == "0")
-                        {
-                            JobStartOrEnd("E", task.SourceAddress, task.TargetAddress, "O", task.PalletCode);
-                        }
-                        _taskService.CompleteInboundTask(task);
-                        break;
-                    case (int)TaskOutboundTypeEnum.Outbound:
-                        //鍑哄簱
-                        if (message == "0")
-                        {
-                            JobStartOrEnd("E", task.SourceAddress, task.TargetAddress, "O", task.PalletCode);
-                        }
-                        task.TaskState = (int)TaskOutStatusEnum.AGV_OutFinish;
-                        _taskService.CompleteOutboundTask(task);
-                        break;
-                    case (int)TaskRelocationTypeEnum.Relocation:
-                        if (message == "0")
-                        {
-                            JobStartOrEnd("E", task.SourceAddress, task.TargetAddress, "O", task.PalletCode);
-                        }
-                        task.TaskState = (int)TaskRelocationStatusEnum.AGV_RelocationFinish;
-                        _taskService.CompleteRelocationboundTask(task);
-                        break;
-                    case (int)TaskStationTypeEnum.StationToStation:
-                        if (message == "0")
-                        {
-                            JobStartOrEnd("E", task.SourceAddress, task.TargetAddress, "O", task.PalletCode);
-                        }
-                        task.TaskState = (int)TaskOutStatusEnum.AGV_OutFinish;
-                        _taskService.TaskMoveHty(task);
-                        break;
-                    default:
-                        break;
-                }
-                
-            }
-        }
-        /// <summary>
-        /// HOST涓嬪彂鍑哄簱浠诲姟  宸ュ簭103
-        /// </summary>
-        /// <param name="message"></param>
-        public void HOSTOutBoundTask(string message)
-        {
-            try
-            {
-                var parseMessage = GetParse(message);
-                switch (parseMessage.body.ret)
-                {
-                    //OK
-                    case "0":
-                        var task=InsertWMSTask(parseMessage);
-                        _taskRepository.AddData(task);
-                        InsertAGVTask(task);
-                        Thread.Sleep(500);
-                        //915
-                        JobReady("0");
-                        Thread.Sleep(500);
-                        //104
-                        DeviceReceiveJobResponse("0");
-                        break;
-                    default:
-                        break;
-                }
-            }
-            catch (Exception)
-            {
-                DeviceReceiveJobResponse("1");
-            }
-            
-        }
-
-        /// <summary>
-        /// HOST璁惧鐘舵�佽幏鍙�  宸ュ簭935
-        /// </summary>
-        /// <param name="message"></param>
-        public void DeviceStationStatusInvite()
-        {
-            try
-            {
-                //鍥炲936
-                List<Dt_StationManager> Instation = _stationManagerRepository.QueryData(x => x.stationType == 1).ToList();
-                List<Dt_StationManager> Outstation = _stationManagerRepository.QueryData(x => x.stationType == 2).ToList();
-                List<OutStationStatus> outStationStatus = new List<OutStationStatus>();
-                List<InStationStatus> inStationStatus = new List<InStationStatus>();
-                foreach (var item in Instation)
-                {
-                    inStationStatus.Add(new InStationStatus()
-                    {
-                        StationName = item.stationName,
-                        StationEnable = item.stationStatus,
-                        IsDistributionTask = item.stationHasTask,
-                        PallteCode = "0000000000",
-                    });
-                }
-                foreach (var item in Outstation)
-                {
-                    StationStatus station = GetStationStatus(item.stationName);
-                    var taskStation = _taskRepository.QueryFirst(x => x.SourceAddress == item.stationName || x.TargetAddress == item.stationName);
-                    outStationStatus.Add(new OutStationStatus()
-                    {
-                        StationName = item.stationName,
-                        StationEnable = station.StationEnable == "1" ? "0" : "1",
-                        IsDistributionTask = taskStation == null ? "0" : "1",
-                        Spare1 = "00"
-                    });
-                    //outStationStatus.Add(new OutStationStatus()
-                    //{
-                    //    StationName = item.stationName,
-                    //    StationEnable = item.stationStatus,
-                    //    IsDistributionTask = item.stationHasTask,
-                    //    Spare1 = "00"
-                    //});
-                }
-                AGVStatusRespone status = GetAGVStatus();
-                HOSTAGVStatus AgvStatus = new HOSTAGVStatus()
-                {
-                    RuntimeStatus = CapitalizeFirstLetter(status.RuntimeStatus),
-                    AutoStatus = status.AutoStatus == "MaintenanceMode" ? "1" : "0",
-                    Ready = status.AutoStatus == "MaintenanceMode" ? "0" : "1",
-                };
-                DeviceStationStatusReport(AgvStatus, outStationStatus, inStationStatus);
-            }
-            catch (Exception)
-            {
-                DeviceReceiveJobResponse("1");
-            }
-
-        }
-
-        /// <summary>
-        /// 鎺ユ敹HOST閲嶆柊鍒嗛厤璐т綅  宸ュ簭106
-        /// </summary>
-        /// <param name="message"></param>
-        public void RecreateGetLocation(string message)
-        {
-            try
-            {
-                var parseMessage = GetParse(message);
-                switch (parseMessage.body.ret)
-                {
-                    //OK
-                    case "0":
-                        UpdateTaskLocation(parseMessage);
-                        break;
-                    //NG
-                    case "1":
-                        break;
-                    //鏃犲簱浣嶅垎閰�
-                    case "2":
-                        break;
-                    case "9":
-                        break;
-                    default:
-                        break;
-                }
-            }
-            catch (Exception)
-            {
-                DeviceReceiveJobResponse("1");
-            }
-
-        }
-
-        /// <summary>
-        ///  HOST绌哄嚭搴撳搷搴� 宸ュ簭108
-        /// </summary>
-        /// <param name="message"></param>
-        public void EmptyOutBoundResponse(string message)
-        {
-            if (message != null && message == "0")
-            {
-                DeviceStateReport("I");
-                Thread.Sleep(500);
-                JobReady("1");
-
-            }
-        }
-
-        /// <summary>
-        /// HOST鑾峰彇璁惧鐘舵��  宸ュ簭909
-        /// </summary>
-        public void DeviceStatusReportRequest()
-        {
-            HOSTAGVStatus AgvStatus = new HOSTAGVStatus()
-            {
-                RuntimeStatus = "R",
-                AutoStatus = "1",
-                Ready="1"
-            };
-            string axis = "000000";
-            DeviceStatusReportResponse(AgvStatus,axis,axis);
-        }
-        #endregion
-
-        #region 鍏ㄥ眬鏂规硶
-        /// <summary>
-        /// 鎷兼帴鎶ユ枃
-        /// </summary>
-        /// <param name="Message"></param>
-        /// <returns></returns>
-        /// <exception cref="Exception"></exception>
-        public byte[] MakeStringToByteMsg(string Message)
-        {
-            try
-            {
-                byte[] byt = Encoding.UTF8.GetBytes(Message);  // 浣跨敤 UTF-8 閬垮厤缂栫爜闂
-
-                LogFactory.GetLog("璇锋眰鎵樼洏浠诲姟").Error(true, BitConverter.ToString(byt));
-                string checksum = GetCheckSum(byt);
-
-                string str = Message + checksum;
-
-                byte[] buffer = Encoding.UTF8.GetBytes(str);
-
-                byte newFirstByte = 2; // 鏂扮殑绗竴浣嶆暟鎹�
-                byte newLastByte = 3;  // 鏂扮殑鏈�鍚庝竴浣嶆暟鎹�
-
-                // 鍒涘缓涓�涓柊鏁扮粍锛岄暱搴︽瘮鍘熷鏁扮粍澶�2
-                byte[] newArray = new byte[buffer.Length + 2];
-
-                // 灏嗘柊鐨勬暟鎹彃鍏ュ埌鏂版暟缁勭殑绗竴浣�
-                newArray[0] = newFirstByte;
-
-                // 灏嗘柊鐨勬暟鎹彃鍏ュ埌鏂版暟缁勭殑鏈�鍚庝竴浣�
-                newArray[newArray.Length - 1] = newLastByte;
-
-                // 澶嶅埗鍘熷鏁扮粍鐨勬墍鏈夋暟鎹埌鏂版暟缁勭殑涓棿閮ㄥ垎
-                Array.Copy(buffer, 0, newArray, 1, buffer.Length);
-
-                return newArray;
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-        }
-        //public bool IsOnline()
-        //{
-           
-        //}
-        public string GetListStringOutStation(List<OutStationStatus> outStationStatus)
-        {
-            return string.Join("", outStationStatus.Select(status =>$"{status.StationName}{status.StationEnable}{status.IsDistributionTask}{status.Spare1}"));
-        }
-        public string GetListStringInStation(List<InStationStatus> inStationStatus)
-        {
-            return string.Join("", inStationStatus.Select(status => $"{status.StationName}{status.StationEnable}{status.IsDistributionTask}{status.Spare1}"));
-        }
-        /// <summary>
-        /// 灏嗗璞″�煎嚟鎷兼帴
-        /// </summary>
-        /// <param name="obj"></param>
-        /// <returns></returns>
-        public static string GetFieldsAsString(object obj)
-        {
-            if (obj == null)
-            {
-                return "Object is null";
-            }
-
-            StringBuilder builder = new StringBuilder();
-            Type type = obj.GetType();
-
-            foreach (PropertyInfo property in type.GetProperties())
-            {
-                if (property.CanRead)
-                {
-                    object value = property.GetValue(obj);
-                    if (value != null)
-                    {
-                        builder.Append(value);
-                    }
-                }
-            }
-            return builder.ToString();
-        }
-        /// <summary>
-        /// 鑾峰彇CheckSum鍊�
-        /// </summary>
-        /// <param name="data"></param>
-        /// <returns></returns>
-        /// <exception cref="Exception"></exception>
-        public string GetCheckSum(byte[] data)
-        {
-            int sum = 0;
-            try
-            {
-                for (int i = 0; i < data.Length; i++)
-                {
-                    sum += data[i];
-                }
-                string str = sum.ToString();
-                return str.Substring(str.Length - 2);
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(ex.Message);
-            }
-        }
-
-        public ParseMessage SubString(string Y)
-        {
-
-            const string STX = "0x02";
-            const string ETX = "0x03";
-
-            // 妫�鏌ユ槸鍚︿互 STX 寮�澶淬�丒TX 缁撳熬
-            if (Y.Substring(0, 4) == STX && Y.Substring(Y.Length - 4) == ETX)
-            {
-                string str = Y.Substring(4, Y.Length - 8);
-                byte[] message = Encoding.UTF8.GetBytes(str);
-                int newLength = message.Length - 2;
-
-                if (newLength < 0)
-                {
-                    throw new ArgumentException("鏁扮粍闀垮害涓嶈冻锛屾棤娉曞幓鎺夋渶鍚庝袱浣嶃��");
-                }
-
-                byte[] newArray = new byte[newLength];
-                Array.Copy(message, 0, newArray, 0, newLength);
-                string calculatedChecksum = GetCheckSum(newArray);
-
-                string receivedChecksum = str.Substring(str.Length - 2);
-
-                if (calculatedChecksum == receivedChecksum)
-                {
-                    var x = Encoding.UTF8.GetString(newArray);
-                    ParseMessage parseMessage = new ParseMessage()
-                    {
-                        bDir = x.Substring(0, 1),
-                        bObjID = x.Substring(2, 10),
-                        bReply = x.Substring(11, 1),
-                        bCmdID = x.Substring(12, 3),
-                        nSeqNo = x.Substring(15, 5),
-                        //Body = x.Substring(21),
-                    };
-                    return parseMessage;
-                }
-                else
-                {
-                    Console.WriteLine("鏍¢獙澶辫触锛�");
-                    return null;
-                }
-            }
-            else
-            {
-                Console.WriteLine("鏃犳晥鎶ユ枃鏍煎紡锛�");
-                return null;
-            }
-        }
-        #endregion
-
-        #region 瀹氫箟瀵硅薄
-        
-
-        #endregion
-
-        #region 绉佹湁鏂规硶
-        private void UpdateTaskLocation(ParseMessage parseMessage)
-        {
-            var task = _taskRepository.QueryFirst(x => x.SeqNo == Convert.ToInt32(parseMessage.nSeqNo) && x.PalletCode.Contains(parseMessage.body.TrayIdList));
-            if (task != null)
-            {
-                task.TargetAddress = parseMessage.body.ToLocation;
-                task_call agvtask = SqlSugarHelper.DbAGV.Queryable<task_call>().Where(it => it.d_involed5 == task.TaskNum).First();
-                _taskRepository.Update(task);
-                SqlSugarHelper.DbAGV.Updateable(agvtask).ExecuteCommand();
-            }
-
-        }
-
-        private Dt_Task InsertWMSTask(ParseMessage parseMessage)
-        {
-            //var task = _taskRepository.QueryFirst(x => x.PalletCode.Contains(parseMessage.body.TrayIdList));
-            int taskType = 0;
-            int taskState = 0;
-            if (parseMessage.body.JobType == "I")
-            {
-                taskType = (int)TaskInboundTypeEnum.Inbound;
-                taskState = (int)TaskInStatusEnum.InNew;
-            }
-            else if (parseMessage.body.JobType == "O")
-            {
-                taskType = (int)TaskOutboundTypeEnum.Outbound;
-                taskState = (int)TaskOutStatusEnum.OutNew;
-            }
-            else if (parseMessage.body.JobType == "S")
-            {
-                taskType = (int)TaskStationTypeEnum.StationToStation;
-                taskState = (int)TaskOutStatusEnum.OutNew;
-            }
-            else if (parseMessage.body.JobType == "R")
-            {
-                taskType = (int)TaskRelocationTypeEnum.Relocation;
-                taskState = (int)TaskRelocationStatusEnum.RelocationNew;
-            }
-            else
-            {
-                throw new Exception("鏈煡搴撲綅");
-            }
-            return new Dt_Task()
-            {
-                TaskNum = _taskRepository.GetTaskNo().Result,
-                SourceAddress = parseMessage.body.FromLocation,
-                TargetAddress = parseMessage.body.ToLocation,
-                PalletCode = parseMessage.body.TrayIdList.Substring(0, 10),
-                TaskType = taskType,
-                TaskState = taskState,
-                Dispatchertime = DateTime.Now,
-                SeqNo = Convert.ToInt32(parseMessage.nSeqNo),
-                CommandID = Convert.ToInt32(parseMessage.bCmdID)
-            };
-            
-        }
-        /// <summary>
-        /// 娣诲姞AGV浠诲姟
-        /// </summary>
-        /// <param name="task">浠诲姟瀵硅薄</param>
-        /// <returns></returns>
-        private int InsertAGVTask(Dt_Task task)
-        {
-            task_call task_Call = new task_call()
-            {
-                d_task_type = task.TaskType == (int)TaskTypeEnum.Inbound ? 1 : 2,
-                d_floor = 1,
-                d_involed1 = task.SourceAddress,
-                d_involed2 = task.TargetAddress,
-                d_involed5 = task.TaskNum,
-            };
-
-            return SqlSugarHelper.DbAGV.Insertable(task_Call).ExecuteCommand();
-        }
-        public ParseMessage GetParse(string x)
-        {
-            return new ParseMessage()
-            {
-                bDir = x.Substring(0, 1),
-                bObjID = x.Substring(2, 10),
-                bReply = x.Substring(11, 1),
-                bCmdID = x.Substring(12, 3),
-                nSeqNo = x.Substring(15, 5),
-                body = new ReceiveBody
-                {
-                    ret = x.Substring(21, 1),
-                    JobOrderID = x.Substring(22, 16),
-                    priority = x.Substring(39, 1),
-                    FromLocation = x.Substring(40, 6),
-                    ToLocation = x.Substring(47, 6),
-                    JobType = x.Substring(54, 1),
-                    TrayCnt = x.Substring(55, 1),
-                    TrayIdList = x.Substring(56)
-                },
-            };
-        }
-        public AGVStatusRespone GetAGVStatus()
-        {
-            string urlnew = url + "/ilns/AGV/getAgvState";
-            var result = HttpsClient.PostAsync(urlnew, JsonConvert.DeserializeObject<Dictionary<string, object>>(new { getStatus = "1" }.ToJson())).Result;
-
-            return JsonConvert.DeserializeObject<AGVStatusRespone>(result.ToString());
-        }
-
-        public StationStatus GetStationStatus(string stationName)
-        {
-            string urlnew = url + "/ilns/strl/getStat";
-            var result = HttpsClient.PostAsync(urlnew, JsonConvert.DeserializeObject<Dictionary<string, object>>(new { strlName = stationName }.ToJson())).Result;
-            return JsonConvert.DeserializeObject<StationStatus>(result.ToString());
-        }
-
-
-        //public string GetFirstUpper(string Status)
-        //{
-        //    switch (Status)
-        //    {
-        //        case "Run":
-        //            //杩愯
-        //            return "R";
-        //        case "Idle":
-        //            //鍏虫満
-        //            return "I";
-        //        case "Trouble":
-        //            //鏁呴殰
-        //            return "T";
-        //        case "Pause":
-        //            //鏆傚仠
-        //            return "S";
-        //        case "Charge":
-        //            //鍏呯數
-        //            return "C";
-        //        case "PowerOn":
-        //            //寮�鏈�
-        //            return "P";
-        //        case "PowerOFF":
-        //            //鍏虫満
-        //            return "O";
-        //        case "MaintenanceMode":
-        //            //鍏虫満
-        //            return "1";
-        //        case "ControlMode":
-        //            //鍏虫満
-        //            return "0";
-        //        default: break;
-        //    }
-        //}
-        public string CapitalizeFirstLetter(string s)
-        {
-            if (string.IsNullOrEmpty(s))
-            {
-                return "";
-            }
-
-            char firstChar = s[0];
-            return char.ToUpper(firstChar).ToString();
-        }
-        #endregion
-    }
-}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/AGVController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/AGVController.cs"
index 0880976..efda1b9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/AGVController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/AGVController.cs"
@@ -1,4 +1,5 @@
 锘縰sing Microsoft.AspNetCore.Mvc;
+using NewLife.Net;
 using WIDESEA_DTO.AGV;
 using WIDESEA_IStoragIntegrationServices;
 
@@ -25,7 +26,7 @@
         /// <param name="TaskNum"></param>
         /// <param name="SourceAddress"></param>
         /// <returns></returns>
-        [HttpGet,HttpPost, Route("RequestInTask"), AllowAnonymous]
+        [HttpGet, HttpPost, Route("RequestInTask"), AllowAnonymous]
         public WebResponseContent RequestInTask(string PalletCode, string SourceAddress)
         {
             return _service.RequestInTask(PalletCode, SourceAddress);
@@ -54,6 +55,18 @@
             return _service.AGVStartOrEndJob(Status, TaskNum);
         }
 
+        ///// <summary>
+        ///// AGV鍙栬揣鎴栨斁璐�
+        ///// </summary>
+        ///// <param name="Message"></param>
+        ///// <param name="PallteCode"></param>
+        ///// <returns></returns>
+        //[HttpGet, Route("PallteLoadOrUnLoad"), AllowAnonymous]
+        //public WebResponseContent PallteLoadOrUnLoad(string Message, string PallteCode)
+        //{
+        //    return _taskService.PallteLoadOrUnLoad(Message,PallteCode);
+        //}
+
         /// <summary>
         /// 璁惧鐘舵�佷笂鎶�
         /// </summary>
@@ -61,18 +74,18 @@
         /// <param name="PallteCode"></param>
         /// <returns></returns>
         [HttpGet, HttpPost, Route("DeviceErrorResponse"), AllowAnonymous]
-        public WebResponseContent DeviceErrorResponse(string Message,int TaskNum)
+        public WebResponseContent DeviceErrorResponse(string Message, int TaskNum)
         {
-            return _service.DeviceErrorResponse(Message,TaskNum);
+            return _service.DeviceErrorResponse(Message, TaskNum);
         }
 
-        [HttpGet, Route("RequestOutTask"), AllowAnonymous]
+        [HttpGet, HttpPost, Route("RequestOutTask"), AllowAnonymous]
         public WebResponseContent RequestOutTask(string PalletCode, string SourceAddress, string TargetAddress)
         {
             return _service.RequestOutTask(PalletCode, SourceAddress, TargetAddress);
         }
 
-        [HttpGet, Route("InTask"), AllowAnonymous]
+        [HttpGet, HttpPost, Route("InTask"), AllowAnonymous]
         public WebResponseContent InTask(string PalletCode, string SourceAddress, string TargetAddress)
         {
             return _service.InTask(PalletCode, SourceAddress, TargetAddress);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
index 1647845..4c91340 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
@@ -43,8 +43,8 @@
   "TransfertRows": "1,4,5,8",
   "PDAVersion": "2",
   "Connection": {
-    "IP": "127.0.0.1",
-    "Port": "1314"
+    "IP": "10.42.180.129",
+    "Port": "16001"
   },
   "AGVIP": "127.0.0.1:8370"
 }

--
Gitblit v1.9.3