From 31beeb3d23e658e5aa2bbb9f251b006095eef15a Mon Sep 17 00:00:00 2001
From: czw <selecti@yeah.net>
Date: 星期一, 07 七月 2025 11:05:04 +0800
Subject: [PATCH] 1

---
 2025年6月12日/AuxAllWCS/Build/Project/代码/自定义类.cs |  161 ++++++++---------------------------------------------
 1 files changed, 26 insertions(+), 135 deletions(-)

diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\350\207\252\345\256\232\344\271\211\347\261\273.cs" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\350\207\252\345\256\232\344\271\211\347\261\273.cs"
index 806003e..1795ae3 100644
--- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\350\207\252\345\256\232\344\271\211\347\261\273.cs"
+++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\350\207\252\345\256\232\344\271\211\347\261\273.cs"
@@ -119,7 +119,7 @@
             else
             {
                 logger = LogFactory.CreateLogger(name);
-                if (logger != null)
+                if (logger != null && !loggers.Keys.Contains(name))
                 {
                     loggers.Add(name, logger);
                 }
@@ -676,6 +676,7 @@
             public string endBit { get; set; }
             public string reqCode { get; set; }
             public string cntrCode { get; set; }
+            public string materialCode { get; set; }
 
             internal static ReturnMsg CreatemesTask(CreateTask model)
             {
@@ -703,6 +704,7 @@
                         S_WORK_MODE = "agv",
                         S_B_STATE = "MES",
                         S_CNTRS = model.cntrCode,
+                        S_INDEX = model.materialCode,//mes浠诲姟涓�S_INDEX鏄�鐗╂枡缂栫爜銆�agv浠诲姟涓槸 agv浠诲姟绫诲瀷
                         N_START_LAYER = 1,
                         N_END_LAYER = 1,
                         N_CNTR_COUNT = 1
@@ -763,143 +765,11 @@
                 }
             }
         }
-        public static void ResMesTask()
+        public static void ResMesTask(Tag tag)
         {
             ///1.
-            TaskRepository taskservice = new TaskRepository();
-            var tasks = taskservice.FindList(x => (x.S_B_STATE == "MES" || x.S_B_STATE == "People") && x.N_PRIORITY == -88);
-            var VERXs = Settings.deviceInfos?.FindAll(x => x.deviceType == 2);
-            //if (VERXs.Any())
-            foreach (var task in tasks)
-            {
-                LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} ");
-                var sx = VERXs?.Find(x => x.location.Contains(task.S_END_LOC));
-                LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} {(sx == null ? "闈� : "鏄�)}鎬昏鏈哄櫒浜轰换鍔�);
-                if (sx == null)
-                {
-                    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>());
 
