From 1393661a4f59fb30aea8e5893fdd8c85331b32d1 Mon Sep 17 00:00:00 2001
From: czw <selecti@yeah.net>
Date: 星期三, 09 七月 2025 08:33:16 +0800
Subject: [PATCH] 1

---
 HnSx/Build/Project/代码/VS自定义类/AutoThread.cs | 1433 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 1,387 insertions(+), 46 deletions(-)

diff --git "a/HnSx/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs" "b/HnSx/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs"
index c35ed3a..cee9ccc 100644
--- "a/HnSx/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs"
+++ "b/HnSx/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs"
@@ -27,6 +27,20 @@
 using NLog.Targets;
 using NLog;
 using ServiceStack.Messaging.Rcon;
+using System.Runtime.ExceptionServices;
+using System.Runtime.InteropServices;
+using System.Security.RightsManagement;
+using static GZ.Projects.HnSx.Clloc.sendTask;
+using static GZ.Projects.HnSx.Clloc.modifyTaskPriority;
+using static GZ.Projects.HnSx.Clloc.stockInException;
+using static GZ.Projects.HnSx.Clloc.taskFeedback;
+using static GZ.Projects.HnSx.Clloc.stockInInteraction;
+using static GZ.Projects.HnSx.Clloc.cancelTask;
+using static GZ.Projects.HnSx.Clloc.palletStackerInteraction;
+using static GZ.Projects.HnSx.Clloc.putConveyorTask;
+using static GZ.Projects.HnSx.Clloc.reportWeightinfo;
+using System.Threading.Channels;
+using static GZ.Projects.HnSx.Clloc;
 
 namespace GZ.Projects.HnSx
 {
@@ -104,11 +118,62 @@
         /// </summary>
         /// <param name="tag"></param>
         /// <param name="action"></param>
-        public void ThreadSettingInit(Tag tag, Action action)
+        public void ThreadSettingInit(Tag tag)
         {
-
         }
-        public void TaskEverythingRun()
+
+        public async void ThreadwebSoc()
+        {
+            //read Alldata from database
+            //灏嗘暟鎹紦瀛樺埌鍐呭瓨銆�+            try
+            {
+                Thread.Sleep(1000);
+                while (true)
+                {
+                    if (/*list.Count > 0 && */WebSocketClientWithReconnect.GetWebSocketState() == WebSocketState.Open)
+                        for (int i = 0; i < 70000; i++)
+                        {
+                            Thread.Sleep(1000);
+                            Console.WriteLine($"{DateTime.Now.ToString("HH:mm:ss.fff")}>>>鍙戦� 绗�{i} 鏉�);
+                            //LogHelper.Info($"Hello Server {i}");
+                            var req = new ReportWeightInfoRequest
+                            {
+                                data = new ReportWeightInfoData
+                                {
+                                    header = new ReportWeightInfoHeader
+                                    {
+                                        deliveryNo = "F0000" + i,
+                                        grossWeight = i,
+                                        cube = i,
+                                        addTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),
+                                        addWho = "WCS"
+                                    }
+                                }
+                            };
+                            var b = WebSocketClientWithReconnect.Instance?.SendAsync(JsonConvert.SerializeObject(req)).Result;
+                            Console.WriteLine($"{DateTime.Now.ToString("HH:mm:ss.fff")}>>鍙戦�瀹屾垚锛侊紒" + b);
+                            if (b == true)
+                            {
+                                // 绛夊緟鐗瑰畾鍝嶅簲
+
+                                var rr = reportWeightinfo.GetChinnnl().Result;
+
+                                //LogHelper.Info($" {DateTime.Now.ToString("HH:mm:ss.fff")}>> 鎺ユ敹" + JsonConvert.SerializeObject(rr));
+                                //}
+                                Console.WriteLine($"{DateTime.Now.ToString("HH:mm:ss.fff")}>>" + JsonConvert.SerializeObject(rr));
+                            }
+                            else Console.WriteLine("鍙戦�澶辫触銆�);
+                        }
+                    Thread.Sleep(1000);
+                }
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Error(ex.Message, ex);
+            }
+        }
+        public async Task TaskEverythingRun()
         {
             var host = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());
             foreach (var ip in host.AddressList)
@@ -116,38 +181,26 @@
                 if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                 {
                     Console.WriteLine($"ip= {ip.ToString()}");
-                    //new HttpServer(ip.ToString()).HttpServerRun();
+                    new HttpServer(ip.ToString()).HttpServerRun();
                     //new TcpServer(ip.ToString());
-                    //var server = new EnhancedWebSocketServer($"http://{ip.ToString()}:8809/").StartAsync();
-                    var client = new WebSocketClientWithReconnect($"ws://{ip.ToString()}:8809/socket")/*.StartAsync()*/;
-                    //Task.Run(async () =>
-                    //{
-                    client.StartAsync();
-                    Task.Run(async () =>
+                    //var server = new EnhancedWebSocketServer($"http://{ip.ToString()}:8809/").StartAsync(); http://10.20.66.121:18080
+                    new WebSocketClientWithReconnect($"ws://10.20.66.121:20001/socket").StartAsync();
+                    //new WebSocketClientWithReconnect($"ws://{ip.ToString()}:8809/socket").StartAsync();
+                    WebSocketClientWithReconnect.Instance.OnMessageReceived += (msg) =>
                     {
-                        while (true)
+                        //reportWeightinfo.channel.Writer.TryWrite(JsonConvert.DeserializeObject<ReportWeightInfoResponse>(msg));
+                        reportWeightinfo.channel.Writer.TryWrite(new ReportWeightInfoResponse
                         {
-                            for (int i = 0; i < 10000; i++)
+                            Response = new ReportWeightInfoResponseData
                             {
-                                Thread.Sleep(1000);
-                                Console.WriteLine($"{DateTime.Now.ToString("HH:mm:ss.fff")}>>>Server{i}");
-                               await client.SendAsync($"Hello Server{i}!");
+                                Return = new ReportWeightInfoReturnInfo
+                                {
+                                    returnCode = "0000",
+                                    sortingChute = msg
+                                }
                             }
-                        }
-                    });
-                    //Task.Run(async () =>
-                    //{
-                    //    while (true)
-                    //    {
-                    //        for (int i = 60000; i < 70000; i++)
-                    //        {
-                    //            Thread.Sleep(1000);
-                    //            Console.WriteLine($"{DateTime.Now.ToString("HH:mm:ss.fff")}>>>GGG{i}");
-                    //            await client.SendAsync($"Hello GGG{i}!");
-                    //        }
-                    //    }
-                    //});
-                    //});
+                        });
+                    };
                     break;
                 }
             }
@@ -158,12 +211,13 @@
     }
     public class HttpServer
     {
+        public static readonly HttpHelper apiHelper = new HttpHelper();
         System.Net.HttpListener HttpSvcHost = null;
 
         public static string _listenerPrefix = "";
         public HttpServer(string ip)
         {
-            _listenerPrefix = $"http://{ip}:8807/";
+            _listenerPrefix = $"http://{ip}:8808/";
         }
         public void HttpServerRun()
         {
@@ -226,6 +280,9 @@
                 Console.WriteLine(apth + "<<>>" + DateTime.Now.Subtract(data).TotalMilliseconds);
             }
         }
