Commit 493ad411 张东亮

1

1 个父辈 8b0593e8
...@@ -91,7 +91,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -91,7 +91,7 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
public string[] sheidBColmns; public string[] sheidBColmns;
/// <summary> /// <summary>
/// A面等待出库的队列 /// A面等待出库的列表
/// </summary> /// </summary>
public ConcurrentQueue<InOutParam> waitAOutStoreList = new ConcurrentQueue<InOutParam>(); public ConcurrentQueue<InOutParam> waitAOutStoreList = new ConcurrentQueue<InOutParam>();
/// <summary> /// <summary>
...@@ -748,7 +748,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -748,7 +748,7 @@ namespace OnlineStore.DeviceLibrary
if (IOValue(IO_Type.FeedingA_Instore_UpperArea_ReelCheck).Equals(IO_VALUE.HIGH) && BufferDataManager.AInStoreInfo != null if (IOValue(IO_Type.FeedingA_Instore_UpperArea_ReelCheck).Equals(IO_VALUE.HIGH) && BufferDataManager.AInStoreInfo != null
&& IOValue(IO_Type.FeedingB_Instore_UpperArea_ReelCheck).Equals(IO_VALUE.HIGH) && BufferDataManager.BInStoreInfo != null && IOValue(IO_Type.FeedingB_Instore_UpperArea_ReelCheck).Equals(IO_VALUE.HIGH) && BufferDataManager.BInStoreInfo != null
&& (BufferDataManager.AInStoreInfo.PlateW== BufferDataManager.BInStoreInfo.PlateW && BufferDataManager.AInStoreInfo.PlateH == BufferDataManager.BInStoreInfo.PlateH)) && (BufferDataManager.AInStoreInfo.PlateW == BufferDataManager.BInStoreInfo.PlateW && BufferDataManager.AInStoreInfo.PlateH == BufferDataManager.BInStoreInfo.PlateH))
{ {
StartInstore(new InOutParam() { PosInfo = BufferDataManager.AInStoreInfo, PosInfoBack = BufferDataManager.BInStoreInfo }); StartInstore(new InOutParam() { PosInfo = BufferDataManager.AInStoreInfo, PosInfoBack = BufferDataManager.BInStoreInfo });
return; return;
...@@ -795,22 +795,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -795,22 +795,22 @@ namespace OnlineStore.DeviceLibrary
if (CloseOutStoreCheck) if (CloseOutStoreCheck)
{ {
InOutParam param = null; InOutParam param = null;
bool result = waitAOutStoreList.TryDequeue(out param); bool result = waitAOutStoreList.TryPeek(out param);
if (result && param != null) if (param != null)
{ {
//LogInfo("执行A面排队的出库【" + param.PosInfo.ToStr() + "】"); bool rtn = StartExecuctOut(param);
StartExecuctOut(param); if (rtn) waitAOutStoreList.TryDequeue(out _);
return; return;
} }
} }
else //if (CheckAOutDoor()) else //if (CheckAOutDoor())
{ {
InOutParam param = null; InOutParam param = null;
bool result = waitAOutStoreList.TryDequeue(out param); bool result = waitAOutStoreList.TryPeek(out param);
if (result && param != null) if (result && param != null)
{ {
//LogInfo("执行A面排队的出库【" + param.PosInfo.ToStr() + "】"); bool rtn=StartExecuctOut(param);
StartExecuctOut(param); if (rtn) waitAOutStoreList.TryDequeue(out _);
return; return;
} }
} }
......
using CodeLibrary; using CodeLibrary;
using log4net.Util;
using OnlineStore.Common; using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary; using OnlineStore.LoadCSVLibrary;
using System; using System;
...@@ -1153,39 +1154,40 @@ namespace OnlineStore.DeviceLibrary ...@@ -1153,39 +1154,40 @@ namespace OnlineStore.DeviceLibrary
return false; return false;
} }
private static object outStoreObject = new object(); private static object outStoreObject = new object();
public void StartExecuctOut(InOutParam param) public bool StartExecuctOut(InOutParam param)
{ {
bool result = false; bool result = false;
result = StartOutstore(param); result = StartOutstore(param);
if (!result) return result;
{ //if (!result)
lock (outStoreObject)
{
if (MoveInfo.MoveType.Equals(MoveType.OutStore) && MoveInfo.MoveParam.PosInfo.PosId.Equals(param.PosInfo.PosId))
{
LogUtil.error(Name + " 出库命令【" + param.PosInfo.ToStr() + "】重复,【" + MoveInfo.MoveParam.PosInfo.PosId + "】出库执行中");
return;
}
List<InOutParam> reviceList = new List<InOutParam>();
reviceList.AddRange(waitAOutStoreList);
//reviceList.AddRange(waitBOutStoreList);
reviceList = (from m in reviceList where m.PosInfo.PosId.Equals(param.PosInfo.PosId) select m).ToList<InOutParam>();
if (reviceList.Count == 0)
{
//LogInfo(" 执行出库【" + param.PosInfo.ToStr() + "】失败,加入等待队列");
// if (param.PosInfo.GetPosSide().Equals("A"))
{
waitAOutStoreList.Enqueue(param);
}
//else if (param.PosInfo.GetPosSide().Equals("B"))
//{ //{
// waitBOutStoreList.Enqueue(param); // lock (outStoreObject)
// {
// if (MoveInfo.MoveType.Equals(MoveType.OutStore) && MoveInfo.MoveParam.PosInfo.PosId.Equals(param.PosInfo.PosId))
// {
// LogUtil.error(Name + " 出库命令【" + param.PosInfo.ToStr() + "】重复,【" + MoveInfo.MoveParam.PosInfo.PosId + "】出库执行中");
// return false;
// }
// List<InOutParam> reviceList = new List<InOutParam>();
// reviceList.AddRange(waitAOutStoreList);
// //reviceList.AddRange(waitBOutStoreList);
// reviceList = (from m in reviceList where m.PosInfo.PosId.Equals(param.PosInfo.PosId) select m).ToList<InOutParam>();
// if (reviceList.Count == 0)
// {
// //LogInfo(" 执行出库【" + param.PosInfo.ToStr() + "】失败,加入等待队列");
// // if (param.PosInfo.GetPosSide().Equals("A"))
// {
// waitAOutStoreList.Enqueue(param);
// }
// //else if (param.PosInfo.GetPosSide().Equals("B"))
// //{
// // waitBOutStoreList.Enqueue(param);
// //}
// }
// }
//} //}
} }
}
}
}
private DateTime startOutStoreTime = DateTime.Now; private DateTime startOutStoreTime = DateTime.Now;
/// <summary> /// <summary>
/// 关闭出库前的碗里检查 /// 关闭出库前的碗里检查
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!