From 8741f7e84dc7c0a1150c92758ebb2cf4b7d18c73 Mon Sep 17 00:00:00 2001 From: pulg <plg@Haninfo> Date: 星期五, 18 七月 2025 14:49:30 +0800 Subject: [PATCH] 1 --- HH.WCS.QingXiNongfu/process/TaskProcess.cs | 144 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 113 insertions(+), 31 deletions(-) diff --git a/HH.WCS.QingXiNongfu/process/TaskProcess.cs b/HH.WCS.QingXiNongfu/process/TaskProcess.cs index 8d25bc1..1382812 100644 --- a/HH.WCS.QingXiNongfu/process/TaskProcess.cs +++ b/HH.WCS.QingXiNongfu/process/TaskProcess.cs @@ -1,26 +1,14 @@ -锘縰sing HH.WCS.QingXigongchang.api; -using HH.WCS.QingXigongchang.core; -using HH.WCS.QingXigongchang.device; +锘縰sing HH.WCS.QingXigongchang.device; using HH.WCS.QingXigongchang.dispatch; using HH.WCS.QingXigongchang.util; using HH.WCS.QingXigongchang.wms; using Newtonsoft.Json; -using NLog.Fluent; using SqlSugar; using System; -using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Reflection; -using System.Reflection.Emit; -using System.Runtime.InteropServices; -using System.Security.Cryptography; -using System.Security.Policy; using System.Threading; -using System.Threading.Tasks; -using System.Web.Http.Results; using static HH.WCS.QingXigongchang.api.ApiModel; -using static HH.WCS.QingXigongchang.device.OITcpHelper; using Monitor = HH.WCS.QingXigongchang.core.Monitor; namespace HH.WCS.QingXigongchang.process @@ -90,9 +78,11 @@ if (bbbbbbb) { + bbbbbbb = false; //UpdateElevatorTask(mst); //todo锛�濡傛灉鏄數姊嵏璐т换鍔$數姊换鍔′腑闂磋〃鐘舵�锛屽 - if (BeenOver) + bbbbbbb = TaskHelper.CheckActionRecordExist(mst.S_TASK_NO, "5"); + if (BeenOver || (mst.S_TYPE.Contains("鎴愬搧婊℃") && bbbbbbb)) { //if (mst.S_TYPE.Trim().Contains("缈绘枟鏈哄彨婊�)) //{ @@ -321,6 +311,7 @@ return result; } + /// <summary> /// 浠诲姟鐘舵�鏇存柊澶勭悊 /// </summary> @@ -397,6 +388,14 @@ //} } + //缁堢偣璐т綅涓�YWLT1TSJCD 鎴栬� YWLT2TSJCD 鐨�瑕佸彇璐у畬鎴愯В閿佽捣鐐癸紝瑙g粦璧风偣锛岀粦瀹氱粓鐐癸紝鍗歌揣瀹屾垚锛岃В閿佺粓鐐� 2025骞�鏈�0鏃� Plg + //if (mst.S_END_LAREA?.Trim() == "YWLT1TSJCD" || mst.S_END_LAREA?.Trim() == "YWLT2TSJCD") + //{ + // //瑙g粦璧风偣 + // CacheBitUpdate(mst, load: true); + // //缁戝畾缁堢偣 + // CacheBitUpdate(mst, load: false); + //} LocationHelper.UnLockLoc(mst.S_START_LOC.Trim()); } //new List<string> { "鎴愬搧婊℃-鍏ュ簱", "" } @@ -407,18 +406,25 @@ { if (state == 6) goto vvv; } - else if (state == 5) goto vvv; - - if (mst.S_TYPE.Trim() == "J绌虹摱鍧�鍑哄簱") + else if (state == 5) { - mst.S_CNTRS = "J" + Settings.GetTimeStamp(); + ///鍙渶瑕侀噴鏀捐揣浣嶅氨琛屼簡 + //if (mst.S_END_LAREA?.Trim() == "YWLT1TSJCD" || mst.S_END_LAREA?.Trim() == "YWLT2TSJCD") + //{ + // LocationHelper.UnLockLoc(mst.S_END_LOC.Trim()); + // return r; + //} + goto vvv; } - if (mst.S_TYPE.Trim() == "F绌虹摱鍧�鍑哄簱") - { - mst.S_CNTRS = "F" + Settings.GetTimeStamp(); - } - + //if (mst.S_TYPE.Trim() == "J绌虹摱鍧�鍑哄簱") + //{ + // mst.S_CNTRS = "J" + Settings.GetTimeStamp(); + //} + //if (mst.S_TYPE.Trim() == "F绌虹摱鍧�鍑哄簱") + //{ + // mst.S_CNTRS = "F" + Settings.GetTimeStamp(); + //} //鎴愬搧绌烘 涓嶉渶瑕佺粦绛� if (!mst.S_TYPE.Trim().Contains("鎴愬搧-绌烘墭涓婄嚎") && mst.S_TYPE.Trim() != "婊$摱鍧�鍏ュ簱" @@ -426,7 +432,12 @@ && mst.S_TYPE.Trim() != "鐡剁洊绌虹瓙杞繍-J2" && mst.S_TYPE.Trim() != "闈掓邯绾哥鎼繍鐗╂枡" && !mst.S_TYPE.Trim().Contains("鑷敱鐐瑰鐐�)) - CacheBitUpdate(mst, load: false, mst.S_NOTE); + { + if (mst.S_END_LOC != "YWLT1TSJ") + { + CacheBitUpdate(mst, load: false, mst.S_NOTE); + } + } if (mst.S_TYPE.Trim().Contains("鎴愬搧-绌烘墭涓婄嚎")) { @@ -470,7 +481,8 @@ { // to.AlQty += mst.S_CNTRS.Split(',').Length;// mst.S_CNTRS.Substring(1).Split('v').Length; to.OutNum -= mst.S_CNTRS.Split(',').Length; - db.Updateable(to).UpdateColumns(it => new { it.OutNum }).ExecuteCommand(); + var ggi = db.Updateable(to).UpdateColumns(it => new { it.OutNum }).ExecuteCommand(); + LogHelper.Info($"鏇存柊 鎻愬崌鏈轰笂鏂欏伐鍗曡〃鏁伴噺涓�{to.OutNum} 褰卞搷琛屾暟涓�{ggi}"); } } @@ -835,7 +847,6 @@ return true; }); } - } else if (mst.S_TYPE.Trim() == "绌虹摱鍧�鍑哄簱" || mst.S_TYPE.Trim().Contains("鐡剁洊-绌轰笂鏈�) || mst.S_TYPE.Trim().Contains("缈绘枟鏈哄彨婊�)) { @@ -1102,6 +1113,12 @@ { CacheBitCancelUpdate(mst, out r, true); } + if (state == 9) + { + CacheBitUpdate(mst, load: true); + var g = LocationHelper.UnLockLoc(mst.S_END_LOC.Trim()); + var T = LocationHelper.UnLockLoc(mst.S_START_LOC.Trim()); + } return r; } @@ -1292,7 +1309,7 @@ "start DD ", start.ToString(), "-", - TRow + FRow }), ""); } else @@ -1339,6 +1356,61 @@ else return false; } } + else if (taskType.Contains("鐡跺澂缈绘枟鏈虹┖鎵�)) + { + start = LocationHelper.GetAgvSite(mst.S_START_LOC); + end = LocationHelper.GetAgvSite(mst.S_END_LOC, "2"); + LogHelper.Info($"鐡跺澂鏈虹炕鏂楁満浠诲姟 璧风偣缁堢偣瀵瑰簲鐨刟gv绔欑偣 start {start} end {end} 浠诲姟:" + mst.S_TASK_NO); + + } + else if (taskType.Contains("鐡跺澂缈绘枟鏈烘弧鎵�)) + { + start = LocationHelper.GetAgvSite(mst.S_START_LOC, "2"); + end = LocationHelper.GetAgvSite(mst.S_END_LOC); + LogHelper.Info($"鐡跺澂鏈虹炕鏂楁満浠诲姟 璧风偣缁堢偣瀵瑰簲鐨刟gv绔欑偣 start {start} end {end} 浠诲姟:" + mst.S_TASK_NO); + } + //else if (taskType.Contains("鏀剁缉鑶滃弶杩�鍏ュ簱") || taskType.Contains("鏀剁缉鑶滃弶杩�鍏ュ簱") || taskType.Contains("鏀剁缉鑶滃弶杩�璐ф灦鍑烘彁鍗囨満")) + //{ + // var ts = 5; + // start = LocationHelper.GetAgvSite(mst.S_START_LOC);//璧风偣绔欑偣 + // end = LocationHelper.GetAgvSite(mst.S_END_LOC);//缁堢偣绔欑偣 + // var dic = new Dictionary<string, string>(); + // dic.Add("From", start.ToString()); + // dic.Add("To", end.ToString()); + // dic.Add("FUNC", "0"); + // dic.Add("DATA", "0"); + // int height = 0; + // var itemcode = ""; + // var ItemLayer = 0; + // var db = new SqlHelper<object>().GetInstance(); + // var cirs = ContainerHelper.GetCntrItemRel(mst.S_CNTRS.Split(',').ToList().FirstOrDefault()).First(); + // LogHelper.Info($"鍘熺墿鏂�鏀剁缉鑶滃弶杩�瀹瑰櫒鐗╂枡琛ㄦ暟鎹畕JsonConvert.SerializeObject(cirs)}", "HosttoagvTask"); + // if (cirs != null) + // { + // var ItemF = db.Queryable<ItemInfo>().Where(a => a.S_ITEM_CODE == cirs.S_ITEM_CODE).First(); + // itemcode = ItemF.S_ITEM_CODE; + // ItemLayer = ItemF.ItemLayer; + // if (mst.N_START_LAYER < 3 || mst.N_END_LAYER < 3) + // { + // height = ItemF.trayHeight; + // } + // else + // { + // height = ItemF.trayHeight1; + // } + // } + // dic.Add("ItemHeight", height.ToString()); + // dic.Add("StaItemHeight", "0"); + // dic.Add("TrayType", $"{mst.N_START_LAYER}{mst.N_END_LAYER}"); + // var ggh = NDC.AddTaskNew(ts, mst.N_PRIORITY, mst.S_TASK_NO, dic); + // if (ggh) + // { + // TaskHelper.UpdateStatus(mst, "宸叉帹閫�); + // result = true; + // GeneralInterFaceFunc(mst, 8 + ""); + // } + //} + //else if ( mst.S_END_LAREA == "WJBQDDKQ" || mst.S_END_LAREA == "SXBQDDKQ"|| mst.S_START_LAREA == "WJBQDDKQ" ||mst.S_START_LAREA == "SXBQDDKQ" ) //{ // if (start == 0) @@ -1406,6 +1478,7 @@ //} else { + if (start == 0) { //bool flag3 = ; @@ -1421,7 +1494,7 @@ "start DD ", start.ToString(), "-", - TRow + FRow }), ""); } else @@ -1436,7 +1509,7 @@ "start agv鐐�, start.ToString(), "-", - TRow + FRow }), ""); } } @@ -1516,9 +1589,15 @@ } } + //if (Settings.GetDeviceInfoList().Find(x => x.location.Contains(mst.S_END_LOC))?.deviceType == 13 && mst.S_TYPE.Contains("鏀剁缉鑶滃弶杩�)) + //{ + // end = 7027; + //} + LogHelper.Info("SendTask " + mst.S_TASK_NO); Console.WriteLine("start=" + start.ToString()); Console.WriteLine("end= " + end.ToString()); + NDC.AGVResult res = NDC.AddNewOrder(TSNo, new Dictionary<string, string> { { @@ -1593,8 +1672,11 @@ /// <param name="trayCarryCount"></param> /// <param name="priority"></param> /// <returns></returns> - public static bool CreateTransport(string wWorkNo, string start, string end, string taskType, List<string> cntrs, int startLayer, int endLayer, int trayCarryCount = 1, int priority = 1, string note = "") + public static bool CreateTransport(string wWorkNo, string start, string end, string taskType, List<string> cntrs, int startLayer, int endLayer, int trayCarryCount = 1, int priority = 1, string note = "", string TwoEndLoc = "") { + if (string.IsNullOrEmpty(start) || string.IsNullOrEmpty(end)) + return false; + var result = false; //鎵规鍙峰瓨鎵樼洏鍙凤紝1~3涓墭鐩� var trayCodes = string.Join(",", cntrs); @@ -1602,7 +1684,7 @@ LogHelper.Info($"CreateTransport- " + $"{taskNo}-{start}-{end}-{taskType}"); - var res = TaskHelper.CreateTask(wWorkNo, start.Trim(), end.Trim(), taskType, priority, trayCodes, trayCarryCount, startLayer, endLayer, note, lockLoc: true); + var res = TaskHelper.CreateTask(wWorkNo, start.Trim(), end.Trim(), taskType, priority, trayCodes, trayCarryCount, startLayer, endLayer, note, lockLoc: true, TwoEndLoc); if (res) { result = true; -- Gitblit v1.9.1