From 1b6bf29ff7daa1987de65940af52f452cabd6881 Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期二, 15 七月 2025 17:27:50 +0800 Subject: [PATCH] 优化AGV任务部分日志、货位绑定内部方法 --- process/TaskProcess.cs | 167 ++++++++++++++++++++++++++++++------------------------- 1 files changed, 91 insertions(+), 76 deletions(-) diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs index 1bb20f5..c3a3343 100644 --- a/process/TaskProcess.cs +++ b/process/TaskProcess.cs @@ -7,6 +7,7 @@ using HH.WCS.Mobox3.DSZSH.models; using HH.WCS.Mobox3.DSZSH.wms; using HH.WCS.Mobox3.DSZSH; +using HH.WCS.Mobox3.DSZSH.util; namespace HH.WCS.Mobox3.DSZSH.process { internal class TaskProcess { @@ -17,7 +18,7 @@ /// </summary> /// <param name="mst"></param> /// <param name="load"></param> - internal static void CacheBitUpdate(TN_Task mst, bool load) { + internal static void BufferLocUpdate(TN_Task mst, bool load) { //var trayCarryCount = mst.N_CNTR_COUNT > 0 ? mst.N_CNTR_COUNT : 1; if (load) { Console.WriteLine($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_START_LOC}鍙栬揣瀹屾垚锛岃捣鐐硅В缁戝鍣▄mst.S_CNTR_CODE}"); @@ -36,12 +37,12 @@ /// 浠诲姟鍙栨秷锛岀紦瀛樹綅鐘舵�鏇存柊 /// </summary> /// <param name="mst"></param> - internal static void CacheBitCancelUpdate(TN_Task mst) { + internal static void BufferLocCancelUpdate(TN_Task mst) { //浠诲姟鍙栨秷锛屽彇璐у畬鎴愬墠鐨勶紝璧风偣鐨刲oadingCount鍜岀粓鐐箄nLoadingCount閮芥竻闄わ紝鍙栬揣瀹屾垚鐨勫彧澶勭悊缁堢偣 if (WCSHelper.CheckActionRecordExist(mst.S_CODE, 4)) { //鏍规嵁瀹㈡埛鐜板満瑕佹眰锛屽鏋滃彇璐у畬鎴愪换鍔″け璐ヤ汉宸ユ媺鍒扮粓鐐癸紝鎴戜滑灏卞綋鍗歌揣瀹屾垚澶勭悊锛涘鏋滄槸浜哄伐鎷夎蛋鍒板叾瀹冨尯鍩燂紝鎴戜滑灏辫В閿佺粓鐐癸紝鍒犻櫎鎵樼洏銆� //缁堢偣缁戝畾 - CacheBitUpdate(mst, false); + BufferLocUpdate(mst, false); LocationHelper.UnLockLoc(mst.S_END_LOC); } else { @@ -61,14 +62,14 @@ /// <param name="state"></param> internal static void OperateStatus(TN_Task mst, int state) { if (state == 4) { - CacheBitUpdate(mst, true); + BufferLocUpdate(mst, true); } if (state == 6)//鍗歌揣瀹屾垚 { - CacheBitUpdate(mst, false); + BufferLocUpdate(mst, false); } if (state == 7) { - CacheBitCancelUpdate(mst); + BufferLocCancelUpdate(mst); } } @@ -107,87 +108,101 @@ /// </summary> /// <param name="mst"></param> internal static bool SendTask(TN_Task mst) { + var result = false; + switch (mst.N_SCHEDULE_TYPE) { + case 1: //閫氳繃NDC锛宧osttoagv璋冨害璁惧 + return SendNDCTask(mst); + case 5: //閫氳繃鏉ゥ璋冨害璁惧 + return SendHanAoTask(mst); + case 3: //閫氳繃鍥借嚜璋冨害璁惧 + return SendGZTask(mst); + } + return result; + } + public static bool SendNDCTask(TN_Task mst) { var result = false; var start = "0"; var end = "0"; var taskType = mst.S_TYPE.Trim(); + if (mst.N_B_STATE == 0) { - if (mst.N_SCHEDULE_TYPE == 1)//閫氳繃NDC锛宧osttoagv璋冨害璁惧 - { - start = LocationHelper.GetAgvSite(mst.S_START_LOC); - end = LocationHelper.GetAgvSite(mst.S_END_LOC); + start = LocationHelper.GetAgvSite(mst.S_START_LOC); + end = LocationHelper.GetAgvSite(mst.S_END_LOC); - //if (mst.S_TYPE == "绌烘墭涓嬬嚎鍫嗗彔") { - // end = LocationHelper.GetAgvSite(mst.S_END_LOC, true); - //} + LogHelper.Info($"NDC鎺ㄩ�浠诲姟 {mst.S_CODE};" + "start=" + start + "end= " + end); + var startLoc = LocationHelper.GetLoc(mst.S_START_LOC); + var endLoc = LocationHelper.GetLoc(mst.S_END_LOC); + var dic = new List<param>(); + dic.Add(new param() { name = "IKey", value = "IKey" }); + 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 = startLoc.N_LAYER.ToString() }); - LogHelper.Info($"NDC鎺ㄩ�浠诲姟 {mst.S_CODE};" + "start=" + start + "end= " + end); - var startLoc = LocationHelper.GetLoc(mst.S_START_LOC); - var endLoc = LocationHelper.GetLoc(mst.S_END_LOC); - var dic = new List<param>(); - dic.Add(new param() { name = "IKey", value = "IKey" }); - 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 = startLoc.N_LAYER.ToString() }); + dic.Add(new param() { name = "Ctype", value = "0" }); - dic.Add(new param() { name = "Ctype", value = "0" }); - - - //if (mst.S_TYPE == "浣欐枡涓嬬嚎鍏ュ簱" || mst.S_TYPE == "浜哄伐鎷嗙洏鍏ュ簱") { - // dic.Add(new param() { name = "DATA", value = "1024" }); - //} - //else { - // dic.Add(new param() { name = "DATA", value = "0" }); - //} - - var res = NDCApi.AddOrderNew(1, 1, mst.S_CODE, dic);//娣诲姞鏂板懡浠�- if (res != null && (res.err_code == 0 || res.err_code == 50009)) { - //鎺ㄩ�鎴愬姛锛屼慨鏀逛换鍔′紭鍏堢骇 - mst.N_B_STATE = 1; - mst.S_B_STATE = TN_Task.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)); - } + var res = NDCApi.AddOrderNew(1, 1, mst.S_CODE, dic);//娣诲姞鏂板懡浠�+ if (res != null && (res.err_code == 0 || res.err_code == 50009)) { + //鎺ㄩ�鎴愬姛锛屼慨鏀逛换鍔′紭鍏堢骇 + mst.N_B_STATE = 1; + mst.S_B_STATE = TN_Task.GetStateStr(1); + WCSHelper.UpdateStatus(mst);//鏇存柊浠诲姟鐘舵� + result = true; + LogHelper.Info($"NDC鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE}start= {mst.S_START_LOC} + end = {mst.S_END_LOC}"); } - else if (mst.N_SCHEDULE_TYPE == 5)//閫氳繃鏉ゥ璋冨害璁惧 - { - //璋冪涓夋柟鎺ュ彛 - var model = new HanAo.TaskInfoModel { - requestPk = mst.S_CODE, - frmPos = mst.S_START_LOC, - toPos = mst.S_END_LOC, - trkType = mst.S_OP_NAME == "鍏ュ簱" ? "1" : "2", - contNo = mst.S_CNTR_CODE - }; - if (HanAo.CreateOrder(model)) { - mst.N_B_STATE = 1; - WCSHelper.UpdateStatus(mst); - LogHelper.Info($"鏉ゥ鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE};" + "start=" + model.frmPos + "end= " + model.toPos); - } - else { - LogHelper.Info($"鏉ゥ鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};" + JsonConvert.SerializeObject(model)); - } + else { + LogHelper.Info($"NDC鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};Res:" + JsonConvert.SerializeObject(res)); } - else if (mst.N_SCHEDULE_TYPE == 3) //閫氳繃鍥借嚜璋冨害璁惧 - { - var code = GZRobot.CreateOrder(mst.S_CODE, mst.N_PRIORITY, JsonConvert.SerializeObject(new { src = mst.S_START_LOC, dst = mst.S_END_LOC }), "p2p"); - if (code > 0) { - //鏇存柊浠诲姟鐘舵� - mst.N_B_STATE = 1; - mst.S_EQ_TASK_CODE = code.ToString(); - WCSHelper.UpdateStatus(mst); - WCSHelper.UpdateEQNo(mst); - LogHelper.Info($"鍥借嚜鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE};" + "start=" + mst.S_START_LOC + "end= " + mst.S_END_LOC); - } - else { - LogHelper.Info($"鍥借嚜鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};" + JsonConvert.SerializeObject(mst)); - } - } + } + return result; + } + public static bool SendGZTask(TN_Task mst) { + var db = new SqlHelper<object>().GetInstance(); + var result = false; + var start = "0"; var end = "0"; + var taskType = mst.S_TYPE.Trim(); + + if (mst.N_B_STATE == 0) { + //var code = GZRobot.CreateOrder(mst.S_CODE, mst.N_PRIORITY, JsonConvert.SerializeObject(new { src = mst.S_START_LOC, dst = mst.S_END_LOC }), "p2p"); + start = LocationHelper.GetAgvSite(mst.S_START_LOC); + end = LocationHelper.GetAgvSite(mst.S_END_LOC); + + var code = GZRobot.CreateOrder(mst.S_CODE, mst.N_PRIORITY, JsonConvert.SerializeObject(new { src = start, dst = end }), "p2pdst", "pgapi"); + + if (code > 0) { + //鏇存柊浠诲姟鐘舵� + mst.N_B_STATE = 1; + mst.S_B_STATE = TN_Task.GetStateStr(1); + mst.S_EQ_TASK_CODE = code.ToString(); + WCSHelper.UpdateStatus(mst); + WCSHelper.UpdateEQNo(mst); + LogHelper.Info($"鍥借嚜鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE};" + "start=" + mst.S_START_LOC + "end= " + mst.S_END_LOC); + } + else { + LogHelper.Info($"鍥借嚜鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};" + JsonConvert.SerializeObject(mst)); + } + } + return result; + } + + public static bool SendHanAoTask(TN_Task mst) { + var result = false; + //璋冪涓夋柟鎺ュ彛 + var model = new HanAo.TaskInfoModel { + requestPk = mst.S_CODE, + frmPos = mst.S_START_LOC, + toPos = mst.S_END_LOC, + trkType = mst.S_OP_NAME == "鍏ュ簱" ? "1" : "2", + contNo = mst.S_CNTR_CODE + }; + if (HanAo.CreateOrder(model)) { + mst.N_B_STATE = 1; + WCSHelper.UpdateStatus(mst); + LogHelper.Info($"鏉ゥ鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE};" + "start=" + model.frmPos + "end= " + model.toPos); + return true; + } + else { + LogHelper.Info($"鏉ゥ鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};" + JsonConvert.SerializeObject(model)); } return result; } -- Gitblit v1.9.1