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

---
 2025年6月12日/AuxAllWCS/Build/Project/代码/VS自定义类/AutoThread.cs |  932 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 818 insertions(+), 114 deletions(-)

diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs"
index eb835b9..10d44fc 100644
--- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs"
+++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs"
@@ -28,6 +28,8 @@
 using System.IO;
 using GZ.Device.Agv;
 using System.Net.NetworkInformation;
+using System.Windows.Documents;
+using System.Text.RegularExpressions;
 
 namespace GZ.Projects.AuxAllWCS
 {
@@ -128,38 +130,86 @@
         }
 
 
-        public void ThreaTotal(Tag tag)
+        public void ThreaTotal(Tag tag, Device device)
         {
             List<Task> tasks = new List<Task>();
+            tasks.Add(GetTask(delegate (Tag tag1, Device device1)
+            {
+                try
+                {
+                    foreach (var ip in new List<string> {
+                    device1.p鍙戦偅绉�涓嬬嚎.Config.IP,
+                    device1.p鍙戦偅绉�涓嬬嚎.Config.IP,
+                    device1.D瀹氬瓙1鍙锋満姊版墜.Config.IP,
+                    device1.D瀹氬瓙2鍙锋満姊版墜.Config.IP,
+                    device1.Js鎹烽『1.Config.IP,
+                    device1.Js鎹烽『2.Config.IP,
+                    device1.缁村笇灏旀姄鑷�.Config.IP,
+                    device1.缁村笇灏旀姄鑷�.Config.IP,
+                    device1.RGV.Config.IP
+                })
+                    {
+                        string pattern = @"\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b";
+
+                        var matches = Regex.Match(ip, pattern);
+                        if (matches.Success)
+                            IsMachineOnline(matches.Value);
+                    }
+                }
+                catch (Exception ex)
+                {
+                    LogHelper.Error(ex.Message, ex);
+                }
+
+            }, tag, device, 3000));
             tasks.Add(GetTask(ThreadMXC3, tag, 3000));
             tasks.Add(GetTask(ThreadMXC4, tag, 3000));
             tasks.Add(GetTask(ResetGats, tag, 3000));
-            
+
+            tasks.Add(GetTask(sa1022, tag, 3000));
+            tasks.Add(GetTask(sa1025, tag, 3000));
+            tasks.Add(GetTask(sa1030, tag, 3000));
+            tasks.Add(GetTask(sa2001, tag, 3000));
+            tasks.Add(GetTask(sa2030, tag, 3000));
+            tasks.Add(GetTask(sa2008, tag, 3000));
+            tasks.Add(GetTask(sa3001, tag, 3000));
+            tasks.Add(GetTask(sa3005, tag, 3000));
+            tasks.Add(GetTask(sa3006, tag, 3000));
+            tasks.Add(GetTask(sa3010, tag, 3000));
 
 
 
 
             Task.WaitAll(tasks.ToArray());
         }
-        public static bool IsMachineOnline(string hostNameOrIp, int timeout = 1000)
+
+        public bool IsMachineOnline(string hostNameOrIp, int timeout = 1000)
         {
+            //device.p鍙戦偅绉�涓嬬嚎.Config.IP
+            LogHelper.Info("妫�祴ip:>" + hostNameOrIp, "IP鍦ㄧ嚎妫�祴");
+            bool res = false;
             try
             {
                 using (var ping = new Ping())
                 {
                     var reply = ping.Send(hostNameOrIp, timeout);
-                    return reply.Status == IPStatus.Success;
+                    res = reply.Status == IPStatus.Success;
                 }
             }
             catch (PingException)
             {
-                return false;
+                res = false;
             }
             catch (Exception)
             {
                 // 鍏朵粬寮傚父澶勭悊
-                return false;
+                res = false;
             }
+            finally
+            {
+                LogHelper.Info("妫�祴ip:>" + hostNameOrIp + " 缁撴灉锛� + (res ? "閫� : "涓嶉�"), "IP鍦ㄧ嚎妫�祴");
+            }
+            return res;
         }
 
         private Task GetTask(Action<Tag> action, Tag tag, int i = 2500)
@@ -182,6 +232,25 @@
             return task;
         }
 
