ningshuxia
2022-08-12 41a59b8098446c595ce42d78a279123a4bfa6795
Service/IStation.Service4Run/monitor_record/real/MonitorRealRecord.cs
@@ -322,6 +322,34 @@
        }
        /// <summary>
        /// 通过 SignalID 获取时间区间内的数据
        /// </summary>
        public List<Model.MonitorRealRecord> GetBySignalIDOfTimeRange(long CorpID, long MonitorPointID, long SignalID, DateTime StartTime, DateTime EndTime)
        {
            if (StartTime > EndTime)
                return default;
            var dal = new DAL.MonitorRealRecord();
            var entityList = dal.GetBySignalIDOfTimeRange(CorpID, MonitorPointID, SignalID, StartTime, EndTime);
            var modelList= Entity2Models(entityList);
            return modelList;
        }
        /// <summary>
        /// 通过 SignalID 获取时间区间内的固定数量的数据
        /// </summary>
        public List<Model.MonitorRealRecord> GetFixedBySignalIDOfTimeRange(long CorpID, long MonitorPointID, long SignalID, int Fixed, DateTime StartTime, DateTime EndTime)
        {
            if (StartTime > EndTime)
                return default;
            var dal = new DAL.MonitorRealRecord();
            var entityList = dal.GetFixedBySignalIDOfTimeRange(CorpID, MonitorPointID, SignalID, Fixed, StartTime, EndTime);
            var modelList=Entity2Models(entityList);
            return modelList;
        }
        /// <summary>
        /// 通过 SignalID 获取时间区间内的内容数据
        /// </summary>
        public List<Model.MonitorRealRecordContent> GetContentBySignalIDOfTimeRange(long CorpID, long MonitorPointID, long SignalID, DateTime StartTime, DateTime EndTime)
@@ -498,6 +526,62 @@
            return bol;
        }
        /// <summary>
        /// 重录一条
        /// </summary>
        public bool InsertAgain(Model.MonitorRealRecordPure model)
        {
            if (model == null)
                return false;
            var dal = new DAL.MonitorRealRecord();
            var result= dal.DeleteBySignalIDOfDataTime(model.CorpID,model.MonitorPointID,model.SignalID,model.DataTime);
            if (!result)
            {
                LogHelper.Info($"重录一条监测实时记录中,CorpID:{model.CorpID},MonitorPointID:{model.MonitorPointID},SignalID:{model.SignalID},DataTime:{model.DataTime:yyyy-MM-dd HH:mm:ss},未检索到已存在记录!");
            }
            var queueHelper = new RabbitMqQueueHelper();
            var bol = queueHelper.Push(ConfigHelper.StoreQueueName, new Model.MonitorStoreCorpRecord()
            {
                CorpID = model.CorpID,
                Records = new List<Model.MonitorStoreRecord>() { Pure2Store(model) }
            }); ;
            return bol;
        }
        /// <summary>
        /// 重录多条
        /// </summary>
        public bool InsertsAgain(List<Model.MonitorRealRecordPure> list)
        {
            if (list == null || list.Count < 1)
                return false;
            var corpIds = list.Select(x => x.CorpID).Distinct().ToList();
            if (corpIds.Count > 1)
            {
                return default;
            }
            var groupList = list.GroupBy(x => new { x.CorpID, x.MonitorPointID, x.SignalID }).ToList();
            var dal = new DAL.MonitorRealRecord();
            foreach (var group in groupList)
            {
                var startTime = group.Min(x=>x.DataTime);
                var endTime = group.Max(x=>x.DataTime);
                var result = dal.DeleteBySignalIDOfTimeRange(group.Key.CorpID, group.Key.MonitorPointID, group.Key.SignalID, startTime, endTime);
                if (!result)
                {
                    LogHelper.Info($"重录多条监测实时记录中,CorpID:{group.Key.CorpID},MonitorPointID:{group.Key.MonitorPointID},SignalID:{group.Key.SignalID},StartTime:{startTime:yyyy-MM-dd HH:mm:ss},EndTime:{endTime:yyyy-MM-dd HH:mm:ss},未检索到已存在记录!");
                }
            }
            var queueHelper = new RabbitMqQueueHelper();
            var bol = queueHelper.Push(ConfigHelper.StoreQueueName, new Model.MonitorStoreCorpRecord()
            {
                CorpID = corpIds[0],
                Records = Pure2Stores(list)
            });
            return bol;
        }
        #endregion
        #region Update