/// <summary> /// 测试 /// </summary> public void Test() { AkThresholdModel model = new AkThresholdModel() { DataDate = "20180311", CreateTime = "2018-03-12 15:03:04 111", UpdateTime = "2018-03-12 15:03:04 111", ThresholdValue = 10, PeriodNum = 14, PeriodStartDate = "20180226", PeriodEndDate = "20180311" }; //AkThreshold akThreshold = new AkThreshold(); //var ak1 = AkThreshold.GetThreshold(); //var ak2 = AkThreshold.Save(model); AkRemindModel model1 = new AkRemindModel() { Tasktime = "2018-03-12 15:03:04 111", PeriodNum = 14, IsRemind = 1, HasRemind = -1 }; AkRemind akRemind = new AkRemind(); //var akRemind1 = akRemind.Insert(model1); //var akRemind2 = akRemind.ResetHasRemind(true, 1); }
/// <summary> /// 新增分线提醒记录 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool Save(AkRemindModel model) { object[] param = new object[] { this.tableName, model.Tasktime, model.IsRemind, model.HasRemind, model.PeriodNum }; string sql = string.Format("insert into {0}(Tasktime,IsRemind,HasRemind,PeriodNum) " + @"VALUES('{1}',{2},{3},{4})", param); return(SqlServerHelper.Instance.ExecuteNonQuery(AkConfig.ConnCFCInStoreDB, sql) > 0 ? true : false); }
/// <summary> /// 获取最大id /// </summary> /// <returns></returns> public AkRemindModel GetNewData() { AkRemindModel mode = null; string sql = string.Format("select top (1) Id,IsRemind from {0} order by id desc", this.tableName); DataTable dt = SqlServerHelper.Instance.GetDataTable(AkConfig.ConnCFCInStoreDB, sql); if (dt != null && dt.Rows.Count > 0) { DataRow dr = dt.Rows[0]; mode = new AkRemindModel(); mode.Id = dr.Field <int>("Id"); mode.IsRemind = dr.Field <int>("IsRemind"); } return(mode); }
/// <summary> /// 回写:是否已分线 /// 1.如果上一条记录已提醒分线,则进行回写(0 已分线,1 未分线) /// 如果上一条未提醒分线,则不会写 /// 2.回写:已提醒分线 /// 1).如果本次提醒分线,则回写 为:1(未分线) /// 2).如果本次未提醒分线,但是并未开两条线,则回写 为:1(未分线) /// 3).其它情况:则回写为:0(已分线) /// </summary> /// <param name="isRemind"></param> /// <param name="lineCount"></param> /// <returns></returns> public bool ResetHasRemind(bool isHealth) { //获取最大Id AkRemindModel model = GetNewData(); if (model != null && model.IsRemind == 1) { object[] param = new object[] { this.tableName, isHealth ? 0 : 1, model.Id }; string sql = string.Format("Update {0} set " + "HasRemind = {1} " + "where Id = {2} ", param); return(SqlServerHelper.Instance.ExecuteNonQuery(AkConfig.ConnCFCInStoreDB, sql) > 0 ? true : false); } return(true); }
/// <summary> /// 分线提醒 /// </summary> /// <returns></returns> public bool Remind() { bool remind = false; bool isHealth = false; try { //@1.计算是否提醒分线 remind = CalculateRemind(out isHealth); //@2.回填是否,已分线 AkDaoHelper.Instance_Remind.ResetHasRemind(isHealth); AkThresholdModel thresholdModel = AkDaoHelper.Instance_Threshold.GetNewThreshold(); //@3.新增提醒记录 AkRemindModel model = new AkRemindModel() { Tasktime = DateTime.Now.ToLongTime(), BreakFastValue = thresholdModel.BreakFastValue, LunchValue = thresholdModel.LunchValue, AfternoonTeaValue = thresholdModel.AfternoonTeaValue, SupperValue = thresholdModel.SupperValue, PeriodNum = AkConfig.PeriodNum, IsRemind = remind ? 1 : 0, HasRemind = -1 }; bool success = AkDaoHelper.Instance_Remind.Save(model); } catch (Exception er) { LogHelper.Error(typeof(AkRemind) + ".Remind Exception error=", er.ToString()); } //Random random = new Random(); //int r = random.Next(100); //if (r % 3 == 0) //{ // remind = true; //} //else //{ // remind = false; //} return(remind); }