From 0939aa5f3cc12a8856456a51cf2b661b6cd780c7 Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期四, 31 七月 2025 17:25:49 +0800 Subject: [PATCH] 1 --- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs | 224 ++++++++++++++++--------------------------------------- 1 files changed, 66 insertions(+), 158 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs" index 52840da..73bf77f 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs" @@ -19,8 +19,10 @@ using HslCommunication; using Microsoft.Extensions.Logging; using Newtonsoft.Json; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; using Quartz; using SixLabors.ImageSharp.Drawing; +using SqlSugar; using System.Diagnostics.CodeAnalysis; using System.Reflection; using System.Text; @@ -59,12 +61,12 @@ private readonly IDt_StationManagerService _stationManagerService; private readonly IDt_StationManagerRepository _stationManagerRepository; private readonly IMapper _mapper; - private readonly ICacheService _cacheService; + private readonly WIDESEAWCS_Core.Caches.ICacheService _cacheService; private readonly INoticeService _noticeService; private static List<string>? userTokenIds; private static List<int>? userIds; - public CommonRGV_FirstFloorJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IDt_StationManagerService stationManagerService, IMapper mapper, ICacheService cacheService, INoticeService noticeService, ITaskRepository taskRepository, IDt_StationManagerRepository stationManagerRepository) + public CommonRGV_FirstFloorJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IDt_StationManagerService stationManagerService, IMapper mapper, WIDESEAWCS_Core.Caches.ICacheService cacheService, INoticeService noticeService, ITaskRepository taskRepository, IDt_StationManagerRepository stationManagerRepository) { _taskService = taskService; _taskExecuteDetailService = taskExecuteDetailService; @@ -79,7 +81,7 @@ public Task Execute(IJobExecutionContext context) { - Console.WriteLine(DateTime.Now.ToString() + "锛岀嚎绋婭D锛�" + Thread.CurrentThread.ManagedThreadId); + //Console.WriteLine(DateTime.Now.ToString() + "锛岀嚎绋婭D锛�" + Thread.CurrentThread.ManagedThreadId); try { //鐢ㄨ繖绉嶆柟寮忚兘纭繚绫诲瀷杞崲涓嶄細鏈夐棶棰� @@ -105,14 +107,17 @@ var IsExecutingTask = DispatchExecutingTask(FirstRgv, task); if (IsExecutingTask != null) { - RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(task); + RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(IsExecutingTask); if (rgvTaskCommand != null) { Thread.Sleep(1000); bool sendFlag = SendCommand(FirstRgv, rgvTaskCommand); if (sendFlag) { - _taskService.UpdateTaskStatusToNext(task.TaskNum); + IsExecutingTask.RGVName = FirstRgv.DeviceCode; + _taskRepository.UpdateData(IsExecutingTask); + _taskService.UpdateTaskStatusToNext(IsExecutingTask.TaskNum); + Thread.Sleep(1000); } } } @@ -129,7 +134,10 @@ bool sendFlag = SendCommand(FirstRgv, rgvTaskCommand); if (sendFlag) { + taskNew.RGVName = FirstRgv.DeviceCode; + _taskRepository.UpdateData(taskNew); _taskService.UpdateTaskStatusToNext(taskNew.TaskNum); + Thread.Sleep(1000); } } } @@ -164,6 +172,7 @@ Running = RGVWorkStatus(FirstRgv.GetValue<RGVDBName, bool>(RGVDBName.Running)), LevelPoint = FirstRgv.GetValue<RGVDBName, int>(RGVDBName.LevelPoint), CurrentTaskNum = FirstRgv.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum), + RGVAlarm = FirstRgv.GetValue<RGVDBName, uint>(RGVDBName.RGVAlarm), FirstRgv.DeviceCode, FirstRgv.DeviceName, }; @@ -175,16 +184,16 @@ } else { - if (commonRGVFirst == null) - Console.WriteLine($"RGV01鏈壘鍒拌澶囧璞$殑鍊�"); - else - Console.WriteLine($"RGV01璁惧瀵硅薄绫诲瀷閿欒"); + //if (commonRGVFirst == null) + // Console.WriteLine($"RGV01鏈壘鍒拌澶囧璞$殑鍊�"); + //else + // Console.WriteLine($"RGV01璁惧瀵硅薄绫诲瀷閿欒"); } #endregion #region RGV02璋冨害 - if (commonRGVSecond != null && commonRGVFirst is CommonRGV_FirstFloor SecondRgv)//杩欐牱鑳界湅鍑烘潵浼犲弬鍒板簳鍝噷鏈夐棶棰� + if (commonRGVSecond != null && commonRGVSecond is CommonRGV_FirstFloor SecondRgv)//杩欐牱鑳界湅鍑烘潵浼犲弬鍒板簳鍝噷鏈夐棶棰� { if (SecondRgv.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.WorkCompleted)) { @@ -196,14 +205,20 @@ if (task != null) { var IsExecutingTask = DispatchExecutingTask(SecondRgv, task); - RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(task); - if (rgvTaskCommand != null) + if (IsExecutingTask != null) { - Thread.Sleep(1000); - bool sendFlag = SendCommand(SecondRgv, rgvTaskCommand); - if (sendFlag) + RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(IsExecutingTask); + if (rgvTaskCommand != null) { - _taskService.UpdateTaskStatusToNext(task.TaskNum); + Thread.Sleep(1000); + bool sendFlag = SendCommand(SecondRgv, rgvTaskCommand); + if (sendFlag) + { + IsExecutingTask.RGVName = SecondRgv.DeviceCode; + _taskRepository.UpdateData(IsExecutingTask); + _taskService.UpdateTaskStatusToNext(IsExecutingTask.TaskNum); + Thread.Sleep(1000); + } } } } @@ -219,7 +234,10 @@ bool sendFlag = SendCommand(SecondRgv, rgvTaskCommand); if (sendFlag) { + taskNew.RGVName = SecondRgv.DeviceCode; + _taskRepository.UpdateData(taskNew); _taskService.UpdateTaskStatusToNext(taskNew.TaskNum); + Thread.Sleep(1000); } } } @@ -254,6 +272,7 @@ Running = RGVWorkStatus(SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.Running)), LevelPoint = SecondRgv.GetValue<RGVDBName, int>(RGVDBName.LevelPoint), CurrentTaskNum = SecondRgv.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum), + RGVAlarm = SecondRgv.GetValue<RGVDBName, uint>(RGVDBName.RGVAlarm), SecondRgv.DeviceCode, SecondRgv.DeviceName, }; @@ -265,10 +284,10 @@ } else { - if (commonRGVSecond == null) - Console.WriteLine($"RGV02鏈壘鍒拌澶囧璞$殑鍊�"); - else - Console.WriteLine($"RGV02璁惧瀵硅薄绫诲瀷閿欒"); + //if (commonRGVSecond == null) + // Console.WriteLine($"RGV02鏈壘鍒拌澶囧璞$殑鍊�"); + //else + // Console.WriteLine($"RGV02璁惧瀵硅薄绫诲瀷閿欒"); } #endregion //} @@ -289,22 +308,7 @@ CommonRGV_FirstFloor? commonRGVSecond = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "RGV02") as CommonRGV_FirstFloor; if (commonRGVSecond != null) { - if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)) - { - if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000) - { - RGVTaskCommand command = new RGVTaskCommand() - { - PickupLocation = (byte)Convert.ToSByte(15), - TaskNum = Convert.ToInt16(1000), - TaskType = (byte)Convert.ToSByte(1) - }; - SendCommand(commonRGVSecond, command); - } - LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGVSecond.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戜綔涓氱姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戞槸鍚︽湁璐э細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(task)}銆戙��"); - return task; - } - else if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)) + if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)) { var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV02" && x.TaskNum == commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); if (taskSecond != null) @@ -313,7 +317,7 @@ { if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) { - if (task.TargetStation > taskSecond.SourceStation && task.TargetStation > taskSecond.TargetStation) + if (task.TargetStation- taskSecond.SourceStation > 1 && task.TargetStation - taskSecond.TargetStation > 1) { LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVSecond.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVSecond.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task)}銆戙��"); return task; @@ -324,7 +328,7 @@ { if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) { - if (task.TargetStation > taskSecond.TargetStation) + if (task.TargetStation - taskSecond.TargetStation > 1) { LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVSecond.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVSecond.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task)}銆戙��"); return task; @@ -335,7 +339,7 @@ } else { - if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000) + if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 35000) { RGVTaskCommand command = new RGVTaskCommand() { @@ -357,22 +361,8 @@ CommonRGV_FirstFloor? commonRGVFirst = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "RGV01") as CommonRGV_FirstFloor; if (commonRGVFirst != null) { - if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)) - { - if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000) - { - RGVTaskCommand command = new RGVTaskCommand() - { - PickupLocation = (byte)Convert.ToSByte(26), - TaskNum = Convert.ToInt16(1000), - TaskType = (byte)Convert.ToSByte(1) - }; - SendCommand(commonRGVFirst, command); - } - LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戜綔涓氱姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戞槸鍚︽湁璐э細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(task)}銆戙��"); - return task; - } - else if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)) + + if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)) { var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); if (taskSecond != null) @@ -382,7 +372,7 @@ { if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) { - if (task.TargetStation < taskSecond.SourceStation && task.TargetStation < taskSecond.TargetStation) + if (taskSecond.SourceStation - task.TargetStation > 1 && taskSecond.TargetStation - task.TargetStation > 1) { LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task)}銆戙��"); return task; @@ -393,7 +383,7 @@ { if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) { - if (task.TargetStation < taskSecond.TargetStation) + if (taskSecond.TargetStation-task.TargetStation >1 ) { LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task)}銆戙��"); return task; @@ -404,7 +394,7 @@ } else { - if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000) + if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) < 420000) { RGVTaskCommand command = new RGVTaskCommand() { @@ -435,7 +425,7 @@ { var tasks = _taskService.QueryRGVTask(); Dt_Task task; - if (tasks == null && tasks.Count() == 0) + if (tasks.Count() == 0) { return null; } @@ -444,37 +434,16 @@ CommonRGV_FirstFloor? commonRGVSecond = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "RGV02") as CommonRGV_FirstFloor; if (commonRGVSecond != null) { - if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)) - { - if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000) - { - RGVTaskCommand command = new RGVTaskCommand() - { - PickupLocation = (byte)Convert.ToSByte(15), - TaskNum = Convert.ToInt16(1000), - TaskType = (byte)Convert.ToSByte(1) - }; - SendCommand(commonRGVSecond, command); - } - if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null) - { - LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGVSecond.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戜綔涓氱姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戞槸鍚︽湁璐э細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01"))}銆戙��"); - return tasks.FirstOrDefault(x => x.RGVName == "RGV01"); - } - else - { - LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGVSecond.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戜綔涓氱姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戞槸鍚︽湁璐э細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV02"))}銆戙��"); - return tasks.FirstOrDefault(x => x.RGVName != "RGV02"); - } - } - else if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)) + if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)) { var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV02" && x.TaskNum == commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); if (taskSecond != null) { if (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_Indispatch || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) { - task = tasks.FirstOrDefault(x => x.SourceStation > taskSecond.TargetStation && x.TargetStation > taskSecond.SourceStation && x.SourceStation > taskSecond.SourceStation && x.TargetStation > taskSecond.TargetStation); + //task = tasks.FirstOrDefault(x =>x.SourceStation- taskSecond.TargetStation > 1 && x.TargetStation - taskSecond.SourceStation > 1 && x.SourceStation - taskSecond.SourceStation > 1 && x.TargetStation - taskSecond.TargetStation> 1); + + task = tasks.FirstOrDefault(x =>(x.SourceStation- taskSecond.TargetStation > 1 && x.SourceStation - taskSecond.SourceStation > 1&&x.TaskType==(int)TaskInboundTypeEnum.Inbound) ||(x.SourceStation - taskSecond.TargetStation > 1 && x.TargetStation - taskSecond.SourceStation > 1 && x.SourceStation - taskSecond.SourceStation > 1 && x.TargetStation - taskSecond.TargetStation > 1&&x.TaskType== (int)TaskOutboundTypeEnum.Outbound)); LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGVSecond.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVSecond.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVSecond.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task)}銆戙��"); @@ -484,7 +453,7 @@ } else if (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InExecuting) { - task = tasks.FirstOrDefault(x => x.SourceStation > taskSecond.TargetStation && x.TargetStation > taskSecond.TargetStation); + task = tasks.FirstOrDefault(x => x.SourceStation - taskSecond.TargetStation> 1 &&x.TargetStation - taskSecond.TargetStation > 1); LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVSecond.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVSecond.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task)}銆戙��"); @@ -494,7 +463,7 @@ } else { - if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000) + if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 35000) { RGVTaskCommand command = new RGVTaskCommand() { @@ -549,39 +518,16 @@ CommonRGV_FirstFloor? commonRGVFirst = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "RGV01") as CommonRGV_FirstFloor; if (commonRGVFirst != null) { - if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)) - { - if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000) - { - RGVTaskCommand command = new RGVTaskCommand() - { - PickupLocation = (byte)Convert.ToSByte(26), - TaskNum = Convert.ToInt16(1000), - TaskType = (byte)Convert.ToSByte(1) - }; - SendCommand(commonRGVFirst, command); - } - if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null) - { - LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戜綔涓氱姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戞槸鍚︽湁璐э細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02"))}銆戙��"); - - return tasks.FirstOrDefault(x => x.RGVName == "RGV02"); - } - else - { - LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戜綔涓氱姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戞槸鍚︽湁璐э細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV01"))}銆戙��"); - - return tasks.FirstOrDefault(x => x.RGVName != "RGV01"); - } - } - else if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)) + if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)) { var taskFirst = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); if (taskFirst != null) { if (taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskFirst.TaskState == (int)TaskInStatusEnum.RGV_Indispatch || taskFirst.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS || taskFirst.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) { - task = tasks.FirstOrDefault(x => x.SourceStation < taskFirst.TargetStation && x.TargetStation < taskFirst.SourceStation && x.SourceStation < taskFirst.SourceStation && x.TargetStation < taskFirst.TargetStation); + //task = tasks.FirstOrDefault(x =>taskFirst.TargetStation - x.SourceStation > 1 && taskFirst.SourceStation - x.TargetStation > 1 && taskFirst.SourceStation - x.SourceStation > 1 && taskFirst.TargetStation - x.TargetStation > 1); + + task = tasks.FirstOrDefault(x => (x.SourceStation - taskFirst.TargetStation > 1 && x.SourceStation - taskFirst.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - taskFirst.TargetStation > 1 && x.TargetStation - taskFirst.SourceStation > 1 && x.SourceStation - taskFirst.SourceStation > 1 && x.TargetStation - taskFirst.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound)); LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskFirst)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task)}銆戙��"); @@ -589,7 +535,7 @@ } else if (taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || taskFirst.TaskState == (int)TaskInStatusEnum.RGV_InExecuting) { - task = tasks.FirstOrDefault(x => x.SourceStation < taskFirst.TargetStation && x.TargetStation < taskFirst.TargetStation); + task = tasks.FirstOrDefault(x => taskFirst.TargetStation - x.SourceStation > 1 && taskFirst.TargetStation - x.TargetStation > 1); LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskFirst)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task)}銆戙��"); @@ -599,11 +545,11 @@ } else { - if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 1000) + if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) < 420000) { RGVTaskCommand command = new RGVTaskCommand() { - PickupLocation = (byte)Convert.ToSByte(15), + PickupLocation = (byte)Convert.ToSByte(26), TaskNum = Convert.ToInt16(1000), TaskType = (byte)Convert.ToSByte(1) }; @@ -701,7 +647,9 @@ CommonConveyorLine conveyorLine = (CommonConveyorLine)device; Thread.Sleep(100); DeviceProDTO? devicePro = conveyorLine.DeviceProDTOs.Where(x => x.DeviceChildCode == stationManager.stationChildCode && x.DeviceProParamName == "ConveyorLineBarcode").FirstOrDefault(); - var x = conveyorLine.Communicator.Read(devicePro.DeviceProAddress, 5); + + var x = conveyorLine.Communicator.Read(devicePro.DeviceProAddress, 7); + string Barcode = Encoding.UTF8.GetString(x); if (Barcode == null || Barcode == "") @@ -753,47 +701,9 @@ { if (InStock) { - return _taskService.QueryRGVExecutingTask(commonRGV.DeviceCode, commonRGV.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); + return _taskService.QueryRGVExecutingTask(commonRGV.DeviceCode); } return null; - - #region - //if (commonRGV.LastTaskType == null) - //{ - // task = _taskService.QueryRGVTask(commonRGV.DeviceCode); - //} - //else - //{ - // if (commonRGV.LastTaskType.GetValueOrDefault().GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) - // { - // task = _taskService.QueryRGVInTask(commonRGV.DeviceCode); - // if (task == null) - // { - // task = _taskService.QueryRGVOutTask(commonRGV.DeviceCode); - // } - // } - // else - // { - // task = _taskService.QueryRGVOutTask(commonRGV.DeviceCode); - // } - //} - - //if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) - //{ - // if (task == null) - // { - // task = _taskService.QueryRGVInTask(commonRGV.DeviceCode); - // } - // else - // { - // return task; - // } - //} - //else if (task == null) - //{ - // task = _taskService.QueryRGVInTask(commonRGV.DeviceCode); - //} - #endregion } /// <summary> @@ -825,7 +735,6 @@ } else { - _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鑾峰彇瀵瑰簲鐨勫爢鍨涙満鍙栬揣绔欏彴淇℃伅"); return null; } } @@ -846,7 +755,6 @@ } else { - _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鑾峰彇瀵瑰簲鐨勫爢鍨涙満鍙栬揣绔欏彴淇℃伅"); return null; } } -- Gitblit v1.9.3