Files
T-DAS/Epost.TestToolsWeb/WebService/WebService.asmx.cs

210 lines
11 KiB
C#
Raw Normal View History

2023-07-18 11:18:52 +08:00
using Epost.BLL;
using Epost.Common;
2023-08-14 14:57:24 +08:00
using Epost.DAL;
using Epost.DAL.Cache;
2023-07-18 11:18:52 +08:00
using Epost.Model;
2024-01-12 16:53:44 +08:00
using PTLSystems.Service.PublicF;
2023-07-18 11:18:52 +08:00
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Security.Policy;
using System.Web;
2023-08-14 14:57:24 +08:00
using System.Web.Helpers;
using System.Web.Razor.Tokenizer.Symbols;
2023-07-18 11:18:52 +08:00
using System.Web.Services;
namespace Epost.DPS.WebService
{
/// <summary>
/// WebService 的摘要说明
/// </summary>
[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();
2023-08-14 14:57:24 +08:00
CommandDAL dal = new CommandDAL();
2023-09-06 12:44:42 +08:00
CommandBLL combll = new CommandBLL();
AddressstorageBLL addbll = new AddressstorageBLL();
2023-08-30 17:23:23 +08:00
private object obj = new object();
2023-08-14 14:57:24 +08:00
JobModelCacheDAL JobCache = new JobModelCacheDAL();
2023-07-18 11:18:52 +08:00
[WebMethod]
public string ReceiveDataInfo_XML(string action, string messages)
{
2023-08-30 17:23:23 +08:00
lock (obj)
2023-07-18 11:18:52 +08:00
{
2023-08-30 17:23:23 +08:00
LogHelper.WriteLogInfo("WebService请求报文");
LogHelper.WriteLogInfo("action" + action + "");
LogHelper.WriteLogInfo("messages" + messages + "");
main main = new main();
msg msg = new msg();
var resultxml = string.Empty;
try
2023-07-18 11:18:52 +08:00
{
2023-08-30 17:23:23 +08:00
if (!string.IsNullOrEmpty(messages))
2023-07-18 11:18:52 +08:00
{
2023-08-30 17:23:23 +08:00
bool flag = true;
string mms = string.Empty;
LogHelper.WriteLogInfo("======开始处理数据======");
2023-09-14 13:27:34 +08:00
DataSet set = XmlHelper.GetDataSetStrXml(messages.Replace("&", "").Replace("#", "").Replace("△", "").Replace("☆", "").Replace("=", "").Replace("】", "").Replace("【", "").Replace(" ", "").Replace("\"", "").Replace("", ":").Replace("", "(").Replace("", ")").Replace("×", "x").Replace("ω", "w").Replace("α", "a"));
2023-08-30 17:23:23 +08:00
if (set != null && set.Tables.Count > 0 && set.Tables[0].Rows.Count > 0)
2023-07-26 13:09:49 +08:00
{
2023-08-30 17:23:23 +08:00
var ReturnDt = set.Tables["pick"];
DataTable dtResult = ReturnDt.Clone();
2024-01-12 16:53:44 +08:00
string str = string.Empty;
2023-08-30 17:23:23 +08:00
foreach (DataRow item in ReturnDt.Rows)
2023-07-18 11:18:52 +08:00
{
2023-09-06 12:44:42 +08:00
2023-12-15 11:57:07 +08:00
DataTable dt = bll.GetDataIfRepeat(item["transderMid"].ToString(), item["transderDid"].ToString());
if (dt == null || dt.Rows.Count <= 0)
2023-08-14 14:57:24 +08:00
{
2023-12-15 11:57:07 +08:00
DataTable locdt = bll.GetlocationInfo(item["areaId"].ToString());
if (locdt != null && locdt.Rows.Count > 0)
2023-08-30 17:23:23 +08:00
{
2024-01-12 16:53:44 +08:00
locdt.Columns.Add("strinfo", typeof(string));
2023-12-15 11:57:07 +08:00
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["Unit"] = item["Unit"].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();
2024-01-12 16:53:44 +08:00
dataRow["strinfo"] = dataRow["strinfo"] + str;
2023-12-15 11:57:07 +08:00
dtResult.Rows.Add(dataRow);
2023-08-30 17:23:23 +08:00
}
else
{
2023-12-15 11:57:07 +08:00
LogHelper.WriteLogInfo("" + item["areaId"].ToString() + ",该货位不存在");
2024-01-12 16:53:44 +08:00
str = str + item["areaId"].ToString() + "|";
2023-08-30 17:23:23 +08:00
}
2023-08-14 14:57:24 +08:00
}
2023-09-06 12:44:42 +08:00
else
{
2023-12-15 11:57:07 +08:00
mms += "主键重复 (" + item["transderMid"].ToString() + "-" + item["transderDid"].ToString() + ")";
2023-09-06 12:44:42 +08:00
}
2023-07-26 13:09:49 +08:00
}
2023-08-30 17:23:23 +08:00
2023-12-15 11:57:07 +08:00
2023-09-06 12:44:42 +08:00
#region
2023-08-30 17:23:23 +08:00
if (!string.IsNullOrEmpty(mms))
{
mms = mms.Substring(0, mms.Length - 1);
msg.Status = "erro";
msg.Message = "数据异常:" + mms + "";
main.msg = msg;
resultxml = XmlHelper.ModelToXml(main);
LogHelper.WriteLogInfo("数据异常:" + mms + "");
}
2023-07-26 13:09:49 +08:00
else
{
2023-08-30 17:23:23 +08:00
if (flag)
2023-08-14 14:57:24 +08:00
{
2023-08-30 17:23:23 +08:00
Dictionary<string, string> diclist = new Dictionary<string, string>();
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("Unit", "unit");
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");
2024-01-12 16:53:44 +08:00
diclist.Add("strinfo", "clientcode");
2023-08-14 14:57:24 +08:00
2023-08-30 17:23:23 +08:00
bool b = bll.ImportOrderinfo(dtResult, diclist);
if (b)
{
msg.Status = "ok";
msg.Message = "接收成功";
main.msg = msg;
resultxml = XmlHelper.ModelToXml(main);
LogHelper.WriteLogInfo("接收成功");
2023-08-14 14:57:24 +08:00
}
else
{
2023-08-30 17:23:23 +08:00
msg.Status = "erro";
msg.Message = "数据异常:数据接收失败,请检查货位和标签对应关系是否正确,请重试!";
main.msg = msg;
2023-09-06 12:44:42 +08:00
resultxml = XmlHelper.ModelToXml(main);
2023-08-30 17:23:23 +08:00
LogHelper.WriteLogInfo("数据异常:数据接收失败,请重试!");
2023-08-14 14:57:24 +08:00
}
}
else
{
2023-08-30 17:23:23 +08:00
msg.Status = "ok";
msg.Message = "熄灭成功";
main.msg = msg;
resultxml = XmlHelper.ModelToXml(main);
LogHelper.WriteLogInfo("熄灭成功");
return resultxml;
2023-08-14 14:57:24 +08:00
}
2023-07-18 11:18:52 +08:00
}
2023-09-06 12:44:42 +08:00
#endregion
2023-07-26 13:09:49 +08:00
}
2023-08-30 17:23:23 +08:00
else
2023-07-26 13:09:49 +08:00
{
msg.Status = "erro";
2023-08-30 17:23:23 +08:00
msg.Message = "数据异常解析XML失败请检查XML格式后再进行推送";
2023-07-26 13:09:49 +08:00
main.msg = msg;
resultxml = XmlHelper.ModelToXml(main);
2023-08-30 17:23:23 +08:00
LogHelper.WriteLogInfo("数据异常解析XML失败请检查XML格式后再进行推送");
2023-07-18 11:18:52 +08:00
}
2023-09-06 12:44:42 +08:00
2023-07-18 11:18:52 +08:00
}
else
{
msg.Status = "erro";
2023-08-30 17:23:23 +08:00
msg.Message = "数据异常未在XML内获取到数据请检查后再进行推送";
2023-07-18 11:18:52 +08:00
main.msg = msg;
resultxml = XmlHelper.ModelToXml(main);
2023-08-30 17:23:23 +08:00
LogHelper.WriteLogInfo("数据异常未在XML内获取到数据请检查后再进行推送");
2023-07-18 11:18:52 +08:00
}
2023-08-30 17:23:23 +08:00
return resultxml;
2023-07-18 11:18:52 +08:00
}
2023-08-30 17:23:23 +08:00
catch (Exception ex)
2023-07-18 11:18:52 +08:00
{
msg.Status = "erro";
2023-08-30 17:23:23 +08:00
msg.Message = "数据异常:" + ex.Message + "";
2023-07-18 11:18:52 +08:00
main.msg = msg;
2023-08-30 17:23:23 +08:00
LogHelper.WriteLogInfo("数据异常:" + ex.Message + "");
return resultxml = XmlHelper.ModelToXml(main);
2023-07-18 11:18:52 +08:00
}
}
}
}
}