コード例 #1
0
        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));
        }
コード例 #2
0
        /// <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));
        }
コード例 #3
0
        /// <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]);
        }
コード例 #4
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);
        }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
        /// <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));
        }
コード例 #7
0
        /// <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]);
        }
コード例 #8
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]);
        }
コード例 #9
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]);
        }
コード例 #10
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));
        }
コード例 #11
0
        /// <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);
        }
コード例 #12
0
        /// <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);
        }