From 3106b64087cf6199b5a35aafb0eb583676017aa6 Mon Sep 17 00:00:00 2001 From: wanshenmean <cathay_xy@163.com> Date: 星期四, 07 十一月 2024 16:47:44 +0800 Subject: [PATCH] 暂存 --- Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 91 ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 72 insertions(+), 19 deletions(-) diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs index 1cdc30a..70f9860 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs @@ -132,8 +132,8 @@ try { #region 鐪熷疄鏁版嵁 - - // 鍒涘缓璇锋眰瀵硅薄 + // TODO: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧� + //// 鍒涘缓璇锋眰瀵硅薄 //RequestTaskDto request = new RequestTaskDto() //{ // Position = sourceAddress, @@ -189,6 +189,28 @@ public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress) { return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress, TaskOrderBy); + } + + /// <summary> + /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟 + /// </summary> + /// <param name="deviceNo">璁惧缂栧彿</param> + /// <param name="currentAddress">褰撳墠鍦板潃</param> + /// <returns></returns> + public Dt_Task QueryNextConveyorLineTask(string deviceNo, string currentAddress) + { + return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.NextAddress == currentAddress, TaskOrderBy); + } + + /// <summary> + /// 鏍规嵁鎵樼洏鍙枫�佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟 + /// </summary> + /// <param name="Barcode">鎵樼洏鍙�</param> + /// <param name="currentAddress">褰撳墠鍦板潃</param> + /// <returns></returns> + public Dt_Task QueryBarCodeConveyorLineTask(string Barcode, string currentAddress) + { + return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress && x.PalletCode == Barcode, TaskOrderBy); } /// <summary> @@ -397,10 +419,48 @@ if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish) { - Random random = new Random(); + //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: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧� + // 鍒涘缓璇锋眰瀵硅薄 + RequestTaskDto request = new RequestTaskDto() + { + Position = task.NextAddress, + PalletCode = task.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 taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); + task.CurrentAddress = task.NextAddress; - task.NextAddress = $"{random.Next(1, 1).ToString().PadLeft(3, '0')}-{random.Next(1, 1).ToString().PadLeft(3, '0')}-{random.Next(1, 1).ToString().PadLeft(3, '0')}"; + task.NextAddress = taskResult.TargetAddress; task.TargetAddress = task.NextAddress; + #endregion + } } else @@ -496,7 +556,7 @@ } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting) { - //todo + //todo 鍚屾鍒癢MS int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>(); task.TaskState = nextStatus; task.ModifyDate = DateTime.Now; @@ -504,20 +564,13 @@ BaseDal.UpdateData(task); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�"); - WMSTaskDTO taskDTO = new WMSTaskDTO() - { - TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), - Grade = 1, - PalletCode = task.PalletCode + "S", - RoadWay = "SC01", - SourceAddress = task.TargetAddress, - TargetAddress = "CLOutAreaA", - TaskState = (int)TaskOutStatusEnum.OutNew, - Id = 0, - TaskType = (int)TaskOutboundTypeEnum.Outbound - }; - content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); + #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) { @@ -530,7 +583,7 @@ { throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵taskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�"); } - content = WebResponseContent.Instance.OK(); + //content = WebResponseContent.Instance.OK(); } catch (Exception ex) { -- Gitblit v1.9.3