diff --git a/BPASmartClient.MorkSUpgradedVer/Control_MorkSUpgradedVer.cs b/BPASmartClient.MorkSUpgradedVer/Control_MorkSUpgradedVer.cs index f0c793d8..3716998c 100644 --- a/BPASmartClient.MorkSUpgradedVer/Control_MorkSUpgradedVer.cs +++ b/BPASmartClient.MorkSUpgradedVer/Control_MorkSUpgradedVer.cs @@ -411,6 +411,7 @@ namespace BPASmartClient.MorkSUpgradedVer OrderChange(order.MorkOrder.SuborderId, ORDER_STATUS.WAIT); DeviceProcessLogShow($"接收到{OrderCount}次订单,订单ID:{order.MorkOrder.SuborderId}"); mORKS.HistorySuborderId.Add(order.MorkOrder.SuborderId); + mORKS.IDSortNums.TryAdd(order.MorkOrder.SuborderId, order.MorkOrder.SortNum); foreach (var item in order.MorkOrder.GoodBatchings) { var res = orderMaterialDelivery?.BatchingInfo?.FirstOrDefault(p => p.BatchingId == item.BatchingId); @@ -479,12 +480,17 @@ namespace BPASmartClient.MorkSUpgradedVer { if (orderLocInfo.Loc >= 10 && orderLocInfo.Loc <= 11) { - mORKS.TakeBowlId = orderLocInfo.SuborderId; + //mORKS.TakeBowlId = orderLocInfo.SuborderId; mORKS.TakeBowName = orderLocInfo.GoodName; mORKS.TakeBowSortNum = orderLocInfo.SortNum; TakeBowlControl(orderLocInfo.Loc); - OrderChange(mORKS.TakeBowlId, ORDER_STATUS.COOKING); - DeviceProcessLogShow($"订单【{mORKS.TakeBowlId}】执行取碗控制,位置:[{orderLocInfo.Loc}]"); + + //OrderChange(mORKS.TakeBowlId, ORDER_STATUS.COOKING); + OrderChange(orderLocInfo.SuborderId, ORDER_STATUS.COOKING); + + //DeviceProcessLogShow($"订单【{mORKS.TakeBowlId}】执行取碗控制,位置:[{orderLocInfo.Loc}]"); + DeviceProcessLogShow($"订单【{orderLocInfo.SuborderId}】执行取碗控制,位置:[{orderLocInfo.Loc}]"); + mORKS.TakeBowlInterlock = true; } } @@ -661,7 +667,6 @@ namespace BPASmartClient.MorkSUpgradedVer DeviceProcessLogShow($"转盘位置[{mORKS.CurrentFeedbackLoc}]:写入煮面时间{x.Minute}分{x.Second}秒。"); } } - mORKS.CurrentLoc = 0; mORKS.CookNodelId[loc] = orderLocInfo.SuborderId; mORKS.NoodleCookerStatus[loc] = true; @@ -682,27 +687,49 @@ namespace BPASmartClient.MorkSUpgradedVer /// private void OutNoodleTask() { - if (mORKS.AllowInvertedFace && mORKS.RobotTaskInterlock && !mORKS.TakeNoodleInterlock && mORKS.RobotStatus) - { - int loc = Array.FindIndex(mORKS.CookNodelId, p => p == mORKS.IngredientsCompleteId && p.Length > 0); - if (loc >= 0 && loc <= 5) - { - if (mORKS.CookNoodleCom[loc]) - { - SetTakeNoodleLoc((ushort)(loc + 1)); - mORKS.NoodleCookerStatus[loc] = false; - WriteData($"VW260", (ushort)0);//设置出汤时间 - OrderChange(mORKS.IngredientsCompleteId, ORDER_STATUS.COMPLETED_COOK); - DeviceProcessLogShow($"订单【{mORKS.IngredientsCompleteId}】制作完成"); - mORKS.CookCompleteFlatBit = true; - mORKS.OutMealId = mORKS.IngredientsCompleteId; - mORKS.OutMealName = mORKS.IngredientsCompleteName; - mORKS.OutMealSortNum = mORKS.IngredientsCompleteSortNum; - mORKS.IngredientsCompleteId = string.Empty; - mORKS.CookNodelId[loc] = string.Empty; - DeviceProcessLogShow($"{loc + 1} 号位置出餐控制,订单ID:{mORKS.OutMealId}"); - mORKS.CookNoodleCom[loc] = false; - } + if (mORKS.AllowInvertedFace && mORKS.RobotTaskInterlock && !mORKS.RobotOutDinnigLock && !mORKS.TakeNoodleInterlock && mORKS.RobotStatus) + { + #region 修改之前的代码 + //int loc = Array.FindIndex(mORKS.CookNodelId, p => p == mORKS.IngredientsCompleteId && p.Length > 0); + //if (loc >= 0 && loc <= 5) + //{ + // if (mORKS.CookNoodleCom[loc]) + // { + // SetTakeNoodleLoc((ushort)(loc + 1)); + // mORKS.NoodleCookerStatus[loc] = false; + // WriteData($"VW260", (ushort)0);//设置出汤时间 + // OrderChange(mORKS.IngredientsCompleteId, ORDER_STATUS.COMPLETED_COOK); + // DeviceProcessLogShow($"订单【{mORKS.IngredientsCompleteId}】制作完成"); + // mORKS.CookCompleteFlatBit = true; + // mORKS.OutMealId = mORKS.IngredientsCompleteId; + // mORKS.OutMealName = mORKS.IngredientsCompleteName; + // mORKS.OutMealSortNum = mORKS.IngredientsCompleteSortNum; + // mORKS.IngredientsCompleteId = string.Empty; + // mORKS.CookNodelId[loc] = string.Empty; + // DeviceProcessLogShow($"{loc + 1} 号位置出餐控制,订单ID:{mORKS.OutMealId}"); + // mORKS.CookNoodleCom[loc] = false; + // } + //} + #endregion + + for (int loc = 0; loc < mORKS.CookNodelId.Length; loc++) { + + if (mORKS.CookNoodleCom[loc]&&!mORKS.RobotOutDinnigLock) { + SetTakeNoodleLoc((ushort)(loc + 1)); + mORKS.NoodleCookerStatus[loc] = false; + WriteData($"VW260", (ushort)0);//设置出汤时间 + OrderChange(mORKS.CookNodelId[loc], ORDER_STATUS.COMPLETED_COOK); + DeviceProcessLogShow($"订单【{mORKS.CookNodelId[loc]}】制作完成"); + mORKS.CookCompleteFlatBit = true; + mORKS.OutMealId = mORKS.CookNodelId[loc]; + mORKS.OutMealName = mORKS.IngredientsCompleteName; + mORKS.OutMealSortNum = mORKS.IngredientsCompleteSortNum; + mORKS.IngredientsCompleteId = string.Empty; + mORKS.CookNodelId[loc] = string.Empty; + DeviceProcessLogShow($"{loc + 1} 号位置出餐控制,订单ID:{mORKS.OutMealId}"); + mORKS.CookNoodleCom[loc] = false; + mORKS.RobotOutDinnigLock = true; + } } } } @@ -715,14 +742,16 @@ namespace BPASmartClient.MorkSUpgradedVer //允许倒面信号检测 if (RTrig.GetInstance("AllowFallNoodle").Start(mORKS.AllowInvertedFace)) { - mORKS.IngredientsCompleteId = mORKS.TakeBowlId; + //mORKS.IngredientsCompleteId = mORKS.TakeBowlId; mORKS.IngredientsCompleteName = mORKS.TakeBowName; mORKS.IngredientsCompleteSortNum = mORKS.TakeBowSortNum; mORKS.TakeBowSortNum = 0; mORKS.TakeBowlId = string.Empty; mORKS.TakeBowName = string.Empty; - DeviceProcessLogShow($"碗到位,允许到面,{mORKS.IngredientsCompleteId}"); + //DeviceProcessLogShow($"碗到位,允许到面,{mORKS.IngredientsCompleteId}"); + DeviceProcessLogShow($"碗到位,允许倒面。"); mORKS.TakeBowlInterlock = false; + mORKS.RobotOutDinnigLock = false; } //取餐完成逻辑处理 @@ -731,6 +760,9 @@ namespace BPASmartClient.MorkSUpgradedVer OrderChange(mORKS.OutMealId, ORDER_STATUS.COMPLETED_TAKE); DeviceProcessLogShow($"订单【{mORKS.OutMealId}】取餐完成"); WriteData("M10.1", false); + int takeDinningNum; + mORKS.IDSortNums.TryRemove(mORKS.OutMealId, out takeDinningNum); + mORKS.OutMealSortNum = takeDinningNum; DeviceProcessLogShow($"出餐订单序号【{mORKS.OutMealSortNum}】"); VoiceAPI.Speak(mORKS.OutMealSortNum.ToString()); //DeviceProcessLogShow($"叫号系统通知主题【MORKS/VoiceCall/{DeviceId}】"); @@ -759,7 +791,8 @@ namespace BPASmartClient.MorkSUpgradedVer mORKS.PriorityJudgment = Delay.GetInstance("取餐优先级判断").Start(mORKS.TurntableLocLists.Count > 0 && !mORKS.TurntableLowPosition, 4); //mORKS.RobotTaskInterlock = OutMealRequstCount > 0 && mORKS.AllowInvertedFace && (mlCount >= 2 || mORKS.RBTakeNoodleTask.Count == 0 || mORKS.PriorityJudgment); - mORKS.RobotTaskInterlock = isok && mORKS.AllowInvertedFace && (mlCount >= 2 || mORKS.RBTakeNoodleTask.Count == 0 || mORKS.PriorityJudgment); + //mORKS.RobotTaskInterlock = isok && mORKS.AllowInvertedFace && (mlCount >= 2 || mORKS.RBTakeNoodleTask.Count == 0 || mORKS.PriorityJudgment); + mORKS.RobotTaskInterlock = mORKS.AllowInvertedFace && (mlCount >= 6 || mORKS.RBTakeNoodleTask.Count == 0 || mORKS.PriorityJudgment); } diff --git a/BPASmartClient.MorkSUpgradedVer/GVL_MorkSUpgradedVer.cs b/BPASmartClient.MorkSUpgradedVer/GVL_MorkSUpgradedVer.cs index 72a1f0b9..044a51e2 100644 --- a/BPASmartClient.MorkSUpgradedVer/GVL_MorkSUpgradedVer.cs +++ b/BPASmartClient.MorkSUpgradedVer/GVL_MorkSUpgradedVer.cs @@ -59,6 +59,11 @@ namespace BPASmartClient.MorkSUpgradedVer /// [VariableMonitor("转台互锁信号")] public bool TurntableInterlock { get; set; } + /// + /// 机器人出餐互锁 + /// + [VariableMonitor("机器人出餐互锁")] + public bool RobotOutDinnigLock { get; set; } /// @@ -103,6 +108,11 @@ namespace BPASmartClient.MorkSUpgradedVer /// public ConcurrentQueue TakeBowlTask { get; set; } = new ConcurrentQueue(); + /// + /// 订单ID对应的排序号字典 + /// + public ConcurrentDictionary IDSortNums { get; set; } = new ConcurrentDictionary(); + public List doOrderEvents { get; set; } = new List(); @@ -123,7 +133,7 @@ namespace BPASmartClient.MorkSUpgradedVer /// public string TakeBowName { get; set; } = string.Empty; /// - /// 配料完成订单名称 + /// 取碗完成订单排序号 /// public int TakeBowSortNum { get; set; } = 0; @@ -137,7 +147,7 @@ namespace BPASmartClient.MorkSUpgradedVer /// public string IngredientsCompleteName { get; set; } = string.Empty; /// - /// 配料完成订单名称 + /// 配料完成订单排序号 /// public int IngredientsCompleteSortNum { get; set; } = 0;