Exemplo n.º 1
0
        /// <summary>
        /// 获取一条记录
        /// </summary>
        /// <param name="sw">参见条件模型T_IPSFR_ROUTERAIL_SW</param>
        /// <returns>参见模型T_IPSFR_ROUTERAIL_Model</returns>
        public static T_IPSFR_ROUTERAIL_Model getModel(T_IPSFR_ROUTERAIL_SW sw)
        {
            DataTable dt = BaseDT.T_IPSFR_ROUTERAIL.getDT(sw);//列表

            T_IPSFR_ROUTERAIL_Model m = new T_IPSFR_ROUTERAIL_Model();
            int i = 0;

            m.ROADID    = dt.Rows[i]["ROADID"].ToString();
            m.HID       = dt.Rows[i]["HID"].ToString();
            m.LONGITUDE = dt.Rows[i]["LONGITUDE"].ToString();
            m.LATITUDE  = dt.Rows[i]["LATITUDE"].ToString();
            m.HEIGHT    = dt.Rows[i]["HEIGHT"].ToString();
            m.ORDERBY   = dt.Rows[i]["ORDERBY"].ToString();
            m.ROADTYPE  = dt.Rows[i]["ROADTYPE"].ToString();

            DataTable dtHRUser = BaseDT.T_IPSFR_USER.getDT(new T_IPSFR_USER_SW {
                HID = m.HID
            });

            if (dtHRUser.Rows.Count > 0)
            {
                m.HName = dtHRUser.Rows[0]["HNAME"].ToString();
                m.Phone = dtHRUser.Rows[0]["PHONE"].ToString();
            }
            dtHRUser.Clear();
            dtHRUser.Dispose();
            dt.Clear();
            dt.Dispose();
            return(m);
        }
Exemplo n.º 2
0
 /// <summary>
 /// 增、删、改
 /// </summary>
 /// <param name="m">参见模型T_IPSFR_ROUTERAIL_Model</param>
 /// <returns>参见模型Message</returns>
 public static Message Manager(T_IPSFR_ROUTERAIL_Model m)
 {
     if (m.opMethod == "Add")
     {
         SystemCls.LogSave("3", "护林员路线添加:" + m.HID, ClsStr.getModelContent(m));
         Message msg = BaseDT.T_IPSFR_ROUTERAIL.Add(m);
         return(new Message(msg.Success, msg.Msg, ""));
     }
     if (m.opMethod == "AddBatch")
     {
         SystemCls.LogSave("3", "护林员路线添加:" + m.HID, ClsStr.getModelContent(m));
         Message msg = BaseDT.T_IPSFR_ROUTERAIL.AddBatch(m);
         return(new Message(msg.Success, msg.Msg, ""));
     }
     if (m.opMethod == "Mdy")
     {
         SystemCls.LogSave("4", "护林员路线修改:" + m.HID, ClsStr.getModelContent(m));
         Message msg = BaseDT.T_IPSFR_ROUTERAIL.Mdy(m);
         return(new Message(msg.Success, msg.Msg, ""));
     }
     if (m.opMethod == "Del")
     {
         SystemCls.LogSave("5", "护林员路线删除:" + m.HID, ClsStr.getModelContent(m));
         Message msg = BaseDT.T_IPSFR_ROUTERAIL.Del(m);
         return(new Message(msg.Success, msg.Msg, ""));
     }
     if (m.opMethod == "DelBatch")
     {
         SystemCls.LogSave("5", "护林员路线删除:" + m.HID, ClsStr.getModelContent(m));
         Message msg = BaseDT.T_IPSFR_ROUTERAIL.DelBatch(m);
         return(new Message(msg.Success, msg.Msg, ""));
     }
     return(new Message(false, "无效操作", ""));
 }
