From 41a59b8098446c595ce42d78a279123a4bfa6795 Mon Sep 17 00:00:00 2001
From: ningshuxia <ningshuxia0927@outlook.com>
Date: 星期五, 12 八月 2022 14:38:20 +0800
Subject: [PATCH] 增加 泵曲线映射批量操作接口

---
 Service/IStation.Service4Run/monitor_record/real/MonitorRealRecord.cs |   84 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 84 insertions(+), 0 deletions(-)

diff --git a/Service/IStation.Service4Run/monitor_record/real/MonitorRealRecord.cs b/Service/IStation.Service4Run/monitor_record/real/MonitorRealRecord.cs
index f6ea3b7..c7f6734 100644
--- a/Service/IStation.Service4Run/monitor_record/real/MonitorRealRecord.cs
+++ b/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($"閲嶅綍涓�鏉$洃娴嬪疄鏃惰褰曚腑锛孋orpID:{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

--
Gitblit v1.9.3