/// <summary> /// 查找预案处置项执行结果记录 /// 先根据报警ID查找预案执行记录planRecordId,再通过planRecordId查找Serv_Plan_ItemResult /// </summary> /// <param name="alarmId"></param> /// <returns></returns> private PlanItemHandledInfo PlanItemResultList(ServAlarmRecordModel alarmRecord) { PlanItemHandledInfo handleInfoModel = new PlanItemHandledInfo(); try { ServPlanRecordDAL planRecordDal = new ServPlanRecordDAL(); ServPlanItemResultDAL planItemResultDal = new ServPlanItemResultDAL(); ServPlanHandleItemDAL planHandleItemDal = new ServPlanHandleItemDAL(); ServPlanHandleItemCameraDAL planHandleItemCameraDal = new ServPlanHandleItemCameraDAL(); // ServAlarmRecordModel alarmRecord = _servAlarmRecordDal.GetEntity(alarmId); //查找预案执行记录 ServPlanRecordModel planRecord = planRecordDal.GetEntityByAlarmId(alarmRecord.id); if (planRecord != null) { //查找预案处置项记录 List <ServPlanItemResultModel> planItemRecordList = planItemResultDal.GetEntitiesByPlanRecordId(planRecord.id); if (planItemRecordList != null) { handleInfoModel = TranPlanItemRecord(planRecord.plan_type, planItemRecordList, alarmRecord.alarm_event, alarmRecord.alarm_time); } else { //log 根据预案执行记录ID未找到预案处置项记录 } //查找关联摄像头信息(事件预案无关联摄像头) //if (planRecord.plan_type == (int)EnumClass.PlanType.事件预案) //{ // ServPlanHandleItemModel planHandleItemModel = planHandleItemDal.GetPlanHandleItemByTypeAndId(planRecord.plan_id, planRecord.plan_type, (int)EnumClass.EventPlanDefaultOptions.关联摄像头); // if (planHandleItemModel != null) // { // handleInfoModel.cameraList = planHandleItemCameraDal.GetHandledCameras(planHandleItemModel.id); // } //} if (planRecord.plan_type == (int)EnumClass.PlanType.设备预案) { ServPlanHandleItemModel planHandleItemModel = planHandleItemDal.GetPlanHandleItemByTypeAndId(planRecord.plan_id, planRecord.plan_type, (int)EnumClass.DevicePlanDefaultOptions.关联摄像头); if (planHandleItemModel != null) { handleInfoModel.cameraList = planHandleItemCameraDal.GetHandledCameras(planHandleItemModel.id); } } } else { //log 根据alarmId查找预案执行记录为null } handleInfoModel.alarmRecord = alarmRecord; } catch (Exception ex) { throw ex; } return(handleInfoModel); }
/// <summary> /// 获取最新报警预案处置项执行结果 /// </summary> /// <returns></returns> public JsonResult GetLastAlarmPlanItemRecord() { try { PlanItemHandledInfo model = _servAlarmRecordBll.GetLastPlanItemResultList(); return(Json(model, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { state = 1, message = "获取预案处置项执行结果失败!" + ex.Message }, JsonRequestBehavior.AllowGet)); } }
/// <summary> ///预案处置项记录结果转换 /// </summary> /// <param name="planType"></param> /// <param name="ItemList"></param> /// <returns></returns> private PlanItemHandledInfo TranPlanItemRecord(int planType, List <ServPlanItemResultModel> ItemList, string eventCode, DateTime alarmTime) { PlanItemHandledInfo handleInfoModel = new PlanItemHandledInfo(); List <TranPlanItemResult> retList = new List <TranPlanItemResult>(); TranPlanItemResult retModel = null; ServAlarmVideoTimeDAL alarmVideoTimeDal = new ServAlarmVideoTimeDAL(); BaseEventTypeBLL baseEventTypeBll = new BaseEventTypeBLL(); List <BaseEventTypeModel> eventList = baseEventTypeBll.GetAllEventType(); //获取全部事件类型 #region 查找事件 旧版 //int queryEventId = eventId; //var alarmEvent = eventList.FirstOrDefault(n => n.id == eventId); //查询当前事件 //if (alarmEvent != null && alarmEvent.pid != -1) //判断是否是父级事件 //{ // var rootEvent = eventList.FirstOrDefault(n => n.id == alarmEvent.pid);//查询父级事件,目前事件只保留两级 // if (rootEvent != null) // { // queryEventId = rootEvent.id; // } // else // { // queryEventId = -1; // } //} #endregion #region 查找事件 新版 int queryEventId = -1; if (!string.IsNullOrEmpty(eventCode) && eventCode != "") { var alarmEvent = eventList.FirstOrDefault(n => n.event_code == eventCode);//查找事件 if (alarmEvent != null) { if (alarmEvent.pid == -1) { queryEventId = alarmEvent.id; } else { var rootEvent = eventList.FirstOrDefault(n => n.id == alarmEvent.pid); if (rootEvent != null) //找到父级事件 { queryEventId = rootEvent.id; } else //未找到父级事件 { queryEventId = -1; } } } else { queryEventId = -1; } } else { queryEventId = -1; } #endregion //查询摄像头播放视频时长 var videoTimeModel = alarmVideoTimeDal.GetEntityByEventId(queryEventId); handleInfoModel.videoTime = new ServAlarmVideoTimeCustom(); handleInfoModel.videoTime.videoTimeModel = videoTimeModel; handleInfoModel.videoTime.videoStartTime = alarmTime.AddSeconds(-handleInfoModel.videoTime.videoTimeModel.start_time); handleInfoModel.videoTime.videoEndTime = alarmTime.AddSeconds(handleInfoModel.videoTime.videoTimeModel.start_time); foreach (ServPlanItemResultModel item in ItemList) { retModel = new TranPlanItemResult(); retModel.itemRecordId = item.id; retModel.content = item.content; retModel.executeTime = item.execute_time.ToString(); retModel.confirm_type = item.confirm_type; retModel.itemResult = Enum.IsDefined(typeof(EnumClass.PlanItemResult), item.item_result) ? Enum.ToObject(typeof(EnumClass.PlanItemResult), item.item_result).ToString() : ""; #region 设备预案与事件预案分开处理,防止处置项类型不一致 switch (planType) { case (int)EnumClass.PlanType.设备预案: switch (item.confirm_type) { case (int)EnumClass.PlanHandleTime.确警前: retModel.itemName = Enum.IsDefined(typeof(EnumClass.DevicePlanDefaultOptions), item.item_type) ? Enum.ToObject(typeof(EnumClass.DevicePlanDefaultOptions), item.item_type).ToString() : ""; switch (item.item_type) { //case (int)EnumClass.DevicePlanDefaultOptions.关联摄像头: // //查找关联的摄像头名称以及报警时长 // ServPlanHandleItemCameraDAL planHandleItemCameraDal = new ServPlanHandleItemCameraDAL(); // handleInfoModel.cameraList = planHandleItemCameraDal.GetHandledCameras(item.handleitem_id); // break; case (int)EnumClass.DevicePlanDefaultOptions.告警视频下载: //查找视频下载记录状态 ServVideoPlanHandleRecordDAL servVideoPlanHandleRecordDal = new ServVideoPlanHandleRecordDAL(); handleInfoModel.videoList = servVideoPlanHandleRecordDal.GetDownLoadVideoListByItemId(item.id); break; case (int)EnumClass.DevicePlanDefaultOptions.通知其他负责人: //查看短信记录 ServSMSRecordDAL smsRecordPersomDal = new ServSMSRecordDAL(); handleInfoModel.beforeConfirmedPersonList = smsRecordPersomDal.GetSMSRecordByHandleRecordId(item.id); break; case (int)EnumClass.DevicePlanDefaultOptions.通知设备网格第一负责人: //查看短信记录 ServSMSRecordDAL smsRecordLeadDal = new ServSMSRecordDAL(); handleInfoModel.beforeConfirmedLeadList = smsRecordLeadDal.GetSMSRecordByHandleRecordId(item.id); break; default: break; } break; case (int)EnumClass.PlanHandleTime.确警后: retModel.itemName = Enum.IsDefined(typeof(EnumClass.DevicePlanConfirmOptions), item.item_type) ? Enum.ToObject(typeof(EnumClass.DevicePlanConfirmOptions), item.item_type).ToString() : ""; switch (item.item_type) { case (int)EnumClass.DevicePlanConfirmOptions.通知其他负责人: //查看短信记录 ServSMSRecordDAL smsRecordPersomDal = new ServSMSRecordDAL(); handleInfoModel.afterConfirmedPersonList = smsRecordPersomDal.GetSMSRecordByHandleRecordId(item.id); break; case (int)EnumClass.DevicePlanConfirmOptions.通知设备网格第一负责人: //查看短信记录 ServSMSRecordDAL smsRecordLeadDal = new ServSMSRecordDAL(); handleInfoModel.afterConfirmedLeadList = smsRecordLeadDal.GetSMSRecordByHandleRecordId(item.id); break; default: break; } break; default: break; } break; case (int)EnumClass.PlanType.事件预案: switch (item.confirm_type) { case (int)EnumClass.PlanHandleTime.确警前: retModel.itemName = Enum.IsDefined(typeof(EnumClass.EventPlanDefaultOptions), item.item_type) ? Enum.ToObject(typeof(EnumClass.EventPlanDefaultOptions), item.item_type).ToString() : ""; switch (item.item_type) { //case (int)EnumClass.EventPlanDefaultOptions.关联摄像头: // //查找关联的摄像头名称以及报警时长 // ServPlanHandleItemCameraDAL planHandleItemCameraDal = new ServPlanHandleItemCameraDAL(); // handleInfoModel.cameraList = planHandleItemCameraDal.GetHandledCameras(item.handleitem_id); // break; case (int)EnumClass.EventPlanDefaultOptions.告警视频下载: //查找视频下载记录状态 ServVideoPlanHandleRecordDAL servVideoPlanHandleRecordDal = new ServVideoPlanHandleRecordDAL(); handleInfoModel.videoList = servVideoPlanHandleRecordDal.GetDownLoadVideoListByItemId(item.id); break; case (int)EnumClass.EventPlanDefaultOptions.通知其他负责人: //查看短信记录 ServSMSRecordDAL smsRecordPersomDal = new ServSMSRecordDAL(); handleInfoModel.beforeConfirmedPersonList = smsRecordPersomDal.GetSMSRecordByHandleRecordId(item.id); break; case (int)EnumClass.EventPlanDefaultOptions.通知设备网格第一负责人: //查找短信记录 ServSMSRecordDAL smsRecordLeadDal = new ServSMSRecordDAL(); handleInfoModel.beforeConfirmedLeadList = smsRecordLeadDal.GetSMSRecordByHandleRecordId(item.id); break; default: break; } break; case (int)EnumClass.PlanHandleTime.确警后: retModel.itemName = Enum.IsDefined(typeof(EnumClass.EventPlanConfirmOptions), item.item_type) ? Enum.ToObject(typeof(EnumClass.EventPlanConfirmOptions), item.item_type).ToString() : ""; switch (item.item_type) { case (int)EnumClass.EventPlanConfirmOptions.通知其他负责人: ServSMSRecordDAL smsRecordPersomDal = new ServSMSRecordDAL(); handleInfoModel.afterConfirmedPersonList = smsRecordPersomDal.GetSMSRecordByHandleRecordId(item.id); break; case (int)EnumClass.EventPlanConfirmOptions.通知设备网格第一负责人: ServSMSRecordDAL smsRecordLeadDal = new ServSMSRecordDAL(); handleInfoModel.afterConfirmedLeadList = smsRecordLeadDal.GetSMSRecordByHandleRecordId(item.id); break; default: break; } break; default: break; } break; default: break; } #endregion retList.Add(retModel); } handleInfoModel.resultList = retList; return(handleInfoModel); }