huangxiaoqiang
2024-12-24 876b889505ef3c847c8794425f0f3dd6eeeeccf8
WCS下一步
已修改1个文件
76 ■■■■■ 文件已修改
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -25,6 +25,7 @@
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_TaskInfoRepository;
namespace WIDESEAWCS_TaskInfoService
{
@@ -503,15 +504,82 @@
                        BaseDal.DeleteData(task);
                        _taskHtyRepository.AddData(task_Hty);
                    }
                    if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
                    {
                        Dt_Task? tasks = UpdatePosition(task.TaskNum, task.CurrentAddress);
                        if (tasks != null)
                        #region WMS同步任务完成
                        var keys = new Dictionary<string, object>()
                        {
                            task.CurrentAddress = tasks.CurrentAddress;
                            task.NextAddress = tasks.NextAddress;
                            {"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;
                            }
                        }
                    }
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                {