using Epost.BLL; using Epost.Common; using Epost.Model; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Security.Policy; using System.Web; using System.Web.Services; namespace Epost.DPS.WebService { /// /// WebService 的摘要说明 /// [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 // [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService { OrderBLL bll = new OrderBLL(); OrdersQueueBLL queueBLL = new OrdersQueueBLL(); [WebMethod] public string ReceiveDataInfo_XML(string action, string messages) { LogHelper.WriteLogInfo("WebService请求报文:"); LogHelper.WriteLogInfo("action:" + action + ""); LogHelper.WriteLogInfo("messages:" + messages + ""); main main = new main(); msg msg = new msg(); var resultxml = string.Empty; try { DataTable queuedt = queueBLL.getQueuesbyState(); if (queuedt == null || queuedt.Rows.Count <= 0) { if (!string.IsNullOrEmpty(messages)) { LogHelper.WriteLogInfo("======开始处理数据======"); DataSet set = XmlHelper.GetDataSetStrXml(messages); if (set != null && set.Tables.Count > 0 && set.Tables[0].Rows.Count > 0) { var ReturnDt = set.Tables["pick"]; DataTable dtResult = ReturnDt.Clone(); foreach (DataRow item in ReturnDt.Rows) { DataTable dt = bll.GetDataIfRepeat(item["transderMid"].ToString(), item["transderDid"].ToString()); if (dt == null || dt.Rows.Count <= 0) { DataRow dataRow = dtResult.NewRow(); dataRow["transderMid"] = item["transderMid"].ToString(); dataRow["transderDid"] = item["transderDid"].ToString(); dataRow["drugCode"] = item["drugCode"].ToString(); dataRow["drugCommName"] = item["drugCommName"].ToString(); dataRow["drugName"] = item["drugName"].ToString(); dataRow["drugSpec"] = item["drugSpec"].ToString(); dataRow["manufactName"] = item["manufactName"].ToString(); dataRow["batchNo"] = item["batchNo"].ToString(); dataRow["expire"] = item["expire"].ToString(); dataRow["areaId"] = item["areaId"].ToString(); dataRow["pickQty"] = item["pickQty"].ToString(); dataRow["stock"] = item["stock"].ToString(); dataRow["drugStoreName"] = item["drugStoreName"].ToString(); dataRow["labelColor"] = item["labelColor"].ToString(); dataRow["lookListen"] = item["lookListen"].ToString(); dataRow["labelIP"] = item["labelIP"].ToString(); dataRow["labelNo"] = item["labelNo"].ToString(); dtResult.Rows.Add(dataRow); } } Dictionary diclist = new Dictionary(); diclist.Add("transderMid", "orderid"); diclist.Add("transderDid", "transderDid"); diclist.Add("drugCode", "sku"); diclist.Add("drugCommName", "genericname"); diclist.Add("drugName", "goodsname"); diclist.Add("drugSpec", "Spec"); diclist.Add("manufactName", "manufactname"); diclist.Add("batchNo", "batchno"); diclist.Add("expire", "orderdate"); diclist.Add("areaId", "tolocation"); diclist.Add("pickQty", "quantity"); diclist.Add("stock", "stockquantity"); diclist.Add("drugStoreName", "shopname"); diclist.Add("labelColor", "labelcolor"); diclist.Add("lookListen", "looklisten"); diclist.Add("labelIP", "labelIP"); diclist.Add("labelNo", "labelno"); bool b = bll.ImportOrderinfo(dtResult, diclist); if (b) { msg.Status = "ok"; msg.Message = "接收成功"; main.msg = msg; resultxml = XmlHelper.ModelToXml(main); LogHelper.WriteLogInfo("接收成功"); } else { msg.Status = "erro"; msg.Message = "数据异常:数据处理失败,请重试!"; main.msg = msg; resultxml = XmlHelper.XmlSerialize(main); LogHelper.WriteLogInfo("数据异常:数据处理失败,请重试!"); } } else { msg.Status = "erro"; msg.Message = "数据异常:解析XML失败,请检查XML格式后再进行推送!"; main.msg = msg; resultxml = XmlHelper.ModelToXml(main); LogHelper.WriteLogInfo("数据异常:解析XML失败,请检查XML格式后再进行推送!"); } } else { msg.Status = "erro"; msg.Message = "数据异常:未在XML内获取到数据,请检查后再进行推送!"; main.msg = msg; resultxml = XmlHelper.ModelToXml(main); LogHelper.WriteLogInfo("数据异常:未在XML内获取到数据,请检查后再进行推送!"); } return resultxml; } else { msg.Status = "erro"; msg.Message = "数据异常/当前存在拣药任务"; main.msg = msg; LogHelper.WriteLogInfo("数据异常/当前存在拣药任务"); return resultxml = XmlHelper.ModelToXml(main); } } catch (Exception ex) { msg.Status = "erro"; msg.Message = "数据异常:" + ex.Message + ""; main.msg = msg; LogHelper.WriteLogInfo("数据异常:" + ex.Message + ""); return resultxml = XmlHelper.ModelToXml(main); } } } }