tangxu
2024-07-24 5cb7e73f506b2dbf48837a49786df1d6ccbb6e81
Merge branch 'master' of http://47.103.154.90:83/r/IStation/shys/ChEqCalc.V1.3
已修改1个文件
396 ■■■■ 文件已修改
WebApi/众毅调度/ZyConnectHelper.cs 396 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebApi/ÖÚÒãµ÷¶È/ZyConnectHelper.cs
@@ -340,40 +340,36 @@
                      return totalWaterSupply;*/
        }
   /*     /// <summary>
        /// åˆ¤æ–­ä¾›æ°´æ€»é‡æ˜¯å¦æœ‰è¯¯
        /// </summary>
        /// <param name="startTime">开始时间</param>
        /// <param name="endTime">结束时间</param>
        /// <param name="resolution">时间步长,默认300秒</param>
        /// <returns></returns>
        public static async Task<string> GetPumpOutWaterIsTrue(DateTime startTime,int sort, string resolution = "300s")
        {
            var tagDict = new Dictionary<string, string>
            {
                  { "一输1", "嘉定数据.1线表头累计" },
                  { "一输2", "嘉定数据.2线表头累计" },
                  { "一输3", "嘉定数据.3线表头累计" },
                  { "二输1", "长江管网图.2400总管.累计流量" },
                  { "二输2", "长江管网图.2600总管.累计流量" },
            };
            string joinedValues = string.Join(",", tagDict.Values);
            switch (sort)
            {
                case 1:
                    var result = HttpClientHelper.Get<List<DataPoint>>(ZyApiUrl, startTime.ToString("yyyy-MM-dd"), startTime.AddDays(1).ToString("yyyy-MM-dd"), "first", resolution, joinedValues);
                    var realScadaDataList = GetScadaData(result);
                    foreach (var item in realScadaDataList)
                    {
                    }
                    break;
            }
              return realScadaDataList;
         }*/
        /*     /// <summary>
             /// åˆ¤æ–­ä¾›æ°´æ€»é‡æ˜¯å¦æœ‰è¯¯
             /// </summary>
             /// <param name="startTime">开始时间</param>
             /// <param name="endTime">结束时间</param>
             /// <param name="resolution">时间步长,默认300秒</param>
             /// <returns></returns>
             public static async Task<string> GetPumpOutWaterIsTrue(DateTime startTime,int sort, string resolution = "300s")
             {
                 var tagDict = new Dictionary<string, string>
                 {
                       { "一输1", "嘉定数据.1线表头累计" },
                       { "一输2", "嘉定数据.2线表头累计" },
                       { "一输3", "嘉定数据.3线表头累计" },
                       { "二输1", "长江管网图.2400总管.累计流量" },
                       { "二输2", "长江管网图.2600总管.累计流量" },
                 };
                 string joinedValues = string.Join(",", tagDict.Values);
                 switch (sort)
                 {
                     case 1:
                         var data = HttpClientHelper.Get<List<DataPoint>>(ZyApiUrl, startTime.ToString("yyyy-MM-dd"), startTime.AddDays(1).ToString("yyyy-MM-dd"), "first", resolution, joinedValues);
                         var realScadaDataList = GetScadaData(data);
                         foreach (var item in realScadaDataList)
                         {
                         }
                         break;
                 }
                   return realScadaDataList;
              }*/
        /// <summary>
        /// èŽ·å–é™ˆè¡Œæ°´åº“ å®žæ—¶æ°´ä½
@@ -383,33 +379,23 @@
        {
            if (isDebug)
                return 6.1;//debug
            double err = -1;
            string tag_water_level = "10001";
            string url = $"{ZyApiUrl}dataController/getCurrentJsonDataOfRedis/义维模型";
            var result = HttpClientHelper.Get(url);
            // LogHelper.Info(result)
            if (result != null)
            var data = HttpClientHelper.Get(url);
            if (data == null)
                return err;
            if (!data.ContainsKey(tag_water_level))
                return err;
            var scada = data[tag_water_level];
            if (!scada.ContainsKey("vals"))
                return err;
            var vals = scada["vals"];
            if (double.TryParse(vals, out double value))
            {
                foreach (var item in result)
                {
                    try
                    {
                        if (item.Key == "10001")
                        {
                            foreach (var valuedata in item.Value)
                            {
                                if (valuedata.Key == "vals")
                                {
                                    return Convert.ToDouble(valuedata.Value);
                                }
                            }
                        }
                    }
                    catch
                    {
                        return -1;
                    }
                }
                return value;
            }
            return -1;
            return err;
        }
        /// <summary>