+        public static List<SendTaskHeader> lstr = new List<SendTaskHeader>();
+        public static List<PutConveyorTaskHeader> putConveyorTasks = new List<PutConveyorTaskHeader>();
+
         private System.String HttpSvcListenerCallback_he(System.String method, System.String path, System.String requestJson, out System.Net.HttpStatusCode statusCode)
         {
             try
@@ -236,71 +293,480 @@
                         {
                             switch (path)
                             {
+                                case "/api/Wcs/GetTask":
+                                    {
+                                        statusCode = System.Net.HttpStatusCode.OK;
+                                        return JsonConvert.SerializeObject(new
+                                        {
+                                            鍑哄叆绉诲簱浠诲姟 = lstr,
+                                            绠变綋鍒嗗彂浠诲姟 = putConveyorTasks
+                                        });
+                                        break;
+                                    }
+                                case "/api/Wcs/RemoveTask":
+                                    {
+                                        statusCode = System.Net.HttpStatusCode.OK;
+                                        lstr.RemoveAll(x => x.palletId == requestJson);
+                                        putConveyorTasks.RemoveAll(x => x.palletId == requestJson);
+                                        break;
+                                    }
                                 ///浠诲姟涓嬪彂--WMS-->WC
                                 case "/api/Wcs/sendTask":
                                     {
                                         statusCode = System.Net.HttpStatusCode.OK;
+                                        var req = JsonConvert.DeserializeObject<SendTaskRequest>(requestJson);
+                                        if (req == null || req.data == null || lstr.Find(x => x.groupTaskSequence == req.data.header.groupTaskSequence && x.groupTaskId == req.data.header.groupTaskId) != null)
+                                        {
+                                            if (req == null || req.data == null)
 
-                                        return JsonConvert.SerializeObject("");
+                                                return JsonConvert.SerializeObject(new SendTaskResponse
+                                                {
+                                                    Response = new ResponseData
+                                                    {
+                                                        Return = new ReturnInfo
+                                                        {
+                                                            returnCode = "0001",
+                                                            returnDesc = req?.data == null ? "鏃犱换鍔′笅鍙戯紒" : "浠诲姟閲嶅涓嬪彂锛�,
+                                                            returnFlag = "0"
+                                                        }
+                                                    }
+                                                });
+                                            else
+                                                return JsonConvert.SerializeObject(new SendTaskResponse
+                                                {
+                                                    Response = new ResponseData
+                                                    {
+                                                        Return = new ReturnInfo
+                                                        {
+                                                            returnCode = "0000",
+                                                            returnDesc = "浠诲姟閲嶅涓嬪彂锛�,
+                                                            returnFlag = "1"
+                                                        }
+                                                    }
+                                                });
+                                        }
+                                        lstr.Add(req.data.header);
+                                        return JsonConvert.SerializeObject(new SendTaskResponse
+                                        {
+                                            Response = new ResponseData
+                                            {
+                                                Return = new ReturnInfo
+                                                {
+                                                    returnCode = "0000",
+                                                    returnDesc = "ok",
+                                                    returnFlag = "1"
+                                                }
+                                            }
+                                        });
                                     }
                                 ///鍏ュ簱寮傚父涓婃姤銆�WCS-->WMS
                                 case "/api/Wcs/stockInException":
                                     {
                                         statusCode = System.Net.HttpStatusCode.OK;
+                                        var f = string.IsNullOrEmpty(requestJson) ? lstr.FirstOrDefault() : lstr.Find(x => x.palletId == requestJson);
+                                        var str = apiHelper.Post("http://10.20.66.121:18080/datahubjson/wcs/?method=STOCKINEXCEP", JsonConvert.SerializeObject(new StockInExceptionRequest
+                                        {
+                                            data = new StockInExceptionData
+                                            {
+                                                header = new StockInExceptionHeader
+                                                {
+                                                    organizationId = f.organizationId,
+                                                    warehouseId = f.warehouseId,
+                                                    groupTaskId = f.groupTaskId,
+                                                    groupTaskSequence = f.groupTaskSequence,
+                                                    palletId = f.palletId,
+                                                    addTime = f.addTime.ToString("yyyy-MM-dd HH:mm:ss"),
+                                                    addWho = f.addWho,
+                                                    reason = "搴撲綅鏈夎揣涓嶅彲鐢�,
+                                                    reasonCode = "01"
+                                                }
+                                            }
+                                        }));
 
-                                        return JsonConvert.SerializeObject("");
+                                        var strres = JsonConvert.DeserializeObject<StockInExceptionResponse>(str);
+                                        if (strres.Response.Return.returnCode == "0000")
+                                        {
+                                            f.toPosition = strres.Response.Return.toPosition;
+                                            f.toLocation = strres.Response.Return.toLocation;
+                                        }
+                                        return str;
                                     }
                                 ///浠诲姟鐘舵�鍙嶉  WCS-->WM
                                 case "/api/Wcs/taskFeedback":
                                     {
                                         statusCode = System.Net.HttpStatusCode.OK;
-
+                                        //foreach (var statu in new List<string> { "", "" })
+                                        {
+                                            var f = string.IsNullOrEmpty(requestJson) ? lstr.FirstOrDefault() : lstr.Find(x => x.palletId == requestJson);
+                                            var str = apiHelper.Post("http://10.20.66.121:18080/datahubjson/wcs/?method=TASKFEEDBACK", JsonConvert.SerializeObject(new TaskFeedbackRequest
+                                            {
+                                                data = new TaskFeedbackData
+                                                {
+                                                    header = new TaskFeedbackHeader
+                                                    {
+                                                        organizationId = f.organizationId,
+                                                        warehouseId = f.warehouseId,
+                                                        groupTaskId = f.groupTaskId,
+                                                        groupTaskSequence = f.groupTaskSequence,
+                                                        palletId = f.palletId,
+                                                        fmLocation = f.fmLocation,
+                                                        fmPosition = f.fmPosition,
+                                                        toLocation = f.toLocation,
+                                                        toPosition = f.toPosition,
+                                                        taskStatus = "80",
+                                                        taskType = f.taskType,
+                                                        closeTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                                                        closeWho = f.addWho
+                                                    }
+                                                }
+                                            }));
+                                        }
                                         return JsonConvert.SerializeObject("");
                                     }
                                 ///鍏ュ簱浜や簰  銆俉CS-->WMS
                                 case "/api/Wcs/stockInInteraction":
                                     {
                                         statusCode = System.Net.HttpStatusCode.OK;
+                                        var req = JsonConvert.DeserializeObject<StockInInteractionRequest>(requestJson);
 
-                                        return JsonConvert.SerializeObject("");
+                                        var str = apiHelper.Post("http://10.20.66.121:18080/datahubjson/wcs/?method=STOCKININTERACTION", requestJson);
+                                        //var str = @"{""Response"":{""return"":{""returnCode"":""0000"",""returnDesc"":""Success"",""returnFlag"":""1"",""groupTaskId"":""GT250708000001"",""groupTaskSequence"":""1"",""taskStatus"":""00"",""taskType"":""PA"",""priority"":""3"",""toLocation"":""5A070101"",""toPosition"":""01""}}}";
+                                        var res = JsonConvert.DeserializeObject<StockInInteractionResponse>(str);
+                                        if (res.Response.Return.returnCode == "0000")
+                                        {
+                                            var from = req.data.header;
+                                            var resss = res.Response.Return;
+                                            lstr.Add(new SendTaskHeader
+                                            {
+                                                groupTaskId = resss.groupTaskId,
+                                                groupTaskSequence = resss.groupTaskSequence,
+                                                fmLocation = from.fmLocation,
+                                                fmPosition = from.fmPosition,
+                                                palletId = from.palletId,
+                                                taskStatus = resss.taskStatus,
+                                                taskType = resss.taskType,
+                                                priority = resss.priority,
+                                                toLocation = resss.toLocation,
+                                                toPosition = resss.toPosition,
+                                                addTime = DateTime.Now,
+                                                addWho = from.addWho,
+                                            });
+                                        }
+                                        return str;// + JsonConvert.SerializeObject(lstr);
+                                        var str1 = apiHelper.Post("http://10.20.66.121:18080/datahubjson/wcs/?method=STOCKININTERACTION", JsonConvert.SerializeObject(new StockInInteractionRequest
+                                        {
+                                            data = new StockInInteractionData
+                                            {
+                                                header = new StockInInteractionHeader
+                                                {
+                                                    palletId = "TP9901",
+                                                    grossWeight = 99,
+                                                    palletWidth = 99,
+                                                    fmLocation = "",
+                                                    fmPosition = "",
+                                                    addTime = DateTime.Now,
+                                                    addWho = ""
+                                                }
+                                            }
+                                        }));
+                                        return str1;
+                                    }
+                                ///鍏ュ簱浜や簰  銆俉CS-->WMS
+                                case "/api/Wcs/stockInInteraction2":
+                                    {
+                                        statusCode = System.Net.HttpStatusCode.OK;
+                                        var req = JsonConvert.DeserializeObject<StockInInteractionRequest>(requestJson);
+
+                                        var str = apiHelper.Post("http://10.20.66.121:18080/datahubjson/wcs/?method=STOCKININTERACTION", requestJson);
+                                        //var str = @"{""Response"":{""return"":{""returnCode"":""0000"",""returnDesc"":""Success"",""returnFlag"":""1"",""groupTaskId"":""GT250708000001"",""groupTaskSequence"":""1"",""taskStatus"":""00"",""taskType"":""PA"",""priority"":""3"",""toLocation"":""5A070101"",""toPosition"":""01""}}}";
+                                        var res = JsonConvert.DeserializeObject<StockInInteractionResponse>(str);
+                                        if (res.Response.Return.returnCode == "0000")
+                                        {
+                                            var from = req.data.header;
+                                            var resss = res.Response.Return;
+                                            lstr.Add(new SendTaskHeader
+                                            {
+                                                groupTaskId = resss.groupTaskId,
+                                                groupTaskSequence = resss.groupTaskSequence,
+                                                fmLocation = from.fmLocation,
+                                                fmPosition = from.fmPosition,
+                                                palletId = from.palletId,
+                                                taskStatus = resss.taskStatus,
+                                                taskType = resss.taskType,
+                                                priority = resss.priority,
+                                                toLocation = resss.toLocation,
+                                                toPosition = resss.toPosition,
+                                                addTime = DateTime.Now,
+                                                addWho = from.addWho,
+                                            });
+                                        }
+                                        return str;// + JsonConvert.SerializeObject(lstr);
+                                        var str1 = apiHelper.Post("http://10.20.66.121:18080/datahubjson/wcs/?method=STOCKININTERACTION", JsonConvert.SerializeObject(new StockInInteractionRequest
+                                        {
+                                            data = new StockInInteractionData
+                                            {
+                                                header = new StockInInteractionHeader
+                                                {
+                                                    palletId = "TP9901",
+                                                    grossWeight = 99,
+                                                    palletWidth = 99,
+                                                    fmLocation = "",
+                                                    fmPosition = "",
+                                                    addTime = DateTime.Now,
+                                                    addWho = ""
+                                                }
+                                            }
+                                        }));
+                                        return str1;
                                     }
 
                                 ///浠诲姟鍙栨秷銆�WMS-->WCS
                                 case "/api/Wcs/cancelTask":
                                     {
                                         statusCode = System.Net.HttpStatusCode.OK;
-
-                                        return JsonConvert.SerializeObject("");
+                                        var req = JsonConvert.DeserializeObject<CancelTaskRequest>(requestJson);
+                                        var task = lstr.Find(x => x.groupTaskId == req.data.header.groupTaskId && x.groupTaskSequence == req.data.header.groupTaskSequence);
+                                        if (task == null)
+                                            return JsonConvert.SerializeObject(new CancelTaskResponse
+                                            {
+                                                Response = new ResponseData
+                                                {
+                                                    Return = new ReturnInfo
+                                                    {
+                                                        returnCode = "0001",
+                                                        returnDesc = "浠诲姟涓嶅瓨鍦紒锛侊紒",
+                                                        returnFlag = "0"
+                                                    }
+                                                }
+                                            });
+                                        lstr.Remove(task);
+                                        return JsonConvert.SerializeObject(new CancelTaskResponse
+                                        {
+                                            Response = new ResponseData
+                                            {
+                                                Return = new ReturnInfo
+                                                {
+                                                    returnCode = "0000",
+                                                    returnDesc = "",
+                                                    returnFlag = "1"
+                                                }
+                                            }
+                                        });
                                     }
                                 /// 纰熺洏鏈虹敵璇蜂换鍔°�  WCS-->WMS
                                 case "/api/Wcs/palletStackerInteraction":
                                     {
                                         statusCode = System.Net.HttpStatusCode.OK;
 
-                                        return JsonConvert.SerializeObject("");
+                                        var str = apiHelper.Post("http://10.20.66.121:18080/datahubjson/wcs/?method=PALLETSTACKERINTERACTION", !string.IsNullOrEmpty(requestJson) ? requestJson : JsonConvert.SerializeObject(new PalletStackerInteractionRequest
+                                        {
+                                            data = new PalletStackerInteractionData
+                                            {
+                                                header = new PalletStackerInteractionHeader
+                                                {
+                                                    palletId = "TP9901",
+                                                    taskId = $"X{DateTime.Now.ToString("yyyyMMdd")}001",
+                                                    taskType = "PI",
+                                                    fmLocation = "2FC1076",
+                                                    addTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                                                    addWho = "wcs"
+                                                }
+                                            }
+                                        }));
+                                        return str;
+                                        //return JsonConvert.SerializeObject("");
                                     }
                                 ///淇敼浠诲姟浼樺厛绾�銆�WMS - WCS
                                 case "/api/Wcs/modifyTaskPriority":
                                     {
                                         statusCode = System.Net.HttpStatusCode.OK;
+                                        var req = JsonConvert.DeserializeObject<ModifyTaskPriorityRequest>(requestJson);
+                                        List<TaskErrorInfo> taskErrorInfos = new List<TaskErrorInfo>();
+                                        if (req != null)
+                                        {
+                                            foreach (var item in req.data.header)
+                                            {
+                                                var task = lstr.Find(x => x.groupTaskSequence == item.groupTaskSequence && x.groupTaskId == item.groupTaskId);
+                                                if (task != null)
+                                                {
+                                                    task.priority = item.priority;
+                                                }
+                                                else
+                                                {
+                                                    taskErrorInfos.Add(new TaskErrorInfo
+                                                    {
+                                                        groupTaskId = item.groupTaskId,
+                                                        groupTaskSequence = item.groupTaskSequence,
+                                                        errorCode = "0001",
+                                                        errorDesc = "娌¤繖涓换鍔�
+                                                    });
+                                                }
+                                            }
 
-                                        return JsonConvert.SerializeObject("");
+                                        }
+
+                                        if (req == null || req.data.header.Count == taskErrorInfos.Count)
+                                            return JsonConvert.SerializeObject(new ModifyTaskPriorityResponse
+                                            {
+                                                Response = new ModifyTaskPriorityResponseData
+                                                {
+                                                    Return = new ModifyTaskPriorityReturnInfo
+                                                    {
+                                                        returnCode = "0001",
+                                                        returnDesc = "娌℃湁浠诲姟鍙洿鏀�,
+                                                        returnFlag = "0"
+                                                    }
+                                                }
+                                            });
+                                        else
+                                        {
+                                            if (taskErrorInfos.Count == 0)
+                                                return JsonConvert.SerializeObject(new ModifyTaskPriorityResponse
+                                                {
+                                                    Response = new ModifyTaskPriorityResponseData
+                                                    {
+                                                        Return = new ModifyTaskPriorityReturnInfo
+                                                        {
+                                                            returnCode = "0000",
+                                                            returnFlag = "1",
+                                                            returnDesc="ok"
+                                                        }
+                                                    }
+                                                });
+                                            else
+                                            {
+                                                return JsonConvert.SerializeObject(new ModifyTaskPriorityResponse
+                                                {
+                                                    Response = new ModifyTaskPriorityResponseData
+                                                    {
+                                                        Return = new ModifyTaskPriorityReturnInfo
+                                                        {
+                                                            returnCode = "0001",
+                                                            returnDesc = "閮ㄥ垎浠诲姟鍙洿鏀�,
+                                                            returnFlag = "2",
+                                                            resultInfo = taskErrorInfos
+                                                        }
+                                                    }
+                                                });
+                                            }
+                                        }
+
                                     }
                                 /// 杈撻�绾夸换鍔℃帹閫併� WMS-->WCS  -- 璁板綍绠卞彿鏁版嵁锛屽垎鎷d笅绾垮悗鏍规嵁鎯冲ソ杩涘叆瀵瑰簲鐨勫尯鍩熴� 
                                 case "/api/Wcs/putConveyorTask":
                                     {
                                         statusCode = System.Net.HttpStatusCode.OK;
+                                        var req = JsonConvert.DeserializeObject<PutConveyorTaskRequest>(requestJson);
+                                        List<TaskErrorInfo> taskErrorInfos = new List<TaskErrorInfo>();
+                                        if (req != null)
+                                        {
+                                            foreach (var item in req.data.header)
+                                            {
+                                                var task = putConveyorTasks.Find(x => x.groupTaskSequence == item.groupTaskSequence && x.groupTaskId == item.groupTaskId);
+                                                if (task == null)
+                                                {
+                                                    putConveyorTasks.Add(item);
+                                                }
+                                                else
+                                                {
+                                                    taskErrorInfos.Add(new TaskErrorInfo
+                                                    {
+                                                        groupTaskId = item.groupTaskId,
+                                                        groupTaskSequence = item.groupTaskSequence,
+                                                        errorCode = "0001",
+                                                        errorDesc = "閲嶅"
+                                                    });
+                                                }
+                                            }
 
-                                        return JsonConvert.SerializeObject("");
+                                        }
+
+                                        if (req == null || req.data.header.Count == taskErrorInfos.Count)
+                                            return JsonConvert.SerializeObject(new PutConveyorTaskResponse
+                                            {
+                                                Response = new PutConveyorTaskResponseData
+                                                {
+                                                    Return = new PutConveyorTaskReturnInfo
+                                                    {
+                                                        returnCode = "0001",
+                                                        returnDesc = "鍏ㄩ儴閲嶅",
+                                                        returnFlag = "0"
+                                                    }
+                                                }
+                                            });
+                                        else
+                                        {
+                                            if (taskErrorInfos.Count == 0)
+                                                return JsonConvert.SerializeObject(new PutConveyorTaskResponse
+                                                {
+                                                    Response = new PutConveyorTaskResponseData
+                                                    {
+                                                        Return = new PutConveyorTaskReturnInfo
+                                                        {
+                                                            returnCode = "0000",
+                                                            returnFlag = "1"
+                                                        }
+                                                    }
+                                                });
+                                            else
+                                            {
+                                                return JsonConvert.SerializeObject(new PutConveyorTaskResponse
+                                                {
+                                                    Response = new PutConveyorTaskResponseData
+                                                    {
+                                                        Return = new PutConveyorTaskReturnInfo
+                                                        {
+                                                            returnCode = "0001",
+                                                            returnDesc = "閮ㄥ垎閲嶅",
+                                                            returnFlag = "2",
+                                                            resultInfo = taskErrorInfos
+                                                        }
+                                                    }
+                                                });
+                                            }
+                                        }
                                     }
 
                                 ///涓婃姤绉伴噸灏哄 - websocket .杩欓噷鍐欑潃浣滀负璁板綍 
                                 case "/api/Wcs/reportWeightinfo":
                                     {
                                         statusCode = System.Net.HttpStatusCode.OK;
+                                        if (/*list.Count > 0 && */WebSocketClientWithReconnect.GetWebSocketState() == WebSocketState.Open)
+                                        //for (int i = 60000; i < 70000; i++)
+                                        {
+                                            //Thread.Sleep(1000);
+                                            var req = new ReportWeightInfoRequest
+                                            {
+                                                data = new ReportWeightInfoData
+                                                {
+                                                    header = new ReportWeightInfoHeader
+                                                    {
+                                                        deliveryNo = "F00001",
+                                                        grossWeight = 99,
+                                                        cube = 66,
+                                                        addTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),
+                                                        addWho = "WCS"
+                                                    }
+                                                }
+                                            };
+                                            //Console.WriteLine($"{DateTime.Now.ToString("HH:mm:ss.fff")}>>>GGG{i}");
+                                            LogHelper.Info(JsonConvert.SerializeObject(req));
+                                            var b = WebSocketClientWithReconnect.Instance?.SendAsync(JsonConvert.SerializeObject(req)).Result;
+                                            Console.WriteLine(req.data.header.deliveryNo + "鍙戦�瀹屾垚锛侊紒" + b);
+                                            if (b == true)
+                                            {
+                                                // 绛夊緟鐗瑰畾鍝嶅簲
 
-                                        return JsonConvert.SerializeObject("");
+                                                var rr = reportWeightinfo.GetChinnnl().Result;
+
+                                                LogHelper.Info("鎺ユ敹" + JsonConvert.SerializeObject(rr));
+                                                //}
+                                                return JsonConvert.SerializeObject(rr);
+                                            }
+                                            else return "鍙戦�澶辫触銆�;
+                                        }
                                     }
+                                    break;
                             }
                             break;
                         }
