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