+        private Task GetTask(Action<Tag, Device> action, Tag tag, Device dev, int i = 2500)
+        {
+            var task = Task.Run(() =>
+            {
+                while (true)
+                {
+                    try
+                    {
+                        action(tag, dev);
+                    }
+                    catch (Exception ex)
+                    {
+                        LogHelper.Error(ex.Message, ex);
+                    }
+                    Thread.Sleep(i);
+                }
+            });
+            return task;
+        }
         public string WriteLine(string value = "")
         {
 
@@ -1113,28 +1182,93 @@
                     //杞﹁蛋浜� 寮�厜鏍�                     if (!goin)
                     {
-                        if (dev.deviceType == 1)
+                        if (dev.deviceType == 4)
                         {
-                            LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} 璁惧鏄瘂dev.deviceName} 寮�惎鍏夋爡澶勭悊 =================> ");
-                            LogHelper.Info($"{dev.deviceName}{(V ? "宸� : "鍙�)} 鍏夋爡{(goin ? "鍏抽棴" : "寮�惎")} 鐢宠銆� + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "R02" : "R04"), "true", dev.deviceName + "Queue"));
-                            Conn.榛樿Redis.SetValue(dev.deviceName + "." + (V ? "R02" : "R04"), "true", dev.deviceName + "Queue", false);
+                            LogHelper.Info($"杞︾寮�緭閫佺嚎浜や簰>  {item.S_TASK_NO} >{item.S_ACTION_CODE} 璁惧鏄瘂dev.deviceName} SSX AGV 浜や簰銆傘�銆�);
+                            switch (loc)
+                            {
+                                case "1019":
+                                    {
+                                        SetRedistoPlc("A1019鍙栬揣浜や簰.SOver", "true", "A1019鍙栬揣浜や簰Queue", "agv 鍙栬揣瀹屾垚鍐欏畬鎴愪氦浜�);
+                                    }
+                                    break;
+                                case "1030":
+                                    {
+                                        SetRedistoPlc("A1030鍙栬揣浜や簰.SOver", "true", "A1030鍙栬揣浜や簰Queue", "agv 鍙栬揣瀹屾垚鍐欏畬鎴愪氦浜�);
+                                    }
+                                    break;
+                                case "2030":
+                                    {
+                                        SetRedistoPlc("A2030鍙栬揣浜や簰.SOver", "true", "A2030鍙栬揣浜や簰Queue", "agv 鍙栬揣瀹屾垚鍐欏畬鎴愪氦浜�);
+                                    }
+                                    break;
+                                case "3005":
+                                    {
+                                        SetRedistoPlc("A3005鍙栬揣浜や簰.SOver", "true", "A3005鍙栬揣浜や簰Queue", "agv 鍙栬揣瀹屾垚鍐欏畬鎴愪氦浜�);
+                                    }
+                                    break;
+                                case "3010":
+                                    {
+                                        SetRedistoPlc("A3010鍙栬揣浜や簰.SOver", "true", "A3010鍙栬揣浜や簰Queue", "agv 鍙栬揣瀹屾垚鍐欏畬鎴愪氦浜�);
+                                    }
+                                    break;
+                                //}
+                                //switch (loc)
+                                //{
+                                case "1022":
+                                    {
+                                        SetRedistoPlc("A1022鏀捐揣浜や簰.SOver", "true", "A1022鏀捐揣浜や簰Queue", "agv 鏀捐揣瀹屾垚鍐欏畬鎴愪氦浜�);
+                                    }
+                                    break;
+                                case "1025":
+                                    {
+                                        SetRedistoPlc("A1025鏀捐揣浜や簰.SOver", "true", "A1025鏀捐揣浜や簰Queue", "agv 鏀捐揣瀹屾垚鍐欏畬鎴愪氦浜�);
+                                    }
+                                    break;
+                                case "2001":
+                                    {
+                                        SetRedistoPlc("A2001鏀捐揣浜や簰.SOver", "true", "A2001鏀捐揣浜や簰Queue", "agv 鏀捐揣瀹屾垚鍐欏畬鎴愪氦浜�);
+                                        tag.SA2001.wTaskNo = 20012007;
+                                        tag.SA2001.wEbit = 2007;
+                                        tag.SA2001.w鎵樼洏鐮�= TaskProcess.GenerateTaskNo("铏氭嫙鎵樼洏鍙�).Substring(3);
+                                    }
+                                    break;
+                                case "3001":
+                                    {
+                                        SetRedistoPlc("A3001鏀捐揣浜や簰.SOver", "true", "A3001鏀捐揣浜や簰Queue", "agv 鏀捐揣瀹屾垚鍐欏畬鎴愪氦浜�);
+                                    }
+                                    break;
+                                case "3006":
+                                    {
+                                        SetRedistoPlc("A3006鏀捐揣浜や簰.SOver", "true", "A3006鏀捐揣浜や簰Queue", "agv 鏀捐揣瀹屾垚鍐欏畬鎴愪氦浜�);
+                                    }
+                                    break;
+                            }
                         }
-                        else if (dev.deviceType == 2)
+                        else
                         {
-                            LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} 璁惧鏄瘂dev.deviceName} 寮�惎鍏夋爡澶勭悊 =================> ");
-                            LogHelper.Info($"{dev.deviceName}{(V ? "宸� : "鍙�)} 鍏夋爡{(goin ? "鍏抽棴" : "寮�惎")} 鐢宠銆� + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "D1222" : "D1223"), "1", dev.deviceName + "Queue"));
+                            if (dev.deviceType == 1)
+                            {
+                                LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} 璁惧鏄瘂dev.deviceName} 寮�惎鍏夋爡澶勭悊 =================> ");
+                                LogHelper.Info($"{dev.deviceName}{(V ? "宸� : "鍙�)} 鍏夋爡{(goin ? "鍏抽棴" : "寮�惎")} 鐢宠銆� + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "R02" : "R04"), "true", dev.deviceName + "Queue"));
+                                Conn.榛樿Redis.SetValue(dev.deviceName + "." + (V ? "R02" : "R04"), "true", dev.deviceName + "Queue", false);
+                            }
+                            else if (dev.deviceType == 2)
+                            {
+                                LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} 璁惧鏄瘂dev.deviceName} 寮�惎鍏夋爡澶勭悊 =================> ");
+                                LogHelper.Info($"{dev.deviceName}{(V ? "宸� : "鍙�)} 鍏夋爡{(goin ? "鍏抽棴" : "寮�惎")} 鐢宠銆� + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "D1222" : "D1223"), "1", dev.deviceName + "Queue"));
 
-                            Conn.榛樿Redis.SetValue(dev.deviceName + "." + (V ? "D1220" : "D1221"), "0", dev.deviceName + "Queue");
-                            Conn.榛樿Redis.SetValue(dev.deviceName + "." + (V ? "D1222" : "D1223"), "1", dev.deviceName + "Queue");
+                                Conn.榛樿Redis.SetValue(dev.deviceName + "." + (V ? "D1220" : "D1221"), "0", dev.deviceName + "Queue");
+                                Conn.榛樿Redis.SetValue(dev.deviceName + "." + (V ? "D1222" : "D1223"), "1", dev.deviceName + "Queue");
+                            }
+                            else if (dev.deviceType == 5)
+                            {
+                                LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} 璁惧鏄瘂dev.deviceName} 寮�惎鍏夋爡澶勭悊 =================> ");
+                                Conn.榛樿Redis.SetValue(dev.deviceName + "." + (V ? "D2211" : "D2216"), "1", dev.deviceName + "Queue");
+                                Conn.榛樿Redis.SetValue(dev.deviceName + "." + (V ? "D2212" : "D2217"), "0", dev.deviceName + "Queue");
+                            }
+                            LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} 璁惧鏄瘂dev.deviceName} 寮�惎鍏夋爡澶勭悊瀹屾垚 =================> ");
                         }
-                        else if (dev.deviceType == 5)
-                        {
-                            LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} 璁惧鏄瘂dev.deviceName} 寮�惎鍏夋爡澶勭悊 =================> ");
-                            Conn.榛樿Redis.SetValue(dev.deviceName + "." + (V ? "D2211" : "D2216"), "1", dev.deviceName + "Queue");
-                            Conn.榛樿Redis.SetValue(dev.deviceName + "." + (V ? "D2212" : "D2217"), "0", dev.deviceName + "Queue");
-                        }
-                        LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} 璁惧鏄瘂dev.deviceName} 寮�惎鍏夋爡澶勭悊瀹屾垚 =================> ");
-
                         item.N_CREATEMETHOD = 1;
                         item.S_REVIEW_COMMENT = $"鍏夋爡寮�惎瀹屾垚";
                         taskActRepository.Update(item);
@@ -1144,8 +1278,124 @@
                     {
                         if (dev.deviceType == 4)
                         {
-                            LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} 璁惧鏄瘂dev.deviceName} SSX AGV 浜や簰銆傘�銆�);
+                            LogHelper.Info($"杞﹁姹傝緭閫佺嚎浜や簰> {item.S_TASK_NO} >{item.S_ACTION_CODE} 璁惧鏄瘂dev.deviceName} SSX AGV 浜や簰銆傘�銆�);
                             //tag.SA1019.Sagverr
+                            switch (loc)
+                            {
+                                case "1019":
+                                    {
+                                        if (tag.SA1019.SreadCan)
+                                        {
+                                            LogHelper.Info($"1019 璇诲埌杈撻�绾垮厑璁搞�");
+                                            continuuuuu = true;
+                                        }
+                                        else
+                                            SetRedistoPlc("A1019鍙栬揣浜や簰.Ssetreq", "true", "A1019鍙栬揣浜や簰Queue", "鍐橝GV鐢宠");
+                                    }
+                                    break;
+                                case "1030":
+                                    {
+                                        if (tag.SA1030.SreadCan)
+                                        {
+                                            LogHelper.Info($"1030 璇诲埌杈撻�绾垮厑璁搞�");
+                                            continuuuuu = true;
+                                        }
+                                        else
+                                            SetRedistoPlc("A1030鍙栬揣浜や簰.Ssetreq", "true", "A1030鍙栬揣浜や簰Queue", "鍐橝GV鐢宠");
+                                    }
+                                    break;
+                                case "2030":
+                                    {
+                                        if (tag.SA2030.SreadCan)
+                                        {
+                                            LogHelper.Info($"2030 璇诲埌杈撻�绾垮厑璁搞�");
+                                            continuuuuu = true;
+                                        }
+                                        else
+                                            SetRedistoPlc("A2030鍙栬揣浜や簰.Ssetreq", "true", "A2030鍙栬揣浜や簰Queue", "鍐橝GV鐢宠");
+                                    }
+                                    break;
+                                case "3005":
+                                    {
+                                        if (tag.ssx杈撻�绾�s3005.SreadCan)
+                                        {
+                                            LogHelper.Info($"3005 璇诲埌杈撻�绾垮厑璁搞�");
+                                            continuuuuu = true;
+                                        }
+                                        else
+                                            SetRedistoPlc("A3005鍙栬揣浜や簰.Ssetreq", "true", "A3005鍙栬揣浜や簰Queue", "鍐橝GV鐢宠");
+                                    }
+                                    break;
+                                case "3010":
+                                    {
+                                        if (tag.ssx杈撻�绾�s3010.SreadCan)
+                                        {
+                                            LogHelper.Info($"3010 璇诲埌杈撻�绾垮厑璁搞�");
+                                            continuuuuu = true;
+                                        }
+                                        else
+                                            SetRedistoPlc("A3010鍙栬揣浜や簰.Ssetreq", "true", "A3010鍙栬揣浜や簰Queue", "鍐橝GV鐢宠");
+                                    }
+                                    break;
+                                //}
+                                //switch (loc)
+                                //{
+                                case "1022":
+                                    {
+                                        if (tag.SA1022.SreadCan)
+                                        {
+                                            LogHelper.Info($"1022 璇诲埌杈撻�绾垮厑璁搞�");
+                                            continuuuuu = true;
+                                        }
+                                        else
+                                            SetRedistoPlc("A1022鏀捐揣浜や簰.Ssetreq", "true", "A1022鏀捐揣浜や簰Queue", "鍐橝GV鐢宠");
+                                    }
+                                    break;
+                                case "1025":
+                                    {
+                                        if (tag.SA1025.SreadCan)
+                                        {
+                                            LogHelper.Info($"1025 璇诲埌杈撻�绾垮厑璁搞�");
+                                            continuuuuu = true;
+                                        }
+                                        else
+                                            SetRedistoPlc("A1025鏀捐揣浜や簰.Ssetreq", "true", "A1025鏀捐揣浜や簰Queue", "鍐橝GV鐢宠");
+                                    }
+                                    break;
+                                case "2001":
+                                    {
+                                        if (tag.SA2001.SreadCan)
+                                        {
+                                            LogHelper.Info($"2001 璇诲埌杈撻�绾垮厑璁搞�");
+                                            continuuuuu = true;
+                                        }
+                                        else
+                                            SetRedistoPlc("A2001鏀捐揣浜や簰.Ssetreq", "true", "A2001鏀捐揣浜や簰Queue", "鍐橝GV鐢宠");
+                                    }
+                                    break;
+                                case "3001":
+                                    {
+                                        if (tag.ssx杈撻�绾�s3001.SreadCan)
+                                        {
+                                            LogHelper.Info($"3001 璇诲埌杈撻�绾垮厑璁搞�");
+                                            continuuuuu = true;
+                                        }
+                                        else
+                                            SetRedistoPlc("A3001鏀捐揣浜や簰.Ssetreq", "true", "A3001鏀捐揣浜や簰Queue", "鍐橝GV鐢宠");
+                                    }
+                                    break;
+                                case "3006":
+                                    {
+                                        if (tag.ssx杈撻�绾�s3006.SreadCan)
+                                        {
+                                            LogHelper.Info($"3006 璇诲埌杈撻�绾垮厑璁搞�");
+                                            continuuuuu = true;
+                                        }
+                                        else
+                                            SetRedistoPlc("A3006鏀捐揣浜や簰.Ssetreq", "true", "A3006鏀捐揣浜や簰Queue", "鍐橝GV鐢宠");
+                                    }
+                                    break;
+                            }
                         }
                         else
                         {
@@ -1186,7 +1436,7 @@
                                     LogHelper.Info($"ThreadGrats 鍐檣(dev.deviceName + "." + (V ? "D1220" : "D1221"))}涓�1 锛�鍚庤{d12201}");
                                 }
                             }
