From 2d3ee03961d6cfbde70342e8a97bc7b05d0b0dc3 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期一, 21 七月 2025 17:27:34 +0800
Subject: [PATCH] 优化代码, 封装货位锁和创建任务流程, 数据库事务等

---
 core/WCSCore.cs |   75 +++++++++----------------------------
 1 files changed, 19 insertions(+), 56 deletions(-)

diff --git a/core/WCSCore.cs b/core/WCSCore.cs
index 5f1e56a..801e745 100644
--- a/core/WCSCore.cs
+++ b/core/WCSCore.cs
@@ -113,7 +113,6 @@
 
         private static void RecordTaskTable(TN_Task task) {
             var db = new SqlHelper<object>().GetInstance();
-            var info = "";
 
             try {
                 var cgDetail = new TN_CG_Detail(); // 濡傛灉娌℃湁淇℃伅,榛樿灏辨槸绌哄�,鍙互鐩存帴濉叆,涓嶉渶瑕佸垽鏂�@@ -128,8 +127,7 @@
                         .First();
 
                     if (cgDetail == null) {
-                        info = $"浠诲姟{task.S_CODE}瀹屾垚,璁板綍鍑哄叆搴撳瓨鍦ㄩ棶棰�鏃犳硶鍦ㄥ鍣ㄨ揣鍝佹槑缁嗚〃涓壘鍒版墭鐩榹task.S_CNTR_CODE}瀵瑰簲鐨勭墿鏂�;
-                        LogHelper.Info(info);
+                        LogHelper.Info($"浠诲姟{task.S_CODE}瀹屾垚,璁板綍鍑哄叆搴撳瓨鍦ㄩ棶棰�鏃犳硶鍦ㄥ鍣ㄨ揣鍝佹槑缁嗚〃涓壘鍒版墭鐩榹task.S_CNTR_CODE}瀵瑰簲鐨勭墿鏂�);
                         //return;
                         cgDetail = new TN_CG_Detail() ;
                         cgDetail.S_ITEM_CODE = "寮傚父";
@@ -150,8 +148,7 @@
                     .Where(r => r.S_TASK_NO == task.S_CODE).First();
                 if (record != null) {
                     //needUpdateRecordTable = true;
-                    info = $"鍑哄叆搴撹褰曡〃涓凡缁忓瓨鍦ㄤ换鍔″彿{task.S_CODE}"; // 闃叉娴嬭瘯鏃跺弽澶嶈皟鐢�34562瀵艰嚧閲嶅璁板綍
-                    LogHelper.Info(info);
+                    LogHelper.Info($"鍑哄叆搴撹褰曡〃涓凡缁忓瓨鍦ㄤ换鍔″彿{task.S_CODE}"); // 闃叉娴嬭瘯鏃跺弽澶嶈皟鐢�34562瀵艰嚧閲嶅璁板綍
                     return;
                 }
 
@@ -175,13 +172,11 @@
 
                 // 鏁版嵁搴撴搷浣�                 if (db.Insertable(record).ExecuteCommand() <= 0) {
-                    info = "鎻掑叆鍑哄叆搴撹褰曡〃澶辫触:" + JsonConvert.SerializeObject(record);
-                    LogHelper.Info(info);
+                    LogHelper.Info("鎻掑叆鍑哄叆搴撹褰曡〃澶辫触:" + JsonConvert.SerializeObject(record));
                     return;
                 }
 
-                info = "鎻掑叆鍑哄叆搴撹褰曡〃鎴愬姛";
-                LogHelper.Info(info);
+                LogHelper.Info("鎻掑叆鍑哄叆搴撹褰曡〃鎴愬姛");
             }
             catch (Exception ex) {
                 LogHelper.InfoEx(ex);
@@ -313,7 +308,6 @@
 
         public static void PickUpReturnErp(TN_Task task) {
             var db = new SqlHelper<object>().GetInstance();
-            var info = "";
             var httpH = new HttpHelper();
             
             try {
@@ -322,8 +316,7 @@
                     .First();
 
                 if (plan == null) {
-                    info = $"璁″垝鍗曞彿{task.S_BS_NO}涓嶅瓨鍦�";
-                    LogHelper.Info(info);
+                    LogHelper.Info($"璁″垝鍗曞彿{task.S_BS_NO}涓嶅瓨鍦�");
                 }
 
                 var cgDetail = db.Queryable<TN_CG_Detail>()
@@ -331,8 +324,7 @@
                     .First();
 
                 if (cgDetail == null) {
-                    info = $"鐗╂枡缂栫爜涓嶅瓨鍦�";
-                    LogHelper.Info(info);
+                    LogHelper.Info($"鐗╂枡缂栫爜涓嶅瓨鍦�");
                 }
 
                 var model = new OtherModel.PickUpReturnErpInfo {
@@ -402,8 +394,7 @@
                 plan.SFSL = model.sfsl;
                 plan.HWZT = model.hwzt;
                 var success = db.Updateable(plan).UpdateColumns(p => new { p.SFJS, p.SFSL, p.HWZT }).ExecuteCommand() > 0;
-                info = "鏇存柊鍑哄簱璁″垝鍗曡褰曡〃" + (success ? "鎴愬姛" : "澶辫触");
-                LogHelper.Info(info);
+                LogHelper.Info("鏇存柊鍑哄簱璁″垝鍗曡褰曡〃" + (success ? "鎴愬姛" : "澶辫触"));
             }
             catch (Exception ex) {
                 LogHelper.InfoEx(ex);
@@ -496,7 +487,6 @@
         /// <returns></returns>
         public static Result<bool> CreateInboundTask(string startLocCode, string cntrCode) {
             var db = new SqlHelper<object>().GetInstance();
-            var info = "";
 
             var taskInfo = Settings.GetTaskInfo(ETask.M婊℃墭涓嬬嚎鍏ュ簱);
             var taskName = taskInfo.TaskName;
@@ -513,9 +503,7 @@
                 .First();
 
                 if (startLoc == null) {
-                    info = $"娌℃湁鎵惧埌璧风偣璐т綅'{startLocCode}',鎴栦笉婊¤冻瑕佹眰:鏈笂閿�褰撳墠瀹瑰櫒鏁伴噺=0";
-                    LogHelper.Info(info);
-                    return new Result<bool>(false, info);
+                    return NewResult(false, $"娌℃湁鎵惧埌璧风偣璐т綅'{startLocCode}',鎴栦笉婊¤冻瑕佹眰:鏈笂閿�褰撳墠瀹瑰櫒鏁伴噺=0");
                 }
 
                 var locCntrRelOld = db.Queryable<TN_Loc_Container>()
@@ -538,71 +526,46 @@
                     .First();
 
                 if (endLoc == null) {
-                    info = $"娌℃湁鎵惧埌鍚堥�鐨勩�缁堢偣璐т綅銆�闇�婊¤冻瑕佹眰:鏈笂閿�褰撳墠瀹瑰櫒鏁伴噺=0";
-                    LogHelper.Info(info);
-                    return new Result<bool>(false, info);
+                    return NewResult(false, $"娌℃湁鎵惧埌鍚堥�鐨勩�缁堢偣璐т綅銆�闇�婊¤冻瑕佹眰:鏈笂閿�褰撳墠瀹瑰櫒鏁伴噺=0");
                 }
 
                 var cntId = locCntrRel.S_CNTR_CODE;
                 var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName);
 
-                WCSHelper.LockStartLoc(ref startLoc); // 璧风偣鍑哄簱閿�-                WCSHelper.LockEndLoc(ref endLoc); // 缁堢偣鍏ュ簱閿�+                WCSHelper.LockStartLoc(startLoc); // 璧风偣鍑哄簱閿�+                WCSHelper.LockEndLoc(endLoc); // 缁堢偣鍏ュ簱閿� 
                 using (var tran = db.Ado.UseTran()) {
                     if (locCntrRelOld != null) {
                         if (db.Deleteable(locCntrRelOld).ExecuteCommand() <= 0 &&
                             db.Updateable<TN_Location>().SetColumns(l => l.N_CURRENT_NUM == 0).Where(l => l.S_CODE == locCntrRelOld.S_LOC_CODE).ExecuteCommand() <= 0) {
                             tran.RollbackTran();
-                            info = $"鍒犻櫎鏃ц揣浣嶅鍣ㄥ叧绯昏〃澶辫触:璐т綅缂栫爜{locCntrRelOld.S_LOC_CODE},瀹瑰櫒缂栫爜{locCntrRelOld.S_CNTR_CODE}";
-                            LogHelper.Info(info);
-                            return new Result<bool>(false, info);
+                            return NewResult(false, $"鍒犻櫎鏃ц揣浣嶅鍣ㄥ叧绯昏〃澶辫触:璐т綅缂栫爜{locCntrRelOld.S_LOC_CODE},瀹瑰櫒缂栫爜{locCntrRelOld.S_CNTR_CODE}");
                         }
                     }
 
                     if (db.Insertable(locCntrRel).ExecuteCommand() <= 0) {
                         tran.RollbackTran();
-                        info = $"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄥけ璐�璐т綅缂栫爜{locCntrRel.S_LOC_CODE},瀹瑰櫒缂栫爜{locCntrRel.S_CNTR_CODE}";
-                        LogHelper.Info(info);
-                        return new Result<bool>(false, info);
+                        return NewResult(false, $"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄥけ璐�璐т綅缂栫爜{locCntrRel.S_LOC_CODE},瀹瑰櫒缂栫爜{locCntrRel.S_CNTR_CODE}");
                     }
 
-                    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) {
+                    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();
-                        info = $"鐢熸垚浠诲姟'{taskName}'澶辫触:鏇存柊璧风偣璐т綅{startLoc.S_CODE}閿佺姸鎬佸け璐�;
-                        LogHelper.Info(info);
-                        return new Result<bool>(false, info);
+                        return NewResult(false, $"鐢熸垚浠诲姟'{taskName}'澶辫触:鏇存柊璧风偣璐т綅{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) {
+                    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();
-                        info = $"鐢熸垚浠诲姟'{taskName}'澶辫触:鏇存柊缁堢偣璐т綅{endLoc.S_CODE}閿佺姸鎬佸け璐�;
-                        LogHelper.Info(info);
-                        return new Result<bool>(false, info);
+                        return NewResult(false, $"鐢熸垚浠诲姟'{taskName}'澶辫触:鏇存柊缁堢偣璐т綅{endLoc.S_CODE}閿佺姸鎬佸け璐�);
                     }
 
                     if (db.Insertable(task).ExecuteCommand() <= 0) {
                         tran.RollbackTran();
-                        info = $"鐢熸垚浠诲姟'{taskName}'澶辫触,浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{cntId},璧风偣={startLoc.S_CODE},缁堢偣={endLoc.S_CODE}";
-                        LogHelper.Info(info);
-                        return new Result<bool>(false, info);
+                        return NewResult(false, $"鐢熸垚浠诲姟'{taskName}'澶辫触,浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{cntId},璧风偣={startLoc.S_CODE},缁堢偣={endLoc.S_CODE}");
                     }
 
                     tran.CommitTran();
-                    info = $"鐢熸垚浠诲姟'{taskName}'鎴愬姛,浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{cntId},璧风偣={startLoc.S_CODE},缁堢偣={endLoc.S_CODE}";
-                    LogHelper.Info(info);
-                    return new Result<bool>(true, info);
+                    return NewResult(true, $"鐢熸垚浠诲姟'{taskName}'鎴愬姛,浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{cntId},璧风偣={startLoc.S_CODE},缁堢偣={endLoc.S_CODE}");
                 }
             }
             catch (Exception ex) {

--
Gitblit v1.9.1