From 10797a680feaa24bdc17d10ac085e323be807819 Mon Sep 17 00:00:00 2001 From: chenyong <chenyong@hnkhzn.com> Date: 星期一, 18 十一月 2024 15:56:29 +0800 Subject: [PATCH] 202411-18 01 --- Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 183 +++++++++++++++++++++++++++------------------ 1 files changed, 111 insertions(+), 72 deletions(-) diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs index 70f9860..4316572 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs @@ -22,6 +22,7 @@ using Newtonsoft.Json; using SqlSugar; using System.Diagnostics.CodeAnalysis; +using System.Threading.Tasks; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseServices; @@ -131,47 +132,60 @@ WebResponseContent content = new WebResponseContent(); try { - #region 鐪熷疄鏁版嵁 - // TODO: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧� - //// 鍒涘缓璇锋眰瀵硅薄 - //RequestTaskDto request = new RequestTaskDto() - //{ - // Position = sourceAddress, - // PalletCode = palletCode, - //}; - - //// 鍙戦�佽姹傚苟绛夊緟鍝嶅簲 - //var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", request.ToJsonString()).Result; - - //// 鍙嶅簭鍒楀寲鍝嶅簲鍐呭 - //content = JsonConvert.DeserializeObject<WebResponseContent>(result); - - //// 妫�鏌ョ姸鎬佸苟杩斿洖 - //if (!content.Status) - // return content; - - //// 鍙嶅簭鍒楀寲浠诲姟鏁版嵁 - //WMSTaskDTO task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); - - //// 澶勭悊浠诲姟骞惰繑鍥炵粨鏋� - //content = ReceiveWMSTask(new List<WMSTaskDTO> { task }); - - #endregion - - WMSTaskDTO taskDTO = new WMSTaskDTO() + var hasTask = BaseDal.QueryFirst(x => x.PalletCode == palletCode); + if (hasTask != null) { - TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), - Grade = 1, + return content; + } + #region 璇锋眰鍏ュ簱浠诲姟宸烽亾 + // TODO: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧� + // 鍒涘缓璇锋眰瀵硅薄 + RequestTaskDto request = new RequestTaskDto() + { + Position = sourceAddress, PalletCode = palletCode, - RoadWay = "CHSC01", - SourceAddress = sourceAddress, - TargetAddress = "CHSC01", - TaskState = (int)TaskInStatusEnum.InNew, - Id = 0, - TaskType = (int)TaskInboundTypeEnum.Inbound }; - content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); + // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲 + var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestTaskAsync", request.ToJsonString()).Result; + + // 鍙嶅簭鍒楀寲鍝嶅簲鍐呭 + content = JsonConvert.DeserializeObject<WebResponseContent>(result); + + WMSTaskDTO task = new WMSTaskDTO(); + // 妫�鏌ョ姸鎬佸苟杩斿洖 + if (!content.Status) + { + task = new WMSTaskDTO() + { + TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), + Grade = 1, + PalletCode = palletCode, + RoadWay = "CHSC01", + SourceAddress = sourceAddress, + TargetAddress = "1020", + TaskState = (int)TaskOutStatusEnum.Line_OutExecuting, + Id = 0, + TaskType = (int)TaskOutboundTypeEnum.Outbound + }; + + Dt_Task task1 = _mapper.Map<Dt_Task>(task); + task1.CurrentAddress = task.SourceAddress; + task1.NextAddress = "1020"; + BaseDal.AddData(task1); + return content.OK(); + } + else + { + // 鍙嶅簭鍒楀寲浠诲姟鏁版嵁 + task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); + // 澶勭悊浠诲姟骞惰繑鍥炵粨鏋� + content = ReceiveWMSTask(new List<WMSTaskDTO> { task }); + } + + + + #endregion } catch (Exception ex) { @@ -398,56 +412,50 @@ int oldState = task.TaskState; if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) { - if (task.TaskState >= (int)TaskOutStatusEnum.OutFinish) - { - return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�"); - } + //if (task.TaskState >= (int)TaskOutStatusEnum.OutFinish) + //{ + // return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�"); + //} int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>(); task.TaskState = nextStatus; + + if (task.TaskState == (int)TaskOutStatusEnum.Line_OutFinish) + { + task.ModifyDate = DateTime.Now; + task.Modifier = "System"; + BaseDal.DeleteData(task); + } } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) { - if (task.TaskState >= (int)TaskInStatusEnum.InFinish) - { - return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�"); - } + //if (task.TaskState >= (int)TaskInStatusEnum.InFinish) + //{ + // return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�"); + //} int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>(); task.TaskState = nextStatus; if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish) { - //if (task.Roadway.Contains("CH")) - //{ - // Random random = new Random(); - // task.CurrentAddress = task.NextAddress; - // task.NextAddress = $"{random.Next(1, 1).ToString().PadLeft(3, '0')}-{random.Next(0, 0).ToString().PadLeft(3, '0')}-{random.Next(1, 1).ToString().PadLeft(3, '0')}"; - // task.TargetAddress = task.NextAddress; - //} - //else - //{ - // Random random = new Random(); - // task.CurrentAddress = task.NextAddress; - // task.NextAddress = "002-020-001"; - // task.TargetAddress = task.NextAddress; - //} - #region 鐪熷疄鏁版嵁 - // TODO: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧� + #region 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃 + // TODO: 璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃 // 鍒涘缓璇锋眰瀵硅薄 - RequestTaskDto request = new RequestTaskDto() + RequestTaskDto taskDto = new RequestTaskDto() { Position = task.NextAddress, PalletCode = task.PalletCode, }; // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲 - var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", request.ToJsonString()).Result; - + var abc = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestLocationTaskAsync", taskDto.ToJsonString()).Result; + if (abc == null) + return content.Error(); // 鍙嶅簭鍒楀寲鍝嶅簲鍐呭 - content = JsonConvert.DeserializeObject<WebResponseContent>(result); + content = JsonConvert.DeserializeObject<WebResponseContent>(abc); // 妫�鏌ョ姸鎬佸苟杩斿洖 if (!content.Status) @@ -461,6 +469,14 @@ task.TargetAddress = task.NextAddress; #endregion + } + else if (task.TaskState == (int)TaskInStatusEnum.SC_InFinish) + { + + task.ModifyDate = DateTime.Now; + task.Modifier = "System"; + + BaseDal.DeleteData(task); } } else @@ -478,6 +494,16 @@ BaseDal.UpdateData(task); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"浜哄伐鎵嬪姩灏嗕换鍔$姸鎬佷粠銆恵oldState}銆戣烦杞埌銆恵task.TaskState}銆�" : $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldState}銆戣浆鍒般�恵task.TaskState}銆�"); + + #region 鏇存柊浠诲姟鐘舵�� + object request = new + { + TaskNum = task.TaskNum, + TaskState = task.TaskState + }; + var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/UpdateTaskStatus", request.ToJsonString()).Result; + content = JsonConvert.DeserializeObject<WebResponseContent>(result); + #endregion content = WebResponseContent.Instance.OK(); } @@ -550,7 +576,7 @@ BaseDal.UpdateData(task); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�"); - //todo 鍚屾鍒癢MS + //鏆備笉鑰冭檻澶氫釜鍑哄簱鍙� } @@ -565,12 +591,6 @@ _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�"); - #region WMS鍚屾浠诲姟瀹屾垚 - var x = new { taskNum = taskNum }; - var result = HttpHelper.GetAsync("http:127.0.0.1:8098/api/Task/CompleteTaskAsync", x.ToJsonString()).Result; - content = JsonConvert.DeserializeObject<WebResponseContent>(result); - #endregion - } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) { @@ -583,6 +603,25 @@ { throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵taskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�"); } + + + #region WMS鍚屾浠诲姟瀹屾垚 + var keys = new Dictionary<string, object>() + { + {"taskNum", taskNum} + }; + var result = HttpHelper.GetAsync($"http://127.0.0.1:5000/api/Task/CompleteTaskAsync", keys).Result; + content = JsonConvert.DeserializeObject<WebResponseContent>(result); + #endregion + #region 鏇存柊浠诲姟鐘舵�� + object request = new + { + TaskNum = task.TaskNum, + TaskState = task.TaskState + }; + result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/UpdateTaskStatus", request.ToJsonString()).Result; + content = JsonConvert.DeserializeObject<WebResponseContent>(result); + #endregion //content = WebResponseContent.Instance.OK(); } catch (Exception ex) -- Gitblit v1.9.3