-                            else if (dev.deviceType == 3)
+                            else if (dev.deviceType == 5)
                             {
 
                                 var close = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue(dev.deviceName + "." + (V ? "D2220" : "D2225")), typeof(System.UInt16));
@@ -1255,15 +1505,24 @@
             LogHelper.Info($"ThreadGrats deviceType5鍏夋爡鍐欏叆浣嶉噸缃�=================> ");
             //閲嶇疆淇″彿
             //foreach (var dev in Settings.deviceInfos.FindAll(x => x.deviceType == 5))
+
             {
-                if (tag.DZ1.D2211 == 1 && tag.DZ1.D2220 == 1)
-                    tag.DZ1.D2211 = 0;
-                if (tag.DZ1.D2216 == 1 && tag.DZ1.D2225 == 1)
-                    tag.DZ1.D2216 = 0;
-                if (tag.DZ2.D2211 == 1 && tag.DZ2.D2220 == 1)
-                    tag.DZ2.D2211 = 0;
-                if (tag.DZ2.D2216 == 1 && tag.DZ2.D2225 == 1)
-                    tag.DZ2.D2216 = 0;
+                //涓�嚎鍦板潃锛�0.221.55.181     绔彛锛�000
+                //if (IsMachineOnline("10.221.55.181"))
+                {
+                    //if (tag.DZ1.D2211 == 1 && tag.DZ1.D2220 == 1)
+                    //    tag.DZ1.D2211 = 0;
+                    //if (tag.DZ1.D2216 == 1 && tag.DZ1.D2225 == 1)
+                    //    tag.DZ1.D2216 = 0;
+                }
+                //浜岀嚎鍦板潃锛�0.221.55.179     绔彛锛�000
+                //if (IsMachineOnline("10.221.55.179"))
+                {
+                    //if (tag.DZ2.D2211 == 1 && tag.DZ2.D2220 == 1)
+                    //    tag.DZ2.D2211 = 0;
+                    //if (tag.DZ2.D2216 == 1 && tag.DZ2.D2225 == 1)
+                    //    tag.DZ2.D2216 = 0;
+                }
             }
             LogHelper.Info($"ThreadGrats deviceType5鍏夋爡鍐欏叆浣嶉噸缃畬鎴愩� =================> ");
         }
