From 1b8cce65d4987e4b7e94d1b178abb3af0978a2d4 Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <1247017146@qq.com> Date: 星期三, 26 三月 2025 09:24:26 +0800 Subject: [PATCH] 123123 --- CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs | 192 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 150 insertions(+), 42 deletions(-) diff --git a/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs b/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs index 914c7c6..807a30d 100644 --- a/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs +++ b/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs @@ -285,7 +285,19 @@ { string isTrue = string.Empty; + ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); + ResultTrayCellsStatus result = GetResultTrayCellsStatus(command, stationManager); + + if (result.SerialNos.Count == 0) + { + var Traycontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); + if (Traycontent.Status) + { + ConsoleHelper.WriteSuccessLine("璇锋眰鍥炴祦闈欑疆"); + ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); + } + } List<string> strings = stationManager.Roadway.Split(",").ToList(); foreach (string item in strings) @@ -539,61 +551,157 @@ } } } - public void ExecuteConveyorLineTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, int ProtocalDetailValue ,string childDeviceCode) + + //public void ExecuteConveyorLineTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, int ProtocalDetailValue ,string childDeviceCode) + //{ + // var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode); + // if (task != null) + // { + // var value = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStation, SysConfigKeyConst.JZNGInBoundStation).ConfigValue; + // var valueList = value.Split(',').ToList(); + // if (valueList.Contains(task.SourceAddress)) + // { + // conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, "1000", childDeviceCode); + + // var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵task.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵task.PalletCode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�(瀹炵洏),涓嬩竴鐩爣鍦板潃銆恵1000}銆�"; + // ConsoleHelper.WriteWarningLine(log); + + // _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); + // WriteInfo(conveyorLine.DeviceName, log); + + // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); + // } + // else if (task.TargetAddress == "1020-1") + // { + // var next = task.NextAddress; + // var taskCommand = MapTaskCommand(task, command); + // task.NextAddress = next; + + // var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�(瀹炵洏),涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�"; + // ConsoleHelper.WriteWarningLine(log); + + // _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); + // WriteInfo(conveyorLine.DeviceName, log); + + // conveyorLine.SendCommand(taskCommand, childDeviceCode); + // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); + + // var taskHty = task.Adapt<Dt_Task_Hty>(); + // _task_HtyRepository.AddData(taskHty); + // _taskService.DeleteData(task); + // } + // else + // { + // var next = task.NextAddress; + // var taskCommand = MapTaskCommand(task, command); + // task.NextAddress = next; + + // var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�(瀹炵洏),涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�"; + // ConsoleHelper.WriteWarningLine(log); + + // _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); + // WriteInfo(conveyorLine.DeviceName, log); + + // conveyorLine.SendCommand(taskCommand, childDeviceCode); + // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); + // _taskService.UpdateTaskStatusToNext(task); + // } + // } + //} + + /// <summary> + /// 鎵ц杈撻�佺嚎浠诲姟 + /// </summary> + /// <param name="conveyorLine">杈撻�佺嚎瀵硅薄</param> + /// <param name="command">杈撻�佺嚎浠诲姟鍛戒护</param> + /// <param name="ProtocalDetailValue">鍗忚鏄庣粏鍊�</param> + /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> + public void ExecuteConveyorLineTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, int ProtocalDetailValue, string childDeviceCode) { + // 鏌ヨ浠诲姟淇℃伅 var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode); - if (task != null) + + if (task == null) return; + + // 鑾峰彇閰嶇疆鍊煎苟杞崲涓哄垪琛� + var value = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStation, SysConfigKeyConst.JZNGInBoundStation).ConfigValue; + var valueList = value.Split(',').ToList(); + + // 鏃ュ織妯℃澘 + var logMessage = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵task.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵task.PalletCode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�(瀹炵洏),涓嬩竴鐩爣鍦板潃銆恵{0}}銆�"; + + // 鍒ゆ柇浠诲姟鐨勮捣濮嬪湴鍧�鏄惁鍦ㄩ厤缃垪琛ㄤ腑 + if (valueList.Contains(task.SourceAddress)) { - var value = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStation, SysConfigKeyConst.JZNGInBoundStation).ConfigValue; - var valueList = value.Split(',').ToList(); - if (valueList.Contains(task.SourceAddress)) + // 璁剧疆鐩爣鍦板潃涓� "1000" + conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, "1000", childDeviceCode); + + // 璁板綍鏃ュ織骞跺彂閫佸畬鎴愪俊鍙� + LogAndSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, logMessage, "1000"); + } + else if (task.Roadway.Contains("JZ")) + { + // 鏌ヨ鏄惁瀛樺湪闈欑疆鍑哄簱浠诲姟 + var outJZTask = _taskRepository.QueryData(x => x.Roadway == task.Roadway && + (x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting || + x.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting || + x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)); + + if (outJZTask.IsNullOrEmpty()) { - conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, "1000", childDeviceCode); - - var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵task.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵task.PalletCode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�(瀹炵洏or绌虹洏),涓嬩竴鐩爣鍦板潃銆恵1000}銆�"; - ConsoleHelper.WriteWarningLine(log); - - _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); - WriteInfo(conveyorLine.DeviceName, log); - - ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); - } - else if (task.TargetAddress == "1020-1") - { - var next = task.NextAddress; + // 鏄犲皠浠诲姟鍛戒护 var taskCommand = MapTaskCommand(task, command); - task.NextAddress = next; - var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�(瀹炵洏),涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�"; - ConsoleHelper.WriteWarningLine(log); - - _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); - WriteInfo(conveyorLine.DeviceName, log); - + // 鍙戦�佷换鍔″懡浠� conveyorLine.SendCommand(taskCommand, childDeviceCode); - ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); - var taskHty = task.Adapt<Dt_Task_Hty>(); - _task_HtyRepository.AddData(taskHty); - _taskService.DeleteData(task); + // 璁板綍鏃ュ織骞跺彂閫佸畬鎴愪俊鍙� + LogAndSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, logMessage, taskCommand.TargetAddress.ToString()); + + // 鏇存柊浠诲姟鐘舵�� + _taskService.UpdateTaskStatusToNext(task); } else { - var next = task.NextAddress; - var taskCommand = MapTaskCommand(task, command); - task.NextAddress = next; - - var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�(瀹炵洏),涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�"; - ConsoleHelper.WriteWarningLine(log); - - _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); - WriteInfo(conveyorLine.DeviceName, log); - - conveyorLine.SendCommand(taskCommand, childDeviceCode); - ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); - _taskService.UpdateTaskStatusToNext(task); + ConsoleHelper.WriteWarningLine("宸插瓨鍦ㄩ潤缃嚭搴撲换鍔�,闈欑疆鍏ュ簱浠诲姟鏃犳硶涓嬪彂鑷崇嚎浣�"); } } + else + { + // 鏄犲皠浠诲姟鍛戒护 + var taskCommand = MapTaskCommand(task, command); + + // 鍙戦�佷换鍔″懡浠� + conveyorLine.SendCommand(taskCommand, childDeviceCode); + + // 璁板綍鏃ュ織骞跺彂閫佸畬鎴愪俊鍙� + LogAndSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, logMessage, taskCommand.TargetAddress.ToString()); + + // 鏇存柊浠诲姟鐘舵�� + _taskService.UpdateTaskStatusToNext(task); + } } + + /// <summary> + /// 璁板綍鏃ュ織骞跺彂閫佸畬鎴愪俊鍙� + /// </summary> + /// <param name="conveyorLine">杈撻�佺嚎瀵硅薄</param> + /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> + /// <param name="ProtocalDetailValue">鍗忚鏄庣粏鍊�</param> + /// <param name="logMessage">鏃ュ織娑堟伅妯℃澘</param> + /// <param name="targetAddress">鐩爣鍦板潃</param> + private void LogAndSendFinish(CommonConveyorLine conveyorLine, string childDeviceCode, int ProtocalDetailValue, string logMessage, string targetAddress) + { + // 鏍煎紡鍖栨棩蹇楁秷鎭� + var log = string.Format(logMessage, targetAddress); + // 杈撳嚭璀﹀憡鏃ュ織 + ConsoleHelper.WriteWarningLine(log); + // 璁板綍鏃ュ織 + _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log, time = DateTime.Now.ToString("G"), color = "red" }); + WriteInfo(conveyorLine.DeviceName, log); + // 鍙戦�佸畬鎴愪俊鍙� + ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); + } + } } \ No newline at end of file -- Gitblit v1.9.3