新增单灯货架亮灯

This commit is contained in:
陶坤
2024-05-23 13:39:23 +08:00
parent 2c99ebfb73
commit 4e42986c17
4 changed files with 307 additions and 24 deletions

View File

@ -459,28 +459,30 @@ namespace WCS.BLL.Services.Service
}
//亮灯
TCPClient tCPClient = TCPClientManager.GetTCPClientByIPHost(sendIP);
byte[] data1 = new byte[8];
data1[0] = 0xff;
data1[1] = 0x02;
data1[2] = 0x00;
data1[3] = 0x0a;
data1[4] = (byte)warnLightID;
data1[5] = 0x03;
data1[6] = 0x02;
data1[7] = 0x02;
byte[] senddata1 = Tool.Helper.Crc16(data1,data1.Length,false);
//byte[] data1 = new byte[8];
//data1[0] = 0xff;
//data1[1] = 0x02;
//data1[2] = 0x00;
//data1[3] = 0x0a;
//data1[4] = (byte)warnLightID;
//data1[5] = 0x03;
//data1[6] = 0x02;
//data1[7] = 0x02;
//byte[] senddata1 = Tool.Helper.Crc16(data1, data1.Length, true);
byte[] senddata1 = Tool.Helper.InstoreWarnLight(warnLightID);
tCPClient.Send(senddata1); //报警灯短亮一次
byte[] data2 = new byte[8];
data2[0] = 0xff;
data2[1] = 0x01;
data2[2] = 0x00;
data2[3] = 0x0a;
data2[4] = 0x01;
data2[5] = (byte)PCBId;
data2[6] = 0x03;
data2[7] = 0x02;
byte[] senddata2 = Tool.Helper.Crc16(data2, data2.Length, false);
//byte[] data2 = new byte[8];
//data2[0] = 0xff;
//data2[1] = 0x01;
//data2[2] = 0x00;
//data2[3] = 0x0a;
//data2[4] = 0x01;
//data2[5] = (byte)PCBId;
//data2[6] = 0x03;
//data2[7] = 0x02;
//byte[] senddata2 = Tool.Helper.Crc16(data2, data2.Length, true);
byte[] senddata2 = Tool.Helper.InstoreLight(PCBId);
tCPClient.Send(senddata2); //库位灯短亮一次
return new ResponseCommonSingle()

View File

