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)); }
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)); }
/// <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)); }
/// <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 })); }
/// <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); }
/// <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); }
/// <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); }