Beispiel #1
0
        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;
        }
Beispiel #2
0
 /// <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);
     }
 }
Beispiel #3
0
 /// <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));
     }
 }
Beispiel #4
0
 /// <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); }
     }
 }
Beispiel #5
0
        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}'"));
            }
        }
Beispiel #6
0
 /// <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); }
     }
 }
Beispiel #7
0
        /// <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}!!!!!!");
                }
            }
        }