//using log4net; //using Newtonsoft.Json; //using Quartz; //using RDIFramework.Utilities; //using System; //using System.Collections.Generic; //using System.Configuration; //using System.Data; //using System.Globalization; //using System.IO; //using System.Linq; //using System.Net; //using System.Security.Cryptography; //using System.Text; //using System.Web.Script.Serialization; //namespace TimedUpload.QuartzJobs //{ // [DisallowConcurrentExecution] // public class NewDataUploadJob:IJob // { // private readonly ILog log = LogManager.GetLogger(typeof(IJob)); // private static DateTime timeStampStartTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); // public void Execute(IJobExecutionContext context) // { // log.Info("抄表数据上传任务开始执行.................\r\n"); // #region 逻辑 // try // { // String str_CompanyID = Constants.ComPanyId; // String uploadTime = Constants.uploadTime; // String str_Url = Constants.newUrl; // string now = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss", DateTimeFormatInfo.InvariantInfo); // //GetSecretKey(str_Url, Constants.passWord); // //查询水表数据 // String str_Sql = "select ElecAddress AS MeterNo,ISNULL( NowReading, 0 ) AS EndNumber,NowRadingDT,UserNo from V_WaterMeters where UserNo is not null and CompanyID ='" + str_CompanyID + "' and DeleteMark =0 and NowRadingDT >= '"+ uploadTime+"'"; // DataTable dt_MeterInfo = dbHelper.Fill(str_Sql); // if (dt_MeterInfo.Rows.Count > 0) // { // List l_Data = new List(); // for (int i = 0; i < dt_MeterInfo.Rows.Count; i++) // { // newDatalist dataList = new newDatalist(); // //数据处理 // dataList.MeterFactory = Constants.AppId; // dataList.MeterNo = dt_MeterInfo.Rows[i]["MeterNo"].ToString(); // dataList.EndNumber = Convert.ToDouble(dt_MeterInfo.Rows[i]["EndNumber"]); ; // dataList.Mon = Convert.ToInt32(Convert.ToDateTime(dt_MeterInfo.Rows[i]["NowRadingDT"].ToString()).ToString("yyyyMM")); // dataList.Remark = ""; // dataList.UserNo = dt_MeterInfo.Rows[i]["UserNo"].ToString(); // l_Data.Add(dataList); // } // String timestamp = getTimeStamp10(DateTime.Now).ToString(); // // 原始数据转为json格式 // String obj = JsonHelper.ObjectToJSON(l_Data); // String appSecret = Constants.appSecret; // // 拼接字符串 // String sign = obj+ "×tamp="+timestamp+ "&key="+appSecret; // String md5Sign = md5Encript(sign); // // 封装数据到实体类 // newData data = new newData(); // data.timestamp = timestamp; // data.sign = md5Sign; // data.body = l_Data; // String parameter = JsonHelper.ObjectToJSON(data); // str_Url = str_Url + "?sign=" + md5Sign + "×tamp=" + timestamp; // String str_Result = WebHelper.HttpWebRequest(str_Url, obj, "POST", "application/json"); // if (str_Result.Contains("成功")) // { // log.Info("上传成功" + parameter); // } // UpdateUploadTime(now); // } // //整理数据格式 // //调接口上传数据 // } // catch (Exception ex) // { // log.Error("抄表数据上传任务异常:" + ex.Message); // } // #endregion // log.InfoFormat("抄表数据上传任务执行结束.................\r\n"); // } // /// // /// 更新配置文件中的更新数据时间 // /// // /// // private void UpdateUploadTime(string time) // { // var cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); // cfg.AppSettings.Settings["uploadTime"].Value = time; // cfg.Save(); // ConfigurationManager.RefreshSection("appSettings"); // } // public string md5Encript(String str) // { // MD5 md5 = new MD5CryptoServiceProvider(); // byte[] data = Encoding.UTF8.GetBytes(str); // byte[] result = md5.ComputeHash(data); // String md5Str = BitConverter.ToString(result).Replace("-", ""); // return md5Str; // } // /// // /// 返回13位整数 // /// // /// // /// // public long getTimeStamp(DateTime dateTime) // { // return (long)(dateTime.ToUniversalTime() - timeStampStartTime).TotalMilliseconds; // } // public long getTimeStamp10(DateTime dateTime) // { // return (long)(dateTime.ToUniversalTime() - timeStampStartTime).TotalSeconds; // } // public static bool CheckTableExiste(string strTableName) // { // string strSql = "select * from sysobjects where name='" + strTableName + "'"; // if (CreateDataSet(strSql).Tables[0].Rows.Count == 0) // { // return false; // } // return true; // } // public static DataSet CreateDataSet(string strSql) // { // DataSet dataSet = new DataSet(); // try // { // dataSet = new DataSet(); // dbHelper.Fill(dataSet, strSql, "checkTable"); // } // catch (Exception exception) // { // //log.Error("checkTable:" + exception.Message); // } // return dataSet; // } // static IDbProvider dbHelper // { // get // { // var DbDefine = DbFactoryProvider.GetProvider(CurrentDbType.SqlServer, Constants.DBUrl); // return DbDefine; // } // } // } // public class newResult // { // public String secretKey { get; set; } // public String message { get; set; } // public String status { get; set; } // } // public class newData // { // public String timestamp { get; set; } // public String sign { get; set; } // public List body { get; set; } // } // public class newDatalist // { // //水表厂商编号 AppId // public String MeterFactory { get; set; } // //水表编号 // public String MeterNo { get; set; } // //水表读数 // public double EndNumber { get; set; } // //年月 例:202407 // public int Mon { get; set; } // //备注 // public String Remark { get; set; } // //用户号 // public String UserNo { get; set; } // } //}