1
czw
2025-07-07 31beeb3d23e658e5aa2bbb9f251b006095eef15a
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Build/Project/´úÂë/VS×Ô¶¨ÒåÀà/AutoThread.cs
@@ -303,10 +303,13 @@
                                sceneType = 1,
                                cntrCode = traycode,
                            }));
                            if (str.Contains("true"))
                            var strr = JsonConvert.DeserializeObject<Mesrespone>(str);
                            if (strr != null && strr.success)
                            //if (str.Contains("true"))
                            {
                                //Conn.默认Redis.SetValue("维希尔抓臂1.R10", "true", "维希尔抓臂1Queue");
                                tag.wxr1.R10 = true;
                                //tag.wxr1.R10 = true;
                                Conn.默认Redis.SetValue(VERX.deviceName + ".R10", "true", VERX.deviceName + "Queue");
                                //tag.wxr1.R44_LAST = false;
                                RedisHelper.Add($"维希尔抓臂1.R44_LAST", "false", out string msg);
                            }
@@ -316,6 +319,10 @@
                            }
                        }
                        else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); }
                    }
                    else if (!tag.wxr1.R10)
                    {
                        TcpServer.TrayIps.Remove(VERX.deviceNo[0]);
                    }
                }
            }
@@ -378,10 +385,13 @@
                                sceneType = 1,
                                cntrCode = traycode,
                            }));
                            if (str.Contains("true"))
                            var strr = JsonConvert.DeserializeObject<Mesrespone>(str);
                            if (strr != null && strr.success)
                            //if (str.Contains("true"))
                            {
                                //Conn.默认Redis.SetValue("维希尔抓臂1.R10", "true", "维希尔抓臂1Queue");
                                tag.wxr1.R11 = true;
                                //tag.wxr1.R11 = true;
                                Conn.默认Redis.SetValue(VERX.deviceName + ".R11", "true", VERX.deviceName + "Queue");
                                //tag.wxr1.R46_LAST = false;
                                RedisHelper.Add($"维希尔抓臂1.R46_LAST", "false", out string msg);
                            }
@@ -391,6 +401,10 @@
                            }
                        }
                        else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); }
                    }
                    else if (!tag.wxr1.R11)
                    {
                        TcpServer.TrayIps.Remove(VERX.deviceNo[1]);
                    }
                }
            }
@@ -453,10 +467,13 @@
                                sceneType = 1,
                                cntrCode = traycode,
                            }));
                            if (str.Contains("true"))
                            var strr = JsonConvert.DeserializeObject<Mesrespone>(str);
                            if (strr != null && strr.success)
                            //if (str.Contains("true"))
                            {
                                //Conn.默认Redis.SetValue("维希尔抓臂1.R10", "true", "维希尔抓臂1Queue");
                                tag.wxr2.R10 = true;
                                //tag.wxr2.R10 = true;
                                Conn.默认Redis.SetValue(VERX.deviceName + ".R10", "true", VERX.deviceName + "Queue");
                                //tag.wxr2.R44_LAST = false;
                                RedisHelper.Add($"维希尔抓臂2.R44_LAST", "false", out string msg);
                            }
@@ -466,6 +483,10 @@
                            }
                        }
                        else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E")); }
                    }
                    else if (!tag.wxr2.R10)
                    {
                        TcpServer.TrayIps.Remove(VERX.deviceNo[0]);
                    }
                }
            }
@@ -531,12 +552,17 @@
                                sceneType = 1,
                                cntrCode = traycode,
                            }));
                            if (str.Contains("true"))
                            var strr = JsonConvert.DeserializeObject<Mesrespone>(str);
                            if (strr != null && strr.success)
                            {
                                //Conn.默认Redis.SetValue("维希尔抓臂1.R10", "true", "维希尔抓臂1Queue");
                                tag.wxr2.R11 = true;
                                //Conn.默认Redis.SetValue("维希尔抓臂1.R11", "true", "维希尔抓臂1Queue");
                                //tag.wxr2.R11 = true;
                                LogHelper.Info($"Threadwxr2R。。  -写R11 true");
                                Conn.默认Redis.SetValue(VERX.deviceName + ".R11", "true", VERX.deviceName + "Queue");
                                //tag.wxr2.R46_LAST = false;
                                RedisHelper.Add($"维希尔抓臂2.R46_LAST", "false", out string msg);
                                LogHelper.Info($"Threadwxr2R。。 æ ¡éªŒä¸‹æ–™å®Œæˆã€‚");
                            }
                            else
                            {
@@ -548,6 +574,10 @@
                            LogHelper.Info($"Threadwxr2R。。  -发送扫码");
                            TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E"));
                        }
                    }
                    else if (!tag.wxr2.R11)
                    {
                        TcpServer.TrayIps.Remove(VERX.deviceNo[1]);
                    }
                }
            }
