Example #1
0
        public ActionResult SearchTest(QueryParams queryParams)
        {
            EquipmentResult result = new EquipmentResult();
            Z_Room          room   = ZRoomService.GetEntity(u => u.F_RoomNo == queryParams.classroom).FirstOrDefault();
            //获取该教室所有的设备
            var       zeList    = ZEquipmentService.GetEntity(u => u.F_RoomId == room.F_Id).ToList();
            byte      fun       = (byte)Convert.ToInt32(AppSettingUtils.GetValue("Search"));
            ClassRoom classRoom = PortService.GetReturnDataTest(queryParams.classroom);

            if (classRoom != null)
            {
                classRoom.Name    = room?.F_FullName;
                classRoom.ClassNo = room.F_EnCode;  //教室编码
                classRoom.Id      = room.F_RoomNo;
                var list = classRoom.SonserList;
                classRoom.AbnormalSonserList = classRoom.SonserList.Where(u => u.Online == StateType.Offline).ToList();
                classRoom.NormalSonserList   = classRoom.SonserList.Where(u => u.Online == StateType.Online).ToList();
                result.Count          = zeList.Count;
                result.ExceptionCount = classRoom.AbnormalSonserList.Count;
                result.NormalCount    = classRoom.NormalSonserList.Count;
                result.AppendData     = classRoom;
            }
            else
            {
                result.Message = "查询设备信息失败!请重试";
            }
            return(Json(result));
        }