Exemplo n.º 3
0
        /// <summary>
        /// 获取数据列表
        /// </summary>
        /// <param name="sw">参见条件模型T_IPSFR_ROUTERAIL_SW</param>
        /// <returns>参见模型</returns>
        public static IEnumerable <T_IPSFR_ROUTERAIL_Model> getModelList(T_IPSFR_ROUTERAIL_SW sw)
        {
            DataTable dt     = BaseDT.T_IPSFR_ROUTERAIL.getDT(sw);//列表
            var       result = new List <T_IPSFR_ROUTERAIL_Model>();

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                T_IPSFR_ROUTERAIL_Model m = new T_IPSFR_ROUTERAIL_Model();
                m.ROADID     = dt.Rows[i]["ROADID"].ToString();
                m.HID        = dt.Rows[i]["HID"].ToString();
                m.LONGITUDE  = dt.Rows[i]["LONGITUDE"].ToString();
                m.LATITUDE   = dt.Rows[i]["LATITUDE"].ToString();
                m.HEIGHT     = dt.Rows[i]["HEIGHT"].ToString();
                m.ORDERBY    = dt.Rows[i]["ORDERBY"].ToString();
                m.ROADTYPE   = dt.Rows[i]["ROADTYPE"].ToString();
                m.LINEARAEID = dt.Rows[i]["LINEARAEID"].ToString();
                result.Add(m);
            }
            dt.Clear();
            dt.Dispose();
            return(result);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 转换为护林员巡检线和责任区
        /// </summary>
        /// <returns></returns>
        public JsonResult ConvertHlyLineArea()
        {
            Message msg   = new Message(false, "转化失败!", "");
            string  cid   = Request.Params["cid"];   //采集id
            string  hid   = Request.Params["hid"];   //护林员id
            string  htype = Request.Params["htype"]; //护林员转换类型 0 表是线 1 表示面
            var     sw    = new T_IPSCOL_COLLECT_SW();

            sw.COLLECTID = cid;
            var list = T_IPSCOL_COLLECTCls.getDetailModelList(sw);

            if (list.Any())
            {
                string pointstr = string.Empty;
                int    j        = 0;
                string str      = string.Empty;
                foreach (var item in list)
                {
                    if (htype == "1")//面 特殊处理
                    {
                        if (j == 0)
                        {
                            str = item.LONGITUDE + "," + item.LATITUDE + "|";
                        }
                    }
                    //pointstr += item.ORILONGITUDE + "," + item.ORILATITUDE + ",,|";
                    pointstr += item.LONGITUDE + "," + item.LATITUDE + "|";
                    j++;
                }
                pointstr += str;
                var m = new T_IPSFR_ROUTERAIL_Model();//巡检线和责任区
                m.HID             = hid;
                m.longitLatitList = pointstr;
                m.longitLatitList = m.longitLatitList.Replace("|", ", , |");
                m.longitLatitList = m.longitLatitList + ";";
                m.opMethod        = "AddBatch";
                m.ROADTYPE        = htype;
                var ms = T_IPSFR_ROUTERAILCls.Manager(m);
                if (ms.Success)
                {
                    string jd      = "";
                    string wd      = "";
                    string line    = "";
                    string polygon = "";
                    //入三维空间库
                    #region 责任线
                    if (htype == "0")
                    {
                        m.longitLatitList = m.longitLatitList.Substring(0, m.longitLatitList.LastIndexOf(";"));
                        m.longitLatitList = m.longitLatitList.Replace(",,", "");
                        if (!string.IsNullOrEmpty(m.longitLatitList))
                        {
                            var result = T_IPSFR_USERCls.getListModel(new T_IPSFR_USER_SW {
                                HID = hid
                            }).FirstOrDefault();               //获取护林员信息
                            var m1 = new TD_DUTYROUTE_Model(); //三维责任路线模型
                            m1.opMethod  = m.opMethod;
                            m1.NAME      = result.HNAME;
                            m1.OBJECTID  = result.HID;
                            m1.ORGNAME   = result.ORGNAME;
                            m1.TELEPHONE = result.PHONE;
                            string[] arr = m.longitLatitList.Split('|');
                            for (int i = 0; i < arr.Length; i++)
                            {
                                if (!string.IsNullOrEmpty(arr[i]))
                                {
                                    string[] brr = arr[i].Split(',');
                                    double[] drr = ClsPositionTrans.GpsTransform(double.Parse(brr[1]), double.Parse(brr[0]), ConfigCls.getSDELonLatTransform());//坐标系转换
                                    wd = drr[0].ToString();
                                    jd = drr[1].ToString();
                                }
                                if (i == arr.Length - 1)//最后一条记录
                                {
                                    line += jd + " " + wd;
                                }
                                else
                                {
                                    line += jd + " " + wd + ",";
                                }
                            }
                            #region 中心点获取
                            if (arr.Length % 2 == 0)
                            {
                                string[] crr = arr[arr.Length / 2].Split(',');
                                double[] drr = ClsPositionTrans.GpsTransform(double.Parse(crr[1]), double.Parse(crr[0]), ConfigCls.getSDELonLatTransform());
                                m1.DISPLAY_X = drr[1].ToString();
                                m1.DISPLAY_Y = drr[0].ToString();
                            }
                            else
                            {
                                string[] crr = arr[(arr.Length + 1) / 2].Split(',');
                                double[] drr = ClsPositionTrans.GpsTransform(double.Parse(crr[1]), double.Parse(crr[0]), ConfigCls.getSDELonLatTransform());//中心点偏移
                                m1.DISPLAY_X = drr[1].ToString();
                                m1.DISPLAY_Y = drr[0].ToString();
                            }
                            #endregion
                            m1.Shape = "geometry::STGeomFromText('LINESTRING(" + line + ")',4326).MakeValid()";
                            DC_DUTYROUTECls.Manager(m1);
                        }
                    }
                    #endregion

                    #region 责任面
                    else
                    {
                        m.longitLatitList = m.longitLatitList.Substring(0, m.longitLatitList.LastIndexOf(";"));
                        m.longitLatitList = m.longitLatitList.Replace(",,", "");
                        if (!string.IsNullOrEmpty(m.longitLatitList))
                        {
                            var result = T_IPSFR_USERCls.getListModel(new T_IPSFR_USER_SW {
                                HID = hid
                            }).FirstOrDefault();              //获取护林员信息
                            var m2 = new TD_DUTYAREA_Model(); //三维责任区模型
                            m2.opMethod  = m.opMethod;
                            m2.NAME      = result.HNAME;
                            m2.OBJECTID  = result.HID;
                            m2.ORGNAME   = result.ORGNAME;
                            m2.TELEPHONE = result.PHONE;
                            string[] arr = m.longitLatitList.Split('|');
                            for (int i = 0; i < arr.Length; i++)
                            {
                                if (!string.IsNullOrEmpty(arr[i]))
                                {
                                    string[] brr = arr[i].Split(',');
                                    double[] drr = ClsPositionTrans.GpsTransform(double.Parse(brr[1]), double.Parse(brr[0]), ConfigCls.getSDELonLatTransform());//坐标系转换
                                    wd = drr[0].ToString();
                                    jd = drr[1].ToString();
                                }
                                if (i == arr.Length - 1)//最后一条记录
                                {
                                    polygon += jd + " " + wd;
                                }
                                else
                                {
                                    polygon += jd + " " + wd + ",";
                                }
                            }
                            #region 中心点获取
                            if (arr.Length % 2 == 0)
                            {
                                string[] crr = arr[arr.Length / 2].Split(',');
                                double[] drr = ClsPositionTrans.GpsTransform(double.Parse(crr[1]), double.Parse(crr[0]), ConfigCls.getSDELonLatTransform());
                                m2.DISPLAY_X = drr[1].ToString();
                                m2.DISPLAY_Y = drr[0].ToString();
                            }
                            else
                            {
                                string[] crr = arr[(arr.Length + 1) / 2].Split(',');
                                double[] drr = ClsPositionTrans.GpsTransform(double.Parse(crr[1]), double.Parse(crr[0]), ConfigCls.getSDELonLatTransform());//中心点偏移
                                m2.DISPLAY_X = drr[1].ToString();
                                m2.DISPLAY_Y = drr[0].ToString();
                            }
                            #endregion
                            m2.Shape = "geometry::STGeomFromText('Polygon((" + polygon + "))',4326).MakeValid()";
                            DC_DUTYAREACls.Manager(m2);
                        }
                    }
                    msg = new Message(true, "转换成功!", "");
                    #endregion
                }
            }
            return(Json(msg));
        }