1
huangxiaoqiang
9 天以前 dda095e27b535d5748340f127c5f83c0d1324226
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVSignal.cs
@@ -88,45 +88,48 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
                if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarry)
                {
                    if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarry)
                    if (task.Floor == "1F")
                    {
                        if (task.Floor == "1F")
                        {
                            elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
                        }
                        else
                        {
                            elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
                        }
                        _taskService.UpdateTaskStatusToNext(task.TaskNum);
                        content.OK();
                        elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
                    }
                    else if (task.TaskState == (int)TaskAcrossFloorStatusEnum.EndAddressExecuting)
                    else
                    {
                        _taskService.UpdateTaskStatusToNext(task.TaskNum);
                        content.OK();
                        elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
                    }
                    _taskService.UpdateTaskStatusToNext(task.TaskNum);
                    content.OK();
                }
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.CarryGroup)
                else if (task.TaskState == (int)TaskAcrossFloorStatusEnum.EndAddressExecuting)
                {
                    _taskService.UpdateTaskStatusToNext(task.TaskNum);
                    content.OK();
                }
                if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
                {
                    _taskService.UpdateTaskStatusToNext(task.TaskNum);
                }
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
                {
                    if (task.TaskState == (int)TaskOutStatusEnum.AGV_OutExecuting)
                    {
                        _taskService.UpdateTaskStatusToNext(task.TaskNum);
                    }
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.InboundGroup)
                {
                    commonConveyorLine.Communicator.WriteNoRead("DB100.0", 9990);
                    commonConveyorLine.SetValue(ConveyorLineDBName.PutFinish, 1, "LK001");
                    Thread.Sleep(1000);
                    commonConveyorLine.Communicator.WriteNoRead("DB100.0", 9990);
                    commonConveyorLine.Communicator.WriteNoRead("DB100.4", Convert.ToInt16(task.TaskNum));
                    task.TaskState = (int)TaskInStatusEnum.Line_InExecuting;
                    task.TaskState = (int)TaskInStatusEnum.AGV_InFinish;
                    _taskRepository.UpdateData(task);
                    _taskService.UpdateTaskStatusToNext(task.TaskNum);
                    content.OK();
                }
            }
@@ -147,28 +150,28 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
                {
                    if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry)
                    {
                        if (task.Floor == "1F")
                        {
                            elevator.SetValue(ElevatorDBName.OneLayerPickUpFinish, 1);
                        }
                        else
                        {
                            elevator.SetValue(ElevatorDBName.TwoLayerPickUpFinish, 1);
                        }
                        task.TaskState = (int)TaskAcrossFloorStatusEnum.EndAddressExecuting;
                        _taskRepository.UpdateData(task);
                    }
                }
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry)
                {
                    if (task.Floor == "1F")
                    {
                        elevator.SetValue(ElevatorDBName.OneLayerPickUpFinish, 1);
                    }
                    else
                    {
                        elevator.SetValue(ElevatorDBName.TwoLayerPickUpFinish, 1);
                    }
                    task.TaskState = (int)TaskAcrossFloorStatusEnum.EndAddressExecuting;
                    _taskRepository.UpdateData(task);
                }
                if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
                {
                    commonConveyorLine.SetValue(ConveyorLineDBName.PickUpFinish, 1, "LK001");
                    task.TaskState = (int)TaskOutStatusEnum.AGV_OutExecuting;
                    _taskRepository.UpdateData(task);
                    //task.TaskState = (int)TaskOutStatusEnum.AGV_OutExecuting;
                    //_taskRepository.UpdateData(task);
                    _taskService.UpdateTaskStatusToNext(task.TaskNum);
                    content.OK();
                }
            }
