From 9862f9e1237c3d360cb4fb5547d8b11e33578d39 Mon Sep 17 00:00:00 2001 From: czw <selecti@yeah.net> Date: 星期三, 18 六月 2025 22:49:38 +0800 Subject: [PATCH] qx --- HH.WCS.QingXiNongfu/wms/TaskHelper.cs | 83 +++++++++++++++++++++++++++++++++++------ 1 files changed, 70 insertions(+), 13 deletions(-) diff --git a/HH.WCS.QingXiNongfu/wms/TaskHelper.cs b/HH.WCS.QingXiNongfu/wms/TaskHelper.cs index 889efdc..76c1125 100644 --- a/HH.WCS.QingXiNongfu/wms/TaskHelper.cs +++ b/HH.WCS.QingXiNongfu/wms/TaskHelper.cs @@ -1,11 +1,14 @@ -锘縰sing HH.WCS.QingXigongchang.process; +锘縰sing HH.WCS.QingXigongchang.dispatch; +using HH.WCS.QingXigongchang.process; using HH.WCS.QingXigongchang.util; using Newtonsoft.Json; +using NLog.Fluent; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; +using System.Threading.Tasks; namespace HH.WCS.QingXigongchang.wms { @@ -82,10 +85,14 @@ var db = new SqlHelper<WMSTask>().GetInstance(); return db.Queryable<WMSTask>().Where(a => a.S_TYPE.Trim() == taskType).ToList(); } - internal static bool CreateTask(string no, string from, string to, string taskType, int pri, string cntrInfo, int cntrCount = 1, int startLayer = 1, int endLayer = 1, string note = "", bool lockLoc = false) + internal static bool CreateTask(string no, string from, string to, string taskType, int pri, string cntrInfo, int cntrCount = 1, int startLayer = 1, int endLayer = 1, string note = "", bool lockLoc = false, string TwoEndLoc = "") { var fromLoc = LocationHelper.GetLoc(from); var endLoc = LocationHelper.GetLoc(to); + + //NDCHelper.ChangeParam(taskNo, agvsite, 2); + //NDCHelper.ChangeParam(taskNo, 2, 6); + if (fromLoc.S_AREA_CODE == "YWLRGDD") { //鏌ヨ浠诲姟琛� 瑕佹眰鏄彧鑳界敓鎴愪袱涓换鍔�璧风偣搴撳尯涓篩WLRGDD hh_plg 2025骞�鏈�鏃� @@ -94,6 +101,17 @@ if (TaskListNum.Count() >= 2) { LogHelper.Info($"CreateTransport- CreateTask Error" + $"璧风偣搴撳尯涓篩WLRGDD 鍒欐渶澶氬彧鑳界敓鎴愪袱涓换鍔�); + return false; + } + } + else if (endLoc.S_AREA_CODE == "YWLWJJB") + { + //鏌ヨ浠诲姟琛� 瑕佹眰鏄彧鑳界敓鎴愪袱涓换鍔�璧风偣搴撳尯涓篩WLWJJB hh_plg 2025骞�鏈�鏃� + List<string> TaskState = new List<string>() { "瀹屾垚", "鍙栨秷" }; + var TaskListNum = LocationHelper.GetList<WMSTask>(x => x.S_END_LAREA == "YWLWJJB" && !TaskState.Contains(x.S_B_STATE)); + if (TaskListNum.Count() >= 2) + { + LogHelper.Info($"CreateTransport- CreateTask Error" + $"缁堢偣搴撳尯涓篩WLWJJB 鍒欐渶澶氬彧鑳界敓鎴愪袱涓换鍔�); return false; } } @@ -112,6 +130,12 @@ return false; } } + if (!taskType.Contains("鎴愬搧婊℃-鍏ュ簱")) + if (endLoc.N_CURRENT_NUM >= endLayer || fromLoc.N_CURRENT_NUM < startLayer) + { + LogHelper.Info($"CreateTransport- CreateTask Error" + $"璧风偣鏁伴噺{fromLoc.N_CURRENT_NUM}<{startLayer}鎴栬�{endLoc.N_CURRENT_NUM}>={endLayer} "); + return false; + } } WMSTask wmsTask = new WMSTask() { @@ -125,6 +149,7 @@ S_SRC_NO = no, N_PRIORITY = pri, S_NOTE = note, + S_TWO_END_LOC = TwoEndLoc, S_WORK_MODE = "agv", S_B_STATE = "鏈墽琛�, S_CNTRS = cntrInfo, @@ -134,6 +159,8 @@ }; LogHelper.Info($"CreateTransport- CreateTask" + $"{JsonConvert.SerializeObject(wmsTask)}"); + LogHelper.Info($"CreateTransport- CreateTask {wmsTask.S_TASK_NO} 璧风偣:{JsonConvert.SerializeObject(from)}"); + LogHelper.Info($"CreateTransport- CreateTask {wmsTask.S_TASK_NO} 缁堢偣:{JsonConvert.SerializeObject(to)}"); return CreateTask(wmsTask, lockLoc); } internal static string GetDeptName(string taskType) @@ -215,15 +242,47 @@ internal static void End(WMSTask task) { var db = new SqlHelper<WMSTask>().GetInstance(); + + + //plg 2025骞�鏈�3鏃�10:42:24 + if (task.S_END_LAREA == "YWLWJJB" && task.S_START_LAREA != "YWLRGDD") + { + var model = db.Queryable<Location>().Where(a => a.S_LOC_CODE == task.S_TWO_END_LOC).First(); + if (model != null) + { + //鍏堣В閿佺粓鐐�鍦ㄩ攣瀹�+ db.Ado.BeginTran(); + try + { + model.S_LOCK_STATE = "鏃�; + var res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0; + LogHelper.Info(task.S_TWO_END_LOC + "LockLoc:閿佺粨鏋� + res); + db.Ado.CommitTran(); + } + catch (Exception ex) + { + db.Ado.RollbackTran(); + LogHelper.Info("CreateTask 澶辫触 " + ex.Message); + } + + LogHelper.Info(task.S_TWO_END_LOC + "浜屾浠诲姟 寮�銆�"); + var b = TaskProcess.CreateTransport(task.S_SRC_NO, task.S_END_LOC, task.S_TWO_END_LOC, "鍘熺墿鏂欐惉杩�绾哥", task.S_CNTRS.Split(',').ToList(), task.N_START_LAYER, 1, task.N_CNTR_COUNT, task.N_PRIORITY); + //if (b) + //{ + // if (task != null) + // { + // task.S_B_STATE = "瀹屾垚"; + // task.T_END_TIME = DateTime.Now; + // db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.T_END_TIME }).ExecuteCommand(); + // } + //} + } + } if (task != null) { task.S_B_STATE = "瀹屾垚"; task.T_END_TIME = DateTime.Now; db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.T_END_TIME }).ExecuteCommand(); - } - if (task.S_END_LAREA == "YWLWJJB") - { - var b = TaskProcess.CreateTransport(task.S_SRC_NO, task.S_END_LOC, task.S_NOTE, "鍘熺墿鏂欐惉杩�绾哥", task.S_CNTRS.Split(',').ToList(), task.N_START_LAYER, 1, task.N_CNTR_COUNT, task.N_PRIORITY); } } internal static void Fail(WMSTask task) @@ -272,12 +331,10 @@ LogHelper.Info(wmsTask.S_START_LOC + "LockLoc:閿佺粨鏋� + res); model = db.Queryable<Location>().Where(a => a.S_LOC_CODE == wmsTask.S_END_LOC).First(); - if (wmsTask.S_START_LAREA != "YWLWJJB") - { - model.S_LOCK_STATE = "鍏ュ簱閿�; - res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0; - LogHelper.Info(wmsTask.S_END_LOC + "LockLoc:閿佺粨鏋� + res); - } + model.S_LOCK_STATE = "鍏ュ簱閿�; + res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0; + LogHelper.Info(wmsTask.S_END_LOC + "LockLoc:閿佺粨鏋� + res); + } db.Insertable(wmsTask).ExecuteCommand(); db.Ado.CommitTran(); @@ -302,7 +359,7 @@ { var db = new SqlHelper<object>().GetInstance(); //LogHelper.Info(DateTime.Now.ToLongTimeString() + "=====" + ShuiGaiTask.ToString()); - return db.Queryable<WMSTask>().OrderBy(" N_PRIORITY DESC ").Where(a => a.S_B_STATE.Trim() == state).Take(10).ToList(); + return db.Queryable<WMSTask>().OrderBy(" N_PRIORITY DESC ").Where(a => a.S_B_STATE.Trim() == state).ToList(); } -- Gitblit v1.9.1