@@ -863,7 +893,7 @@
                            if (tag.RGV.bit1taskOver == 1)
                                tag.RGV.bit1taskOver = 0;
                            LogHelper.Info($"{task1.S_TASK_NO}> taskend å†™ 0");
                            LogHelper.Info($"{task1.S_TASK_NO}> taskend å†™ 125");
                            Conn.默认Redis.SetValue("RGV.taskend", "125", "RGVQueue", false);
                            LogHelper.Info($"{task1.S_TASK_NO}> bit1taskOver_LAST å†™ 0");
                            RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg);
@@ -966,7 +996,7 @@
            var taskCOdes = new List<string> { "Sarrive", "Srelease", "Earrive", "Erelease" };
            TaskActRepository taskActRepository = new TaskActRepository();
            TaskRepository taskRepository = new TaskRepository();
            var requires = taskActRepository.FindList(x => taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0).OrderBy(x => x.T_CREATE);
            var requires = taskActRepository.FindList(x => DateTime.Now.Subtract(x.T_CREATE).TotalHours < 1 && taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0).OrderBy(x => x.T_CREATE);
            foreach (var item in requires)
            {
                LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE}光栅处理 =================> ");
@@ -1588,7 +1618,7 @@
        }
        public void ResolveMesTask()
        public void ResolveMesTask(Tag tag)
        {
            TaskRepository taskservice = new TaskRepository();
            var tasks = taskservice.FindList(x => (x.S_B_STATE == "MES" || x.S_B_STATE == "People") && x.N_PRIORITY == -88);
@@ -1605,19 +1635,82 @@
                LogHelper.Info($"解释MES任务 ->{task.S_TASK_NO} {(sx == null ? "非" : "是")}总装机器人任务");
                if (sx == null)
                {
                    LogHelper.Info($"解释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>());
                    LogHelper.Info($"解释MES任务 ->{task.S_TASK_NO} ç›´æŽ¥ç”Ÿæˆå¯¹åº”任务 ç»“果:{res}");
                    if (res)
                    if (string.IsNullOrEmpty(task.S_CNTRS) && !string.IsNullOrEmpty(task.S_INDEX))
                    {
                        LogHelper.Info($"解释MES任务 ->{task.S_TASK_NO} ä¿®æ”¹æ ‡è¯†");
                        //task.N_PRIORITY = 0;
                        taskservice.dbcontext.Set<TaskEntity>().Attach(task);
                        taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).CurrentValue = 0;
                        taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).IsModified = true;
                        taskservice.dbcontext.SaveChanges();
                        // å«æ–™ä»»åŠ¡ã€‚ æŒ‡å®šç‰©æ–™ä¸æŒ‡å®šæ‰˜ç›˜ï¼Œéœ€è¦å‡ºåº“
                        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
                                    {
                                        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);
                                    }
                                    else
                                    {
                                        LogHelper.Info($"解释MES任务 ->{task.S_TASK_NO} 2030 å‡ºå£çš„æ‰˜ç›˜ç‰©æ–™ä¸ç¬¦åˆ");
                                    }
                                }
                                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
                                    {
                                        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);
                                    }
                                    else
                                    {
                                        LogHelper.Info($"解释MES任务 ->{task.S_TASK_NO} 1019 å‡ºå£çš„æ‰˜ç›˜ç‰©æ–™ä¸ç¬¦åˆ");
                                    }
                                }
                                break;
                        }
                    }
                    else
                    {
                        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 æ˜¯ä¸»åŠ¨ç”³è¯·ï¼Œ ä¸ç”¨åˆ¤æ–­ã€‚
                        {
                        }
                        LogHelper.Info($"解释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>());
                        LogHelper.Info($"解释MES任务 ->{task.S_TASK_NO} ç›´æŽ¥ç”Ÿæˆå¯¹åº”任务 ç»“果:{res}");
                        if (res)
                        {
                            LogHelper.Info($"解释MES任务 ->{task.S_TASK_NO} ä¿®æ”¹æ ‡è¯†");
                            //task.N_PRIORITY = 0;
                            taskservice.dbcontext.Set<TaskEntity>().Attach(task);
                            taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).CurrentValue = 0;
                            taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).IsModified = true;
                            taskservice.dbcontext.SaveChanges();
                        }
                    }
                }
                else
@@ -2427,6 +2520,24 @@
        public Ddata data { get; set; }
        public object extra { get; set; }
    }
    class Mesrespone
    {
        public bool success { get; set; }
        public string msg { get; set; }
        public object extra { get; set; }
    }
    class MES2234
    {
        public bool success { get; set; }
        public ML data { get; set; }
    }
    public class ML
    {
        public string materialCode { get; set; }
        public int lineNum { get; set; }
    }
    public class Ddata
    {