@@ -470,14 +936,17 @@
 
     public class WebSocketClientWithReconnect
     {
-        private ClientWebSocket _webSocket;
+        //public static List<object> SendList = new List<object>();
+
+        public static ClientWebSocket _webSocket;
+        private static WebSocketClientWithReconnect _instance;
         private readonly Uri _serverUri;
         private readonly CancellationTokenSource _cts = new CancellationTokenSource();
         private readonly int _reconnectDelayMs;
 
         public event Action<string> OnMessageReceived = msg => Console.WriteLine($"{DateTime.Now.ToString("HH:mm:ss.fff")}>>>Received: {msg}");
         public event Action OnConnected = () => Console.WriteLine("Connected to server");
-        public event Action OnDisconnected = () => Console.WriteLine("Disconnected from server");
+        public event Action OnDisconnected = () => Console.WriteLine("Disconnected from webSocket server");
         public event Action<Exception> OnError = ex => Console.WriteLine($"Error: {ex.Message}");
 
         public WebSocketClientWithReconnect(string serverUrl, int reconnectDelayMs = 5000)
@@ -485,9 +954,18 @@
             _serverUri = new Uri(serverUrl);
             _reconnectDelayMs = reconnectDelayMs;
         }
+        public static WebSocketClientWithReconnect Instance
+        {
+            get
+            {
+                return _instance;
+            }
+        }
 
