public JsonResult GetRealAjax(string uidstr) { // string uidstr = Request.Params["uid"];//护林员ID string maptype = Request.Params["maptype"]; //获取最新护林员当前坐标点 var sw = new T_IPS_REALDATATEMPORARYSW(); sw.USERID = uidstr; if (!string.IsNullOrEmpty(maptype)) { sw.MapType = maptype;//地图类型 } if (string.IsNullOrEmpty(uidstr)) { sw.ORGNO = SystemCls.getCurUserOrgNo(); if (sw.ORGNO.Trim().EndsWith("000") || sw.ORGNO.Trim().EndsWith("0000")) { sw.ORGNO = "111111111";//市县级别不用首页定位 return(Json(null)); } } var model = T_IPS_REALDATATEMPORARYCls.getTopOneModelList(sw);//选取最新的一条记录 return(Json(model)); }
/// <summary> /// 历史轨迹列表Html /// </summary> /// <param name="uid"></param> /// <param name="starttime"></param> /// <param name="endtime"></param> /// <returns></returns> public JsonResult GetHisGJAjax(string uid, string starttime, string endtime) { string maptype = Request.Params["maptype"]; // 用户ID列表(sw.USERID逗号分隔) /// 开始日期(sw.DateBegin年月日) /// 结束日期(sw.DateEnd年月日) Message ms = null; if (string.IsNullOrEmpty(uid) || string.IsNullOrEmpty(starttime) || string.IsNullOrEmpty(endtime)) { ms = new Message(false, "参数错误!", ""); return(Json(ms)); } StringBuilder sb = new StringBuilder(); sb.AppendFormat("<table cellpadding=\"0\" cellspacing=\"0\">"); sb.AppendFormat("<thead><tr>"); sb.AppendFormat("<th> <i class=\"icon-time bigger-110 hidden-480\"></i>时间"); sb.AppendFormat("</th>"); sb.AppendFormat("<th>操作"); sb.AppendFormat("</th>"); sb.AppendFormat("</tr></thead>"); sb.AppendFormat("<tbody>"); var sw = new T_IPS_REALDATATEMPORARYSW(); sw.USERID = uid; sw.DateBegin = starttime; sw.DateEnd = endtime; if (!string.IsNullOrEmpty(maptype)) { sw.MapType = maptype; } var list = T_IPS_REALDATATEMPORARYCls.getModelList(sw); if (list.Count() > 0) { int i = 0; foreach (var item in list.OrderByDescending(e => e.SBDATE)) { sb.AppendFormat("<tr>"); sb.AppendFormat("<td>{0}</td>", item.SBDATE); sb.AppendFormat("<td><a href='javascript:void(0)' onClick=\"hisgjPlay('" + item.USERID + "','" + item.SBDATE + "','" + i.ToString() + "')\">轨迹回放</a><p id=\"divplay_" + i.ToString() + "\" style=\"display:none;\"><a id=\"playst_" + i.ToString() + "\" onClick=\"pauseAndStart('" + i.ToString() + "')\">暂停</a>|<a onClick=\"drawOver()\">完成</a></p></td>"); sb.AppendFormat("</tr>"); ++i; } } else { sb.AppendFormat("<tr>"); sb.AppendFormat("<td colspan=\"2\">暂无历史轨迹</td>"); sb.AppendFormat("</tr>"); } sb.AppendFormat("</tbody>"); sb.AppendFormat("</table>"); ms = new Message(true, sb.ToString(), ""); return(Json(ms)); }
/// <summary> /// 判断护林员当前是否在线 /// </summary> /// <example> /// 传递参数: /// sw.USERID 护林员ID列表,多用户以逗号分隔 /// sw.SearchTime 查询时间,空默认取当前时间 /// sw.ORGNO 组织机构编码,非空取该组织机构下的所有护林员 /// </example> /// <param name="sw">参见模型</param> /// <returns>参见模型</returns> public static DataTable getOnLineDtByOrgno(T_IPS_REALDATATEMPORARYSW sw) { StringBuilder sb = new StringBuilder(); sb.AppendFormat(" SELECT a.BYORGNO,a.HNAME,a.PHONE,a.ONSTATE,a.HID,b.SBTIME,b.ISOUTRAIL"); sb.AppendFormat(" FROM T_IPSFR_USER a left outer join T_IPS_REALDATATEMPORARY b on a.HID=b.USERID"); sb.AppendFormat(" where a.ISENABLE=1");//护林员启用状态 if (string.IsNullOrEmpty(sw.USERID) == false) { sb.AppendFormat(" and a.HID in({0})", sw.USERID); } if (string.IsNullOrEmpty(sw.SearchTime)) { sb.AppendFormat(" and DATEDIFF(mi,SBTIME,'{1}') <= '{0}' ", ConfigCls.inLineTimeInterval().ToString(), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); } else { sb.AppendFormat(" and DATEDIFF(mi,SBTIME,'{1}') >= '{0}'", ConfigCls.inLineTimeInterval().ToString(), sw.SearchTime); } if (string.IsNullOrEmpty(sw.ORGNO) == false) { if (PublicCls.OrgIsShi(sw.ORGNO)) { sb.AppendFormat(" and a.BYORGNO like'{0}%'", PublicCls.getShiIncOrgNo(sw.ORGNO)); } else if (PublicCls.OrgIsXian(sw.ORGNO)) { sb.AppendFormat(" and a.BYORGNO like '{0}%'", PublicCls.getXianIncOrgNo(sw.ORGNO)); } else if (PublicCls.OrgIsZhen(sw.ORGNO)) { sb.AppendFormat(" and a.BYORGNO like '{0}%'", PublicCls.getZhenIncOrgNo(sw.ORGNO)); } else if (PublicCls.OrgIsCun(sw.ORGNO)) { sb.AppendFormat(" and a.BYORGNO like '{0}'", PublicCls.getCunIncOrgNo(sw.ORGNO)); } } if (string.IsNullOrEmpty(sw.PhoneHname) == false) { sb.AppendFormat(" AND (a.PHONE like '%{0}%' or a.HNAME like '%{0}%')", ClsSql.EncodeSql(sw.PhoneHname)); } return(DataBaseClass.FullDataSet(sb.ToString()).Tables[0]); }
/// <summary> /// 巡查监控实时InfoWindows /// </summary> /// <example> /// sw.SearchTime 查询日期,某日的 /// sw.ORGNO 机构编码 /// sw.USERID 护林员序号(多序号以逗号分隔) /// </example> /// <param name="sw">参见条件模型T_IPS_REALDATATEMPORARYSW</param> /// <returns>参见模型T_IPS_REALDATATEMPORARYModel</returns> public static IEnumerable <T_IPS_REALDATATEMPORARYModel> getHRUserModelList(T_IPS_REALDATATEMPORARYSW sw) { var result = new List <T_IPS_REALDATATEMPORARYModel>(); 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", BYORGNO = sw.ORGNO, HID = sw.USERID }); //获取所有有权限查看的护林员 DataTable dt = BaseDT.T_IPS_REALDATATEMPORARY.getDT(sw); for (int i = 0; i < dt.Rows.Count; i++) { T_IPS_REALDATATEMPORARYModel m = new T_IPS_REALDATATEMPORARYModel(); m.USERID = dt.Rows[i]["USERID"].ToString(); m.LONGITUDE = dt.Rows[i]["LONGITUDE"].ToString(); m.LATITUDE = dt.Rows[i]["LATITUDE"].ToString(); 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)) { m.SBTIME = PublicClassLibrary.ClsSwitch.SwitTM(m.SBTIME); } m.NOTE = dt.Rows[i]["NOTE"].ToString(); m.SBDATE = dt.Rows[i]["SBDATE"].ToString(); m.SBTIMEBEGIN = dt.Rows[i]["SBTIMEBEGIN"].ToString(); m.PATROLLENGTH = dt.Rows[i]["PATROLLENGTH"].ToString(); DataRow[] drFRUser = dtFRUser.Select("HID=" + m.USERID); if (drFRUser.Length > 0) { m.HNAME = drFRUser[0]["HNAME"].ToString(); m.PHONE = drFRUser[0]["PHONE"].ToString(); m.ORGNO = drFRUser[0]["BYORGNO"].ToString(); m.ORGNAME = BaseDT.T_SYS_ORG.getName(dtOrg, m.ORGNO); } result.Add(m); } return(result); }
/// <summary> /// 获取临时表列表 /// <example> /// 获取历史轨迹传递参数: /// 用户ID列表(sw.USERID逗号分隔) /// 开始日期(sw.DateBegin年月日) /// 结束日期(sw.DateEnd年月日) /// /// /// 获取某日最新坐标: /// 用户ID列表(为空代表获取所有) /// 查询日期(sw.SearchTime 年月日) /// 组织机构编码(sw.ORGNO 获取该组织机构下所有的护林员) /// </example> /// </summary> /// <param name="sw">参见条件模型T_IPS_REALDATATEMPORARYSW</param> /// <returns>参见模型T_IPS_REALDATATEMPORARYModel</returns> public static IEnumerable <T_IPS_REALDATATEMPORARYModel> getModelList(T_IPS_REALDATATEMPORARYSW sw) { var result = new List <T_IPS_REALDATATEMPORARYModel>(); DataTable dt = BaseDT.T_IPS_REALDATATEMPORARY.getDT(sw); for (int i = 0; i < dt.Rows.Count; i++) { T_IPS_REALDATATEMPORARYModel m = new T_IPS_REALDATATEMPORARYModel(); //m.REALDATAID = dt.Rows[i]["REALDATAID"].ToString(); m.USERID = dt.Rows[i]["USERID"].ToString(); m.LONGITUDE = dt.Rows[i]["LONGITUDE"].ToString(); m.LATITUDE = dt.Rows[i]["LATITUDE"].ToString(); m.ORILONGITUDE = dt.Rows[i]["LONGITUDE"].ToString(); //原始经度 m.ORILATITUDE = 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(); m.ORGNO = dt.Rows[i]["ORGNO"].ToString(); m.SBDATE = dt.Rows[i]["SBDATE"].ToString(); if (string.IsNullOrEmpty(m.SBDATE) == false) { m.SBDATE = PublicClassLibrary.ClsSwitch.SwitDate(m.SBDATE); } m.SBTIMEBEGIN = dt.Rows[i]["SBTIMEBEGIN"].ToString(); m.PATROLLENGTH = dt.Rows[i]["PATROLLENGTH"].ToString(); result.Add(m); } return(result); }
/// <summary> /// 护林员信息 /// </summary> /// <returns></returns> public ActionResult HuserInfoIndex() { string hid = Request.Params["hid"]; ViewBag.hid = hid; if (string.IsNullOrEmpty(hid)) { return(Content("护林员id传输错误")); } //获取最新护林员当前坐标点 var sw = new T_IPS_REALDATATEMPORARYSW(); sw.USERID = hid; var model = T_IPS_REALDATATEMPORARYCls.getTopOneModelList(sw).FirstOrDefault(); CookieModel cookieInfo1 = SystemCls.getCookieInfo(); ViewBag.LAYERID = T_SYS_LAYERCls.getLayerHuLinYuanLAYERID(new T_SYS_LAYER_SW { USERID = cookieInfo1.UID }); return(View(model)); }
/// <summary> /// 获取各护林员最新数据 /// </summary> /// <returns>参见模型</returns> public static DataTable getDT(T_IPS_REALDATATEMPORARYSW sw) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("SELECT REALDATAID, USERID, LONGITUDE, LATITUDE, HEIGHT, ELECTRIC, SPEED, DIRECTION, SBTIME, NOTE,ORGNO, SBDATE, SBTIMEBEGIN, PATROLLENGTH"); sb.AppendFormat(" FROM T_IPS_REALDATATEMPORARY "); //sb.AppendFormat(" SELECT a.BYORGNO,a.HNAME,a.PHONE,a.HID,b.SBTIME"); //sb.AppendFormat(" FROM T_IPSFR_USER a left outer join T_IPS_REALDATATEMPORARY b on a.HID=b.USERID"); sb.AppendFormat(" WHERE 1=1"); if (string.IsNullOrEmpty(sw.USERID) == false) { sb.AppendFormat(" and USERID in({0})", sw.USERID); } if (string.IsNullOrEmpty(sw.SearchTime) == false)//查询某一天的数据 { sb.AppendFormat(" and SBDATE = '{0}'", Convert.ToDateTime(sw.SearchTime).ToString("yyyy-MM-dd")); } if (string.IsNullOrEmpty(sw.DateBegin) == false) { sb.AppendFormat(" and SBDATE >= '{0}'", sw.DateBegin); } if (string.IsNullOrEmpty(sw.DateEnd) == false) { sb.AppendFormat(" and SBDATE <= '{0}'", sw.DateEnd); } if (!string.IsNullOrEmpty(sw.ORGNO)) { sb.AppendFormat(" AND USERID in (select HID from T_IPSFR_USER where BYORGNO ='{0}')", sw.ORGNO); } sb.AppendFormat(" ORDER BY SBDATE,SBTIME desc"); DataSet ds = DataBaseClass.FullDataSet(sb.ToString()); return(ds.Tables[0]); }
/// <summary> /// 护林员定位 获取护林员最新一条位置信息 /// </summary> /// <param name="sw">参见模型</param> /// <returns>DataTable</returns> public static DataTable getTopOneDT(T_IPS_REALDATATEMPORARYSW sw) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("select REALDATAID, USERID, LONGITUDE, LATITUDE, HEIGHT, ELECTRIC, SPEED, DIRECTION, SBTIME, NOTE, "); sb.AppendFormat(" ORGNO, SBDATE, SBTIMEBEGIN, PATROLLENGTH, ISOUTRAIL"); sb.AppendFormat(" from T_IPS_REALDATATEMPORARY t "); sb.AppendFormat(" where 1=1 "); if (string.IsNullOrEmpty(sw.USERID) == false) { sb.AppendFormat(" AND t.USERID in({0})", sw.USERID); } sb.AppendFormat(" AND REALDATAID= (select top 1 REALDATAID from T_IPS_REALDATATEMPORARY where USERID = t.USERID order by SBDATE desc)"); if (!string.IsNullOrEmpty(sw.ORGNO) && PublicCls.OrgIsZhen(sw.ORGNO.Trim())) { sb.AppendFormat(" AND USERID in (select HID from T_IPSFR_USER where BYORGNO ='{0}')", sw.ORGNO.Trim()); } DataSet ds = DataBaseClass.FullDataSet(sb.ToString()); return(ds.Tables[0]); }
/// <summary> /// 护林员与数据上传中间表组合查询 /// </summary> /// <param name="sw">参见模型</param> /// <returns>参见模型</returns> public static DataTable getHRAndRealDataDT(T_IPS_REALDATATEMPORARYSW sw) { StringBuilder sb = new StringBuilder(); sb.AppendFormat(" SELECT a.BYORGNO,a.HNAME,a.HID,a.PHONE,b.USERID, b.SBDATE,(b.PATROLLENGTH-a.PATROLLENGTH/1000) as PatrolLenError,a.PATROLLENGTH/1000,b.PATROLLENGTH as RealPATROLLENGTH"); sb.AppendFormat(" FROM T_IPSFR_USER a left outer join T_IPS_REALDATATEMPORARY b on a.HID=b.USERID"); sb.AppendFormat(" where a.ISENABLE=1 and b.USERID is not null");//护林员启用状态 if (string.IsNullOrEmpty(sw.DateBegin) == false) { sb.AppendFormat(" and SBDATE >= '{0}'", sw.DateBegin); } if (string.IsNullOrEmpty(sw.DateEnd) == false) { sb.AppendFormat(" and SBDATE <= '{0}'", sw.DateEnd); } if (string.IsNullOrEmpty(sw.ORGNO) == false) { if (PublicCls.OrgIsShi(sw.ORGNO)) { sb.AppendFormat(" and a.BYORGNO like'{0}%'", PublicCls.getShiIncOrgNo(sw.ORGNO)); } else if (PublicCls.OrgIsXian(sw.ORGNO)) { sb.AppendFormat(" and a.BYORGNO like '{0}%'", PublicCls.getXianIncOrgNo(sw.ORGNO)); } else { sb.AppendFormat(" and a.BYORGNO = '{0}'", PublicCls.getZhenIncOrgNo(sw.ORGNO)); } } if (string.IsNullOrEmpty(sw.PhoneHname) == false) { sb.AppendFormat(" AND (a.PHONE like '%{0}%' or a.HNAME like '%{0}%')", ClsSql.EncodeSql(sw.PhoneHname)); } return(DataBaseClass.FullDataSet(sb.ToString()).Tables[0]); }
/// <summary> /// 实时点名Html /// </summary> /// <param name="uid"></param> /// <returns></returns> public JsonResult GetRealCallAjax(string uid) { 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("<th> <i class=\"icon-time bigger-110 hidden-480\"></i>点名时间</th>"); sb.AppendFormat("<th>状态</th>"); sb.AppendFormat("</tr></thead>"); sb.AppendFormat("<tbody>"); Message ms = null; int FRUserCount = 0; int FRUserOnLineCount = 0; if (string.IsNullOrEmpty(uid)) { ms = new Message(false, "", ""); return(Json(ms)); } var sw = new T_IPS_REALDATATEMPORARYSW(); sw.USERID = uid; var list = T_IPS_REALDATATEMPORARYCls.getFROnLineByUID(sw, out FRUserCount, out FRUserOnLineCount); if (list.Any()) { 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.ONSTATENAME); if (item.isOnLine == "1") { sb.AppendFormat("<td><span class=\"label label-sm label-success\">在线</span></td>"); } else { sb.AppendFormat("<td><span class=\"label label-sm label-grey\">离线</span></td>"); } sb.AppendFormat("</tr>"); } } else { sb.AppendFormat("<tr>"); sb.AppendFormat("<td colspan=\"7\">暂无点名信息</td>"); sb.AppendFormat("</tr>"); } sb.AppendFormat("</tbody>"); sb.AppendFormat("</table>"); string str = "(" + FRUserOnLineCount.ToString() + "/" + FRUserCount.ToString() + ")"; ms = new Message(true, sb.ToString(), str); return(Json(ms)); }
/// <summary> /// 护林员定位 获取护林员最新一条位置信息 /// </summary> /// <param name="sw">传递护林员列表 参见条件模型T_IPS_REALDATATEMPORARYSW</param> /// <returns>参见模型T_IPS_REALDATATEMPORARYModel</returns> public static IEnumerable <T_IPS_REALDATATEMPORARYModel> getTopOneModelList(T_IPS_REALDATATEMPORARYSW sw) { var result = new List <T_IPS_REALDATATEMPORARYModel>(); DataTable dt = BaseDT.T_IPS_REALDATATEMPORARY.getTopOneDT(sw); 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.USERID }); //获取所有有权限查看的护林员 for (int i = 0; i < dt.Rows.Count; i++) { T_IPS_REALDATATEMPORARYModel m = new T_IPS_REALDATATEMPORARYModel(); //m.REALDATAID = dt.Rows[i]["REALDATAID"].ToString(); m.USERID = dt.Rows[i]["USERID"].ToString(); m.LONGITUDE = dt.Rows[i]["LONGITUDE"].ToString(); m.LATITUDE = dt.Rows[i]["LATITUDE"].ToString(); m.ORILONGITUDE = dt.Rows[i]["LONGITUDE"].ToString(); //原经度 m.ORILATITUDE = 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(); m.ORGNO = dt.Rows[i]["ORGNO"].ToString(); m.SBDATE = dt.Rows[i]["SBDATE"].ToString(); m.ISOUTRAIL = dt.Rows[i]["ISOUTRAIL"].ToString();//是否出围 if (string.IsNullOrEmpty(m.SBDATE) == false) { m.SBDATE = PublicClassLibrary.ClsSwitch.SwitDate(m.SBDATE); } m.SBTIMEBEGIN = dt.Rows[i]["SBTIMEBEGIN"].ToString(); m.PATROLLENGTH = dt.Rows[i]["PATROLLENGTH"].ToString(); DataRow[] drFRUser = dtFRUser.Select("HID=" + m.USERID); if (drFRUser.Length > 0) { m.HNAME = drFRUser[0]["HNAME"].ToString(); m.PHONE = drFRUser[0]["PHONE"].ToString(); m.ORGNO = drFRUser[0]["BYORGNO"].ToString(); m.ORGNAME = BaseDT.T_SYS_ORG.getName(dtOrg, m.ORGNO); } double intervalTime = ConfigCls.inLineTimeInterval(); var absTime = Math.Abs(ClsStr.getMinutesDiff(DateTime.Now, m.SBTIME)); m.HSTATE = absTime > intervalTime ? "0" : "1";//护林员在线状态 0 表示离线 1 表示在线 // //m.ISOUTRAIL result.Add(m); } dt.Clear(); dt.Dispose(); dtOrg.Clear(); dtOrg.Dispose(); dtFRUser.Clear(); dtFRUser.Dispose(); return(result); }
/// <summary> /// 根据护林员ID获取在线状态 ,用于点名| /// </summary> /// <param name="sw">参见条件模型T_IPS_REALDATATEMPORARYSW</param> /// <example> /// sw.USERID 用户序号(多用户以逗号分隔) /// sw.SearchTime 判断时间 可为空,为空默认为当前时间 /// </example> /// <param name="FRUserCount">总人数</param> /// <param name="FRUserOnLineCount">在线人数</param> /// <returns> /// m.HID 护林员序号 /// m.HNAME 姓名 /// m.PHONE 电话 /// m.BYORGNO 机构编码 /// m.ORGNAME 机构名称 /// m.isOnLine 在线状态 1在线 0离线 /// </returns> public static IEnumerable <T_IPSFR_USER_Model> getFROnLineByUID(T_IPS_REALDATATEMPORARYSW sw, out int FRUserCount, out int FRUserOnLineCount) { var result = new List <T_IPSFR_USER_Model>(); DataTable dtOrg = BaseDT.T_SYS_ORG.getDT(new T_SYS_ORGSW { SYSFLAG = ConfigCls.getSystemFlag() }); //获取当前登录用户有权限查看的组织机构 DataTable dtOnState = BaseDT.T_SYS_DICT.getDT(new T_SYS_DICTSW { DICTFLAG = "固兼职状态" }); DataTable dtFRUser = BaseDT.T_IPSFR_USER.getDT(new T_IPSFR_USER_SW { ISENABLE = "1", HID = sw.USERID }); //获取所有有权限查看的护林员 //当前在线的护林员 DataTable dtRealTmp = BaseDT.T_IPS_REALDATATEMPORARY.getOnLineDtByOrgno(new T_IPS_REALDATATEMPORARYSW { USERID = sw.USERID }); FRUserCount = dtFRUser.Rows.Count; FRUserOnLineCount = dtRealTmp.Rows.Count; //获取在线人员列表 for (int i = 0; i < dtRealTmp.Rows.Count; i++) {//HID, HNAME, SN, PHONE, SEX, BIRTH, ONSTATE, BYORGNO,ISENABLE,SBTIME T_IPSFR_USER_Model m = new T_IPSFR_USER_Model(); m.HID = dtRealTmp.Rows[i]["HID"].ToString(); m.HNAME = dtRealTmp.Rows[i]["HNAME"].ToString(); m.PHONE = dtRealTmp.Rows[i]["PHONE"].ToString(); m.BYORGNO = dtRealTmp.Rows[i]["BYORGNO"].ToString(); m.ORGNAME = BaseDT.T_SYS_ORG.getName(dtOrg, m.BYORGNO); m.ONSTATE = dtRealTmp.Rows[i]["ONSTATE"].ToString(); m.ONSTATENAME = BaseDT.T_SYS_DICT.getName(dtOnState, m.ONSTATE); m.SBTIME = dtRealTmp.Rows[i]["SBTIME"].ToString(); m.isOnLine = "1"; result.Add(m); } //获取非在线人员列表 for (int i = 0; i < dtFRUser.Rows.Count; i++) { //判断该用户是否是在线状态 if (dtRealTmp.Select("HID=" + dtFRUser.Rows[i]["HID"].ToString()).Length == 0) { T_IPSFR_USER_Model m = new T_IPSFR_USER_Model(); m.HID = dtFRUser.Rows[i]["HID"].ToString(); m.HNAME = dtFRUser.Rows[i]["HNAME"].ToString(); m.PHONE = dtFRUser.Rows[i]["PHONE"].ToString(); m.BYORGNO = dtFRUser.Rows[i]["BYORGNO"].ToString(); m.ORGNAME = BaseDT.T_SYS_ORG.getName(dtOrg, m.BYORGNO); m.ONSTATE = dtFRUser.Rows[i]["ONSTATE"].ToString(); m.ONSTATENAME = BaseDT.T_SYS_DICT.getName(dtOnState, m.ONSTATE); m.SBTIME = ""; m.isOnLine = "0"; result.Add(m); } } dtOnState.Clear(); dtOnState.Dispose(); dtOrg.Clear(); dtOrg.Dispose(); dtFRUser.Clear(); dtFRUser.Dispose(); dtRealTmp.Clear(); dtRealTmp.Dispose(); return(result); }