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数据模型 --- wms/DbTran.cs | 66 ++++++++++++++++++++++++++++++++- 1 files changed, 64 insertions(+), 2 deletions(-) diff --git a/wms/DbTran.cs b/wms/DbTran.cs index e5b0be1..0ca7eb8 100644 --- a/wms/DbTran.cs +++ b/wms/DbTran.cs @@ -94,6 +94,59 @@ return (true, $"鐢熸垚浠诲姟'{obj.TaskToInsert.S_TYPE}'鎴愬姛!!浠诲姟鍙�'{obj.TaskToInsert.S_CODE}',瀹瑰櫒鍙�'{obj.TaskToInsert.S_CNTR_CODE}',璧风偣='{obj.TaskToInsert.S_START_LOC}',缁堢偣='{obj.TaskToInsert.S_END_LOC}'"); } } + + /// <summary> + /// 鏁版嵁搴撲簨鍔�: 娑夊強鍗曟嵁鏄庣粏鏇存柊鐨勪换鍔″垱寤�+ /// </summary> + /// <param name="obj"></param> + /// <remarks><b>[ 瑕佹眰 ]</b> obj 鈮�null ; obj.TaskToInsert 鈮�null</remarks> + /// <returns></returns> + /// <exception cref="ArgumentException"></exception> + public static (bool, string) CreateTaskOrderObj(CreateTaskOrderObj obj) { + var db = new SqlHelper<object>().GetInstance(); + + using (var tran = db.Ado.UseTran()) { + + if (obj.OutboundDetailToUpdate != null && db.Updateable(obj.OutboundDetailToUpdate).UpdateColumns(it => new { it.N_B_STATE, it.T_MODIFY }).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return (false, $"鏇存柊[鏄庣粏琛╙[鐘舵�]涓篬瀹屾垚]澶辫触!!鏁版嵁:\n\n{JsonConvert.SerializeObject(obj.OutboundDetailToUpdate)}\n"); + } + + if (obj.SpotCheckDetailToUpdate != null && db.Updateable(obj.SpotCheckDetailToUpdate).UpdateColumns(it => new { it.N_B_STATE, it.T_MODIFY }).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return (false, $"鏇存柊[鏄庣粏琛╙[鐘舵�]涓篬瀹屾垚]澶辫触!!鏁版嵁:\n\n{JsonConvert.SerializeObject(obj.SpotCheckDetailToUpdate)}\n"); + } + + if (obj.RelocationDetailToUpdate != null && db.Updateable(obj.RelocationDetailToUpdate).UpdateColumns(it => new { it.N_B_STATE, it.T_MODIFY }).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return (false, $"鏇存柊[鏄庣粏琛╙[鐘舵�]涓篬瀹屾垚]澶辫触!!鏁版嵁:\n\n{JsonConvert.SerializeObject(obj.RelocationDetailToUpdate)}\n"); + } + + #region 鍒涘缓浠诲姟 + 璐т綅閿�+ if (obj.StartLocToUpdate != null && db.Updateable(obj.StartLocToUpdate).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(); + return (false, $"鏇存柊[璧风偣璐т綅][閿佺姸鎬乚澶辫触!!璧风偣='{obj.StartLocToUpdate.S_CODE}',閿佺姸鎬�>'{obj.StartLocToUpdate.S_LOCK_STATE}'"); + } + if (obj.EndLocToUpdate != null && db.Updateable(obj.EndLocToUpdate).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return (false, $"鏇存柊[缁堢偣璐т綅][閿佺姸鎬乚澶辫触!!缁堢偣='{obj.EndLocToUpdate.S_CODE}',閿佺姸鎬�>'{obj.EndLocToUpdate.S_LOCK_STATE}'"); + } + if (obj.TaskToInsert == null) { + tran.RollbackTran(); + throw new ArgumentException("鏁版嵁搴撲簨鍔″鐞�寰呮彃鍏ョ殑[浠诲姟]涓虹┖!!"); // 寰呮彃鍏ョ殑浠诲姟涓嶅瓨鍦�鐩存帴鎶涘嚭寮傚父 + } + if (db.Insertable(obj.TaskToInsert).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return (false, $"鐢熸垚浠诲姟'{obj.TaskToInsert.S_TYPE}'澶辫触!!浠诲姟鍙�'{obj.TaskToInsert.S_CODE}',瀹瑰櫒鍙�'{obj.TaskToInsert.S_CNTR_CODE}',璧风偣='{obj.TaskToInsert.S_START_LOC}',缁堢偣='{obj.TaskToInsert.S_END_LOC}'"); + } + #endregion + + // 鎻愪氦鏁版嵁搴撴洿鏀�+ tran.CommitTran(); + return (true, $"鐢熸垚浠诲姟'{obj.TaskToInsert.S_TYPE}'鎴愬姛!!浠诲姟鍙�'{obj.TaskToInsert.S_CODE}',瀹瑰櫒鍙�'{obj.TaskToInsert.S_CNTR_CODE}',璧风偣='{obj.TaskToInsert.S_START_LOC}',缁堢偣='{obj.TaskToInsert.S_END_LOC}'"); + } + } + } public class CreateTaskObj { @@ -119,8 +172,17 @@ public TN_CG_Detail CgDetailToUpdate { get; set; } = null; } - public class DbTranObj { - public List<TN_Location> LocListToUpdate { get; set; } + public class CreateTaskOrderObj { + + #region 璧风偣璐т綅 / 缁堢偣璐т綅 / 浠诲姟 + public TN_Location StartLocToUpdate { get; set; } = null; + public TN_Location EndLocToUpdate { get; set; } = null; + public TN_Task TaskToInsert { get; set; } = null; + #endregion + + public TN_Outbound_Detail OutboundDetailToUpdate { get; set; } = null; + public TN_SpotCheck_Detail SpotCheckDetailToUpdate { get; set; } = null; + public TN_RelocationList_Detail RelocationDetailToUpdate { get; set; } = null; } } -- Gitblit v1.9.1