From e46aa927d231af83724683c7286d9db503e24cf7 Mon Sep 17 00:00:00 2001 From: z8018 <1282578289@qq.com> Date: 星期二, 10 六月 2025 11:46:20 +0800 Subject: [PATCH] 1 --- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Gantry/GantryJob.cs | 220 +++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 175 insertions(+), 45 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Gantry/GantryJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Gantry/GantryJob.cs" index 51104ea..bb389c8 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Gantry/GantryJob.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Gantry/GantryJob.cs" @@ -18,8 +18,25 @@ namespace WIDESEAWCS_Tasks { /// <summary> - /// 榫欓棬鏋� + /// 榫欓棬鏋朵换鍔″鐞嗙被锛岀户鎵胯嚜JobBase骞跺疄鐜癐Job鎺ュ彛 <br/> + /// 鐗规�DisallowConcurrentExecution]琛ㄧず绂佹骞跺彂鎵ц /// </summary> + /// <remarks> + /// 涓昏鍔熻兘锛� <br/> + /// 1. 妫�鏌ラ緳闂ㄥ悐鐘舵�侊紙鑷姩鐘舵��/宸ヤ綔鐘舵�侊級 <br/> + /// 2. 澶勭悊鍙栬揣/鏀捐揣浠诲姟锛� <br/> + /// - 楠岃瘉浣嶇疆鍧愭爣鏍煎紡 <br/> + /// - 鑾峰彇鏉挎潗灏哄淇℃伅 <br/> + /// - 鏍¢獙宸ヤ綅鍜屽鍣ㄤ俊鎭� <br/> + /// - 璁$畻骞舵牎楠屽潗鏍囪寖鍥� <br/> + /// - 鏇存柊PLC鎺у埗鍙傛暟 <br/> + /// 3. 澶勭悊浠诲姟瀹屾垚鐘舵�侊細 <br/> + /// - 鏇存柊浠诲姟鐘舵�� <br/> + /// - 閫氱煡MES绯荤粺 <br/> + /// - 閲嶇疆宸ヤ綅鐘舵�� <br/> + /// 4. 閿欒澶勭悊锛氳褰曞悇绉嶆牎楠屽け璐ョ殑寮傚父鎯呭喌 <br/> + /// 渚濊禆澶氫釜浠撳偍鍜屾湇鍔℃帴鍙h繘琛屾暟鎹搷浣� + /// </remarks> [DisallowConcurrentExecution] public class GantryJob : JobBase, IJob { @@ -28,21 +45,25 @@ private readonly IContainerItemRepository _containerItemRepository; private readonly WebSocketServer _webSocketServer; private readonly IOrderDetailsService _orderDetailsService; - public GantryJob(ITaskRepository taskRepository, ITaskService taskService, IContainerItemRepository containerItemRepository, WebSocketServer webSocketServer, IOrderDetailsService orderDetailsService) + private readonly IContainerRepository _containerRepository; + private readonly IOrderContainerRepository _orderContainerRepository; + + public GantryJob(ITaskRepository taskRepository, ITaskService taskService, IContainerItemRepository containerItemRepository, WebSocketServer webSocketServer, IOrderDetailsService orderDetailsService, IContainerRepository containerRepository, IOrderContainerRepository orderContainerRepository) { _taskRepository = taskRepository; _taskService = taskService; _containerItemRepository = containerItemRepository; _webSocketServer = webSocketServer; _orderDetailsService = orderDetailsService; + _containerRepository = containerRepository; + _orderContainerRepository = orderContainerRepository; } public Task Execute(IJobExecutionContext context) { bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value); - if (flag && value != null && value is OtherDevice) + if (flag && value is OtherDevice otherDevice) { - OtherDevice otherDevice = (OtherDevice)value; try { byte gantryStatus = otherDevice.GetValue<GantryDBName, byte>(GantryDBName.GantryStatus); @@ -51,13 +72,10 @@ if (gantryStatus == 1 && gantryAutoStatus == 3 && gantryWorkStatus == 0) { - // 閫昏緫澶勭悊 - // 1. 璇诲彇浠诲姟 - // 2. 浠诲姟鎵ц - // 3. 浠诲姟瀹屾垚 Dt_Task? task = _taskService.QueryAGantryUnExecuteTask(otherDevice.DeviceCode); if (task != null) { + #region 鍙栬揣浣嶇疆鍒ゆ柇 string[] takePositions = task.CurrentAddress.Split("*"); if (takePositions.Length != 5) { @@ -69,7 +87,9 @@ } return Task.CompletedTask; } + #endregion + #region 鏀捐揣浣嶇疆鍒ゆ柇 string[] putPositions = task.NextAddress.Split("*"); if (putPositions.Length != 5) { @@ -81,7 +101,9 @@ } return Task.CompletedTask; } + #endregion + #region 鏉挎潗灏哄鑾峰彇 Dt_ContainerItem containerItem = _containerItemRepository.QueryFirst(x => x.ItemCode == task.PalletCode); if (containerItem == null) { @@ -91,10 +113,52 @@ task.ExceptionMessage = "鏉挎潗灏哄鑾峰彇閿欒"; _taskRepository.UpdateData(task); } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; + } return Task.CompletedTask; } + #endregion - if (!LightStatusStorage.StationStautsDic.TryGetValue(putPositions[0],out bool stationStatus)) + #region 鏀捐揣宸ヤ綅鍒ゆ柇 + Dt_Container container = _containerRepository.QueryFirst(x => x.ContainerCode == putPositions[0]); + if (container == null) + { + WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}", $"鏀捐揣宸ヤ綅銆恵takePositions[0]}銆戞湭鎵惧埌"); + if (task.ExceptionMessage?.Contains($"鏀捐揣宸ヤ綅銆恵takePositions[0]}銆戞湭鎵惧埌") ?? true) + { + task.ExceptionMessage = $"鏀捐揣宸ヤ綅銆恵takePositions[0]}銆戞湭鎵惧埌"; + _taskRepository.UpdateData(task); + } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; + } + return Task.CompletedTask; + } + #endregion + + #region 宸ヤ綅璁㈠崟淇℃伅鍒ゆ柇 + Dt_OrderContainer orderContainer = _orderContainerRepository.QueryFirst(x => x.ContainerCode == putPositions[0] && x.ContainerId == container.Id); + if (orderContainer == null && container.ContainerType != ContainerTypeEnum.ExceptionContainer.ObjToInt()) + { + WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}", $"鏀捐揣宸ヤ綅銆恵takePositions[0]}銆戞湭鎵惧埌璁㈠崟淇℃伅"); + if (task.ExceptionMessage?.Contains($"鏀捐揣宸ヤ綅銆恵takePositions[0]}銆戞湭鎵惧埌璁㈠崟淇℃伅") ?? true) + { + task.ExceptionMessage = $"鏀捐揣宸ヤ綅銆恵takePositions[0]}銆戞湭鎵惧埌璁㈠崟淇℃伅"; + _taskRepository.UpdateData(task); + } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; + } + return Task.CompletedTask; + } + #endregion + + #region 宸ヤ綅鍨澘璇诲彇鏁版嵁鍒ゆ柇 + if (!LightStatusStorage.StationStautsDic.TryGetValue(putPositions[0], out bool stationStatus)) { WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}", $"宸ヤ綅銆恵putPositions[0]}銆戞湁鏃犲灚鏉挎暟鎹敊璇�,{LightStatusStorage.StationStautsDic.Serialize()}"); if (task.ExceptionMessage?.Contains($"宸ヤ綅銆恵putPositions[0]}銆戞湁鏃犲灚鏉挎暟鎹敊璇�") ?? true) @@ -102,8 +166,15 @@ task.ExceptionMessage = $"宸ヤ綅銆恵putPositions[0]}銆戞湁鏃犲灚鏉挎暟鎹敊璇�"; _taskRepository.UpdateData(task); } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; + } return Task.CompletedTask; } + #endregion + + #region 宸ヤ綅鍨澘鐘舵�佸垽鏂� if (!stationStatus) { WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}", $"宸ヤ綅銆恵putPositions[0]}銆戞棤鍨澘,{LightStatusStorage.StationStautsDic.Serialize()}"); @@ -114,11 +185,9 @@ } return Task.CompletedTask; } - - int takePoX = Convert.ToInt32(takePositions[1]); - int takePoY = Convert.ToInt32(takePositions[2]); - int takePoZ = OPositions.HPositions[takePositions[0]].PositionZ + 30 * 1000 - Convert.ToInt32(takePositions[3]) * 1000; + #endregion + #region 鍙栬揣Z鍧愭爣鍒ゆ柇 if (OPositions.HPositions[takePositions[0]].PositionZ == 0) { WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}", "璇诲彇鍙栬揣Z鍧愭爣璇诲彇涓�0"); @@ -127,16 +196,16 @@ task.ExceptionMessage = $"璇诲彇鍙栬揣Z鍧愭爣璇诲彇涓�0"; _taskRepository.UpdateData(task); } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; + } return Task.CompletedTask; } + #endregion - int takePoR = 0; - - int putPoX = Convert.ToInt32(putPositions[1]); - int putPoY = Convert.ToInt32(putPositions[2]); - int putPoZ = OPositions.HPositions[putPositions[0]].PositionZ - Convert.ToInt32(putPositions[3]) * 1000; - - if (OPositions.HPositions[takePositions[0]].PositionZ == 0) + #region 鏀捐揣Z鍧愭爣鍒ゆ柇 + if (OPositions.HPositions[putPositions[0]].PositionZ == 0) { WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}", "璇诲彇鏀捐揣Z鍧愭爣璇诲彇涓�0"); if (task.ExceptionMessage?.Contains($"璇诲彇鏀捐揣Z鍧愭爣璇诲彇涓�0") ?? true) @@ -144,16 +213,37 @@ task.ExceptionMessage = $"璇诲彇鏀捐揣Z鍧愭爣璇诲彇涓�0"; _taskRepository.UpdateData(task); } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; + } return Task.CompletedTask; } - int putPoR = 0; + #endregion + #region 浠诲姟瀹炰綋鍙傛暟杞崲澶勭悊 + int takePoX = Convert.ToInt32(takePositions[1]); + int takePoY = Convert.ToInt32(takePositions[2]); + int takePoZ = OPositions.HPositions[takePositions[0]].PositionZ + 30 * 1000 - Convert.ToInt32(takePositions[3]) * 1000; + + int takePoR = 0; + + int putPoX = Convert.ToInt32(putPositions[1]); + int putPoY = Convert.ToInt32(putPositions[2]); + int putPoZ = OPositions.HPositions[putPositions[0]].PositionZ - Convert.ToInt32(putPositions[3]) * 1000; + + int putPoR = 0; + #endregion + + #region 鍧愭爣涔樹互1000澶勭悊,2#榫欓棬鏋跺彇鍙�(涔樹互-1000) int temp = 1000; - if(otherDevice.DeviceCode == "GT02") + if (otherDevice.DeviceCode == "GT02") { temp = -1000; } + #endregion + #region 鍧愭爣璁$畻 if (Convert.ToInt32(takePositions[4]) == 1 || Convert.ToInt32(takePositions[4]) == 2) { takePoX = takePoX * temp + OPositions.HPositions[takePositions[0]].PositionX; @@ -180,11 +270,13 @@ task.ExceptionMessage = $"R鍧愭爣閿欒"; _taskRepository.UpdateData(task); } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; + } return Task.CompletedTask; } } - - WriteDebug($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}-鍧愭爣", $"鍙栬揣浣嶏細{takePositions[0]},鏀捐揣浣嶏細{putPositions[0]}{Environment.NewLine}鍙栬揣鍧愭爣锛歑:{takePoX} Y:{takePoY} Z:{takePoZ} R:{takePoR}{Environment.NewLine}鏀捐揣鍧愭爣锛歑:{putPoX} Y:{putPoY} Z:{putPoZ} R:{putPoR}{Environment.NewLine}璇诲彇PLC鍙栬揣鍧愭爣锛歑:{OPositions.HPositions[takePositions[0]].PositionX} Y:{OPositions.HPositions[takePositions[0]].PositionY} Z:{OPositions.HPositions[takePositions[0]].PositionZ} R:{OPositions.HPositions[takePositions[0]].PositionR}{Environment.NewLine}璇诲彇PLC鏀捐揣鍧愭爣锛歑:{OPositions.HPositions[putPositions[0]].PositionX} Y:{OPositions.HPositions[putPositions[0]].PositionY} Z:{OPositions.HPositions[putPositions[0]].PositionZ} R:{OPositions.HPositions[putPositions[0]].PositionR}"); } else { @@ -194,14 +286,26 @@ putPoY = putPoY * temp + OPositions.ZPositions[putPositions[0]].PositionY; takePoR = OPositions.ZPositions[takePositions[0]].PositionR; putPoR = OPositions.ZPositions[putPositions[0]].PositionR; - - WriteDebug($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}-鍧愭爣", $"鍙栬揣浣嶏細{takePositions[0]},鏀捐揣浣嶏細{putPositions[0]}{Environment.NewLine}鍙栬揣鍧愭爣锛歑:{takePoX} Y:{takePoY} Z:{takePoZ} R:{takePoR}{Environment.NewLine}鏀捐揣鍧愭爣锛歑:{putPoX} Y:{putPoY} Z:{putPoZ} R:{putPoR}{Environment.NewLine}璇诲彇PLC鍙栬揣鍧愭爣锛歑:{OPositions.ZPositions[takePositions[0]].PositionX} Y:{OPositions.ZPositions[takePositions[0]].PositionY} Z:{OPositions.ZPositions[takePositions[0]].PositionZ} R:{OPositions.ZPositions[takePositions[0]].PositionR}{Environment.NewLine}璇诲彇PLC鏀捐揣鍧愭爣锛歑:{OPositions.ZPositions[putPositions[0]].PositionX} Y:{OPositions.ZPositions[putPositions[0]].PositionY} Z:{OPositions.ZPositions[putPositions[0]].PositionZ} R:{OPositions.ZPositions[putPositions[0]].PositionR}"); } - #region + #endregion + + #region Debug鏃ュ織璁板綍,璁板綍鍙栬揣鍜屾斁璐у潗鏍囦俊鎭� + WriteDebug($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}-鍧愭爣", $"鍙栬揣浣嶏細{takePositions[0]},鏀捐揣浣嶏細{putPositions[0]}{Environment.NewLine}鍙栬揣鍧愭爣锛歑:{takePoX} Y:{takePoY} Z:{takePoZ} R:{takePoR}{Environment.NewLine}鏀捐揣鍧愭爣锛歑:{putPoX} Y:{putPoY} Z:{putPoZ} R:{putPoR}{Environment.NewLine}璇诲彇PLC鍙栬揣鍧愭爣锛歑:{OPositions.HPositions[takePositions[0]].PositionX} Y:{OPositions.HPositions[takePositions[0]].PositionY} Z:{OPositions.HPositions[takePositions[0]].PositionZ} R:{OPositions.HPositions[takePositions[0]].PositionR}{Environment.NewLine}璇诲彇PLC鏀捐揣鍧愭爣锛歑:{OPositions.HPositions[putPositions[0]].PositionX} Y:{OPositions.HPositions[putPositions[0]].PositionY} Z:{OPositions.HPositions[putPositions[0]].PositionZ} R:{OPositions.HPositions[putPositions[0]].PositionR}"); + #endregion + + #region 瓒呰繃瀹瑰櫒瀹藉害澶勭悊 + bool isMoreWidth = orderContainer == null ? false : orderContainer.MaxWidth > container.ContainerWidth; + if (isMoreWidth) + { + putPoX = putPoX - (orderContainer.MaxWidth - container.ContainerWidth) / 2 * temp; + } + #endregion + + #region 鍧愭爣鑼冨洿鍒ゆ柇 List<DeviceProDTO> devicePros = otherDevice.DeviceProDTOs.Where(x => x.DeviceProParamType == "MaxPosition").ToList(); DeviceProDTO? devicePro = devicePros.OrderBy(x => x.DeviceProOffset).FirstOrDefault(); - if(devicePro == null) + if (devicePro == null) { WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}", "璁惧鍗忚鍙傛暟閿欒锛屾湭鎵惧埌鏈�澶ф渶灏忓潗鏍囧湴鍧�"); if (task.ExceptionMessage?.Contains($"璁惧鍗忚鍙傛暟閿欒锛屾湭鎵惧埌鏈�澶ф渶灏忓潗鏍囧湴鍧�") ?? true) @@ -209,8 +313,13 @@ task.ExceptionMessage = $"璁惧鍗忚鍙傛暟閿欒锛屾湭鎵惧埌鏈�澶ф渶灏忓潗鏍囧湴鍧�"; _taskRepository.UpdateData(task); } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; + } return Task.CompletedTask; } + int[] data = otherDevice.Communicator.Read<int>(devicePro.DeviceProAddress, (ushort)(devicePros.Count)); int maxX = data[0]; @@ -222,16 +331,6 @@ int maxR = data[6]; int minR = data[7]; - //int maxX = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MaxX); - //int minX = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MinX); - //int maxY = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MaxY); - //int minY = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MinY); - //int maxZ = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MaxZ); - //int minZ = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MinZ); - //int maxR = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MaxR); - //int minR = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MinR); - - if (takePoX < minX || takePoX > maxX) { WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}-鍧愭爣", $"X鍙栬揣鍧愭爣瓒呭嚭鑼冨洿,鍙栬揣鍧愭爣锛歿takePoX},鏈�澶у�硷細{maxX},鏈�灏忓�硷細{minX}"); @@ -239,6 +338,10 @@ { task.ExceptionMessage = $"X鍙栬揣鍧愭爣瓒呭嚭鑼冨洿,鍙栬揣鍧愭爣锛歿takePoX},鏈�澶у�硷細{maxX},鏈�灏忓�硷細{minX}"; _taskRepository.UpdateData(task); + } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; } return Task.CompletedTask; } @@ -251,6 +354,10 @@ task.ExceptionMessage = $"X鏀捐揣鍧愭爣瓒呭嚭鑼冨洿,鍙栬揣鍧愭爣锛歿putPoX},鏈�澶у�硷細{maxX},鏈�灏忓�硷細{minX}"; _taskRepository.UpdateData(task); } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; + } return Task.CompletedTask; } @@ -261,6 +368,10 @@ { task.ExceptionMessage = $"Y鍙栬揣鍧愭爣瓒呭嚭鑼冨洿,鍙栬揣鍧愭爣锛歿takePoY},鏈�澶у�硷細{maxY},鏈�灏忓�硷細{minY}"; _taskRepository.UpdateData(task); + } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; } return Task.CompletedTask; } @@ -273,6 +384,10 @@ task.ExceptionMessage = $"Y鏀捐揣鍧愭爣瓒呭嚭鑼冨洿,鍙栬揣鍧愭爣锛歿putPoY},鏈�澶у�硷細{maxY},鏈�灏忓�硷細{minY}"; _taskRepository.UpdateData(task); } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; + } return Task.CompletedTask; } @@ -283,6 +398,10 @@ { task.ExceptionMessage = $"Z鍙栬揣鍧愭爣瓒呭嚭鑼冨洿,鍙栬揣鍧愭爣锛歿takePoZ},鏈�澶у�硷細{maxZ},鏈�灏忓�硷細{minZ}"; _taskRepository.UpdateData(task); + } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; } return Task.CompletedTask; } @@ -295,6 +414,10 @@ task.ExceptionMessage = $"Z鏀捐揣鍧愭爣瓒呭嚭鑼冨洿,鍙栬揣鍧愭爣锛歿putPoZ},鏈�澶у�硷細{maxZ},鏈�灏忓�硷細{minZ}"; _taskRepository.UpdateData(task); } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; + } return Task.CompletedTask; } @@ -305,6 +428,10 @@ { task.ExceptionMessage = $"R鍙栬揣鍧愭爣瓒呭嚭鑼冨洿,鍙栬揣鍧愭爣锛歿takePoR},鏈�澶у�硷細{maxR},鏈�灏忓�硷細{minR}"; _taskRepository.UpdateData(task); + } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; } return Task.CompletedTask; } @@ -317,10 +444,15 @@ task.ExceptionMessage = $"R鏀捐揣鍧愭爣瓒呭嚭鑼冨洿,鍙栬揣鍧愭爣锛歿putPoR},鏈�澶у�硷細{maxR},鏈�灏忓�硷細{minR}"; _taskRepository.UpdateData(task); } + if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) + { + LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; + } return Task.CompletedTask; } #endregion + #region 浠诲姟鍙戦�� otherDevice.SetValue(GantryDBName.TwoHand, true); otherDevice.SetValue(GantryDBName.TaskNum, task.TaskNum); otherDevice.SetValue(GantryDBName.TakePositionX, takePoX); @@ -336,10 +468,14 @@ otherDevice.SetValue(GantryDBName.Height, containerItem.ItemHeight); otherDevice.SetValue(GantryDBName.WorkType, 1); otherDevice.SetValue(GantryDBName.StartCommand, 1); + #endregion + #region 浠诲姟鐘舵�佹洿鏂� task.TaskState = TaskStatusEnum.Gantry_Executing.ObjToInt(); _taskRepository.UpdateData(task); + #endregion + #region 涓夎壊鐏姸鎬佹洿鏂� if (LightStatusStorage.LightStatusDic.TryGetValue(putPositions[0], out LightStatusEnum lightStatusDic)) { if (lightStatusDic != LightStatusEnum.LightWorking) @@ -347,6 +483,7 @@ LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightWorking; } } + #endregion } } else if (gantryWorkStatus == 5) @@ -363,12 +500,10 @@ { _orderDetailsService.ToMes(task.PalletCode, 4); }); - string[] putPositions = task.NextAddress.Split("*"); if (putPositions.Length != 5) { - //WriteError return Task.CompletedTask; } if (LightStatusStorage.LightStatusDic.TryGetValue(putPositions[0], out LightStatusEnum lightStatusDic)) @@ -393,11 +528,6 @@ WriteError(nameof(GantryJob), "鍙傛暟閿欒,鏈紶閫掕澶囧弬鏁版垨璁惧绫诲瀷閿欒"); } return Task.CompletedTask; - } - - public Dt_Task GetTask() - { - return new Dt_Task(); } } } -- Gitblit v1.9.3