-                    LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐩存帴鐢熸垚瀵瑰簲浠诲姟 缁撴灉锛歿res}");
-                    if (res)
-                    {
-                        LogHelper.Info($"瑙i噴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
-                {
-                    var sindex = sx.location.ToList().IndexOf(task.S_END_LOC);
-                    LocRepository locRepository = new LocRepository();
-                    //鐢熸垚璺宠穬浠诲姟銆� -- 鎵樼洏璐т綅琛ㄣ� 
-                    var t1s = taskservice.FindList(x => x.S_SRC_NO == task.S_TASK_NO);
-
-                    LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鏌ユ壘鏄惁鏈夊凡鐢熸垚浠诲姟锛歿t1s != null}");
-                    if (t1s.Any())
-                    {
-                        var t1 = t1s.OrderBy(x => x.T_CREATE).LastOrDefault();
-                        if (t1.S_END_LOC == task.S_END_LOC)
-                        {
-                            task.N_PRIORITY = 0;
-                            task.S_B_STATE = "MES_瀹屾垚";
-                            taskservice.Update(task);
-                            continue;
-                        }
-                        if (t1.S_B_STATE == "瀹屾垚")
-                        {
-                            //1.缁堢偣鏄惁鏈夋墭鐩樸� 渚濇嵁鏄粓鐐圭殑浠诲姟鏄�浣滀负缁堢偣锛岃繕鏄捣鐐广�
-                            //var ec = taskservice.FindList(x => (x.S_START_LOC == task.S_START_LOC || x.S_END_LOC == task.S_END_LOC) /*&& DateTime.Now.Subtract(x.T_CREATE).TotalHours < 5*/).OrderByDescending(x => x.T_CREATE).FirstOrDefault();//($"select top 1 * from TN_TASK WHERE S_START_LOC='{task.S_END_LOC}' OR S_END_LOC='{task.S_END_LOC}' ORDER BY T_CREATE DESC");
-                            //var ec = taskservice.FindList(x => x.S_START_LOC == task.S_START_LOC && x.S_END_LOC == task.S_START_LOC, new Common.Data.Pagination
-                            //                        {
-                            //                            page = 1,
-                            //                            sidx = "T_CREATE",
-                            //                            sord = "desc",
-                            //                            rows = 1
-                            //                        }).FirstOrDefault();
-                            TaskEntity ec = null;
-                            var dev = Conn.榛樿Redis.GetValue(sx.deviceName + "." + (sindex == 0 ? "D1224" : "D1225"));
-                            if (dev?.Trim() == "1")
-                                ec = taskservice.FindList(x => x.S_END_LOC == task.S_END_LOC && x.S_B_STATE == "瀹屾垚", new Common.Data.Pagination
-                                {
-                                    page = 1,
-                                    sidx = "T_CREATE",
-                                    sord = "desc",
-                                    rows = 1
-                                }).FirstOrDefault();
-                            if (t1.S_START_LOC == task.S_START_LOC && ec != null)//!= task.S_END_LOC)
-                            {
-                                //绗簩娈点�
-                                LocEntity endLoc = null;
-                                var di = sx;
-                                if (di != null)
-                                {
-                                    foreach (var ssloc in di.deviceNo)
-                                    {
-                                        var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc);
-                                        if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == "鏃�)
-                                        {
-                                            endLoc = endloc;
-                                            break;
-                                        }
-                                    }
-                                    if (endLoc != null)
-                                    {
-                                        var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_END_LOC, endLoc.S_LOC_CODE, task.S_TYPE + "涓嬬┖", 7, ec.S_CNTRS.Split(',').ToList());
-                                        if (res)
-                                        {
-                                            task.N_PRIORITY = 0; taskservice.Update(task);
-                                        }
-                                    }
-                                }
-                            }
-                            else
-                            {
-                                var res = TaskProcess.CreateTask(task.S_TASK_NO, t1.S_END_LOC, task.S_END_LOC, task.S_TYPE + "琛ユ弧", 6, task.S_CNTRS.Split(',').ToList());
-                                if (res)
-                                {
-                                    task.N_PRIORITY = 0; taskservice.Update(task);
-                                }
-                            }
-                        }
-                    }
-                    else
-                    {
-                        LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 绛涢�鐢熸垚绗竴娈�浠诲姟銆�);
-                        //鐢熸垚绗竴娈点�
-                        LocEntity endLoc = null;
-                        var di = sx;
-                        if (di != null)
-                        {
-                            foreach (var ssloc in di.deviceNo)
-                            {
-                                var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc);
-                                if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == "鏃�)
-                                {
-                                    endLoc = endloc;
-                                    break;
-                                }
-                            }
-                            if (endLoc != null)
-                            {
-                                LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鍒涘缓绗竴娈�浠诲姟銆�);
-                                var res = TaskProcess.CreateTask("", task.S_START_LOC, endLoc.S_LOC_CODE, task.S_TYPE + "婊¤浆", 8, task.S_CNTRS.Split(',').ToList());
-
-                                LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鍒涘缓绗竴娈�浠诲姟銆傜粨鏋滐細{res}");
-                                if (res)
-                                {
-                                    task.N_PRIORITY = 0; taskservice.Update(task);
-                                }
-                            }
-                        }
-                    }
-
-                }
-            }
+            AutoThread.InvokeMethod(AutoThread.Instance, "ResolveMesTask", new object[] { tag });
             //var VERX = Settings.deviceInfos?.FindAll(x => x.deviceName.Contains("鎹风灛鎶撹噦"));
             //if ()
             ///2  鐪嬬紦瀛樺尯銆�娌℃弧鐨勩�
@@ -910,4 +780,25 @@
 
         #endregion [鑷畾涔夌被][20250531152402452][ToWMSMES]
     }
+    public class ConsoleInterceptor : TextWriter
+    {
+        #region    [鑷畾涔夌被][20250702112833751][ConsoleInterceptor]
+        private readonly TextWriter _originalOut;
+
+        public ConsoleInterceptor()
+        {
+            _originalOut = Console.Out;
+        }
+
+        public override Encoding Encoding => Encoding.UTF8;
+
+        public override void WriteLine(string value = "")
+        {
+            string values = (string)AutoThread.InvokeMethod(AutoThread.Instance, "WriteLine", new object[] { value });
+            //// 鍙互閫夋嫨缁х画杈撳嚭鍒板師鎺у埗鍙�+            if (!string.IsNullOrEmpty(values))
+                _originalOut.WriteLine(values);
+        }
+        #endregion [鑷畾涔夌被][20250702112833751][ConsoleInterceptor]
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1