/// <summary> /// 结束R_PB报警 /// </summary> /// <param name="datastate"></param> /// <param name="timeNow"></param> /// <param name="prealInfo"></param> public static void EndR_PBInfo(PersonAlarmState datastate, DateTime timeNow, R_PrealInfo prealInfo) { R_PBCacheGetByConditonRequest request = new R_PBCacheGetByConditonRequest(); request.Predicate = a => a.Yid == prealInfo.Yid && a.Type == (int)datastate && (a.Endtime == null || a.Endtime < DateTime.Parse("2000-01-01")); var result = r_PBCacheService.GetR_PBCache(request); if (result.Data != null && result.IsSuccess) { List <R_PbInfo> pbItems = result.Data; pbItems.ForEach(a => { a.Endtime = timeNow; a.InfoState = InfoState.Modified; }); //更新数据库 DataToDbBatchAddRequest <R_PbInfo> request1 = new DataToDbBatchAddRequest <R_PbInfo>(); request1.Items = pbItems; r_PbService.AddItems(request1); //更新缓存 R_PBCacheBatchUpdateRequest request2 = new R_PBCacheBatchUpdateRequest(); request2.R_PBInfos = pbItems; r_PBCacheService.BatchUpdateR_PBCache(request2); } }
/// <summary> /// 删除状态位 /// </summary> /// <param name="oldState">原状态</param> /// <param name="newState">待删除的状态</param> /// <returns></returns> public static int DeleteOldState(int oldState, PersonAlarmState newState) { int state = oldState; state &= (1 << ((int)newState - (int)PersonAlarmState.nomal)); return(state); }
public static void CreateR_PBInfo(string pointID, string areaID, DateTime stime, PersonAlarmState datastate, R_PrealInfo prealInfo) { R_PbInfo pb = new R_PbInfo(); // 编号 pb.Id = IdHelper.CreateLongId().ToString(); // 区域ID if (string.IsNullOrEmpty(areaID)) { pb.Areaid = "0"; } else { pb.Areaid = areaID; } // 人员Id pb.Yid = prealInfo.Yid; // 测点Id pb.Pointid = pointID; // 报警开始时间,等同于写记录时间 pb.Starttime = stime; // 报警结束时间 pb.Endtime = new DateTime(1900, 1, 1); // 报警类型(关联枚举表) pb.Type = (int)datastate; // 系统类型标志:0—人员,1—机车 pb.Z4 = prealInfo.Sysflag; pb.Z1 = "0"; pb.Z2 = "0"; pb.Z3 = "0"; pb.Z5 = "0"; pb.Z6 = "0"; pb.InfoState = InfoState.AddNew; //更新数据库 DataToDbAddRequest <R_PbInfo> request = new DataToDbAddRequest <R_PbInfo>(); request.Item = pb; r_PbService.AddItem(request); //更新缓存 R_PBCacheAddRequest addRequest = new R_PBCacheAddRequest(); addRequest.R_PBInfo = pb; r_PBCacheService.AddR_PBCache(addRequest); }