@ -10,6 +10,7 @@ using WCS.BLL.Config;
using WCS.BLL.DbModels;
using WCS.BLL.Manager;
using WCS.BLL.Services.IService;
using WCS.BLL.Tool;
using WCS.DAL.Db;
using WCS.DAL.DbModels;
using WCS.Model;
@ -601,8 +602,75 @@ namespace WCS.BLL.Services.Service
od.LightColor = LightColor;
orcs.Data.Add(od);
}
//亮灯
//需要出库的货架名
List<string> StoreCode = new List<string>();
//库位灯亮灯
Dictionary<string, List<int>> dict = new Dictionary<string, List<int>>();
foreach (OutOrderMatDetail oomd in outOrderMatDetails)
{
List<ModuleInfo> mi= DbHelp.db.Queryable<ModuleInfo>().Where(it => it.ModuleCode == oomd.StoreCode).ToList();
if (mi.Count != 0)
{
if (!StoreCode.Contains(oomd.StoreCode))
{
StoreCode.Add(oomd.StoreCode);
}
if (!dict.Keys.Contains(mi[0].CleintIp))
{
List<int> board_id = new List<int>();
board_id.Add(mi[0].BoardId);
dict.Add(mi[0].CleintIp, board_id);
}
else
{
foreach (var v in dict)
{
if (v.Key == mi[0].CleintIp)
{
if (!v.Value.Contains(mi[0].BoardId))
{
v.Value.Add(mi[0].BoardId);
}
}
}
}
}
}
foreach (var v in dict)
{
string sendIP = v.Key;
TCPClient tCPClient = TCPClientManager.GetTCPClientByIPHost(sendIP);
byte[] lightOn = Helper.OutstoreLight(v.Value, LightColor,1);
tCPClient.Send(lightOn);
Thread.Sleep(100);
}
//报警灯亮
List<string> WarnLightShelfCode = new List<string>();
foreach (string storecode in StoreCode)
{
List<ModuleInfo> mi = DbHelp.db.Queryable<ModuleInfo>().Where(it => it.ModuleCode == storecode).ToList();
if (mi.Count != 0)
{
if (!WarnLightShelfCode.Contains(mi[0].ShelfCode))
{
WarnLightShelfCode.Add(mi[0].ShelfCode);
}
}
}
foreach (string shelfcode in WarnLightShelfCode)
{
List<ShelfInfo> si = DbHelp.db.Queryable<ShelfInfo>().Where(it => it.ShelfCode == shelfcode).ToList();
if (si.Count != 0)
{
for (int i = 0; i < si.Count; i++)
{
TCPClient tCPClient = TCPClientManager.GetTCPClientByIPHost(si[i].ClientIp);
byte[] warnlightOn = Helper.OutstoreWarnLight(si[i].LightId,"无",1,0);
tCPClient.Send(warnlightOn);
Thread.Sleep(100);
}
}
}
//返回
return new OutResponseCommonSingle()
{
@ -880,7 +948,82 @@ namespace WCS.BLL.Services.Service
DbHelp.db.Updateable<OrderLight>().SetColumns(it => it.OrderNumber == null).Where(it => it.OrderNumber == request.OrderNumber).ExecuteCommand();
//灭灯
//获取需要出库的物料明细
var outOrderMatDetails = DbHelp.db.Queryable<OutOrderMatDetail>()
.Where(t => t.OrderNumber == request.OrderNumber)
.ToList();
//需要出库的货架名
List<string> StoreCode = new List<string>();
//库位灯灭灯
Dictionary<string, List<int>> dict = new Dictionary<string, List<int>>();
foreach (OutOrderMatDetail oomd in outOrderMatDetails)
{
List<ModuleInfo> mi = DbHelp.db.Queryable<ModuleInfo>().Where(it => it.ModuleCode == oomd.StoreCode).ToList();
if (mi.Count != 0)
{
if (!StoreCode.Contains(oomd.StoreCode))
{
StoreCode.Add(oomd.StoreCode);
}
if (!dict.Keys.Contains(mi[0].CleintIp))
{
List<int> board_id = new List<int>();
board_id.Add(mi[0].BoardId);
dict.Add(mi[0].CleintIp, board_id);
}
else
{
foreach (var v in dict)
{
if (v.Key == mi[0].CleintIp)
{
if (!v.Value.Contains(mi[0].BoardId))
{
v.Value.Add(mi[0].BoardId);
}
}
}
}
}
}
foreach (var v in dict)
{
string sendIP = v.Key;
TCPClient tCPClient = TCPClientManager.GetTCPClientByIPHost(sendIP);
byte[] lightOn = Helper.OutstoreLight(v.Value, "无",0);
tCPClient.Send(lightOn);
Thread.Sleep(100);
}
//报警灯灭
List<string> WarnLightShelfCode = new List<string>();
foreach (string storecode in StoreCode)
{
List<ModuleInfo> mi = DbHelp.db.Queryable<ModuleInfo>().Where(it => it.ModuleCode == storecode).ToList();
if (mi.Count != 0)
{
if (!WarnLightShelfCode.Contains(mi[0].ShelfCode))
{
WarnLightShelfCode.Add(mi[0].ShelfCode);
}
}
}
foreach (string shelfcode in WarnLightShelfCode)
{
List<ShelfInfo> si = DbHelp.db.Queryable<ShelfInfo>().Where(it => it.ShelfCode == shelfcode).ToList();
if (si.Count != 0)
{
for (int i = 0; i < si.Count; i++)
{
TCPClient tCPClient = TCPClientManager.GetTCPClientByIPHost(si[i].ClientIp);
byte[] warnlightOn = Helper.OutstoreWarnLight(si[i].LightId, "无", 0, 0);
tCPClient.Send(warnlightOn);
Thread.Sleep(100);
}
}
}
return new ResponseCommon()
{
Code = 200,