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