From c9982eb3dd76696b8a3851cc6411a71c402d042f Mon Sep 17 00:00:00 2001 From: wanshenmean <cathay_xy@163.com> Date: 星期三, 06 十一月 2024 20:04:41 +0800 Subject: [PATCH] 11.06 --- Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs | 135 ++++++++++++++++++++++++++++++-------------- 1 files changed, 92 insertions(+), 43 deletions(-) diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs index 5733764..ec87b7c 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs @@ -20,11 +20,9 @@ using AutoMapper; using HslCommunication; using Newtonsoft.Json; -using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; using Quartz; using SqlSugar; using System.Reflection; -using System.Threading.Tasks; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_Core.Helper; @@ -121,7 +119,7 @@ { command.InteractiveSignal = commandWrite.WriteInteractiveSignal; int count = string.IsNullOrEmpty(platform.Location) ? 0 + 1 : platform.Location.Split(',').Count() + 1; - method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, count }); + method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, count, platform }); } } else @@ -140,7 +138,7 @@ { command.InteractiveSignal = commandWrite.WriteInteractiveSignal; int count = strings.Count - index; - method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, count }); + method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, count, platform }); } } } @@ -407,28 +405,42 @@ Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); if (task != null) { + WebResponseContent content = new WebResponseContent(); ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(task); taskCommand.InteractiveSignal = command.InteractiveSignal; if (task.PalletCode != command.Barcode) { var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == task.TargetAddress).Capacity; taskCommand.TargetAddress = NGAddress; - conveyorLine.SendCommand(taskCommand, childDeviceCode); } else { taskCommand.TargetAddress = 0; } - // TODO璋冪敤浠诲姟瀹屾垚鎵ц浠诲姟瀹屾垚 + + #region 鍚慦MS涓婃姤浠诲姟瀹屾垚 + + WMSTaskDTO wMSTaskDTO = new WMSTaskDTO(); + var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/CompleteTaskAsync", (new { taskNum = command.TaskNum }).ToJsonString()).Result; + + content = JsonConvert.DeserializeObject<WebResponseContent>(result); + + // 妫�鏌ョ姸鎬佸苟杩斿洖 + if (!content.Status) + return; + + #endregion 鍚慦MS璇锋眰绌烘墭鐩樹换鍔� + + conveyorLine.SendCommand(taskCommand, childDeviceCode); ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); - WebResponseContent content = _taskService.UpdateTaskStatusToNext(task); + content = _taskService.UpdateTaskStatusToNext(task); } } /// <summary> /// 鍒涘缓浠诲姟骞跺彂閫佽姹� /// </summary> - private WebResponseContent CreateAndSendTask(WMSTaskDTO taskDTO) + public WebResponseContent CreateAndSendTask(WMSTaskDTO taskDTO) { var content = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); if (content.Status) @@ -445,54 +457,91 @@ /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> /// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param> - public void EmptyTrayReturn(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index) + public void EmptyTrayReturn(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index, Platform platform) { - CheckAndCreateTask((int)TaskOutboundTypeEnum.OutTray, childDeviceCode, index, "CHSC01", "001-001-001"); + TaskOutboundTypeEnum taskOutboundTypeEnum; + if (platform.PlatformType.Contains("OutTray")) + taskOutboundTypeEnum = TaskOutboundTypeEnum.OutTray; + else + taskOutboundTypeEnum = TaskOutboundTypeEnum.Outbound; + CheckAndCreateTask(TaskOutboundTypeEnum.OutTray, childDeviceCode, index, platform.Stacker.Split(',')[0], platform.Stacker.Split(',').ToList()); } - /// 闈欑疆绌烘墭鐩樺嚭搴� - /// </summary> - /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> - /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> - /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> - /// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param> - public void EmptyTrayOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index) - { - CheckAndCreateTask((int)TaskOutboundTypeEnum.OutTray, childDeviceCode, index, "JZSC01", "002-020-001"); - } + #region + ///// <summary> + ///// 闄堝寲瀹炵洏鍑哄簱) + ///// </summary> + ///// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> + ///// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> + ///// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> + ///// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param> + //public void ChuanhuaOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode) + //{ + // CheckAndCreateTask(TaskOutboundTypeEnum.Outbound, childDeviceCode, "CHSC01", "001-001-001"); + //} - /// <summary> - /// 闄堝寲鍑哄簱(瀹炵洏) - /// </summary> - /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> - /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> - /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> - /// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param> - public void ChuanhuaOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index) - { - CheckAndCreateTask((int)TaskOutboundTypeEnum.Outbound, childDeviceCode, index, "CHSC01", "001-001-001"); - } + ///// 闈欑疆绌烘墭鐩樺嚭搴� + ///// </summary> + ///// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> + ///// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> + ///// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> + ///// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param> + //public void EmptyTrayOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index) + //{ + // CheckAndCreateTask(TaskOutboundTypeEnum.OutTray, childDeviceCode, index, "JZSC01", "002-020-001"); + //} + ///// <summary> + ///// 闈欑疆瀹炵洏鍑哄簱 + ///// </summary> + ///// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> + ///// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> + ///// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> + ///// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param> + //public void JingzhiOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index) + //{ + // CheckAndCreateTask(TaskOutboundTypeEnum.Outbound, childDeviceCode, index, "JZSC01", "002-000-001"); + //} + #endregion /// <summary> /// 妫�鏌ヤ换鍔″苟鍒涘缓鏂颁换鍔� /// </summary> - private void CheckAndCreateTask(int taskType, string childDeviceCode, int index, string roadWay, string sourceAddress) + private void CheckAndCreateTask(TaskOutboundTypeEnum taskType, string childDeviceCode, int index, string roadWay, List<string> roadways = null) { - var tasks = _taskRepository.QueryData(x => x.TaskType == taskType && x.TargetAddress == childDeviceCode); + var tasks = _taskRepository.QueryData(x => x.TaskType == (int)taskType && x.TargetAddress == childDeviceCode); if (tasks.Count < index) { - var taskDTO = new WMSTaskDTO() + //var taskDTO = new WMSTaskDTO() + //{ + // TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), + // Grade = 1, + // PalletCode = DateTime.Now.ToString("yyyyMMddHHmmss"), + // RoadWay = roadWay, + // SourceAddress = sourceAddress, + // TargetAddress = childDeviceCode, + // TaskState = (int)TaskOutStatusEnum.OutNew, + // Id = 0, + // TaskType = (int)taskType + //}; + #region 璋冪敤WMS鑾峰彇鍑哄簱浠诲姟 + WMSTaskDTO taskDTO = new WMSTaskDTO(); + dynamic dynamic = new { - TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), - Grade = 1, - PalletCode = DateTime.Now.ToString("yyyyMMddHHmmss"), - RoadWay = roadWay, - SourceAddress = sourceAddress, - TargetAddress = childDeviceCode, - TaskState = (int)TaskOutStatusEnum.OutNew, - Id = 0, - TaskType = taskType + position = childDeviceCode, + tag = (int)taskType, + areaCdoe = roadWay, + roadways = roadways }; + var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", dynamic.ToJsonString()).Result; + + WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); + + // 妫�鏌ョ姸鎬佸苟杩斿洖 + if (!content.Status) + return; + + taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); + #endregion CreateAndSendTask(taskDTO); } -- Gitblit v1.9.3