From e2ec31cc0062b3c1af621437554aa9a3505d2a56 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期五, 23 五月 2025 17:26:55 +0800
Subject: [PATCH] 优化产线安全交互的部分,优化AGV调试接口

---
 core/Monitor.cs |  107 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 72 insertions(+), 35 deletions(-)

diff --git a/core/Monitor.cs b/core/Monitor.cs
index 0dce8c5..728acbe 100644
--- a/core/Monitor.cs
+++ b/core/Monitor.cs
@@ -11,10 +11,42 @@
 
 namespace HH.WCS.Mobox3.DSZSH.core {
     public class Monitor {
+        public static void CheckInbound() {
+            var taskName = TaskName.鎵樼洏_婊℃墭涓嬬嚎鍏ュ簱;
+            var db = new SqlHelper<object>().GetInstance();
+            var info = "";
+            try {
+                // 鏌ヤ骇绾挎槸鍚︽湁鐗╂枡淇℃伅
+
+                var itemCode = "";
+                var batchNo = "";
+                var cntrCode = "";
+                var startLocCode = "";
+
+                var cgDetail = new TN_CG_Detail {
+                    S_ITEM_CODE = itemCode,
+                    S_BATCH_NO = batchNo,
+                    S_CNTR_CODE = cntrCode,
+                };
+
+                var startLoc = db.Queryable<TN_Location>()
+                    .Where(l => l.S_CODE == startLocCode) // 鎸囧畾锛氳捣鐐硅揣浣嶅彿
+                    .Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") // 绛涢�锛氭湭涓婇攣
+                    .First();
+
+                
+
+            }
+            catch (Exception ex) {
+                LogHelper.InfoEx(ex);
+            }
+
+        }
+
         public static void CheckOutboundOrder() {
             var taskName = TaskName.鎴愬搧鑳跺嚭搴�
             var db = new SqlHelper<object>().GetInstance();
-            var info = "";
+            var info = $"杞--{taskName}--";
 
             try {
                 var orderList = db.Queryable<TN_Outbound_Order>()
@@ -23,7 +55,8 @@
                     .ToList();
 
                 if (orderList.Count == 0) {
-                    LogHelper.Info("杞--鍑哄簱--鏆傛棤寰呮墽琛岀殑Order");
+                    info += $"鏆傛棤寰呮墽琛岀殑{taskName}鍗�;
+                    LogHelper.Info(info);
                     return;
                 }
 
@@ -33,7 +66,8 @@
                         .Count(d => d.S_OO_NO == order.S_NO && d.N_B_STATE >= 2); // 鎵ц涓�                     var allCount = db.Queryable<TN_Outbound_Detail>()
                         .Count(d => d.S_OO_NO == order.S_NO);
-                    LogHelper.Info($"杞--鍑哄簱--缁熻鍑哄簱鍗�{order.S_NO}'浠诲姟宸蹭笅鍙戯細{doingCount}/{allCount}");
+                    info += $"缁熻{taskName}鍗�{order.S_NO}'浠诲姟宸蹭笅鍙戯細{doingCount}/{allCount}";
+                    LogHelper.Info(info);
 
                     if (doingCount == allCount) {
                         order.N_B_STATE = 2; // 鎵�湁浠诲姟閮藉凡鎵ц
@@ -44,16 +78,20 @@
                     var lastDetail = db.Queryable<TN_Outbound_Detail>()
                         .Where(d => d.S_OO_NO == order.S_NO && d.N_B_STATE == 2) // TODO 鎴栬�鏀规垚鏌ask
                         .First();
+
                     if (lastDetail != null) {
-                        LogHelper.Info($"杞--鍑哄簱--鍑哄簱鍗�{order.S_NO}'涓婁竴涓换鍔′粛鍦ㄨ繘琛屼腑锛� + JsonConvert.SerializeObject(lastDetail));
+                        info += $"{taskName}鍗�{order.S_NO}'涓婁竴涓换鍔′粛鍦ㄨ繘琛屼腑锛� + JsonConvert.SerializeObject(lastDetail);
+                        LogHelper.Info(info);
                         continue;
                     }
 
                     var outboundDetail = db.Queryable<TN_Outbound_Detail>()
                         .Where(a => a.S_OO_NO == order.S_NO && a.N_B_STATE == 1) // 宸蹭笅鍙�                         .First();
-                    if (outboundDetail != null) {
-                        LogHelper.Info($"杞--鍑哄簱--");
+
+                    if (outboundDetail == null) {
+                        info += $"浠嶆湁浠诲姟鏈墽琛屽畬鎴愶紝浣嗗綋鍓嶆病鏈夊凡涓嬪彂鐨勪换鍔�;
+                        LogHelper.Info(info);
                         continue;
                     }
 
@@ -61,13 +99,9 @@
                 }
 
                 if (detailList.Count == 0) {
+                    // 涓婇潰娴佺▼宸茬粡鎵撳嵃杩囨棩蹇�                     return;
                 }
-
-                var startLocList = new List<TN_Location>();
-                var endLocList = new List<TN_Location>();
-
-                var taskList = new List<TN_Task>();
 
                 foreach (var detail in detailList) {
                     var startLoc = db.Queryable<TN_Location>()
@@ -76,7 +110,7 @@
                         .First();
 
                     if (startLoc == null) {
-                        LogHelper.Info($"杞--鍑哄簱锛氭病鏈夋壘鍒板悎閫傜殑璧风偣璐т綅锛�);
+                        LogHelper.Info($"杞--{taskName}锛氭病鏈夋壘鍒板悎閫傜殑璧风偣璐т綅锛�);
                         continue;
                     }
 
@@ -86,7 +120,7 @@
                         .Where(a => a.N_CURRENT_NUM == 0).First();
 
                     if (endLoc == null) {
-                        LogHelper.Info($"杞--鍑哄簱锛氭病鏈夋壘鍒板悎閫傜殑缁堢偣璐т綅锛丼_NO涓�'{detail.S_OO_NO}'锛岃姹侫rea涓�'{detail.S_END_AREA}'");
+                        LogHelper.Info($"杞--{taskName}锛氭病鏈夋壘鍒板悎閫傜殑缁堢偣璐т綅锛佸崟鍙�{detail.S_OO_NO}'瑕佹眰缁堢偣搴撳尯涓�{detail.S_END_AREA}'");
                         continue;
                     }
 
@@ -95,13 +129,15 @@
                     var cntId = detail.S_CNTR_CODE;
                     var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName);
 
-                    LocationHelper.LockLoc(ref startLoc, 1); // 璧风偣鍑哄簱閿�-                    LocationHelper.LockLoc(ref endLoc, 2); // 缁堢偣鍏ュ簱閿�+                    LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�+                    LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿� 
                     using (var tran = db.Ado.UseTran()) {
                         if (db.Updateable<TN_Outbound_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) {
                             tran.RollbackTran();
-                            LogHelper.Info($"杞--鍑哄簱--淇敼鏄庣粏琛ㄧ姸鎬佷负瀹屾垚澶辫触锛�);
+                            info += $"淇敼鏄庣粏琛ㄧ姸鎬佷负瀹屾垚--澶辫触锛�;
+                            LogHelper.Info(info);
+                            continue;
                         }
 
                         if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new {
@@ -111,7 +147,7 @@
                             it.T_MODIFY
                         }).ExecuteCommand() <= 0) {
                             tran.RollbackTran();
-                            info = $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}";
+                            info += $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂拌捣鐐硅揣浣峽startLoc.S_CODE}閿佺姸鎬佸け璐�;
                             LogHelper.Info(info);
                             continue;
                         }
@@ -122,28 +158,28 @@
                             it.S_LOCK_OP,
                             it.T_MODIFY
                         }).ExecuteCommand() <= 0) {
-
                             tran.RollbackTran();
-                            info = $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}";
+                            info += $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂扮粓鐐硅揣浣峽endLoc.S_CODE}閿佺姸鎬佸け璐�;
                             LogHelper.Info(info);
                             continue;
                         }
 
                         if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) {
                             tran.RollbackTran();
-                            info = $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}";
+                            info += $"鐢熸垚浠诲姟'{taskName}'澶辫触锛屽鍣ㄥ彿{cntId}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐硅揣鏋秢endLoc.S_CODE}";
                             LogHelper.Info(info);
                             continue;
                         }
 
                         tran.CommitTran();
