huangxiaoqiang
8 小时以前 16749e23b489ee24f993fe9e87346680b7bcf63a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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;
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
    {
        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)
        {
            try
            {
                CommonElevator elevator = (CommonElevator)context.JobDetail.JobDataMap.Get("JobParams");
                if(elevator != null)
                {
                    //获取提升机当前模式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;
            }
            catch (Exception)
            {
 
                throw;
            }
        }
    }
}