예제 #1
0
        public TEntity Post(TEntity item)
        {
            var dbItem = item.ToDbModel();

            if (item.DevInfoId == 0)
            {
                var dev = new DbModel.Location.AreaAndDev.DevInfo();
                dev.Name           = item.Name;
                dev.ParentId       = item.ParentId;
                dev.Local_DevID    = Guid.NewGuid().ToString();
                dev.Local_TypeCode = 20180821;
                dev.ModelName      = "定位设备1_3D";
                dev.UserName       = "******";
                dev.IP             = "";
                bool r1 = db.DevInfos.Add(dev);//创建基站前先创建设备
                if (r1)
                {
                    dbItem.DevInfo   = dev;
                    dbItem.DevInfoId = dev.Id;
                    var result = dbSet.Add(dbItem);
                    return(result ? dbItem.ToTModel(true) : null);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                var result = dbSet.Add(dbItem);
                return(result ? dbItem.ToTModel() : null);
            }
        }
예제 #2
0
        public static Location.TModel.Location.AreaAndDev.DevInfo ToTModel(
            this DbModel.Location.AreaAndDev.DevInfo item1, bool haveParent = false)
        {
            if (item1 == null)
            {
                return(null);
            }
            var item2 = new Location.TModel.Location.AreaAndDev.DevInfo();

            item2.Id              = item1.Id;
            item2.Name            = item1.Name;
            item2.ParentId        = item1.ParentId;
            item2.Code            = item1.Code;
            item2.KKSCode         = item1.KKS;
            item2.DevID           = item1.Local_DevID;
            item2.Local_CabinetID = item1.Local_CabinetID;
            item2.TypeCode        = item1.Local_TypeCode;
            item2.Abutment_Id     = item1.Abutment_Id;
            item2.Abutment_DevID  = item1.Abutment_DevID;
            item2.Abutment_Type   = item1.Abutment_Type;
            item2.Status          = item1.Status;
            item2.RunStatus       = item1.RunStatus;
            item2.Placed          = item1.Placed;
            item2.ModelName       = item1.ModelName;
            item2.CreateTime      = item1.CreateTime;
            item2.CreateTimeStamp = item1.CreateTimeStamp;
            item2.ModifyTime      = item1.ModifyTime;
            item2.ModifyTimeStamp = item1.ModifyTimeStamp;
            item2.UserName        = item1.UserName;
            item2.Manufactor      = item1.Manufactor;
            item2.IP              = item1.IP;
            //item2.PosX = item1.PosX;
            //item2.PosY = item1.PosY;
            //item2.PosZ = item1.PosZ;
            //item2.RotationX = item1.RotationX;
            //item2.RotationY = item1.RotationY;
            //item2.RotationZ = item1.RotationZ;
            //item2.ScaleX = item1.ScaleX;
            //item2.ScaleY = item1.ScaleY;
            //item2.ScaleZ = item1.ScaleZ;
            if (haveParent)
            {
                item2.Parent = item1.Parent.ToTModel();
            }
            item2.SetPos(item1.GetPos());
            return(item2);
        }
        public static DevNode ToTModelS(
            this DbModel.Location.AreaAndDev.DevInfo item1)
        {
            if (item1 == null)
            {
                return(null);
            }
            var item2 = new DevNode();

            item2.Id       = item1.Id;
            item2.Name     = item1.Name;
            item2.ParentId = item1.ParentId;
            item2.Code     = item1.Code;
            item2.KKS      = item1.KKS;
            item2.DevID    = item1.Local_DevID;
            item2.TypeCode = item1.Local_TypeCode;
            return(item2);
        }
        public static DbModel.Location.AreaAndDev.DevInfo ToDbModel(
            this Location.TModel.Location.AreaAndDev.DevInfo item1)
        {
            if (item1 == null)
            {
                return(null);
            }
            var item2 = new DbModel.Location.AreaAndDev.DevInfo();

            item2.Id              = item1.Id;
            item2.Name            = item1.Name;
            item2.ParentId        = item1.ParentId;
            item2.Code            = item1.Code;
            item2.KKS             = item1.KKSCode;
            item2.Local_DevID     = item1.DevID;
            item2.Local_CabinetID = item1.Local_CabinetID;
            item2.Local_TypeCode  = item1.TypeCode;
            item2.Abutment_Id     = item1.Abutment_Id;
            item2.Abutment_DevID  = item1.Abutment_DevID;
            item2.Abutment_Type   = item1.Abutment_Type;
            item2.Status          = item1.Status;
            item2.RunStatus       = item1.RunStatus;
            item2.Placed          = item1.Placed;
            item2.ModelName       = item1.ModelName;
            item2.CreateTime      = item1.CreateTime;
            item2.CreateTimeStamp = item1.CreateTimeStamp;
            item2.ModifyTime      = item1.ModifyTime;
            item2.ModifyTimeStamp = item1.ModifyTimeStamp;
            item2.UserName        = item1.UserName;
            item2.IP              = item1.IP;
            //item2.PosX = item1.PosX;
            //item2.PosY = item1.PosY;
            //item2.PosZ = item1.PosZ;
            //item2.RotationX = item1.RotationX;
            //item2.RotationY = item1.RotationY;
            //item2.RotationZ = item1.RotationZ;
            //item2.ScaleX = item1.ScaleX;
            //item2.ScaleY = item1.ScaleY;
            //item2.ScaleZ = item1.ScaleZ;
            item2.SetPos(item1.Pos);
            return(item2);
        }
예제 #5
0
        public List <NearbyDev> GetNearbyCamera_Alarm(int id, float fDis)
        {
            List <NearbyDev> lst  = new List <NearbyDev>();
            List <NearbyDev> lst2 = new List <NearbyDev>();

            DbModel.Location.AreaAndDev.DevInfo dev = db.DevInfos.DbSet.Where(p => p.Id == id).FirstOrDefault();
            if (dev == null || dev.ParentId == null)
            {
                return(lst);
            }

            int?  AreadId = dev.ParentId;
            float PosX    = dev.PosX;
            float PosY    = dev.PosY;
            float PosZ    = dev.PosZ;

            float PosX2 = 0;
            float PosY2 = 0;
            float PosZ2 = 0;

            float sqrtDistance = 0;
            float Distance     = 0;

            var query = from t1 in db.DevAlarms.DbSet
                        join t2 in db.DevInfos.DbSet on t1.DevInfoId equals t2.Id
                        join t3 in db.DevTypes.DbSet on t2.Local_TypeCode equals t3.TypeCode
                        join t4 in db.Areas.DbSet on t2.ParentId equals t4.Id
                        where t2.ParentId == AreadId && (t2.Local_TypeCode == 3000201 || t2.Local_TypeCode == 14 || t2.Local_TypeCode == 3000610 || t2.Local_TypeCode == 1000102)
                        select new NearbyDev {
                id = t2.Id, Name = t2.Name, TypeCode = t2.Local_TypeCode, TypeName = t3.TypeName, Area = t4.Name, X = t2.PosX, Y = t2.PosY, Z = t2.PosZ
            };

            if (query != null)
            {
                lst2 = query.ToList();
            }

            foreach (NearbyDev item in lst2)
            {
                PosX2 = item.X - PosX;
                PosY2 = item.Y - PosY;
                PosZ2 = item.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)
                    {
                        lst.Add(item2);
                    }
                }


                PosX2        = 0;
                PosY2        = 0;
                PosZ2        = 0;
                sqrtDistance = 0;
                Distance     = 0;
            }

            lst.Sort(new DevDistanceCompare());

            return(lst);
        }
