public static Location.TModel.Location.AreaAndDev.PhysicalTopology ToTModel( this DbModel.Location.AreaAndDev.Area item1) { if (item1 == null) { return(null); } var item2 = new Location.TModel.Location.AreaAndDev.PhysicalTopology(); item2.Id = item1.Id; item2.Name = item1.Name; item2.ParentId = item1.ParentId; //item2.Parent = item1.Parent; item2.Number = item1.Number; item2.Type = item1.Type; item2.Describe = item1.Describe; //item2.Tag = item1.Tag; item2.Children = item1.Children.ToTModel(); item2.LeafNodes = item1.LeafNodes.ToTModel(); item2.KKS = item1.KKS; item2.TransfromId = item1.Id; item2.Transfrom = item1.GetTransformM().ToTModel(); item2.InitBoundId = item1.InitBoundId; item2.InitBound = item1.InitBound.ToTModel(); item2.EditBoundId = item1.EditBoundId; //item2.EditBound = item1.EditBound.ToTModel();//这个没用 不用传递 item2.IsRelative = item1.IsRelative; item2.IsCreateAreaByData = item1.IsCreateAreaByData; item2.IsOnAlarmArea = item1.IsOnAlarmArea; item2.IsOnLocationArea = item1.IsOnLocationArea; return(item2); }
public IList<AEntity> GetAreaTreeByRole(string role) { int roleId = role.ToInt(); IList<AEntity> list = new List<AEntity>(); var query = from t1 in db.AreaAuthorizationRecords.DbSet join t2 in db.Areas.DbSet on t1.AreaId equals t2.Id where t1.CardRoleId == roleId select t2; List<AEntity> alist = query.ToList(); List<AEntity> alist2 = query.ToList(); List<AEntity> ResultList = new List<AEntity>(); foreach (AEntity item in alist) { AEntity item2 = alist2.Find(p=>p.Id == item.ParentId); if (item2 == null) { ResultList.Add(item.Clone()); } } CreateAreaTree(ref alist2, ref ResultList); foreach (AEntity item in ResultList) { list.Add(item); } return list; }
public static DbModel.Location.AreaAndDev.Area ToDbModel( this Location.TModel.Location.AreaAndDev.PhysicalTopology item1) { if (item1 == null) { return(null); } var item2 = new DbModel.Location.AreaAndDev.Area(); item2.Id = item1.Id; //item2.Abutment_Id = item1.Abutment_Id; item2.Name = item1.Name; item2.KKS = item1.KKS; item2.ParentId = item1.ParentId; //item2.Abutment_ParentId = item1.Abutment_ParentId; //item2.X = item1.X; //item2.Y = item1.Y; //item2.Z = item1.Z; //item2.RX = item1.RX; //item2.RY = item1.RY; //item2.RZ = item1.RZ; //item2.SX = item1.SX; //item2.SY = item1.SY; //item2.SZ = item1.SZ; //item2.IsRelative = item1.IsRelative; //item2.IsOnNormalArea = item1.IsOnNormalArea; //item2.IsOnAlarmArea = item1.IsOnAlarmArea; //item2.IsOnLocationArea = item1.IsOnLocationArea; item2.SetTransform(item1.Transfrom.ToDbModel()); item2.Number = item1.Number; item2.Type = item1.Type; item2.Describe = item1.Describe; item2.Children = item1.Children.ToDbModel(); item2.LeafNodes = item1.LeafNodes.ToDbModel(); item2.InitBoundId = item1.InitBoundId; item2.InitBound = item1.InitBound.ToDbModel(); item2.EditBoundId = item1.EditBoundId; item2.EditBound = item1.EditBound.ToDbModel(); item2.IsRelative = item1.IsRelative; item2.IsCreateAreaByData = item1.IsCreateAreaByData; item2.IsOnAlarmArea = item1.IsOnAlarmArea; item2.IsOnLocationArea = item1.IsOnLocationArea; item2.IsDynamicArea = item1.IsDynamicArea; item2.ModelName = item1.ModelName; return(item2); }
public static AreaNode ToTModelS( this DbModel.Location.AreaAndDev.Area item1) { if (item1 == null) { return(null); } var item2 = new AreaNode(); item2.Id = item1.Id; item2.Name = item1.Name; item2.ParentId = item1.ParentId; //item2.Parent = item1.Parent; item2.Type = item1.Type; item2.Children = item1.Children.ToTModelS(); item2.LeafNodes = item1.LeafNodes.ToTModelS(); item2.KKS = item1.KKS; return(item2); }
public void SendPositionMsg(List <DbModel.LocationHistory.Data.Position> Info) { string strSendInfo = ""; foreach (DbModel.LocationHistory.Data.Position item in Info) { position SendInfo = new position(); if (item.Code == "" || item.AreaId == null) { continue; } SendInfo.deviceCode = item.Code; SendInfo.t = item.DateTimeStamp; SendInfo.x = item.X; SendInfo.y = item.Z; SendInfo.z = item.Y; SendInfo.staffCode = null; if (item.PersonnelID != null) { DbModel.Location.Person.Personnel ps = bll.Personnels.DbSet.Where(p => p.Id == item.PersonnelID).FirstOrDefault(); SendInfo.staffCode = Convert.ToString(ps.WorkNumber); } DbModel.Location.AreaAndDev.Area ae = bll.Areas.DbSet.Where(p => p.Id == item.AreaId).FirstOrDefault(); SendInfo.zoneKksCode = ae.KKS; string strJson = JsonConvert.SerializeObject(SendInfo); producer.Publish("position", strJson); //producer.Publish("http://127.0.0.1:4151/pub?topic=position", strJson); strSendInfo = ""; } return; }
public bool EditArchor(Archor Archor, int ParentId) { bool bReturn = false; DbModel.Location.AreaAndDev.Archor Archor2; Archor2 = db.Archors.FirstOrDefault(p => p.Code == Archor.Code); if (Archor2 == null) { Archor2 = db.Archors.FirstOrDefault(p => p.DevInfoId == Archor.DevInfoId); } if (Archor2 == null) { LocationService service = new LocationService(); DbModel.Location.AreaAndDev.Area area = service.GetAreaById(ParentId); Archor2 = Archor.ToDbModel(); DbModel.Location.AreaAndDev.DevInfo dev = new DbModel.Location.AreaAndDev.DevInfo(); dev.Local_DevID = Guid.NewGuid().ToString(); dev.IP = ""; dev.KKS = ""; dev.Name = Archor2.Name; if (area != null) { dev.ModelName = area.Name == DepNames.FactoryName ? TypeNames.ArchorOutdoor : TypeNames.Archor;//室外基站||室内基站 } else { dev.ModelName = TypeNames.Archor; } dev.Status = 0; dev.ParentId = ParentId; dev.Local_TypeCode = TypeCodes.Archor; dev.UserName = "******"; Archor2.DevInfo = dev; Archor2.ParentId = ParentId; bReturn = db.Archors.Add(Archor2); } else { Archor2.Name = Archor.Name; Archor2.X = Archor.X; Archor2.Y = Archor.Y; Archor2.Z = Archor.Z; Archor2.Type = Archor.Type; Archor2.IsAutoIp = Archor.IsAutoIp; Archor2.Ip = Archor.Ip; Archor2.ServerIp = Archor.ServerIp; Archor2.ServerPort = Archor.ServerPort; Archor2.Power = Archor.Power; Archor2.AliveTime = Archor.AliveTime; Archor2.Enable = Archor.Enable; if (!string.IsNullOrEmpty(Archor.Code)) { Archor2.Code = Archor.Code; } bReturn = db.Archors.Edit(Archor2); } EditBusAnchor(Archor, ParentId); return(bReturn); }
public List <NearbyDev> GetNearbyDev_Currency(int id, float fDis, int nFlag) { List <NearbyDev> lst = new List <NearbyDev>(); List <NearbyDev> lst2 = new List <NearbyDev>(); DbModel.Location.Data.LocationCardPosition lcp = db.LocationCardPositions.DbSet.Where(p => p.PersonId == id).FirstOrDefault(); if (lcp == null || lcp.AreaId == null) { return(lst); } int?AreadId = lcp.AreaId; float PosX = lcp.X; float PosY = lcp.Y; float PosZ = lcp.Z; float PosX2 = 0; float PosY2 = 0; float PosZ2 = 0; float sqrtDistance = 0; float Distance = 0; //根据区域ID和标志位获取摄像头 GetCameraDevByAreaId(AreadId, nFlag, lst2); if (lst2.Count <= 0) { DbModel.Location.AreaAndDev.Area area = db.Areas.Find(p => p.Id == AreadId); GetCameraDevByAreaId(area.ParentId, nFlag, lst2); } //var query = from t1 in db.DevInfos.DbSet // join t2 in db.DevTypes.DbSet on t1.Local_TypeCode equals t2.TypeCode // join t3 in db.Areas.DbSet on t1.ParentId equals t3.Id // where t1.ParentId == AreadId && (nFlag == 0 ? true : (t1.Local_TypeCode == 3000201 || t1.Local_TypeCode == 14 || t1.Local_TypeCode == 3000610 || t1.Local_TypeCode == 1000102)) // select new NearbyDev { id = t1.Id, Name = t1.Name, TypeCode = t1.Local_TypeCode, TypeName = t2.TypeName, Area = t3.Name, X = t1.PosX, Y = t1.PosY, Z = t1.PosZ }; //if (query != null) //{ // lst2 = query.ToList(); //} var areas = db.Areas.ToDictionary(); var bounds = db.Bounds.ToDictionary(); foreach (var item in areas) { var area = item.Value; if (area.InitBoundId != null) { area.InitBound = bounds[(int)area.InitBoundId]; } } foreach (NearbyDev item in lst2) { float x = item.X; float y = item.Y; float z = item.Z; if (areas.ContainsKey(item.AreaId)) { var area = areas[item.AreaId];//所在区域 if (area.Type == AreaTypes.机房) { var floor = areas[(int)area.ParentId]; var building = areas[(int)floor.ParentId];// var minX = area.InitBound.GetZeroX() + floor.InitBound.GetZeroX() + building.InitBound.GetZeroX(); var minY = area.InitBound.GetZeroY() + floor.InitBound.GetZeroY() + building.InitBound.GetZeroY(); x += minX; z += minY; } else if (area.Type == AreaTypes.楼层) { var floor = area; var building = areas[(int)floor.ParentId];// var minX = floor.InitBound.GetZeroX() + building.InitBound.GetZeroX(); var minY = floor.InitBound.GetZeroY() + building.InitBound.GetZeroY(); x += minX; z += minY; } } PosX2 = x - PosX; PosY2 = y - PosY; PosZ2 = z - PosZ; sqrtDistance = PosX2 * PosX2 + PosY2 * PosY2 + PosZ2 * PosZ2; Distance = (float)System.Math.Sqrt(sqrtDistance); item.Distance = Distance; if (Distance <= fDis) { NearbyDev item2 = item.Clone(); if (item2 != null) { item2.X = PosX2; item2.Y = PosY2; item2.Z = PosZ2; lst.Add(item2); } } PosX2 = 0; PosY2 = 0; PosZ2 = 0; sqrtDistance = 0; Distance = 0; } lst.Sort(new DevDistanceCompare()); if (lst.Count == 0) { lst = null; } return(lst); }