private void Timer3_Elapsed(object sender, ElapsedEventArgs e) { this.timer3.Enabled = false; WcfClient <IFMSService> ws = new WcfClient <IFMSService>(); //try //{ lock (objLock) { FmsStateResultRecord comm = new FmsStateResultRecord() { PKNO = CBaseData.NewGuid(), ASSET_CODE = "A20002", BEGINT_TIME = DateTime.Now, END_TIME = DateTime.Now, CREATED_BY = CBaseData.LoginName, CREATION_DATE = DateTime.Now, REMARK = "", TAG_SETTING_PKNO = "fe0e40d4bb57424088c1876bba50f229", TAG_VALUE = (new Random()).Next(200).ToString(), TAG_VALUE_NAME = "测试", }; ws.UseService(s => s.AddFmsStateResultRecord(comm)); } //} //catch (Exception ex) //{ // Console.WriteLine(ex.Message); //} Console.WriteLine($"2Thread Write{iWriteTest2++}"); this.timer3.Enabled = true; }
/// <summary> /// 根据关键字段的值获取记录 /// </summary> /// <param name="Id">关键字段的值</param> /// <returns>符合查询条件的记录</returns> public FmsStateResultRecord GetFmsStateResultRecordById(string Id) { using (IFmsStateResultRecordBLL FmsStateResultRecordBLL = BLLContainer.Resolve <IFmsStateResultRecordBLL>()) { FmsStateResultRecord model = FmsStateResultRecordBLL.GetFirstOrDefault(Id); return(model); } }
/// <summary> /// 修改 /// </summary> /// <param name="mFmsStateResultRecord">模型</param> /// <returns>是否成功</returns> public bool UpdateFmsStateResultRecord(FmsStateResultRecord mFmsStateResultRecord) { if (mFmsStateResultRecord == null) { return(false); } using (IFmsStateResultRecordBLL FmsStateResultRecordBLL = BLLContainer.Resolve <IFmsStateResultRecordBLL>()) { return(FmsStateResultRecordBLL.Update(mFmsStateResultRecord)); } }
/// <summary> /// 按照关键字段删除 /// </summary> /// <param name="Id">关键字段</param> /// <returns>是否成功</returns> public bool DelFmsStateResultRecord(string Id) { using (IFmsStateResultRecordBLL FmsStateResultRecordBLL = BLLContainer.Resolve <IFmsStateResultRecordBLL>()) { try { FmsStateResultRecord item = FmsStateResultRecordBLL.GetFirstOrDefault(Id); return(FmsStateResultRecordBLL.Delete(item)); } catch { return(false); } } }
private void button7_Click(object sender, RoutedEventArgs e) { WcfClient <ISQLService> ws = new WcfClient <ISQLService>(); FmsStateResultRecord record = gridItem2.SelectedItem as FmsStateResultRecord; if (record != null) { ws.UseService( s => s.ExecuteSql( $"UPDATE FMS_STATERESULT_RECORD SET TAG_VALUE = '0' WHERE PKNO = '{record.PKNO}'")); } }
/// <summary> /// 按照关键字段删除 /// </summary> /// <param name="Ids">关键字段数组</param> /// <returns>是否成功</returns> public bool DelFmsStateResultRecords(string[] Ids) { using (IFmsStateResultRecordBLL FmsStateResultRecordBLL = BLLContainer.Resolve <IFmsStateResultRecordBLL>()) { try { List <FmsStateResultRecord> entitys = new List <FmsStateResultRecord>(); foreach (string id in Ids) { FmsStateResultRecord item = FmsStateResultRecordBLL.GetFirstOrDefault(id); entitys.Add(item); } return(FmsStateResultRecordBLL.Delete(entitys)); } catch { return(false); } } }
/// <summary> /// 状态类标签值保存结果 /// </summary> /// <param name="tagSetting"></param> /// <param name="tagValue"></param> private void TagValueResultRecord(FmsAssetTagSetting tagSetting, string tagValue) { const int addMinutes = -10; //分钟 const int spanSaveSec = -5; //每个5秒更新结束时间 lock (lockResultRecord) { try { EventLogger.Log($"======开始写入【{tagSetting.TAG_VALUE_NAME}】Result====="); DateTime dtNow = DateTime.Now; List <FmsStateResultRecord> records = ws.UseService( s => s.GetFmsStateResultRecords( $"ASSET_CODE = '{tagSetting.ASSET_CODE}' AND TAG_SETTING_PKNO = '{tagSetting.PKNO}' " + $"AND END_TIME >= '{dtNow.AddMinutes(addMinutes * 2)}'")) //2倍时间以上时不再继续续写 .OrderByDescending(c => c.END_TIME) .ThenByDescending(c => c.BEGINT_TIME) .ThenByDescending(c => c.CREATION_DATE) .ToList(); FmsStateResultRecord oldRecord = records.FirstOrDefault(); bool bFirstRecord = !ResultRecordFirsts.ContainsKey(tagSetting.PKNO) || ResultRecordFirsts[tagSetting.PKNO]; bool isAddNewResult = (bFirstRecord) || (oldRecord == null) || (oldRecord.TAG_VALUE != tagValue) || (oldRecord.END_TIME <= dtNow.AddMinutes(addMinutes)) || //10分钟之前的数据则重新增加; (oldRecord.END_TIME.Value.Date != dtNow.Date); //跨天数据则新增加 if ((!bFirstRecord) && (oldRecord != null)) //不是第一次运行则修改之前的时间,一个周期更新一次结束时间+++++ { if ((isAddNewResult) || (oldRecord.END_TIME <= dtNow.AddSeconds(spanSaveSec))) //新增记录时,修改原值 { oldRecord.END_TIME = dtNow; //更新状态时间 ws.UseService(s => s.UpdateFmsStateResultRecord(oldRecord)); } } if (isAddNewResult) //新增值 { #region 新增值 FmsStateResultRecord record = new FmsStateResultRecord { PKNO = CBaseData.NewGuid(), ASSET_CODE = tagSetting.ASSET_CODE, TAG_SETTING_PKNO = tagSetting.PKNO, TAG_VALUE_NAME = tagSetting.TAG_VALUE_NAME, TAG_VALUE = tagValue, BEGINT_TIME = dtNow, END_TIME = DateTime.Now, CREATION_DATE = DateTime.Now, CREATED_BY = CBaseData.LoginName, REMARK = "", }; ws.UseService(s => s.AddFmsStateResultRecord(record)); #endregion } if (!ResultRecordFirsts.ContainsKey(tagSetting.PKNO)) { ResultRecordFirsts.Add(tagSetting.PKNO, false); //不是第一次 } else { ResultRecordFirsts[tagSetting.PKNO] = false; } EventLogger.Log($"======完成写入【{tagSetting.TAG_VALUE_NAME}】Result====="); } catch (Exception ex) { EventLogger.Log($"!!!!!!写入【{tagSetting.TAG_VALUE_NAME}】Result失败,原因:{ex.Message}!!!!!!"); } } }