wangxinhui
2025-07-30 88676143aeceaeec3bd108f9cd609c4f3470ba96
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/¸¨ÁϲÖ/ConveyorLineJob_FL.cs
@@ -75,15 +75,28 @@
                        {
                            R_ConveyorLineFLInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_ConveyorLineFLInfo>(deviceProRead.DeviceProAddress);
                            bool conveyArrivaled = device.GetValue<R_ConveyorLineFLDB, bool>(R_ConveyorLineFLDB.ConveyArrivaled, item.StationCode);
                            if (conveyArrivaled)
                            //输送线取料口到位更新任务状态
                            if (conveyorLineInfoRead!=null && conveyArrivaled)
                            {
                                Dt_Task newTask = _taskRepository.QueryFirst(x => x.TaskNum == conveyorLineInfoRead.TaskNum.ObjToInt() && x.PalletCode == conveyorLineInfoRead.Barcode && x.TaskState == TaskStatusEnum.New.ObjToInt() && x.DeviceCode == item.StackerCraneCode && !string.IsNullOrEmpty(x.DeviceCode));
                                if (newTask != null)
                                Dt_Task LineTask = _taskRepository.QueryFirst(x => x.TaskNum == conveyorLineInfoRead.TaskNum.ObjToInt() && x.PalletCode == conveyorLineInfoRead.Barcode && x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt() && x.DeviceCode == item.StackerCraneCode);
                                if (LineTask != null)
                                {
                                    _taskService.UpdateTask(newTask, TaskStatusEnum.AGV_Execute);
                                    _taskService.UpdateTask(LineTask, TaskStatusEnum.AGV_Execute);
                                }
                                WriteError(item.StationName, $"入库到位信号,托盘号{conveyorLineInfoRead.Barcode},任务号:{conveyorLineInfoRead.TaskNum}");
                            }
                            //发送输送线任务
                            Dt_Task? newTask = _taskRepository.QueryData(x => x.TaskState == TaskStatusEnum.New.ObjToInt() && x.DeviceCode == item.StackerCraneCode && x.TaskType>=TaskTypeEnum.Inbound.ObjToInt()).OrderBy(x=>x.TaskNum).FirstOrDefault();
                            if (newTask != null)
                            {
                                device.SetValue(W_ConveyorLineFLDB.Barcode, newTask.PalletCode, item.StationCode);
                                Thread.Sleep(500);
                                device.SetValue(W_ConveyorLineFLDB.TaskNum, newTask.TaskNum, item.StationCode);
                                Thread.Sleep(500);
                                device.SetValue(GroundStationDBName.W_PutFinish, true, item.StationCode);
                                _taskService.UpdateTask(newTask, TaskStatusEnum.Line_Executing);
                            }
                        }
                    }