This commit is contained in:
hehaibing-1996
2024-05-15 18:59:24 +08:00
parent cc65e985aa
commit 432a96198f
75 changed files with 2174 additions and 272 deletions

View File

@ -45,49 +45,6 @@ namespace WCS.BLL.HardWare
ModuleIds = Modules.Select(t => t.BoardId).ToList();
});
////初始化TCPCleint
//TcpCleint = new TCPClient("192.168.0.11:20002", "192.168.0.154:20003");
//TcpCleint.tcpClient.Received += (client, e) =>
//{
// var data = e.ByteBlock.Buffer.Take((int)e.ByteBlock.Length).ToArray();
// e.ByteBlock.Clear();
// var len = data.Length;
// for (int index = 0; index < data.Length - TcpCleint.PreFixLength; index++)
// {
// //协议拆包 通过前缀校验是否为完整数据包
// var prefixInData = data.Skip(index).Take(TcpCleint.PreFixLength);
// var isEqual = prefixInData.SequenceEqual(TcpCleint.Prefix);
// if (isEqual)
// {
// var dataTemp = data.Skip(index).Take(TcpCleint.PreFixLength + TcpCleint.DataLength).ToArray();
// if (dataTemp.Length < TcpCleint.PreFixLength + TcpCleint.DataLength)//拆包后不满足一条指令的长度
// {
// continue;
// }
// index += (TcpCleint.PreFixLength + TcpCleint.DataLength - 1);//每次循环index会+1 所以这里-1
// //获取板子ID
// var boardIds = (data[TcpCleint.PreFixLength + 0] << 8) + data[TcpCleint.PreFixLength + 1];
// var lightNumber = Convert.ToInt32(data[TcpCleint.PreFixLength + 3]);
// //协议处理 判断功能位
// switch (dataTemp[TcpCleint.PreFixLength + 2])
// {
// case 0x01://进入入库模式信号
// GoInInstoreProcess(dataTemp, boardIds, lightNumber);
// break;
// case 0x03://正常入库信号
// InStoreReturnProcess(dataTemp);
// break;
// default:
// ;
// break;
// }
// }
// }
// return EasyTask.CompletedTask;
//};
//TcpCleint.Connect();
}
@ -748,6 +705,7 @@ namespace WCS.BLL.HardWare
}
//获取当前板所有库位
var storeInfos = DbHelp.db.Queryable<StoreInfo>()
.Where(t => t.ShelfId == ShelfId)
.Where(t => t.BoardId == boardId)
.ToList();
//当前板子的灯数量
@ -915,7 +873,9 @@ namespace WCS.BLL.HardWare
{
var boardId = (data[TcpCleint.PreFixLength + 0] << 8) + data[TcpCleint.PreFixLength + 1];
var number = Convert.ToInt32(data[TcpCleint.PreFixLength + 3]);
var storeInfo = DbHelp.db.Queryable<StoreInfo>().Where(t => t.BoardId == boardId
var storeInfo = DbHelp.db.Queryable<StoreInfo>().Where(t =>
t.ShelfId == ShelfId
&& t.BoardId == boardId
&& t.LightNumber == number).First();
if (storeInfo == null)
@ -1062,6 +1022,7 @@ namespace WCS.BLL.HardWare
Logs.Write("协议处理5.1");
lightNumber = (int)data[TcpCleint.PreFixLength + 4];
var storeInfo = DbHelp.db.Queryable<StoreInfo>()
.Where(t => t.ShelfId == ShelfId)
.Where(t => t.BoardId == boardId && t.LightNumber == lightNumber)
.First();
Logs.Write("协议处理5.2");
@ -1202,6 +1163,7 @@ namespace WCS.BLL.HardWare
}
//获取当前板所有库位
var storeInfos = DbHelp.db.Queryable<StoreInfo>()
.Where(t => t.ShelfId == ShelfId)
.Where(t => t.BoardId == boardId)
.ToList();
//当前板子的灯数量
@ -1310,6 +1272,7 @@ namespace WCS.BLL.HardWare
}
lightNumber = Convert.ToInt32(data[TcpCleint.PreFixLength + 3]);
var storeInfo = DbHelp.db.Queryable<StoreInfo>().Where(t => t.BoardId == boardId
&& t.ShelfId == ShelfId
&& t.LightNumber == lightNumber)
.First();
if (storeInfo == null)
@ -1423,9 +1386,19 @@ namespace WCS.BLL.HardWare
//确认本次出库
module.ComfirmOutstore(TcpCleint, data[TcpCleint.PreFixLength + 3]);
//当前柜子是否还存在未出库的
CurrentOutStoreMatSNs.RemoveAll(t => t == matSN);//删除本次已出的物料SN
var isExsistOut = CurrentOutStoreMatSNs.Any();
var tempOrder = CurrentOutOrder;
//通知前台刷新
Task.Run(() =>
{
//更新订单状态
UpdateOutOrderStatus(tempOrder);
var messageMode = new WebSocketMessageModel()
{
IsWarning = false,
@ -1435,18 +1408,9 @@ namespace WCS.BLL.HardWare
WarningManager.SendWarning(messageMode);
});
//当前柜子是否还存在未出库的
CurrentOutStoreMatSNs.RemoveAll(t => t == matSN);//删除本次已出的物料SN
var isExsistOut = CurrentOutStoreMatSNs.Any();
//本次亮灯的物料已全部取出
if (!isExsistOut)
{
//更新订单状态
UpdateOutOrderStatus(CurrentOutOrder);
CurrentOutOrder = null;
//退出出库模式
@ -1547,7 +1511,6 @@ namespace WCS.BLL.HardWare
}
}
catch (Exception ex)
{
@ -1634,6 +1597,7 @@ namespace WCS.BLL.HardWare
{
lightNumber = (int)data[TcpCleint.PreFixLength + 4];
var storeInfo = DbHelp.db.Queryable<StoreInfo>()
.Where(t => t.ShelfId == ShelfId)
.Where(t => t.BoardId == boardId && t.LightNumber == lightNumber)
.First();
if (storeInfo == null)