1
刘磊
2024-12-26 e5642daf4b6820d0706967e486b16e8d33a46d6d
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -508,76 +508,8 @@
                    if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
                    {
                        #region WMS同步任务完成
                        var keys = new Dictionary<string, object>()
                        {
                            {"taskNum", task.TaskNum}
                        };
                        // 获取WMSip地址
                        var configs = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                        var wmsBasex = configs.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                        var completeTask = configs.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue;
                        if (wmsBasex == null || completeTask == null)
                        {
                            throw new InvalidOperationException("WMS IP 未配置");
                        }
                        var wmsIpAddressx = wmsBasex + completeTask;
                        var results = HttpHelper.GetAsync(wmsIpAddressx, keys).Result;
                        content = JsonConvert.DeserializeObject<WebResponseContent>(results);
                        if (!content.Data.IsNullOrEmpty())
                        {
                            if (content.Data.ToString() == "NG")
                            {
                                task.Remark = "NG";
                            }
                        }
                        task.ExceptionMessage += "   " + content.Message;
                        #endregion WMS同步任务完成
                        if (!task.Roadway.Contains("GW"))
                        {
                            var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress);
                            if (!routers.Any()) return WebResponseContent.Instance.Error($"未找到设备路由信息");
                            task.CurrentAddress = task.NextAddress;
                            task.NextAddress = routers.FirstOrDefault().ChildPosi;
                            task.ModifyDate = DateTime.Now;
                            task.Modifier = "System";
                            BaseDal.UpdateData(task);
                            _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机出库完成");
                        }
                        else
                        {
                            task.TaskState = (int)TaskOutStatusEnum.OutFinish;
                            //如高温出库后 NG 则将任务标记为NG 并在出库申请后将任务出至NG口
                            if (task.Remark == "NG")
                            {
                                BaseDal.UpdateData(task);
                            }
                            else
                            {
                                BaseDal.DeleteData(task);
                                ConsoleHelper.WriteWarningLine($"高温出库目的地址{task.TargetAddress}");
                            }
                            var taskHty = task.Adapt<Dt_Task_Hty>();
                            _taskHtyRepository.AddData(taskHty);
                            _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机出库完成");
                        }
                        //暂不考虑多个出库口
                        if (task.Roadway.Contains("CH") && task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
                        {
                            Dt_Task? newTask = UpdatePosition(task.TaskNum, task.CurrentAddress);
                            if (newTask != null)
                            {
                                task = newTask;
                            }
                        }
                        content = StackCraneTaskCompleted(task.TaskNum);
                        return content;
                    }
                }