/// <summary> /// 获取实时轨迹中历史轨迹点 /// </summary> /// <param name="phone"></param> /// <param name="time"></param> /// <returns></returns> public JsonResult GetRealDataAjax(string phone, string time) { string uid = Request.Params["uid"];//护林员id string maptype = Request.Params["maptype"]; MessageListObject msg = null; var sw = new T_IPS_REALDATASW(); sw.PHONE = phone.Trim(); sw.searchDate = DateTime.Now.ToString("yyyy-MM-dd"); sw.HID = uid; if (!string.IsNullOrEmpty(maptype)) { sw.MapType = maptype;//地图类型 } if (!string.IsNullOrEmpty(time)) { sw.DateBegin = Convert.ToDateTime(time).AddSeconds(1).ToString("yyyy-MM-dd HH:mm:ss"); } else { sw.DateEnd = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); } var list = T_IPS_REALDATACls.getModelList(sw); if (list.Count() > 0) { msg = new MessageListObject(true, list); } return(Json(msg)); }
/// <summary> /// 获取电量 /// </summary> /// <example> /// sw.SearchTime 查询日期,查询某日的电量信息 /// sw.USERID 护林员序号(多序号以逗号分隔) /// sw.DateBegin 开始日期 /// sw.DateEnd 结束日期 /// </example> /// <param name="sw">参见条件模型T_IPS_REALDATASW</param> /// <returns>参见模型T_IPS_REALDATAModel</returns> public static IEnumerable <T_IPS_REALDATAModel> getElectricModelList(T_IPS_REALDATASW sw) { var result = new List <T_IPS_REALDATAModel>(); //获取当前登录用户有权限查看的组织机构 DataTable dtOrg = BaseDT.T_SYS_ORG.getDT(new T_SYS_ORGSW { SYSFLAG = ConfigCls.getSystemFlag() }); //获取所有有权限查看的护林员 DataTable dtFRUser = BaseDT.T_IPSFR_USER.getDT(new T_IPSFR_USER_SW { ISENABLE = "1", HID = sw.HID }); DataTable dt = BaseDT.T_IPS_REALDATA.getDT(sw); DataRow[] dr = dt.Select("", "SBTIME desc"); for (int i = 0; i < dr.Length; i++) { if (string.IsNullOrEmpty(dr[i]["ELECTRIC"].ToString()) == false) { T_IPS_REALDATAModel m = new T_IPS_REALDATAModel(); m.REALDATAID = dr[i]["REALDATAID"].ToString(); m.PHONE = dr[i]["PHONE"].ToString();//电话号码 m.LONGITUDE = dr[i]["LONGITUDE"].ToString(); m.LATITUDE = dr[i]["LATITUDE"].ToString(); m.HEIGHT = dr[i]["HEIGHT"].ToString(); m.ELECTRIC = dr[i]["ELECTRIC"].ToString(); m.SPEED = dr[i]["SPEED"].ToString(); m.DIRECTION = dr[i]["DIRECTION"].ToString(); m.SBTIME = dr[i]["SBTIME"].ToString(); if (string.IsNullOrEmpty(m.SBTIME) == false) { m.SBTIME = PublicClassLibrary.ClsSwitch.SwitTM(m.SBTIME); } m.NOTE = dr[i]["NOTE"].ToString(); DataRow[] drFRUser = dtFRUser.Select("PHONE='" + m.PHONE + "'"); if (drFRUser.Length > 0) { m.HID = drFRUser[0]["HID"].ToString(); //护林员编号 m.HNAME = drFRUser[0]["HNAME"].ToString(); //护林员名称 m.ORGNO = drFRUser[0]["BYORGNO"].ToString(); //组织机构编码 m.ORGNAME = BaseDT.T_SYS_ORG.getName(dtOrg, m.ORGNO); //组织机构名称 } result.Add(m); } } dtOrg.Clear(); dtOrg.Dispose(); dtFRUser.Clear(); dtFRUser.Dispose(); dt.Clear(); dt.Dispose(); return(result); }
/// <summary> /// 获取某天数据 注意仅获取某一护林员的 /// </summary> /// <example> /// sw.HID 护林员序号 /// sw.PHONE 护林员手机号码 /// sw.searchDate 查询日期,查询某一天数据,格式为年月日或加时分秒 /// sw.DateBegin 查询开始时间 用于实时监控时,判断记录数>1 /// sw.DateEnd 查询结束时间 可用于防止查询某一日以外的记录 /// </example> /// <returns>参见模型</returns> public static DataTable getDT(T_IPS_REALDATASW sw) { if (!string.IsNullOrEmpty(sw.PHONE)) { sw.PHONE = "'" + sw.PHONE + "'"; } //判断护林员序号是否为空,非空获取电话号码 if (string.IsNullOrEmpty(sw.HID) == false) { string tmp = ""; DataTable dtHUser = BaseDT.T_IPSFR_USER.getDT(new T_IPSFR_USER_SW { HID = sw.HID }); //获取护林员姓名 for (int i = 0; i < dtHUser.Rows.Count; i++) { if (i > 0) { tmp += ","; } tmp += "'" + dtHUser.Rows[i]["PHONE"].ToString() + "'"; } sw.PHONE = tmp; dtHUser.Clear(); dtHUser.Dispose(); } StringBuilder sb = new StringBuilder(); sb.AppendFormat("SELECT REALDATAID, PHONE, LONGITUDE, LATITUDE, HEIGHT, ELECTRIC, SPEED, DIRECTION, SBTIME, NOTE FROM T_IPS_REALDATA"); sb.AppendFormat(" WHERE 1=1"); if (!string.IsNullOrEmpty(sw.searchDate)) { sb.AppendFormat(" AND SBTIME>='{0} 00:00:00' AND SBTIME<='{0} 23:59:59'", Convert.ToDateTime(sw.searchDate).ToString("yyyy-MM-dd")); } if (!string.IsNullOrEmpty(sw.DateBegin)) { sb.AppendFormat(" AND SBTIME>='{0}'", sw.DateBegin); } if (!string.IsNullOrEmpty(sw.DateEnd)) { sb.AppendFormat(" AND SBTIME<='{0}'", sw.DateEnd); } if (!string.IsNullOrEmpty(sw.PHONE)) { sb.AppendFormat(" AND PHONE in ({0})", sw.PHONE); } sb.AppendFormat(" ORDER BY SBTIME "); DataSet ds = DataBaseClass.FullDataSet(sb.ToString()); return(ds.Tables[0]); }
/// <summary> /// 获取历史经纬度(历史轨迹回放) /// </summary> /// <param name="uid"></param> /// <param name="time"></param> /// <returns></returns> public JsonResult GetHisLogLatAjax(string uid, string time) { MessageListObject ms = null; if (string.IsNullOrEmpty(uid) || string.IsNullOrEmpty(time)) { ms = new MessageListObject(false, null); return(Json(ms)); } string maptype = Request.Params["maptype"]; //地图类型 string starttime = Request.Params["starttime"]; //开始时分 string endtime = Request.Params["endtime"]; //结束时分 var model = new T_IPS_REALDATASW(); model.HID = uid; //model.searchDate = time; if (!string.IsNullOrEmpty(starttime.Trim()) && !string.IsNullOrEmpty(endtime.Trim()))//时分参数 { model.DateBegin = time + " " + starttime + ":00"; model.DateEnd = time + " " + endtime + ":00"; if (endtime.Trim() == "23:59") { model.DateEnd = time + " " + endtime + ":59"; } } if (!string.IsNullOrEmpty(maptype)) { model.MapType = maptype; } var list = T_IPS_REALDATACls.getModelList(model).ToList(); if (list.Any()) { for (int i = 0; i < list.Count; i++) { if (i != 0) { bool bo = ISBetweenInDistance(list[i - 1].LONGITUDE, list[i - 1].LATITUDE, list[i].LONGITUDE, list[i].LATITUDE);//去除在参数设置范围内的经纬度 if (bo) { list.Remove(list[i]); --i; } } } ms = new MessageListObject(true, list); } return(Json(ms)); }
/// <summary> /// 根据电话号码获取实时传输数据 /// </summary> /// <example> /// sw.SearchTime 查询日期,查询某日的电量信息 /// sw.USERID 护林员序号(多序号以逗号分隔) /// sw.DateBegin 开始日期 /// sw.DateEnd 结束日期 /// </example> /// <param name="sw">参见条件模型T_IPS_REALDATASW</param> /// <returns>参见模型T_IPS_REALDATAModel</returns> public static IEnumerable <T_IPS_REALDATAModel> getModelList(T_IPS_REALDATASW sw) { var result = new List <T_IPS_REALDATAModel>(); DataTable dt = BaseDT.T_IPS_REALDATA.getDT(sw); for (int i = 0; i < dt.Rows.Count; i++) { T_IPS_REALDATAModel m = new T_IPS_REALDATAModel(); m.REALDATAID = dt.Rows[i]["REALDATAID"].ToString(); m.PHONE = dt.Rows[i]["PHONE"].ToString(); m.LONGITUDE = dt.Rows[i]["LONGITUDE"].ToString(); //经度 m.LATITUDE = dt.Rows[i]["LATITUDE"].ToString(); //纬度 if (sw.MapType != "Skyline") { //******************计算坐标偏移量 string[] arr = PublicCls.switJWD(m.LATITUDE, m.LONGITUDE); m.LATITUDE = arr[0]; m.LONGITUDE = arr[1]; //******************计算坐标偏移量 End } m.HEIGHT = dt.Rows[i]["HEIGHT"].ToString(); m.ELECTRIC = dt.Rows[i]["ELECTRIC"].ToString(); m.SPEED = dt.Rows[i]["SPEED"].ToString(); m.DIRECTION = dt.Rows[i]["DIRECTION"].ToString(); m.SBTIME = dt.Rows[i]["SBTIME"].ToString(); if (string.IsNullOrEmpty(m.SBTIME) == false) { m.SBTIME = PublicClassLibrary.ClsSwitch.SwitTM(m.SBTIME); } m.NOTE = dt.Rows[i]["NOTE"].ToString(); result.Add(m); } //dtHUser.Clear(); //dtHUser.Dispose(); dt.Clear(); dt.Dispose(); return(result); }
/// <summary> /// 电量查询Html /// </summary> /// <param name="uid"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <returns></returns> public JsonResult GetElectricAjax(string uid, string startTime, string endTime) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("<table cellpadding=\"0\" cellspacing=\"0\">"); sb.AppendFormat("<thead><tr>"); sb.AppendFormat("<th>序号</th>"); sb.AppendFormat("<th>单位</th>"); sb.AppendFormat("<th>姓名</th>"); sb.AppendFormat("<th>电话号码</th>"); sb.AppendFormat("<th>时间</th>"); sb.AppendFormat("<th>电量</th>"); sb.AppendFormat("</tr></thead>"); sb.AppendFormat("<tbody>"); Message ms = null; if (string.IsNullOrEmpty(uid)) { ms = new Message(false, "", ""); return(Json(ms)); } var sw = new T_IPS_REALDATASW(); sw.HID = uid; sw.DateBegin = startTime + " 0:00:00"; sw.DateEnd = endTime + " 23:59:59"; var list = T_IPS_REALDATACls.getElectricModelList(sw).Take(500);//获取电量列表 if (list.Any()) { if (list.Count() <= 500) { int i = 0; foreach (var item in list) { sb.AppendFormat("<tr>"); sb.AppendFormat("<td>{0}</td>", ++i); sb.AppendFormat("<td>{0}</td>", item.ORGNAME); sb.AppendFormat("<td>{0}</td>", item.HNAME); sb.AppendFormat("<td>{0}</td>", item.PHONE); sb.AppendFormat("<td>{0}</td>", item.SBTIME); sb.AppendFormat("<td>{0}</td>", item.ELECTRIC); sb.AppendFormat("</tr>"); } } else { sb.AppendFormat("<tr>"); sb.AppendFormat("<td colspan=\"6\">暂无电量信息</td>"); sb.AppendFormat("</tr>"); ms = new Message(false, sb.ToString(), "检索的数据量过大,请缩短时间间隔或减少查询护林员数量!"); return(Json(ms)); } } else { sb.AppendFormat("<tr>"); sb.AppendFormat("<td colspan=\"6\">暂无电量信息</td>"); sb.AppendFormat("</tr>"); } sb.AppendFormat("</tbody>"); sb.AppendFormat("</table>"); ms = new Message(true, sb.ToString(), ""); return(Json(ms)); }