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返回结果异常"); } } } }