@@ -189,48 +192,46 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
                if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry)
                {
                    if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry)
                    if (task.Floor == "1F")
                    {
                        if (task.Floor == "1F")
                        if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.OneLayerAllowPickUp) == 1)
                        {
                            if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.OneLayerAllowPickUp) == 1)
                            {
                                _taskService.ContinueAgvTask(task.AGVTaskNum);
                                content.OK();
                            }
                            else
                            {
                                task.AGVSign = "RequestPickUp";
                                _taskRepository.UpdateData(task);
                                content.Error("设备不允许取货");
                            }
                            _taskService.ContinueAgvTask(task.AGVTaskNum);
                            content.OK();
                        }
                        else
                        {
                            if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.TwoLayerAllowPickUp) == 1)
                            {
                                _taskService.ContinueAgvTask(task.AGVTaskNum);
                                content.OK();
                            }
                            else
                            {
                                task.AGVSign = "RequestPickUp";
                                _taskRepository.UpdateData(task);
                                content.Error("设备不允许取货");
                            }
                            task.AGVSign = "RequestPickUp";
                            _taskRepository.UpdateData(task);
                            content.Error("设备不允许取货");
                        }
                    }
                    else
                    {
                        if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.TwoLayerAllowPickUp) == 1)
                        {
                            _taskService.ContinueAgvTask(task.AGVTaskNum);
                            content.OK();
                        }
                        else
                        {
                            task.AGVSign = "RequestPickUp";
                            _taskRepository.UpdateData(task);
                            content.Error("设备不允许取货");
                        }
                    }
                }
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
                {
                    if (commonConveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPickUp, "LK001") == 1)
                    {
                        _taskService.ContinueAgvTask(task.AGVTaskNum);
                        task.TaskState = (int)TaskOutStatusEnum.Line_OutFinish;
                        _taskRepository.UpdateData(task);
                        //task.TaskState = (int)TaskOutStatusEnum.Line_OutFinish;
                        //_taskRepository.UpdateData(task);
                        _taskService.UpdateTaskStatusToNext(task.TaskNum);
                        content.OK();
                    }
                    else
@@ -260,42 +261,39 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup)
                if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarry)
                {
                    if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarry)
                    if (task.Floor == "1F")
                    {
                        if (task.Floor == "1F")
                        if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.OneLayerAllowPut) == 1)
                        {
                            if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.OneLayerAllowPut) == 1)
                            {
                                _taskService.ContinueAgvTask(task.AGVTaskNum);
                                content.OK();
                            }
                            else
                            {
                                task.AGVSign = "RequestPut";
                                _taskRepository.UpdateData(task);
                                content.Error("设备不允许放货");
                            }
                            _taskService.ContinueAgvTask(task.AGVTaskNum);
                            content.OK();
                        }
                        else
                        {
                            if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.TwoLayerAllowPut) == 1)
                            {
                                _taskService.ContinueAgvTask(task.AGVTaskNum);
                                content.OK();
                            }
                            else
                            {
                                task.AGVSign = "RequestPut";
                                _taskRepository.UpdateData(task);
                                content.Error("设备不允许放货");
                            }
                            task.AGVSign = "RequestPut";
                            _taskRepository.UpdateData(task);
                            content.Error("设备不允许放货");
                        }
                    }
                    else
                    {
                        if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.TwoLayerAllowPut) == 1)
                        {
                            _taskService.ContinueAgvTask(task.AGVTaskNum);
                            content.OK();
                        }
                        else
                        {
                            task.AGVSign = "RequestPut";
                            _taskRepository.UpdateData(task);
                            content.Error("设备不允许放货");
                        }
                    }
                }
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.InboundGroup)
                {
                    if (commonConveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPut, "LK001") == 1)
                    {
@@ -323,22 +321,5 @@
        #endregion
        #region èŽ·å–AGV任务号
        private static readonly Random _random = new Random();
        public static string GenerateUniqueId()
        {
            // èŽ·å–å½“å‰æ¯«ç§’çº§æ—¶é—´æˆ³
            long timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
            // ç”Ÿæˆ4位随机数(0000-9999)
            int randomNumber = _random.Next(0, 10000);
            string randomPart = randomNumber.ToString("D4"); // è¡¥é›¶åˆ°4位
            return $"{timestamp}{randomPart}";
        }
        #endregion
    }
}