From 885092869d8a27a0b77d6e55d3dd3f00f29e8002 Mon Sep 17 00:00:00 2001
From: yangpeixing <yangpeixing@hnkhzn.com>
Date: 星期四, 04 十二月 2025 15:45:48 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/CommonElevatorJob.cs |  174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 168 insertions(+), 6 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/CommonElevatorJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/CommonElevatorJob.cs"
index c9d73ed..8d483f8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/CommonElevatorJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/CommonElevatorJob.cs"
@@ -1,11 +1,15 @@
-锘縰sing Quartz;
+锘縰sing 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;
@@ -13,6 +17,7 @@
 using WIDESEAWCS_QuartzJob.Repository;
 using WIDESEAWCS_QuartzJob.Service;
 using WIDESEAWCS_SignalR;
+using WIDESEAWCS_Tasks.ConveyorLineJob;
 using WIDESEAWCS_Tasks.ElevatorJob;
 
 namespace WIDESEAWCS_Tasks
@@ -20,9 +25,16 @@
     [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)
@@ -32,10 +44,160 @@
                 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;
             }

--
Gitblit v1.9.3