From 1caea0fdc7ed1788d854a2aba8853984b4494e01 Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期二, 24 六月 2025 09:56:28 +0800
Subject: [PATCH] 代码提交

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/JobsPart/SendAgvTask.cs |  271 ++++++++++++++++++++----------------------------------
 1 files changed, 101 insertions(+), 170 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/JobsPart/SendAgvTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/JobsPart/SendAgvTask.cs"
index da65672..2d0d56f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/JobsPart/SendAgvTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/JobsPart/SendAgvTask.cs"
@@ -33,8 +33,38 @@
             {
 
                 List<Dt_Task> agvtasks = _taskService.GetTasks();
-                foreach (Dt_Task agvtask in agvtasks)
+                var workshop1Tasks = agvtasks.Where(t => t.SourceAddress.Contains("PVC鎴愬搧"))
+                    .OrderBy(t => t.CreateDate)
+                    .ToList();
+
+                var workshop2Tasks = agvtasks.Where(t => t.SourceAddress.Contains("纭呯兎鎴愬搧"))
+                    .OrderBy(t => t.CreateDate)
+                    .ToList();
+
+                var workshop3Tasks = agvtasks.Where(t => !t.SourceAddress.Contains("鎴愬搧") || t.SourceAddress.Contains("鍗婃垚鍝�"))
+                    .OrderBy(t => t.CreateDate)
+                    .ToList();
+                int maxCount = Math.Max(workshop1Tasks.Count, workshop2Tasks.Count);
+                for (int i = 0; i < maxCount; i++)
                 {
+                    if (i < workshop1Tasks.Count)
+                    {
+                        ProcessTask(workshop1Tasks[i]);
+                    }
+
+                    if (i < workshop2Tasks.Count)
+                    {
+                        ProcessTask(workshop2Tasks[i]);
+                    }
+                }
+                foreach (var task in workshop3Tasks)
+                {
+                    ProcessTask(task);
+                }
+                void ProcessTask(Dt_Task agvtask)
+                {
+                    //foreach (Dt_Task agvtask in agvtasks)
+                    //{
                     bool text = true;
                     bool text1 = true;
                     bool text2 = true;
@@ -61,6 +91,13 @@
                                     continue;
                                 }
                             }
