| | |
| | | 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") |
| | | { |
| | | Dt_StationManager stationManager = new Dt_StationManager(); |
| | | string TaskTemplate = string.Empty; |
| | | if (task.Floor == "1F") |
| | | { |
| | | stationManager = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == "2F"); |
| | | elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1); |
| | | TaskTemplate = "BBB"; |
| | | //请æ±WMS跨楼å±2ä»»å¡ |
| | | } |
| | | else |
| | | { |
| | | stationManager = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == "1F"); |
| | | elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1); |
| | | //请æ±WMS跨楼å±2ä»»å¡ |
| | | TaskTemplate = "CCC"; |
| | | } |
| | | task.TaskState = (int)TaskAcrossFloorStatusEnum.FirstCarryFinish; |
| | | task.ModifyDate = DateTime.Now; |
| | | task.Modifier = "System"; |
| | | |
| | | Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task); |
| | | task_Hty.TaskId = 0; |
| | | |
| | | _taskRepository.DeleteData(task); |
| | | _taskhtyRepository.AddData(task_Hty); |
| | | Random random = new Random(); |
| | | int randomNumber = random.Next(1000, 10000); |
| | | |
| | | WMSTaskDTO taskDTO = new WMSTaskDTO() |
| | | { |
| | | Id = 1, |
| | | TaskNum = randomNumber, |
| | | RoadWay = "AGV", |
| | | TaskType = (int)TaskAcrossFloorTypeEnum.AcrossFloorCarry, |
| | | TaskState = (int)TaskAcrossFloorStatusEnum.SecondCarry, |
| | | PalletCode = task.PalletCode, |
| | | SourceAddress = stationManager.stationChildCode, |
| | | TargetAddress = task.TargetAddress, |
| | | Grade = 1, |
| | | AGVTaskNum = GenerateUniqueId() |
| | | }; |
| | | Dt_Task SecondCarry = _mapper.Map<Dt_Task>(taskDTO); |
| | | task.Creater = "WMS"; |
| | | |
| | | SecondCarry.CurrentAddress = stationManager.stationChildCode; |
| | | |
| | | SecondCarry.NextAddress = task.TargetAddress; |
| | | |
| | | SecondCarry.Floor = stationManager.stationFloor; |
| | | |
| | | SecondCarry.AGVSign = ""; |
| | | |
| | | _taskRepository.AddData(SecondCarry); |
| | | |
| | | _taskService.SendAgvTask(TaskTemplate, SecondCarry.TaskNum); |
| | | content.OK(); |
| | | elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1); |
| | | } |
| | | else if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry) |
| | | else |
| | | { |
| | | task.TaskState = (int)TaskAcrossFloorStatusEnum.SecondCarryFinish; |
| | | task.ModifyDate = DateTime.Now; |
| | | task.Modifier = "System"; |
| | | |
| | | Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task); |
| | | task_Hty.TaskId = 0; |
| | | |
| | | _taskRepository.DeleteData(task); |
| | | _taskhtyRepository.AddData(task_Hty); |
| | | 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.SetValue(ConveyorLineDBName.PutFinish, 1, "LK001"); |
| | | commonConveyorLine.Communicator.WriteNoRead("DB100.0", 9990); |
| | |
| | | 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; |
| | |
| | | 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) |
| | | { |
| | |
| | | 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) |
| | | { |
| | |
| | | |
| | | #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 |
| | | } |
| | | } |