@@ -558,162 +544,162 @@
        /// èŽ·å–å®žæ—¶æ•°æ®å­—å…¸
        /// </summary>
        /// <returns></returns>
     /*   public static async Task<List<ZyModel.RealScadaRecord>> GetRealScadaResultAsync(List<string> tags, object input)
        {
            if (tags == null || !tags.Any())
                return default;
            if (input == null)
                return default;
            var ws = new ClientWebSocket();
            await ws.ConnectAsync(new Uri(_url_root), CancellationToken.None);
            if (ws.State != WebSocketState.Open)
            {
                return default;
            }
        /*   public static async Task<List<ZyModel.RealScadaRecord>> GetRealScadaResultAsync(List<string> tags, object input)
           {
               if (tags == null || !tags.Any())
                   return default;
               if (input == null)
                   return default;
               var ws = new ClientWebSocket();
               await ws.ConnectAsync(new Uri(_url_root), CancellationToken.None);
               if (ws.State != WebSocketState.Open)
               {
                   return default;
               }
            var realScadaRecordList = new List<ZyModel.RealScadaRecord>();
            var inputJson = JsonHelper.Object2Json(input);
            var inputBytes = Encoding.UTF8.GetBytes(inputJson);
            await ws.SendAsync(new ArraySegment<byte>(inputBytes), WebSocketMessageType.Text, true, CancellationToken.None);
            try
            {
                List<byte> outputBytes = new List<byte>();//全部消息容器
                var buffer = new byte[1024 * 4];//缓冲区
                var result = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); //监听Socket信息
                while (!result.CloseStatus.HasValue)  //是否关闭
                {
                    if (result.MessageType == WebSocketMessageType.Text)//文本消息
                    {
                        outputBytes.AddRange(buffer.Take(result.Count));
                        if (result.EndOfMessage)//消息是否已接收完全
                        {
                            //发送过来的消息
                            string outputJson = Encoding.UTF8.GetString(outputBytes.ToArray(), 0, outputBytes.Count);
                            var scadaDict = JsonHelper.Json2Object<Dictionary<string, KeyValue>>(outputJson);
                            if (scadaDict != null && scadaDict.Any())
                            {
                                foreach (var dict in scadaDict)
                                {
                                    var tag = dict.Value.keys.Trim();
                                    if (tags.Contains(tag))
                                    {
                                        var data = new ZyModel.RealScadaRecord();
                                        data.TagName = tag;
               var realScadaRecordList = new List<ZyModel.RealScadaRecord>();
               var inputJson = JsonHelper.Object2Json(input);
               var inputBytes = Encoding.UTF8.GetBytes(inputJson);
               await ws.SendAsync(new ArraySegment<byte>(inputBytes), WebSocketMessageType.Text, true, CancellationToken.None);
               try
               {
                   List<byte> outputBytes = new List<byte>();//全部消息容器
                   var buffer = new byte[1024 * 4];//缓冲区
                   var data = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); //监听Socket信息
                   while (!data.CloseStatus.HasValue)  //是否关闭
                   {
                       if (data.MessageType == WebSocketMessageType.Text)//文本消息
                       {
                           outputBytes.AddRange(buffer.Take(data.Count));
                           if (data.EndOfMessage)//消息是否已接收完全
                           {
                               //发送过来的消息
                               string outputJson = Encoding.UTF8.GetString(outputBytes.ToArray(), 0, outputBytes.Count);
                               var scadaDict = JsonHelper.Json2Object<Dictionary<string, KeyValue>>(outputJson);
                               if (scadaDict != null && scadaDict.Any())
                               {
                                   foreach (var dict in scadaDict)
                                   {
                                       var tag = dict.Value.keys.Trim();
                                       if (tags.Contains(tag))
                                       {
                                           var data = new ZyModel.RealScadaRecord();
                                           data.TagName = tag;
                                        if (double.TryParse(dict.Value.vals, out double value))
                                            data.Value = value;
                                        realScadaRecordList.Add(data);
                                    }
                                }
                            }
                            break;
                        }
                    }
                    result = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);//继续监听Socket信息
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                try
                {
                    //关闭WebSocket
                    await ws.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "AcknowledgeCloseframe", CancellationToken.None);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                ws.Abort();
                ws.Dispose();
            }
                                           if (double.TryParse(dict.Value.vals, out double value))
                                               data.Value = value;
                                           realScadaRecordList.Add(data);
                                       }
                                   }
                               }
                               break;
                           }
                       }
                       data = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);//继续监听Socket信息
                   }
               }
               catch (Exception ex)
               {
                   throw ex;
               }
               finally
               {
                   try
                   {
                       //关闭WebSocket
                       await ws.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "AcknowledgeCloseframe", CancellationToken.None);
                   }
                   catch (Exception ex)
                   {
                       throw ex;
                   }
                   ws.Abort();
                   ws.Dispose();
               }
            return realScadaRecordList;
        }*/
               return realScadaRecordList;
           }*/
        /// <summary>
        /// èŽ·å–å®žæ—¶æ•°æ®å­—å…¸
        /// </summary>
        /// <returns></returns>
     /*   public static async Task<List<ZyModel.RealScadaData>> GetRealScadaResult(ScadaDispatchInput input)
        {
            if (input == null)
                return default;
            var ws = new ClientWebSocket();
            await ws.ConnectAsync(new Uri(_url_root), CancellationToken.None);
            if (ws.State != WebSocketState.Open)
            {
                return default;
            }
            var realScadaDataList = new List<ZyModel.RealScadaData>();
            var inputJson = JsonHelper.Object2Json(input);
            var inputBytes = Encoding.UTF8.GetBytes(inputJson);
            await ws.SendAsync(new ArraySegment<byte>(inputBytes), WebSocketMessageType.Text, true, CancellationToken.None);
            try
            {
                List<byte> outputBytes = new List<byte>();//全部消息容器
                var buffer = new byte[1024 * 4];//缓冲区
                var result = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); //监听Socket信息
                while (!result.CloseStatus.HasValue)  //是否关闭
                {
                    if (result.MessageType == WebSocketMessageType.Text)//文本消息
                    {
                        outputBytes.AddRange(buffer.Take(result.Count));
                        if (result.EndOfMessage)//消息是否已接收完全
                        {
                            //发送过来的消息
                            string outputJson = Encoding.UTF8.GetString(outputBytes.ToArray(), 0, outputBytes.Count);
                            var scadaDict = JsonHelper.Json2Object<Dictionary<string, Dictionary<DateTime, string>>>(outputJson);
                            if (scadaDict != null && scadaDict.Any())
                            {
                                foreach (var dict in scadaDict)
                                {
                                    var data = new ZyModel.RealScadaData();
                                    data.TagName = dict.Key;
                                    data.MonitorRecords = new List<IStation.ZyModel.MonitorRecord>();
                                    foreach (var item in dict.Value)
                                    {
                                        var record = new IStation.ZyModel.MonitorRecord();
                                        record.Time = item.Key;
                                        if (double.TryParse(item.Value, out double value))
                                        {
                                            record.Value = value;
                                        }
                                        data.MonitorRecords.Add(record);
                                    }
                                    realScadaDataList.Add(data);
                                }
                            }
                            break;
                        }
                    }
                    result = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);//继续监听Socket信息
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                try
                {
                    //关闭WebSocket
                    await ws.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "AcknowledgeCloseframe", CancellationToken.None);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                ws.Abort();
                ws.Dispose();
            }
        /*   public static async Task<List<ZyModel.RealScadaData>> GetRealScadaResult(ScadaDispatchInput input)
           {
               if (input == null)
                   return default;
               var ws = new ClientWebSocket();
               await ws.ConnectAsync(new Uri(_url_root), CancellationToken.None);
               if (ws.State != WebSocketState.Open)
               {
                   return default;
               }
               var realScadaDataList = new List<ZyModel.RealScadaData>();
               var inputJson = JsonHelper.Object2Json(input);
               var inputBytes = Encoding.UTF8.GetBytes(inputJson);
               await ws.SendAsync(new ArraySegment<byte>(inputBytes), WebSocketMessageType.Text, true, CancellationToken.None);
               try
               {
                   List<byte> outputBytes = new List<byte>();//全部消息容器
                   var buffer = new byte[1024 * 4];//缓冲区
                   var data = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); //监听Socket信息
                   while (!data.CloseStatus.HasValue)  //是否关闭
                   {
                       if (data.MessageType == WebSocketMessageType.Text)//文本消息
                       {
                           outputBytes.AddRange(buffer.Take(data.Count));
                           if (data.EndOfMessage)//消息是否已接收完全
                           {
                               //发送过来的消息
                               string outputJson = Encoding.UTF8.GetString(outputBytes.ToArray(), 0, outputBytes.Count);
                               var scadaDict = JsonHelper.Json2Object<Dictionary<string, Dictionary<DateTime, string>>>(outputJson);
                               if (scadaDict != null && scadaDict.Any())
                               {
                                   foreach (var dict in scadaDict)
                                   {
                                       var data = new ZyModel.RealScadaData();
                                       data.TagName = dict.Key;
                                       data.MonitorRecords = new List<IStation.ZyModel.MonitorRecord>();
                                       foreach (var item in dict.Value)
                                       {
                                           var record = new IStation.ZyModel.MonitorRecord();
                                           record.Time = item.Key;
                                           if (double.TryParse(item.Value, out double value))
                                           {
                                               record.Value = value;
                                           }
                                           data.MonitorRecords.Add(record);
                                       }
                                       realScadaDataList.Add(data);
                                   }
                               }
                               break;
                           }
                       }
                       data = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);//继续监听Socket信息
                   }
               }
               catch (Exception ex)
               {
                   throw ex;
               }
               finally
               {
                   try
                   {
                       //关闭WebSocket
                       await ws.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "AcknowledgeCloseframe", CancellationToken.None);
                   }
                   catch (Exception ex)
                   {
                       throw ex;
                   }
                   ws.Abort();
                   ws.Dispose();
               }
            return realScadaDataList;
        }*/
               return realScadaDataList;
           }*/
        /// <summary>
        /// bak