Example #2
0
        public ActionResult SearchAll(QueryParams queryParams)
        {
            EquipmentResult result = new EquipmentResult();

            try
            {
                //查询该教室
                Z_Room room = ZRoomService.GetEntity(u => u.F_RoomNo == queryParams.classroom).FirstOrDefault();

                if (room == null) //没有该教室
                {
                    result.Message = "教室地址有误!";
                }
                else
                {
                    ClassRoom classRoom = PortService.Search(room, ref result);
                    //PortService.CloseConnect();
                    result.AppendData = classRoom;
                }
            }
            catch (Exception exception)
            {
                result.ErrorData = exception.ToString();
                result.Message   = "查询设备信息失败";
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Example #3
0
        /// <summary>
        /// 初始化设备节点
        /// </summary>
        /// <param name="classroom">教室地址</param>
        /// <returns></returns>
        public ActionResult Init(string classroom)
        {
            byte b   = 0x00;
            byte fun = 0x1f;

            EResult         = PortService.SendConvertCmd(fun, classroom, "00", b);
            EResult.Message = EResult.Status ? "查询设备信息成功" : "查询设备信息失败";
            ClassRoom          classRoom = PortService.GetReturnData(classroom);
            var                list      = classRoom.SonserList;
            List <Z_Equipment> zeList    = new List <Z_Equipment>();
            Z_Room             room      = ZRoomService.GetEntity(u => u.F_RoomNo == classroom).FirstOrDefault();

            ZEquipmentService.DeleteEntitys(ZEquipmentService.GetEntity(u => u.F_RoomId == room.F_Id).ToList());
            if (room != null)
            {
                foreach (var item in list)
                {
                    var zEquipment = new Z_Equipment
                    {
                        F_Id            = Guid.NewGuid().ToString(),
                        F_RoomId        = room.F_Id,
                        F_FullName      = item.Name,
                        F_EquipmentType = item.Type + "",
                        F_EnabledMark   = true,
                        F_EquipmentNo   = item.Id.IndexOf('_') != -1 ? item.Id.Split('_')[0] : item.Id
                    };
                    zeList.Add(zEquipment);
                }
            }
            ZEquipmentService.AddEntitys(zeList);
            EResult.AppendData = list;
            return(Json(EResult, JsonRequestBehavior.AllowGet));
        }
Example #4
0
        /// <summary>
        /// 报警信息
        /// </summary>
        /// <returns></returns>
        public ActionResult AlarmInformation()
        {
            int    value;
            string classId = PortService.QueryAlarmData(out value);

            //PortService.CloseConnect();
            if (classId != null) //有报警数据
            {
                Z_Room room = ZRoomService.GetEntity(r => r.F_RoomNo == classId).FirstOrDefault();
                return(Json(new { ResultCode = ResultCode.Error, ClassName = room.F_FullName, AppendData = value, ClassNo = room.F_EnCode }));
            }
            return(Json(new { ResultCode = ResultCode.Ok }));
        }
Example #5
0
        /// <summary>
        /// 获取楼栋名称下的所有的房间
        /// </summary>
        /// <param name="buildingName">楼栋名称</param>
        /// <param name="floorName">楼层名称</param>
        /// <param name="roomName">教室名称</param>
        /// <returns></returns>
        public Z_Room[] GetRoomsForBuildingName(string buildingName, string floorName = null, string roomName = null)
        {
            //查找该楼栋
            Z_Room room = GetEntity(u => u.F_FullName == buildingName).FirstOrDefault();
            //该楼栋所有楼层
            var floors = GetEntity(u => u.F_ParentId == room.F_Id);

            if (null != floorName)
            {
                // 获取指定楼层下的所有房间
                floors = floors.Where(u => u.F_FullName == floorName);
            }

            //楼层中所有教室
            var classroom = GetEntity(u => floors.Any(f => f.F_Id == u.F_ParentId)).ToArray();

            classroom = roomName == null ? classroom : classroom.Where(c => c.F_FullName == roomName).ToArray();
            return(classroom);
        }
Example #6
0
        /// <summary>
        /// 查询的教室设备节点信息
        /// </summary>
        /// <param name="classroom">教室</param>
        /// <param name="result">记录结果</param>
        /// <returns>返回记录结果</returns>
        public ClassRoom Search(Z_Room room, ref EquipmentResult result)
        {
            //获取该教室所有的设备
            var  zeList = ZEquipmentService.GetEntity(u => u.F_RoomId == room.F_Id).ToList();
            byte fun    = (byte)Convert.ToInt32(AppSettingUtils.GetValue("Search"));

            //向串口发送查询指令
            result = SendConvertSearchCmd(fun, room.F_RoomNo);
            ClassRoom classRoom = GetReturnData(room.F_RoomNo);

            if (classRoom == null) //没有数据就重新发一次
            {
                Thread.Sleep(300);
                //向串口发送指令
                result    = SendConvertSearchCmd(fun, room.F_RoomNo);
                classRoom = GetReturnData(room.F_RoomNo);
            }
            if (classRoom != null)
            {
                classRoom.Name               = room.F_FullName;
                classRoom.ClassNo            = room.F_EnCode; //教室编码
                classRoom.Id                 = room.F_RoomNo;
                classRoom.AbnormalSonserList = classRoom.SonserList.Where(u => u.Online == StateType.Offline).ToList();
                classRoom.NormalSonserList   = classRoom.SonserList.Where(u => u.Online == StateType.Online).ToList();
                result.Count                 = zeList.Count;
                result.ExceptionCount        = zeList.Count - classRoom.NormalSonserList.Count;
                result.NormalCount           = classRoom.NormalSonserList.Count;
                result.Message               = "查询设备信息成功";
            }
            else
            {
                result.Status     = false;
                result.ResultCode = ResultCode.Error;
                result.Message    = "查询设备信息失败!请重试";
            }
            return(classRoom);
        }
Example #7
0
        /// <summary>
        /// 通过楼栋查询所有教室设备信息
        /// </summary>
        /// <param name="buildingName"></param>
        /// <param name="room"></param>
        /// <returns></returns>
        public Buildings SearchBuildingAllRoomEquipmentInfo1(string buildingName, Z_Room room)
        {
            Buildings buid = new Buildings();
            //查询到该楼栋
            var building = room;

            buid.Name = building.F_FullName;

            //查询到该楼栋下所有楼层
            var floors = ZRoomService.GetEntity(u => u.F_ParentId == building.F_Id);

            //查询该楼栋下所有楼层的教室
            var rooms = ZRoomService.GetEntity(r => floors.Any(f => r.F_ParentId == f.F_Id)).ToList();

            foreach (var floor in floors)
            {
                Floors fl = new Floors();
                foreach (var item in rooms)
                {
                    if (item.F_ParentId == floor.F_Id)
                    {
                        EquipmentResult result = new EquipmentResult();
                        Debug.WriteLine($"开始查询教室地址:{item.F_RoomNo}");
                        ClassRoom classRoom = PortService.Search(item, ref result);
                        if (classRoom != null)
                        {
                            Debug.WriteLine("查询成功");
                            AutoMapperConfig.Map(building, classRoom);
                            AutoMapperConfig.Map(floor, classRoom);
                            AutoMapperConfig.Map(item, classRoom);
                            if (classRoom.AbnormalSonserList.Count > 0)
                            {
                                buid.ExceptionCount        += 1;
                                buid.AbnormalEquipment      = true;
                                fl.ExceptionCount          += 1;
                                fl.AbnormalEquipment        = true;
                                classRoom.AbnormalEquipment = true;
                                classRoom.ExceptionCount    = classRoom.AbnormalSonserList.Count;
                            }
                        }
                        else
                        {
                            Debug.WriteLine("没有查询到结果");
                            classRoom = new ClassRoom();
                            AutoMapperConfig.Map(building, classRoom);
                            AutoMapperConfig.Map(floor, classRoom);
                            AutoMapperConfig.Map(item, classRoom);
                        }
                        fl.ClassRooms.Add(classRoom);
                        result.AppendData = classRoom;
                    }
                }
                if (fl.ClassRooms.Count == 0)
                {
                    fl.Name = floor.F_FullName + " (没有教室)";
                }
                else
                {
                    fl.Name = floor.F_FullName;
                }
                buid.Floors.Add(fl);
            }
            return(buid);
        }