+                            if (a < b)
+                            {
+                                if (item.PointStatus == LocationStatusEnum.InStock.ObjToInt())
+                                {
+                                    text = false;
+                                }
+                            }
                         }
                         if (CachePointSO.Remark != null)
                         {
@@ -82,62 +119,7 @@
                         }
                         if (text == true && text1 == true)
                         {
-                            AGVTaskPend pend = new AGVTaskPend();
-                            //pend.requestType = pend.requestType;
-                            //pend.accessId = pend.accessId;
-                            //pend.requestId = pend.requestId;
-                            Pend data = new Pend();
-                            TaskPend taskPend = new TaskPend();
-                            {
-                                taskPend.taskNo = agvtask.TaskNum.ToString();
-                                taskPend.taskType = "MV";
-                                DateTime date = DateTime.Now;
-                                taskPend.taskDate = date.ToString("yyyy-MM-dd HH:mm:ss");
-                                taskPend.taskState = "00";
-                                taskPend.priority = "1";
-                                taskPend.wareCode = "W01";
-                                taskPend.docNo = "";
-                                taskPend.sku = "";
-                                taskPend.uom = "";
-                                taskPend.qty = 0;
-                                taskPend.trace = "";
-                                taskPend.fmLoc = agvtask.SourceAddress.ToString();
-                                taskPend.toLoc = agvtask.TargetAddress.ToString();
-                                taskPend.udf01 = "";
-                                taskPend.udf02 = "";
-                            }
-                            data.detail.Add(taskPend);
-                            pend.data = data;
-
-                            var time = new DateTimeOffset(DateTime.Now);
-                            long timestampStr = time.ToUnixTimeMilliseconds();//鏃堕棿鎴�
-                            string appkeystr = "appsalt=" + AGVopenApi.appsalt + "&appkey=" + AGVopenApi.appkey;
-                            string appkeyEcrypt = GetMD5Hex(appkeystr);
-                            string origin = appkeyEcrypt + "&appsecret=" + AGVopenApi.appsecret + "&timestamp=" + timestampStr + "&uniquestr=" + timestampStr;
-                            string signstr = GetMD5Hex(origin);
-                            Dictionary<string, string> headers = new Dictionary<string, string>()
-                                {
-                                    {"appkey",AGVopenApi.appkey },
-                                    {"timestamp",timestampStr.ToString() },
-                                    {"sign",signstr }
-                                };
-                            string posy = JsonConvert.SerializeObject(pend);
-                            var respone = HttpHelper.Post(url, posy, headers: headers);
-                            var res = JsonConvert.DeserializeObject<WebResponseContent>(respone);
-                            if (res.Code == 200)
-                            {
-                                agvtask.Dispatchertime = DateTime.Now;
-                                agvtask.TaskStatus = AGVTaskStatusEnum.AGV_SendOut.ObjToInt();
-                                _taskService.UpdateData(agvtask);
-                                Thread.Sleep(1000);
-                                WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂").Write("浠诲姟鍙凤細" + agvtask.TaskNum, "鏃犱汉鍙夎溅浠诲姟涓嬪彂");
-                            }
-                            else
-                            {
-                                //_unitOfWorkManage.RollbackTran();
-                                content = WebResponseContent.Instance.Error($"{res.Message}");
-                                WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触").Write("浠诲姟鍙凤細" + agvtask.TaskNum + '\n' + "澶辫触淇℃伅" + res.Message, "鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触");
-                            }
+                            AGVTask(agvtask);
                         }
                     }
                     else if (CachePointYCl != null && dt_CachePoint != null)
