/// <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); }
/// <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, "无效操作", "")); }
/// <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); }
/// <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)); }