From f8d23dcf8d6501482db1a5180325194232afe96c Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期五, 18 七月 2025 17:30:09 +0800 Subject: [PATCH] 封装部分业务代码,继续优化日志打印流程 --- process/TaskProcess.cs | 195 ++++++++++++++++++++++++++---------------------- 1 files changed, 104 insertions(+), 91 deletions(-) diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs index 1bb20f5..4151c3f 100644 --- a/process/TaskProcess.cs +++ b/process/TaskProcess.cs @@ -7,41 +7,41 @@ 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 { #region 浠诲姟鐩稿叧 //--------------------------------------------------浠诲姟鐩稿叧-------------------------------------------------- /// <summary> - /// 鍙栬揣鍗歌揣瀹屾垚锛岀紦瀛樹綅鐘舵�鏇存柊 + /// 鍙栬揣鍗歌揣瀹屾垚,缂撳瓨浣嶇姸鎬佹洿鏂� /// </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}"); - LogHelper.Info($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_START_LOC}鍙栬揣瀹屾垚锛岃捣鐐硅В缁戝鍣▄mst.S_CNTR_CODE}"); - LocationHelper.UnBindingLoc(mst.S_START_LOC, mst.S_CNTR_CODE.Split(',').ToList()); + Console.WriteLine($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_START_LOC}鍙栬揣瀹屾垚,璧风偣瑙g粦瀹瑰櫒{mst.S_CNTR_CODE}"); + LogHelper.Info($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_START_LOC}鍙栬揣瀹屾垚,璧风偣瑙g粦瀹瑰櫒{mst.S_CNTR_CODE}"); + LocationHelper.UnbindLocCntr(mst.S_START_LOC, mst.S_CNTR_CODE.Split(',').ToList()); } else { - Console.WriteLine($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_END_LOC}鍗歌揣瀹屾垚锛岀粓鐐圭粦瀹氬鍣▄mst.S_CNTR_CODE}"); - LogHelper.Info($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_END_LOC}鍗歌揣瀹屾垚锛岀粓鐐圭粦瀹氬鍣▄mst.S_CNTR_CODE}"); + Console.WriteLine($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_END_LOC}鍗歌揣瀹屾垚,缁堢偣缁戝畾瀹瑰櫒{mst.S_CNTR_CODE}"); + LogHelper.Info($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_END_LOC}鍗歌揣瀹屾垚,缁堢偣缁戝畾瀹瑰櫒{mst.S_CNTR_CODE}"); LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList()); } - } /// <summary> - /// 浠诲姟鍙栨秷锛岀紦瀛樹綅鐘舵�鏇存柊 + /// 浠诲姟鍙栨秷,缂撳瓨浣嶇姸鎬佹洿鏂� /// </summary> /// <param name="mst"></param> - internal static void CacheBitCancelUpdate(TN_Task mst) { - //浠诲姟鍙栨秷锛屽彇璐у畬鎴愬墠鐨勶紝璧风偣鐨刲oadingCount鍜岀粓鐐箄nLoadingCount閮芥竻闄わ紝鍙栬揣瀹屾垚鐨勫彧澶勭悊缁堢偣 + 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 +61,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); } } @@ -81,11 +81,11 @@ /// <param name="extData"></param> internal static void OperateReq(string no, int state, string forkliftNo, string extData = "") { if (state == 1101) { - //璇锋眰鍙栬揣锛�+ //璇锋眰鍙栬揣, } if (state == 1102) { - //璇锋眰鍗歌揣锛�- //鏍规嵁缁堢偣鍒ゆ柇锛屾槸cb02鐨勫叆鍙o紝鍒ゆ柇鍐呭瓨涓姸鎬侊紙瑕佺姸鎬佹椂闂达級锛屽厑璁稿嵏璐э紝閫氱煡agv鏀瑰弬鏁�+ //璇锋眰鍗歌揣, + //鏍规嵁缁堢偣鍒ゆ柇,鏄痗b02鐨勫叆鍙�鍒ゆ柇鍐呭瓨涓姸鎬�(瑕佺姸鎬佹椂闂� ,鍏佽鍗歌揣,閫氱煡agv鏀瑰弬鏁� var dic = new Dictionary<string, string>(); //< Req >< Order No = 'TN2302020002' ParamNo = '18' Param1 = '12' /></ Req > dic.Add("No", no); @@ -95,7 +95,7 @@ //鏀瑰畬鍙傛暟杞﹀瓙灏变細鑷繁鍗歌揣 } if (state == 1103) { - //澶ч搧妗嗗弶璧颁互鍚庨�鐭ワ紝鎴戜滑瑕侀�鐭ヨ緭閫佺嚎 + //澶ч搧妗嗗弶璧颁互鍚庨�鐭�鎴戜滑瑕侀�鐭ヨ緭閫佺嚎 } } @@ -107,87 +107,100 @@ /// </summary> /// <param name="mst"></param> internal static bool SendTask(TN_Task mst) { + var result = false; + switch (mst.N_SCHEDULE_TYPE) { + case 1: //閫氳繃NDC,hosttoagv璋冨害璁惧 + 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); + LogHelper.Info($"NDC鎺ㄩ�浠诲姟:{mst.S_CODE};start='{start}',end='{end}'"); - //if (mst.S_TYPE == "绌烘墭涓嬬嚎鍫嗗彔") { - // end = LocationHelper.GetAgvSite(mst.S_END_LOC, true); - //} + 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" }); - 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" }); - - - //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