From 5b6a0b390fc0ca7a5519ad6fb9a27bbca80e3cad Mon Sep 17 00:00:00 2001 From: 海波 张 <2956280567@qq.com> Date: 星期四, 29 五月 2025 17:29:28 +0800 Subject: [PATCH] 空托修改 --- core/Monitor.cs | 185 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 182 insertions(+), 3 deletions(-) diff --git a/core/Monitor.cs b/core/Monitor.cs index c67890c..0301f28 100644 --- a/core/Monitor.cs +++ b/core/Monitor.cs @@ -8,6 +8,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -53,7 +54,7 @@ - if (tasks.Count >1 && tasks.Count(p => p.N_B_STATE == 3) == 1) + if (tasks.Count > 1 && tasks.Count(p => p.N_B_STATE == 3) == 1) { operation.S_B_STATE = "瀹屾垚涓�崐"; operation.T_MODIFY = DateTime.Now; @@ -66,8 +67,8 @@ operation.S_B_STATE = "瀹屾垚"; operation.T_MODIFY = DateTime.Now; operation.T_END_TIME = DateTime.Now; - db.Updateable(operation).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE,it.T_MODIFY,it.T_END_TIME }).ExecuteCommand(); - + db.Updateable(operation).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_MODIFY, it.T_END_TIME }).ExecuteCommand(); + } else if (tasks.Count(p => p.N_B_STATE == 5) > 0) { @@ -89,5 +90,183 @@ } + + /// <summary> + /// 鑷姩鍑哄簱绌烘墭 + /// </summary> + public static void ktAuto() { + var db = new SqlHelper<object>().GetInstance(); + + try + { + var ktTaskList = db.Queryable<MesKtTask>().Where(a => a.Status == "N" ).ToList(); + foreach (var kt in ktTaskList) + { + if (DateTime.Now.Subtract(kt.CreateDate).TotalMinutes < 1) + { + continue; + } + + var workFlow = TaskHelper.selectWorkFlowByType(kt.BUSI_TYPE, kt.TOOLS_TPYE); + + + if (workFlow == null) + { + LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂澶辫触锛屾祦绋嬬紪鍙�{kt.BUSI_TYPE},宸ヨ绫诲瀷{kt.TOOLS_TPYE},娌℃壘鍒板搴斾綔涓氭祦绋�, "绌烘墭鍑哄簱"); + throw new Exception($"BUSI_TYpe:{kt.BUSI_TYPE},娌℃壘鍒板搴斾綔涓氭祦绋�); + } + else + { + LogHelper.Info($"绌烘墭鍑哄簱浣滀笟娴佺▼淇℃伅" + JsonConvert.SerializeObject(workFlow), "绌烘墭鍑哄簱"); + } + + + + //鍑哄簱浠诲姟 + + //鎺ラ┏浣�+ var connection = ""; + + //鎺ラ┏浣嶅簱鍖�+ var connectionArea = ""; + + + //鏌ユ壘缁欏畾缁堢偣 + var end = LocationHelper.GetLoc(kt.Location_To); + LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "绌烘墭鍑哄簱"); + + + if (end == null) + { + LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂澶辫触锛岀粓鐐�{kt.Location_To},娌℃壘鍒�, "绌烘墭鍑哄簱"); + throw new Exception($"缁堢偣:{kt.Location_To},娌℃壘鍒�); + } + + + + + + //鏌ユ壘璧风偣 + List<Location> strrtList; + + Location start = null; + + + if (!string.IsNullOrEmpty(workFlow.ZONECODE)) + { + strrtList = LocationHelper.GetZoneLoc(workFlow.ZONECODE); + } + else + { + strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA); + } + + + + + //瀵绘壘绔嬪簱鍖虹┖鎵�+ start = LocationHelper.FindStartcolByLoclistAndcntr(strrtList, workFlow.STARTAREA); + + + LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂璧风偣淇℃伅" + JsonConvert.SerializeObject(start), "绌烘墭鍑哄簱"); + + if (start == null) + { + LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂澶辫触锛岃捣鐐瑰簱鍖簕workFlow.STARTAREA},娌℃壘鍒拌捣鐐�, "绌烘墭鍑哄簱"); + throw new Exception($"璧风偣搴撳尯{workFlow.STARTAREA},娌℃壘鍒拌捣鐐�); + } + + + + + //鑾峰彇鎵樼洏鐮�+ var cntrCode = LocationHelper.GetLocCntrCode(start.S_CODE); + + if (workFlow.SENDWCS == "Y") + { + + //姝e紡浠g爜锛岃皟鐢ㄦ帴鍙e鎵惧彲鐢ㄦ帴椹充綅 + var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION); + + var balanceConnectionList = LocationHelper.GetBalanceConnectionList(connectionList); + foreach (var item in balanceConnectionList) + { + if (item.loc.N_CURRENT_NUM < 2) + { + connection = item.loc.S_CODE; + connectionArea = item.loc.S_AREA_Name; + LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "绌烘墭鍑哄簱"); + break; + } + } + + if (connection == "") + { + LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠荤┖鎵樺嚭搴撳姟涓嬪彂"); + throw new Exception($"绌烘墭鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�); + } + } + + + //璧风偣缁堢偣鏌ユ壘鎴愬姛锛屽垱寤轰綔涓�+ + var taskType = int.Parse(workFlow.FLOWCODE); + + var operation = new WmsWork + { + // 浣滀笟鍙�+ S_CODE = kt.task_no, + // 浣滀笟绫诲瀷 + N_TYPE = taskType, + // 浣滀笟绫诲瀷 + S_TYPE = workFlow.FLOWNAME, + // 璧风偣璐т綅 + S_START_LOC = start.S_CODE, + // 璧风偣搴撳尯缂栫爜 + S_START_AREA = start.S_AREA_CODE, + //鎺ラ┏浣�+ CONNECTION = connection, + // 缁堢偣璐т綅 + S_END_LOC = end.S_CODE, + // 缁堢偣搴撳尯缂栫爜 + S_END_AREA = end.S_AREA_CODE, + // 瀹瑰櫒缂栫爜 + S_CNTR_CODE = cntrCode, + // 浣滀笟瀹氫箟鍚嶇О + S_OP_DEF_NAME = workFlow.FLOWNAME, + //浼樺厛绾�+ N_PRIORITY = kt.Priority, + //宸ヨ绫诲瀷 + TOOLSTYPE = kt.TOOLS_TPYE, + //璧风偣搴撳尯鍚嶇О + S_START_AREA_NAME = start.S_AREA_Name, + //璧风偣搴撳尯鍚嶇О + S_END_AREA_NAME = end.S_AREA_Name, + //璧风偣搴撳尯鍚嶇О + CONNECTION_AREA = connectionArea + }; + + //鍒涘缓浣滀笟 + if (WMSHelper.CreateWmsWork(operation) && TaskHelper.ChangeMesKtTask(kt)) + { + + LogHelper.Info($"绌烘墭鍑哄簱浣滀笟鍒涘缓鎴愬姛{operation.S_CODE}", "绌烘墭鍑哄簱"); + } + else + { + LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂鍒涘缓浣滀笟澶辫触", "绌烘墭鍑哄簱"); + throw new Exception($"绌烘墭鍑哄簱浠诲姟涓嬪彂鍒涘缓浣滀笟澶辫触"); + } + + } + + + } + catch (Exception ex) + { + + LogHelper.Info($"绌烘墭鍑哄簱寮傚父淇℃伅" + ex.Message, "绌烘墭鍑哄簱"); + } + } } } -- Gitblit v1.9.1