From c6f52253a482e866640dd075fd3dcbb56687f4f2 Mon Sep 17 00:00:00 2001
From: czw <selecti@yeah.net>
Date: 星期六, 31 五月 2025 12:38:17 +0800
Subject: [PATCH] New

---
 S7/Scripts/Custom.json |   39 ++++++++++++++++++++++++++++++---------
 1 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/S7/Scripts/Custom.json b/S7/Scripts/Custom.json
index f58aa65..e411d64 100644
--- a/S7/Scripts/Custom.json
+++ b/S7/Scripts/Custom.json
@@ -57,8 +57,8 @@
       "Type": "MethodCode",
       "Level": "Item",
       "Statement": "public void SettingInit()",
-      "EditCode": "try\r\n{\r\n    var jsonFile = System.AppDomain.CurrentDomain.BaseDirectory + \"/Static/config.json\";\r\n    using (System.IO.StreamReader file = System.IO.File.OpenText(jsonFile))\r\n    {\r\n        using (JsonTextReader reader = new JsonTextReader(file))\r\n        {\r\n            JObject o = (JObject)JToken.ReadFrom(reader);\r\n            foreach (Newtonsoft.Json.Linq.JProperty keyValue in o.Properties())\r\n            {\r\n                Console.WriteLine(keyValue.Name);\r\n                if (keyValue.Name == \"HostToAgvServerUrl\")\r\n                {\r\n                    Settings.HostToAgvServerUrl = keyValue.Value.ToString();\r\n                }\r\n                if (keyValue.Name == \"deviceInfo\") {\r\n                      Settings.deviceInfos = JsonConvert.DeserializeObject<List<deviceInfo>>(keyValue.Value.ToString());\r\n                }\r\n                if (keyValue.Name == \"HKbaseUrl\") {\r\n                      Settings.HKbaseUrl = keyValue.Value.ToString();\r\n                }\r\n            }\r\n        }\r\n    }\r\n    if(!Settings.FirstG)\r\n    \tLogHelper.Info(\"鍔犺浇閰嶇疆鏂囦欢淇℃伅 瀹屾垚\");\r\n}\r\ncatch (Exception ex)\r\n{\r\n    LogHelper.Error(\"鍔犺浇閰嶇疆鏂囦欢澶辫触锛乗" + ex.Message, ex);\r\n}",
-      "Code": "public void SettingInit()\r\n{try\r\n{\r\n    var jsonFile = System.AppDomain.CurrentDomain.BaseDirectory + \"/Static/config.json\";\r\n    using (System.IO.StreamReader file = System.IO.File.OpenText(jsonFile))\r\n    {\r\n        using (JsonTextReader reader = new JsonTextReader(file))\r\n        {\r\n            JObject o = (JObject)JToken.ReadFrom(reader);\r\n            foreach (Newtonsoft.Json.Linq.JProperty keyValue in o.Properties())\r\n            {\r\n                Console.WriteLine(keyValue.Name);\r\n                if (keyValue.Name == \"HostToAgvServerUrl\")\r\n                {\r\n                    Settings.HostToAgvServerUrl = keyValue.Value.ToString();\r\n                }\r\n                if (keyValue.Name == \"deviceInfo\") {\r\n                      Settings.deviceInfos = JsonConvert.DeserializeObject<List<deviceInfo>>(keyValue.Value.ToString());\r\n                }\r\n                if (keyValue.Name == \"HKbaseUrl\") {\r\n                      Settings.HKbaseUrl = keyValue.Value.ToString();\r\n                }\r\n            }\r\n        }\r\n    }\r\n    if(!Settings.FirstG)\r\n    \tLogHelper.Info(\"鍔犺浇閰嶇疆鏂囦欢淇℃伅 瀹屾垚\");\r\n}\r\ncatch (Exception ex)\r\n{\r\n    LogHelper.Error(\"鍔犺浇閰嶇疆鏂囦欢澶辫触锛乗" + ex.Message, ex);\r\n}\r\n}",
+      "EditCode": "try\r\n{\r\n    var jsonFile = System.AppDomain.CurrentDomain.BaseDirectory + \"/Static/config.json\";\r\n    using (System.IO.StreamReader file = System.IO.File.OpenText(jsonFile))\r\n    {\r\n        using (JsonTextReader reader = new JsonTextReader(file))\r\n        {\r\n            JObject o = (JObject)JToken.ReadFrom(reader);\r\n            foreach (Newtonsoft.Json.Linq.JProperty keyValue in o.Properties())\r\n            {\r\n                Console.WriteLine(keyValue.Name);\r\n                if (keyValue.Name == \"HostToAgvServerUrl\")\r\n                {\r\n                    Settings.HostToAgvServerUrl = keyValue.Value.ToString();\r\n                }\r\n                if (keyValue.Name == \"deviceInfo\") {\r\n                      Settings.deviceInfos = JsonConvert.DeserializeObject<List<deviceInfo>>(keyValue.Value.ToString());\r\n                }\r\n                if (keyValue.Name == \"HKbaseUrl\") {\r\n                      Settings.HKbaseUrl = keyValue.Value.ToString();\r\n                }\r\n            }\r\n        }\r\n    }\r\n    //if(!Settings.FirstG)\r\n    \t//LogHelper.Info(\"鍔犺浇閰嶇疆鏂囦欢淇℃伅 瀹屾垚\");\r\n}\r\ncatch (Exception ex)\r\n{\r\n    LogHelper.Error(\"鍔犺浇閰嶇疆鏂囦欢澶辫触锛乗" + ex.Message, ex);\r\n}",
+      "Code": "public void SettingInit()\r\n{try\r\n{\r\n    var jsonFile = System.AppDomain.CurrentDomain.BaseDirectory + \"/Static/config.json\";\r\n    using (System.IO.StreamReader file = System.IO.File.OpenText(jsonFile))\r\n    {\r\n        using (JsonTextReader reader = new JsonTextReader(file))\r\n        {\r\n            JObject o = (JObject)JToken.ReadFrom(reader);\r\n            foreach (Newtonsoft.Json.Linq.JProperty keyValue in o.Properties())\r\n            {\r\n                Console.WriteLine(keyValue.Name);\r\n                if (keyValue.Name == \"HostToAgvServerUrl\")\r\n                {\r\n                    Settings.HostToAgvServerUrl = keyValue.Value.ToString();\r\n                }\r\n                if (keyValue.Name == \"deviceInfo\") {\r\n                      Settings.deviceInfos = JsonConvert.DeserializeObject<List<deviceInfo>>(keyValue.Value.ToString());\r\n                }\r\n                if (keyValue.Name == \"HKbaseUrl\") {\r\n                      Settings.HKbaseUrl = keyValue.Value.ToString();\r\n                }\r\n            }\r\n        }\r\n    }\r\n    //if(!Settings.FirstG)\r\n    \t//LogHelper.Info(\"鍔犺浇閰嶇疆鏂囦欢淇℃伅 瀹屾垚\");\r\n}\r\ncatch (Exception ex)\r\n{\r\n    LogHelper.Error(\"鍔犺浇閰嶇疆鏂囦欢澶辫触锛乗" + ex.Message, ex);\r\n}\r\n}",
       "CusMethod": {
         "Name": "SettingInit",
         "Params": [],
@@ -120,8 +120,8 @@
       "Type": "MethodCode",
       "Level": "Item",
       "Statement": "public void OperateHKTaskStatus(System.Object param1)",
-      "EditCode": "HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\nif (string.IsNullOrEmpty(model.taskCode))\r\n\treturn;\r\n// 鏌ヨ浠诲姟锛氭牴鎹换鍔″彿\r\n//var wcsTask = WCSHelper.GetTask(model.taskCode);\r\nITaskRepository MainMissionService = new TaskRepository();\r\nvar wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO);\r\nif (wcsTask != null)\r\n{\r\n    if (!string.IsNullOrWhiteSpace(model.method))\r\n    {\r\n        ILocRepository locrep = new LocRepository();\r\n        var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n        var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC);\r\n\r\n                    switch (model.method)\r\n                    {\r\n                        case \"start\":\r\n                            LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负鎵ц锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                            if (wcsTask.S_B_STATE.Trim() == \"宸叉帹閫乗")\r\n                            {\r\n                                wcsTask.S_B_STATE = \"鎵ц涓璡";\r\n                                wcsTask.T_START_TIME = DateTime.Now;\r\n                                MainMissionService.Update(wcsTask);\r\n                            }\r\n                            break;\r\n                        case \"outbin\":\r\n                            LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负鍙栬揣瀹屾垚锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                            wcsTask.S_B_STATE = \"鍙栬揣瀹屾垚\";\r\n                            startloc.S_LOCK_STATE = \"鏃燶";\r\n                            startloc.T_MODIFY = DateTime.Now;\r\n                            MainMissionService.Update(wcsTask);\r\n                            locrep.Update(startloc);\r\n                            //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);\r\n                            break;\r\n                        case \"end\":\r\n                            LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负瀹屾垚锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                            wcsTask.S_B_STATE = \"瀹屾垚\";\r\n                            wcsTask.T_END_TIME = DateTime.Now;\r\n                            endLoc.S_LOCK_STATE = \"鏃燶";\r\n                            endLoc.T_MODIFY = DateTime.Now;\r\n                            MainMissionService.Update(wcsTask);\r\n                            locrep.Update(endLoc);\r\n                            //LocationMethod.JudgeLocation(wcsTask);\r\n                            break;\r\n                        case \"cancel\":\r\n                            LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负鍙栨秷锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                            wcsTask.S_B_STATE = \"鍙栨秷\";\r\n                            startloc.S_LOCK_STATE = \"鏃燶";\r\n                            endLoc.S_LOCK_STATE = \"鏃燶";\r\n                            MainMissionService.Update(wcsTask);\r\n                            locrep.Update(startloc);\r\n                            locrep.Update(endLoc);\r\n                            //TaskProcess.OperateStatus(wcsTask, 7);\r\n                            //WCSHelper.Fail(wcsTask);\r\n                            break;\r\n                        case \"apply\":\r\n                            // 鍒ゆ柇璇ヤ换鍔$殑鎺ラ┏浣嶆槸鍚︽湁鍏朵粬鍏ュ簱鎴栧嚭搴撲换鍔★紝濡傛灉鏈夛紝鍒欏湪绛変綅绛夊緟锛屽鏋滄病鏈夛紝鍒欏叆\r\n                            TaskisOk(wcsTask);\r\n                            break;\r\n                    }\r\n\r\n                    TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data);\r\n        //WCSHelper.AddActionRecord(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n        //璋冪敤绗笁鏂规帴鍙o紙濡傛灉鏈夛級TaskProcess.ReportStatus\r\n    }\r\n    else\r\n    {\r\n        // 鏆傛椂璁惧畾涓�\r\n        wcsTask.S_B_STATE = \"涓婃姤鐘舵�绌篭";\r\n        MainMissionService.Update(wcsTask);\r\n        //瀹夊叏璇锋眰绛塡r\n        //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n    }\r\n}\r\nelse\r\n{\r\n    LogHelper.Info($\"褰撳墠浠诲姟鍙蜂换鍔′笉瀛樺湪{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n}",
-      "Code": "public void OperateHKTaskStatus(System.Object param1)\r\n{HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\nif (string.IsNullOrEmpty(model.taskCode))\r\n\treturn;\r\n// 鏌ヨ浠诲姟锛氭牴鎹换鍔″彿\r\n//var wcsTask = WCSHelper.GetTask(model.taskCode);\r\nITaskRepository MainMissionService = new TaskRepository();\r\nvar wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO);\r\nif (wcsTask != null)\r\n{\r\n    if (!string.IsNullOrWhiteSpace(model.method))\r\n    {\r\n        ILocRepository locrep = new LocRepository();\r\n        var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n        var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC);\r\n\r\n                    switch (model.method)\r\n                    {\r\n                        case \"start\":\r\n                            LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负鎵ц锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                            if (wcsTask.S_B_STATE.Trim() == \"宸叉帹閫乗")\r\n                            {\r\n                                wcsTask.S_B_STATE = \"鎵ц涓璡";\r\n                                wcsTask.T_START_TIME = DateTime.Now;\r\n                                MainMissionService.Update(wcsTask);\r\n                            }\r\n                            break;\r\n                        case \"outbin\":\r\n                            LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负鍙栬揣瀹屾垚锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                            wcsTask.S_B_STATE = \"鍙栬揣瀹屾垚\";\r\n                            startloc.S_LOCK_STATE = \"鏃燶";\r\n                            startloc.T_MODIFY = DateTime.Now;\r\n                            MainMissionService.Update(wcsTask);\r\n                            locrep.Update(startloc);\r\n                            //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);\r\n                            break;\r\n                        case \"end\":\r\n                            LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负瀹屾垚锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                            wcsTask.S_B_STATE = \"瀹屾垚\";\r\n                            wcsTask.T_END_TIME = DateTime.Now;\r\n                            endLoc.S_LOCK_STATE = \"鏃燶";\r\n                            endLoc.T_MODIFY = DateTime.Now;\r\n                            MainMissionService.Update(wcsTask);\r\n                            locrep.Update(endLoc);\r\n                            //LocationMethod.JudgeLocation(wcsTask);\r\n                            break;\r\n                        case \"cancel\":\r\n                            LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负鍙栨秷锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                            wcsTask.S_B_STATE = \"鍙栨秷\";\r\n                            startloc.S_LOCK_STATE = \"鏃燶";\r\n                            endLoc.S_LOCK_STATE = \"鏃燶";\r\n                            MainMissionService.Update(wcsTask);\r\n                            locrep.Update(startloc);\r\n                            locrep.Update(endLoc);\r\n                            //TaskProcess.OperateStatus(wcsTask, 7);\r\n                            //WCSHelper.Fail(wcsTask);\r\n                            break;\r\n                        case \"apply\":\r\n                            // 鍒ゆ柇璇ヤ换鍔$殑鎺ラ┏浣嶆槸鍚︽湁鍏朵粬鍏ュ簱鎴栧嚭搴撲换鍔★紝濡傛灉鏈夛紝鍒欏湪绛変綅绛夊緟锛屽鏋滄病鏈夛紝鍒欏叆\r\n                            TaskisOk(wcsTask);\r\n                            break;\r\n                    }\r\n\r\n                    TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data);\r\n        //WCSHelper.AddActionRecord(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n        //璋冪敤绗笁鏂规帴鍙o紙濡傛灉鏈夛級TaskProcess.ReportStatus\r\n    }\r\n    else\r\n    {\r\n        // 鏆傛椂璁惧畾涓�\r\n        wcsTask.S_B_STATE = \"涓婃姤鐘舵�绌篭";\r\n        MainMissionService.Update(wcsTask);\r\n        //瀹夊叏璇锋眰绛塡r\n        //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n    }\r\n}\r\nelse\r\n{\r\n    LogHelper.Info($\"褰撳墠浠诲姟鍙蜂换鍔′笉瀛樺湪{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n}\r\n}",
+      "EditCode": "HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\nif (string.IsNullOrEmpty(model.taskCode))\r\n    return;\r\n// 鏌ヨ浠诲姟锛氭牴鎹换鍔″彿\r\n//var wcsTask = WCSHelper.GetTask(model.taskCode);\r\nITaskRepository MainMissionService = new TaskRepository();\r\nvar wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO);\r\nif (wcsTask != null)\r\n{\r\n    if (!string.IsNullOrWhiteSpace(model.method))\r\n    {\r\n        ILocRepository locrep = new LocRepository();\r\n        var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n        var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC);\r\n\r\n        List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList();\r\n        switch (model.method)\r\n        {\r\n            case \"start\":\r\n                LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负鎵ц锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                if (wcsTask.S_B_STATE.Trim() == \"宸叉帹閫乗")\r\n                {\r\n                    wcsTask.S_B_STATE = \"鎵ц涓璡";\r\n                    wcsTask.T_START_TIME = DateTime.Now;\r\n                    MainMissionService.Update(wcsTask);\r\n                }\r\n                break;\r\n            case \"outbin\":\r\n                LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负鍙栬揣瀹屾垚锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                wcsTask.S_B_STATE = \"鍙栬揣瀹屾垚\";\r\n\r\n                startloc.N_CURRENT_NUM = 0;\r\n                startloc.S_LOCK_STATE = \"鏃燶";\r\n                startloc.T_MODIFY = DateTime.Now;\r\n                ILocContainerRepository locContainerRepository = new LocContainerRepository();\r\n                //var cnr = locContainerRepository.FindList(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n                locContainerRepository.Delete(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n                MainMissionService.Update(wcsTask);\r\n                locrep.Update(startloc);\r\n\r\n                var device = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_START_LOC));\r\n                if (device != null)\r\n                {\r\n                    if (device.deviceType == 1)\r\n                    {\r\n                        if (device.deviceName.Contains(\"缁村笇灏旀姄鑷俓"))\r\n                        {\r\n                            string V = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? \"R05\" : \"R06\";\r\n                            Conn.榛樿Redis.SetValue(device.deviceName + \".\" + V, \"true\", device.deviceName + \"Queue\");\r\n                        }\r\n                    }\r\n                    //else if(device.deviceType == 2)\r\n                    //    if (device.deviceName.Contains(\"鎹风灛鎶撹噦\"))\r\n                    //        Conn.榛樿Redis.SetValue(device.deviceName + \".R10\", \"true\", device.deviceName + \"Queue\");\r\n                }\r\n                //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);\r\n                break;\r\n            case \"end\":\r\n                LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负瀹屾垚锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                wcsTask.S_B_STATE = \"瀹屾垚\";\r\n                wcsTask.T_END_TIME = DateTime.Now;\r\n\r\n                ILocContainerRepository locContainerRepository2 = new LocContainerRepository();\r\n                List<LocContainerEntity> llls = new List<LocContainerEntity>();\r\n                foreach (var c in cntrs)\r\n                {\r\n                    var action = new LocContainerEntity()\r\n                    {\r\n                        S_ID = Guid.NewGuid().ToString(),\r\n                        S_STATE = \"缂栬緫\",\r\n                        T_CREATE = DateTime.Now,\r\n                        T_MODIFY = DateTime.Now,\r\n\r\n                        S_LOC_CODE = endLoc.S_LOC_CODE,\r\n                        S_CNTR_CODE = c,\r\n                        S_TYPE = \"\",\r\n                    };\r\n                    llls.Add(action);\r\n                }\r\n\r\n                endLoc.S_LOCK_STATE = \"鏃燶";\r\n                startloc.N_CURRENT_NUM = 1;\r\n                endLoc.T_MODIFY = DateTime.Now;\r\n                MainMissionService.Update(wcsTask);\r\n                locrep.Update(endLoc);\r\n                locContainerRepository2.Insert(llls);\r\n\r\n                var device2 = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_END_LOC));\r\n                if (device2 != null)\r\n                {\r\n                    if (device2.deviceType == 1)\r\n                    {\r\n                        if (device2.deviceName.Contains(\"缁村笇灏旀姄鑷俓"))\r\n                        {\r\n                            string V = device2.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? \"R10\" : \"R11\";\r\n                            Conn.榛樿Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n                        }\r\n                    }\r\n                    //else if(device.deviceType == 2)\r\n                    //    if (device.deviceName.Contains(\"鎹风灛鎶撹噦\"))\r\n                    //        Conn.榛樿Redis.SetValue(device.deviceName + \".R10\", \"true\", device.deviceName + \"Queue\");\r\n                }\r\n\r\n                //LocationMethod.JudgeLocation(wcsTask);\r\n                break;\r\n            case \"cancel\":\r\n                LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负鍙栨秷锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                wcsTask.S_B_STATE = \"鍙栨秷\";\r\n                startloc.S_LOCK_STATE = \"鏃燶";\r\n                endLoc.S_LOCK_STATE = \"鏃燶";\r\n                MainMissionService.Update(wcsTask);\r\n                locrep.Update(startloc);\r\n                locrep.Update(endLoc);\r\n                //TaskProcess.OperateStatus(wcsTask, 7);\r\n                //WCSHelper.Fail(wcsTask);\r\n                break;\r\n            case \"apply\":\r\n                // 鍒ゆ柇璇ヤ换鍔$殑鎺ラ┏浣嶆槸鍚︽湁鍏朵粬鍏ュ簱鎴栧嚭搴撲换鍔★紝濡傛灉鏈夛紝鍒欏湪绛変綅绛夊緟锛屽鏋滄病鏈夛紝鍒欏叆\r\n                TaskisOk(wcsTask);\r\n                break;\r\n        }\r\n\r\n        TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data);\r\n        //璋冪敤绗笁鏂规帴鍙o紙濡傛灉鏈夛級TaskProcess.ReportStatus\r\n    }\r\n    else\r\n    {\r\n        // 鏆傛椂璁惧畾涓�\r\n        wcsTask.S_B_STATE = \"涓婃姤鐘舵�绌篭";\r\n        //瀹夊叏璇锋眰绛塡r\n        //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n    }\r\n}\r\nelse\r\n{\r\n    LogHelper.Info($\"褰撳墠浠诲姟鍙蜂换鍔′笉瀛樺湪{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n}",
+      "Code": "public void OperateHKTaskStatus(System.Object param1)\r\n{HaiKangOrderInfo model = (HaiKangOrderInfo)param1;\r\nif (string.IsNullOrEmpty(model.taskCode))\r\n    return;\r\n// 鏌ヨ浠诲姟锛氭牴鎹换鍔″彿\r\n//var wcsTask = WCSHelper.GetTask(model.taskCode);\r\nITaskRepository MainMissionService = new TaskRepository();\r\nvar wcsTask = MainMissionService.FindEntity(x => model.taskCode == x.S_TASK_NO);\r\nif (wcsTask != null)\r\n{\r\n    if (!string.IsNullOrWhiteSpace(model.method))\r\n    {\r\n        ILocRepository locrep = new LocRepository();\r\n        var startloc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n        var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == wcsTask.S_END_LOC);\r\n\r\n        List<string> cntrs = wcsTask.S_CNTRS.Split(',').ToList();\r\n        switch (model.method)\r\n        {\r\n            case \"start\":\r\n                LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负鎵ц锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                if (wcsTask.S_B_STATE.Trim() == \"宸叉帹閫乗")\r\n                {\r\n                    wcsTask.S_B_STATE = \"鎵ц涓璡";\r\n                    wcsTask.T_START_TIME = DateTime.Now;\r\n                    MainMissionService.Update(wcsTask);\r\n                }\r\n                break;\r\n            case \"outbin\":\r\n                LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负鍙栬揣瀹屾垚锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                wcsTask.S_B_STATE = \"鍙栬揣瀹屾垚\";\r\n\r\n                startloc.N_CURRENT_NUM = 0;\r\n                startloc.S_LOCK_STATE = \"鏃燶";\r\n                startloc.T_MODIFY = DateTime.Now;\r\n                ILocContainerRepository locContainerRepository = new LocContainerRepository();\r\n                //var cnr = locContainerRepository.FindList(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n                locContainerRepository.Delete(x => cntrs.Contains(x.S_CNTR_CODE.Trim()) && x.S_LOC_CODE == wcsTask.S_START_LOC);\r\n                MainMissionService.Update(wcsTask);\r\n                locrep.Update(startloc);\r\n\r\n                var device = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_START_LOC));\r\n                if (device != null)\r\n                {\r\n                    if (device.deviceType == 1)\r\n                    {\r\n                        if (device.deviceName.Contains(\"缁村笇灏旀姄鑷俓"))\r\n                        {\r\n                            string V = device.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? \"R05\" : \"R06\";\r\n                            Conn.榛樿Redis.SetValue(device.deviceName + \".\" + V, \"true\", device.deviceName + \"Queue\");\r\n                        }\r\n                    }\r\n                    //else if(device.deviceType == 2)\r\n                    //    if (device.deviceName.Contains(\"鎹风灛鎶撹噦\"))\r\n                    //        Conn.榛樿Redis.SetValue(device.deviceName + \".R10\", \"true\", device.deviceName + \"Queue\");\r\n                }\r\n                //LocationHelper.UnLockLoc(wcsTask.S_START_LOC);\r\n                break;\r\n            case \"end\":\r\n                LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负瀹屾垚锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                wcsTask.S_B_STATE = \"瀹屾垚\";\r\n                wcsTask.T_END_TIME = DateTime.Now;\r\n\r\n                ILocContainerRepository locContainerRepository2 = new LocContainerRepository();\r\n                List<LocContainerEntity> llls = new List<LocContainerEntity>();\r\n                foreach (var c in cntrs)\r\n                {\r\n                    var action = new LocContainerEntity()\r\n                    {\r\n                        S_ID = Guid.NewGuid().ToString(),\r\n                        S_STATE = \"缂栬緫\",\r\n                        T_CREATE = DateTime.Now,\r\n                        T_MODIFY = DateTime.Now,\r\n\r\n                        S_LOC_CODE = endLoc.S_LOC_CODE,\r\n                        S_CNTR_CODE = c,\r\n                        S_TYPE = \"\",\r\n                    };\r\n                    llls.Add(action);\r\n                }\r\n\r\n                endLoc.S_LOCK_STATE = \"鏃燶";\r\n                startloc.N_CURRENT_NUM = 1;\r\n                endLoc.T_MODIFY = DateTime.Now;\r\n                MainMissionService.Update(wcsTask);\r\n                locrep.Update(endLoc);\r\n                locContainerRepository2.Insert(llls);\r\n\r\n                var device2 = Settings.deviceInfos.Find(x => x.location.Contains(wcsTask.S_END_LOC));\r\n                if (device2 != null)\r\n                {\r\n                    if (device2.deviceType == 1)\r\n                    {\r\n                        if (device2.deviceName.Contains(\"缁村笇灏旀姄鑷俓"))\r\n                        {\r\n                            string V = device2.location.ToList().FindIndex(x => x == wcsTask.S_START_LOC) == 0 ? \"R10\" : \"R11\";\r\n                            Conn.榛樿Redis.SetValue(device2.deviceName + \".\" + V, \"true\", device2.deviceName + \"Queue\");\r\n                        }\r\n                    }\r\n                    //else if(device.deviceType == 2)\r\n                    //    if (device.deviceName.Contains(\"鎹风灛鎶撹噦\"))\r\n                    //        Conn.榛樿Redis.SetValue(device.deviceName + \".R10\", \"true\", device.deviceName + \"Queue\");\r\n                }\r\n\r\n                //LocationMethod.JudgeLocation(wcsTask);\r\n                break;\r\n            case \"cancel\":\r\n                LogHelper.Info($\"娴峰悍杞︿换鍔$姸鎬佸彉鏇翠负鍙栨秷锛屼换鍔″彿涓猴細{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n                wcsTask.S_B_STATE = \"鍙栨秷\";\r\n                startloc.S_LOCK_STATE = \"鏃燶";\r\n                endLoc.S_LOCK_STATE = \"鏃燶";\r\n                MainMissionService.Update(wcsTask);\r\n                locrep.Update(startloc);\r\n                locrep.Update(endLoc);\r\n                //TaskProcess.OperateStatus(wcsTask, 7);\r\n                //WCSHelper.Fail(wcsTask);\r\n                break;\r\n            case \"apply\":\r\n                // 鍒ゆ柇璇ヤ换鍔$殑鎺ラ┏浣嶆槸鍚︽湁鍏朵粬鍏ュ簱鎴栧嚭搴撲换鍔★紝濡傛灉鏈夛紝鍒欏湪绛変綅绛夊緟锛屽鏋滄病鏈夛紝鍒欏叆\r\n                TaskisOk(wcsTask);\r\n                break;\r\n        }\r\n\r\n        TaskProcess.AddActionRecord(model.taskCode, model.method, model.eqpCode, model.data);\r\n        //璋冪敤绗笁鏂规帴鍙o紙濡傛灉鏈夛級TaskProcess.ReportStatus\r\n    }\r\n    else\r\n    {\r\n        // 鏆傛椂璁惧畾涓�\r\n        wcsTask.S_B_STATE = \"涓婃姤鐘舵�绌篭";\r\n        //瀹夊叏璇锋眰绛塡r\n        //TaskProcess.OperateReq(model.taskCode, wcsTask.N_B_STATE, model.eqpCode, model.data);\r\n    }\r\n}\r\nelse\r\n{\r\n    LogHelper.Info($\"褰撳墠浠诲姟鍙蜂换鍔′笉瀛樺湪{model.taskCode}\", \"agv鏉弶浜や簰鏃ュ織\");\r\n}\r\n}",
       "CusMethod": {
         "Name": "OperateHKTaskStatus",
         "Params": [
@@ -356,8 +356,8 @@
       "Type": "MethodCode",
       "Level": "Item",
       "Statement": "public System.Boolean RunTask(GZ.DB.Entity.OIDATABASE.TaskEntity task)",
-      "EditCode": "\r\n            ILocRepository locrep = new LocRepository();\r\n            var startloc = locrep.FindEntity(x => x.S_LOC_CODE == task.S_START_LOC);\r\n            var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == task.S_END_LOC);\r\n            if (startloc == null || endLoc == null)\r\n            {\r\n                LogHelper.Info($\"{task.S_TASK_NO}-浠诲姟璧�缁堢偣 娌℃壘鍒版暟鎹�\");\r\n                return false;\r\n            }\r\n            var start = startloc.S_AGV_SITE;\r\n            var end = endLoc.S_AGV_SITE;\r\n\r\n            // 鍒涘缓涓や釜璺緞\r\n            var positions = new List<positionCodePath>(){\r\n                            new positionCodePath()\r\n                            {\r\n                                positionCode = start,\r\n                                Type = \"00\"\r\n                            },\r\n                            new positionCodePath()\r\n                            {\r\n                                positionCode = end,\r\n                                Type = \"00\"\r\n                            }\r\n            };\r\n\r\n            //璋冪涓夋柟鎺ュ彛\r\n            var model = new HaiKangOrderInfo\r\n            {\r\n                taskCode = task.S_TASK_NO,\r\n                ctnrCode = task.S_CNTRS,\r\n                taskTyp = \"F02\",\r\n                positionCodePath = positions\r\n            };\r\n\r\n            return CreateOrder(model);",
-      "Code": "public System.Boolean RunTask(GZ.DB.Entity.OIDATABASE.TaskEntity task)\r\n{\r\n            ILocRepository locrep = new LocRepository();\r\n            var startloc = locrep.FindEntity(x => x.S_LOC_CODE == task.S_START_LOC);\r\n            var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == task.S_END_LOC);\r\n            if (startloc == null || endLoc == null)\r\n            {\r\n                LogHelper.Info($\"{task.S_TASK_NO}-浠诲姟璧�缁堢偣 娌℃壘鍒版暟鎹�\");\r\n                return false;\r\n            }\r\n            var start = startloc.S_AGV_SITE;\r\n            var end = endLoc.S_AGV_SITE;\r\n\r\n            // 鍒涘缓涓や釜璺緞\r\n            var positions = new List<positionCodePath>(){\r\n                            new positionCodePath()\r\n                            {\r\n                                positionCode = start,\r\n                                Type = \"00\"\r\n                            },\r\n                            new positionCodePath()\r\n                            {\r\n                                positionCode = end,\r\n                                Type = \"00\"\r\n                            }\r\n            };\r\n\r\n            //璋冪涓夋柟鎺ュ彛\r\n            var model = new HaiKangOrderInfo\r\n            {\r\n                taskCode = task.S_TASK_NO,\r\n                ctnrCode = task.S_CNTRS,\r\n                taskTyp = \"F02\",\r\n                positionCodePath = positions\r\n            };\r\n\r\n            return CreateOrder(model);\r\n}",
+      "EditCode": "\r\n            ILocRepository locrep = new LocRepository();\r\n            var startloc = locrep.FindEntity(x => x.S_LOC_CODE == task.S_START_LOC);\r\n            var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == task.S_END_LOC);\r\n            if (startloc == null || endLoc == null)\r\n            {\r\n                LogHelper.Info($\"{task.S_TASK_NO}-浠诲姟璧�缁堢偣 娌℃壘鍒版暟鎹�\");\r\n                return false;\r\n            }\r\n            var start = startloc.S_AGV_SITE.Trim();\r\n            var end = endLoc.S_AGV_SITE.Trim();\r\n\r\n            // 鍒涘缓涓や釜璺緞\r\n            var positions = new List<positionCodePath>(){\r\n                            new positionCodePath()\r\n                            {\r\n                                positionCode = start,\r\n                                Type = \"00\"\r\n                            },\r\n                            new positionCodePath()\r\n                            {\r\n                                positionCode = end,\r\n                                Type = \"00\"\r\n                            }\r\n            };\r\n\r\n            //璋冪涓夋柟鎺ュ彛\r\n            var model = new HaiKangOrderInfo\r\n            {\r\n                reqCode=task.S_TASK_NO.Trim(),\r\n                reqTime=DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\"),\r\n                taskCode = task.S_TASK_NO.Trim(),\r\n                ctnrCode = task.S_CNTRS,\r\n                taskTyp = \"F01\",\r\n                positionCodePath = positions\r\n            };\r\n\r\n            return CreateOrder(model);",
+      "Code": "public System.Boolean RunTask(GZ.DB.Entity.OIDATABASE.TaskEntity task)\r\n{\r\n            ILocRepository locrep = new LocRepository();\r\n            var startloc = locrep.FindEntity(x => x.S_LOC_CODE == task.S_START_LOC);\r\n            var endLoc = locrep.FindEntity(x => x.S_LOC_CODE == task.S_END_LOC);\r\n            if (startloc == null || endLoc == null)\r\n            {\r\n                LogHelper.Info($\"{task.S_TASK_NO}-浠诲姟璧�缁堢偣 娌℃壘鍒版暟鎹�\");\r\n                return false;\r\n            }\r\n            var start = startloc.S_AGV_SITE.Trim();\r\n            var end = endLoc.S_AGV_SITE.Trim();\r\n\r\n            // 鍒涘缓涓や釜璺緞\r\n            var positions = new List<positionCodePath>(){\r\n                            new positionCodePath()\r\n                            {\r\n                                positionCode = start,\r\n                                Type = \"00\"\r\n                            },\r\n                            new positionCodePath()\r\n                            {\r\n                                positionCode = end,\r\n                                Type = \"00\"\r\n                            }\r\n            };\r\n\r\n            //璋冪涓夋柟鎺ュ彛\r\n            var model = new HaiKangOrderInfo\r\n            {\r\n                reqCode=task.S_TASK_NO.Trim(),\r\n                reqTime=DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\"),\r\n                taskCode = task.S_TASK_NO.Trim(),\r\n                ctnrCode = task.S_CNTRS,\r\n                taskTyp = \"F01\",\r\n                positionCodePath = positions\r\n            };\r\n\r\n            return CreateOrder(model);\r\n}",
       "CusMethod": {
         "Name": "RunTask",
         "Params": [
@@ -572,8 +572,8 @@
       "Type": "ClassCode",
       "Level": "Item",
       "Statement": "public class SYSHelper",
-      "EditCode": "private static object locker = new object();\r\ninternal static int GetSerialNumber(string snType, string prefix, string Vend = \"0\")\r\n{\r\n    if (Vend == \"1\")\r\n        Vend = DateTime.Now.ToString(\"yyMMdd\");\r\n    int result = 0;\r\n    lock (locker)\r\n    {\r\n        ISYSRepository sysservice = new SYSRepository();\r\n        var sId = sysservice.FindEntity(a => a.CN_S_TYPE.Trim() == snType && a.CN_S_PRE.Trim() == prefix + Vend);\r\n\r\n        if (sId != null)\r\n        {\r\n            sId.CN_N_MAX++;\r\n            sId.CN_T_LAST = DateTime.Now;\r\n            sysservice.Update(sId);\r\n            result = sId.CN_N_MAX;\r\n        }\r\n        else\r\n        {\r\n            sId = new SYSEntity { CN_S_TYPE = snType, CN_T_LAST = DateTime.Now, CN_S_PRE = prefix + Vend, CN_N_MAX = 0 };\r\n            sysservice.Insert(sId);\r\n        }\r\n    }\r\n    return result;\r\n}",
-      "Code": "public class SYSHelper\r\n{private static object locker = new object();\r\ninternal static int GetSerialNumber(string snType, string prefix, string Vend = \"0\")\r\n{\r\n    if (Vend == \"1\")\r\n        Vend = DateTime.Now.ToString(\"yyMMdd\");\r\n    int result = 0;\r\n    lock (locker)\r\n    {\r\n        ISYSRepository sysservice = new SYSRepository();\r\n        var sId = sysservice.FindEntity(a => a.CN_S_TYPE.Trim() == snType && a.CN_S_PRE.Trim() == prefix + Vend);\r\n\r\n        if (sId != null)\r\n        {\r\n            sId.CN_N_MAX++;\r\n            sId.CN_T_LAST = DateTime.Now;\r\n            sysservice.Update(sId);\r\n            result = sId.CN_N_MAX;\r\n        }\r\n        else\r\n        {\r\n            sId = new SYSEntity { CN_S_TYPE = snType, CN_T_LAST = DateTime.Now, CN_S_PRE = prefix + Vend, CN_N_MAX = 0 };\r\n            sysservice.Insert(sId);\r\n        }\r\n    }\r\n    return result;\r\n}\r\n}",
+      "EditCode": "private static object locker = new object();\r\ninternal static int GetSerialNumber(string snType, string prefix, string Vend = \"0\")\r\n{\r\n    if (Vend == \"1\")\r\n        Vend = DateTime.Now.ToString(\"yyMMdd\");\r\n    int result = 0;\r\n    lock (locker)\r\n    {\r\n        SYSRepository sysservice = new SYSRepository();\r\n        var sId = sysservice.FindEntity(a => a.CN_S_TYPE.Trim() == snType && a.CN_S_PRE.Trim() == prefix + Vend);\r\n\r\n        if (sId != null)\r\n        {\r\n            \r\n                    sId.CN_N_MAX++;\r\n                    sId.CN_T_LAST = DateTime.Now;\r\n                    //sysservice.Update(sId);\r\n\r\n                    sysservice.dbcontext.Set<SYSEntity>().Attach(sId);\r\n                    sysservice.dbcontext.Entry(sId).Property(x => x.CN_N_MAX).CurrentValue = sId.CN_N_MAX;\r\n\r\n                    sysservice.dbcontext.Entry(sId).Property(x => x.CN_N_MAX).IsModified = true;\r\n                    sysservice.dbcontext.Entry(sId).Property(x=>x.CN_T_LAST).CurrentValue = sId.CN_T_LAST;\r\n\r\n                    sysservice.dbcontext.Entry(sId).Property(x=>x.CN_T_LAST).IsModified = true;\r\n                        \r\n                    sysservice.dbcontext.SaveChanges();\r\n                    result = sId.CN_N_MAX;\r\n        }\r\n        else\r\n        {\r\n            sId = new SYSEntity { CN_S_TYPE = snType, CN_T_LAST = DateTime.Now, CN_S_PRE = prefix + Vend, CN_N_MAX = 0,CN_S_APP_TYPE=\"WCS\" };\r\n            sysservice.Insert(sId);\r\n        }\r\n    }\r\n    return result;\r\n}",
+      "Code": "public class SYSHelper\r\n{private static object locker = new object();\r\ninternal static int GetSerialNumber(string snType, string prefix, string Vend = \"0\")\r\n{\r\n    if (Vend == \"1\")\r\n        Vend = DateTime.Now.ToString(\"yyMMdd\");\r\n    int result = 0;\r\n    lock (locker)\r\n    {\r\n        SYSRepository sysservice = new SYSRepository();\r\n        var sId = sysservice.FindEntity(a => a.CN_S_TYPE.Trim() == snType && a.CN_S_PRE.Trim() == prefix + Vend);\r\n\r\n        if (sId != null)\r\n        {\r\n            \r\n                    sId.CN_N_MAX++;\r\n                    sId.CN_T_LAST = DateTime.Now;\r\n                    //sysservice.Update(sId);\r\n\r\n                    sysservice.dbcontext.Set<SYSEntity>().Attach(sId);\r\n                    sysservice.dbcontext.Entry(sId).Property(x => x.CN_N_MAX).CurrentValue = sId.CN_N_MAX;\r\n\r\n                    sysservice.dbcontext.Entry(sId).Property(x => x.CN_N_MAX).IsModified = true;\r\n                    sysservice.dbcontext.Entry(sId).Property(x=>x.CN_T_LAST).CurrentValue = sId.CN_T_LAST;\r\n\r\n                    sysservice.dbcontext.Entry(sId).Property(x=>x.CN_T_LAST).IsModified = true;\r\n                        \r\n                    sysservice.dbcontext.SaveChanges();\r\n                    result = sId.CN_N_MAX;\r\n        }\r\n        else\r\n        {\r\n            sId = new SYSEntity { CN_S_TYPE = snType, CN_T_LAST = DateTime.Now, CN_S_PRE = prefix + Vend, CN_N_MAX = 0,CN_S_APP_TYPE=\"WCS\" };\r\n            sysservice.Insert(sId);\r\n        }\r\n    }\r\n    return result;\r\n}\r\n}",
       "CusMethod": {
         "Name": "",
         "Params": [],
@@ -605,9 +605,30 @@
         "InheritClass": "",
         "Inherits": []
       }
+    },
+    {
+      "ID": "20250417094750211",
+      "Name": "Utils",
+      "Desc": "",
+      "ParentID": "",
+      "Type": "ClassCode",
+      "Level": "Item",
+      "Statement": "public class Utils",
+      "EditCode": "",
+      "Code": "public class Utils\r\n{\r\n}",
+      "CusMethod": {
+        "Name": "",
+        "Params": [],
+        "ReturnType": ""
+      },
+      "CusClass": {
+        "Name": "Utils",
+        "InheritClass": "",
+        "Inherits": []
+      }
     }
   ],
   "CreationTime": "2025-02-26 15:31:23",
-  "LastWriteTime": "2025-04-11 20:40:37",
+  "LastWriteTime": "2025-04-18 10:41:31",
   "HasSaved": true
 }
\ No newline at end of file

--
Gitblit v1.9.1