huangxiaoqiang
2025-11-29 f9e8a2d52fe52fb2389892a46c12d4d262ee9aaf
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -141,6 +141,8 @@
                            task.Floor = item.Floor;
                            task.AGVSign = "";
                            task.DoubleTray = item.DoubleTray;
                        }
                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
                        {
@@ -187,6 +189,8 @@
                            task.Floor = item.Floor;
                            task.AGVSign = "";
                            task.DoubleTray = item.DoubleTray;
                        }
                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
                        {
@@ -232,6 +236,8 @@
                            task.Floor = item.Floor;
                            task.AGVSign = "";
                            task.DoubleTray = item.DoubleTray;
                        }
                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
                        {
@@ -583,6 +589,66 @@
                    if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarryFinish)
                    {
                        if (task.DoubleTray != 1)
                        {
                            RequestAcrossFloor(task,0);
                        }
                        else
                        {
                            var taskDouble = BaseDal.QueryFirst(x => x.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarryFinish);
                            if (taskDouble != null)
                            {
                                RequestAcrossFloor(task,1);
                                RequestAcrossFloor(taskDouble,1);
                            }
                        }
                    }
                }
                else
                {
                    throw new Exception($"任务类型错误,未找到该任务类型,任务号:【{task.TaskNum}】,任务类型:【{task.TaskType}】");
                }
                if (task.TaskState <= 0)
                {
                    return content = WebResponseContent.Instance.Error($"该任务状态不可跳转到下一步,任务号:【{task.TaskNum}】,任务状态:【{task.TaskState}】");
                }
                task.ModifyDate = DateTime.Now;
                task.Modifier = "System";
                BaseDal.UpdateData(task);
                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"人工手动将任务状态从【{oldState}】跳转到【{task.TaskState}】" : $"系统自动流程,任务状态从【{oldState}】转到【{task.TaskState}】");
                #region æ›´æ–°ä»»åŠ¡çŠ¶æ€
                // èŽ·å–WMSip地址
                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTaskStatus)?.ConfigValue;
                if (wmsBase == null || updateTask == null)
                {
                    throw new InvalidOperationException("WMS IP æœªé…ç½®");
                }
                var wmsIpAddress = wmsBase + updateTask;
                var result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result;
                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
                #endregion æ›´æ–°ä»»åŠ¡çŠ¶æ€
                content = WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                content = WebResponseContent.Instance.Error(ex.Message);
            }
            return content;
        }
        public WebResponseContent RequestAcrossFloor(Dt_Task task,int DoubleTray)
        {
            WebResponseContent content = new WebResponseContent();
                        Dt_StationManager stationManager = new Dt_StationManager();
                        string TaskTemplate = string.Empty;
                        if (task.Floor == "1F")
@@ -637,6 +703,8 @@
                        taskNew.AGVSign = "";
            taskNew.DoubleTray = DoubleTray;
                        task.TaskState = (int)TaskAcrossFloorStatusEnum.FirstCarryFinish;
                        task.ModifyDate = DateTime.Now;
                        task.Modifier = "System";
@@ -649,49 +717,7 @@
                        BaseDal.AddData(taskNew);
                        SendAgvTask(TaskTemplate, taskNew.TaskNum);
                    }
                }
                else
                {
                    throw new Exception($"任务类型错误,未找到该任务类型,任务号:【{task.TaskNum}】,任务类型:【{task.TaskType}】");
                }
                if (task.TaskState <= 0)
                {
                    return content = WebResponseContent.Instance.Error($"该任务状态不可跳转到下一步,任务号:【{task.TaskNum}】,任务状态:【{task.TaskState}】");
                }
                task.ModifyDate = DateTime.Now;
                task.Modifier = "System";
                BaseDal.UpdateData(task);
                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"人工手动将任务状态从【{oldState}】跳转到【{task.TaskState}】" : $"系统自动流程,任务状态从【{oldState}】转到【{task.TaskState}】");
                #region æ›´æ–°ä»»åŠ¡çŠ¶æ€
                // èŽ·å–WMSip地址
                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTaskStatus)?.ConfigValue;
                if (wmsBase == null || updateTask == null)
                {
                    throw new InvalidOperationException("WMS IP æœªé…ç½®");
                }
                var wmsIpAddress = wmsBase + updateTask;
                var result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result;
                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
                #endregion æ›´æ–°ä»»åŠ¡çŠ¶æ€
                content = WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                content = WebResponseContent.Instance.Error(ex.Message);
            }
            return content;
            return SendAgvTask(TaskTemplate, taskNew.TaskNum);
        }
        public string GetLocation(string palletCode)