zoukankan      html  css  js  c++  java
  • Python 生成周期性波动的数据 可指定数值范围3 预览的html

    前端模板页面

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
    </head>
    <body>
    
    
    
    
    
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@4.8.0/dist/echarts.min.js"></script>
    
    
        <div style="margin-top: 500px;">
            传感器:
            <textarea cols="10" rows="10" id="txt4"><%=sensorNames%></textarea>
            开始时间:
            <input type="text" id="txt1" value="<%=strStart%>" />
            结束时间:
            <input type="text" id="txt2" value="<%=strEnd%>" />
    
            <input type="button" id="btn" value="click" />
        </div>
    
    
        <div id="main" style=" 1200px; height: 600px; margin-bottom: 500px;"></div>
    
    
        <script type="text/javascript">
            var myChart = echarts.init(document.getElementById('main'));
    
            var option = {
                title: {
                    text: '折线图'
                },
                tooltip: {
                    trigger: 'axis',
                    triggerOn: 'click',
                    alwaysShowContent: true
                    //showDelay: 5000
                },
                xAxis: {
                    show: true,
                    type: 'category',
                    boundaryGap: false,
                    data: <%=strX%>
                },
                yAxis: {
                    type: 'value'
                },
                series: <%=strY%>
            };
    
    
            // 使用刚指定的配置项和数据显示图表。
            myChart.setOption(option);
    
    
            document.getElementById('btn').onclick = function () {
                var start = document.getElementById('txt1').value;
                var end = document.getElementById('txt2').value;
                var sensorNames = document.getElementById('txt4').value.replace(/
    /g, ",");
                location.href = '/WebForm1.aspx?start=' + start + '&end=' + end + '&sensorNames=' + sensorNames;
            };
        </script>
    
    
    </body>
    </html>
    
    

    后端页面

    using Newtonsoft.Json;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication1
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            public static string strX = "";
            public static string strY = "";
            public static List<string> list_SensorName = new List<string>();
            public static DateTime start = DateTime.Now;
            public static DateTime end = DateTime.Now;
    
            public static string strStart = "";
            public static string strEnd = "";
            public static string sensorNames = "";
    
    
            protected void Page_Load(object sender, EventArgs e)
            {
                List<string> axis_x = new List<string>();
                List<Sensor_Record> axis_y = new List<Sensor_Record>();
    
    
                //初值
                strStart = "2019-01-01";
                strEnd = "2019-01-09";
                start = DateTime.Parse(strStart);
                end = DateTime.Parse(strEnd);
    
    
                //请求值
                if ((Request["start"] != null) && !string.IsNullOrWhiteSpace(Request["start"].ToString()))
                {
                    strStart = Request["start"].ToString();
                    start = DateTime.Parse(strStart);
                }
                if ((Request["end"] != null) && !string.IsNullOrWhiteSpace(Request["end"].ToString()))
                {
                    strEnd = Request["end"].ToString();
                    end = DateTime.Parse(strEnd);
                }
                if ((Request["sensorNames"] != null) && !string.IsNullOrWhiteSpace(Request["sensorNames"].ToString()))
                {
                    sensorNames = Request["sensorNames"].ToString();
                }
    
    
                //获取所有传感器
                list_SensorName = GetCodes();
    
                SetAxisXAndY();
            }
    
    
            public List<string> GetCodes()
            {
                if (!string.IsNullOrWhiteSpace(sensorNames))
                {
                    return sensorNames.TrimEnd(',').Split(',').ToList();
                }
                return new List<string> { "080906" };
            }
    
    
            public void SetAxisXAndY()
            {
                string strWhere_Codes = "";
                list_SensorName.ForEach(c =>
                {
                    strWhere_Codes += $"'{c}',";
                });
                strWhere_Codes = strWhere_Codes.TrimEnd(',');
    
                string sql = $@"SELECT Code,NewValue1,GetTime FROM [dbo].[tb_SensorRecord] 
                                WHERE 1=1 
    	                            AND GetTime>='{start.ToString("yyyy-MM-dd HH:mm")}' 
    	                            AND GetTime<='{end.ToString("yyyy-MM-dd HH:mm")}'  
                                    AND Code IN ({strWhere_Codes})
                                ORDER BY ID ASC ";
                DataTable dt = SqlHelper.ExecuteDataTable(sql, null);
    
                strX = JsonConvert.SerializeObject(GetAxisX(ref dt));
                strY = JsonConvert.SerializeObject(GetAxisY(ref dt));
            }
    
    
            public List<string> GetAxisX(ref DataTable dt)
            {
                Dictionary<string, string> dic = new Dictionary<string, string>();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var key = dt.Rows[i]["GetTime"].ToString();
    
                    if (!dic.ContainsKey(key))
                    {
                        dic.Add(key, null);
                    }
                }
                return dic.Select(c => c.Key).ToList();
            }
    
    
            public List<Sensor_Record> GetAxisY(ref DataTable dt)
            {
                List<Sensor_Record> all_Sensor_Record = new List<Sensor_Record>();
                list_SensorName.ForEach(item =>
                {
                    all_Sensor_Record.Add(new Sensor_Record
                    {
                        name = item,
                        type = "line",
                        stack = "总量",
                        data = new List<decimal> { }
                    });
                });
    
    
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var code = dt.Rows[i]["Code"].ToString();
                    var strNewValue1 = dt.Rows[i]["NewValue1"].ToString();
                    var NewValue1 = string.IsNullOrWhiteSpace(strNewValue1) ? 0 : decimal.Parse(strNewValue1);
    
                    var model = all_Sensor_Record.Where(c => c.name == code).FirstOrDefault();
                    if (model != null)
                    {
                        model.data.Add(NewValue1);
                    }
                }
    
                return all_Sensor_Record;
            }
    
    
    
        }
    
    
        public class Sensor_Record
        {
            public string name { get; set; }
            public string type { get; set; }
            public string stack { get; set; }
            public List<decimal> data { get; set; }
        }
    
    
    }
    

    namespace WebApplication1
    {
        public static class DataTableEntityInteroperate
        {
    
            /// <summary>
            /// DataTable to Entities
            /// </summary>
            /// <typeparam name="T">Entity</typeparam>
            /// <param name="dt">DataTable</param>
            /// <returns>List<T</returns>
            public static List<T> ToEntities<T>(this DataTable dt)/*必须来在于数据库来自于文件可能存在问题*/ where T : class, new()
            {
                //IsNullable
                if (null == dt || dt.Rows.Count == 0)
                    return null;
                //Initial Entities
                List<T> entities = new List<T>();
                try
                {
                    foreach (DataRow row in dt.Rows)
                    {
                        PropertyInfo[] pArray = typeof(T).GetProperties();
                        T entity = new T();
                        Array.ForEach<PropertyInfo>(pArray, p =>
                        {
                            if (row[p.Name] != DBNull.Value)
                                p.SetValue(entity, row[p.Name], null);
                        });
                        entities.Add(entity);
                    }
                    return entities;
                }
                catch (Exception)
                {
                    throw;
                }
            }
    
            public static List<T> ToEntities1<T>(this DataTable dt)/*必须来在于数据库来自于文件可能存在问题*/ where T : class, new()
            {
                if (null == dt || dt.Rows.Count == 0) { return null; }
                List<T> entities = new List<T>();
                foreach (DataRow row in dt.Rows)
                {
                    PropertyInfo[] pArray = typeof(T).GetProperties();
                    T entity = new T();
    
                    string str = "";
                    Array.ForEach<PropertyInfo>(pArray, p =>
                    {
                        object value = row[p.Name];
                        if (value != DBNull.Value)
                        {
                            //设置 值
                            if (p.PropertyType.Name.Equals("Int32"))
                            {
                                p.SetValue(entity, Convert.ToInt32(value), null);
                            }
                            else if (p.PropertyType.Name.Equals("String"))
                            {
                                p.SetValue(entity, Convert.ToString(value), null);
                            }
                            else if (p.PropertyType.Name.Equals("Nullable`1"))
                            {
                                p.SetValue(entity, Convert.ToInt32(value), null);
                            }
                            //p.SetValue(entity, row[p.Name], null);
                        }
    
                        //得到 属性 和 属性的类型
                        str += $"{p.Name}  =>  {p.PropertyType.Name}
    ";
                    });
                    //throw new Exception(str);
    
                    entities.Add(entity);
                }
                return entities;
            }
        }
    
    
    }
    
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Web;
    
    namespace WebApplication1
    {
        public class SqlHelper
        {
            //连接字符串
            //1、添加引用 2、导入命名空间 为了使用ConfigurationManager
            //private static string conStr = "data source=.\sqlexpress;initial catalog=AEHMS-2019-08-28;user id=sa;password=sa;";
            //private static string conStr = "data source=192.168.2.98;initial catalog=QMS;user id=sa;password=Sql123456;";
            //private static string conStr = "data source=192.168.2.51;initial catalog=AEHMSTest;user id=sa;password=Sql123456;";
            //private static string conStr = "data source=192.168.2.51;initial catalog=AEHMSTest;user id=sa;password=Sql123456;";
            //private static string conStr = "data source=192.168.2.51;initial catalog=AEHMS20201216;user id=sa;password=Sql123456;";
            private static string conStr = "data source=.;initial catalog=AEHMS20210629;user id=sa;password=sa;";
    
    
    
    
    
            //增删改查
            //查找数据  ExecuteScalar()返回首行首列   ExecuteReader()  DataTable
    
    
            /// <summary>
            /// 返回DataTable
            /// </summary>
            /// <param name="sql">所用的sql语句</param>
            /// <param name="param">可变,可以传参也可以不传参数</param>
            /// <returns></returns>
            public static DataTable ExecuteDataTable(string sql, params SqlParameter[] param)
            {
                DataTable dt = new DataTable();
                using (SqlConnection con = new SqlConnection(conStr))
                {
                    using (SqlDataAdapter adapter = new SqlDataAdapter(sql, con))
                    {
                        //添加参数
                        if (param != null)
                        {
                            adapter.SelectCommand.Parameters.AddRange(param);
                        }
                        //1.打开链接,如果连接没有打开,则它给你打开;如果打开,就算了
                        //2.去执行sql语句,读取数据库
                        //3.sqlDataReader,把读取到的数据填充到内存表中
                        adapter.Fill(dt);
                    }
                }
                return dt;
            }
    
            /// <summary>
            /// 执行查询,返回首行首列
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            public static object ExecuteScalar(string sql, params SqlParameter[] param)
            {
                object o = null;
                using (SqlConnection con = new SqlConnection(conStr))
                {
                    using (SqlCommand cmd = new SqlCommand(sql, con))
                    {
                        cmd.Parameters.AddRange(param);
                        con.Open();
    
                        o = cmd.ExecuteScalar();
                    }
                }
                return o;
            }
    
    
            /// <summary>
            /// 执行查询,返回SqlDataReader对象
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] param)
            {
                SqlDataReader reader = null;
                using (SqlConnection con = new SqlConnection(conStr))
                {
                    using (SqlCommand cmd = new SqlCommand(sql, con))
                    {
                        cmd.Parameters.AddRange(param);
                        con.Open();
    
                        reader = cmd.ExecuteReader();
                    }
                }
                return reader;
            }
    
            /// <summary>
            /// 执行增删改,返回受影响的行数
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            public static int ExecuteNonQuery(string sql, params SqlParameter[] param)
            {
                int n = -1;
                using (SqlConnection con = new SqlConnection(conStr))
                {
                    using (SqlCommand cmd = new SqlCommand(sql, con))
                    {
                        cmd.Parameters.AddRange(param);
                        con.Open();
                        n = cmd.ExecuteNonQuery();
                    }
                }
                return n;
            }
    
        }
    }
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace WebApplication1
    {
        public partial class tb_SensorRecordModel
        {
            public tb_SensorRecordModel()
            { }
    
    
    
    
            //增加的属性 2019-7-12 14:10:29
    
    
            /// <summary>
            /// 对内 数据层面的报警 值可能是修正后的VP值(均值)
            /// </summary>
            public bool? InAlarm { get; set; }
    
            /// <summary>
            /// 对外 功能层面的报警 值也会超过报警阈值 可能会发送预警短信 图表上能看到这个非正常值
            /// </summary>
            public bool? OutAlram { get; set; }
    
            /// <summary>
            /// 是否已用VP值替换了原来的报警值
            /// </summary>
            public bool? IsChangeValue { get; set; }
    
            /// <summary>
            /// 一段报警数据,用一个标识进行划分。一段报警数据的完结 以找到 恢复正常的数据 为准
            /// </summary>
            public string BlockCode { get; set; }
    
            /// <summary>
            /// 当前这条数据 在这段报警数据中的(区块) 索引
            /// 区块内元素的排序
            /// </summary>
            public int? BlockEleSort { get; set; }
    
            /// <summary>
            /// 是否发送了 预警短信
            /// </summary>
            public bool? IsSendSMS { get; set; }
    
            /// <summary>
            /// 预警时的 阈值范围
            /// </summary>
            public string ScopeSign { get; set; }
    
            /// <summary>
            /// 真实的 计算后的 值1
            /// </summary>
            public string RealNewValue1 { get; set; }
    
            /// <summary>
            /// 真实的 计算后的 值2
            /// </summary>
            public string RealNewValue2 { get; set; }
    
            /// <summary>
            /// 这区块的数据 是否完结
            /// </summary>
            public bool? IsEnd { get; set; }
    
            /// <summary>
            /// 是否已处理
            /// </summary>
            public bool? IsDealtWith { get; set; }
    
            /// <summary>
            /// 是否显示
            /// </summary>
            public bool? IsShow { get; set; }
    
            /// <summary>
            /// 报警等级
            /// </summary>
            public int? AlarmLevel { get; set; }
    
    
    
    
    
    
    
    
    
    
    
            #region Model
            private int? _id;
            private int? _sensorid;
            private int? _sensortypeid;
            private int? _bridgeid;
            private string _bridgename;
            private string _sensorname;
            private string _sensortype;
            private string _sensornumber;
            private string _sensorposition;
            private DateTime? _gettime;
            private decimal? _value1;
            private decimal? _value2;
            private string _unit;
            private int? _sensorpositionid;
            private bool _isread;
            private string _code;
            private DateTime? _createtime;
            private string _state;
            private decimal? _temperature;
            private int? _resistance;
            private string _newvalue1;
            private string _newvalue2;
    
            /// <summary>
            /// 编号
            /// </summary>
            public int? ID
            {
                set { _id = value; }
                get { return _id; }
            }
    
            /// <summary>
            /// 传感器ID
            /// </summary>
            public int? SensorID
            {
                set { _sensorid = value; }
                get { return _sensorid; }
            }
    
            /// <summary>
            /// 传感器类型ID
            /// </summary>
            public int? SensorTypeID
            {
                set { _sensortypeid = value; }
                get { return _sensortypeid; }
            }
    
            /// <summary>
            /// 桥梁ID
            /// </summary>
            public int? BridgeID
            {
                set { _bridgeid = value; }
                get { return _bridgeid; }
            }
    
            /// <summary>
            /// 桥梁名称
            /// </summary>
            public string BridgeName
            {
                set { _bridgename = value; }
                get { return _bridgename; }
            }
    
            /// <summary>
            /// 传感器名字
            /// </summary>
            public string SensorName
            {
                set { _sensorname = value; }
                get { return _sensorname; }
            }
    
            /// <summary>
            /// 传感器类型名
            /// </summary>
            public string SensorType
            {
                set { _sensortype = value; }
                get { return _sensortype; }
            }
    
            /// <summary>
            /// 传感器编号
            /// </summary>
            public string SensorNumber
            {
                set { _sensornumber = value; }
                get { return _sensornumber; }
            }
    
            /// <summary>
            /// 传感器位置
            /// </summary>
            public string SensorPosition
            {
                set { _sensorposition = value; }
                get { return _sensorposition; }
            }
    
            /// <summary>
            /// 获取时间
            /// </summary>
            public DateTime? GetTime
            {
                set { _gettime = value; }
                get { return _gettime; }
            }
    
            /// <summary>
            /// 值1
            /// </summary>
            public decimal? Value1
            {
                set { _value1 = value; }
                get { return _value1; }
            }
    
            /// <summary>
            /// 值2 可为空
            /// </summary>
            public decimal? Value2
            {
                set { _value2 = value; }
                get { return _value2; }
            }
    
            /// <summary>
            /// 单位
            /// </summary>
            public string Unit
            {
                set { _unit = value; }
                get { return _unit; }
            }
    
            /// <summary>
            /// 传感器位置ID
            /// </summary>
            public int? SensorPositionID
            {
                set { _sensorpositionid = value; }
                get { return _sensorpositionid; }
            }
    
            /// <summary>
            /// 
            /// </summary>
            public bool IsRead
            {
                set { _isread = value; }
                get { return _isread; }
            }
    
            /// <summary>
            /// 
            /// </summary>
            public string Code
            {
                set { _code = value; }
                get { return _code; }
            }
    
            /// <summary>
            /// 
            /// </summary>
            public DateTime? CreateTime
            {
                set { _createtime = value; }
                get { return _createtime; }
            }
    
            /// <summary>
            /// 
            /// </summary>
            public string State
            {
                set { _state = value; }
                get { return _state; }
            }
    
            /// <summary>
            /// 温度值
            /// </summary>
            public decimal? Temperature
            {
                set { _temperature = value; }
                get { return _temperature; }
            }
    
            /// <summary>
            /// 电阻值
            /// </summary>
            public int? Resistance
            {
                set { _resistance = value; }
                get { return _resistance; }
            }
    
            /// <summary>
            /// 处理后的值1
            /// </summary>
            public string NewValue1
            {
                set { _newvalue1 = value; }
                get { return _newvalue1; }
            }
    
            /// <summary>
            /// 处理后的值2
            /// </summary>
            public string NewValue2
            {
                set { _newvalue2 = value; }
                get { return _newvalue2; }
            }
    
            #endregion Model
    
        }
    }
    
  • 相关阅读:
    令人抓狂的redis和rediscluster Python驱动包的安装
    基于Docker的Consul集群实现服务发现
    应用中引入缓存层后,缓存和持久化层数据一致性的思考
    Redis中几个简单的概念:缓存穿透/击穿/雪崩,别再被吓唬了
    Redis Cluster 自动化安装,扩容和缩容
    mysql 8.0 忘记root密码后重置
    MySQL 8.0部分弃用的参数整理
    MySQL Online DDL与DML并发阻塞关系总结
    MySQL Error Log 文件丢失导致The server quit without updating PID file启动失败的场景
    MySQL删除大表时潜在的问题(drop table,truncate table)
  • 原文地址:https://www.cnblogs.com/guxingy/p/14953123.html
Copyright © 2011-2022 走看看