diff --git a/JobPingTaiWork/JobPingTaiWork.csproj b/JobPingTaiWork/JobPingTaiWork.csproj index 1d90ff1d..7a73153e 100644 --- a/JobPingTaiWork/JobPingTaiWork.csproj +++ b/JobPingTaiWork/JobPingTaiWork.csproj @@ -64,6 +64,9 @@ ..\packages\Quartz.2.6.2\lib\net40\Quartz.dll + + ..\packages\RabbitMQ.Client.3.6.9\lib\net45\RabbitMQ.Client.dll + diff --git a/JobPingTaiWork/Job_WLXX.cs b/JobPingTaiWork/Job_WLXX.cs index f57131dd..08de91f9 100644 --- a/JobPingTaiWork/Job_WLXX.cs +++ b/JobPingTaiWork/Job_WLXX.cs @@ -13,6 +13,7 @@ using System.Text; using HcUtility.Core; using HcUtility.Comm; using System.Data.Entity; +using RabbitMQ.Client; namespace JobPingTaiWork { @@ -145,6 +146,7 @@ namespace JobPingTaiWork connStr = context.JobDetail.JobDataMap.GetString("ConnectString"); reqUrl = context.JobDetail.JobDataMap.GetString("ReqUrl"); reqTimeout = Convert.ToInt32(context.JobDetail.JobDataMap.GetString("RequestTimeout")); + var mqConnStr = context.JobDetail.JobDataMap.GetString("RabbitConnectString"); log.Debug($"连接字符串:{connStr}"); log.Debug($"请求URL:{reqUrl}"); @@ -196,7 +198,7 @@ namespace JobPingTaiWork } else { - + var needPushStatus = false; var PortResult = Newtonsoft.Json.JsonConvert.DeserializeObject(rtn); var portstatus = PortResult.message[0]; @@ -232,7 +234,7 @@ namespace JobPingTaiWork //result = SaveStatus(newStatusRecord, headdata.MFNO); upd = true; EdiStatusDAL.Update(newStatusRecord); - + needPushStatus = true; } else { newStatusRecord = status; @@ -253,14 +255,49 @@ namespace JobPingTaiWork newStatusRecord.SetValue("mblno", MBLNO); EdiStatusDAL.Insert(newStatusRecord); - + needPushStatus= true; } } DelMinMblno(connStr); } - + if(needPushStatus) + { + //回推舱单状态 + try + { + if (string.IsNullOrEmpty(mqConnStr)) + { + log.Warn($"未配置舱单回推消息队列,不会回推状态:{MFNO}"); + } + else + { + + log.Debug($"准备推送舱单状态回推到消息队列:{string.Join(",", MFNO)}"); + //推送消息 + ConnectionFactory factory = new ConnectionFactory(); + factory.Uri = mqConnStr; + var mqConn = factory.CreateConnection("JobPingTaiWork"); + + var exchangeName = "myshiping.feedback.status.cangdan"; + IModel model = mqConn.CreateModel(); + model.ExchangeDeclare(exchange: exchangeName, type: ExchangeType.Fanout); + model.BasicPublish(exchange: exchangeName, + routingKey: "", + basicProperties: null, + body: Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new { MfnoList = new string[] { MFNO } }))); + + mqConn.Close(); + log.Debug($"推送舱单状态回推消息完成"); + } + } + catch (Exception ex) + { + log.Error($"推送舱单状态回推消息失败:{ex.Message}"); + log.Error(ex.StackTrace); + } + } } } diff --git a/JobPingTaiWork/packages.config b/JobPingTaiWork/packages.config new file mode 100644 index 00000000..32020e47 --- /dev/null +++ b/JobPingTaiWork/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file