/// <summary> /// LableUpQ -> CatchAQ or CatchBQ /// </summary> /// <param name="isrun"></param> /// <returns></returns> public LableCode GetLableUpQ() { LableCode code = null; if (LableUpQ.Count > 0) { code = LableUpQ.Peek(); } if (code != null) { code.RealLocation = ""; lock (TaskQueues.LOCK_LOCHELPER) { code.RealLocation = lochelper.Convert(code.ToLocation, code.PanelNo); } if (string.IsNullOrEmpty(code.RealLocation)) { var msg = $"!来源: {nameof(GetLableUpQ)},{code.LCode} 获取真实交地失败: {code.ToLocation}"; onlog?.Invoke(msg, LogType.ROLL_QUEUE); onlog?.Invoke("请查看交地状态。", LogType.ROLL_QUEUE); return(null); } var ok = LableCode.UpdateRealLocation(code); if (!ok) { throw new Exception($"保存标签的实际交地失败"); } code = LableUpQ.Dequeue(); if (int.Parse(LableCode.ParseRealLocationNo(code.RealLocation)) < 6) { CatchAQ.Enqueue(code); } else { CatchBQ.Enqueue(code); } } return(code); }