-                        info = $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}";
+                        info += $"鐢熸垚浠诲姟'{taskName}'鎴愬姛锛屽鍣ㄥ彿{cntId}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐硅揣鏋秢endLoc.S_CODE}";
                         LogHelper.Info(info);
                         continue;
                     }
                 }
             }
             catch (Exception ex) {
+                info += $"鍙戠敓浜嗗紓甯革細{ex.Message}";
                 LogHelper.InfoEx(ex);
             }
         }
@@ -152,6 +188,7 @@
             var taskName = TaskName.鎶芥_鍑哄簱;
             var db = new SqlHelper<object>().GetInstance();
             var info = "";
+
             try {
                 var orderList = db.Queryable<TN_Check_Order>()
                     .Where(c => c.N_B_STATE == 1)
@@ -182,7 +219,7 @@
                         .ToList();
 
                     if (checkDetailList.Count == 0) {
-                        LogHelper.Info($"杞--");
+                        LogHelper.Info($"杞--{taskName}--浠嶆湁浠诲姟鏈墽琛屽畬鎴愶紝浣嗗綋鍓嶆病鏈夊凡涓嬪彂鐨勪换鍔�);
                         continue;
                     }
 
@@ -217,8 +254,8 @@
                     var cntId = detail.S_CNTR_CODE;
                     var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName);
 
-                    LocationHelper.LockLoc(ref startLoc, 1); // 璧风偣鍑哄簱閿�-                    LocationHelper.LockLoc(ref endLoc, 2); // 缁堢偣鍏ュ簱閿�+                    LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�+                    LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿� 
                     using (var tran = db.Ado.UseTran()) {
                         if (db.Updateable<TN_Check_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) {
@@ -234,7 +271,7 @@
                             it.T_MODIFY
                         }).ExecuteCommand() <= 0) {
                             tran.RollbackTran();
-                            info = $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}";
+                            info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂拌捣鐐硅揣浣峽startLoc.S_CODE}閿佺姸鎬佸け璐�;
                             LogHelper.Info(info);
                             continue;
                         }