@@ -1496,6 +1755,7 @@
         public void Thread涓嬫枡浣嶆娴�Tag tag)
         {
             Console.WriteLine($"Thread涓嬫枡浣嶆娴�   =====>");
+            var lsi = new List<string>();
             foreach (var ssx in new string[] { "1003", "1005", "1011", "1013" })
             {
                 var RArrive = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($"FNK1003051113.RArrive{ssx}"), typeof(System.UInt16));
@@ -1716,31 +1976,167 @@
 
         public void Thread1019Down(Tag tag)
         {
-            Console.WriteLine($"1019浠诲姟鐘舵�锛�  =====>");
-            Console.WriteLine($"1019浠诲姟鐘舵�锛歿tag.SA1019.RtaskState}- barcode:{tag.SA1019.R鎵樼洏鐮亇- 绌洪棽{tag.SA1019.R5绌洪棽}");
+            var taggg = tag.SA1019;
+            string vqu = "A1019鍙栬揣浜や簰";
+            Console.WriteLine($"1019浠诲姟鐘舵�锛�  =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}");
+            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
+            {
+                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠");
+                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠");
+            }
+            //Console.WriteLine($"1019浠诲姟鐘舵�锛�  =====>");
+            //Console.WriteLine($"1019浠诲姟鐘舵�锛歿tag.SA1019.RtaskState}- barcode:{tag.SA1019.R鎵樼洏鐮亇- 绌洪棽{tag.SA1019.R5绌洪棽}");
         }
+
+        private void sa2008(Tag tag)
+        {
+            var rdisTcode = RedisHelper.Get<string>($"Arrive{2008}BarcodeLast", out string msg);
+            //if(tag.ssx杈撻�绾�s2008)
+        }
+
+        private void sa2030(Tag tag)
+        {
+            var taggg = tag.SA2030;
+            string vqu = "A2030鍙栬揣浜や簰";
+            Console.WriteLine($"{vqu}浠诲姟鐘舵�锛�  =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}");
+            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
+            {
+                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠");
+                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠");
+            }
+        }
+
+        private void sa2001(Tag tag)
+        {
+            var taggg = tag.SA2001;
+            string vqu = "A2001鏀捐揣浜や簰";
+            Console.WriteLine($"{vqu}浠诲姟鐘舵�锛�  =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}");
+            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
+            {
+                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠");
+                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠");
+            }
+        }
+
+        private void sa1030(Tag tag)
+        {
+            var taggg = tag.SA1030;
+            string vqu = "A1030鍙栬揣浜や簰";
+            Console.WriteLine($"{vqu}浠诲姟鐘舵�锛�  =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}");
+            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
+            {
+                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠");
+                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠");
+            }
+        }
+
+        private void sa1025(Tag tag)
+        {
+            var taggg = tag.SA1025;
+            string vqu = "A1025鏀捐揣浜や簰";
+            Console.WriteLine($"{vqu}浠诲姟鐘舵�锛�  =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}");
+            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
+            {
+                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠");
+                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠");
+            }
+        }
+
+        private void sa1022(Tag tag)
+        {
+            var taggg = tag.SA1022;
+            string vqu = "A1022鏀捐揣浜や簰";
+            Console.WriteLine($"{vqu}浠诲姟鐘舵�锛�  =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}");
+            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
+            {
+                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠");
+                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠");
+            }
+        }
+
+        private void sa3010(Tag tag)
+        {
+            var taggg = tag.ssx杈撻�绾�s3010;
+            string vqu = "A3010鍙栬揣浜や簰";
+            Console.WriteLine($"{vqu}浠诲姟鐘舵�锛�  =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}");
+            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
+            {
+                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠");
+                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠");
+            }
+        }
+
+        private void sa3006(Tag tag)
+        {
+            var taggg = tag.ssx杈撻�绾�s3006;
+            string vqu = "A3006鏀捐揣浜や簰";
+            Console.WriteLine($"{vqu}浠诲姟鐘舵�锛�  =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}");
+            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
+            {
+                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠");
+                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠");
+            }
+        }
+
+        private void sa3005(Tag tag)
+        {
+            var taggg = tag.ssx杈撻�绾�s3005;
+            string vqu = "A3005鍙栬揣浜や簰";
+            Console.WriteLine($"{vqu}浠诲姟鐘舵�锛�  =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}");
+            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
+            {
+                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠");
+                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠");
+            }
+        }
+
+        private void sa3001(Tag tag)
+        {
+            var taggg = tag.ssx杈撻�绾�s3010;
+            string vqu = "A3001鏀捐揣浜や簰";
+            Console.WriteLine($"{vqu}浠诲姟鐘舵�锛�  =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}");
+            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
+            {
+                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠");
+                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠");
+            }
+        }
+
         public void Thread1025Up(Tag tag)
         {
-            Console.WriteLine($"SA1025 浠诲姟鐘舵�锛�  =====>");
-            Console.WriteLine($"SA1025 浠诲姟鐘舵�锛歿tag.SA1025.RtaskState}- 绌洪棽{tag.SA1025.R5绌洪棽}");
+            //if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
+            //{
+            //    SetRedistoPlc("A1019鍙栬揣浜や簰.Ssetreq", "false", "A1019鍙栬揣浜や簰Queue", "鍐橝GV鐢宠");
+            //    SetRedistoPlc("A1019鍙栬揣浜や簰.SOver", "false", "A1019鍙栬揣浜や簰Queue", "鍐橝GV鐢宠");
+            //}
+            //Console.WriteLine($"SA1025 浠诲姟鐘舵�锛�  =====>");
+            //Console.WriteLine($"SA1025 浠诲姟鐘舵�锛歿tag.SA1025.RtaskState}- 绌洪棽{tag.SA1025.R5绌洪棽}");
         }
         public void Thread1022Up(Tag tag)
         {
-            Console.WriteLine($"SA1022    =====>");
-            Console.WriteLine($"SA1022 浠诲姟鐘舵�锛歿tag.SA1022.RtaskState}- 绌洪棽{tag.SA1022.R5绌洪棽}");
+            //if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
+            //{
+            //    SetRedistoPlc("A1019鍙栬揣浜や簰.Ssetreq", "false", "A1019鍙栬揣浜や簰Queue", "娓呯悊");
+            //    SetRedistoPlc("A1019鍙栬揣浜や簰.SOver", "false", "A1019鍙栬揣浜や簰Queue", "娓呯悊");
+            //}
+            //Console.WriteLine($"SA1022    =====>");
+            //Console.WriteLine($"SA1022 浠诲姟鐘舵�锛歿tag.SA1022.RtaskState}- 绌洪棽{tag.SA1022.R5绌洪棽}");
         }
         public void Thread1030Down(Tag tag)
         {
-            Console.WriteLine($"SA1030 浠诲姟鐘舵�锛�  =====>");
-            Console.WriteLine($"SA1030 浠诲姟鐘舵�锛歿tag.SA1030.RtaskState}- 绌洪棽{tag.SA1030.R5绌洪棽}-->瀵瑰簲缁堢偣2001>绌洪棽5锛歿tag.SA2001.R5绌洪棽}");
+            //Console.WriteLine($"SA1030 浠诲姟鐘舵�锛�  =====>agv瀹屾垚SOver{tag.SA1030.SOver}");
+            //if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
+            //{
+            //    SetRedistoPlc("A1022鏀捐揣浜や簰.Ssetreq", "false", "A1022鏀捐揣浜や簰Queue", "娓呯悊");
+            //    SetRedistoPlc("A1022鏀捐揣浜や簰.SOver", "false", "A1022鏀捐揣浜や簰Queue", "娓呯悊");
+            //}
+            //Console.WriteLine($"SA1030 浠诲姟鐘舵�锛歿tag.SA1030.RtaskState}- 绌洪棽{tag.SA1030.R5绌洪棽}-->瀵瑰簲缁堢偣2001>绌洪棽5锛歿tag.SA2001.R5绌洪棽}");
         }
         public void Thread2030Down(Tag tag)
         {
 
-            Console.WriteLine($"SA2030 浠诲姟鐘舵�锛�  =====>");
-            Console.WriteLine($"SA2030 浠诲姟鐘舵�锛歿tag.SA2030.RtaskState}- 绌洪棽{tag.SA2030.R5绌洪棽} - barcode:{tag.SA2030.R鎵樼洏鐮亇");
-
-
+            //Console.WriteLine($"SA2030 浠诲姟鐘舵�锛�  =====>");
+            //Console.WriteLine($"SA2030 浠诲姟鐘舵�锛歿tag.SA2030.RtaskState}- 绌洪棽{tag.SA2030.R5绌洪棽} - barcode:{tag.SA2030.R鎵樼洏鐮亇");
 
         }
 
@@ -1761,71 +2157,360 @@
                 LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} {(sx == null ? "闈� : "鏄�)}鎬昏鏈哄櫒浜轰换鍔�);
                 if (sx == null)
                 {
+                gotoOOOOOOOOO:
                     if (string.IsNullOrEmpty(task.S_CNTRS) && !string.IsNullOrEmpty(task.S_INDEX))
                     {
                         // 鍙枡浠诲姟銆�鎸囧畾鐗╂枡涓嶆寚瀹氭墭鐩橈紝闇�鍑哄簱
-                        switch (task.S_START_LOC)
-                        {
-                            case "2030":
-                                if (!string.IsNullOrEmpty(tag.SA2030.R鎵樼洏鐮�)
-                                {
-                                    var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
+                        var ssagv = Settings.deviceInfos.Find(x => x.deviceType == 4);
+                        if (ssagv.location.Contains(task.S_START_LOC))
+                            switch (task.S_START_LOC)
+                            {
+                                case "2030":
+                                    if (!string.IsNullOrEmpty(tag.SA2030.R鎵樼洏鐮�)
                                     {
-                                        cntrCode = tag.SA2030.R鎵樼洏鐮�
-                                        type = 1
-                                    }));
-                                    var strr = JsonConvert.DeserializeObject<MES2234>(str);
-                                    if (strr.success && strr.data.materialCode == task.S_INDEX)
-                                    {
-                                        task.S_CNTRS = tag.SA2030.R鎵樼洏鐮�
-                                        taskservice.Update(task);
+                                        LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 2030 鍑哄彛鎵樼洏鍙穥tag.SA2030.R鎵樼洏鐮亇 鍖归厤鏍¢獙銆�);
+                                        var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
+                                        {
+                                            cntrCode = tag.SA2030.R鎵樼洏鐮�
+                                            type = 1
+                                        }));
+                                        var strr = JsonConvert.DeserializeObject<MES2234>(str);
+                                        if (strr.success && strr.data.materialCode == task.S_INDEX)
+                                        {
+                                            task.S_CNTRS = tag.SA2030.R鎵樼洏鐮�
+                                            taskservice.Update(task);
+                                            goto gotoOOOOOOOOO;
+                                        }
+                                        else
+                                        {
+                                            LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐗╂枡{task.S_INDEX} 涓�2030 鍑哄彛鐨勬墭鐩樼墿鏂檣strr.data.materialCode}涓嶇鍚�);
+                                        }
                                     }
                                     else
                                     {
-                                        LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 2030 鍑哄彛鐨勬墭鐩樼墿鏂欎笉绗﹀悎");
+                                        //2027  2220   2013.. 璇嗗埆涓�笅锛屽紑濮嬪簱
+                                        //1 鐪�7 20 13 鏄惁鏈変换鍔°� 鏈夊垯涓嶅嚭浜嗐� 绛夊嚭鍙e垽鏂尮閰嶃�
+                                        //2  閮芥病鏈変换鍔★紝閫愪釜鍖归厤鏄惁绗﹀悎锛屽垯鍑哄簱銆�+                                        //LogHelper.Info($"");
+                                        {
+                                            var t20132027 = tag.ssx杈撻�绾�s2027;
+                                            LogHelper.Info($"璇嗗埆2027浠诲姟 鎵樼洏鍙凤細{t20132027.R鎵樼洏鐮亇 RTaskNo>{t20132027.RTaskNo} REbit>{t20132027.REbit} wTaskNo>{t20132027.wTaskNo} wEbit>{t20132027.wEbit}");
+                                            if ((t20132027.RTaskNo > 0 && t20132027.REbit == 2030) || (t20132027.wTaskNo > 0 && t20132027.wEbit == 2030))
+                                            {
+                                                LogHelper.Info($"2027浠诲姟 浠诲姟缁堢偣鏄�030 锛岀粓姝�);
+                                                continue;
+                                            }
+                                        }
+                                        {
+                                            var t20132027 = tag.ssx杈撻�绾�s2020;
+                                            LogHelper.Info($"璇嗗埆2027浠诲姟 鎵樼洏鍙凤細{t20132027.R鎵樼洏鐮亇 RTaskNo>{t20132027.RTaskNo} REbit>{t20132027.REbit} wTaskNo>{t20132027.wTaskNo} wEbit>{t20132027.wEbit}");
+                                            if ((t20132027.RTaskNo > 0 && t20132027.REbit == 2030) || (t20132027.wTaskNo > 0 && t20132027.wEbit == 2030))
+                                            {
+                                                LogHelper.Info($"2020浠诲姟 浠诲姟缁堢偣鏄�030 锛岀粓姝�);
+                                                continue;
+                                            }
+                                        }
+                                        {
+                                            var t20132027 = tag.ssx杈撻�绾�s2013;
+                                            LogHelper.Info($"璇嗗埆2027浠诲姟 鎵樼洏鍙凤細{t20132027.R鎵樼洏鐮亇 RTaskNo>{t20132027.RTaskNo} REbit>{t20132027.REbit} wTaskNo>{t20132027.wTaskNo} wEbit>{t20132027.wEbit}");
+                                            if ((t20132027.RTaskNo > 0 && t20132027.REbit == 2030) || (t20132027.wTaskNo > 0 && t20132027.wEbit == 2030))
+                                            {
+                                                LogHelper.Info($"2013浠诲姟 浠诲姟缁堢偣鏄�030 锛岀粓姝�);
+                                                continue;
+                                            }
+                                        }
+                                        if (!string.IsNullOrEmpty(tag.ssx杈撻�绾�s2027.R鎵樼洏鐮�)
+                                        {
+                                            var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
+                                            {
+                                                cntrCode = tag.ssx杈撻�绾�s2027.R鎵樼洏鐮�
+                                                type = 1
+                                            }));
+                                            var strr = JsonConvert.DeserializeObject<MES2234>(str);
+                                            if (strr.success && strr.data.materialCode == task.S_INDEX)
+                                            {
+                                                LogHelper.Info($"2027 璇诲埌鎵樼洏{tag.ssx杈撻�绾�s2027.R鎵樼洏鐮亇 鍖归厤鎴愬姛锛屽啓浠诲姟鍙凤細20272030锛岀粓鐐癸細2030 鍜屾墭鐩樼爜鍚岃");
+                                                tag.ssx杈撻�绾�s2027.wTaskNo = 20272030;
+                                                tag.ssx杈撻�绾�s2027.wEbit = 2030;
+                                                tag.ssx杈撻�绾�s2027.w鎵樼洏鐮�= tag.ssx杈撻�绾�s2027.R鎵樼洏鐮�
+                                                LogHelper.Info($"2027 > 2030  SSX浠诲姟涓嬪彂瀹屾垚銆�);
+                                                continue;
+                                            }
+                                        }
+                                        if (!string.IsNullOrEmpty(tag.ssx杈撻�绾�s2020.R鎵樼洏鐮�)
+                                        {
+                                            var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
+                                            {
+                                                cntrCode = tag.ssx杈撻�绾�s2020.R鎵樼洏鐮�
+                                                type = 1
+                                            }));
+                                            var strr = JsonConvert.DeserializeObject<MES2234>(str);
+                                            if (strr.success && strr.data.materialCode == task.S_INDEX)
+                                            {
+                                                LogHelper.Info($"2020 璇诲埌鎵樼洏{tag.ssx杈撻�绾�s2020.R鎵樼洏鐮亇 鍖归厤鎴愬姛锛屽啓浠诲姟鍙凤細20202030锛岀粓鐐癸細2030 鍜屾墭鐩樼爜鍚岃");
+                                                tag.ssx杈撻�绾�s2020.wTaskNo = 20202030;
+                                                tag.ssx杈撻�绾�s2020.wEbit = 2030;
+                                                tag.ssx杈撻�绾�s2020.w鎵樼洏鐮�= tag.ssx杈撻�绾�s2020.R鎵樼洏鐮�
+                                                LogHelper.Info($"2020 > 2030  SSX浠诲姟涓嬪彂瀹屾垚銆�);
+                                                continue;
+                                            }
+                                        }
+                                        if (!string.IsNullOrEmpty(tag.ssx杈撻�绾�s2013.R鎵樼洏鐮�)
+                                        {
+                                            var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
+                                            {
+                                                cntrCode = tag.ssx杈撻�绾�s2013.R鎵樼洏鐮�
+                                                type = 1
+                                            }));
+                                            var strr = JsonConvert.DeserializeObject<MES2234>(str);
+                                            if (strr.success && strr.data.materialCode == task.S_INDEX)
+                                            {
+                                                LogHelper.Info($"2013 璇诲埌鎵樼洏{tag.ssx杈撻�绾�s2013.R鎵樼洏鐮亇 鍖归厤鎴愬姛锛屽啓浠诲姟鍙凤細20132030锛岀粓鐐癸細2030 鍜屾墭鐩樼爜鍚岃");
+                                                tag.ssx杈撻�绾�s2013.wTaskNo = 20132030;
+                                                tag.ssx杈撻�绾�s2013.wEbit = 2030;
+                                                tag.ssx杈撻�绾�s2013.w鎵樼洏鐮�= tag.ssx杈撻�绾�s2013.R鎵樼洏鐮�
+                                                LogHelper.Info($"2013 > 2030  SSX浠诲姟涓嬪彂瀹屾垚銆�);
+                                                continue;
+                                            }
+                                        }
+                                        LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鏃ュ織鑳借窇鍒拌繖锛岃鏄庢病鐗╂枡锛屾垨鑰呴兘涓嶇鍚�鏃犳硶鍘�030");
                                     }
-                                }
-                                else
-                                {
-                                    //TODO------------------2027  2220   2013.. 璇嗗埆涓�笅锛屽紑濮嬪簱
-                                }
-                                break;
-                            case "1019":
-                                if (!string.IsNullOrEmpty(tag.SA1019.R鎵樼洏鐮�)
-                                {
-                                    var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
+                                    break;
+                                case "1019":
+                                    if (!string.IsNullOrEmpty(tag.SA1019.R鎵樼洏鐮�)
                                     {
-                                        cntrCode = tag.SA1019.R鎵樼洏鐮�
-                                        type = 2
-                                    }));
-                                    var strr = JsonConvert.DeserializeObject<MES2234>(str);
-                                    if (strr.success && strr.data.materialCode == task.S_INDEX)
-                                    {
-                                        task.S_CNTRS = tag.SA2030.R鎵樼洏鐮�
-                                        taskservice.Update(task);
+                                        var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
+                                        {
+                                            cntrCode = tag.SA1019.R鎵樼洏鐮�
+                                            type = 2
+                                        }));
+                                        var strr = JsonConvert.DeserializeObject<MES2234>(str);
+                                        if (strr.success && strr.data.materialCode == task.S_INDEX)
+                                        {
+                                            task.S_CNTRS = tag.SA2030.R鎵樼洏鐮�
+                                            taskservice.Update(task);
+                                            goto gotoOOOOOOOOO;
+                                        }
+                                        else
+                                        {
+                                            LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐗╂枡{task.S_INDEX} 涓�1019 鍑哄彛鐨勬墭鐩樼墿鏂檣strr.data.materialCode}涓嶇鍚�);
+                                        }
                                     }