@@ -174,125 +156,15 @@
                         }
                         if (text2 == true && text3 == true)
                         {
-                            AGVTaskPend pend = new AGVTaskPend();
-                            //pend.requestType = pend.requestType;
-                            //pend.accessId = pend.accessId;
-                            //pend.requestId = pend.requestId;
-                            Pend data = new Pend();
-                            TaskPend taskPend = new TaskPend();
-                            {
-                                taskPend.taskNo = agvtask.TaskNum.ToString();
-                                taskPend.taskType = "MV";
-                                DateTime date = DateTime.Now;
-                                taskPend.taskDate = date.ToString("yyyy-MM-dd HH:mm:ss");
-                                taskPend.taskState = "00";
-                                taskPend.priority = "1";
-                                taskPend.wareCode = "W01";
-                                taskPend.docNo = "";
-                                taskPend.sku = "";
-                                taskPend.uom = "";
-                                taskPend.qty = 0;
-                                taskPend.trace = "";
-                                taskPend.fmLoc = agvtask.SourceAddress.ToString();
-                                taskPend.toLoc = agvtask.TargetAddress.ToString();
-                                taskPend.udf01 = "";
-                                taskPend.udf02 = "";
-                            }
-                            data.detail.Add(taskPend);
-                            pend.data = data;
-
-                            var time = new DateTimeOffset(DateTime.Now);
-                            long timestampStr = time.ToUnixTimeMilliseconds();//鏃堕棿鎴�
-                            string appkeystr = "appsalt=" + AGVopenApi.appsalt + "&appkey=" + AGVopenApi.appkey;
-                            string appkeyEcrypt = GetMD5Hex(appkeystr);
-                            string origin = appkeyEcrypt + "&appsecret=" + AGVopenApi.appsecret + "&timestamp=" + timestampStr + "&uniquestr=" + timestampStr;
-                            string signstr = GetMD5Hex(origin);
-                            Dictionary<string, string> headers = new Dictionary<string, string>()
-                                {
-                                    {"appkey",AGVopenApi.appkey },
-                                    {"timestamp",timestampStr.ToString() },
-                                    {"sign",signstr }
-                                };
-                            string posy = JsonConvert.SerializeObject(pend);
-                            var respone = HttpHelper.Post(url, posy, headers: headers);
-                            var res = JsonConvert.DeserializeObject<WebResponseContent>(respone);
-                            if (res.Code == 200)
-                            {
-                                agvtask.Dispatchertime = DateTime.Now;
-                                agvtask.TaskStatus = AGVTaskStatusEnum.AGV_SendOut.ObjToInt();
-                                _taskService.UpdateData(agvtask);
-                                Thread.Sleep(1000);
-                                WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂").Write("浠诲姟鍙凤細" + agvtask.TaskNum, "鏃犱汉鍙夎溅浠诲姟涓嬪彂");
-                            }
-                            else
-                            {
-                                //_unitOfWorkManage.RollbackTran();
-                                content = WebResponseContent.Instance.Error($"{res.Message}");
-                                WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触").Write("浠诲姟鍙凤細" + agvtask.TaskNum + '\n' + "澶辫触淇℃伅" + res.Message, "鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触");
-                            }
+                            AGVTask(agvtask);
                         }
                     }
                     else
                     {
-                        AGVTaskPend pend = new AGVTaskPend();
-                        //pend.requestType = pend.requestType;
-                        //pend.accessId = pend.accessId;
-                        //pend.requestId = pend.requestId;
-                        Pend data = new Pend();
-                        TaskPend taskPend = new TaskPend();
-                        {
-                            taskPend.taskNo = agvtask.TaskNum.ToString();
-                            taskPend.taskType = "MV";
-                            DateTime date = DateTime.Now;
-                            taskPend.taskDate = date.ToString("yyyy-MM-dd HH:mm:ss");
-                            taskPend.taskState = "00";
-                            taskPend.priority = "1";
-                            taskPend.wareCode = "W01";
-                            taskPend.docNo = "";
-                            taskPend.sku = "";
-                            taskPend.uom = "";
-                            taskPend.qty = 0;
-                            taskPend.trace = "";
-                            taskPend.fmLoc = agvtask.SourceAddress.ToString();
-                            taskPend.toLoc = agvtask.TargetAddress.ToString();
-                            taskPend.udf01 = "";
-                            taskPend.udf02 = "";
-                        }
-                        data.detail.Add(taskPend);
-                        pend.data = data;
-
-                        var time = new DateTimeOffset(DateTime.Now);
-                        long timestampStr = time.ToUnixTimeMilliseconds();//鏃堕棿鎴�
-                        string appkeystr = "appsalt=" + AGVopenApi.appsalt + "&appkey=" + AGVopenApi.appkey;
-                        string appkeyEcrypt = GetMD5Hex(appkeystr);
-                        string origin = appkeyEcrypt + "&appsecret=" + AGVopenApi.appsecret + "&timestamp=" + timestampStr + "&uniquestr=" + timestampStr;
-                        string signstr = GetMD5Hex(origin);
-                        Dictionary<string, string> headers = new Dictionary<string, string>()
-                                {
-                                    {"appkey",AGVopenApi.appkey },
-                                    {"timestamp",timestampStr.ToString() },
-                                    {"sign",signstr }
-                                };
-                        string posy = JsonConvert.SerializeObject(pend);
-                        var respone = HttpHelper.Post(url, posy, headers: headers);
-                        var res = JsonConvert.DeserializeObject<WebResponseContent>(respone);
-                        if (res.Code == 200)
-                        {
-                            agvtask.Dispatchertime = DateTime.Now;
-                            agvtask.TaskStatus = AGVTaskStatusEnum.AGV_SendOut.ObjToInt();
-                            _taskService.UpdateData(agvtask);
-                            Thread.Sleep(1000);
-                            WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂").Write("浠诲姟鍙凤細" + agvtask.TaskNum, "鏃犱汉鍙夎溅浠诲姟涓嬪彂");
-                        }
-                        else
-                        {
-                            //_unitOfWorkManage.RollbackTran();
-                            content = WebResponseContent.Instance.Error($"{res.Message}");
-                            WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触").Write("浠诲姟鍙凤細" + agvtask.TaskNum + '\n' + "澶辫触淇℃伅" + res.Message, "鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触");
-                        }
+                        AGVTask(agvtask);
                     }
