From d944fda9f2fbf27d83e8fdf880e8fe5267e1f541 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期三, 04 六月 2025 17:24:13 +0800
Subject: [PATCH] 优化空托空箱入库兼容出库容器回库场景,修复货位容器绑定的类型丢失问题

---
 core/Monitor.cs |   55 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 30 insertions(+), 25 deletions(-)

diff --git a/core/Monitor.cs b/core/Monitor.cs
index 50fd5a9..0f935e1 100644
--- a/core/Monitor.cs
+++ b/core/Monitor.cs
@@ -77,6 +77,7 @@
                         cntrItemRel = new TN_Container_ItemType {
                             S_ITEM_CODE = itemCode,
                             S_CNTR_CODE = cntrCode,
+                            S_CNTR_TYPE = "鎵樼洏",
                         };
                     }
                     // END
@@ -124,8 +125,8 @@
                     var cntId = locCntrRel.S_CNTR_CODE;
                     var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName);
 
-                    LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�-                    LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�+                    LocationHelper.LockStartLoc(ref startLoc); // 璧风偣鍑哄簱閿�+                    LocationHelper.LockEndLoc(ref endLoc); // 缁堢偣鍏ュ簱閿� 
                     using (var tran = db.Ado.UseTran()) {
                         if (db.Insertable<TN_CG_Detail>(cgDetail).ExecuteCommand() <= 0) {
@@ -207,9 +208,10 @@
         }
 
         public static void CheckOutboundOrder() {
-            var taskName = TaskName.C鎴愬搧鑳跺嚭搴�
             var db = new SqlHelper<object>().GetInstance();
-            var info = $"杞--{taskName}--";
+            var info = "";
+
+            var taskName = TaskName.C鎴愬搧鑳跺嚭搴�
 
             try {
                 var orderList = db.Queryable<TN_Outbound_Order>()
@@ -218,7 +220,7 @@
                     .ToList();
 
                 if (orderList.Count == 0) {
-                    info += $"鏆傛棤寰呮墽琛岀殑{taskName}鍗�;
+                    info = $"杞锛歿taskName}锛氭殏鏃犲緟鎵ц鐨剓taskName}鍗�;
                     LogHelper.Info(info);
                     return;
                 }
@@ -229,7 +231,7 @@
                         .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);
-                    info += $"缁熻{taskName}鍗�{order.S_NO}'浠诲姟宸蹭笅鍙戯細{doingCount}/{allCount}";
+                    info = $"杞锛歿taskName}锛氱粺璁taskName}鍗�{order.S_NO}'浠诲姟宸蹭笅鍙戯細{doingCount}/{allCount}";
                     LogHelper.Info(info);
 
                     if (doingCount == allCount) {
@@ -243,7 +245,7 @@
                         .First();
 
                     if (lastDetail != null) {
-                        info += $"{taskName}鍗�{order.S_NO}'涓婁竴涓换鍔′粛鍦ㄨ繘琛屼腑锛� + JsonConvert.SerializeObject(lastDetail);
+                        info = $"杞锛歿taskName}锛歿taskName}鍗�{order.S_NO}'涓婁竴涓换鍔′粛鍦ㄨ繘琛屼腑锛� + JsonConvert.SerializeObject(lastDetail);
                         LogHelper.Info(info);
                         continue;
                     }
@@ -253,7 +255,7 @@
                         .First();
 
                     if (outboundDetail == null) {
-                        info += $"浠嶆湁浠诲姟鏈墽琛屽畬鎴愶紝浣嗗綋鍓嶆病鏈夊凡涓嬪彂鐨勪换鍔�;
+                        info = $"杞锛歿taskName}锛氫粛鏈変换鍔℃湭鎵ц瀹屾垚锛屼絾褰撳墠娌℃湁宸蹭笅鍙戠殑浠诲姟";
                         LogHelper.Info(info);
                         continue;
                     }
@@ -269,13 +271,14 @@
                 foreach (var detail in detailList) {
                     var startLoc = db.Queryable<TN_Location>()
                         .LeftJoin<TN_Loc_Container>((l, c) => l.S_CODE == c.S_LOC_CODE)
-                        .Where((l, c) => c.S_CNTR_CODE == detail.S_CNTR_CODE)
+                        .Where((l, c) => c.S_CNTR_CODE == detail.S_CNTR_CODE) // 鏍规嵁瀹瑰櫒鍙锋悳绱㈣捣鐐硅揣浣�                         .Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") // 绛涢�锛氭湭涓婇攣
                         .Where(l => l.N_CURRENT_NUM == 1)
                         .First();
 
                     if (startLoc == null) {
-                        LogHelper.Info($"杞--{taskName}锛氭病鏈夋壘鍒板悎閫傜殑璧风偣璐т綅锛�);
+                        info = $"杞锛歿taskName}锛氭病鏈夋壘鍒板悎閫傜殑璧风偣璐т綅锛�;
+                        LogHelper.Info(info);
                         continue;
                     }
 
@@ -285,7 +288,8 @@
                         .Where(a => a.N_CURRENT_NUM == 0).First();
 
                     if (endLoc == null) {
-                        LogHelper.Info($"杞--{taskName}锛氭病鏈夋壘鍒板悎閫傜殑缁堢偣璐т綅锛佸崟鍙�{detail.S_OO_NO}'瑕佹眰缁堢偣搴撳尯涓�{detail.S_END_AREA}'");
+                        info = $"杞锛歿taskName}锛氭病鏈夋壘鍒板悎閫傜殑缁堢偣璐т綅锛佸崟鍙�{detail.S_OO_NO}'瑕佹眰缁堢偣搴撳尯涓�{detail.S_END_AREA}'";
+                        LogHelper.Info(info);
                         continue;
                     }
                     
@@ -294,13 +298,13 @@
                     var cntId = detail.S_CNTR_CODE;
                     var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName);
 
-                    LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�-                    LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�+                    LocationHelper.LockStartLoc(ref startLoc); // 璧风偣鍑哄簱閿�+                    LocationHelper.LockEndLoc(ref endLoc); // 缁堢偣鍏ュ簱閿� 
                     using (var tran = db.Ado.UseTran()) {
                         if (db.Updateable<TN_Outbound_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) {
                             tran.RollbackTran();
-                            info += $"淇敼鏄庣粏琛ㄧ姸鎬佷负瀹屾垚--澶辫触锛�;
+                            info = $"杞锛歿taskName}锛氫慨鏀规槑缁嗚〃鐘舵�涓哄畬鎴�-澶辫触锛�;
                             LogHelper.Info(info);
                             continue;
                         }
@@ -312,7 +316,7 @@
                             it.T_MODIFY
                         }).ExecuteCommand() <= 0) {
                             tran.RollbackTran();
-                            info += $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂拌捣鐐硅揣浣峽startLoc.S_CODE}閿佺姸鎬佸け璐�;
+                            info = $"杞锛歿taskName}锛氱敓鎴愪换鍔�{taskName}'澶辫触锛氭洿鏂拌捣鐐硅揣浣峽startLoc.S_CODE}閿佺姸鎬佸け璐�;
                             LogHelper.Info(info);
                             continue;
                         }
@@ -324,20 +328,20 @@
                             it.T_MODIFY
                         }).ExecuteCommand() <= 0) {
                             tran.RollbackTran();
-                            info += $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂扮粓鐐硅揣浣峽endLoc.S_CODE}閿佺姸鎬佸け璐�;
+                            info = $"杞锛歿taskName}锛氱敓鎴愪换鍔�{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}锛氱敓鎴愪换鍔�{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}锛氱敓鎴愪换鍔�{taskName}'鎴愬姛锛屽鍣ㄥ彿{cntId}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐硅揣鏋秢endLoc.S_CODE}";
                         LogHelper.Info(info);
                         continue;
                     }
