From 3909fbf77ad4ebc0dde600ff82710d959f74b5f4 Mon Sep 17 00:00:00 2001 From: 杨张扬 <634643841@qq.com> Date: 星期四, 10 七月 2025 17:49:20 +0800 Subject: [PATCH] AGV会换车,删除库存操作改成收到4执行,去线边的货位自动解绑 --- wms/WCSHelper.cs | 94 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 77 insertions(+), 17 deletions(-) diff --git a/wms/WCSHelper.cs b/wms/WCSHelper.cs index f435aa9..665d4cf 100644 --- a/wms/WCSHelper.cs +++ b/wms/WCSHelper.cs @@ -1,4 +1,6 @@ -锘縰sing HH.WCS.Mobox3.DoubleCoin.util; +锘縰sing HH.WCS.Mobox3.DoubleCoin.models; +using HH.WCS.Mobox3.DoubleCoin.process; +using HH.WCS.Mobox3.DoubleCoin.util; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -13,12 +15,12 @@ var date = DateTime.Now.ToString("yyMMdd"); return $"TN{date}{id.ToString().PadLeft(4, '0')}"; } - internal static bool UpdateStatus(TN_Task task, string status) + internal static bool UpdateStatus(TN_Task task, string status) { var res = false; var db = new SqlHelper<TN_Task>().GetInstance(); task.S_B_STATE = status; - res = db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand()>0; + res = db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand() > 0; return res; } internal static bool UpdateStatus(TN_Task task) { @@ -36,7 +38,7 @@ db.Updateable(task).UpdateColumns(it => new { it.S_EQ_TASK_CODE, it.T_MODIFY }).ExecuteCommand(); return res; } - + internal static TN_Task GetTask(string no) { var db = new SqlHelper<TN_Task>().GetInstance(); var task = db.Queryable<TN_Task>().Where(a => a.S_CODE == no).First(); @@ -56,7 +58,7 @@ /// <param name="cntrInfo">瀹瑰櫒缂栫爜</param> /// <param name="spec">鐗╂枡瑙勬牸</param> /// <returns></returns> - internal static bool CreateTask(string from, string to, string taskType, int pri, string cntrInfo,string spec = "") + internal static bool CreateTask(string from, string to, string taskType, int pri, string cntrInfo, string spec = "") { var fromLoc = LocationHelper.GetLocation(from); var endLoc = LocationHelper.GetLocation(to); @@ -95,7 +97,7 @@ } - internal static bool CreateTask(string from, string to, string taskType, int pri, string cntrInfo, out string taskNo, string spec = "" ) + internal static bool CreateTask(string from, string to, string taskType, int pri, string cntrInfo, out string taskNo, string spec = "") { var fromLoc = LocationHelper.GetLocation(from); var endLoc = LocationHelper.GetLocation(to); @@ -180,20 +182,16 @@ return db.Queryable<TN_Task_Action>().Count(a => a.S_TASK_CODE == no && a.N_ACTION_CODE == code) > 0; } - internal static void Begin(TN_Task task, string forklift_no) + internal static void Begin(TN_Task task, string forklift_no) { var db = new SqlHelper<TN_Task>().GetInstance(); - if (task != null) + if (task != null) { - if (task.N_B_STATE == 1) - { - task.N_B_STATE = 2; - task.S_B_STATE = TN_Task.GetStateStr(task.N_B_STATE); - task.T_START_TIME = System.DateTime.Now; - task.S_EQ_NO = forklift_no; - db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_START_TIME, it.S_EQ_NO }).ExecuteCommand(); - } - + task.N_B_STATE = 2; + task.S_B_STATE = TN_Task.GetStateStr(task.N_B_STATE); + task.T_START_TIME = System.DateTime.Now; + task.S_EQ_NO = forklift_no; + db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_START_TIME, it.S_EQ_NO }).ExecuteCommand(); } } internal static void End(TN_Task task) { @@ -233,6 +231,68 @@ var db = new SqlHelper<object>().GetInstance(); return db.Queryable<TN_Task>().Where(a => a.N_B_STATE == 0 && (a.S_B_STATE == "绛夊緟" || a.S_B_STATE == "寰呮帹閫�)).ToList(); } + + + public static void CancleTaskInfo(TN_Task tN_Task) + { + var HJ = Settings.Areas[1]; + if (tN_Task.S_END_AREA == HJ || tN_Task.S_TYPE.Contains("婊℃墭涓嬬嚎鍏ュ簱"))//缁堢偣鏄弧鎵樼紦瀛樺簱鍖�+ { + LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 缁堢偣鏄弧鎵樼紦瀛樺簱鍖� {tN_Task.S_END_AREA}"); + + TaskProcess.CacheBitCancelUpdate(tN_Task);//寮傚父澶勭悊 + } + else if (tN_Task.S_START_AREA == HJ || tN_Task.S_TYPE.Contains("婊℃墭鍑哄簱涓婄嚎"))//璧风偣鏄弧鎵樼紦瀛樺簱鍖�+ { + LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 璧风偣鏄弧鎵樼紦瀛樺簱鍖� {tN_Task.S_START_AREA}"); + + if (!WCSHelper.CheckActionRecordExist(tN_Task.S_CODE, 4))//鏈彇璐у畬鎴�+ { + WCSHelper.Fail(tN_Task);//浠诲姟鐘舵�鏀规垚閿欒 + + LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 鏈彇璐у畬鎴愶紝浠诲姟鐘舵�鏀规垚閿欒"); + } + else + { + WCSHelper.End(tN_Task);//浠诲姟鐘舵�鏀规垚缁撴潫 + LocationHelper.BindingLoc(tN_Task.S_END_LOC, tN_Task.S_CNTR_CODE.Split(',').ToList());// 缁戝畾缁堢偣瀹瑰櫒璐т綅 + + LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 鍙栬揣瀹屾垚锛屼换鍔$姸鎬佹敼鎴愮粨鏉燂紝缁戝畾缁堢偣瀹瑰櫒璐т綅"); + } + LocationHelper.UnLockLoc(tN_Task.S_END_LOC); + LocationHelper.UnLockLoc(tN_Task.S_START_LOC);//瑙i攣璧风偣缁堢偣 + } + else + { + LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 璧风偣缁堢偣閮戒笉鏄弧鎵樼紦瀛樺簱鍖� {tN_Task.S_START_AREA} {tN_Task.S_END_AREA}"); + + if (!WCSHelper.CheckActionRecordExist(tN_Task.S_CODE, 4))//鏈彇璐у畬鎴�+ { + WCSHelper.Fail(tN_Task);//浠诲姟鐘舵�鏀规垚閿欒 + + var db = new SqlHelper<object>().GetInstance(); + var cginfo = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == tN_Task.S_CNTR_CODE); + if (cginfo != null) + { + db.Deleteable<TN_InventoryM>().Where(it => it.S_ID == cginfo.S_ID || it.RFID == tN_Task.S_CNTR_CODE).ExecuteCommand(); + } + else + { + db.Deleteable<TN_InventoryM>().Where(it => it.RFID == tN_Task.S_CNTR_CODE).ExecuteCommand(); + } + LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 鏈彇璐у畬鎴愶紝浠诲姟鐘舵�鏀规垚閿欒锛屽垹闄ゆ敼瀹瑰櫒鍙风殑鎵�湁搴撳瓨{tN_Task.S_CNTR_CODE}"); + } + else + { + WCSHelper.End(tN_Task);//浠诲姟鐘舵�鏀规垚缁撴潫 + LocationHelper.BindingLoc(tN_Task.S_END_LOC, tN_Task.S_CNTR_CODE.Split(',').ToList()); + + LogHelper.Info($"鍙栨秷浠诲姟: {tN_Task.S_CODE} 鏈彇璐у畬鎴愶紝浠诲姟鐘舵�鏀规垚缁撴潫锛岀粦瀹氱粓鐐瑰鍣ㄨ揣浣�); + } + LocationHelper.UnLockLoc(tN_Task.S_END_LOC); + LocationHelper.UnLockLoc(tN_Task.S_START_LOC);//瑙i攣璧风偣缁堢偣 + } + } } public class CreateTasks -- Gitblit v1.9.1