+        public static WebSocketState GetWebSocketState() => _webSocket != null ? _webSocket.State : WebSocketState.Closed;
         public async Task StartAsync()
         {
+            _instance = this;
             while (!_cts.IsCancellationRequested)
             {
                 try
@@ -570,7 +1048,7 @@
             }
         }
 
-        public async Task SendAsync(string message)
+        public async Task<bool> SendAsync(string message)
         {
             if (_webSocket?.State != WebSocketState.Open)
             {
@@ -579,7 +1057,7 @@
 
             var bytes = System.Text.Encoding.UTF8.GetBytes(message);
             await _webSocket.SendAsync(new ArraySegment<byte>(bytes), WebSocketMessageType.Text, true, _cts.Token);
-
+            return true;
         }
     }
 
@@ -849,7 +1327,7 @@
             else
             {
                 logger = LogFactory.CreateLogger(name);
-                if (logger != null)
+                if (logger != null && !loggers.Keys.Contains(name))
                 {
                     loggers.Add(name, logger);
                 }
@@ -960,5 +1438,868 @@
 
         #endregion [鑷畾涔夌被][20250323145505759][LogFactory]
     }
+
+    public class HttpHelper
+    {
+        #region    [鑷畾涔夌被][20250325095622918][HttpHelper]
+        public string Post(string url, string postData, string contentType = "application/json", string sessionId = "")
+        {
+            LogHelper.Info(url + "+" + postData);
+            WebRequest request = WebRequest.Create(url);
+            request.Method = "POST";
+            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
+            request.ContentType = contentType;
+            request.ContentLength = byteArray.Length;
+            request.Timeout = 15000;
+            if (sessionId != "")
+            {
+                request.Headers.Set("ASP.NET_SessionId", sessionId);
+            }
+
+            //Authorization: UApGP6WW9FsBUqAlzxRGOw ==
+            request.Headers.Set("Authorization", "UApGP6WW9FsBUqAlzxRGOw==");
+            StreamReader reader = null;
+            Stream stream = null;
+            WebResponse rsp = null;
+            try
+            {
+                stream = request.GetRequestStream();
+                stream.Write(byteArray, 0, byteArray.Length);
+                stream.Close();
+                rsp = request.GetResponse();
+                stream = rsp.GetResponseStream();
+                reader = new StreamReader(stream);
+                string rrend = reader.ReadToEnd();
+                LogHelper.Info($"{url} response={rrend}");
+                return rrend;
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Info($"{url} err={ex.Message}");
+                return "";
+            }
+            finally
+            {
+                // 閲婃斁璧勬簮
+                if (reader != null) reader.Close();
+                if (stream != null) stream.Close();
+                if (rsp != null) rsp.Close();
+            }
+
+        }
+        #endregion [鑷畾涔夌被][20250325095622918][HttpHelper]
+    }
+    public class Clloc
+    {
+        public class sendTask
+        {
+            /// <summary>
+            /// 浠诲姟涓嬪彂璇锋眰
+            /// </summary>
+            public class SendTaskRequest
+            {
+                /// <summary>
+                /// 璇锋眰鏁版嵁
+                /// </summary>
+                public SendTaskData data { get; set; }
+            }
+
+            public class SendTaskData
+            {
+                /// <summary>
+                /// 璇锋眰澶翠俊鎭�+                /// </summary>
+                public SendTaskHeader header { get; set; }
+            }
+
+            public class SendTaskHeader
+            {
+                /// <summary>
+                /// 缁勭粐缂栧彿 - 涓婚敭锛岄粯璁ERCURY
+                /// </summary>
+                public string organizationId { get; set; } = "MERCURY";
+
+                /// <summary>
+                /// 浠撳簱缂栧彿 - 涓婚敭锛岄粯璁N02
+                /// </summary>
+                public string warehouseId { get; set; } = "HN02";
+
+                /// <summary>
+                /// 浠诲姟缁勭紪鍙�- 涓婚敭
+                /// </summary>
+                public string groupTaskId { get; set; }
+
+                /// <summary>
+                /// 浠诲姟缁勫簭鍙�- 涓婚敭
+                /// </summary>
+                public int groupTaskSequence { get; set; }
+
+                /// <summary>
+                /// 鎵樼洏鍙�+                /// </summary>
+                public string palletId { get; set; }
+
+                /// <summary>
+                /// 鏉ユ簮搴撲綅
+                /// </summary>
+                public string fmLocation { get; set; }
+
+                /// <summary>
+                /// 鏉ユ簮鐐逛綅
+                /// </summary>
+                public string fmPosition { get; set; }
+
+                /// <summary>
+                /// 鐩爣搴撲綅鍙�+                /// </summary>
+                public string toLocation { get; set; }
+
+                /// <summary>
+                /// 鐩爣鐐逛綅
+                /// </summary>
+                public string toPosition { get; set; }
+
+                /// <summary>
+                /// 鐘舵� - 00:鍒涘缓
+                /// </summary>
+                public string taskStatus { get; set; } = "00";
+
+                /// <summary>
+                /// 浠诲姟绫诲瀷 - PA:鍏ュ簱(涓婃灦/鍥炲簱/绉诲簱), PK:鍑哄簱(鎷h揣/绉诲簱/琛ヨ揣/鐩樼偣), MV:鍊掑簱
+                /// </summary>
+                public string taskType { get; set; }
+
+                /// <summary>
+                /// 鍒涘缓鏃堕棿
+                /// </summary>
+                public DateTime addTime { get; set; }
+
+                /// <summary>
+                /// 鍒涘缓浜�+                /// </summary>
+                public string addWho { get; set; }
+
+                /// <summary>
+                /// 浼樺厛绾�- 1-5(1鏈�珮,5鏈�綆),榛樿3
+                /// </summary>
+                public string priority { get; set; } = "3";
+
+            }
+
+            /// <summary>
+            /// 浠诲姟涓嬪彂鍝嶅簲
+            /// </summary>
+            public class SendTaskResponse
+            {
+                public ResponseData Response { get; set; }
+            }
+
+            public class ResponseData
+            {
+                [JsonProperty("return")]
+                public ReturnInfo Return { get; set; }
+            }
+
+            public class ReturnInfo
+            {
+                /// <summary>
+                /// 杩斿洖浠g爜 - 0000:鎴愬姛, 鍏朵粬:澶辫触
+                /// </summary>
+                public string returnCode { get; set; }
+
+                /// <summary>
+                /// 杩斿洖鎻忚堪
+                /// </summary>
+                public string returnDesc { get; set; }
+
+                /// <summary>
+                /// 杩斿洖鏍囪 - 1:鎴愬姛, 0:澶辫触
+                /// </summary>
+                public string returnFlag { get; set; }
+            }
+        }
+
+        public class stockInException
+        {
+            /// <summary>
+            /// 鍏ュ簱寮傚父璇锋眰
+            /// </summary>
+            public class StockInExceptionRequest
+            {
+                public StockInExceptionData data { get; set; }
+            }
+
+            public class StockInExceptionData
+            {
+                public StockInExceptionHeader header { get; set; }
+            }
+
+            public class StockInExceptionHeader
+            {
+                /// <summary>
+                /// 缁勭粐缂栧彿 - 涓婚敭锛岄粯璁ERCURY
+                /// </summary>
+                public string organizationId { get; set; } = "MERCURY";
+
+                /// <summary>
+                /// 浠撳簱缂栧彿 - 涓婚敭锛岄粯璁N02
+                /// </summary>
+                public string warehouseId { get; set; } = "HN02";
+
+                /// <summary>
+                /// 浠诲姟缁勭紪鍙�- 涓婚敭
+                /// </summary>
+                public string groupTaskId { get; set; }
+
+                /// <summary>
+                /// 浠诲姟缁勫簭鍙�- 涓婚敭
+                /// </summary>
+                public int groupTaskSequence { get; set; }
+
+                /// <summary>
+                /// 鎵樼洏鍙�+                /// </summary>
+                public string palletId { get; set; }
+
+                /// <summary>
+                /// 鍒涘缓鏃堕棿
+                /// </summary>
+                public string addTime { get; set; }
+
+                /// <summary>
+                /// 鍒涘缓璁惧
+                /// </summary>
+                public string addWho { get; set; }
+
+                /// <summary>
+                /// 寮傚父鍘熷洜鎻忚堪
+                /// </summary>
+                public string reason { get; set; }
+
+                /// <summary>
+                /// 寮傚父鍘熷洜浠g爜 - 01:搴撲綅鏈夎揣涓嶅彲鐢� 03:鍏ュ唴浼镐綅澶栦几浣嶆湁璐�+                /// </summary>
+                public string reasonCode { get; set; }
+
+                // ... UDF瀛楁
+            }
+
+            /// <summary>
+            /// 鍏ュ簱寮傚父鍝嶅簲
+            /// </summary>
+            public class StockInExceptionResponse
+            {
+                public StockInExceptionResponseData Response { get; set; }
+            }
+
+            public class StockInExceptionResponseData
+            {
+                [JsonProperty("return")]
+                public StockInExceptionReturnInfo Return { get; set; }
+            }
+
+            public class StockInExceptionReturnInfo : ReturnInfo
+            {
+                /// <summary>
+                /// 鏂板垎閰嶇殑鐩爣搴撲綅
+                /// </summary>
+                public string toLocation { get; set; }
+
+                /// <summary>
+                /// 鏂板垎閰嶇殑鐩爣鐐逛綅
+                /// </summary>
+                public string toPosition { get; set; }
+            }
+        }
+
+        public class taskFeedback
+        {
+            /// <summary>
+            /// 浠诲姟鍙嶉璇锋眰
+            /// </summary>
+            public class TaskFeedbackRequest
+            {
+                public TaskFeedbackData data { get; set; }
+            }
+
+            public class TaskFeedbackData
+            {
+                public TaskFeedbackHeader header { get; set; }
+            }
+
+            public class TaskFeedbackHeader
+            {
+                /// <summary>
+                /// 缁勭粐缂栧彿 - 涓婚敭锛岄粯璁ERCURY
+                /// </summary>
+                public string organizationId { get; set; } = "MERCURY";
+
+                /// <summary>
+                /// 浠撳簱缂栧彿 - 涓婚敭锛岄粯璁N02
+                /// </summary>
+                public string warehouseId { get; set; } = "HN02";
+
+                /// <summary>
+                /// 浠诲姟缁勭紪鍙�- 涓婚敭
+                /// </summary>
+                public string groupTaskId { get; set; }
+
+                /// <summary>
+                /// 浠诲姟缁勫簭鍙�- 涓婚敭
+                /// </summary>
+                public int groupTaskSequence { get; set; }
+
+                /// <summary>
+                /// 鎵樼洏鍙�+                /// </summary>
+                public string palletId { get; set; }
+
+                /// <summary>
+                /// 鏉ユ簮搴撲綅
+                /// </summary>
+                public string fmLocation { get; set; }
+
+                /// <summary>
+                /// 鏉ユ簮鐐逛綅
+                /// </summary>
+                public string fmPosition { get; set; }
+
+                /// <summary>
+                /// 鐩爣搴撲綅鍙�+                /// </summary>
+                public string toLocation { get; set; }
+
+                /// <summary>
+                /// 鐩爣鐐逛綅
+                /// </summary>
+                public string toPosition { get; set; }
+
+                /// <summary>
+                /// 鐘舵� - 80:瀹屾垚, 98:寮傚父(鍙栬揣鏃犺揣)
+                /// </summary>
+                public string taskStatus { get; set; }
+
+                /// <summary>
+                /// 浠诲姟绫诲瀷 - PA:鍏ュ簱, PK:鍑哄簱, MV:鍊掑簱
+                /// </summary>
+                public string taskType { get; set; }
+
+                /// <summary>
+                /// 瀹屾垚鏃堕棿
+                /// </summary>
+                public string closeTime { get; set; }
+
+                /// <summary>
+                /// 瀹屾垚浜哄憳
+                /// </summary>
+                public string closeWho { get; set; }
+
+                // ... UDF瀛楁
+            }
+        }
+        public class stockInInteraction
+        {
+            /// <summary>
+            /// 鍏ュ簱浜や簰璇锋眰
+            /// </summary>
+            public class StockInInteractionRequest
+            {
+                public StockInInteractionData data { get; set; }
+            }
+
+            public class StockInInteractionData
+            {
+                public StockInInteractionHeader header { get; set; }
+            }
+
+            public class StockInInteractionHeader
+            {
+                /// <summary>
+                /// 缁勭粐缂栧彿 - 涓婚敭锛岄粯璁ERCURY
+                /// </summary>
+                public string organizationId { get; set; } = "MERCURY";
+
+                /// <summary>
+                /// 浠撳簱缂栧彿 - 涓婚敭锛岄粯璁N02
+                /// </summary>
+                public string warehouseId { get; set; } = "HN02";
+
+                /// <summary>
+                /// 鎵樼洏鍙�- 涓婚敭
+                /// </summary>
+                public string palletId { get; set; }
+
+                /// <summary>
+                /// 鎬婚噸閲�kg)
+                /// </summary>
+                public decimal grossWeight { get; set; }
+
+                /// <summary>
+                /// 鐮佺洏瀹藉害(cm)
+                /// </summary>
+                public decimal palletWidth { get; set; }
+
+                /// <summary>
+                /// 鏉ユ簮搴撲綅
+                /// </summary>
+                public string fmLocation { get; set; }
+
+                /// <summary>
+                /// 鏉ユ簮鐐逛綅
+                /// </summary>
+                public string fmPosition { get; set; }
+
+                /// <summary>
+                /// 鍒涘缓鏃堕棿
+                /// </summary>
+                public DateTime addTime { get; set; }
+
+                /// <summary>
+                /// 鍒涘缓浜�+                /// </summary>
+                public string addWho { get; set; }
+
+                // ... UDF01-UDF10
+            }
+
+            /// <summary>
+            /// 鍏ュ簱浜や簰鍝嶅簲
+            /// </summary>
+            public class StockInInteractionResponse
+            {
+                public StockInInteractionResponseData Response { get; set; }
+            }
+
+            public class StockInInteractionResponseData
+            {
+                [JsonProperty("return")]
+                public StockInInteractionReturnInfo Return { get; set; }
+            }
+
+            public class StockInInteractionReturnInfo : ReturnInfo
+            {
+                /// <summary>
+                /// 浠诲姟缁勭紪鍙�+                /// </summary>
+                public string groupTaskId { get; set; }
+
+                /// <summary>
+                /// 浠诲姟缁勫簭鍙�+                /// </summary>
+                public int groupTaskSequence { get; set; }
+
+                /// <summary>
+                /// 鐘舵� - 00:鍒涘缓
+                /// </summary>
+                public string taskStatus { get; set; }
+
+                /// <summary>
+                /// 浠诲姟绫诲瀷 - PA:鍏ュ簱
+                /// </summary>
+                public string taskType { get; set; }
+
+                /// <summary>
+                /// 浼樺厛绾�- 1-5(1鏈�珮)
+                /// </summary>
+                public string priority { get; set; }
+
+                /// <summary>
+                /// 鐩爣搴撲綅鍙�+                /// </summary>
+                public string toLocation { get; set; }
+
+                /// <summary>
+                /// 鐩爣鐐逛綅
+                /// </summary>
+                public string toPosition { get; set; }
+            }
+        }
+        public class cancelTask
+        {
+            /// <summary>
+            /// 浠诲姟鍙栨秷璇锋眰
+            /// </summary>
+            public class CancelTaskRequest
+            {
+                public CancelTaskData data { get; set; }
+            }
+
+            public class CancelTaskData
+            {
+                public CancelTaskHeader header { get; set; }
+            }
+
+            public class CancelTaskHeader
+            {
+                /// <summary>
+                /// 缁勭粐缂栧彿 - 涓婚敭锛岄粯璁ERCURY
+                /// </summary>
+                public string organizationId { get; set; } = "MERCURY";
+
+                /// <summary>
+                /// 浠撳簱缂栧彿 - 涓婚敭锛岄粯璁N02
+                /// </summary>
+                public string warehouseId { get; set; } = "HN02";
+
+                /// <summary>
+                /// 浠诲姟缁勭紪鍙�- 涓婚敭
+                /// </summary>
+                public string groupTaskId { get; set; }
+
+                /// <summary>
+                /// 浠诲姟缁勫簭鍙�- 涓婚敭
+                /// </summary>
+                public int groupTaskSequence { get; set; }
+            }
+
+            /// <summary>
+            /// 浠诲姟鍙栨秷鍝嶅簲
+            /// </summary>
+            public class CancelTaskResponse
+            {
+                public ResponseData Response { get; set; }
+            }
+        }
+        public class palletStackerInteraction
+        {
+            /// <summary>
+            /// 鍙犵洏鏈轰氦浜掕姹�+            /// </summary>
+            public class PalletStackerInteractionRequest
+            {
+                public PalletStackerInteractionData data { get; set; }
+            }
+
+            public class PalletStackerInteractionData
+            {
+                public PalletStackerInteractionHeader header { get; set; }
+            }
+
+            public class PalletStackerInteractionHeader
+            {
+                /// <summary>
+                /// 缁勭粐缂栧彿 - 涓婚敭锛岄粯璁ERCURY
+                /// </summary>
+                public string organizationId { get; set; } = "MERCURY";
+
+                /// <summary>
+                /// 浠撳簱缂栧彿 - 涓婚敭锛岄粯璁N02
+                /// </summary>
+                public string warehouseId { get; set; } = "HN02";
+
+                /// <summary>
+                /// 浠诲姟缂栧彿 - 涓婚敭锛岃澶囧彂鍑虹殑璇锋眰ID
+                /// </summary>
+                public string taskId { get; set; }
+
+                /// <summary>
+                /// 鎵樼洏鍙�+                /// </summary>
+                public string palletId { get; set; }
+
+                /// <summary>
+                /// 绫诲瀷 - PI:鍏ュ簱, PT:鍑哄簱(褰撳墠鏃犲嚭搴撳満鏅�
+                /// </summary>
+                public string taskType { get; set; }
+
+                /// <summary>
+                /// 璧峰搴撲綅 - 鍙犵洏鏈虹墿鐞嗚捣濮嬩綅缃�+                /// </summary>
+                public string fmLocation { get; set; }
+
+                /// <summary>
+                /// 浼樺厛绾�- 1-5(1鏈�珮)
+                /// </summary>
+                public string priority { get; set; } = "3";
+
+                /// <summary>
+                /// 鍒涘缓鏃堕棿
+                /// </summary>
+                public string addTime { get; set; }
+
+                /// <summary>
+                /// 鍒涘缓璁惧
+                /// </summary>
+                public string addWho { get; set; }
+
+                // ... UDF01-UDF10
+            }
+
+            /// <summary>
+            /// 鍙犵洏鏈轰氦浜掑搷搴�+            /// </summary>
+            public class PalletStackerInteractionResponse
+            {
+                public ResponseData Response { get; set; }
+            }
+
+        }
+        public class modifyTaskPriority
+        {
+            /// <summary>
+            /// 淇敼浠诲姟浼樺厛绾ц姹�+            /// </summary>
+            public class ModifyTaskPriorityRequest
+            {
+                public ModifyTaskPriorityData data { get; set; }
+            }
+
+            public class ModifyTaskPriorityData
+            {
+                public List<ModifyTaskPriorityHeader> header { get; set; }
+            }
+
+            public class ModifyTaskPriorityHeader
+            {
+                /// <summary>
+                /// 缁勭粐缂栧彿 - 涓婚敭锛岄粯璁ERCURY
+                /// </summary>
+                public string organizationId { get; set; } = "MERCURY";
+
+                /// <summary>
+                /// 浠撳簱缂栧彿 - 涓婚敭锛岄粯璁N02
+                /// </summary>
+                public string warehouseId { get; set; } = "HN02";
+
+                /// <summary>
+                /// 浠诲姟缁勭紪鍙�- 涓婚敭
+                /// </summary>
+                public string groupTaskId { get; set; }
+
+                /// <summary>
+                /// 浠诲姟缁勫簭鍙�- 涓婚敭
+                /// </summary>
+                public int groupTaskSequence { get; set; }
+
+                /// <summary>
+                /// 浼樺厛绾�- 1-5(1鏈�珮)
+                /// </summary>
+                public string priority { get; set; }
+            }
+
+            /// <summary>
+            /// 淇敼浠诲姟浼樺厛绾у搷搴�鏀寔閮ㄥ垎鎴愬姛)
+            /// </summary>
+            public class ModifyTaskPriorityResponse
+            {
+                public ModifyTaskPriorityResponseData Response { get; set; }
+            }
+
+            public class ModifyTaskPriorityResponseData
+            {
+                [JsonProperty("return")]
+                public ModifyTaskPriorityReturnInfo Return { get; set; }
+            }
+
+            public class ModifyTaskPriorityReturnInfo : ReturnInfo
+            {
+                /// <summary>
+                /// 閮ㄥ垎鎴愬姛鏃剁殑閿欒璇︽儏
+                /// </summary>
+                public List<TaskErrorInfo> resultInfo { get; set; }
+            }
+
+            public class TaskErrorInfo
+            {
+                /// <summary>
+                /// 浠诲姟缁勭紪鍙�+                /// </summary>
+                public string groupTaskId { get; set; }
+
+                /// <summary>
+                /// 浠诲姟缁勫簭鍙�+                /// </summary>
+                public int groupTaskSequence { get; set; }
+
+                /// <summary>
+                /// 閿欒浠g爜
+                /// </summary>
+                public string errorCode { get; set; }
+
+                /// <summary>
+                /// 閿欒鍘熷洜
+                /// </summary>
+                public string errorDesc { get; set; }
+            }
+        }
+        public class putConveyorTask
+        {
+            /// <summary>
+            /// 杈撻�绾夸换鍔℃帹閫佽姹�+            /// </summary>
+            public class PutConveyorTaskRequest
+            {
+                public PutConveyorTaskData data { get; set; }
+            }
+
+            public class PutConveyorTaskData
+            {
+                public List<PutConveyorTaskHeader> header { get; set; }
+            }
+
+            public class PutConveyorTaskHeader
+            {
+                /// <summary>
+                /// 缁勭粐缂栧彿 - 涓婚敭锛岄粯璁ERCURY
+                /// </summary>
+                public string organizationId { get; set; } = "MERCURY";
+
+                /// <summary>
+                /// 浠撳簱缂栧彿 - 涓婚敭锛岄粯璁N02
+                /// </summary>
+                public string warehouseId { get; set; } = "HN02";
+
+                /// <summary>
+                /// 浠诲姟缁勭紪鍙�- 涓婚敭
+                /// </summary>
+                public string groupTaskId { get; set; }
+
+                /// <summary>
+                /// 浠诲姟缁勫簭鍙�- 涓婚敭
+                /// </summary>
+                public int groupTaskSequence { get; set; }
+
+                /// <summary>
+                /// 绠卞彿
+                /// </summary>
+                public string palletId { get; set; }
+
+                /// <summary>
+                /// 绠卞瀷 - 澶х/灏忕/鍛ㄨ浆绠辩紪鐮�+                /// </summary>
+                public string palletIdType { get; set; }
+
+                /// <summary>
+                /// 璐存爣鏍囪 - Y:闇�璐存爣, N:涓嶉渶瑕�+                /// </summary>
+                public string syncFlag { get; set; }
+
+                /// <summary>
+                /// 鐩爣鍖哄煙/閬撳彛 - 鐗╃悊浣嶇疆閬撳彛缂栫爜鎴朆2C澶嶆牳鍙板尯鍩熺紪鐮�+                /// </summary>
+                public string dLocation { get; set; }
+
+                // ... UDF01-UDF10
+            }
+
+            /// <summary>
+            /// 杈撻�绾夸换鍔℃帹閫佸搷搴�鏀寔閮ㄥ垎鎴愬姛)
+            /// </summary>
+            public class PutConveyorTaskResponse
+            {
+                public PutConveyorTaskResponseData Response { get; set; }
+            }
+
+            public class PutConveyorTaskResponseData
+            {
+                [JsonProperty("return")]
+                public PutConveyorTaskReturnInfo Return { get; set; }
+            }
+
+            public class PutConveyorTaskReturnInfo : ReturnInfo
+            {
+                /// <summary>
+                /// 閮ㄥ垎鎴愬姛鏃剁殑閿欒璇︽儏
+                /// </summary>
+                public List<TaskErrorInfo> resultInfo { get; set; }
+            }
+        }
+        public class reportWeightinfo
+        {
+            public static Channel<ReportWeightInfoResponse> channel = Channel.CreateUnbounded<ReportWeightInfoResponse>();
+
+            internal static async Task<ReportWeightInfoReturnInfo> GetChinnnl()
+            {
+                //var response = await reportWeightinfo.channel.Reader.ReadAllAsync();// foreach (var response in reportWeightinfo.channel.Reader.ReadAllAsync())
+                //{
+                //    return response?.Response?.Return ?? new ReportWeightInfoReturnInfo { ReturnCode = "0001", SortingChute = "0", ReturnDesc = "杩斿洖涓虹┖銆� };
+                //}
+                while (await reportWeightinfo.channel.Reader.WaitToReadAsync(CancellationToken.None))
+                {
+                    while (reportWeightinfo.channel.Reader.TryRead(out var response))
+                    {
+                        return response?.Response?.Return ?? new ReportWeightInfoReturnInfo { returnCode = "0001", sortingChute = "0", returnDesc = "杩斿洖涓虹┖銆� };
+                    }
+                }
+                return new ReportWeightInfoReturnInfo { returnCode = "0001", sortingChute = "0", returnDesc = "杩斿洖涓虹┖銆� };
+            }
+
+            /// <summary>
+            /// 涓婃姤绉伴噸淇℃伅璇锋眰
+            /// </summary>
+            public class ReportWeightInfoRequest
+            {
+                public ReportWeightInfoData data { get; set; }
+            }
+
+            public class ReportWeightInfoData
+            {
+                public ReportWeightInfoHeader header { get; set; }
+            }
+
+            public class ReportWeightInfoHeader
+            {
+                /// <summary>
+                /// 缁勭粐缂栧彿 - 涓婚敭锛岄粯璁ERCURY
+                /// </summary>
+                public string organizationId { get; set; } = "MERCURY";
+
+                /// <summary>
+                /// 浠撳簱缂栧彿 - 涓婚敭锛岄粯璁N02
+                /// </summary>
+                public string warehouseId { get; set; } = "HN02";
+
+                /// <summary>
+                /// 闈㈠崟鍙�- 涓婚敭
+                /// </summary>
+                public string deliveryNo { get; set; }
+
+                /// <summary>
+                /// 閲嶉噺(kg)
+                /// </summary>
+                public decimal grossWeight { get; set; }
+
+                /// <summary>
+                /// 浣撶Н(绔嬫柟鍘樼背)
+                /// </summary>
+                public decimal cube { get; set; }
+
+                /// <summary>
+                /// 鍒涘缓鏃堕棿
+                /// </summary>
+                public string addTime { get; set; }
+
+                /// <summary>
+                /// 鍒涘缓璁惧
+                /// </summary>
+                public string addWho { get; set; }
+
+                // ... UDF瀛楁
+            }
+
+            /// <summary>
+            /// 涓婃姤绉伴噸淇℃伅鍝嶅簲
+            /// </summary>
+            public class ReportWeightInfoResponse
+            {
+                public ReportWeightInfoResponseData Response { get; set; }
+            }
+
+            public class ReportWeightInfoResponseData
+            {
+                [JsonProperty("return")]
+                public ReportWeightInfoReturnInfo Return { get; set; }
+            }
+
+            public class ReportWeightInfoReturnInfo : ReturnInfo
+            {
+                /// <summary>
+                /// 鍒嗘嫞閬撳彛 - 杈撻�绾垮揩閫熷垎鎷i亾鍙g紪鐮�+                /// </summary>
+                public string sortingChute { get; set; }
+            }
+        }
+
+    }
 }
 #endregion [鑷畾涔夌被-VS][20250701112200484][AutoThread]
\ No newline at end of file

--
Gitblit v1.9.1