@@ -246,20 +283,20 @@
                             it.T_MODIFY
                         }).ExecuteCommand() <= 0) {
                             tran.RollbackTran();
-                            info = $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}";
+                            info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂扮粓鐐硅揣浣峽endLoc.S_CODE}閿佺姸鎬佸け璐�;
                             LogHelper.Info(info);
                             continue;
                         }
 
                         if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) {
                             tran.RollbackTran();
-                            info = $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}";
+                            info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛屽鍣ㄥ彿{cntId}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐硅揣鏋秢endLoc.S_CODE}";
                             LogHelper.Info(info);
                             continue;
                         }
 
                         tran.CommitTran();
-                        info = $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}";
+                        info = $"鐢熸垚浠诲姟'{taskName}'鎴愬姛锛屽鍣ㄥ彿{cntId}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐硅揣鏋秢endLoc.S_CODE}";
                         LogHelper.Info(info);
                         continue;
                     }
@@ -304,7 +341,7 @@
                         .ToList();
 
                     if (checkDetailList.Count == 0) {
-                        LogHelper.Info($"杞--");
+                        LogHelper.Info($"杞--{taskName}--浠嶆湁浠诲姟鏈墽琛屽畬鎴愶紝浣嗗綋鍓嶆病鏈夊凡涓嬪彂鐨勪换鍔�);
                         continue;
                     }
 
@@ -339,8 +376,8 @@
                     var cntId = detail.S_CNTR_CODE;
                     var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName);
 
-                    LocationHelper.LockLoc(ref startLoc, 1); // 璧风偣鍑哄簱閿�-                    LocationHelper.LockLoc(ref endLoc, 2); // 缁堢偣鍏ュ簱閿�+                    LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�+                    LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿� 
                     using (var tran = db.Ado.UseTran()) {
                         if (db.Updateable<TN_Shift_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) {
@@ -356,7 +393,7 @@
                             it.T_MODIFY
                         }).ExecuteCommand() <= 0) {
                             tran.RollbackTran();
-                            info = $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}";
+                            info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂拌捣鐐硅揣浣峽startLoc.S_CODE}閿佺姸鎬佸け璐�;
                             LogHelper.Info(info);
                             continue;
                         }
@@ -368,20 +405,20 @@
                             it.T_MODIFY
                         }).ExecuteCommand() <= 0) {
                             tran.RollbackTran();
-                            info = $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}";
+                            info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂扮粓鐐硅揣浣峽endLoc.S_CODE}閿佺姸鎬佸け璐�;
                             LogHelper.Info(info);
                             continue;
                         }
 
                         if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) {
                             tran.RollbackTran();
-                            info = $"鐢熸垚 {taskName} 澶辫触锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}";
+                            info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛屽鍣ㄥ彿{cntId}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐硅揣鏋秢endLoc.S_CODE}";
                             LogHelper.Info(info);
                             continue;
                         }
 
                         tran.CommitTran();
-                        info = $"鐢熸垚 {taskName} 鎴愬姛锛屽鍣ㄥ彿 {cntId} 锛岃捣鐐�{startLoc.S_CODE} 锛岀粓鐐硅揣浣�{endLoc.S_CODE}";
+                        info = $"鐢熸垚浠诲姟'{taskName}'鎴愬姛锛屽鍣ㄥ彿{cntId}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐硅揣鏋秢endLoc.S_CODE}";
                         LogHelper.Info(info);
                         continue;
                     }

--
Gitblit v1.9.1