public object GetRtSpectrumDataRShell(int sensorId)
        {
            using (var db = new SecureCloud_Entities())
            {
                var querySensors = from scc in db.T_DIM_SENSOR_CORRENT
                                   from s in db.T_DIM_SENSOR
                                   where scc.SensorId == sensorId && s.SENSOR_ID == scc.CorrentSensorId
                                   select new
                {
                    SensorId = (int)scc.CorrentSensorId,
                    Name     = s.SENSOR_LOCATION_DESCRIPTION
                };
                if (!(from b in db.T_THEMES_VIBRATION_BATCH from q in querySensors where b.SensorId == q.SensorId select b.CollectTime).Any())
                {
                    return(null);
                }

                var lastDate =
                    (from b in db.T_THEMES_VIBRATION_BATCH from q in querySensors where b.SensorId == q.SensorId select b.CollectTime).Max();

                var lastBatch =
                    (from i in db.T_THEMES_VIBRATION_BATCH
                     from q in querySensors
                     where i.SensorId == q.SensorId && i.CollectTime == lastDate
                     select new
                {
                    CollectTime = lastDate,     //最新时段
                    BatchId = i.BatchId,
                    SensorId = q.SensorId
                });

                var query2 = from s in db.T_DIM_SENSOR
                             from f in db.T_DIM_SAFETY_FACTOR_TYPE
                             from q in querySensors
                             from l in lastBatch
                             where q.SensorId == s.SENSOR_ID && s.SAFETY_FACTOR_TYPE_ID == f.SAFETY_FACTOR_TYPE_ID && l.SensorId == s.SENSOR_ID &&
                             !s.IsDeleted
                             select
                             new
                {
                    SensorId = s.SENSOR_ID,
                    Location = s.SENSOR_LOCATION_DESCRIPTION,
                    Columns  = f.FACTOR_VALUE_COLUMNS,
                    data     = (from o in db.T_THEMES_VIBRATION
                                where o.BatchId == l.BatchId
                                select o).Select(o => new
                    {
                        Frequency = o.Frequency,
                        Value     = o.Value                     //数据时间
                    })
                };

                var info = query2.ToList();

                var oneUnit = new List <OneUnit>();

                foreach (var item in info)
                {
                    var one = new OneUnit();
                    one.Unit     = Config.GetUnitBySensorID(item.SensorId)[0];
                    one.SensorId = item.SensorId;
                    oneUnit.Add(one);
                }
                var infoNew = from unit in oneUnit
                              from a in info
                              where a.SensorId == unit.SensorId
                              select new
                {
                    SensorId = a.SensorId,
                    Location = a.Location,
                    Columns  = a.Columns,
                    // Unit = f.FACTOR_VALUE_UNIT,
                    Unit = unit.Unit,
                    data = a.data
                };

                return(infoNew.ToList());
            }
        }
        public object GetOriginalDataRShell(DateTime collectTime, int sensorId)
        {
            using (var db = new SecureCloud_Entities())
            {
                var querySensors = from scc in db.T_DIM_SENSOR_CORRENT
                                   from s in db.T_DIM_SENSOR
                                   where scc.SensorId == sensorId && s.SENSOR_ID == scc.CorrentSensorId
                                   select new
                {
                    SensorId = (int)scc.CorrentSensorId,
                    Name     = s.SENSOR_LOCATION_DESCRIPTION
                };

                var lastBatch = from q in querySensors
                                select new
                {
                    BatchId = (from i in db.T_THEMES_VIBRATION_BATCH
                               where i.SensorId == q.SensorId && i.CollectTime == collectTime
                               select i.BatchId == null ? (Guid?)null : i.BatchId),
                    SensorId = q.SensorId
                };



                var query2 = from s in db.T_DIM_SENSOR
                             from f in db.T_DIM_SAFETY_FACTOR_TYPE
                             from q in querySensors

                             from l in lastBatch
                             where q.SensorId == s.SENSOR_ID && s.SAFETY_FACTOR_TYPE_ID == f.SAFETY_FACTOR_TYPE_ID && l.SensorId == s.SENSOR_ID
                             //&& s.Identification != 1 && !s.IsDeleted
                             && !s.IsDeleted
                             select new
                {
                    SensorId = s.SENSOR_ID,
                    Location = s.SENSOR_LOCATION_DESCRIPTION,
                    Columns  = f.FACTOR_VALUE_COLUMNS,
                    // Unit = f.FACTOR_VALUE_UNIT,
                    // Unit = unit,
                    data = (from o in db.T_THEMES_VIBRATION_ORIGINAL
                            where o.BatchId == l.BatchId.FirstOrDefault()
                            select o).Select(o => new
                    {
                        Speed       = o.Speed,
                        CollectTime = o.CollectTime                         //数据时间
                    })
                };



                var info    = query2.ToList();
                var oneUnit = new List <OneUnit>();
                foreach (var item in info)
                {
                    var one = new OneUnit();
                    one.Unit     = Config.GetUnitBySensorID(item.SensorId)[0];
                    one.SensorId = item.SensorId;
                    oneUnit.Add(one);
                }
                var infoNew = from unit in oneUnit
                              from a in info
                              where a.SensorId == unit.SensorId
                              select new
                {
                    SensorId = a.SensorId,
                    Location = a.Location,
                    Columns  = a.Columns,
                    // Unit = f.FACTOR_VALUE_UNIT,
                    Unit = unit.Unit,
                    data = a.data
                };

                return(infoNew.ToList());
            }
        }
        public object GetRtOriginalDataRShell(int sensorId)
        {
            using (var db = new SecureCloud_Entities())
            {
                var querySensors = from scc in db.T_DIM_SENSOR_CORRENT
                                   from s in db.T_DIM_SENSOR
                                   where scc.SensorId == sensorId && s.SENSOR_ID == scc.CorrentSensorId
                                   select new
                {
                    SensorId = (int)scc.CorrentSensorId,
                    Name     = s.SENSOR_LOCATION_DESCRIPTION
                };

                if (!(from b in db.T_THEMES_VIBRATION_BATCH from q in querySensors where b.SensorId == q.SensorId select b.CollectTime).Any())
                {
                    return(null);
                }

                var lastDate = (from b in db.T_THEMES_VIBRATION_BATCH
                                from q in querySensors
                                where b.SensorId == q.SensorId
                                select b.CollectTime).DefaultIfEmpty().Max();

                var collectTime = lastDate;



                var lastBatch = from q in querySensors
                                join i in (db.T_THEMES_VIBRATION_BATCH).Where(k => k.CollectTime == collectTime)
                                on q.SensorId equals i.SensorId
                                into j
                                from o in j.DefaultIfEmpty()
                                select new LastBatch
                {
                    BatchId  = o.BatchId,
                    SensorId = q.SensorId
                };

                var query2 = from s in db.T_DIM_SENSOR
                             from f in db.T_DIM_SAFETY_FACTOR_TYPE
                             from q in querySensors

                             from l in lastBatch
                             where q.SensorId == s.SENSOR_ID && s.SAFETY_FACTOR_TYPE_ID == f.SAFETY_FACTOR_TYPE_ID && l.SensorId == s.SENSOR_ID
                             //&& s.Identification != 1 && !s.IsDeleted
                             && !s.IsDeleted

                             select new
                {
                    SensorId = s.SENSOR_ID,
                    Location = s.SENSOR_LOCATION_DESCRIPTION,
                    Columns  = f.FACTOR_VALUE_COLUMNS,
                    // Unit = f.FACTOR_VALUE_UNIT,
                    // Unit = unit,
                    CollectTime = collectTime,             //最新时段
                    data        = (from o in db.T_THEMES_VIBRATION_ORIGINAL
                                   where o.BatchId == l.BatchId
                                   select o).Select(o => new
                    {
                        Speed       = o.Speed,
                        CollectTime = o.CollectTime                     //数据时间
                    })
                };

                var info    = query2.ToList();
                var oneUnit = new List <OneUnit>();
                foreach (var item in info)
                {
                    var one = new OneUnit();
                    one.Unit     = Config.GetUnitBySensorID(item.SensorId)[0];
                    one.SensorId = item.SensorId;
                    oneUnit.Add(one);
                }
                var infoNew = from unit in oneUnit
                              from a in info
                              where a.SensorId == unit.SensorId
                              select new
                {
                    SensorId = a.SensorId,
                    Location = a.Location,
                    Columns  = a.Columns,
                    // Unit = f.FACTOR_VALUE_UNIT,
                    Unit        = unit.Unit,
                    CollectTime = a.CollectTime,                   //最新时段
                    data        = a.data
                };

                return(infoNew.ToList());
            }
        }