From 17e3ef45fe0a6b6f8a147b50740834ac734f9317 Mon Sep 17 00:00:00 2001 From: lss <2538410689@qq.com> Date: 星期二, 15 七月 2025 17:30:13 +0800 Subject: [PATCH] 1111 --- HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/process/TaskProcess.cs | 168 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 121 insertions(+), 47 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/process/TaskProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/process/TaskProcess.cs index cc3be88..bcc1c77 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/process/TaskProcess.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/process/TaskProcess.cs @@ -2,16 +2,19 @@ using HH.WCS.DaYang.dispatch; using HH.WCS.DaYang.util; using HH.WCS.DaYang.wms; +using HH.WCS.JunzhouNongfu.device; using Newtonsoft.Json; using NLog.Fluent; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; +using System.Reflection.Emit; using System.Security.Cryptography; using System.Text; using static HH.WCS.DaYang.api.ApiModel; using static HH.WCS.DaYang.util.Settings; +using static System.Net.WebRequestMethods; namespace HH.WCS.DaYang.process { @@ -109,33 +112,88 @@ internal static bool Intercept(WCSTask mst) { var result = false; - #region 绌烘墭鍥炲簱浠诲姟闇�鍒ゆ柇鏈夋病鏈夋墽琛屼腑鐨勫嚭搴撲换鍔★紝鎺ラ┏浣嶆湁鏃犳墭鐩橈紝濡傛灉鏈夊厛涓嶆帹閫佷换鍔�- if (mst.S_TYPE == "绌烘墭鍥炲簱" && mst.N_SCHEDULE_TYPE == 1) + #region 绌烘墭鍥炲簱浠诲姟闇�鍒ゆ柇鏈夋病鏈夋墽琛屼腑鐨勫嚭搴撲换鍔★紝鎺ラ┏浣嶆湁鏃犳墭鐩橈紝濡傛灉鏈夊厛涓嶆帹閫佷换鍔�浠诲姟浠诲姟闇�agv浠诲姟瀹屾垚鍐嶆帹 + if (mst.S_TYPE == "绌烘墭鍥炲簱") { - //鍒ゆ柇鏈夋棤鍑哄簱涓殑浠诲姟 - var task = WCSHelper.GetTaskbyType("鍑哄簱"); - if (task.Count == 0) - { //鑾峰彇鎺ラ┏浣嶈澶囩姸鎬�- HttpHelper httpHelper = new HttpHelper(); - TableUrl tableUrl = Settings.tableUrls.Find(a => a.id == 3); - if (tableUrl != null) - { - Result<DeviceStatusModel> DeviceStatu = httpHelper.GetDeviceStatus(new string[] { mst.S_END_LOC }, tableUrl.url); - //璁惧鐘舵�绌哄垯鍏佽鎺ㄩ� - if (DeviceStatu != null && DeviceStatu.Data[0].PhotoStatus == 0) + if (mst.N_SCHEDULE_TYPE == 1) + { + //鍒ゆ柇鏈夋棤鍑哄簱涓殑浠诲姟 + var task = WCSHelper.GetTaskbyType("鍑哄簱"); + if (task.Count == 0) + { //鑾峰彇鎺ラ┏浣嶈澶囩姸鎬�+ HttpHelper httpHelper = new HttpHelper(); + TableUrl tableUrl = Settings.tableUrls.Find(a => a.id == 3); + if (tableUrl != null) { - result = true; + Result<DeviceStatusModel> DeviceStatu = httpHelper.GetDeviceStatus(new string[] { mst.S_END_LOC }, tableUrl.url); + //璁惧鐘舵�绌哄垯鍏佽鎺ㄩ� + if (DeviceStatu != null && DeviceStatu.Data.PhotoStatus == 0) + { + + } + else + { + LogHelper.Info($"Intercept:璁惧鐘舵�涓嶅厑璁告帹閫�); + result = true; + } } else { - LogHelper.Info($"Intercept:璁惧鐘舵�涓嶅厑璁告帹閫�); + LogHelper.Info($"Intercept:鑾峰彇鎺ュ彛url澶辫触"); + result = true; + } + } + } + if (mst.N_SCHEDULE_TYPE == 2) + { + var task = WCSHelper.GetTaskByOpName(mst.S_OP_CODE, 3); + if (task == null) + { + result = true; + } + } + } + if (mst.S_TYPE.Contains("鍑哄簱")) + { + + //鎺ㄩ�agv浠诲姟锛屽垽鏂澶囦换鍔℃槸鍚﹀畬鎴�+ if (mst.N_SCHEDULE_TYPE == 1) + { + var task = WCSHelper.GetTaskByOpName(mst.S_OP_CODE, 3); + if (task == null) + { + result = true; + } + } + else + { + //濡傛灉褰撳墠浠诲姟涓嶆槸绉诲簱浠诲姟锛岄渶瑕佸垽鏂Щ搴撲换鍔℃槸鍚﹀畬鎴�+ if (!mst.S_TYPE.Contains("绉诲簱")) + { + var db = new SqlHelper<object>().GetInstance(); + var ykmst = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == mst.S_OP_NAME && a.N_B_STATE == 3 && a.S_TYPE == "绉诲簱").First(); + if (ykmst != null) + { + result = true; } } else { - LogHelper.Info($"Intercept:鑾峰彇鎺ュ彛url澶辫触"); + //鍑哄簱浠诲姟鍒ゆ柇澶栦晶鏈夋病鏈夐攣 + var startLoc = LocationHelper.GetLoc(mst.S_START_LOC); + if (startLoc != null && startLoc.N_POS == 1) + { + var db = new SqlHelper<WCSTask>().GetInstance(); + var OutLoc = db.Queryable<Location>().Where(b => b.S_AREA_CODE == startLoc.S_AREA_CODE && b.N_LAYER == startLoc.N_LAYER && b.N_POS == 2).First(); + if (OutLoc != null && OutLoc.N_LOCK_STATE != 0) + { + result = true; + } + } + } + } } #endregion @@ -318,58 +376,74 @@ var start = "0"; var end = "0"; var taskType = mst.S_TYPE.Trim(); - if (mst.N_SCHEDULE_TYPE == 1)//agv浠诲姟 + if (mst.N_SCHEDULE_TYPE == 1) { + LogHelper.Info($"浠诲姟鎺ㄩ�鏁版嵁锛歿JsonConvert.SerializeObject(mst)}"); + if (string.IsNullOrEmpty(mst.S_START_LOC) || string.IsNullOrEmpty(mst.S_END_LOC)) + { + LogHelper.Info($"浠诲姟{mst.S_CODE},璧风偣缁堢偣鏈夌┖鍙傛暟锛屼笉鎺ㄩ�浠诲姟"); + } + + start = LocationHelper.GetAgvSite(mst.S_START_LOC); end = LocationHelper.GetAgvSite(mst.S_END_LOC); + //if (mst.N_START_LAYER > 1) + //{ + // start = LocationHelper.GetAgvSite(mst.S_START_LOC, mst.N_START_LAYER.ToString()).ToString(); + //} + if (mst.N_END_LAYER > 1) + { + end = LocationHelper.GetAgvSite(mst.S_END_LOC, mst.N_END_LAYER.ToString()).ToString(); + LogHelper.Info($"浠诲姟鎺ㄩ�锛氱粓鐐瑰眰鏁颁负{mst.N_END_LAYER}锛屾帹閫佺珯鐐逛负:{end}"); + } + Console.WriteLine($"SendTask {mst.S_CODE}"); + Console.WriteLine("start=" + start); + Console.WriteLine("end= " + end); + List<param> dic = new List<param>(); + dic.Add(new param() { name = "From", value = start.ToString() }); + dic.Add(new param() { name = "To", value = end.ToString() }); + dic.Add(new param() { name = "FUNC", value = "0" }); + dic.Add(new param() { name = "DATA", value = "0" }); + dic.Add(new param() { name = "Ctype", value = "0" }); - //Console.WriteLine($"SendTask {mst.S_CODE}"); - //Console.WriteLine("start=" + start); - //Console.WriteLine("end= " + end); - var dic = new Dictionary<string, string>(); - var sb1 = new StringBuilder(); + var res = NDCApi.AddOrderNew(1, 1, mst.S_CODE, dic);//娣诲姞鏂板懡浠�+ //dic.Add("Pri", mst.N_PRIORITY.ToString()); + //dic.Add("From", start.ToString()); + //dic.Add("To", end.ToString()); + //dic.Add("task_no", mst.S_CODE.Trim());// dic.Add("Ext1", "1"); dic.Add("Ext2", "CALLADDAGV"); dic.Add("N_CNTR_COUNT", ""); + //var res = NDC.AddNewOrder(1, dic); - //dic.Add("No", mst.S_CODE.Trim()); - //dic.Add("Pri", mst.N_PRIORITY.ToString()); - dic.Add("From", start.ToString()); - dic.Add("To", end.ToString()); - dic.Add("Func", "0"); - dic.Add("DATA", "0"); - dic.Add("ItemHeight", "0"); - dic.Add("CntrType", "1"); - dic.Add("FromCol", "0"); - dic.Add("ToCol", "0"); - dic.Add("Ctype", "0"); - // dic.Add("Ext1", "1"); dic.Add("Ext2", "CALLADDAGV"); dic.Add("N_CNTR_COUNT", ""); - var res = NDC.AddNewOrderNew(5, mst.N_PRIORITY, mst.S_CODE.Trim(), dic); - if (res != null && (res.Res.ErrCode == 0 || res.Res.ErrCode == 50009)) + + if (res != null && (res.err_code == 0 || res.err_code == 50009)) { //鎺ㄩ�鎴愬姛锛屼慨鏀逛换鍔′紭鍏堢骇 mst.N_B_STATE = 1; - WCSHelper.UpdateStatus(mst); + mst.S_B_STATE = WCSTask.GetStateStr(1); + WCSHelper.UpdateStatus(mst);//鏇存柊浠诲姟鐘舵� result = true; + LogHelper.Info($"NDC鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE}start= {mst.S_START_LOC} + end = {mst.S_END_LOC}"); + + } + else + { + LogHelper.Info($"NDC鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};Res:" + JsonConvert.SerializeObject(res)); } } else if (mst.N_SCHEDULE_TYPE == 2)//杈撻�绾夸换鍔� { HttpHelper http = new HttpHelper(); - var url = Settings.tableUrls.Find(a => a.id == 1); - if (url != null) + TableUrl tableUrl = Settings.tableUrls.Find(a => a.id == 3); + if (tableUrl != null) { - //鎺ㄩ�杈撻�绾夸换鍔�- var SendResult = http.TaskAssignment(mst, url.url); - if (SendResult != null && SendResult.Code == 0) + var Wcsrsult = http.TaskAssignment(mst, tableUrl.url); + if (Wcsrsult.Code == 200) { mst.N_B_STATE = 1; WCSHelper.UpdateStatus(mst); result = true; } - } - else - { - LogHelper.Info($"鏈壘鍒颁换鍔′笅鍙戞帴鍙e湴鍧�紝璇锋鏌ラ厤缃枃浠�); } } return result; @@ -427,7 +501,7 @@ } #endregion - + } } -- Gitblit v1.9.1