钻探项目:单灯控制,按区域灭灯等逻辑提交
This commit is contained in:
@ -47,18 +47,6 @@ namespace WCS.BLL.Services.Service
|
|||||||
//库位编码去重
|
//库位编码去重
|
||||||
var storeCodes = request.StoreCodes.Distinct()
|
var storeCodes = request.StoreCodes.Distinct()
|
||||||
.ToList();
|
.ToList();
|
||||||
//For联调
|
|
||||||
if (storeCodes.Contains("A01-R1C1"))
|
|
||||||
{
|
|
||||||
//返回成功
|
|
||||||
return new ResponseCommon<object>()
|
|
||||||
{
|
|
||||||
Code = 200,
|
|
||||||
Message = "success",
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var stores = DbHelp.db.Queryable<StoreInfo>()
|
var stores = DbHelp.db.Queryable<StoreInfo>()
|
||||||
.Where(t => storeCodes.Contains(t.StoreCode))
|
.Where(t => storeCodes.Contains(t.StoreCode))
|
||||||
.ToList();
|
.ToList();
|
||||||
@ -81,34 +69,6 @@ namespace WCS.BLL.Services.Service
|
|||||||
var modules = DbHelp.db.Queryable<ModuleInfo>().Where(t => moduleIds.Contains(t.Id))
|
var modules = DbHelp.db.Queryable<ModuleInfo>().Where(t => moduleIds.Contains(t.Id))
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
//加载请求参数中的库位灯 板子ID和货架ID
|
|
||||||
//foreach (var store in request.StoreList)
|
|
||||||
//{
|
|
||||||
// var storeInDb = stores.Where(t => t.StoreCode == store.StoreCode).FirstOrDefault();
|
|
||||||
// if (storeInDb == null)
|
|
||||||
// {
|
|
||||||
// return new ResponseCommon<object>
|
|
||||||
// {
|
|
||||||
// Code = 201,
|
|
||||||
// Message = $"操作失败:库位{store.StoreCode}不存在(store)!"
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// store.ShelfId = storeInDb.ShelfId;
|
|
||||||
|
|
||||||
// var moduleInDb = modules.Where(t => t.Id == storeInDb.ModuleId).FirstOrDefault();
|
|
||||||
// if (moduleInDb == null)
|
|
||||||
// {
|
|
||||||
// return new ResponseCommon<object>
|
|
||||||
// {
|
|
||||||
// Code = 201,
|
|
||||||
// Message = $"操作失败:库位{store.StoreCode}不存在(module)!"
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// store.BoardId = moduleInDb.BoardId;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//合并:同一个货架的库位合并
|
//合并:同一个货架的库位合并
|
||||||
var shelfModels = new List<SingleLightShelfModel>();
|
var shelfModels = new List<SingleLightShelfModel>();
|
||||||
foreach (var shelf in shelfs)
|
foreach (var shelf in shelfs)
|
||||||
@ -116,22 +76,19 @@ namespace WCS.BLL.Services.Service
|
|||||||
var shelfModel = new SingleLightShelfModel();
|
var shelfModel = new SingleLightShelfModel();
|
||||||
//报警灯
|
//报警灯
|
||||||
shelfModel.WarningLightMode = request.LightMode;
|
shelfModel.WarningLightMode = request.LightMode;
|
||||||
//shelfModel.WarningBuzzerMode = request.WarningBuzzerMode;
|
|
||||||
shelfModel.WarningLightColor = request.ColorMode;
|
shelfModel.WarningLightColor = request.ColorMode;
|
||||||
shelfModel.WarningBoardId = shelf.LightId;
|
shelfModel.WarningBoardId = shelf.LightId;
|
||||||
shelfModel.ClientIp = shelf.ClientIp;
|
shelfModel.ClientIp = shelf.ClientIp;
|
||||||
//库位
|
|
||||||
//var storesThisShelf = request;
|
shelfModel.StoreList = stores.Where(t => t.ShelfId == shelf.Id)
|
||||||
//foreach (var storeThisShelf in storesThisShelf)
|
.Select(t => new SingleLightStoreModel()
|
||||||
//{
|
{
|
||||||
// shelfModel.StoreList.Add(new SingleLightStoreModel()
|
BoardId = t.BoardId,
|
||||||
// {
|
LightMode = request.LightMode,
|
||||||
// BoardId = storeThisShelf.BoardId,
|
LightColor = request.ColorMode,
|
||||||
// LightColor = storeThisShelf.LightColor,
|
}).ToList();
|
||||||
// LightMode = storeThisShelf.LightMode,
|
|
||||||
// });
|
shelfModels.Add(shelfModel);
|
||||||
//}
|
|
||||||
//shelfModels.Add(shelfModel);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//合并:同一个TCP的货架合并 报警灯和库位灯统一只发送一条指令
|
//合并:同一个TCP的货架合并 报警灯和库位灯统一只发送一条指令
|
||||||
@ -142,10 +99,23 @@ namespace WCS.BLL.Services.Service
|
|||||||
{
|
{
|
||||||
var shelfModelsInOneIp = shelfModels.Where(t => t.ClientIp == clientIp).ToList();
|
var shelfModelsInOneIp = shelfModels.Where(t => t.ClientIp == clientIp).ToList();
|
||||||
var sendData = Helper.SingleLightControl(shelfModelsInOneIp);
|
var sendData = Helper.SingleLightControl(shelfModelsInOneIp);
|
||||||
|
TCPClient tcpClient = TCPClientManager.GetTCPClientByIPHost(clientIp);
|
||||||
TCPClient tCPClient = TCPClientManager.GetTCPClientByIPHost(clientIp);
|
if (tcpClient != null)
|
||||||
tCPClient.Send(sendData);
|
{
|
||||||
Logs.Write("【单灯单独控制】发送指令" + BitConverter.ToString(sendData));
|
try
|
||||||
|
{
|
||||||
|
tcpClient.Send(sendData);
|
||||||
|
Logs.Write("【单灯单独控制】发送指令" + BitConverter.ToString(sendData));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logs.Write($"【单灯单独控制】{clientIp}以下指令发送中遇到异常{ex.Message}" + BitConverter.ToString(sendData));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logs.Write($"【单灯单独控制】{clientIp}未连接,以下指令未能成功发送" + BitConverter.ToString(sendData));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//返回成功
|
//返回成功
|
||||||
@ -203,9 +173,27 @@ namespace WCS.BLL.Services.Service
|
|||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
//挨个发关灯指令
|
//挨个发关灯指令
|
||||||
foreach (var clientIP in clientIPs)
|
foreach (var clientIP in clientIPs)
|
||||||
{
|
{
|
||||||
|
//生成关灯指令
|
||||||
|
var sendData = Helper.SingleLightTrunOffAllLight();
|
||||||
|
TCPClient tcpClient = TCPClientManager.GetTCPClientByIPHost(clientIP);
|
||||||
|
if (tcpClient != null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
tcpClient.Send(sendData);
|
||||||
|
Logs.Write("【单灯单独控制】发送指令" + BitConverter.ToString(sendData));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logs.Write($"【单灯单独控制】{clientIP}以下指令发送中遇到异常{ex.Message}" + BitConverter.ToString(sendData));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logs.Write($"【单灯单独控制】{clientIP}未连接,以下指令未能成功发送" + BitConverter.ToString(sendData));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//返回成功
|
//返回成功
|
||||||
|
@ -364,9 +364,9 @@ namespace WCS.BLL.Tool
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//蜂鸣器需要发送指令
|
//蜂鸣器需要发送指令
|
||||||
if (shelf.WarningBuzzerMode != -1)
|
if (shelf.WarningLightMode == 3)//单灯短亮一次的情况下 蜂鸣器短鸣一次
|
||||||
{
|
{
|
||||||
var singleLightData = GenerateSingleLightData(shelf.WarningBoardId + 6, shelf.WarningBuzzerMode, shelf.WarningLightColor);
|
var singleLightData = GenerateSingleLightData(shelf.WarningBoardId + 6, 3, shelf.WarningLightColor);
|
||||||
lightCount++;
|
lightCount++;
|
||||||
dataBase = dataBase.Concat(singleLightData).ToArray();
|
dataBase = dataBase.Concat(singleLightData).ToArray();
|
||||||
}
|
}
|
||||||
@ -421,6 +421,22 @@ namespace WCS.BLL.Tool
|
|||||||
public int LightColor { get; set; }
|
public int LightColor { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//单灯货架全部灭灯
|
||||||
|
public static byte[] SingleLightTrunOffAllLight()
|
||||||
|
{
|
||||||
|
byte[] dataBase = new byte[8];
|
||||||
|
dataBase[0] = 0xff;
|
||||||
|
dataBase[1] = 0x01;
|
||||||
|
dataBase[2] = 0x00;
|
||||||
|
dataBase[3] = 0x0A;
|
||||||
|
dataBase[4] = 0xff;
|
||||||
|
dataBase[5] = 0xff;
|
||||||
|
dataBase[6] = 0x00;
|
||||||
|
dataBase[7] = 0x00;
|
||||||
|
byte[] dataWithCRC = Crc16(dataBase, dataBase.Length, true);
|
||||||
|
return dataWithCRC;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 返回数据处理
|
/// 返回数据处理
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -123,7 +123,7 @@ namespace WCS.BLL
|
|||||||
var message = new MessageDto();
|
var message = new MessageDto();
|
||||||
var firstMessage = MessageList.Select(t => new { Id = t.Key, Value = t.Value })
|
var firstMessage = MessageList.Select(t => new { Id = t.Key, Value = t.Value })
|
||||||
.OrderBy(t => t.Value.CreateTime)
|
.OrderBy(t => t.Value.CreateTime)
|
||||||
.First();
|
.FirstOrDefault();
|
||||||
if (firstMessage != null)
|
if (firstMessage != null)
|
||||||
{
|
{
|
||||||
MessageList.TryRemove(firstMessage.Id, out message);
|
MessageList.TryRemove(firstMessage.Id, out message);
|
||||||
|
Reference in New Issue
Block a user