//添加排程執行日誌 private void ScheduleAddLog(string schedule_code) { ScheduleLogQuery query_log = new ScheduleLogQuery(); query_log.schedule_code = schedule_code; try { //如果通過瀏覽器登陸; query_log.create_user = (System.Web.HttpContext.Current.Session["caller"] as Caller).user_id; } catch (Exception) { //根據schedule_code獲取相應period的change_user ScheduleMasterQuery query_master = new ScheduleMasterQuery(); query_master.schedule_code = schedule_code; _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); ScheduleMasterQuery master = _secheduleServiceMgr.GetScheduleMaster(query_master); if (master.schedule_period_id != 0) { SchedulePeriodQuery query_period = new SchedulePeriodQuery(); query_period.rowid = master.schedule_period_id; query_period = _secheduleServiceMgr.GetSchedulePeriod(query_period); query_log.create_user = query_period.change_user; } } query_log.ipfrom = BLL.gigade.Common.CommonFunction.GetIP4Address(Request.UserHostAddress.ToString()); _secheduleServiceMgr.AddScheduleLog(query_log); }
public bool SendEMail() { string json = string.Empty; try { #region string schedule_code = "send mail";//Request.Params["schedule_code"].ToString(); MailModel mailModel = new MailModel(); mailModel.MysqlConnectionString = mySqlConnectionString; string GroupCode = string.Empty; string MailTitle = string.Empty; string MailBody = string.Empty; bool IsSeparate = false; bool IsDisplyName = true; ScheduleServiceMgr _secheduleServiceMgr; List<MailRequest> MR = new List<MailRequest>(); MailRequest model = new MailRequest(); List<ScheduleConfigQuery> store_config = new List<ScheduleConfigQuery>(); ScheduleConfigQuery query_config = new ScheduleConfigQuery(); query_config.schedule_code = schedule_code; _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); store_config = _secheduleServiceMgr.GetScheduleConfig(query_config); foreach (ScheduleConfigQuery item in store_config) { if (item.parameterCode.Equals("MailFromAddress")) { mailModel.MailFromAddress = item.value; } else if (item.parameterCode.Equals("MailHost")) { mailModel.MailHost = item.value; } else if (item.parameterCode.Equals("MailPort")) { mailModel.MailPort = item.value; } else if (item.parameterCode.Equals("MailFromUser")) { mailModel.MailFromUser = item.value; } else if (item.parameterCode.Equals("EmailPassWord")) { mailModel.MailFormPwd = item.value; } else if (item.parameterCode.Equals("GroupCode")) { GroupCode = item.value; } else if (item.parameterCode.Equals("MailTitle")) { MailTitle = item.value; } else if (item.parameterCode.Equals("MailTitle")) { MailTitle = item.value; } else if (item.parameterCode.Equals("MailBody")) { MailBody = item.value; } else if (item.parameterCode.Equals("IsSeparate")) { if (item.value.ToString().Trim().ToLower() == "false") { IsSeparate = false; } else if (item.value.ToString().Trim().ToLower() == "true") { IsSeparate = true; } } else if (item.parameterCode.Equals("IsDisplyName")) { if (item.value.ToString().Trim().ToLower() == "false") { IsDisplyName = false; } else if (item.value.ToString().Trim().ToLower() == "true") { IsDisplyName = true; } } else if (!string.IsNullOrEmpty(Request.Params["IsDisplyName"])) { if (Request.Params["IsDisplyName"].ToString().Trim().ToLower() == "false") { IsSeparate = false; } else if (Request.Params["IsDisplyName"].ToString().Trim().ToLower() == "true") { IsSeparate = true; } } } MailHelper mail = new MailHelper(mailModel); _edmcontentMgr = new EdmContentNewMgr(mySqlConnectionString); _edmcontentMgr.SendEMail(mail); #endregion } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false}"; } return true; }
//可以多行刪除數據_config public HttpResponseBase ScheduleConfigDelete() { string json = string.Empty; ScheduleConfigQuery query = new ScheduleConfigQuery(); _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); try { string id = Request.Params["id"]; string[] ids = id.Split(','); for (int i = 0; i < ids.Length - 1; i++) { query.rowid = int.Parse(ids[i].ToString()); _secheduleServiceMgr.ScheduleConfigDelete(query.rowid.ToString()); } json = "{success:true}"; } #region 只刪除一行數據時的代碼段 //if (!string.IsNullOrEmpty(Request.Params["id"])) //{ // query.id = Convert.ToUInt32(Request.Params["id"]); //} // int _dt = informationMgr.PersonInfromationDelete(query); //if (_dt > 0) //{ // json = "{success:true}"; //} //else //{ // json = "{success:false}"; //} #endregion catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return this.Response; }
//可以多行刪除數據_period public HttpResponseBase SchedulePeriodDelete() { string json = string.Empty; SchedulePeriodQuery period = new SchedulePeriodQuery(); _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); try { string id = Request.Params["id"]; id = id.Substring(0, id.Length - 1).ToString(); string[] ids = id.Split(','); if (ids.Length>0) { period.rowid = int.Parse(ids[0].ToString()); period = _secheduleServiceMgr.GetSchedulePeriod(period); ScheduleMasterQuery query_master = new ScheduleMasterQuery(); query_master.schedule_code = period.schedule_code; //刪除 int result = _secheduleServiceMgr.SchedulePeriodDelete(id); if (result > 0) { ScheduleMasterQuery item = _secheduleServiceMgr.GetScheduleMaster(query_master); //更新ScheduleMaster表的previous_execute_time、next_execute_time、state; //獲取next_execute_time和schedule_period_id int schedule_period_id = 0; int next_execute_time = _secheduleServiceMgr.GetNext_Execute_Time(item.schedule_code, out schedule_period_id); //if (item.next_execute_time > next_execute_time || (item.next_execute_time == 0 && item.next_execute_time < next_execute_time)) { item.next_execute_time = next_execute_time; if (item.next_execute_time == 0) { item.schedule_state = 0; } item.schedule_period_id = schedule_period_id; //修改ScheduleMaster _secheduleServiceMgr.UpdateScheduleMaster(item); } } } json = "{success:true}"; } #region 只刪除一行數據時的代碼段 //if (!string.IsNullOrEmpty(Request.Params["id"])) //{ // query.id = Convert.ToUInt32(Request.Params["id"]); //} // int _dt = informationMgr.PersonInfromationDelete(query); //if (_dt > 0) //{ // json = "{success:true}"; //} //else //{ // json = "{success:false}"; //} #endregion catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return this.Response; }
//保存排程_period信息 public HttpResponseBase SaveSchedulePeriodInfo() { string json = string.Empty; try { SchedulePeriodQuery query = new SchedulePeriodQuery(); _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); if (!string.IsNullOrEmpty(Request.Params["rowid"])) { query.rowid = Convert.ToInt32(Request.Params["rowid"]); } if (!string.IsNullOrEmpty(Request.Params["schedule_code"])) { query.schedule_code = Request.Params["schedule_code"]; } if (!string.IsNullOrEmpty(Request.Params["period_type"])) { query.period_type = Convert.ToUInt32(Request.Params["period_type"]); } if (!string.IsNullOrEmpty(Request.Params["period_nums"])) { query.period_nums = Convert.ToUInt32(Request.Params["period_nums"]); } if (!string.IsNullOrEmpty(Request.Params["current_nums"])) { query.current_nums = Convert.ToUInt32(Request.Params["current_nums"]); } if (!string.IsNullOrEmpty(Request.Params["limit_nums"])) { query.limit_nums = Convert.ToUInt32(Request.Params["limit_nums"]); } if (!string.IsNullOrEmpty(Request.Params["begin_datetime"])) { query.begin_datetime = (int)CommonFunction.GetPHPTime(Request.Params["begin_datetime"]); } query.create_user = (System.Web.HttpContext.Current.Session["caller"] as Caller).user_id; query.change_user = (System.Web.HttpContext.Current.Session["caller"] as Caller).user_id; int _dt = _secheduleServiceMgr.SaveSchedulePeriodInfo(query); if (_dt > 0) { json = "{success:true}"; //根據schedule_code獲取相應的ScheduleMaster信息 ScheduleMasterQuery query_master = new ScheduleMasterQuery(); query_master.schedule_code = query.schedule_code; ScheduleMasterQuery item = _secheduleServiceMgr.GetScheduleMaster(query_master); //更新ScheduleMaster表的previous_execute_time、next_execute_time、state; //獲取next_execute_time和schedule_period_id int schedule_period_id = 0; int next_execute_time = _secheduleServiceMgr.GetNext_Execute_Time(item.schedule_code, out schedule_period_id); if (item.next_execute_time > next_execute_time || (item.next_execute_time == 0 && item.next_execute_time < next_execute_time)) { item.next_execute_time = next_execute_time; ; item.schedule_period_id = schedule_period_id; _secheduleServiceMgr.UpdateScheduleMaster(item); } } else { json = "{success:false}"; } } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false,totalCount:0,data:[]}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return Response; }
//立即執行選中的排程 public HttpResponseBase ScheduleMasterRunOnce() { string json = string.Empty; bool result = false; ScheduleMasterQuery query = new ScheduleMasterQuery(); _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); try { string id = Request.Params["id"]; string[] ids = id.Split(','); for (int i = 0; i < ids.Length - 1; i++) { string[] scheduleapis = ids[i].Split('&'); if(scheduleapis.Length==2) { if (!string.IsNullOrEmpty(scheduleapis[0].ToString())&&!string.IsNullOrEmpty(scheduleapis[1].ToString())) { result = ExeScheduleService(scheduleapis[0].ToString(),scheduleapis[1].ToString()); } } } if (result) { json = "{success:true}"; } else { json = "{success:false}"; } } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return this.Response; }
/// <summary> /// 獲取需要執行的排程列表并逐個執行,添加日誌和更新排程; /// </summary> /// <returns></returns> public HttpResponseBase GetExeScheduleServiceList() { //獲取需要執行的排程 List<ScheduleMasterQuery> store = new List<ScheduleMasterQuery>(); _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); try { ScheduleMasterQuery query = new ScheduleMasterQuery(); query.schedule_state = 1; store = _secheduleServiceMgr.GetExeScheduleMasterList(query); foreach (ScheduleMasterQuery item in store) { try { //執行排程 bool result = ExeScheduleService(item.schedule_api,item.schedule_code); //更新SchedulePeriod表的current_nums;ScheduleMaster表的previous_execute_time、next_execute_time、state; //更新current_nums欄位; SchedulePeriodQuery query_period = new SchedulePeriodQuery(); query_period.rowid = item.schedule_period_id; query_period = _secheduleServiceMgr.GetSchedulePeriod(query_period); if (query_period != null) { query_period.current_nums += 1; _secheduleServiceMgr.UpdateSchedulePeriod(query_period); } //更新ScheduleMaster表的previous_execute_time、next_execute_time、state; item.previous_execute_time = (int)CommonFunction.GetPHPTime(); //獲取next_execute_time和schedule_period_id int schedule_period_id = 0; item.next_execute_time = _secheduleServiceMgr.GetNext_Execute_Time(item.schedule_code, out schedule_period_id); item.schedule_period_id = schedule_period_id; if (item.next_execute_time == 0) { item.schedule_state = 0; } _secheduleServiceMgr.UpdateScheduleMaster(item); } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); } } } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); } //this.Response.Clear(); //this.Response.Write(); //this.Response.End(); return this.Response; }
//保存排程_config信息 public HttpResponseBase SaveScheduleConfigInfo() { string json = string.Empty; try { ScheduleConfigQuery query = new ScheduleConfigQuery(); _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); if (!string.IsNullOrEmpty(Request.Params["rowid"])) { query.rowid = Convert.ToInt32(Request.Params["rowid"]); } if (!string.IsNullOrEmpty(Request.Params["schedule_code"])) { query.schedule_code = Request.Params["schedule_code"]; } if (!string.IsNullOrEmpty(Request.Params["parameterCode"])) { query.parameterCode = Request.Params["parameterCode"]; } if (!string.IsNullOrEmpty(Request.Params["value"])) { query.value = Request.Params["value"]; query.value = query.value.Replace("\\","\\\\"); } if (!string.IsNullOrEmpty(Request.Params["parameterName"])) { query.parameterName = Request.Params["parameterName"]; } query.create_user = (System.Web.HttpContext.Current.Session["caller"] as Caller).user_id; query.change_user = (System.Web.HttpContext.Current.Session["caller"] as Caller).user_id; int _dt = _secheduleServiceMgr.SaveScheduleConfigInfo(query); if (_dt > 0) { json = "{success:true}"; } else { json = "{success:false}"; } } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false,totalCount:0,data:[]}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return Response; }
//schedule_master 中的狀態啟用 public HttpResponseBase UpdateStats_Schedule_master() { string json = string.Empty; try { _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); ScheduleMasterQuery query = new ScheduleMasterQuery(); if (!string.IsNullOrEmpty(Request.Params["id"])) { query.rowid = Convert.ToInt32(Request.Params["id"]); } if (!string.IsNullOrEmpty(Request.Params["active"])) { query.schedule_state = Convert.ToInt32(Request.Params["active"]); } query.change_user = (System.Web.HttpContext.Current.Session["caller"] as Caller).user_id; json = _secheduleServiceMgr.UpdateStats_Schedule_master(query); } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false,totalCount:0,data:[]}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return this.Response; }
//保存排程_master信息 public HttpResponseBase SaveScheduleMasterInfo() { string json = string.Empty; try { ScheduleMasterQuery query = new ScheduleMasterQuery(); _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); if (!string.IsNullOrEmpty(Request.Params["rowid"])) { query.rowid = Convert.ToInt32(Request.Params["rowid"]); } if (!string.IsNullOrEmpty(Request.Params["schedule_code"])) { query.schedule_code = Request.Params["schedule_code"]; } if (!string.IsNullOrEmpty(Request.Params["schedule_name"])) { query.schedule_name = Request.Params["schedule_name"]; } if (!string.IsNullOrEmpty(Request.Params["schedule_api"])) { query.schedule_api = Request.Params["schedule_api"]; } if (!string.IsNullOrEmpty(Request.Params["schedule_description"])) { query.schedule_description = Request.Params["schedule_description"]; } if (!string.IsNullOrEmpty(Request.Params["schedule_state"])) { query.schedule_state = Convert.ToInt32(Request.Params["schedule_state"]); } if (!string.IsNullOrEmpty(Request.Params["schedule_period_id"])) { query.schedule_period_id = Convert.ToInt32(Request.Params["schedule_period_id"]); } query.create_user = (System.Web.HttpContext.Current.Session["caller"] as Caller).user_id; query.change_user = (System.Web.HttpContext.Current.Session["caller"] as Caller).user_id; //判斷該schedule_code是否已存在 if (query.rowid == 0)//新增 { ScheduleMasterQuery query_chongfu = new ScheduleMasterQuery(); query_chongfu.schedule_code = query.schedule_code; query_chongfu = _secheduleServiceMgr.GetScheduleMaster(query_chongfu); if (query_chongfu != null) { json = "{success:false,msg:3}"; } else { int _dt = _secheduleServiceMgr.SaveScheduleMasterInfo(query); if (_dt > 0) { json = "{success:true}"; } else { json = "{success:false,msg:2}"; } } } else { int _dt = _secheduleServiceMgr.SaveScheduleMasterInfo(query); if (_dt > 0) { json = "{success:true}"; } else { json = "{success:false,msg:2}"; } } } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false,totalCount:0,data:[]}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return Response; }
public HttpResponseBase GetScheduleLogList()// 獲取Log數據 { string json = string.Empty; int totalcount = 0; ScheduleLogQuery query = new ScheduleLogQuery(); try { List<ScheduleLogQuery> Store = new List<ScheduleLogQuery>(); query.Start = Convert.ToInt32(Request.Params["start"] ?? "0"); query.Limit = Convert.ToInt32(Request.Params["limit"] ?? "25"); if (!string.IsNullOrEmpty(Request.Params["schedule_code"])) { query.schedule_code = Request.Params["schedule_code"]; } if (!string.IsNullOrEmpty(Request.Params["start_time"]))//開始時間 { query.start_time = (int)CommonFunction.GetPHPTime(Convert.ToDateTime(Request.Params["start_time"]).ToString("yyyy-MM-dd HH:mm:ss")); } if (!string.IsNullOrEmpty(Request.Params["end_time"]))//結束時間 { query.end_time = (int)CommonFunction.GetPHPTime(Convert.ToDateTime(Request.Params["end_time"]).ToString("yyyy-MM-dd HH:mm:ss")); } _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); Store = _secheduleServiceMgr.GetScheduleLogList(query, out totalcount); IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式 timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; // json = "{success:true,data:" + JsonConvert.SerializeObject(Store, Formatting.Indented, timeConverter) + "}";//返回json數據 json = "{success:true,totalCount:" + totalcount + ",data:" + JsonConvert.SerializeObject(Store, Formatting.Indented, timeConverter) + "}"; } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false,data:[]}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return this.Response; }
}// 獲取 config數據 public HttpResponseBase GetSchedulePeriodList()// 獲取period數據 { string json = string.Empty; SchedulePeriodQuery query = new SchedulePeriodQuery(); if (!string.IsNullOrEmpty(Request.Params["schedule_code"])) { query.schedule_code = Request.Params["schedule_code"]; } try { List<SchedulePeriodQuery> ipodStore = new List<SchedulePeriodQuery>(); _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); ipodStore = _secheduleServiceMgr.GetSchedulePeriodList(query); IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式 timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; json = "{success:true,data:" + JsonConvert.SerializeObject(ipodStore, Formatting.Indented, timeConverter) + "}";//返回json數據 } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false,data:[]}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return this.Response; }
public HttpResponseBase GetScheduleMasterList() { string json = string.Empty; int totalcount = 0; try { ScheduleMasterQuery query = new ScheduleMasterQuery(); query.Start = Convert.ToInt32(Request.Params["start"] ?? "0"); query.Limit = Convert.ToInt32(Request.Params["limit"] ?? "25"); _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); List<ScheduleMasterQuery> list = _secheduleServiceMgr.GetScheduleMasterList(query); IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; // timeConverter.DateTimeFormat = "yyyy-MM-dd "; json = "{success:true,totalCount:" + totalcount + ",data:" + JsonConvert.SerializeObject(list, Formatting.Indented, timeConverter) + "}"; } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); json = "{success:false,totalCount:0,data:[]}"; } this.Response.Clear(); this.Response.Write(json); this.Response.End(); return Response; } // 獲取 master數據
/// <summary> /// 執行單個排程;只添加日誌 /// </summary> /// <param name="schedule_api"></param> /// <param name="schedule_code"></param> /// <returns></returns> public bool ExeScheduleService(string schedule_api,string schedule_code) { bool result = false; try { //執行排程 string path = System.Web.HttpContext.Current.Server.MapPath(xmlPath); SiteConfigMgr _siteConfigMgr = new SiteConfigMgr(path); BLL.gigade.Model.SiteConfig NETDoMain_Name = _siteConfigMgr.GetConfigByName("NETDoMain_Name"); string api = "http://" + NETDoMain_Name.Value + "/" + schedule_api + "?schedule_code=" + schedule_code; ; _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); result = _secheduleServiceMgr.ExeScheduleService(api); if (result) { //添加排程日誌 ScheduleAddLog(schedule_code); } } catch (Exception ex) { Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage(); logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message); logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; log.Error(logMessage); } return result; }
public bool Start(string schedule_code) { BLL.gigade.Common.MailModel mailModel = new Common.MailModel (); mailModel.MysqlConnectionString = mySqlConnectionString; string GroupCode = string.Empty; string MailTitle = string.Empty; string MailBody = string.Empty; string hourNum = string.Empty; //bool IsSeparate = false; //bool IsDisplyName = true; string isSendMailToGroup = string.Empty; try { //獲取該排程參數 List<ScheduleConfigQuery> store_config = new List<ScheduleConfigQuery>(); ScheduleConfigQuery query_config = new ScheduleConfigQuery(); query_config.schedule_code = schedule_code; ScheduleServiceMgr _secheduleServiceMgr = new ScheduleServiceMgr(mySqlConnectionString); store_config = _secheduleServiceMgr.GetScheduleConfig(query_config); #region mailhelp賦值 foreach (ScheduleConfigQuery item in store_config) { if (item.parameterCode.Equals("MailFromAddress")) { mailModel.MailFromAddress = item.value; } else if (item.parameterCode.Equals("MailHost")) { mailModel.MailHost = item.value; } else if (item.parameterCode.Equals("MailPort")) { mailModel.MailPort = item.value; } else if (item.parameterCode.Equals("MailFromUser")) { mailModel.MailFromUser = item.value; } else if (item.parameterCode.Equals("EmailPassWord")) { mailModel.MailFormPwd = item.value; } else if (item.parameterCode.Equals("GroupCode")) { GroupCode = item.value; } else if (item.parameterCode.Equals("MailTitle")) { MailTitle = item.value; } else if (item.parameterCode.Equals("HourNum")) { if (item.value.Trim() == "0") { hourNum = "1"; } else { hourNum = item.value; } } else if (item.parameterCode.Equals("isSendMailToGroup")) { isSendMailToGroup = item.value; } } if (hourNum.Trim() == string.Empty) { hourNum = "1"; } #endregion //獲取期望到貨日調整記錄(邮件内容) #region 獲取期望到貨日調整記錄表格 DeliverChangeLogQuery aclQuery = new DeliverChangeLogQuery(); aclQuery.time_start = DateTime.Now.AddHours(-Convert.ToDouble(hourNum)); aclQuery.time_end = DateTime.Now; System.Data.DataTable dclTable = _IDeliverChangeLogDao.GetDeliverChangeLogDataTable(aclQuery); System.Data.DataTable dmTable = _IDeliverChangeLogDao.GetDataTable(aclQuery); DataTable _dt = new DataTable(); DataRow dr; _dt.Columns.Add("訂單編號", typeof(string)); _dt.Columns.Add("出貨單號", typeof(string)); _dt.Columns.Add("供應商名稱", typeof(string)); _dt.Columns.Add("出貨方式", typeof(string)); _dt.Columns.Add("異動人", typeof(string)); _dt.Columns.Add("異動類型", typeof(string));// _dt.Columns.Add("異動時間", typeof(string)); //_dt.Columns.Add("原期望到貨日", typeof(string)); _dt.Columns.Add("期望到貨日", typeof(string)); _dt.Columns.Add("期望到貨時段", typeof(string)); _dt.Columns.Add("備註", typeof(string)); _dt.Columns.Add("來源IP", typeof(string)); _dt.Columns.Add("異動時段", typeof(string)); _dt.Columns.Add("時間", typeof(string));//difftime //自行出貨的供應商 DataTable deliverDt = new DataTable(); DataRow deliverDr; deliverDt.Columns.Add("訂單編號", typeof(string)); deliverDt.Columns.Add("出貨單號", typeof(string)); deliverDt.Columns.Add("付款完成時間", typeof(string)); deliverDt.Columns.Add("供應商編號", typeof(string)); deliverDt.Columns.Add("供應商郵箱", typeof(string)); deliverDt.Columns.Add("供應商名稱", typeof(string)); deliverDt.Columns.Add("期望到貨日", typeof(string)); deliverDt.Columns.Add("期望到貨時段", typeof(string)); deliverDt.Columns.Add("預計到貨日", typeof(string)); deliverDt.Columns.Add("備註", typeof(string)); if (dclTable.Rows.Count > 0) { #region 循環賦值 for (int i = 0; i < dmTable.Rows.Count; i++) { #region 自行出貨的供應商的table賦值 deliverDr = deliverDt.NewRow(); deliverDr["訂單編號"] = dmTable.Rows[i]["order_id"].ToString(); deliverDr["出貨單號"] = dmTable.Rows[i]["deliver_id"].ToString(); if (Convert.ToInt32(dmTable.Rows[i]["order_date_pay"]) == 0) { deliverDr["付款完成時間"] = ""; } else { deliverDr["付款完成時間"] = CommonFunction.GetNetTime(Convert.ToInt32(dmTable.Rows[i]["order_date_pay"])).ToString("yyyy-MM-dd HH:mm:ss"); } deliverDr["供應商編號"] = dmTable.Rows[i]["vendor_id"].ToString(); deliverDr["供應商郵箱"] = dmTable.Rows[i]["vendor_email"].ToString(); deliverDr["供應商名稱"] = dmTable.Rows[i]["vendor_name_full"].ToString(); if (Convert.ToDateTime(dmTable.Rows[i]["expect_arrive_date_dm"]).ToString("yyyy-MM-dd") == "0001-01-01") { deliverDr["期望到貨日"] = ""; } else { deliverDr["期望到貨日"] = Convert.ToDateTime(dmTable.Rows[i]["expect_arrive_date_dm"]).ToString("yyyy-MM-dd"); } //期望到貨時段 StringBuilder expectArrivePeriodSb = new StringBuilder(); if (dmTable.Rows[i]["expect_arrive_period_dm"].ToString() == "1") { expectArrivePeriodSb.Append("12:00以前"); } if (dmTable.Rows[i]["expect_arrive_period_dm"].ToString() == "2") { expectArrivePeriodSb.Append("12:00-17:00"); } if (dmTable.Rows[i]["expect_arrive_period_dm"].ToString() == "3") { expectArrivePeriodSb.Append("17:00-20:00"); } if (dmTable.Rows[i]["expect_arrive_period_dm"].ToString() == "0") { expectArrivePeriodSb.Append("不限制"); } deliverDr["期望到貨時段"] = expectArrivePeriodSb.ToString(); if (Convert.ToInt32(dmTable.Rows[i]["deliver_org_days"]) == 0) { deliverDr["預計到貨日"] = ""; } else { deliverDr["預計到貨日"] = Convert.ToDateTime(CommonFunction.GetNetTime(Convert.ToInt32(dmTable.Rows[i]["deliver_org_days"]))).ToString("yyyy-MM-dd"); } deliverDr["備註"] = dmTable.Rows[i]["dcl_note"].ToString(); deliverDt.Rows.Add(deliverDr); #endregion } #region MyRegion for (int i = 0; i < dclTable.Rows.Count; i++) { dr = _dt.NewRow(); StringBuilder sb = new StringBuilder(); dr["訂單編號"] = dclTable.Rows[i]["order_id"].ToString(); dr["出貨單號"] = dclTable.Rows[i]["deliver_id"].ToString(); dr["供應商名稱"] = dclTable.Rows[i]["vendor_name_full"].ToString(); if (dclTable.Rows[i]["type"].ToString() == "1") { dr["出貨方式"] = "統倉出貨"; } else if (dclTable.Rows[i]["type"].ToString() == "2") { dr["出貨方式"] = "供應商自行出貨"; } else //if (dclTable.Rows[i]["type"].ToString() == "101") { dr["出貨方式"] = "其他"; } if (dclTable.Rows[i]["dcl_create_type"].ToString() == "1") { dr["異動人"] = dclTable.Rows[i]["dcl_create_username"].ToString(); dr["異動類型"] = "前台"; } else if (dclTable.Rows[i]["dcl_create_type"].ToString() == "2") { dr["異動人"] = dclTable.Rows[i]["dcl_create_musername"].ToString(); dr["異動類型"] = "後台"; } dr["異動時間"] = Convert.ToDateTime(dclTable.Rows[i]["dcl_create_datetime"]).ToString("yyyy-MM-dd HH:mm:ss"); #region 獲取該出貨單的上一個小時之前的期望到貨日 ////aclQuery.time_start = dcl_create_datetime_start.AddHours(-1); //aclQuery.time_end = dcl_create_datetime_end.AddHours(-1); //aclQuery.deliver_id = Convert.ToInt32(dclTable.Rows[i]["deliver_id"]); //System.Data.DataTable Table = _IDeliverChangeLogDao.GetExpectArriveDateByCreatetime(aclQuery); //if (Table.Rows.Count > 0) //{ // if (Convert.ToDateTime(Table.Rows[0]["expect_arrive_date"]).ToString("yyyy-MM-dd") == "0001-01-01") // { // dr["原期望到貨日"] = ""; // } // else // { // dr["原期望到貨日"] = Convert.ToDateTime(Table.Rows[0]["expect_arrive_date"]).ToString("yyyy-MM-dd"); // } //} //else //{ // dr["原期望到貨日"] = ""; //} #endregion if (Convert.ToDateTime(dclTable.Rows[i]["expect_arrive_date_dcl"]).ToString("yyyy-MM-dd") == "0001-01-01") { dr["期望到貨日"] = ""; } else { dr["期望到貨日"] = Convert.ToDateTime(dclTable.Rows[i]["expect_arrive_date_dcl"]).ToString("yyyy-MM-dd"); } if (dclTable.Rows[i]["expect_arrive_period_dcl"].ToString() == "1") { sb.Append("12:00以前"); } if (dclTable.Rows[i]["expect_arrive_period_dcl"].ToString() == "2") { sb.Append("12:00-17:00"); } if (dclTable.Rows[i]["expect_arrive_period_dcl"].ToString() == "3") { sb.Append("17:00-20:00"); } if (dclTable.Rows[i]["expect_arrive_period_dcl"].ToString() == "0") { sb.Append("不限制"); } dr["期望到貨時段"] = sb.ToString(); dr["備註"] = dclTable.Rows[i]["dcl_note"].ToString(); dr["來源IP"] = dclTable.Rows[i]["dcl_ipfrom"].ToString(); TimeSpan ti = aclQuery.time_end-Convert.ToDateTime(dclTable.Rows[i]["dcl_create_datetime"]); dr["異動時段"] = hourNum + "小時以外"; dr["時間"] = "0"; if (ti.TotalHours < int.Parse(hourNum)) { dr["異動時段"] = Convert.ToInt32(ti.TotalHours) + "小時"; dr["時間"] = "1"; } _dt.Rows.Add(dr); sb.Clear(); } #endregion #endregion #region 出貨方式為“供應商自行出貨”的出貨單整理后,發郵件給對應的供應商 Dictionary<string, string> vendorDictionary = new Dictionary<string, string>(); for (int i = 0; i < deliverDt.Rows.Count; i++) { if (!vendorDictionary.ContainsKey(deliverDt.Rows[i]["出貨單號"].ToString())) { vendorDictionary.Add(deliverDt.Rows[i]["出貨單號"].ToString(), deliverDt.Rows[i]["供應商編號"].ToString()); } } List<string> SendEmailVendorIdList = new List<string>(); foreach (KeyValuePair<string, string> kvp in vendorDictionary) { DataTable deliverDt_1 = deliverDt.Clone(); string MailToAddress_1 = string.Empty; string vendor_name_full = string.Empty; if (!SendEmailVendorIdList.Contains(kvp.Value)) { for (int i = 0; i < deliverDt.Rows.Count; i++) { DataRow deliverDr_1 = deliverDt_1.NewRow(); if (kvp.Value == deliverDt.Rows[i]["供應商編號"].ToString()) { MailToAddress_1 = deliverDt.Rows[i]["供應商郵箱"].ToString(); vendor_name_full = deliverDt.Rows[i]["供應商名稱"].ToString(); deliverDr_1["訂單編號"] = deliverDt.Rows[i]["訂單編號"].ToString(); deliverDr_1["出貨單號"] = deliverDt.Rows[i]["出貨單號"].ToString(); deliverDr_1["付款完成時間"] = deliverDt.Rows[i]["付款完成時間"].ToString(); //deliverDr_1["供應商編號"] = deliverDt.Rows[i]["供應商編號"].ToString(); //deliverDr_1["供應商郵箱"] = deliverDt.Rows[i]["供應商郵箱"].ToString(); //deliverDr_1["供應商名稱"] = deliverDt.Rows[i]["供應商名稱"].ToString(); deliverDr_1["期望到貨日"] = deliverDt.Rows[i]["期望到貨日"].ToString(); deliverDr_1["期望到貨時段"] = deliverDt.Rows[i]["期望到貨時段"].ToString(); deliverDr_1["預計到貨日"] = deliverDt.Rows[i]["預計到貨日"].ToString(); deliverDr_1["備註"] = deliverDt.Rows[i]["備註"].ToString(); deliverDt_1.Rows.Add(deliverDr_1); } } SendEmailVendorIdList.Add(kvp.Value); BLL.gigade.Common.MailModel mailModel_1 = new Common.MailModel(); mailModel_1.MysqlConnectionString = mySqlConnectionString; mailModel_1.MailFromAddress = mailModel.MailFromAddress; mailModel_1.MailHost = mailModel.MailHost; mailModel_1.MailPort = mailModel.MailPort; mailModel_1.MailFromUser = mailModel.MailFromUser; mailModel_1.MailFormPwd = mailModel.MailFormPwd; //string MailBody_1 = "<br/><font size=\"4\">" + "<font color=\"#00BB00\" >" + vendor_name_full + "</font>" + " 您好,在前 " + "<font color=\"#FF0000\" >" + Convert.ToDouble(hourNum) // + "</font>" + " 個小時之內,貴公司自行出貨的商品出貨單期望到貨日調整記錄如下:</font><br/><p/>" + GetHtmlByDataTable(deliverDt_1); deliverDt_1.Columns.Remove("供應商編號"); deliverDt_1.Columns.Remove("供應商郵箱"); deliverDt_1.Columns.Remove("供應商名稱"); string MailBody_1 = "<p>吉甲地市集【期望到貨日改變】通知信</p><p><font color=\"#00BB00\" >" + vendor_name_full + "</font> 您好:</p>" + "<p>以下訂單已改變出貨單期望到貨日,訂單資訊如下。</p>" + //"<p>============================================================</p>"+ GetHtmlByDataTable(deliverDt_1) + //"<p>============================================================</p>"+ "<p>訂單的相關資訊,請至<a href='http://vendor.gigade100.com' style='color:#3399ff;text-decoration: none;'>【後台管理】</a>中查詢。</p>"+ "<p>※本信由系統寄出,請勿直接回覆!</p>"+ "有任何問題與建議,歡迎聯絡我們<a href='http://www.gigade100.com/contact_service.php' target='_blank'> <img src='http://www.gigade100.com/images/send_mail.jpg'></a>" + "<p>吉甲地市集<a href='http://www.gigade100.com/'>http://www.gigade100.com/</a></p>"; string MailTitle_1 = MailTitle; //MailToAddress_1 = "*****@*****.**"; BLL.gigade.Common.MailHelper mailHelper = new MailHelper(mailModel_1); //public Boolean SendMailAction(string MailToAddress, string MailTitle, string MailBody) try { mailHelper.SendMailAction(MailToAddress_1, MailTitle_1, MailBody_1 + " ");//給單個供應商發送郵件 } catch (Exception) { continue; } } } #endregion } #endregion if (_dt.Rows.Count == 0) { //MailBody = "<br/><p><font size=\"4\"> 出貨單期望日在前 <font color=\"#FF0000\" >" + Convert.ToDouble(hourNum) + "</font> 個小時之內沒有調整記錄!</font><p/>"; } else { if (isSendMailToGroup.Trim() == "true") { MailBody = "<br/><font size=\"4\">出貨單期望到貨日在前 " + "<font color=\"#FF0000\" >" + Convert.ToDouble(hourNum) + "</font>" + " 個小時之內的調整記錄如下:</font><br/><p/>" + GetHtmlByDataTable(_dt, "時間","0"); BLL.gigade.Common.MailHelper mail = new Common.MailHelper(mailModel); mail.SendToGroup(GroupCode, MailTitle, MailBody + " ", false, true); } } return true; } catch (Exception ex) { throw new Exception("DeliverChangeLogMgr-->Start-->" + ex.Message, ex); } }