예제 #1
0
        /// <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);
        }
예제 #2
0
 /// <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));
     }
 }
예제 #3
0
        /// <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);
        }