| | |
| | | using Quartz; |
| | | using Masuit.Tools; |
| | | using Quartz; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Reflection.Metadata; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_BasicInfoRepository; |
| | | using WIDESEAWCS_BasicInfoService; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_IBasicInfoRepository; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | |
| | | using WIDESEAWCS_QuartzJob.Repository; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using WIDESEAWCS_SignalR; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using WIDESEAWCS_Tasks.ElevatorJob; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | |
| | | [DisallowConcurrentExecution] |
| | | public partial class CommonElevatorJob : JobBase, IJob |
| | | { |
| | | public CommonElevatorJob() |
| | | private readonly ITaskRepository _taskRepository; |
| | | private readonly ITask_HtyRepository _taskhtyRepository; |
| | | private readonly ITaskService _taskService; |
| | | private readonly IDt_StationManagerRepository _stationManagerRepository; |
| | | public CommonElevatorJob(ITaskRepository taskRepository, ITaskService taskService, IDt_StationManagerRepository stationManagerRepository, ITask_HtyRepository taskhtyRepository) |
| | | { |
| | | |
| | | _taskRepository = taskRepository; |
| | | _taskService = taskService; |
| | | _stationManagerRepository = stationManagerRepository; |
| | | _taskhtyRepository = taskhtyRepository; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | |
| | | CommonElevator elevator = (CommonElevator)context.JobDetail.JobDataMap.Get("JobParams"); |
| | | if(elevator != null) |
| | | { |
| | | //è·åæåæºå½å模å¼0-æå¨\æ
éãç»´æ¤æ¨¡å¼ï¼1-èªå¨æ¨¡å¼ |
| | | var x = elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.Model); |
| | | var elevatorNum = 0; |
| | | //è·åæåæºç¶æçæ¾ç¤º =0æ ç¶æï¼=1è¿è¡ä¸ï¼=2å¾
æºï¼=3æ¥è¦ |
| | | if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.ElevatorStatus) == 2) |
| | | { |
| | | //è·åæåæºæå¨/èªå¨åæ¢å¼å
³ç¶æ |
| | | if(elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.ManualAutoSwitch) == 1) |
| | | { |
| | | //è·åæåæºæ¯å¦è½å
许åå§å |
| | | if(elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.AllowInitialization) == 1) |
| | | { |
| | | if(elevatorNum == 0) |
| | | { |
| | | if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.InitializationFlag) == 0) |
| | | { |
| | | elevator.SetValue<ElevatorDBName, short>(ElevatorDBName.InitializationTrigger, 1); |
| | | Thread.Sleep(1000); |
| | | elevator.SetValue<ElevatorDBName, short>(ElevatorDBName.InitializationTrigger, 0); |
| | | } |
| | | elevatorNum++; |
| | | } |
| | | Thread.Sleep(1000); |
| | | if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.InitializationFlag) == 1) |
| | | { |
| | | elevatorNum++; |
| | | } |
| | | if(elevatorNum == 2) |
| | | { |
| | | Thread.Sleep(5000); |
| | | var TaskDouble = _taskRepository.QueryData(x => x.TaskState > (int)TaskAcrossFloorStatusEnum.CarryNew && x.TaskState < (int)TaskAcrossFloorStatusEnum.EndAddressExecuting && x.DoubleTray == 1); |
| | | var task = _taskRepository.QueryFirst(x => x.TaskState > (int)TaskAcrossFloorStatusEnum.CarryNew && x.TaskState < (int)TaskAcrossFloorStatusEnum.EndAddressExecuting); |
| | | if(TaskDouble.Count() > 0) |
| | | { |
| | | if (TaskDouble.First().Floor == "2F") |
| | | { |
| | | elevator.SetValue(ElevatorDBName.TaskNum, Convert.ToInt16(TaskDouble.First().TaskNum)); |
| | | elevator.SetValue(ElevatorDBName.FlagBit, Convert.ToInt16(2)); |
| | | elevator.SetValue(ElevatorDBName.StartFloor, Convert.ToInt16(1)); |
| | | elevator.SetValue(ElevatorDBName.EdnFloor, Convert.ToInt16(2)); |
| | | Thread.Sleep(1000); |
| | | elevator.SetValue(ElevatorDBName.StartCommand, Convert.ToInt16(1)); |
| | | |
| | | |
| | | _taskService.SendAgvTask("AAA", TaskDouble.First().TaskNum); |
| | | _taskService.UpdateTaskStatusToNext(TaskDouble.First().TaskNum); |
| | | } |
| | | else |
| | | { |
| | | elevator.SetValue(ElevatorDBName.TaskNum, Convert.ToInt16(TaskDouble.First().TaskNum)); |
| | | elevator.SetValue(ElevatorDBName.FlagBit, Convert.ToInt16(2)); |
| | | elevator.SetValue(ElevatorDBName.StartFloor, Convert.ToInt16(2)); |
| | | elevator.SetValue(ElevatorDBName.EdnFloor, Convert.ToInt16(1)); |
| | | Thread.Sleep(1000); |
| | | elevator.SetValue(ElevatorDBName.StartCommand, Convert.ToInt16(1)); |
| | | |
| | | _taskService.SendAgvTask("DDD", TaskDouble.First().TaskNum); |
| | | _taskService.UpdateTaskStatusToNext(TaskDouble.First().TaskNum); |
| | | } |
| | | } |
| | | if (task != null) |
| | | { |
| | | if (task.Floor == "2F") |
| | | { |
| | | elevator.SetValue(ElevatorDBName.TaskNum, Convert.ToInt16(task.TaskNum)); |
| | | elevator.SetValue(ElevatorDBName.FlagBit, Convert.ToInt16(2)); |
| | | elevator.SetValue(ElevatorDBName.StartFloor, Convert.ToInt16(1)); |
| | | elevator.SetValue(ElevatorDBName.EdnFloor, Convert.ToInt16(2)); |
| | | Thread.Sleep(1000); |
| | | elevator.SetValue(ElevatorDBName.StartCommand, Convert.ToInt16(1)); |
| | | |
| | | _taskService.SendAgvTask("AAA", task.TaskNum); |
| | | _taskService.UpdateTaskStatusToNext(task.TaskNum); |
| | | } |
| | | else |
| | | { |
| | | elevator.SetValue(ElevatorDBName.TaskNum, Convert.ToInt16(task.TaskNum)); |
| | | elevator.SetValue(ElevatorDBName.FlagBit, Convert.ToInt16(2)); |
| | | elevator.SetValue(ElevatorDBName.StartFloor, Convert.ToInt16(2)); |
| | | elevator.SetValue(ElevatorDBName.EdnFloor, Convert.ToInt16(1)); |
| | | Thread.Sleep(1000); |
| | | elevator.SetValue(ElevatorDBName.StartCommand, Convert.ToInt16(1)); |
| | | |
| | | _taskService.SendAgvTask("DDD", task.TaskNum); |
| | | _taskService.UpdateTaskStatusToNext(task.TaskNum); |
| | | } |
| | | } |
| | | if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.InitializationFlag) == 0) |
| | | { |
| | | elevator.SetValue<ElevatorDBName, short>(ElevatorDBName.StartElevator, 1); |
| | | Thread.Sleep(2000); |
| | | elevator.SetValue<ElevatorDBName, short>(ElevatorDBName.StartElevator, 0); |
| | | elevatorNum = 0; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //è·åæåæºå½å模å¼0-æå¨\æ
éãç»´æ¤æ¨¡å¼ï¼1-èªå¨æ¨¡å¼ |
| | | if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.Model) == 1) |
| | | { |
| | | var task = _taskService.QueryRequestTSJSignalTask(); |
| | | |
| | | if (task != null && task.AGVSign == "RequestPickUp") |
| | | { |
| | | |
| | | if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry) |
| | | { |
| | | if (task.Floor == "1F") |
| | | { |
| | | if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.OneLayerAllowPickUp) == 1) |
| | | { |
| | | _taskService.ContinueAgvTask(task.AGVTaskNum); |
| | | task.AGVSign = ""; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.TwoLayerAllowPickUp) == 1) |
| | | { |
| | | _taskService.ContinueAgvTask(task.AGVTaskNum); |
| | | task.AGVSign = ""; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | if (task != null && task.AGVSign == "RequestPut") |
| | | { |
| | | if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarry) |
| | | { |
| | | if (task.Floor == "1F") |
| | | { |
| | | if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.OneLayerAllowPut) == 1) |
| | | { |
| | | _taskService.ContinueAgvTask(task.AGVTaskNum); |
| | | task.AGVSign = ""; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.TwoLayerAllowPut) == 1) |
| | | { |
| | | _taskService.ContinueAgvTask(task.AGVTaskNum); |
| | | task.AGVSign = ""; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | return Task.CompletedTask; |
| | | } |