using log4net; using Newtonsoft.Json; using Quartz; using System; using System.Collections.Generic; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Reflection; using System.Text; namespace JobReqWebData { public class JobGetATDData : IJob { private ILog log = LogManager.GetLogger(typeof(JobGetATDData)); private const string CfgFileName = "requestjson.cfg"; private static string CfgFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, CfgFileName); public void Execute(IJobExecutionContext context) { var requestjson = File.ReadAllText(CfgFilePath); if (string.IsNullOrEmpty(requestjson)) return; try { string connStr = context.JobDetail.JobDataMap.GetString("ConnectString"); string reqUrl = context.JobDetail.JobDataMap.GetString("ReqUrl"); string UpdateSql = context.JobDetail.JobDataMap.GetString("UpdateSql"); int reqTimeout = Convert.ToInt32(context.JobDetail.JobDataMap.GetString("RequestTimeout")); log.Debug($"连接字符串:{connStr}"); log.Debug($"请求URL:{reqUrl}"); log.Debug($"请求JSON:{requestjson}"); log.Debug($"请求超时:{reqTimeout}"); string rtn = WebRequestHelper.DoPost(reqUrl, requestjson, reqTimeout*1000); log.Debug($"数据返回:{rtn}"); var parseJsonObj = JsonConvert.DeserializeObject(rtn); if (parseJsonObj.status == "1") { var parseETAJsonObj = JsonConvert.DeserializeObject(rtn); //入库 using (SqlConnection dbcon = new SqlConnection(connStr)) { dbcon.Open(); using (SqlTransaction trans = dbcon.BeginTransaction()) { #region 运踪 foreach (var item in parseETAJsonObj.message) { string sql = UpdateSql; sql = sql.Replace("[实际离港日期]", item.SJLGSJ).Replace("[实际离港日期]", item.SJLGSJ).Replace("[实际离港日期]", item.SJLGSJ).Replace("[实际离港日期]", item.SJLGSJ).Replace("[实际离港日期]", item.SJLGSJ); sql = sql.Replace("[预计到港日期]", item.ETA).Replace("[预计到港日期]", item.ETA).Replace("[预计到港日期]", item.ETA).Replace("[预计到港日期]", item.ETA).Replace("[预计到港日期]", item.ETA); sql = sql.Replace("[实际到港日期]", item.SJDGSJ).Replace("[实际到港日期]", item.SJDGSJ).Replace("[实际到港日期]", item.SJDGSJ).Replace("[实际到港日期]", item.SJDGSJ).Replace("[实际到港日期]", item.SJDGSJ); sql = sql.Replace("[预计开船日期]", item.ETD).Replace("[预计开船日期]", item.ETD).Replace("[预计开船日期]", item.ETD).Replace("[预计开船日期]", item.ETD).Replace("[预计开船日期]", item.ETD).Replace("[预计开船日期]", item.ETD); sql = sql.Replace("[船名]", item.YWCM); sql = sql.Replace("[航次]", item.CKHC); SqlCommand cmd = new SqlCommand(sql, dbcon, trans); cmd.ExecuteNonQuery(); //if (!string.IsNullOrEmpty(item.SJLGSJ)) //{ // string sql ="update op_seae set ATD='"+ item.SJLGSJ + "' where VESSEL='"+ item.YWCM + "' AND VOYNO='"+ item.CKHC+ "'"; // SqlCommand cmd = new SqlCommand(sql, dbcon, trans); // cmd.ExecuteNonQuery(); //} } #endregion trans.Commit(); } dbcon.Close(); } } else { log.Debug($"返回数据为空"); } } catch (Exception ex) { log.Error(ex.Message); log.Error(ex.StackTrace); } } } }