huangxiaoqiang
2025-08-26 efc4ebd67444a34bc66ac04c23f2410fcdd47ef8
ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Tasks/³ÉÆ·²Ö/AGV_CPExtend.cs
@@ -22,7 +22,7 @@
        {
            try
            {
                var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == TaskStatusEnum.AGV_Execute.ObjToInt()|| x.TaskState == TaskStatusEnum.New.ObjToInt()) && x.DeviceCode=="AGV" && x.TaskType!=999).ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList();
                var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == TaskStatusEnum.AGV_Execute.ObjToInt()|| x.TaskState == TaskStatusEnum.New.ObjToInt()) && x.DeviceCode=="AGV").ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList();
                if (newTasks.Count>0)
                {
@@ -48,6 +48,7 @@
                                    Code= "GoodPoint",
                                    Value=stationMangerStart.AGVStationCode
                                };
                                //判断是否有前置点
                                if (!string.IsNullOrEmpty(stationMangerStart.AGVFrontCode))
                                {
                                    PointDetail pointDetail2 = new PointDetail()
@@ -62,7 +63,8 @@
                                    Code = "PointB",
                                    Value = stationMangerEnd.AGVStationCode
                                };
                                if (!string.IsNullOrEmpty(stationMangerStart.AGVFrontCode))
                                //判断是否有前置点
                                if (!string.IsNullOrEmpty(stationMangerEnd.AGVFrontCode))
                                {
                                    PointDetail pointDetail4 = new PointDetail()
                                    {
@@ -90,13 +92,61 @@
                            {
                                throw new Exception("未找到AGV站点");
                            }
                            //取放任务模版
                            if (stationMangerStart.StationCode.Contains("PNT") && !stationMangerEnd.StationCode.Contains("PNT"))//请求放
                            {
                                agvTaskSend.TaskCode = "DUIGAO1";
                                if (stationMangerStart.StationType == 998 || stationMangerEnd.StationType == 998)//潜伏顶升车
                                {
                                    agvTaskSend.TaskCode = "DUOLUN1";
                                }
                            }
                            else if (!stationMangerStart.StationCode.Contains("PNT") && stationMangerEnd.StationCode.Contains("PNT"))//请求取
                            {
                                agvTaskSend.TaskCode = "DUIGAO2";
                                if (stationMangerStart.StationType==998 || stationMangerEnd.StationType == 998)//潜伏顶升车
                                {
                                    agvTaskSend.TaskCode = "DUOLUN2";
                                }
                            }
                            else if (!stationMangerStart.StationCode.Contains("PNT") && !stationMangerEnd.StationCode.Contains("PNT"))//请求取放
                            {
                                agvTaskSend.TaskCode = "DUIGAO3";
                                if (stationMangerStart.StationType == 998 || stationMangerEnd.StationType == 998)//潜伏顶升车
                                {
                                    agvTaskSend.TaskCode = "DUOLUN3";
                                }
                            }
                            else if (stationMangerStart.StationCode.Contains("PNT") && stationMangerEnd.StationCode.Contains("PNT"))//无请求
                            {
                                agvTaskSend.TaskCode = "DUIGAO4";
                                if (stationMangerStart.StationType == 998 || stationMangerEnd.StationType == 998)//潜伏顶升车
                                {
                                    agvTaskSend.TaskCode = "DUOLUN4";
                                }
                            }
                            if (stationMangerStart.StationType == 998 || stationMangerEnd.StationType == 998)//潜伏顶升车
                            {
                                agvTaskSend.Variables.FirstOrDefault(x => x.Code == "FHMH").Value = "0";
                                agvTaskSend.Variables.FirstOrDefault(x => x.Code == "GoodPoint").Value = "";
                                //下发任务AGV任务集群
                                agvTaskSend.AgvGroupCode = "QianF";
                                PointDetail pointDetail2 = new PointDetail()
                                {
                                    Code = "CostPoint",
                                    Value = stationMangerStart.AGVStationCode
                                };
                                agvTaskSend.Variables.Add(pointDetail2);
                            }
                            //延时
                            Thread.Sleep(500);
                            //发送AGV任务
                            WebResponseContent content = _taskService.AgvSendTask(agvTaskSend, APIEnum.AgvSendTask);
                            if (!content.Status)
                                throw new Exception(content.Message);
                            task.Dispatchertime = DateTime.Now;
                            _taskService.UpdateTask(task, TaskStatusEnum.AGV_Executing);
                            Thread.Sleep(500);
                            Thread.Sleep(200);
                        }
                        catch (Exception ex)
                        {
@@ -104,6 +154,7 @@
                            task.ExceptionMessage = ex.Message;
                        }
                    }
                    //更新任务
                    if (newTasks.Count > 0)
                    {
                        _taskService.UpdateData(newTasks);