新增单灯货架亮灯
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net.Sockets;
|
||||
@ -177,6 +178,19 @@ namespace WCS.BLL.Manager
|
||||
//后台启动时给所有板子、警示灯发送复位操作 保持状态一致
|
||||
public static void InitStatus(TCPClient tcpClient)
|
||||
{
|
||||
|
||||
List<ModuleInfo> MI = DbHelp.db.Queryable<ModuleInfo>().Where(it => it.CleintIp == tcpClient.RemoteIPHost).ToList();
|
||||
if (MI.Count != 0)
|
||||
{
|
||||
List<ShelfInfo> SI = DbHelp.db.Queryable<ShelfInfo>().Where(it => it.ShelfCode == MI[0].ShelfCode).ToList();
|
||||
if (SI.Count != 0)
|
||||
{
|
||||
if (SI[0].ShelfTypeName == "信息化货架")
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
Task.Run(() =>
|
||||
{
|
||||
try
|
||||
|
@ -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()
|
||||
|
@ -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,
|
||||
|
@ -81,5 +81,129 @@ namespace WCS.BLL.Tool
|
||||
}
|
||||
return data.ToArray();
|
||||
}
|
||||
|
||||
//出库库位灯亮灯
|
||||
public static byte[] OutstoreLight(List<int> board_id, string lightcolor,int status)
|
||||
{
|
||||
byte color = 0x00;
|
||||
switch (lightcolor)
|
||||
{
|
||||
case "红":
|
||||
color = 0x01;
|
||||
break;
|
||||
case "绿":
|
||||
color = 0x02;
|
||||
break;
|
||||
case "黄":
|
||||
color = 0x03;
|
||||
break;
|
||||
case "蓝":
|
||||
color = 0x04;
|
||||
break;
|
||||
case "紫":
|
||||
color = 0x05;
|
||||
break;
|
||||
case "青":
|
||||
color = 0x06;
|
||||
break;
|
||||
case "白":
|
||||
color = 0x07;
|
||||
break;
|
||||
case "无":
|
||||
color = 0x00;
|
||||
break;
|
||||
}
|
||||
byte[] data1 = new byte[3 * board_id.Count + 5];
|
||||
data1[0] = 0xff;
|
||||
data1[1] = 0x01;
|
||||
byte[] length_base = BitConverter.GetBytes(data1.Length + 2);
|
||||
data1[2] = length_base[1];
|
||||
data1[3] = length_base[0];
|
||||
data1[4] = (byte)board_id.Count;
|
||||
for (int i = 0; i < board_id.Count; i++)
|
||||
{
|
||||
data1[5 + i * 3] = (byte)board_id[i];
|
||||
data1[5 + i * 3 + 1] = (byte)status;
|
||||
data1[5 + i * 3 + 2] = color;
|
||||
}
|
||||
byte[] data = Crc16(data1, data1.Length, true);
|
||||
return data;
|
||||
}
|
||||
|
||||
//出库警示灯亮灯
|
||||
public static byte[] OutstoreWarnLight(int lightid ,string lightcolor, int status,int beestatus)
|
||||
{
|
||||
byte color = 0x00;
|
||||
switch (lightcolor)
|
||||
{
|
||||
case "红":
|
||||
color = 0x01;
|
||||
break;
|
||||
case "绿":
|
||||
color = 0x02;
|
||||
break;
|
||||
case "黄":
|
||||
color = 0x03;
|
||||
break;
|
||||
case "蓝":
|
||||
color = 0x04;
|
||||
break;
|
||||
case "紫":
|
||||
color = 0x05;
|
||||
break;
|
||||
case "青":
|
||||
color = 0x06;
|
||||
break;
|
||||
case "白":
|
||||
color = 0x07;
|
||||
break;
|
||||
case "无":
|
||||
color = 0x00;
|
||||
break;
|
||||
}
|
||||
byte[] data1 = new byte[8];
|
||||
data1[0] = 0xff;
|
||||
data1[1] = 0x02;
|
||||
data1[2] = 0x00;
|
||||
data1[3] = 0x0a;
|
||||
data1[4] = (byte)lightid;
|
||||
data1[5] = (byte)status;
|
||||
data1[6] = color;
|
||||
data1[7] = (byte)beestatus;
|
||||
byte[] data2 = Crc16(data1, data1.Length, true);
|
||||
return data2;
|
||||
}
|
||||
|
||||
//入库库位灯短亮(绿色)
|
||||
public static byte[] InstoreLight(int board_id)
|
||||
{
|
||||
byte[] data2 = new byte[8];
|
||||
data2[0] = 0xff;
|
||||
data2[1] = 0x01;
|
||||
data2[2] = 0x00;
|
||||
data2[3] = 0x0a;
|
||||
data2[4] = 0x01;
|
||||
data2[5] = (byte)board_id;
|
||||
data2[6] = 0x03;
|
||||
data2[7] = 0x02;
|
||||
byte[] senddata2 = Tool.Helper.Crc16(data2, data2.Length, true);
|
||||
return senddata2;
|
||||
}
|
||||
|
||||
//入库警示灯短亮(绿色),蜂鸣器鸣叫一次
|
||||
public static byte[] InstoreWarnLight(int lightid)
|
||||
{
|
||||
byte[] data1 = new byte[8];
|
||||
data1[0] = 0xff;
|
||||
data1[1] = 0x02;
|
||||
data1[2] = 0x00;
|
||||
data1[3] = 0x0a;
|
||||
data1[4] = (byte)lightid;
|
||||
data1[5] = 0x03;
|
||||
data1[6] = 0x02;
|
||||
data1[7] = 0x02;
|
||||
byte[] senddata1 = Tool.Helper.Crc16(data1, data1.Length, true);
|
||||
return senddata1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user