From 3c193a58c27e245e1a3eaa76d6018342aac2de1b Mon Sep 17 00:00:00 2001 From: 杨张扬 <634643841@qq.com> Date: 星期四, 03 七月 2025 17:35:37 +0800 Subject: [PATCH] 双钱-取消任务7和8用一样的逻辑 --- wms/WCSHelper.cs | 82 ++++++++++++++++++-- core/WCSCore.cs | 103 ++++++++----------------- 2 files changed, 106 insertions(+), 79 deletions(-) diff --git a/core/WCSCore.cs b/core/WCSCore.cs index 8403b7c..364926e 100644 --- a/core/WCSCore.cs +++ b/core/WCSCore.cs @@ -56,8 +56,8 @@ } else { - var TN_Task = WCSHelper.GetTask(model.task_no);//鏍规嵁褰撳墠model缂栧彿鏌ヨ浠诲姟 - if (TN_Task != null) + var tN_Task = WCSHelper.GetTask(model.task_no);//鏍规嵁褰撳墠model缂栧彿鏌ヨ浠诲姟 + if (tN_Task != null) { if (model.state <= 8) { @@ -65,43 +65,43 @@ switch (model.state) { case 1: - WCSHelper.Begin(TN_Task, model.forklift_no);//宸叉帹閫佺殑浠诲姟鐨勭姸鎬佹敼鎴愭墽琛�+ WCSHelper.Begin(tN_Task, model.forklift_no);//宸叉帹閫佺殑浠诲姟鐨勭姸鎬佹敼鎴愭墽琛� Task task4 = Task.Run(() => { OpenScanCode(model.task_no, model.forklift_no);//寮�惎鎵爜 }); break; case 3: - WCSHelper.UpdateStatus(TN_Task, "寮�鍙栬揣");//浠诲姟鐘舵�鏀规垚寮�鍙栬揣 + WCSHelper.UpdateStatus(tN_Task, "寮�鍙栬揣");//浠诲姟鐘舵�鏀规垚寮�鍙栬揣 break; case 4: - WCSHelper.UpdateStatus(TN_Task, "鍙栬揣瀹屾垚");//浠诲姟鐘舵�鏀规垚鍙栬揣瀹屾垚 - TaskProcess.OperateStatus(TN_Task, 4);//璧风偣瀹瑰櫒璐т綅瑙g粦,瑙i攣璧风偣 + WCSHelper.UpdateStatus(tN_Task, "鍙栬揣瀹屾垚");//浠诲姟鐘舵�鏀规垚鍙栬揣瀹屾垚 + TaskProcess.OperateStatus(tN_Task, 4);//璧风偣瀹瑰櫒璐т綅瑙g粦,瑙i攣璧风偣 Task task3 = Task.Run(() => { - EmptyInStackArea(TN_Task); + EmptyInStackArea(tN_Task); }); Task task1 = Task.Run(() => { - returnS7Ok(TN_Task); + returnS7Ok(tN_Task); }); break; case 5: - WCSHelper.UpdateStatus(TN_Task, "寮�鍗歌揣");//浠诲姟鐘舵�鏀规垚寮�鍗歌揣 + WCSHelper.UpdateStatus(tN_Task, "寮�鍗歌揣");//浠诲姟鐘舵�鏀规垚寮�鍗歌揣 break; case 6: - WCSHelper.UpdateStatus(TN_Task, "鍗歌揣瀹屾垚");//浠诲姟鐘舵�鏀规垚鍗歌揣瀹屾垚 - TaskProcess.OperateStatus(TN_Task, 6);//缁堢偣瀹瑰櫒璐т綅缁戝畾,瑙i攣缁堢偣 + WCSHelper.UpdateStatus(tN_Task, "鍗歌揣瀹屾垚");//浠诲姟鐘舵�鏀规垚鍗歌揣瀹屾垚 + TaskProcess.OperateStatus(tN_Task, 6);//缁堢偣瀹瑰櫒璐т綅缁戝畾,瑙i攣缁堢偣 Task task2 = Task.Run(() => { - if (TN_Task.S_TYPE == "绌烘墭鍑哄簱鍏ョ嚎") + if (tN_Task.S_TYPE == "绌烘墭鍑哄簱鍏ョ嚎") { - var ip = Settings.ProductionLines.FirstOrDefault(a => a.PointIn == TN_Task.S_END_LOC).ProductionLine_IP; + var ip = Settings.ProductionLines.FirstOrDefault(a => a.PointIn == tN_Task.S_END_LOC).ProductionLine_IP; if (!Settings.S7TestMoni) { S7Helper.WriteBytes(ip, 10, 2, new byte[] { 0, 11, 1 }); @@ -111,110 +111,73 @@ Task task29 = Task.Run(() => { - if (TN_Task.S_TYPE == "浣欐枡涓嬬嚎鍏ュ簱") + if (tN_Task.S_TYPE == "浣欐枡涓嬬嚎鍏ュ簱") { - SpecHelper.UpdateSurplusDetail(TN_Task.S_CODE); + SpecHelper.UpdateSurplusDetail(tN_Task.S_CODE); } }); Task task30 = Task.Run(() => { - if (TN_Task.S_TYPE.Contains("鍥炵倝")) + if (tN_Task.S_TYPE.Contains("鍥炵倝")) { - SpecHelper.UpdateRemeltDetail(TN_Task.S_CODE); + SpecHelper.UpdateRemeltDetail(tN_Task.S_CODE); } }); Task task31 = Task.Run(() => { - if (TN_Task.S_TYPE == "婊℃墭鍑哄簱涓婄嚎") + if (tN_Task.S_TYPE == "婊℃墭鍑哄簱涓婄嚎") { - SpecHelper.UpdateComponentDetail(TN_Task.S_CODE); + SpecHelper.UpdateComponentDetail(tN_Task.S_CODE); } }); Task task12 = Task.Run(() => { - if (TN_Task.S_TYPE == "PDA婊℃墭涓嬬嚎鍏ュ簱" || TN_Task.S_TYPE == "PLC婊℃墭涓嬬嚎鍏ュ簱") + if (tN_Task.S_TYPE == "PDA婊℃墭涓嬬嚎鍏ュ簱" || tN_Task.S_TYPE == "PLC婊℃墭涓嬬嚎鍏ュ簱") { - SpecHelper.UpdateComponentDetail(TN_Task.S_CODE); + SpecHelper.UpdateComponentDetail(tN_Task.S_CODE); } }); Task task19 = Task.Run(() => { - if (TN_Task.S_END_AREA == Settings.Areas[1]) + if (tN_Task.S_END_AREA == Settings.Areas[1]) { - SpecHelper.UpdateInventoryM_RuKu(TN_Task.S_CNTR_CODE); + SpecHelper.UpdateInventoryM_RuKu(tN_Task.S_CNTR_CODE); } else { - LogHelper.Info($"鏇存柊WMS搴撳瓨鏄庣粏鐨勫叆搴撴椂闂磋烦杩囷紝TN_Task.S_END_AREA锛�{TN_Task.S_END_AREA }涓嶇瓑浜�Settings.Areas[1]锛歿Settings.Areas[1]}"); + LogHelper.Info($"鏇存柊WMS搴撳瓨鏄庣粏鐨勫叆搴撴椂闂磋烦杩囷紝TN_Task.S_END_AREA锛�{tN_Task.S_END_AREA }涓嶇瓑浜�Settings.Areas[1]锛歿Settings.Areas[1]}"); } }); break; case 2: - WCSHelper.End(TN_Task);//浠诲姟鐘舵�鏀规垚缁撴潫 + WCSHelper.End(tN_Task);//浠诲姟鐘舵�鏀规垚缁撴潫 break; case 7: Task task10 = Task.Run(() => { - if (TN_Task.S_END_AREA == Settings.Areas[1])//缁堢偣鏄弧鎵樼紦瀛樺簱鍖�- { - TaskProcess.OperateStatus(TN_Task, 7);//寮傚父澶勭悊 - } - else if(TN_Task.S_START_AREA == Settings.Areas[1])//璧风偣鏄弧鎵樼紦瀛樺簱鍖�- { - if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))//鏈彇璐у畬鎴�- { - WCSHelper.Fail(TN_Task);//浠诲姟鐘舵�鏀规垚閿欒 - } - else - { - WCSHelper.End(TN_Task);//浠诲姟鐘舵�鏀规垚缁撴潫 - LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList());// 缁戝畾缁堢偣瀹瑰櫒璐т綅 - } - LocationHelper.UnLockLoc(TN_Task.S_END_LOC); - LocationHelper.UnLockLoc(TN_Task.S_START_LOC);//瑙i攣璧风偣缁堢偣 - } - else - { - 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(); - } - } - else - { - WCSHelper.End(TN_Task);//浠诲姟鐘舵�鏀规垚缁撴潫 - LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList()); - - } - LocationHelper.UnLockLoc(TN_Task.S_END_LOC); - LocationHelper.UnLockLoc(TN_Task.S_START_LOC);//瑙i攣璧风偣缁堢偣 - } + WCSHelper.CancleTaskInfo(tN_Task); }); break; case 8: - var res = NDCApi.CancelOrder(TN_Task.S_CODE); + var res = NDCApi.CancelOrder(tN_Task.S_CODE); if (res != null && (res.err_code == 50002 || res.err_code == 0)) { LogHelper.Info($"寮傚父鍜屽彇娑堟搷浣�璇锋眰缁撴灉鎴愬姛{res}"); + + Task task8 = Task.Run(() => + { + WCSHelper.CancleTaskInfo(tN_Task); + }); + } else { diff --git a/wms/WCSHelper.cs b/wms/WCSHelper.cs index f435aa9..8ce42cb 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,12 +182,12 @@ 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) + if (task.N_B_STATE == 1) { task.N_B_STATE = 2; task.S_B_STATE = TN_Task.GetStateStr(task.N_B_STATE); @@ -233,6 +235,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.OperateStatus(tN_Task, 7);//寮傚父澶勭悊 + } + 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