From c119ea611cc0e3704cc3be71b5009795323982be Mon Sep 17 00:00:00 2001 From: zxx <Zxx@HanInfo> Date: 星期五, 04 七月 2025 11:35:04 +0800 Subject: [PATCH] xiaomi --- HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/core/WCSCore.cs | 4 + HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/Program.cs | 2 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs | 71 +++++++++++++++++++++++++++++++++++ HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/WCSHelper.cs | 29 ++++++++++++++ HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs | 2 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/WCSTask.cs | 2 + 6 files changed, 106 insertions(+), 4 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/Program.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/Program.cs index afe639f..3e04fa4 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/Program.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/Program.cs @@ -77,7 +77,7 @@ tasks.Add(GetTask(WCSCore.Dispatch)); //澶т欢鍛煎彨绌虹 - tasks.Add(GetTask(WMSCore.bigMateriala2a)); + //tasks.Add(GetTask(WMSCore.bigMateriala2a)); Task.WaitAll(tasks.ToArray()); } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/core/WCSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/core/WCSCore.cs index dba6e77..e3eb499 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/core/WCSCore.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/core/WCSCore.cs @@ -74,7 +74,9 @@ if (!TaskProcess.Intercept(task)) { //浣跨敤鑷畾涔変换鍔℃帹閫�- TaskProcess.SendGZTask(task); + //TaskProcess.SendGZTask(task); + TaskProcess.SendXmTask(task); + } }); diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/WCSTask.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/WCSTask.cs index ea15476..749123d 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/WCSTask.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/WCSTask.cs @@ -53,6 +53,8 @@ public string S_OP_NAME { get; set; } public string S_WORKSHOP_NO { get; set; } + + //瀛樺皬绫充换鍔″彿 public string S_WORKSHOP_NAME { get; set; } //public int N_START_LAYER { get; internal set; } //public int N_END_LAYER { get; internal set; } diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs index d2a5cdf..286d391 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs @@ -27,6 +27,8 @@ using Newtonsoft.Json.Linq; using S7.Net; using System.Threading.Tasks; +using HH.WCS.XiaoMi.LISTA.dispatch; +using static HH.WCS.XiaoMi.LISTA.dispatch.RcsHelper; namespace HH.WCS.XiaoMi.process { @@ -368,7 +370,56 @@ else { result = true; } return result; } + //灏忕背鎺ㄩ�浠诲姟 + internal static bool SendXmTask(WCSTask mst) + { + var result = false; + var taskState = mst.N_B_STATE; + if (taskState == 0) + { + Console.WriteLine($"浠诲姟mst {JsonConvert.SerializeObject(mst)}"); + LogHelper.Info($"浠诲姟mst {JsonConvert.SerializeObject(mst)}", "浠诲姟"); + var startLoc = LocationHelper.GetLoc(mst.S_START_LOC); + var endLoc = LocationHelper.GetLoc(mst.S_END_LOC); + if (startLoc != null && endLoc != null) + { + string src = $"\"src\":\"{startLoc.S_AGV_SITE}\","; + string dst = $"\"dst\":\"{endLoc.S_AGV_SITE}\""; + string carrier_type_id = $"\"carrier_type_id\":\"-99\""; + string parmeS = "{"; + string parmeD = "}"; + string parme = parmeS + src + dst + carrier_type_id + parmeD; + + LogHelper.Info($"鎺ㄩ�浠诲姟鍙傛暟{parme}", "浠诲姟"); + AntsTaskModel model = new AntsTaskModel(); + model.order_name = mst.S_CODE; + model.priority = 1; + model.dead_line = DateTime.Now.ToString(); + model.ts_name = mst.S_TYPE; + var res = RcsHelper.CreateAntsOrder(model); + if (res) + { + //鏇存柊浠诲姟鐘舵� + mst.N_B_STATE = 1; + //mst.S_EQ_TASK_CODE = res.ToString(); + WCSHelper.UpdateStatus(mst); + WCSHelper.UpdateEQNo(mst); + ////鎺ㄩ�鎴愬姛锛屼慨鏀逛换鍔$姸鎬�+ //TaskHelper.UpdateStatus(mst, "宸叉帹閫�); + ////鎺ㄩ�鎴愬姛锛屼慨鏀瑰浗鑷狪D + //TaskHelper.UpdateGzId(mst, res); + LogHelper.Info($"浠诲姟mst {mst.S_CODE}鎺ㄩ�鎴愬姛", "浠诲姟"); + result = true; + } + + } + + } + + else { result = true; } + return result; + } /// <summary> /// 鍒涘缓鎼繍浠诲姟 @@ -390,6 +441,24 @@ var res = WCSHelper.CreateTask(taskNo, start.Trim(), end.Trim(), taskType, priority, trayCodes, trayCarryCount, startLayer, endLayer); + if (res) + { + result = true; + //浠诲姟鍒涘缓鎴愬姛锛岃捣鐐硅揣浣嶅嚭搴撻攣瀹氾紝缁堢偣璐т綅鍏ュ簱閿佸畾 + LocationHelper.LockLoc(start, 2); + LocationHelper.LockLoc(end, 1); + } + return result; + } + //灏忕背澶т欢 + public static bool CreateTransportDj(string start, string end, string taskType, string cntrs,string orderName, int startLayer, int endLayer, int trayCarryCount = 1, int priority = 1) + { + var result = false; + var trayCodes = cntrs; + var taskNo = DateTime.Now.Ticks.ToString(); + + + var res = WCSHelper.CreateTaskDj(taskNo, start.Trim(), end.Trim(), taskType, priority, trayCodes, orderName,trayCarryCount, startLayer, endLayer); if (res) { result = true; @@ -957,7 +1026,7 @@ var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First(); //鍒涘缓浠诲姟 LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLocStr}", model.ts_name); - var res = TaskProcess.CreateTransport(startLoc.S_CODE, endLocStr, model.ts_name, locCntrRel.S_CNTR_CODE, 1, 1); + var res = TaskProcess.CreateTransportDj(startLoc.S_CODE, endLocStr, model.ts_name, locCntrRel.S_CNTR_CODE, model.order_name, 1, 1); if (!res) { return new TaskResponse diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs index 866be10..fbf7996 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs @@ -685,7 +685,7 @@ { LogHelper.Info($"BindCntrItem============="); db.BeginTran(); - var cir = new CntrItemDetail { S_CNTR_CODE = trayCode, S_ITEM_CODE = itemCode, S_ITEM_NAME = itemName, S_BATCH_NO = itemName, F_QTY = num, S_ITEM_SPEC = issueMode }; + var cir = new CntrItemDetail { S_CNTR_CODE = trayCode, S_ITEM_CODE = itemCode, S_ITEM_NAME = itemName, S_BATCH_NO = BatchNo, F_QTY = num, S_ITEM_SPEC = issueMode }; db.Insertable<CntrItemDetail>(cir).ExecuteCommand(); db.Ado.CommitTran(); res = true; diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/WCSHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/WCSHelper.cs index 77d3e09..adccf23 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/WCSHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/WCSHelper.cs @@ -105,7 +105,36 @@ N_SCHEDULE_TYPE = 1, N_B_STATE = 0, S_B_STATE = WCSTask.GetStateStr(0), + S_CNTR_CODE = cntrInfo + //N_START_LAYER = startLayer, + //N_END_LAYER = endLayer, + //N_CNTR_COUNT = cntrCount + + }; + + return CreateTask(TN_Task); + } + //灏忕背澶т欢 + internal static bool CreateTaskDj(string no, string from, string to, string taskType, int pri, string cntrInfo,string orderName, int cntrCount = 1, int startLayer = 1, int endLayer = 1) + { + var fromLoc = LocationHelper.GetLocation(from); + var endLoc = LocationHelper.GetLocation(to); + WCSTask TN_Task = new WCSTask() + { + S_CODE = GenerateTaskNo(), + S_START_AREA = fromLoc.S_AREA_CODE, + S_END_AREA = endLoc.S_AREA_CODE, + S_START_LOC = from, + S_END_LOC = to, + S_TYPE = taskType, + S_OP_CODE = no, + N_PRIORITY = pri, + N_SCHEDULE_TYPE = 1, + N_B_STATE = 0, + S_B_STATE = WCSTask.GetStateStr(0), S_CNTR_CODE = cntrInfo, + //瀛樺皬绫充换鍔″彿 + S_WORKSHOP_NO = orderName //N_START_LAYER = startLayer, //N_END_LAYER = endLayer, //N_CNTR_COUNT = cntrCount -- Gitblit v1.9.1