+                    //}
                 }
-
             }
             catch (Exception ex)
             {
@@ -303,6 +175,65 @@
 
         }
 
+        public void AGVTask(Dt_Task agvtask)
+        {
+            AGVTaskPend pend = new AGVTaskPend();
+            //pend.requestType = pend.requestType;
+            //pend.accessId = pend.accessId;
+            //pend.requestId = pend.requestId;
+            Pend data = new Pend();
+            TaskPend taskPend = new TaskPend();
+            {
+                taskPend.taskNo = agvtask.TaskNum.ToString();
+                taskPend.taskType = "MV";
+                DateTime date = DateTime.Now;
+                taskPend.taskDate = date.ToString("yyyy-MM-dd HH:mm:ss");
+                taskPend.taskState = "00";
+                taskPend.priority = "1";
+                taskPend.wareCode = "W01";
+                taskPend.docNo = "";
+                taskPend.sku = "";
+                taskPend.uom = "";
+                taskPend.qty = 0;
+                taskPend.trace = "";
+                taskPend.fmLoc = agvtask.SourceAddress.ToString();
+                taskPend.toLoc = agvtask.TargetAddress.ToString();
+                taskPend.udf01 = "";
+                taskPend.udf02 = "";
+            }
+            data.detail.Add(taskPend);
+            pend.data = data;
+
+            var time = new DateTimeOffset(DateTime.Now);
+            long timestampStr = time.ToUnixTimeMilliseconds();//鏃堕棿鎴�
+            string appkeystr = "appsalt=" + AGVopenApi.appsalt + "&appkey=" + AGVopenApi.appkey;
+            string appkeyEcrypt = GetMD5Hex(appkeystr);
+            string origin = appkeyEcrypt + "&appsecret=" + AGVopenApi.appsecret + "&timestamp=" + timestampStr + "&uniquestr=" + timestampStr;
+            string signstr = GetMD5Hex(origin);
+            Dictionary<string, string> headers = new Dictionary<string, string>()
+                                {
+                                    {"appkey",AGVopenApi.appkey },
+                                    {"timestamp",timestampStr.ToString() },
+                                    {"sign",signstr }
+                                };
+            string posy = JsonConvert.SerializeObject(pend);
+            var respone = HttpHelper.Post(url, posy, headers: headers);
+            var res = JsonConvert.DeserializeObject<WebResponseContent>(respone);
+            if (res.Code == 200)
+            {
+                agvtask.Dispatchertime = DateTime.Now;
+                agvtask.TaskStatus = AGVTaskStatusEnum.AGV_SendOut.ObjToInt();
+                _taskService.UpdateData(agvtask);
+                Thread.Sleep(1000);
+                WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂").Write("浠诲姟鍙凤細" + agvtask.TaskNum, "鏃犱汉鍙夎溅浠诲姟涓嬪彂");
+            }
+            else
+            {
+                //_unitOfWorkManage.RollbackTran();
+                content = WebResponseContent.Instance.Error($"{res.msg}");
+                WriteLog.GetLog("鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触").Write("浠诲姟鍙凤細" + agvtask.TaskNum + '\n' + "澶辫触淇℃伅" + res.msg, "鏃犱汉鍙夎溅浠诲姟涓嬪彂澶辫触");
+            }
+        }
         public string GetMD5Hex(string appkeystr)
         {
             using MD5 md5Hash = MD5.Create();

--
Gitblit v1.9.3