From 279721980221a604d6e3dffa48d13ee9dbd0134a Mon Sep 17 00:00:00 2001 From: lss <Lss@HanInfo> Date: 星期一, 16 六月 2025 18:21:48 +0800 Subject: [PATCH] 优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/WCSHelper.cs | 73 ++++++++++++++++++++++++++++++++---- 1 files changed, 65 insertions(+), 8 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/WCSHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/WCSHelper.cs index c6c002d..35b3f3a 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/WCSHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/wms/WCSHelper.cs @@ -1,6 +1,7 @@ 锘縰sing HH.WCS.JiaTong.util; using System; using System.Collections.Generic; +using System.IdentityModel.Protocols.WSTrust; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -19,8 +20,13 @@ { var res = false; var db = new SqlHelper<WCSTask>().GetInstance(); + if (status == "鍙栬揣瀹屾垚") + { + task.T_START_TIME = DateTime.Now; + } task.S_B_STATE = status; - db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand(); + + db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.T_START_TIME }).ExecuteCommand(); return res; } internal static bool UpdateStatus(WCSTask task) @@ -56,11 +62,16 @@ var task = db.Queryable<WCSTask>().Where(a => a.S_CODE.Trim() == no).First(); return task; } - + /// <summary> + /// 鏍规嵁璧风偣璐т綅鏈畬鎴愮殑浠诲姟 + /// </summary> + /// <param name="loc"></param> + /// <returns></returns> internal static WCSTask GetTaskByStartloc(string loc) { var db = new SqlHelper<WCSTask>().GetInstance(); - var task = db.Queryable<WCSTask>().Where(a => a.S_START_LOC.Trim() == loc && a.S_B_STATE.Trim() != "瀹屾垚").First(); + string[] statue = new string[] { "瀹屾垚", "鍙栨秷", "閿欒" }; + var task = db.Queryable<WCSTask>().Where(a => a.S_START_LOC.Trim() == loc && !statue.Contains(a.S_B_STATE.Trim())).First(); return task; } /// <summary> @@ -71,7 +82,7 @@ internal static List<WCSTask> GetTaskBycntrcode(string no) { var db = new SqlHelper<WCSTask>().GetInstance(); - var task = db.Queryable<WCSTask>().Where(a => a.S_CNTR_CODE.Trim() == no && a.S_B_STATE.Trim() == "瀹屾垚" ).ToList(); + var task = db.Queryable<WCSTask>().Where(a => a.S_CNTR_CODE.Trim() == no && a.S_B_STATE.Trim() == "瀹屾垚").ToList(); return task; } internal static WCSTask GetTaskBySrcNo(string no) @@ -166,6 +177,7 @@ internal static bool AddActionRecord(string no, int state, string forkliftNo, string extData) { var db = new SqlHelper<TaskAction>().GetInstance(); + var action = new TaskAction() { N_ACTION_CODE = state, @@ -181,7 +193,7 @@ var db = new SqlHelper<TaskAction>().GetInstance(); return db.Queryable<TaskAction>().Count(a => a.S_TASK_CODE == no && a.N_ACTION_CODE == code) > 0; } - internal static void Begin(WCSTask task) + internal static void Begin(WCSTask task, string agvno) { var db = new SqlHelper<WCSTask>().GetInstance(); if (task != null) @@ -191,7 +203,8 @@ task.N_B_STATE = 2; task.S_B_STATE = WCSTask.GetStateStr(task.N_B_STATE); task.T_START_TIME = DateTime.Now; - db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_START_TIME }).ExecuteCommand(); + task.S_WORKSHOP_NO = agvno; + db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.S_WORKSHOP_NO }).ExecuteCommand(); } } @@ -220,13 +233,57 @@ } internal static bool CreateTask(WCSTask TN_Task) { + + var db = new SqlHelper<WCSTask>().GetInstance(); try { - var db = new SqlHelper<WCSTask>().GetInstance(); - return db.Insertable(TN_Task).ExecuteCommand() > 0; + bool res = false; + LogHelper.Info($"浠诲姟锛歿TN_Task.S_CODE}寮�鍒涘缓"); + db.BeginTran(); + res = db.Insertable(TN_Task).ExecuteCommand() > 0; + if (res) + { + var Startmodel = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == TN_Task.S_START_LOC).First(); + var Endmodel = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == TN_Task.S_END_LOC).First(); + if (Startmodel != null && Startmodel.S_LOCK_STATE.Trim() == "鏃�) + { + Startmodel.N_LOCK_STATE = 2; + Startmodel.S_LOCK_STATE = Location.GetLockStateStr(2); + res = db.Updateable(Startmodel).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand() > 0; + } + else + { + LogHelper.Info($"浠诲姟:{TN_Task.S_CODE}鐢熸垚澶辫触,璧风偣璐т綅涓嶅彲鐢�); + db.RollbackTran(); + return false; + } + if (Endmodel != null && Endmodel.S_LOCK_STATE.Trim() == "鏃�) + { + Endmodel.N_LOCK_STATE = 1; + Endmodel.S_LOCK_STATE = Location.GetLockStateStr(1); + res = db.Updateable(Endmodel).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand() > 0; + } + if (res) + { + LogHelper.Info($"閿佸畾璐т綅鎴愬姛"); + db.CommitTran(); + } + else + { + LogHelper.Info($"閿佸畾璐т綅澶辫触"); + db.RollbackTran(); + } + } + else + { + LogHelper.Info($"浠诲姟:{TN_Task.S_CODE}鐢熸垚澶辫触"); + db.RollbackTran(); + } + return res; } catch (Exception ex) { + db.RollbackTran(); Console.WriteLine(ex.Message); throw; } -- Gitblit v1.9.1