using Newtonsoft.Json;/********************************************************************************
** auth: DBS
** date: 2019/2/18 17:07:51
** desc: 尚未编写描述
** Ver.: V1.0.0
*********************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using HH.WMS.DAL;
using HH.WMS.Entitys;
using HH.WMS.Entitys.Basic;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using HH.WMS.Entitys.Ams;
using HH.WMS.Common;
using HH.WMS.Entitys.External;
namespace HH.WMS.BLL.Interface
{
public class OtherSysApi : DapperBaseBLL
{
///
/// 出库确认
///
/// 发货通知单号
///
public OperateResult OutOrderConmit(string opType, string fromOpNo)
{
TN_WMS_REQ_LOGEntity req = new TN_WMS_REQ_LOGEntity()
{
CN_GUID = Guid.NewGuid().ToString(),
CN_S_INTERFACE = "OutOrderConmit",
CN_S_INTERFACE_NAME = "发货确认",
CN_T_CREATE = DateTime.Now
};
try
{
Log.Info("===>出库确认调用上游系统接口", opType + fromOpNo);
OperateResult result = new OperateResult();
//返回接口定义数据
TN_WM_INTERFACE_DEFEntity entity = CreateDAL>().GetSingleEntity(new { CN_S_INTF_CODE = "OutOrderConmit" });
if (entity == null)
{
Log.Info("===>出库确认调用上游系统接口", "未配置该接口定义");
return OperateResult.Error("未配置该接口定义");
}
else if (entity.CN_C_IS_ENABLE.Equals("N"))
{
return OperateResult.Succeed();
}
switch (entity.CN_S_PROTOCOL.Trim())
{
case "WebApi":
string requestContext = "opFromNo=" + fromOpNo + "&opType=" + opType;
req.CN_S_REQUEST = requestContext;
Log.Info("===>调用上游系统接口", requestContext);
string res = WebApiManager.HttpGet(entity.CN_S_URL, "", "opFromNo=" + fromOpNo + "&opType=" + opType);
Log.Info("===>调用上游系统接口", res);
req.CN_S_RESPONSE = res;
CreateDAL>().Add(req);
if (res == "")
return OperateResult.Error("接口访问失败!");
else
return OperateResult.Succeed();
break;
}
return result;
}
catch (Exception ex)
{
Log.Info("===>出库确认调用上游系统接口,程序异常:", ex.Message);
CreateDAL>().Add(req);
return OperateResult.Error(ex.Message);
}
}
///
/// 下达任务给AMS
///
///
///
public OperateResult SendAmsTask(TN_WM_TASKEntity model)
{
//返回接口定义数据
//if (GetStrategy(model.CN_S_STOCK_CODE, Constants.IsUseAms) == "Y")
//{
return SendAms(model);
// }
// return OperateResult.Succeed();
//return OperateResult.Succeed();
}
public OperateResult SendAmsCreateTask(TN_WM_TASKEntity model)
{
List sendParams = new List();
JObject sendParam = new JObject();
sendParam.Add("businessType", "转运");
sendParam.Add("whNoFrom", model.CN_S_STOCK_CODE);
sendParam.Add("whNoTo", model.CN_S_STOCK_CODE);
sendParam.Add("sysName", "WMS");
sendParam.Add("deviceName", "WMS");
sendParam.Add("taskNo", model.CN_S_TASK_NO);
sendParam.Add("locationFrom", model.CN_S_START_BIT);
sendParam.Add("locationTo", model.CN_S_END_BIT);
sendParam.Add("priority", model.CN_N_PRIORITY);
sendParam.Add("areaTo", JsonConvert.SerializeObject(model.END_AREAS));
sendParams.Add(sendParam);
string sendData = JsonConvert.SerializeObject(sendParams);
Log.Info("===>发送任务给AMS", sendData);
string postOmsData = JsonConvert.SerializeObject(sendParams);
string result = WebApiManager.HttpAms_Post("api/HHAms/AddTask", postOmsData);
Log.Info("===>AMS返回结果", result);
if (result == "")
return OperateResult.Error("请检查AMS访问地址!");
try
{
AmsResponse s = JsonConvert.DeserializeObject(result);
if (s.success)
{
return OperateResult.Succeed();
}
else
{
return OperateResult.Error(s.failList[0].errMsg);
}
}
catch (Exception ex)
{
Log.Info("===>AMS返回结果异常", ex.Message);
return OperateResult.Error("AMS返回结果异常");
}
}
private OperateResult SendAms(TN_WM_TASKEntity model)
{
List sendParams = new List();
JObject sendParam = new JObject();
sendParam.Add("businessType", "转运");
sendParam.Add("whNoFrom", "");
sendParam.Add("whNoTo", "");
sendParam.Add("sysName", "WMS");
sendParam.Add("deviceName", "WMS");
sendParam.Add("taskNo", model.CN_S_TASK_NO);
sendParam.Add("locationFrom", model.CN_S_START_BIT);
sendParam.Add("locationTo", model.CN_S_END_BIT);
sendParam.Add("priority", model.CN_N_PRIORITY);
sendParam.Add("areaTo", JsonConvert.SerializeObject(model.END_AREAS));
sendParams.Add(sendParam);
string sendData = JsonConvert.SerializeObject(sendParams);
Log.Info("===>发送任务给AMS", sendData);
string postOmsData = JsonConvert.SerializeObject(sendParams);
string result = WebApiManager.HttpAms_Post("api/HHAms/AddTask", postOmsData);
Log.Info("===>AMS返回结果", result);
TN_WMS_REQ_LOGEntity req = new TN_WMS_REQ_LOGEntity()
{
CN_GUID = System.Guid.NewGuid().ToString().ToUpper(),
CN_S_INTERFACE = "SendAmsTask",
CN_S_INTERFACE_NAME = "下达任务",
CN_S_REQUEST = postOmsData,
CN_S_RESPONSE = result,
CN_T_CREATE = DateTime.Now
};
OperateResult r = CreateDAL>().Add(req);
if (result == "")
return OperateResult.Error("请检查AMS访问地址!");
try
{
AmsResponse s = JsonConvert.DeserializeObject(result);
if (s.success)
{
return OperateResult.Succeed();
}
else
{
return OperateResult.Error(s.failList[0].errMsg);
}
}
catch (Exception ex)
{
Log.Info("===>AMS返回结果异常", ex.Message);
return OperateResult.Error("AMS返回结果异常");
}
}
public OperateResult SendAmsCreateTaskHK(TN_WM_TRANSPORT_TASKEntity model)
{
List sendParams = new List();
JObject sendParam = new JObject();
sendParam.Add("businessType", model.AMSTaskType);
sendParam.Add("whNoFrom", model.CN_S_STOCK_CODE);
sendParam.Add("whNoTo", model.CN_S_STOCK_CODE);
sendParam.Add("sysName", "WMS");
sendParam.Add("deviceName", "WMS");
sendParam.Add("taskNo", model.CN_S_TASK_NO);
sendParam.Add("locationFrom", model.CN_S_START_BIT);
sendParam.Add("locationTo", model.CN_S_END_BIT);
sendParam.Add("priority", model.CN_N_PRIORITY);
sendParam.Add("ext2", model.CN_S_REMARK);
sendParam.Add("areaTo", JsonConvert.SerializeObject(model.END_AREAS));
sendParams.Add(sendParam);
string sendData = JsonConvert.SerializeObject(sendParams);
Log.Info("===>发送任务给AMS", sendData);
string postOmsData = JsonConvert.SerializeObject(sendParams);
string result = WebApiManager.HttpAms_Post("api/HHAms/AddTask", postOmsData);
Log.Info("===>AMS返回结果", result);
if (result == "")
return OperateResult.Error("请检查AMS访问地址!");
try
{
AmsResponse s = JsonConvert.DeserializeObject(result);
if (s.success)
{
return OperateResult.Succeed();
}
else
{
return OperateResult.Error(s.failList[0].errMsg);
}
}
catch (Exception ex)
{
Log.Info("===>AMS返回结果异常", ex.Message);
return OperateResult.Error("AMS返回结果异常");
}
}
public OperateResult SendAmsCreateTask(TN_WM_TRANSPORT_TASKEntity model)
{
List sendParams = new List();
JObject sendParam = new JObject();
sendParam.Add("businessType", "转运");
sendParam.Add("whNoFrom", model.CN_S_STOCK_CODE);
sendParam.Add("whNoTo", model.CN_S_STOCK_CODE);
sendParam.Add("sysName", "WMS");
sendParam.Add("deviceName", "WMS");
sendParam.Add("taskNo", model.CN_S_TASK_NO);
sendParam.Add("locationFrom", model.CN_S_START_BIT);
sendParam.Add("locationTo", model.CN_S_END_BIT);
sendParam.Add("priority", model.CN_N_PRIORITY);
sendParam.Add("areaTo", JsonConvert.SerializeObject(model.END_AREAS));
sendParams.Add(sendParam);
string sendData = JsonConvert.SerializeObject(sendParams);
Log.Info("===>发送任务给AMS", sendData);
string postOmsData = JsonConvert.SerializeObject(sendParams);
string result = WebApiManager.HttpAms_Post("api/HHAms/AddTask", postOmsData);
Log.Info("===>AMS返回结果", result);
if (result == "")
return OperateResult.Error("请检查AMS访问地址!");
try
{
AmsResponse s = JsonConvert.DeserializeObject(result);
if (s.success)
{
return OperateResult.Succeed();
}
else
{
return OperateResult.Error(s.failList[0].errMsg);
}
}
catch (Exception ex)
{
Log.Info("===>AMS返回结果异常", ex.Message);
return OperateResult.Error("AMS返回结果异常");
}
}
public OperateResult SendAmsCreateTaskJX(TN_WM_TRANSPORT_TASKEntity model)
{
List sendParams = new List();
//List lstTray = new List();
//lstTray.Add(model.CN_S_CIR_OBJ_CODE);
JObject sendParam = new JObject();
sendParam.Add("businessType", "转运");
sendParam.Add("whNoFrom", "");
sendParam.Add("whNoTo", "");
sendParam.Add("sysName", "WMS");
sendParam.Add("deviceName", "WMS");
sendParam.Add("batchNo", model.CN_S_CIR_OBJ_CODE);
sendParam.Add("taskNo", model.CN_S_TASK_NO);
sendParam.Add("locationFrom", model.CN_S_START_BIT);
sendParam.Add("locationTo", model.CN_S_END_BIT);
sendParam.Add("priority", model.CN_N_PRIORITY);
sendParam.Add("ext1", model.CN_S_REMARK);
sendParam.Add("areaTo", JsonConvert.SerializeObject(model.END_AREAS));
sendParams.Add(sendParam);
string sendData = JsonConvert.SerializeObject(sendParams);
Log.Info("===>巨星 发送任务给AMS", sendData);
string postOmsData = JsonConvert.SerializeObject(sendParams);
string result = WebApiManager.HttpAms_Post("api/HHAms/AddTask", postOmsData);
Log.Info("===>AMS返回结果", result);
if (result == "")
return OperateResult.Error("请检查AMS访问地址!");
try
{
AmsResponse s = JsonConvert.DeserializeObject(result);
if (s.success)
{
return OperateResult.Succeed();
}
else
{
return OperateResult.Error(s.failList[0].errMsg);
}
}
catch (Exception ex)
{
Log.Info("===>AMS返回结果异常", ex.Message);
return OperateResult.Error("AMS返回结果异常");
}
}
public OperateResult SendAmsCreateTaskLJ(TN_WM_TRANSPORT_TASKEntity model)
{
List sendParams = new List();
JObject sendParam = new JObject();
sendParam.Add("businessType", "人工");
sendParam.Add("whNoFrom", model.CN_S_STOCK_CODE);
sendParam.Add("whNoTo", model.CN_S_STOCK_CODE);
sendParam.Add("sysName", "WMS");
sendParam.Add("deviceName", "WMS");
sendParam.Add("taskNo", model.CN_S_TASK_NO);
sendParam.Add("locationFrom", model.CN_S_START_BIT);
sendParam.Add("locationTo", model.CN_S_END_BIT);
sendParam.Add("priority", model.CN_N_PRIORITY);
sendParam.Add("areaTo", JsonConvert.SerializeObject(model.END_AREAS));
sendParam.Add("ext2", model.CN_S_REMARK);
sendParam.Add("ext3", model.CN_S_EXT3);
sendParams.Add(sendParam);
string sendData = JsonConvert.SerializeObject(sendParams);
Log.Info("===>发送任务给AMS-隆基", sendData);
string postOmsData = JsonConvert.SerializeObject(sendParams);
string result = WebApiManager.HttpAms_Post("api/HHAms/AddTask", postOmsData);
Log.Info("===>AMS返回结果", result);
if (result == "")
return OperateResult.Error("请检查AMS访问地址!");
try
{
AmsResponse s = JsonConvert.DeserializeObject(result);
if (s.success)
{
return OperateResult.Succeed();
}
else
{
return OperateResult.Error(s.failList[0].errMsg);
}
}
catch (Exception ex)
{
Log.Info("===>AMS返回结果异常", ex.Message);
return OperateResult.Error("AMS返回结果异常");
}
}
public OperateResult SendAmsCreateTaskLJ(TN_WM_TASKEntity model)
{
List sendParams = new List();
JObject sendParam = new JObject();
sendParam.Add("businessType", "人工");
sendParam.Add("whNoFrom", model.CN_S_STOCK_CODE);
sendParam.Add("whNoTo", model.CN_S_STOCK_CODE);
sendParam.Add("sysName", "WMS");
sendParam.Add("deviceName", "WMS");
sendParam.Add("taskNo", model.CN_S_TASK_NO);
sendParam.Add("locationFrom", model.CN_S_START_BIT);
sendParam.Add("locationTo", model.CN_S_END_BIT);
sendParam.Add("priority", model.CN_N_PRIORITY);
sendParam.Add("areaTo", JsonConvert.SerializeObject(model.END_AREAS));
sendParam.Add("ext2", model.mesInfo);
sendParam.Add("ext3", model.CN_S_EXT3);
sendParams.Add(sendParam);
string sendData = JsonConvert.SerializeObject(sendParams);
Log.Info("===>发送任务给AMS-隆基", sendData);
string postOmsData = JsonConvert.SerializeObject(sendParams);
string result = WebApiManager.HttpAms_Post("api/HHAms/AddTask", postOmsData);
Log.Info("===>AMS返回结果", result);
if (result == "")
return OperateResult.Error("请检查AMS访问地址!");
try
{
AmsResponse s = JsonConvert.DeserializeObject(result);
if (s.success)
{
return OperateResult.Succeed();
}
else
{
return OperateResult.Error(s.failList[0].errMsg);
}
}
catch (Exception ex)
{
Log.Info("===>AMS返回结果异常", ex.Message);
return OperateResult.Error("AMS返回结果异常");
}
}
public OperateResult SendAmsCreateTaskHK(TN_WM_TASKEntity model)
{
List sendParams = new List();
JObject sendParam = new JObject();
sendParam.Add("businessType", model.CN_S_TASK_TYPE);
sendParam.Add("whNoFrom", model.CN_S_STOCK_CODE);
sendParam.Add("whNoTo", model.CN_S_STOCK_CODE);
sendParam.Add("sysName", "WMS");
sendParam.Add("deviceName", "WMS");
sendParam.Add("taskNo", model.CN_S_TASK_NO);
sendParam.Add("locationFrom", model.CN_S_START_BIT);
sendParam.Add("locationTo", model.CN_S_END_BIT);
sendParam.Add("priority", model.CN_N_PRIORITY);
sendParam.Add("areaTo", JsonConvert.SerializeObject(model.END_AREAS));
sendParams.Add(sendParam);
string sendData = JsonConvert.SerializeObject(sendParams);
Log.DomainInfo("===>发送任务给AMS", sendData);
string postOmsData = JsonConvert.SerializeObject(sendParams);
string result = WebApiManager.HttpAms_Post("api/HHAms/AddTask", postOmsData);
Log.DomainInfo("===>AMS返回结果", result);
if (result == "")
return OperateResult.Error("请检查AMS访问地址!");
try
{
AmsResponse s = JsonConvert.DeserializeObject(result);
if (s.success)
{
return OperateResult.Succeed();
}
else
{
return OperateResult.Error(s.failList[0].errMsg);
}
}
catch (Exception ex)
{
Log.DomainInfo("===>AMS返回结果异常", ex.Message);
return OperateResult.Error("AMS返回结果异常");
}
}
}
}