-                                    else
+                                    break;
+                                //case "1030":
+                                //    {
+
+                                //    }
+                                //break;
+                                case "3005":
                                     {
-                                        LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 1019 鍑哄彛鐨勬墭鐩樼墿鏂欎笉绗﹀悎");
+                                        if (!string.IsNullOrEmpty(tag.ssx杈撻�绾�s3005.R鎵樼洏鐮�)
+                                        {
+                                            var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
+                                            {
+                                                cntrCode = tag.ssx杈撻�绾�s3005.R鎵樼洏鐮�
+                                                type = 2
+                                            }));
+                                            var strr = JsonConvert.DeserializeObject<MES2234>(str);
+                                            if (strr.success && strr.data.materialCode == task.S_INDEX)
+                                            {
+                                                task.S_CNTRS = tag.ssx杈撻�绾�s3005.R鎵樼洏鐮�
+                                                taskservice.Update(task);
+                                                goto gotoOOOOOOOOO;
+                                            }
+                                            else
+                                            {
+                                                LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐗╂枡{task.S_INDEX} 涓�3010 鍑哄彛鐨勬墭鐩樼墿鏂檣strr.data.materialCode}涓嶇鍚�);
+                                            }
+                                        }
                                     }
-                                }
-                                break;
-                        }
+                                    break;
+                                case "3010":
+                                    {
+                                        if (!string.IsNullOrEmpty(tag.ssx杈撻�绾�s3010.R鎵樼洏鐮�)
+                                        {
+                                            var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
+                                            {
+                                                cntrCode = tag.ssx杈撻�绾�s3010.R鎵樼洏鐮�
+                                                type = 2
+                                            }));
+                                            var strr = JsonConvert.DeserializeObject<MES2234>(str);
+                                            if (strr.success && strr.data.materialCode == task.S_INDEX)
+                                            {
+                                                task.S_CNTRS = tag.ssx杈撻�绾�s3010.R鎵樼洏鐮�
+                                                taskservice.Update(task);
+                                                goto gotoOOOOOOOOO;
+                                            }
+                                            else
+                                            {
+                                                LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐗╂枡{task.S_INDEX} 涓�3010 鍑哄彛鐨勬墭鐩樼墿鏂檣strr.data.materialCode}涓嶇鍚�);
+                                            }
+                                        }
+                                    }
+                                    break;
+                            }
+                        //else if (ssagv.location.Contains(task.S_END_LOC))
+                        //    switch (task.S_END_LOC)
+                        //    {
+                        //        case "1022":
+                        //            {
+                        //                if (tag.SA1022.R5绌洪棽 != 1)
+                        //                {
+                        //                    LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 缁堢偣1022 闈炵┖闂诧紝涓嶆帹閫�);
+                        //                    continue;
+                        //                }
+                        //            }
+                        //            break;
+                        //        case "1025":
+                        //            {
+                        //                if (tag.SA1025.R5绌洪棽 != 1)
+                        //                {
+                        //                    LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 缁堢偣 1025 闈炵┖闂诧紝涓嶆帹閫�);
+                        //                    continue;
+                        //                }
+                        //            }
+                        //            break;
+                        //        case "2001":
+                        //            {
+                        //                if (tag.SA2001.R5绌洪棽 != 1)
+                        //                {
+                        //                    LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 缁堢偣 2001 闈炵┖闂诧紝涓嶆帹閫�);
+                        //                    continue;
+                        //                }
+                        //            }
+                        //            break;
+                        //        case "3001":
+                        //            {
+                        //                if (tag.ssx杈撻�绾�s3001.R5绌洪棽 != 1)
+                        //                {
+                        //                    LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 缁堢偣 3001 闈炵┖闂诧紝涓嶆帹閫�);
+                        //                    continue;
+                        //                }
+                        //            }
+                        //            break;
+                        //        case "3006":
+                        //            {
+                        //                if (tag.ssx杈撻�绾�s3006.R5绌洪棽 != 1)
+                        //                {
+                        //                    LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 缁堢偣 3006 闈炵┖闂诧紝涓嶆帹閫�);
+                        //                    continue;
+                        //                }
+                        //            }
+                        //            break;
+                        //    }
                     }
                     else
                     {
+                        //if (new List<string> { "2001", "1022", "1025", "3001", "3006" }.Contains(task.S_END_LOC))
+                        //{
+                        //}
+                        //if (new List<string> { "1019"/*, "1030"*/, "2030", "3005", "3010" }.Contains(task.S_START_LOC))  //1030 鏄富鍔ㄧ敵璇凤紝 涓嶇敤鍒ゆ柇銆�+                        //{
+                        //    //鐗╂枡鍖归厤鍒ゆ柇銆傚拰 2030鍒ゆ柇
+                        //}
+                        string type = "";
+                        if (new List<string> { "1019"/*, "1030"*/, "2030", "3005", "3010" }.Contains(task.S_START_LOC))
+                            switch (task.S_START_LOC)
+                            {
+                                case "1019":
+                                    {
+                                        type = "A009";
+                                        if (tag.SA1019.RtaskState != 4)
+                                        {
+                                            LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 璧风偣 1019 RtaskState>{tag.SA1019.RtaskState} 鏈敵璇稲GV浠诲姟锛屼笉鎺ㄩ�");
+                                            continue;
+                                        }
+                                    }
+                                    break;
+                                case "2030":
+                                    {
+                                        type = "A007";
+                                        if (tag.SA2030.RtaskState != 4)
+                                        {
+                                            LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 璧风偣 2030 RtaskState>{tag.SA2030.RtaskState} 鏈敵璇稲GV浠诲姟锛屼笉鎺ㄩ�");
+                                            continue;
+                                        }
+                                    }
+                                    break;
+                                case "3005":
+                                    {
+                                        type = "A010";
+                                        if (tag.ssx杈撻�绾�s3005.RtaskState != 4)
+                                        {
+                                            LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 璧风偣 3005 RtaskState>{tag.ssx杈撻�绾�s3005.RtaskState} 鏈敵璇稲GV浠诲姟锛屼笉鎺ㄩ�");
+                                            continue;
+                                        }
+                                    }
+                                    break;
+                                case "3010":
+                                    {
+                                        type = "A010";
+                                        if (tag.ssx杈撻�绾�s3010.RtaskState != 4)
+                                        {
+                                            LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 璧风偣 3010 RtaskState>{tag.ssx杈撻�绾�s3010.RtaskState} 鏈敵璇稲GV浠诲姟锛屼笉鎺ㄩ�");
+                                            continue;
+                                        }
+                                    }
+                                    break;
+                            }
                         if (new List<string> { "2001", "1022", "1025", "3001", "3006" }.Contains(task.S_END_LOC))
-                        {
-                            //------------------
-                        }
-                        else if (new List<string> { "1019"/*, "1030"*/, "2030", "3005", "3010" }.Contains(task.S_START_LOC))  //1030 鏄富鍔ㄧ敵璇凤紝 涓嶇敤鍒ゆ柇銆�-                        {
-
-                        }
+                            switch (task.S_END_LOC)
+                            {
+                                case "1022":
+                                    {
+                                        type = "A008";
+                                        if (tag.SA1022.R5绌洪棽 != 1)
+                                        {
+                                            LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 缁堢偣1022 闈炵┖闂诧紝涓嶆帹閫�);
+                                            continue;
+                                        }
+                                    }
+                                    break;
+                                case "1025":
+                                    {
+                                        type = "A007";
+                                        if (tag.SA1025.R5绌洪棽 != 1)
+                                        {
+                                            LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 缁堢偣 1025 闈炵┖闂诧紝涓嶆帹閫�);
+                                            continue;
+                                        }
+                                    }
+                                    break;
+                                case "2001":
+                                    {
+                                        type = "A007";
+                                        if (tag.SA2001.R5绌洪棽 != 1)
+                                        {
+                                            LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 缁堢偣 2001 闈炵┖闂诧紝涓嶆帹閫�);
+                                            continue;
+                                        }
+                                    }
+                                    break;
+                                case "3001":
+                                    {
+                                        type = "A010";
+                                        if (tag.ssx杈撻�绾�s3001.R5绌洪棽 != 1)
+                                        {
+                                            LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 缁堢偣 3001 闈炵┖闂诧紝涓嶆帹閫�);
+                                            continue;
+                                        }
+                                    }
+                                    break;
+                                case "3006":
+                                    {
+                                        type = "A010";
+                                        if (tag.ssx杈撻�绾�s3006.R5绌洪棽 != 1)
+                                        {
+                                            LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 缁堢偣 3006 闈炵┖闂诧紝涓嶆帹閫�);
+                                            continue;
+                                        }
+                                    }
+                                    break;
+                            }
 
                         LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐩存帴鐢熸垚瀵瑰簲浠诲姟");
                         //鐩存帴鐢熸垚瀵瑰簲浠诲姟銆�-                        var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_START_LOC, task.S_END_LOC, task.S_TYPE, 6, task.S_CNTRS?.Split(',').ToList() ?? new List<string>());
