From d44e3abf0d51cfea1ed7df510974d69458cf516d Mon Sep 17 00:00:00 2001 From: 杨前锦 <1010338399@qq.com> Date: 星期三, 04 六月 2025 17:11:59 +0800 Subject: [PATCH] 印尼佳通半制品变更需求开发 --- HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/core/WCSCore.cs | 80 +++++++++++++++++++++++---------------- 1 files changed, 47 insertions(+), 33 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/core/WCSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/core/WCSCore.cs index b6ad33a..e7363b5 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/core/WCSCore.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/core/WCSCore.cs @@ -16,18 +16,6 @@ internal class WCSCore { public static void OperateAgvTaskStatus(AgvTaskState model) { if (string.IsNullOrEmpty(model.No)) { - var alertorDevice = Settings.alertorLightInfos.Where(a => a.deviceNo == int.Parse(model.LockNo)).FirstOrDefault(); - if (model.State == 1023) - { - var result = HH.WCS.Mobox3.YNJT_PT.device.TcpClient.SendHexOnce(alertorDevice.address, 502, alertorDevice.turnLight); - LogHelper.Info("modbus 杩斿洖淇″彿锛� + result, "TSSG"); - } - - if (model.State == 1025) - { - var result = HH.WCS.Mobox3.YNJT_PT.device.TcpClient.SendHexOnce(alertorDevice.address, 502, alertorDevice.offLight); - LogHelper.Info("modbus 杩斿洖淇″彿锛� + result, "TSSG"); - } } else { var TN_Task = WCSHelper.GetTask(model.No); @@ -56,31 +44,14 @@ break; case 5: WCSHelper.UpdateStatus(TN_Task, "寮�鍗歌揣"); - WCSHelper.UpdateStatus(TN_Task, "鍗歌揣瀹屾垚"); - TaskProcess.OperateStatus(TN_Task, 6); - if (TN_Task.S_OP_NAME == "绉诲簱鍗曠Щ搴�) - { - var startLoc = LocationHelper.GetLoc(TN_Task.S_START_LOC); - var endLoc = LocationHelper.GetLoc(TN_Task.S_END_LOC); - - TN_YiKuDetail detail = new TN_YiKuDetail() - { - S_NO = TN_Task.S_OP_CODE, - S_START_AREA = startLoc.S_AREA_CODE, - S_START_ROW = startLoc.N_ROW, - S_END_AREA = endLoc.S_AREA_CODE, - S_END_ROW = endLoc.N_ROW - }; - WMSHelper.updateShiftOrderDetail(detail); - } - WCSHelper.End(TN_Task); break; case 6: + WCSHelper.UpdateStatus(TN_Task, "鍗歌揣瀹屾垚"); + TaskProcess.OperateStatus(TN_Task, 6); break; #endregion case 2: - // 淇敼宸ュ崟鐘舵� - /* WCSHelper.UpdateWorkOrderStatus(TN_Task.S_OP_CODE, "宸插畬鎴�);*/ + WCSHelper.End(TN_Task); break; case 7: //鍒ゆ柇鏄惁鏀跺埌杩囧己鍒跺彇娑堬紝鏈夊氨涓嶅仛浠讳綍澶勭悊 @@ -137,7 +108,7 @@ //缁堢偣鎵樼洏缁戝畾 if (LocationHelper.BindingLoc(wcsTask.S_END_LOC, new List<string> { wcsTask.S_CNTR_CODE })) { //淇敼鎵樼洏鐘舵�涓哄彲鐢紝澧炲姞搴撳瓨閲忚〃锛屽悗闈㈠垎鎷e嚭鍙互璁$畻鍒�- ContainerHelper.Enable(wcsTask.S_CNTR_CODE, wcsTask.S_END_LOC); + /* ContainerHelper.Enable(wcsTask.S_CNTR_CODE, wcsTask.S_END_LOC);*/ } } @@ -157,5 +128,48 @@ } } } + + /// <summary> + /// 鍒涘缓鏈�悗涓�釜浠诲姟 + /// </summary> + /// <param name="startLocCode"></param> + /// <param name="mst"></param> + /// <returns></returns> + public static WCSTask createLastTask(string startLocCode, WMSTask mst) + { + LogHelper.Info($"浣滀笟鍙凤細{mst.S_CODE}锛屽垱寤篈GV鍑哄簱浠诲姟", "WMS"); + var existTask = WCSHelper.GetTaskByStart(startLocCode); + if (existTask == null) + { + var startLoc = LocationHelper.GetLoc(startLocCode); + // 鍒涘缓涓�鍏ュ簱浠诲姟 + WCSTask wcsTask = new WCSTask() + { + S_OP_NAME = mst.S_OP_DEF_NAME, + S_OP_CODE = mst.S_CODE, + S_CODE = WCSHelper.GenerateTaskNo(), + S_CNTR_CODE = mst.S_CNTR_CODE, + S_TYPE = mst.S_TYPE, + S_START_LOC = startLoc.S_CODE, + S_START_AREA = startLoc.S_AREA_CODE, + S_END_LOC = mst.S_END_LOC, + S_END_AREA = mst.S_END_AREA, + S_SCHEDULE_TYPE = "AGV", + N_PRIORITY = mst.N_PRIORITY, + T_START_TIME = DateTime.Now, + }; + + if (WCSHelper.CreateTask(wcsTask)) + { + // 璧风偣銆佹帴椹崇偣銆佺粓鐐瑰姞閿�+ LocationHelper.LockLoc(wcsTask.S_START_LOC, 2); + LocationHelper.LockLoc(wcsTask.S_END_LOC, 1); + + WMSHelper.UpdateTaskEnd(mst); + return wcsTask; + } + } + return null; + } } } -- Gitblit v1.9.1