From 2ca90a404fa1ab94eb6374f50c6ddd47a2b7f0e6 Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期四, 31 七月 2025 17:23:57 +0800 Subject: [PATCH] 删除有问题的TCP旧代码, 优化事务处理和ERP数据模型 --- core/Monitor.cs | 146 ++++++++++++++---------------------------------- 1 files changed, 42 insertions(+), 104 deletions(-) diff --git a/core/Monitor.cs b/core/Monitor.cs index da491d5..86fafc7 100644 --- a/core/Monitor.cs +++ b/core/Monitor.cs @@ -69,7 +69,9 @@ public static void CheckOutboundOrder() { var db = new SqlHelper<object>().GetInstance(); - var taskInfo = Settings.GetTaskInfo(ETask.C鎴愬搧鑳跺嚭搴�; + var (ok, msg) = (false, string.Empty); + + var taskInfo = ETask.C鎴愬搧鑳跺嚭搴�Info(); var taskName = "鍑哄簱"; const string preLog = "杞:鍑哄簱:"; @@ -139,41 +141,22 @@ } detail.N_B_STATE = 2; + detail.T_MODIFY = DateTime.Now; - var cntId = detail.S_CNTR_CODE; - - var task = WCSHelper.BuildTaskWithLocLock(startLoc, endLoc, cntId, taskName); + var task = WCSHelper.BuildTaskAndLockLoc(startLoc, endLoc, detail.S_CNTR_CODE, taskName); task.S_OP_CODE = detail.S_OO_NO; if (string.IsNullOrEmpty(detail.S_BS_NO)) { task.S_BS_NO = detail.S_BS_NO; task.S_BS_TYPE = "ERP"; } - using (var tran = db.Ado.UseTran()) { - if (db.Updateable(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info($"杞:{taskName}:淇敼鏄庣粏琛ㄧ姸鎬佷负瀹屾垚--澶辫触!"); - continue; - } - - // 鏇存柊[璧风偣/缁堢偣]閿佺姸鎬�鍒涘缓浠诲姟 - if (db.Updateable(startLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, it.N_CURRENT_NUM, }).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info(preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触!璧风偣='{startLoc.S_CODE}',閿佺姸鎬�>'鍑哄簱閿�"); - } - if (db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info(preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触!缁堢偣='{endLoc.S_CODE}',閿佺姸鎬�>'鍏ュ簱閿�"); - } - if (db.Insertable(task).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info(preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); - } - - // 鎻愪氦鏁版嵁搴撴洿鏀�- tran.CommitTran(); - LogHelper.Info(preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); - } + (ok, msg) = DbTran.CreateTaskOrderObj(new CreateTaskOrderObj { + OutboundDetailToUpdate = detail, + StartLocToUpdate = startLoc, + EndLocToUpdate = endLoc, + TaskToInsert = task, + }); + LogHelper.Info(preLog + msg); // 濡傛灉褰撳墠鍑哄簱鍗曟槑缁嗘槸ERP涓嬪彂鐨�浠诲姟鍒涘缓瀹屾垚鍙嶉璐т綅淇℃伅 if (detail.S_BS_TYPE == "ERP") { @@ -193,7 +176,9 @@ public static void CheckCheckOrder() { var db = new SqlHelper<object>().GetInstance(); - var taskInfo = Settings.GetTaskInfo(ETask.C鎶芥鍑哄簱); + var (ok, msg) = (false, string.Empty); + + var taskInfo = ETask.C鎶芥鍑哄簱.Info(); var taskName = taskInfo.TaskName; const string preLog = "杞:鎶芥:"; @@ -250,40 +235,19 @@ } detail.N_B_STATE = 2; + detail.T_MODIFY = DateTime.Now; var cntId = detail.S_CNTR_CODE; - var task = WCSHelper.BuildTaskWithLocLock(startLoc, endLoc, cntId, taskName); + var task = WCSHelper.BuildTaskAndLockLoc(startLoc, endLoc, cntId, taskName); task.S_OP_CODE = detail.S_OO_NO; - using (var tran = db.Ado.UseTran()) { - if (db.Updateable(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info(preLog + $"淇敼{taskName}鍗曟槑缁嗚〃鐘舵�涓哄畬鎴�-澶辫触!"); - continue; - } - - if (db.Updateable(startLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, it.N_CURRENT_NUM, }).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info(preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触!璧风偣='{startLoc.S_CODE}',閿佺姸鎬�>'鍑哄簱閿�"); - continue; - } - - if (db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info(preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触!缁堢偣='{endLoc.S_CODE}',閿佺姸鎬�>'鍏ュ簱閿�"); - continue; - } - - if (db.Insertable(task).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info(preLog + $"鐢熸垚浠诲姟'{taskName}'澶辫触,浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{cntId},璧风偣={startLoc.S_CODE},缁堢偣={endLoc.S_CODE}"); - continue; - } - - tran.CommitTran(); - LogHelper.Info(preLog + $"鐢熸垚浠诲姟'{taskName}'鎴愬姛,浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{cntId},璧风偣={startLoc.S_CODE},缁堢偣={endLoc.S_CODE}"); - continue; - } + (ok, msg) = DbTran.CreateTaskOrderObj(new CreateTaskOrderObj { + SpotCheckDetailToUpdate = detail, + StartLocToUpdate = startLoc, + EndLocToUpdate = endLoc, + TaskToInsert = task, + }); + LogHelper.Info(preLog + msg); } } catch (Exception ex) { @@ -293,7 +257,9 @@ public static void CheckShiftOrder() { var db = new SqlHelper<object>().GetInstance(); - var taskInfo = Settings.GetTaskInfo(ETask.Y绉诲簱); + var (ok, msg) = (false, string.Empty); + + var taskInfo = ETask.Y绉诲簱.Info(); var taskName = taskInfo.TaskName; const string preLog = "杞:绉诲簱:"; @@ -337,63 +303,35 @@ } 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 => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") // 绛涢�:鏈笂閿�- .Where(l => l.N_CURRENT_NUM == 1) - .First(); + var startLoc = db.Queryable<TN_Location>().LeftJoin<TN_Loc_Container>((l, c) => l.S_CODE == c.S_LOC_CODE) + .Where(DbExpr.StartLoc()).Where((l, c) => c.S_CNTR_CODE == detail.S_CNTR_CODE).First(); if (startLoc == null) { - LogHelper.Info(preLog + $"娌℃湁鎵惧埌缁堢偣璐т綅={detail.S_END_AREA}鐨勭粓鐐硅揣浣�闇�婊¤冻:鏈笂閿�褰撳墠瀹瑰櫒鏁伴噺=0"); + LogHelper.Info(preLog + LogMsg.StartLocNotFound() + $"缁戝畾瀹瑰櫒='{detail.S_CNTR_CODE}'"); continue; } var endLoc = db.Queryable<TN_Location>() - .Where(l => l.S_AREA_CODE == detail.S_END_AREA) - .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") // 绛涢�:鏈笂閿�- .Where(a => a.N_CURRENT_NUM == 0).First(); - + .Where(DbExpr.EndLoc(areas: new List<string> { detail.S_END_AREA })).First(); if (endLoc == null) { - LogHelper.Info(preLog + $"娌℃湁鎵惧埌缁堢偣璐т綅={detail.S_END_AREA}鐨勭粓鐐硅揣浣�闇�婊¤冻:鏈笂閿�褰撳墠瀹瑰櫒鏁伴噺=0"); + LogHelper.Info(preLog + LogMsg.EndLocNotFound(areas: new List<string> { detail.S_END_AREA })); continue; } detail.N_B_STATE = 2; + detail.T_MODIFY = DateTime.Now; var cntId = detail.S_CNTR_CODE; - var task = WCSHelper.BuildTaskWithLocLock(startLoc, endLoc, cntId, taskName); + var task = WCSHelper.BuildTaskAndLockLoc(startLoc, endLoc, cntId, taskName); task.S_OP_CODE = detail.S_OO_NO; - using (var tran = db.Ado.UseTran()) { - if (db.Updateable(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info($"杞:{taskName}:淇敼{taskName}鍗曟槑缁嗚〃鐘舵�涓哄畬鎴�-澶辫触!"); - continue; - } - - if (db.Updateable(startLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, it.N_CURRENT_NUM, }).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info(preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触!璧风偣='{startLoc.S_CODE}',閿佺姸鎬�>'鍑哄簱閿�"); - continue; - } - - if (db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info(preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触!缁堢偣='{endLoc.S_CODE}',閿佺姸鎬�>'鍏ュ簱閿�"); - continue; - } - - if (db.Insertable(task).ExecuteCommand() <= 0) { - tran.RollbackTran(); - LogHelper.Info(preLog + $"鐢熸垚浠诲姟'{taskName}'澶辫触,浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{cntId},璧风偣={startLoc.S_CODE},缁堢偣={endLoc.S_CODE}"); - continue; - } - - tran.CommitTran(); - LogHelper.Info(preLog + $"鐢熸垚浠诲姟'{taskName}'鎴愬姛,浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{cntId},璧风偣={startLoc.S_CODE},缁堢偣={endLoc.S_CODE}"); - continue; - } + (ok, msg) = DbTran.CreateTaskOrderObj(new CreateTaskOrderObj { + RelocationDetailToUpdate = detail, + StartLocToUpdate = startLoc, + EndLocToUpdate = endLoc, + TaskToInsert = task, + }); + LogHelper.Info(preLog + msg); } } catch (Exception ex) { @@ -422,7 +360,7 @@ LogHelper.Info($"璁″垝鍗曞彿{task.S_BS_NO}涓嶅瓨鍦�"); } - var model = new OtherModel.CreateTaskReturnErpInfo { + var model = new ErpModel.CreateTaskReturnErpInfo { jhdh = plan.JHDH , // 璁″垝鍗曞彿 (鍞竴鏍囪瘑) ckzt = plan.CKZT , // 鍑哄簱鐘舵� (闇�杩斿洖) jhlb = plan.JHLB , // 璁″垝绫诲埆 -- Gitblit v1.9.1