From fd07b13b6a8f6484cd370666d74776314911b300 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <1247017146@qq.com>
Date: 星期三, 26 三月 2025 09:45:08 +0800
Subject: [PATCH] 1
---
/dev/null | 505 --------------------------------------------------------
CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 2
2 files changed, 1 insertions(+), 506 deletions(-)
diff --git a/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs b/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
index 8765f22..3e55872 100644
--- a/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
+++ b/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -504,7 +504,7 @@
}
else
{
- if ((task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001") && task.Roadway.Contains("JZ"))
+ if ((task.TargetAddress == "002-061-001" || task.TargetAddress == "001-061-001") && task.Roadway.Contains("JZ"))
{
string[] endCodes = task.NextAddress.Split("-");
stackerCraneTaskCommand.EndRow = Convert.ToInt16(endCodes[0]);
diff --git a/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerJZJob/CommonStackerJZCraneJob.cs b/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerJZJob/CommonStackerJZCraneJob.cs
deleted file mode 100644
index 161de73..0000000
--- a/CodeManagement/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerJZJob/CommonStackerJZCraneJob.cs
+++ /dev/null
@@ -1,505 +0,0 @@
-锘縰sing Mapster;
-using Newtonsoft.Json;
-using Quartz;
-using System.Diagnostics.CodeAnalysis;
-using System.Text;
-using WIDESEAWCS_BasicInfoRepository;
-using WIDESEAWCS_Common;
-using WIDESEAWCS_Common.TaskEnum;
-using WIDESEAWCS_Core.Caches;
-using WIDESEAWCS_Core.Helper;
-using WIDESEAWCS_Core.HttpContextUser;
-using WIDESEAWCS_IProcessRepository;
-using WIDESEAWCS_ISystemServices;
-using WIDESEAWCS_ITaskInfo_HtyRepository;
-using WIDESEAWCS_ITaskInfoRepository;
-using WIDESEAWCS_ITaskInfoService;
-using WIDESEAWCS_Model.Models;
-using WIDESEAWCS_QuartzJob;
-using WIDESEAWCS_QuartzJob.DeviceBase;
-using WIDESEAWCS_QuartzJob.Models;
-using WIDESEAWCS_QuartzJob.Service;
-using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
-using WIDESEAWCS_SignalR;
-using WIDESEAWCS_Tasks.ConveyorLineJob;
-using WIDESEAWCS_Tasks.StackerCraneJob;
-using WIDESEA_Services;
-
-namespace WIDESEAWCS_Tasks
-{
- [DisallowConcurrentExecution]
- public class CommonStackerJZCraneJob : JobBase, IJob
- {
- private readonly ITaskService _taskService;
- private readonly ITaskExecuteDetailService _taskExecuteDetailService;
- private readonly ITaskRepository _taskRepository;
- private readonly IRouterService _routerService;
- private readonly IProcessRepository _processRepository;
- private readonly ICacheService _cacheService;
- private readonly INoticeService _noticeService;
- private readonly IDt_StationManagerRepository _stationManagerRepository;
- private readonly ITask_HtyRepository _htyRepository;
- private readonly ISys_ConfigService _sys_ConfigService;
- private static List<string>? userTokenIds;
- private static List<int>? userIds;
-
- public CommonStackerJZCraneJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IProcessRepository processRepository, ICacheService cacheService, INoticeService noticeService, IDt_StationManagerRepository stationManagerRepository, ITask_HtyRepository htyRepository, ISys_ConfigService sys_ConfigService)
- {
- _taskService = taskService;
- _taskExecuteDetailService = taskExecuteDetailService;
- _taskRepository = taskRepository;
- _routerService = routerService;
- _processRepository = processRepository;
- _cacheService = cacheService;
- _noticeService = noticeService;
- _stationManagerRepository = stationManagerRepository;
- _htyRepository = htyRepository;
- _sys_ConfigService = sys_ConfigService;
- }
-
- public Task Execute(IJobExecutionContext context)
- {
- try
- {
- CommonStackerJZCrane commonStackerCrane = (CommonStackerJZCrane)context.JobDetail.JobDataMap.Get("JobParams");
- if (commonStackerCrane != null)
- {
- //EqptAlive(commonStackerCrane);
- //Console.Out.WriteLine(commonStackerCrane.DeviceName);
- if (!commonStackerCrane.IsEventSubscribed)
- {
- commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢
- }
-
- if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal)
- {
- commonStackerCrane.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆�
-
- if (commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)
- {
- Dt_Task? task = null;
- if (StaticVariable.isLineRun)
- {
- StaticVariable.isStackerRun = false;
- task = GetTask(commonStackerCrane);
- }
- if (task != null)
- {
- StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task);
- if (stackerCraneTaskCommand != null)
- {
- Thread.Sleep(1000);
- bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand);
- if (sendFlag)
- {
- StringBuilder builder = new StringBuilder();
- builder.AppendLine();
- builder.AppendLine($"銆恵commonStackerCrane.DeviceName}銆戝爢鍨涙満鐘舵�侊細銆恵commonStackerCrane.StackerCraneStatusDes}銆�,鏃堕棿锛氥�恵DateTime.Now}銆�");
- builder.AppendLine($"銆恵commonStackerCrane.DeviceName}銆戞墜鑷姩鐘舵�侊細銆恵commonStackerCrane.StackerCraneAutoStatusDes}銆�,鏃堕棿锛氥�恵DateTime.Now}銆�");
- builder.AppendLine($"銆恵commonStackerCrane.DeviceName}銆戜綔涓氱姸鎬侊細銆恵commonStackerCrane.StackerCraneWorkStatusDes}銆�,鏃堕棿锛氥�恵DateTime.Now}銆�");
- builder.AppendLine($"銆恵commonStackerCrane.DeviceName}銆戜笅鍙戜换鍔℃垚鍔�,銆恵JsonConvert.SerializeObject(stackerCraneTaskCommand, Formatting.Indented)}銆�");
- builder.AppendLine($"鏃堕棿锛氥�恵DateTime.Now}銆�");
- builder.AppendLine();
- ConsoleHelper.WriteColorLine(builder, ConsoleColor.Blue);
- commonStackerCrane.LastTaskType = task.TaskType;
- _taskService.UpdateTaskStatusToNext(task.TaskNum);
- }
- }
- }
- }
- }
-
- #region 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
-
- var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken");
- if (tokenInfos == null || !tokenInfos.Any())
- {
- //throw new Exception(commonStackerCrane.DeviceName + "缂撳瓨涓湭鎵惧埌Token缂撳瓨");
- return Task.CompletedTask;
- }
- var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList();
- var userIds = tokenInfos?.Select(x => x.UserId).ToList();
-
- object obj = new
- {
- commonStackerCrane.StackerCraneStatusDes,
- commonStackerCrane.StackerCraneAutoStatusDes,
- commonStackerCrane.StackerCraneWorkStatusDes,
- commonStackerCrane.DeviceCode,
- commonStackerCrane.DeviceName,
- commonStackerCrane.CurrentTaskNum,
- commonStackerCrane.LastTaskNum,
- };
- _noticeService.StackerData(userIds?.FirstOrDefault(), userTokenIds, new { commonStackerCrane.DeviceName, data = obj });
-
- #endregion 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
- }
- }
- catch (Exception ex)
- {
- WriteError("CommonStackerStationCraneJob", "test", ex);
- //Console.WriteLine(nameof(CommonStackerCraneJob) + ":" + ex.ToString());
- }
- finally
- {
- StaticVariable.isStackerRun = true;
- }
- //WriteDebug("CommonStackerStationCraneJob", "test");
- return Task.CompletedTask;
- }
-
- /// <summary>
- /// 浠诲姟瀹屾垚浜嬩欢璁㈤槄鐨勬柟娉�
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void CommonStackerCrane_StackerCraneTaskCompletedEventHandler(object? sender, WIDESEAWCS_QuartzJob.StackerCrane.StackerCraneTaskCompletedEventArgs e)
- {
- CommonStackerJZCrane? commonStackerCrane = sender as CommonStackerJZCrane;
- if (commonStackerCrane != null)
- {
- if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5)
- {
- ConsoleHelper.WriteColorLine($"銆恵commonStackerCrane.DeviceName}銆戝爢鍨涙満浣滀笟鐘舵�侊細銆恵(int)commonStackerCrane.StackerCraneWorkStatusValue}銆戞椂闂淬�恵DateTime.Now}銆�", ConsoleColor.Magenta);
-
- string str = $"銆恵commonStackerCrane.DeviceName}銆戜换鍔″畬鎴�,浠诲姟鍙凤細銆恵e.TaskNum}銆戞椂闂淬�恵DateTime.Now}銆�";
- WriteInfo(commonStackerCrane.DeviceName, str);
- ConsoleHelper.WriteColorLine(str, ConsoleColor.Blue);
- var task = _taskRepository.QueryFirst(x => x.TaskNum == e.TaskNum);
-
- if (task == null) commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5);
-
- if (commonStackerCrane.DeviceCode.Contains("GW") && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
- {
- var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.TargetAddress);
-
- IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == station.stationPLC);
- if (device != null)
- {
- CommonConveyorLine_GW conveyorLine = (CommonConveyorLine_GW)device;
- var isResult = conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineBarcode, task.PalletCode, task.TargetAddress);
- if (!isResult)
- {
- var result = conveyorLine.GetValue<ConveyorLineDBName_After, string>(ConveyorLineDBName_After.ConveyorLineBarcode, task.TargetAddress);
- if (result != task.PalletCode)
- {
- conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineBarcode, task.PalletCode, task.TargetAddress);
- }
- }
- }
- else
- return;
- }
-
- var content = _taskService.StackCraneTaskCompleted(e.TaskNum);
- if (commonStackerCrane.DeviceCode.Contains("CH") && task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
- {
- task = _taskRepository.QueryFirst(x => x.TaskNum == e.TaskNum);
- Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress);
- }
- if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && (task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001"))
- {
- var TASKHTY = task.Adapt<Dt_Task_Hty>();
- _taskRepository.DeleteData(task);
- _htyRepository.AddData(TASKHTY);
- }
- var isWorkType = commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5);
- str = $"{commonStackerCrane.DeviceName}銆慦MS|WCS浠诲姟瀹屾垚锛氥�恵content.Status}銆�,鍫嗗灈鏈哄畬鎴愪俊鍙峰啓鍏ワ細銆恵isWorkType}銆�,浠诲姟鍙凤細銆恵e.TaskNum}銆戞椂闂淬�恵DateTime.Now}銆�";
- WriteInfo(commonStackerCrane.DeviceName, str);
- ConsoleHelper.WriteColorLine(str, ConsoleColor.Blue);
- }
- }
- }
-
- /// <summary>
- /// 鑾峰彇浠诲姟
- /// </summary>
- /// <param name="commonStackerCrane">鍫嗗灈鏈哄璞�</param>
- /// <returns></returns>
- private Dt_Task? GetTask(CommonStackerJZCrane commonStackerCrane)
- {
- Dt_Task task;
-
- if (commonStackerCrane.LastTaskType == null)
- {
- task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode);
- }
- else
- {
- if (commonStackerCrane.LastTaskType.GetValueOrDefault().GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
- {
- task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
- if (task == null)
- {
- var taskLinInExecuting = _taskService.QueryStackerLineExecutingTask(commonStackerCrane.DeviceCode);
- if(taskLinInExecuting == null)
- {
- task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode);
- }
- else
- {
- task = null;
- }
-
- }
- }
- else
- {
- task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode);
- }
- }
-
- if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
- {
- // 妫�鏌ュ綋鍓嶅嚭搴撲换鍔$珯鍙版槸鍚﹀厑璁告斁璐�
- var occupiedStation = OutTaskStationIsOccupied(task);
- if (occupiedStation == null)
- {
- // 濡傛灉褰撳墠鍑哄簱浠诲姟绔欏彴涓嶅厑璁告斁璐э紝鎺掗櫎褰撳墠浠诲姟锛屾煡鎵惧叾浠栧嚭搴撲换鍔�
- ConsoleHelper.WriteErrorLine($"浠诲姟鍙凤細銆恵task.TaskNum}銆戝嚭搴撳湴鍧�锛氥�恵task.NextAddress}銆戜笉鍏佽鏀捐揣");
- task = FindAnotherOutboundTask(commonStackerCrane.DeviceCode, task);
- }
- else
- {
- return task;
- }
-
- if (task == null)
- {
- task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
- }
- }
- else if (task == null)
- {
- task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
- }
-
- return task;
- }
-
- /// <summary>
- /// 鍑哄簱浠诲姟鍒ゆ柇鍑哄簱绔欏彴鏄惁琚崰鐢�
- /// </summary>
- /// <param name="task">浠诲姟瀹炰綋</param>
- /// <returns>濡傛灉鏈鍗犵敤锛岃繑鍥炰紶鍏ョ殑浠诲姟淇℃伅锛屽惁鍒欙紝杩斿洖null</returns>
- private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task)
- {
- var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == task.TargetAddress && x.Roadway == task.Roadway);
- IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationinfo.stationPLC);
- if (device != null)
- {
- CommonConveyorLine_After conveyorLine = (CommonConveyorLine_After)device;
- if (conveyorLine.IsOccupied(stationinfo.stationChildCode))//鍑哄簱绔欏彴鏈鍗犵敤
- {
- return task;
- }
- }
- else
- {
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒板嚭搴撶珯鍙般�恵task.NextAddress}銆戝搴旂殑閫氳瀵硅薄锛屾棤娉曞垽鏂嚭搴撶珯鍙版槸鍚﹁鍗犵敤");
- }
- return null;
- }
-
- /// <summary>
- /// 鏌ユ壘鍏朵粬鍑哄簱浠诲姟鐨勮緟鍔╂柟娉曪紙鎺掗櫎涓嶅彲鍑虹殑鍑哄簱鍙d换鍔★級
- /// </summary>
- /// <param name="deviceCode">璁惧浠g爜</param>
- /// <param name="excludedTaskId">瑕佹帓闄ょ殑浠诲姟ID</param>
- /// <returns></returns>
- private Dt_Task? FindAnotherOutboundTask(string deviceCode, Dt_Task task)
- {
- // 鍏堣幏鍙栨墍鏈夌鍚堟潯浠讹紙鎺掗櫎涓嶅彲鍑虹殑锛夌殑鍑哄簱浠诲姟鍒楄〃
- var allOutboundTasks = _taskService.QueryAllOutboundTasks(deviceCode);
- Console.WriteLine(allOutboundTasks.Count);
- var availableTasks = allOutboundTasks?.Where(t => t.TargetAddress != task.TargetAddress && t.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup).ToList();
-
- Console.WriteLine("鍏朵粬鍑哄簱鍙d换鍔★細" + availableTasks?.Count);
-
- if (availableTasks == null || availableTasks.Count == 0)
- {
- return null;
- }
-
- // 閬嶅巻鍙敤浠诲姟鍒楄〃锛屾鏌ヤ换鍔$珯鍙版槸鍚﹀厑璁告斁璐э紝鎵惧埌绗竴涓厑璁告斁璐х殑浠诲姟灏辫繑鍥�
- foreach (var candidateTask in availableTasks)
- {
- var occupiedStation = OutTaskStationIsOccupied(candidateTask);
- if (occupiedStation != null)
- {
- return candidateTask;
- }
- ConsoleHelper.WriteErrorLine($"浠诲姟鍙凤細銆恵candidateTask.TaskNum}銆戝嚭搴撳湴鍧�锛氥�恵candidateTask.NextAddress}銆戜笉鍏佽鏀捐揣");
- }
-
- return null;
- }
-
- /// <summary>
- /// 浠诲姟瀹炰綋杞崲鎴愬懡浠odel
- /// </summary>
- /// <param name="task">浠诲姟瀹炰綋</param>
- /// <returns></returns>
- /// <exception cref="Exception"></exception>
- public StackerCraneTaskCommand? ConvertToStackerCraneTaskCommand([NotNull] Dt_Task task)
- {
- StackerCraneTaskCommand stackerCraneTaskCommand = new StackerCraneTaskCommand();
-
- stackerCraneTaskCommand.Barcode = task.PalletCode;
- stackerCraneTaskCommand.TaskNum = task.TaskNum;
- stackerCraneTaskCommand.WorkType = 1;
- stackerCraneTaskCommand.TrayType = 0;
- stackerCraneTaskCommand.StartCommand = 1;
- if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍒ゆ柇鏄惁鏄叆搴撲换鍔�
- {
- var value = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStation, SysConfigKeyConst.JZNGInBoundStation).ConfigValue;
- var valueList = value.Split(',').ToList();
- if (valueList.Contains(task.SourceAddress) && (task.Roadway.Contains("CH") || task.Roadway.Contains("JZ")))
- {
- string[] souredCodes = task.CurrentAddress.Split("-");
- if (souredCodes.Length == 3)
- {
- stackerCraneTaskCommand.StartRow = Convert.ToInt16(souredCodes[0]);
- stackerCraneTaskCommand.StartColumn = Convert.ToInt16(souredCodes[1]);
- stackerCraneTaskCommand.StartLayer = Convert.ToInt16(souredCodes[2]);
- }
- else
- {
- //鏁版嵁閰嶇疆閿欒
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍏ュ簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
- return null;
- }
- string[] targetCodes = task.NextAddress.Split("-");
- if (targetCodes.Length == 3)
- {
- stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]) % 2 != 0 ? (short)1 : (short)2;
- stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]);
- stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]);
- }
- else
- {
- //鏁版嵁閰嶇疆閿欒
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍏ュ簱浠诲姟缁堢偣閿欒锛岃捣鐐癸細銆恵task.NextAddress}銆�");
- return null;
- }
- }
- else
- {
- List<Dt_Router> routers = _routerService.QueryNextRoutes(task.CurrentAddress, task.Roadway);
- if (routers.Count > 0)
- {
- stackerCraneTaskCommand.StartRow = Convert.ToInt16(routers.FirstOrDefault().SrmRow);
- stackerCraneTaskCommand.StartColumn = Convert.ToInt16(routers.FirstOrDefault().SrmColumn);
- stackerCraneTaskCommand.StartLayer = Convert.ToInt16(routers.FirstOrDefault().SrmLayer);
-
- string[] targetCodes = task.NextAddress.Split("-");
- if (targetCodes.Length == 3)
- {
- stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]) % 2 != 0 ? (short)1 : (short)2;
- stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]);
- stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]);
- }
- else
- {
- //鏁版嵁閰嶇疆閿欒
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍏ュ簱浠诲姟缁堢偣閿欒锛岃捣鐐癸細銆恵task.NextAddress}銆�");
- return null;
- }
- }
- else
- {
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鑾峰彇瀵瑰簲鐨勫爢鍨涙満鍙栬揣绔欏彴淇℃伅");
- return null;
- }
- }
- }
- else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
- {
- if (task.Roadway.Contains("GW"))
- {
- string[] endCodes = task.NextAddress.Split("-");
- stackerCraneTaskCommand.EndRow = Convert.ToInt16(endCodes[0]);
- stackerCraneTaskCommand.EndColumn = Convert.ToInt16(endCodes[1]);
- stackerCraneTaskCommand.EndLayer = Convert.ToInt16(endCodes[2]);
- string[] sourceCodes = task.SourceAddress.Split("-");
- stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]) % 2 != 0 ? (short)1 : (short)2;
- stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]);
- stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]);
- }
- else
- {
- if ((task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001") && task.Roadway.Contains("JZ"))
- {
- string[] endCodes = task.NextAddress.Split("-");
- stackerCraneTaskCommand.EndRow = Convert.ToInt16(endCodes[0]);
- stackerCraneTaskCommand.EndColumn = Convert.ToInt16(endCodes[1]);
- stackerCraneTaskCommand.EndLayer = Convert.ToInt16(endCodes[2]);
- string[] sourceCodes = task.SourceAddress.Split("-");
- stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]) % 2 != 0 ? (short)1 : (short)2;
- stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]);
- stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]);
- }
- else
- {
- List<Dt_Router> routers = _routerService.QueryNextRoutes(task.Roadway, task.TargetAddress);
- if (routers.Count > 0)
- {
- stackerCraneTaskCommand.EndRow = Convert.ToInt16(routers.FirstOrDefault().SrmRow);
- stackerCraneTaskCommand.EndColumn = Convert.ToInt16(routers.FirstOrDefault().SrmColumn);
- stackerCraneTaskCommand.EndLayer = Convert.ToInt16(routers.FirstOrDefault().SrmLayer);
-
- string[] sourceCodes = task.CurrentAddress.Split("-");
- if (sourceCodes.Length == 3)
- {
- stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]) % 2 != 0 ? (short)1 : (short)2;
- stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]);
- stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]);
- }
- else
- {
- //鏁版嵁閰嶇疆閿欒
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍑哄簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
- return null;
- }
- }
- else
- {
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鑾峰彇瀵瑰簲鐨勫爢鍨涙満鏀捐揣绔欏彴淇℃伅");
- return null;
- }
- }
- }
- }
- else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
- {
- string[] targetCodes = task.NextAddress.Split("-");
- if (targetCodes.Length == 3)
- {
- stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]) % 2 != 0 ? (short)1 : (short)2;
- stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]);
- stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]);
- }
- else
- {
- //鏁版嵁閰嶇疆閿欒
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"绉诲簱浠诲姟缁堢偣閿欒锛岃捣鐐癸細銆恵task.NextAddress}銆�");
- return null;
- }
- string[] sourceCodes = task.CurrentAddress.Split("-");
- if (sourceCodes.Length == 3)
- {
- stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]) % 2 != 0 ? (short)1 : (short)2;
- stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]);
- stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]);
- }
- else
- {
- //鏁版嵁閰嶇疆閿欒
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"绉诲簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
- return null;
- }
- }
- return stackerCraneTaskCommand;
- }
- }
-}
\ No newline at end of file
--
Gitblit v1.9.3