@@ -376,15 +380,16 @@
 
             }
             catch (Exception ex) {
-                info += $"鍙戠敓浜嗗紓甯革細{ex.Message}";
+                info = $"杞锛歿taskName}锛氬彂鐢熶簡寮傚父锛歿ex.Message}";
                 LogHelper.InfoEx(ex);
             }
         }
 
         public static void CheckCheckOrder() {
-            var taskName = TaskName.C鎶芥_鍑哄簱;
             var db = new SqlHelper<object>().GetInstance();
             var info = "";
+
+            var taskName = TaskName.C鎶芥_鍑哄簱;
 
             try {
                 var orderList = db.Queryable<TN_Spot_Check>()
@@ -393,7 +398,7 @@
                     .ToList();
 
                 if (orderList.Count == 0) {
-                    LogHelper.Info($"杞--{taskName}--鏆傛棤寰呮墽琛岀殑{taskName}鍗�);
+                    LogHelper.Info($"杞锛歿taskName}锛氭殏鏃犲緟鎵ц鐨剓taskName}鍗�);
                     return;
                 }
 
@@ -451,8 +456,8 @@
                     var cntId = detail.S_CNTR_CODE;
                     var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName);
 
-                    LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�-                    LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�+                    LocationHelper.LockStartLoc(ref startLoc); // 璧风偣鍑哄簱閿�+                    LocationHelper.LockEndLoc(ref endLoc); // 缁堢偣鍏ュ簱閿� 
                     using (var tran = db.Ado.UseTran()) {
                         if (db.Updateable<TN_SpotCheck_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) {
@@ -575,8 +580,8 @@
                     var cntId = detail.S_CNTR_CODE;
                     var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName);
 
-                    LocationHelper.LockLoc(ref startLoc, 2); // 璧风偣鍑哄簱閿�-                    LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�+                    LocationHelper.LockStartLoc(ref startLoc); // 璧风偣鍑哄簱閿�+                    LocationHelper.LockEndLoc(ref endLoc); // 缁堢偣鍏ュ簱閿� 
                     using (var tran = db.Ado.UseTran()) {
                         if (db.Updateable<TN_RelocationList_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) {

--
Gitblit v1.9.1