+                        var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_START_LOC, task.S_END_LOC, task.S_TYPE, 6, task.S_CNTRS?.Split(',').ToList() ?? new List<string>(), type);
 
                         LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐩存帴鐢熸垚瀵瑰簲浠诲姟 缁撴灉锛歿res}");
                         if (res)
@@ -1968,7 +2653,18 @@
             }
         }
 
-
+        public string procNo()
+        {
+            return TaskProcess.GenerateTaskNo("鏃ュ織娴佹按鍙�);
+        }
+        public bool SetRedistoPlc(string key, string value, string queue, string desc)
+        {
+            var vnc = procNo();
+            LogHelper.Info($"{vnc}>>Redis.SetValue鍐檖lc 鎻忚堪锛歿desc} tagName:{key},value:{value},queue:{queue}");
+            var v = Conn.榛樿Redis.SetValue(key, value, queue);
+            LogHelper.Info($"{vnc}>> 鍐欏叆缁撴灉{v}");
+            return v;
+        }
         public HkReturnResult OperateHKTaskStatus(HaiKangOrderInfo model)
         {
             // 鏌ヨ浠诲姟锛氭牴鎹换鍔″彿
@@ -2037,6 +2733,16 @@
                                     //    Conn.榛樿Redis.SetValue(device.deviceName + "." + V, "0", device.deviceName + "Queue");
                                     //});
                                 }
+                                else
+                                    switch (device.deviceType)
+                                    {
+                                        case 4:
+                                            {
+
+                                            }
+                                            break;
+
+                                    }
                             }
                             //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);
                             break;
