From b079910e5de15863c26e479ffab15cc45d706f1a Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期一, 19 五月 2025 16:25:22 +0800 Subject: [PATCH] 测试修复轮询出库、抽检流程的问题 --- ServiceCore/CheckCore.cs | 43 +++++++++++++++++++++++-------------------- 1 files changed, 23 insertions(+), 20 deletions(-) diff --git a/ServiceCore/CheckCore.cs b/ServiceCore/CheckCore.cs index fec6b9e..eae3ca4 100644 --- a/ServiceCore/CheckCore.cs +++ b/ServiceCore/CheckCore.cs @@ -7,14 +7,15 @@ namespace HH.WCS.Mobox3.DSZSH.ServiceCore { public class CheckCore { public static void CheckOrderState() { + var db = DbHelper.GetDbClient(); try { - var order = db.Queryable<TN_Check_Order>() + var order = db.Queryable<TN_Check_Detail>() .Where(c => c.N_B_STATE == SpotStateCode.宸叉墽琛屽緟鐢熸垚浠诲姟) .OrderBy(c => c.T_CREATE, SqlSugar.OrderByType.Asc).First(); if (order == null) { - LogHelper.Info("鏆傛棤寰呮墽琛岀殑鎶芥鍗�); + LogHelper.Info("杞--鎶芥--鏆傛棤寰呮墽琛岀殑Order"); return; } @@ -28,16 +29,6 @@ } foreach (var detail in detailList) { - var startLocCntrRel = db.Queryable<TN_Location, TN_Loc_Container, TN_CG_Detail> - ((l, c, d) => l.S_CODE == c.S_LOC_CODE && c.S_CNTR_CODE == d.S_CNTR_CODE) - .Where((l, c, d) => d.S_ITEM_CODE == detail.S_CG_ID && d.S_BATCH_NO == detail.S_BATCH_NO) - .Select((l, c) => c) // 閫夋嫨 LocCntrRel - .First(); // 闅忔満鎶芥锛屼笉鎺掑簭 - - if (startLocCntrRel == null) { - LogHelper.Info("娌℃湁鎵惧埌鍚堥�鐨勮捣鐐硅揣浣�); - continue; - } var endLoc = db.Queryable<TN_Location>() .Where(l => l.S_AREA_CODE == detail.S_END_AREA) @@ -45,7 +36,7 @@ .Where(ExprHelper.LocIsEmpty).First(); if (endLoc == null) { - LogHelper.Info("鏌ヨ锛氭病鏈夋壘鍒板悎閫傜殑缁堢偣璐т綅"); + LogHelper.Info("杞--鎶芥锛氭病鏈夋壘鍒板悎閫傜殑缁堢偣璐т綅锛�); continue; } @@ -53,10 +44,10 @@ detail.N_B_STATE = SpotStateCode.浠诲姟鎵ц涓� if (db.Updateable<TN_Check_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) { tran.RollbackTran(); - LogHelper.Info($"鏇存柊澶辫触锛氫慨鏀规娊妫�崟鏄庣粏琛ㄧ姸鎬佷负瀹屾垚"); + LogHelper.Info($"杞--鎶芥锛氫慨鏀规娊妫�崟鏄庣粏琛ㄧ姸鎬佷负瀹屾垚--澶辫触锛�); } - if (TaskHelper.LogCreateTask(startLocCntrRel.S_LOC_CODE, startLocCntrRel.S_CNTR_CODE, + if (TaskHelper.LogCreateTask(detail.S_LOC_CODE, detail.S_CNTR_CODE, endLoc.S_CODE, TaskName.鎶芥_鍑哄簱)) { tran.CommitTran(); } @@ -72,33 +63,45 @@ } public static void UpdateTaskState(int spotStateCode) { + var db = DbHelper.GetDbClient(); var detail = db.Queryable<TN_Check_Detail>() .First(d => d.N_B_STATE == SpotStateCode.浠诲姟鎵ц涓�; if (detail == null) { - LogHelper.Info("褰撳墠娌℃湁鎵ц涓殑鎶芥鍗曟槑缁嗛」鐩�); + LogHelper.Info("鎶芥--AGV浠诲姟瀹屾垚--鏌ヨDetail锛氬綋鍓嶆病鏈�鎵ц涓�鐨凞etail琛紒"); return; } using (var tran = db.Ado.UseTran()) { detail.N_B_STATE = spotStateCode; - db.Updateable<TN_Check_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand(); + if (db.Updateable<TN_Check_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) { + tran.RollbackTran(); + LogHelper.Info("鎶芥--AGV浠诲姟瀹屾垚锛氫慨鏀笵etail鐘舵� N_B_STATE 涓�3浠诲姟鎵ц瀹屾垚 澶辫触锛�); + return; + } - if (db.Queryable<TN_Check_Detail>().Count(d => d.S_NO == detail.S_NO && d.N_B_STATE == 2) == - db.Queryable<TN_Check_Detail>().Count(d => d.S_NO == detail.S_NO)) { + var finishedCount = db.Queryable<TN_Check_Detail>().Count(d => d.S_NO == detail.S_NO && d.N_B_STATE == 3); + var allCount = db.Queryable<TN_Check_Detail>().Count(d => d.S_NO == detail.S_NO); + + LogHelper.Info($"鎶芥--AGV浠诲姟瀹屾垚锛氱粺璁′换鍔″凡瀹屾垚锛歿finishedCount} / {allCount}"); + + if (finishedCount == allCount) { // 褰撳墠order涓嬬殑detail锛屼换鍔¢兘宸茬粡瀹屾垚 if (db.Updateable<TN_Check_Order>().SetColumns(it => it.N_B_STATE == SpotStateCode.浠诲姟鎵ц瀹屾垚) .Where(it => it.S_NO == detail.S_NO) .ExecuteCommand() <= 0) { + tran.RollbackTran(); - LogHelper.Info("淇敼Order鐘舵�閿欒"); + LogHelper.Info("鎶芥--AGV浠诲姟瀹屾垚--鎵�湁浠诲姟瀹屾垚鏃讹細淇敼Order鐘舵� N_B_STATE 涓�3浠诲姟鎵ц瀹屾垚 澶辫触锛�); + return; } } tran.CommitTran(); } } + } } -- Gitblit v1.9.1