更改接口灭灯功能

This commit is contained in:
帅凯 贾
2023-09-06 12:44:42 +08:00
parent 7eff397fb5
commit cc78693b7d
7 changed files with 153 additions and 63 deletions

View File

@ -28,6 +28,9 @@ namespace Epost.DPS.WebService
OrderBLL bll = new OrderBLL();
OrdersQueueBLL queueBLL = new OrdersQueueBLL();
CommandDAL dal = new CommandDAL();
CommandBLL combll = new CommandBLL();
AddressstorageBLL addbll = new AddressstorageBLL();
private object obj = new object();
JobModelCacheDAL JobCache = new JobModelCacheDAL();
@ -46,15 +49,12 @@ namespace Epost.DPS.WebService
var resultxml = string.Empty;
try
{
//DataTable queuedt = queueBLL.getQueuesbyState();
//if (queuedt == null || queuedt.Rows.Count <= 0)
//{
if (!string.IsNullOrEmpty(messages))
{
bool flag = true;
string mms = string.Empty;
LogHelper.WriteLogInfo("======开始处理数据======");
DataSet set = XmlHelper.GetDataSetStrXml(messages.Replace("&", "").Replace("#", "").Replace("△", "").Replace("☆", "").Replace("=", "").Replace("】", "").Replace("【", "").Replace(" ", "").Replace("\"", "").Replace("", ":").Replace("", "(").Replace("", ")"));
DataSet set = XmlHelper.GetDataSetStrXml(messages.Replace("&", "").Replace("#", "").Replace("△", "").Replace("☆", "").Replace("=", "").Replace("】", "").Replace("【", "").Replace(" ", "").Replace("\"", "").Replace("", ":").Replace("", "(").Replace("", ")").Replace("×", "x").Replace("ω", "w"));
if (set != null && set.Tables.Count > 0 && set.Tables[0].Rows.Count > 0)
{
var ReturnDt = set.Tables["pick"];
@ -62,24 +62,39 @@ namespace Epost.DPS.WebService
foreach (DataRow item in ReturnDt.Rows)
{
if (!string.IsNullOrEmpty(item["labelNo"].ToString()))
#region /
//灭灯
if (item["TaskType"].ToString() == "Y")
{
if (!string.IsNullOrEmpty(item["labelIP"].ToString()))
List<LabelParamModel> list = new List<LabelParamModel>();
//熄灭指定订单任务
if (item["Current"].ToString() == "Y")
{
DataTable orderdt = bll.GetOrdersDT(item["labelIP"].ToString(), item["labelIP"].ToString());
if (orderdt != null && orderdt.Rows.Count > 0)
List<JobModel> jobList = JobCache.GetPlanJobList().FindAll(p => p.OrderID == item["transderMid"].ToString());
LogHelper.WriteLogInfo("熄灭指定订单亮灯任务---订单号:" + item["transderMid"].ToString() + "---条数:" + jobList.Count + "");
if (jobList != null && jobList.Count > 0)
{
List<LabelParamModel> list = new List<LabelParamModel>();
LabelParamModel model = new LabelParamModel();
model.ControlIP = item["labelIP"].ToString();
model.Address = item["labelNo"].ToString();
model.Command = "REMOVE_JOB";
model.Uid = orderdt.Rows[0]["id"].ToString();
model.Type = "C";
list.Add(model);
foreach (var itemlist in jobList)
{
LabelParamModel model = new LabelParamModel();
model.ControlIP = itemlist.ControlIP.ToString();
model.Address = itemlist.Address.ToString();
model.Command = "REMOVE_JOB";
model.Uid = itemlist.ID.ToString();
model.Type = "C";
list.Add(model);
itemlist.State = '3';
List<JobModel> ExjobList = JobCache.GetPlanJobList().FindAll(p => p.Block == itemlist.Block && p.Area == itemlist.Area);
if (!ExjobList.Any())
{
LogHelper.WriteLogInfo("熄灭指定订单任务-熄灭通道灯:" + itemlist.Block + "++++" + itemlist.Area + "");
combll.DISPLAY_LIGHT_BLOCK(itemlist.Block, itemlist.Area, "0");
}
}
dal.SendALL(list);
List<JobModel> jobList = JobCache.GetPlanJobList().FindAll(p => p.ID == orderdt.Rows[0]["id"].ToString());
bool b = bll.UpOrdersState(item["transderMid"].ToString());
JobCache.UpdateJobModelList(jobList, EcommendType.Execute);
flag = false;
@ -87,24 +102,67 @@ namespace Epost.DPS.WebService
else
{
msg.Status = "erro";
msg.Message = "数据异常:当前标签未亮灯!";
msg.Message = "标签熄灭失败:当前标签未亮灯!";
main.msg = msg;
resultxml = XmlHelper.ModelToXml(main);
LogHelper.WriteLogInfo("数据异常:当前标签未亮灯!");
LogHelper.WriteLogInfo("标签熄灭失败:当前标签未亮灯!");
return resultxml;
}
}
//熄灭全部
else if (item["Current"].ToString() == "N")
{
List<JobModel> jobList = JobCache.GetPlanJobList();
if (jobList != null && jobList.Count > 0)
{
DataTable dt = addbll.GetForcedendAddress();
foreach (DataRow additem in dt.Rows)
{
LabelParamModel model = new LabelParamModel();
model.ControlIP = additem["ControlIP"].ToString();
model.Address = "9999";
model.Command = "FORMAT_JOB_DATA";
model.Parameter = "50";
model.Timeout = "0.5";
list.Add(model);
model = new LabelParamModel();
model.ControlIP = additem["ControlIP"].ToString();
model.Address = "9999";
model.Parameter = "11111000";
model.Command = "UNLOCK";
model.Timeout = "0.5";
list.Add(model);
combll.LED_OFF_CLEAR(additem["ControlIP"].ToString());
}
dal.SendALL(list);
bool b = bll.UpOrdersState("");
JobCache.UpdateJobModelList(jobList, EcommendType.Execute);
flag = false;
}
else
{
msg.Status = "erro";
msg.Message = "标签熄灭失败:当前标签未亮灯!";
main.msg = msg;
resultxml = XmlHelper.ModelToXml(main);
LogHelper.WriteLogInfo("标签熄灭失败:当前标签未亮灯!");
return resultxml;
}
}
else
{
msg.Status = "erro";
msg.Message = "数据异常:标签对应控制器IP未传值请检查数据后重试";
msg.Message = "数据异常:Current参数为空或参数不正确";
main.msg = msg;
resultxml = XmlHelper.ModelToXml(main);
LogHelper.WriteLogInfo("数据异常:标签对应控制器IP未传值请检查数据后重试");
LogHelper.WriteLogInfo("数据异常:Current参数为空或参数不正确");
return resultxml;
}
}
else
else if (item["TaskType"].ToString() == "N")
{
DataTable dt = bll.GetDataIfRepeat(item["transderMid"].ToString(), item["transderDid"].ToString());
if (dt == null || dt.Rows.Count <= 0)
@ -144,9 +202,18 @@ namespace Epost.DPS.WebService
mms += "主键重复 (" + item["transderMid"].ToString() + "-" + item["transderDid"].ToString() + ")";
}
}
else
{
msg.Status = "erro";
msg.Message = "数据异常TaskType参数为空或参数不正确";
main.msg = msg;
resultxml = XmlHelper.ModelToXml(main);
LogHelper.WriteLogInfo("数据异常TaskType参数为空或参数不正确");
}
#endregion
}
#region
if (!string.IsNullOrEmpty(mms))
{
mms = mms.Substring(0, mms.Length - 1);
@ -195,7 +262,7 @@ namespace Epost.DPS.WebService
msg.Status = "erro";
msg.Message = "数据异常:数据接收失败,请检查货位和标签对应关系是否正确,请重试!";
main.msg = msg;
resultxml = XmlHelper.XmlSerialize(main);
resultxml = XmlHelper.ModelToXml(main);
LogHelper.WriteLogInfo("数据异常:数据接收失败,请重试!");
}
}
@ -209,6 +276,7 @@ namespace Epost.DPS.WebService
return resultxml;
}
}
#endregion
}
else
{
@ -218,6 +286,7 @@ namespace Epost.DPS.WebService
resultxml = XmlHelper.ModelToXml(main);
LogHelper.WriteLogInfo("数据异常解析XML失败请检查XML格式后再进行推送");
}
}
else
{
@ -228,15 +297,6 @@ namespace Epost.DPS.WebService
LogHelper.WriteLogInfo("数据异常未在XML内获取到数据请检查后再进行推送");
}
return resultxml;
//}
//else
//{
// msg.Status = "erro";
// msg.Message = "数据异常/当前存在拣药任务";
// main.msg = msg;
// LogHelper.WriteLogInfo("数据异常/当前存在拣药任务");
// return resultxml = XmlHelper.ModelToXml(main);
//}
}
catch (Exception ex)
{