/// <summary> /// gis所需墒情数据 /// </summary> /// <param name="subcenter"></param> /// <returns></returns> public static List <RealTimeMoisture> RealTimeMoisture(int subcenter) { LNRRDB ln = new LNRRDB(); Maintain mt = new Maintain(); DateTime now = DateTime.Now; List <RealTimeMoisture> ret = new List <RealTimeMoisture>(); List <string> stations = StationService.ListAllRawIDByTypes(new List <StationTypes> { StationTypes.soilStation }, subcenter); IEnumerable <soildata> records = CurrentService.ListRealSoil(ln, stations); // TODO 此处总是报错 //foreach (string id in stations) //{ // if (records.Any(i => (i.StationID) == id)) // { // soildata s = records.Where(i => (i.StationID) == id).OrderByDescending(r => r.DataTime).First(); // RealTimeMoisture temp = new Models.RealTimeMoisture(s); // if (temp != null) // ret.Add(temp); // } //} return(ret); }
/// <summary> /// 实时墒情显示 /// </summary> /// <param name="nowTime"></param> /// <returns></returns> public static List <RealTimeSoil> RealTimeSoil(int subcenter) { using (LNRRDB ln = new LNRRDB()) { DateTime now = DateTime.Now; List <RealTimeSoil> ret = new List <RealTimeSoil>(); List <string> stations = StationService.ListAllRawIDByTypes(new List <StationTypes> { StationTypes.soilStation }, subcenter); IQueryable <soildata> records = CurrentService.ListRealSoil(ln, stations); foreach (string id in stations) { soildata s; if (records.Any(i => (i.StationID) == id)) { s = records.Where(i => (i.StationID) == id).OrderByDescending(r => r.DataTime).First(); } else { continue; } RealTimeSoil temp = new Models.RealTimeSoil(s); if (temp != null) { ret.Add(temp); } } return(ret); } }
/// <summary> /// 删除某条墒情数据 /// </summary> /// <param name="stationid"></param> /// <param name="time"></param> public static void DeleteHourSoil(string stationid, DateTime time) { using (LNRRDB ln = new LNRRDB()) { soildata v = new soildata(); v = ln.soildata.First(i => (i.StationID) == stationid && i.DataTime == time); ln.Entry <soildata>(v).State = EntityState.Deleted; ln.SaveChanges(); } }
/// <summary> /// 获取CS库水情站信息 /// </summary> public static void getHydlStationInfoList() { LNRRDB ln = new LNRRDB(); hydlStationInfoList = DAL.StationService.ListHydroStationAll(); for (int i = 0; i < hydlStationInfoList.Count; i++) { hydlStationInfoDic[hydlStationInfoList[i].StationID] = hydlStationInfoList[i]; } }
/// <summary> /// 修改某条墒情数据gggg /// </summary> /// <param name="stationid"></param> /// <param name="time"></param> /// <param name="value"></param> public static void AlterHourSoil(string stationid, DateTime time, decimal Voltage10, decimal Voltage20, decimal Voltage40, decimal Moisture10, decimal Moisture20, decimal Moisture40) { using (LNRRDB ln = new LNRRDB()) { soildata v = new soildata(); v = ln.soildata.First(i => (i.StationID) == stationid && i.DataTime == time); v.Voltage10 = Voltage10; v.Voltage20 = Voltage20; v.Voltage40 = Voltage40; v.Moisture10 = Moisture10; v.Moisture20 = Moisture20; v.Moistrue40 = Moisture40; ln.SaveChanges(); } }
public static IQueryable <Models.CurrentData> ListRealWater(LNRRDB ln, List <string> stations) { return(from real in ln.CurrentData where stations.Any(id => id == real.StationID) select real); }
/// <summary> /// 原始库墒情数据查询 /// </summary> /// <param name="fromTime"></param> /// <param name="toTime"></param> /// <param name="stationIds"></param> /// <returns></returns> public static QueryResult ListHourSoil(DateTime fromTime, DateTime toTime, string id) { //查询为空 if (id == null) { return(new QueryResult()); } // //传递得参数 // Dictionary<string, object> param = new Dictionary<string, object>(); // //TODO添加datatime转string timeStart timeEnd // //查询条件 // Dictionary<string, string> paramInner = new Dictionary<string, string>(); // paramInner["stationid"] = id; // paramInner["strttime"] = fromTime.ToString(); // paramInner["endtime"] = toTime.ToString(); // //返回结果 // QueryResult result = new QueryResult(); // List<soildata> soildataList = new List<soildata>(); // //string suffix = "/subcenter/getSubcenter"; // string url = "http://127.0.0.1:8088/soildata/getSoildataBS"; // string jsonStr = HttpHelper.SerializeDictionaryToJsonString(paramInner); // param["soildata"] = jsonStr; // try // { // string resultJson = HttpHelper.Post(url, param); // //warningInfoList = (List<CEntityWarningInfo>)HttpHelper.JsonToObject(resultJson, new List<CEntityWarningInfo>()); // soildataList = (List<soildata>)HttpHelper.JsonDeserialize<List<soildata>>(resultJson, new List<soildata>()); // } // catch (Exception e) // { // Debug.WriteLine("查询墒情信息失败"); // throw e; // } // //处理数据 // Station station = StationService.GetStationByRawId(id); // TimeRecord record = new TimeRecord { stationId = station.id, stationName = station.stationName, stationType = station.stationType }; // List<TimeSoil> tsoils = new List<TimeSoil>(); // foreach (soildata soildata in soildataList) // { // TimeSoil timeSoil = new TimeSoil(soildata.DataTime, soildata.Voltage, soildata.Moisture10, soildata.Moisture20, soildata.Moisture40); // timeSoil.time = soildata.DataTime; // timeSoil.Voltage = soildata.Voltage; // timeSoil.Moisture10 = soildata.Moisture10; // timeSoil.Moisture20 = soildata.Moisture20; // timeSoil.Moisture40 = soildata.Moisture40; // tsoils.Add(timeSoil); //} //record.tsoils = tsoils; //record.tsoils = record.tsoils.OrderByDescending(r => r.time).ToList(); //result.records.Add(record); //return result; //创建数据库对象 using (LNRRDB ln = new LNRRDB()) { using (Maintain mt = new Maintain()) { //获取数据 IQueryable <soildata> rainRecord = ListHourSoil(ln, fromTime, toTime, id); QueryResult result = new QueryResult(); List <soildata> singleStationRecord = new List <soildata>(); singleStationRecord = rainRecord.Where(r => r.StationID.Equals(id)).OrderByDescending(r => r.DataTime).ToList(); Station station = StationService.GetStationByRawId(id); //原始库ID TimeRecord record = new TimeRecord { stationId = station.id, stationName = station.stationName, stationType = station.stationType }; foreach (var r in singleStationRecord) { TimeSoil ts = new TimeSoil(r.DataTime, r.Voltage, r.Moisture10, r.Moisture20, r.Moistrue40); record.tsoils.Add(ts); } result.records.Add(record); return(result); } } }
public static IQueryable <Models.soildata> ListHourSoil(LNRRDB ln, DateTime timefrom, DateTime to, string id) { return(from soildata in ln.soildata where id == soildata.StationID && soildata.DataTime <= to && soildata.DataTime >= timefrom select soildata); }
public static IQueryable <Models.soildata> ListRealSoil(LNRRDB ln, List <string> stations) { return(from real in ln.soildata where stations.Contains(real.StationID) select real); }