Browse Source

图表模块

Linsk 3 months ago
parent
commit
5059fb9063
1 changed files with 103 additions and 1 deletions
  1. 103 1
      Scada/Page/PageChartManage.cs

+ 103 - 1
Scada/Page/PageChartManage.cs

@@ -7,6 +7,9 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
+using BLL.Dto.DataDto;
+using BLL.Manager;
+using Helper;
 using HZY.Framework.DependencyInjection;
 using Sunny.UI;
 
@@ -14,14 +17,113 @@ namespace Scada.Page
 {
     public partial class PageChartManage : UIPage, ISingletonSelfDependency
     {
-        public PageChartManage()
+        private readonly DataManager _dataManager;
+        public PageChartManage(DataManager dataManager)
         {
             InitializeComponent();
+            this._dataManager = dataManager;
+            this.dtp_Start.Value = DateTime.Now.AddDays(-1);
+            this.dtp_End.Value = DateTime.Now;
+
+            UILineOption uILineOption = new UILineOption
+            {
+                ToolTip = { Visible = true },
+                Title = new UITitle { Text = "" },
+                Legend = new UILegend
+                {
+                    Orient = UIOrient.Horizontal,
+                    Top = UITopAlignment.Top,
+                    Left = UILeftAlignment.Left,
+                },
+                XAxisType = UIAxisType.DateTime,
+                XAxis = { Name = "日期", AxisLabel = { DateTimeFormat = "HH:mm:ss" } },
+                YAxis = { Name = "数值", AxisLabel = { DecimalPlaces = 1 } }
+            };
+
+            string[] legendData = {
+    "脱脂喷淋泵压力值",
+    "脱脂pH值",
+    "粗洗喷淋泵压力值",
+    "陶化喷淋泵压力值",
+    "精洗喷淋泵压力值",
+    "水分炉测量温度",
+    "固化炉测量温度"
+};
+
+            foreach (var data in legendData)
+            {
+                uILineOption.Legend.AddData(data);
+                AddSeries(uILineOption, data);
+            }
+
+            lc_Chart.SetOption(uILineOption);
+        }
+
+        private void AddSeries(UILineOption uILineOption, string data)
+        {
+            var series = uILineOption.AddSeries(new UILineSeries(data));
+            series.Symbol = UILinePointSymbol.Circle;
+            series.SymbolSize = 4;
+            series.SymbolLineWidth = 2;
+            //series.YAxisDecimalPlaces = 1;
+            series.Smooth = true;
         }
 
         private void PageChartManage_Load(object sender, EventArgs e)
         {
 
         }
+
+        private async void btn_QueryData_Click(object sender, EventArgs e)
+        {
+            
+            var t1 = this.dtp_Start.Value;
+            var t2 = this.dtp_End.Value;
+
+            if (t1 >= t2)
+            {
+                UIMessageBox.ShowError("开始时间不能大于或等于结束时间");
+                return;
+            }
+
+            QueryDataDto queryDataDto = new QueryDataDto
+            {
+                StartTime = t1,
+                EndTime = t2
+            };
+            ClearChartData(lc_Chart.Option);
+            var res = await _dataManager.GetDataListByTimeAsync(queryDataDto);
+            if(res.Result == SystemEnums.Result.Success)
+            {
+                for(int i = 0;i < res.Data.Count; i++)
+                {
+                    if(i>30)
+                    {
+                        break;
+                    }
+                    var dt = res.Data[i].InsertTime;
+                    var dataRes = res.Data[i];
+
+                    lc_Chart.Option.AddData("脱脂喷淋泵压力值", dt, double.Parse(dataRes.脱脂喷淋泵压力值));
+                    lc_Chart.Option.AddData("脱脂PH值", dt, double.Parse(dataRes.脱脂PH值));
+                    lc_Chart.Option.AddData("粗洗喷淋泵压力值", dt, double.Parse(dataRes.粗洗喷淋泵压力值));
+                    lc_Chart.Option.AddData("陶化喷淋泵压力值", dt, double.Parse(dataRes.陶化喷淋泵压力值));
+                    lc_Chart.Option.AddData("精洗喷淋泵压力值", dt, double.Parse(dataRes.精洗喷淋泵压力值));
+                    lc_Chart.Option.AddData("水分炉测量温度", dt, double.Parse(dataRes.水分炉测量温度));
+                    lc_Chart.Option.AddData("固化炉测量温度", dt, double.Parse(dataRes.固化炉测量温度));
+                }
+            }
+            lc_Chart.Refresh();
+        }
+
+        private void ClearChartData(UILineOption option)
+        {
+            // 清空所有系列的数据点
+            //foreach (var series in option.Series)
+            //{
+            //    var UILineSeries = series.Value;
+                
+            //}
+        }
     }
 }