@@ -2131,31 +2837,29 @@
                                         LogHelper.Info($"{ssloc}鐢宠mes浠诲姟缁撴灉{str}");
                                     }
                                 }
-                                switch (device2.deviceType)
-                                {
-                                    case 4:
-                                        {
-                                            if (wcsTask.S_END_LOC == "2001")
+                                else
+                                    switch (device2.deviceType)
+                                    {
+                                        case 4:
                                             {
 
                                             }
-                                        }
-                                        break;
-                                    case 5:
-                                        {
-                                            var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;
-                                            string V = inde ? "D2210" : "D2215";
-                                            Conn.榛樿Redis.SetValue(device2.deviceName + "." + V, "1", device2.deviceName + "Queue");
-                                        }
-                                        break;
-                                    case 6:
-                                        {
-                                            //var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;
-                                            //string V = inde ? "D2210" : "D2215";
-                                            //Conn.榛樿Redis.SetValue(device2.deviceName + "." + V, "1", device2.deviceName + "Queue");
-                                        }
-                                        break;
-                                }
+                                            break;
+                                        case 5:
+                                            {
+                                                var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;
+                                                string V = inde ? "D2210" : "D2215";
+                                                Conn.榛樿Redis.SetValue(device2.deviceName + "." + V, "1", device2.deviceName + "Queue");
+                                            }
+                                            break;
+                                        case 6:
+                                            {
+                                                //var inde = device2.location.ToList().FindIndex(x => x == wcsTask.S_END_LOC) == 0;
+                                                //string V = inde ? "D2210" : "D2215";
+                                                //Conn.榛樿Redis.SetValue(device2.deviceName + "." + V, "1", device2.deviceName + "Queue");
+                                            }
+                                            break;
+                                    }
                             }
 
                             //LocationMethod.JudgeLocation(wcsTask);

--
Gitblit v1.9.1