From cc78693b7d8e50707a01dc2ab3a7ccac5841300a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B8=85=E5=87=AF=20=E8=B4=BE?= <807404298@qq.com> Date: Wed, 6 Sep 2023 12:44:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E6=8E=A5=E5=8F=A3=E7=81=AD?= =?UTF-8?q?=E7=81=AF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Epost.BLL/AddressstorageBLL.cs | 25 ++-- Epost.BLL/OrderBLL.cs | 4 +- Epost.BLL/OrderControlBLL.cs | 9 +- Epost.DAL/AddressstorageDAL.cs | 7 + Epost.DAL/OrdersDAL.cs | 21 ++- .../PublishProfiles/Toolsweb.pubxml.user | 24 ++-- .../WebService/WebService.asmx.cs | 126 +++++++++++++----- 7 files changed, 153 insertions(+), 63 deletions(-) diff --git a/Epost.BLL/AddressstorageBLL.cs b/Epost.BLL/AddressstorageBLL.cs index 06a6082..2512adf 100644 --- a/Epost.BLL/AddressstorageBLL.cs +++ b/Epost.BLL/AddressstorageBLL.cs @@ -15,7 +15,7 @@ namespace Epost.BLL { AddressstorageDAL dal = new AddressstorageDAL(); - + #region 查询设备所在区 public DataTable getBlock(string address, string type, string controlip) @@ -39,7 +39,7 @@ namespace Epost.BLL } #endregion - + #region 根据货位号查询标签地址 public DataTable getAddressList(string location) { @@ -54,7 +54,7 @@ namespace Epost.BLL } #endregion - + #region 根据小车编号获取控制器Ip地址 public DataTable getIP(string carid) @@ -89,17 +89,17 @@ namespace Epost.BLL #endregion #region 获取箱号显示标签 - public DataTable GetBoxAddress(string block,string area,int type) + public DataTable GetBoxAddress(string block, string area, int type) { - return dal.GetBoxAddress(block,area,type); + return dal.GetBoxAddress(block, area, type); } #endregion #region 根据区域获取所有地址 - public DataTable getAddresslist(string block, string area,string type) + public DataTable getAddresslist(string block, string area, string type) { - return dal.getAddresslist(block, area,type); + return dal.getAddresslist(block, area, type); } #endregion @@ -152,7 +152,7 @@ namespace Epost.BLL } #endregion - + #region 获取所有地址 public DataTable getAddressList() { @@ -329,9 +329,9 @@ namespace Epost.BLL #region 获取错误信息的state - public DataTable GetErrorState(string address,string ip) + public DataTable GetErrorState(string address, string ip) { - return dal.getErrorState(address,ip); + return dal.getErrorState(address, ip); } #endregion @@ -380,6 +380,11 @@ namespace Epost.BLL { return dal.GetForcedendAddress(orderid); } + + public DataTable GetForcedendAddress() + { + return dal.GetForcedendAddress(); + } #endregion } } diff --git a/Epost.BLL/OrderBLL.cs b/Epost.BLL/OrderBLL.cs index 801a627..d58fa19 100644 --- a/Epost.BLL/OrderBLL.cs +++ b/Epost.BLL/OrderBLL.cs @@ -1044,9 +1044,9 @@ namespace Epost.BLL return dal.GetDataIfRepeat(transderMid, transderDid); } - public DataTable GetOrdersDT(string address, string ControlIP) + public bool UpOrdersState(string orderid) { - return dal.GetOrdersDT(address, ControlIP); + return dal.UpOrdersState(orderid); } #region 校验货位 diff --git a/Epost.BLL/OrderControlBLL.cs b/Epost.BLL/OrderControlBLL.cs index 79dc3c3..4d5f8a2 100644 --- a/Epost.BLL/OrderControlBLL.cs +++ b/Epost.BLL/OrderControlBLL.cs @@ -595,7 +595,7 @@ namespace Epost.BLL { var nowmodel = nowJoblist.FirstOrDefault(); - #region 点亮任务标s签 + #region 点亮任务标签 foreach (JobModel item in nowJoblist.ToArray()) { List isshowList = jobList.FindAll(p => p.Address == item.Address && p.ControlIP == item.ControlIP && p.State == 1); @@ -628,7 +628,12 @@ namespace Epost.BLL lamodel.Title = item.genericname; - lamodel.Content = "" + item.Sku.Substring(item.Sku.Length - 4, 4) + " " + item.Spec + "\r" + item.GoodsName + "\r批号" + item.batchno + " " + item.manufactname.Substring(0, 4) + ""; + string manufactname = string.Empty; + if (!string.IsNullOrEmpty(item.manufactname) && item.manufactname.Length > 4) + { + manufactname = item.manufactname.Substring(0, 4); + } + lamodel.Content = "" + item.Sku.Substring(item.Sku.Length - 4, 4) + "\\t" + item.Spec + "\r" + item.GoodsName + "\r批号" + item.batchno + " " + manufactname + ""; var aryloc = item.Tolocation.Split('-'); lamodel.Loc = "" + aryloc[0].ToString() + "-" + aryloc[1].ToString() + ""; lamodel.W_quantity = aryloc[2].ToString(); diff --git a/Epost.DAL/AddressstorageDAL.cs b/Epost.DAL/AddressstorageDAL.cs index b9ff9de..b0bcd71 100644 --- a/Epost.DAL/AddressstorageDAL.cs +++ b/Epost.DAL/AddressstorageDAL.cs @@ -820,6 +820,13 @@ namespace Epost.DAL DataTable dt = db.GetsqlForDT(sql); return dt; } + + public DataTable GetForcedendAddress() + { + string sql = string.Format("select distinct ControlIP from v_orders "); + DataTable dt = db.GetsqlForDT(sql); + return dt; + } #endregion } } diff --git a/Epost.DAL/OrdersDAL.cs b/Epost.DAL/OrdersDAL.cs index 3a6b0b9..bce6729 100644 --- a/Epost.DAL/OrdersDAL.cs +++ b/Epost.DAL/OrdersDAL.cs @@ -3026,11 +3026,24 @@ namespace Epost.DAL return dt; } - public DataTable GetOrdersDT(string address, string ControlIP) + public bool UpOrdersState(string orderid) { - string sql = string.Format("select address,type,area,block,ControlIP,v_orders.id,tolocation,quantity,oprationstate,v_orders.sku,v_orders.orderid from v_orders left join OrdersQueue on v_orders.block=OrdersQueue.Taskblock where address='2001' and ControlIP='192.168.3.118' and oprationstate!=3"); - DataTable dt = db.GetsqlForDT(sql); - return dt; + string strwhere = string.Empty; + if (!string.IsNullOrEmpty(orderid)) + { + strwhere += " and orderid='" + orderid + "'"; + } + string sql = string.Format("update Orders set oprationstate='3',quantity=truequantity,state='3' where 1=1 " + strwhere + ""); + long x = db.UpdateSql(sql); + LogHelper.WriteLogInfo("接口灭灯-修改状态:" + sql + ",执行条数:" + x + ""); + if (x > 0) + { + return true; + } + else + { + return false; + } } #region 校验货位 diff --git a/Epost.TestToolsWeb/Properties/PublishProfiles/Toolsweb.pubxml.user b/Epost.TestToolsWeb/Properties/PublishProfiles/Toolsweb.pubxml.user index 90f10e8..9e7aac5 100644 --- a/Epost.TestToolsWeb/Properties/PublishProfiles/Toolsweb.pubxml.user +++ b/Epost.TestToolsWeb/Properties/PublishProfiles/Toolsweb.pubxml.user @@ -7,7 +7,7 @@ <_PublishTargetUrl>D:\驿传\抚远 - True|2023-08-31T04:12:45.4579572Z;False|2023-08-31T12:03:58.6171819+08:00;False|2023-08-31T12:03:32.2416438+08:00;True|2023-08-29T14:40:55.7436382+08:00;True|2023-08-29T13:53:07.9540335+08:00;True|2023-08-28T18:11:01.9231397+08:00;True|2023-08-28T14:56:19.8843265+08:00;True|2023-08-23T11:17:33.7204155+08:00;True|2023-08-11T10:59:03.8399200+08:00;True|2023-08-10T10:43:16.0729140+08:00;True|2023-08-08T15:22:08.0127989+08:00;True|2023-08-08T13:59:07.6838749+08:00;True|2023-08-08T13:57:15.7160673+08:00;True|2023-08-03T15:39:49.2488696+08:00;True|2023-08-03T13:13:24.0839734+08:00;True|2023-08-02T14:19:21.5188473+08:00;True|2023-08-02T10:44:46.7436910+08:00;True|2023-08-01T10:42:26.5280618+08:00;True|2023-07-28T15:54:24.3172356+08:00;True|2023-07-25T17:25:54.2443213+08:00;True|2023-07-25T17:24:33.4620388+08:00;True|2023-07-19T16:26:31.8476193+08:00;True|2023-07-19T16:04:27.8753884+08:00;True|2023-07-19T15:38:50.9706808+08:00;True|2023-07-03T13:53:41.0701316+08:00;True|2023-04-27T20:14:15.0331014+08:00;True|2023-04-21T16:37:45.9559800+08:00;True|2023-04-20T19:12:32.4520337+08:00;True|2023-04-20T18:51:17.9201241+08:00;True|2023-04-20T16:36:34.8353434+08:00;True|2023-04-19T11:42:01.7398184+08:00;True|2023-04-19T11:37:42.0024926+08:00;True|2023-04-18T15:36:56.8763198+08:00;True|2023-04-18T14:56:45.8672402+08:00;True|2023-04-17T10:51:00.4138485+08:00;True|2023-04-16T18:42:38.2510554+08:00;False|2023-04-16T18:42:10.5319125+08:00;True|2023-04-16T18:32:05.9038034+08:00;True|2023-04-16T17:11:22.6510841+08:00;True|2022-07-15T16:41:13.9750291+08:00;True|2022-07-14T14:02:20.7983427+08:00;True|2022-07-13T17:40:22.7531000+08:00;True|2022-07-13T17:34:22.9908701+08:00;True|2022-07-13T17:30:06.3588502+08:00;True|2022-07-11T10:32:06.9053981+08:00;True|2021-04-26T10:07:37.4889549+08:00;True|2021-04-09T10:32:51.9130162+08:00;True|2021-04-09T10:31:50.4974012+08:00; + True|2023-09-04T05:33:29.7459963Z;True|2023-09-01T16:56:41.0563400+08:00;False|2023-09-01T16:55:48.4344805+08:00;True|2023-09-01T13:48:48.7619456+08:00;False|2023-09-01T13:47:55.1222255+08:00;True|2023-08-31T12:12:45.4579572+08:00;False|2023-08-31T12:03:58.6171819+08:00;False|2023-08-31T12:03:32.2416438+08:00;True|2023-08-29T14:40:55.7436382+08:00;True|2023-08-29T13:53:07.9540335+08:00;True|2023-08-28T18:11:01.9231397+08:00;True|2023-08-28T14:56:19.8843265+08:00;True|2023-08-23T11:17:33.7204155+08:00;True|2023-08-11T10:59:03.8399200+08:00;True|2023-08-10T10:43:16.0729140+08:00;True|2023-08-08T15:22:08.0127989+08:00;True|2023-08-08T13:59:07.6838749+08:00;True|2023-08-08T13:57:15.7160673+08:00;True|2023-08-03T15:39:49.2488696+08:00;True|2023-08-03T13:13:24.0839734+08:00;True|2023-08-02T14:19:21.5188473+08:00;True|2023-08-02T10:44:46.7436910+08:00;True|2023-08-01T10:42:26.5280618+08:00;True|2023-07-28T15:54:24.3172356+08:00;True|2023-07-25T17:25:54.2443213+08:00;True|2023-07-25T17:24:33.4620388+08:00;True|2023-07-19T16:26:31.8476193+08:00;True|2023-07-19T16:04:27.8753884+08:00;True|2023-07-19T15:38:50.9706808+08:00;True|2023-07-03T13:53:41.0701316+08:00;True|2023-04-27T20:14:15.0331014+08:00;True|2023-04-21T16:37:45.9559800+08:00;True|2023-04-20T19:12:32.4520337+08:00;True|2023-04-20T18:51:17.9201241+08:00;True|2023-04-20T16:36:34.8353434+08:00;True|2023-04-19T11:42:01.7398184+08:00;True|2023-04-19T11:37:42.0024926+08:00;True|2023-04-18T15:36:56.8763198+08:00;True|2023-04-18T14:56:45.8672402+08:00;True|2023-04-17T10:51:00.4138485+08:00;True|2023-04-16T18:42:38.2510554+08:00;False|2023-04-16T18:42:10.5319125+08:00;True|2023-04-16T18:32:05.9038034+08:00;True|2023-04-16T17:11:22.6510841+08:00;True|2022-07-15T16:41:13.9750291+08:00;True|2022-07-14T14:02:20.7983427+08:00;True|2022-07-13T17:40:22.7531000+08:00;True|2022-07-13T17:34:22.9908701+08:00;True|2022-07-13T17:30:06.3588502+08:00;True|2022-07-11T10:32:06.9053981+08:00;True|2021-04-26T10:07:37.4889549+08:00;True|2021-04-09T10:32:51.9130162+08:00;True|2021-04-09T10:31:50.4974012+08:00; @@ -33,19 +33,19 @@ 04/16/2023 15:06:26 - 08/31/2023 12:19:14 + 09/05/2023 11:00:15 - 08/31/2023 12:19:14 + 09/05/2023 11:00:15 02/24/2020 15:29:24 - 08/31/2023 12:02:42 + 09/01/2023 16:55:14 - 08/31/2023 12:02:42 + 09/01/2023 16:55:14 04/16/2023 15:06:26 @@ -63,25 +63,25 @@ 10/23/2017 13:15:20 - 08/31/2023 12:18:20 + 09/05/2023 11:00:00 - 08/31/2023 12:18:20 + 09/05/2023 11:00:00 08/26/2020 18:09:48 - 08/31/2023 12:02:43 + 09/04/2023 13:32:56 - 08/31/2023 12:02:43 + 09/04/2023 13:32:56 - 08/31/2023 12:19:02 + 09/05/2023 11:00:06 - 08/31/2023 12:19:02 + 09/05/2023 11:00:06 07/19/2023 15:37:56 @@ -5652,7 +5652,7 @@ 04/16/2023 15:06:27 - 08/31/2023 12:19:04 + 09/05/2023 11:00:09 04/04/2018 15:45:12 diff --git a/Epost.TestToolsWeb/WebService/WebService.asmx.cs b/Epost.TestToolsWeb/WebService/WebService.asmx.cs index 8ff118a..491f295 100644 --- a/Epost.TestToolsWeb/WebService/WebService.asmx.cs +++ b/Epost.TestToolsWeb/WebService/WebService.asmx.cs @@ -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 list = new List(); + //熄灭指定订单任务 + if (item["Current"].ToString() == "Y") { - DataTable orderdt = bll.GetOrdersDT(item["labelIP"].ToString(), item["labelIP"].ToString()); - if (orderdt != null && orderdt.Rows.Count > 0) + List jobList = JobCache.GetPlanJobList().FindAll(p => p.OrderID == item["transderMid"].ToString()); + LogHelper.WriteLogInfo("熄灭指定订单亮灯任务---订单号:" + item["transderMid"].ToString() + "---条数:" + jobList.Count + ""); + if (jobList != null && jobList.Count > 0) { - List list = new List(); - 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 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 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 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) {