예제 #6
0
        public List <NearbyPerson> GetNearbyPerson_Alarm(int id, float fDis)
        {
            List <NearbyPerson> lst  = new List <NearbyPerson>();
            List <NearbyPerson> lst2 = new List <NearbyPerson>();

            DbModel.Location.AreaAndDev.DevInfo dev = db.DevInfos.Find(id);
            if (dev == null || dev.ParentId == null)
            {
                return(lst);
            }

            int?  AreadId = dev.ParentId;
            float PosX    = dev.PosX;
            float PosY    = dev.PosY;
            float PosZ    = dev.PosZ;

            float PosX2 = 0;
            float PosY2 = 0;
            float PosZ2 = 0;

            float sqrtDistance = 0;
            float Distance     = 0;

            var query = from t1 in db.LocationAlarms.DbSet
                        join t2 in db.LocationCardPositions.DbSet on t1.LocationCardId equals t2.CardId
                        join t3 in db.Personnels.DbSet on t1.PersonnelId equals t3.Id
                        join t4 in db.Departments.DbSet on t3.ParentId equals t4.Id
                        where t1.LocationCardId == AreadId
                        select new NearbyPerson {
                id = t3.Id, Name = t3.Name, WorkNumber = t3.WorkNumber, DepartMent = t4.Name, Position = t3.Pst, X = t2.X, Y = t2.Y, Z = t2.Z
            };

            if (query != null)
            {
                lst2 = query.ToList();
            }

            foreach (NearbyPerson item in lst2)
            {
                PosX2 = item.X - PosX;
                PosY2 = item.Y - PosY;
                PosZ2 = item.Z - PosZ;

                sqrtDistance  = PosX2 * PosX2 + PosY2 * PosY2 + PosZ2 * PosZ2;
                Distance      = (float)System.Math.Sqrt(sqrtDistance);
                item.Distance = Distance;
                if (Distance <= fDis)
                {
                    NearbyPerson item2 = item.Clone();
                    if (item2 != null)
                    {
                        lst.Add(item2);
                    }
                }

                PosX2        = 0;
                PosY2        = 0;
                PosZ2        = 0;
                sqrtDistance = 0;
                Distance     = 0;
            }

            lst.Sort(new PersonDistanceCompare());

            return(lst);
        }
        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);
        }