| | |
| | | using Newtonsoft.Json; |
| | | using SqlSugar; |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.BaseServices; |
| | |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | #region 真实数据 |
| | | #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() |
| | | // 创建请求对象 |
| | | RequestTaskDto request = new RequestTaskDto() |
| | | { |
| | | TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), |
| | | Grade = 1, |
| | | 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) |
| | | { |
| | |
| | | |
| | | 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) |
| | |
| | | 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(); |
| | | } |
| | |
| | | BaseDal.UpdateData(task); |
| | | |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机出库完成"); |
| | | //todo 同步到WMS |
| | | |
| | | |
| | | //暂不考虑多个出库口 |
| | | } |
| | |
| | | _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) |
| | | { |
| | |
| | | { |
| | | 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) |