Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 人员报警表跨天数据处理(结束当天的报警,写第二天的开始)  20171206
        /// </summary>
        /// <param name="today"></param>
        /// <param name="tomorrow"></param>
        public static void Drv_CrossDayPro(DateTime today, DateTime tomorrow)
        {
            List <R_PbInfo> R_PBList = GetAllR_PBItems().FindAll(a => a.Endtime == null || a.Endtime.ToString("yyyy-MM-dd") == "1900-01-01");

            R_PBList.ForEach(a =>
            {
                a.Endtime   = today;
                a.InfoState = InfoState.Modified;
            });
            //更新数据库
            DataToDbBatchAddRequest <R_PbInfo> request1 = new DataToDbBatchAddRequest <R_PbInfo>();

            request1.Items = R_PBList;
            r_PbService.AddItems(request1);
            //更新缓存
            R_PBCacheBatchUpdateRequest request2 = new R_PBCacheBatchUpdateRequest();

            request2.R_PBInfos = R_PBList;
            r_PBCacheService.BatchUpdateR_PBCache(request2);
            //写所有未结束的报警记录的第二天开始记录
            foreach (R_PbInfo tempR_PB in R_PBList)
            {
                R_PbInfo newPB = new R_PbInfo();
                newPB.Id        = IdHelper.CreateLongId().ToString();
                newPB.Areaid    = tempR_PB.Areaid;
                newPB.Yid       = tempR_PB.Yid;
                newPB.Pointid   = tempR_PB.Pointid;
                newPB.Zdzs      = tempR_PB.Zdzs;
                newPB.Starttime = tomorrow;
                newPB.Endtime   = new DateTime(1900, 1, 1, 0, 0, 0);
                newPB.Type      = tempR_PB.Type;
                newPB.Z1        = tempR_PB.Z1;
                newPB.Z2        = tempR_PB.Z2;
                newPB.Z3        = tempR_PB.Z3;
                newPB.Z4        = tempR_PB.Z4;
                newPB.Z5        = tempR_PB.Z5;
                newPB.Z6        = tempR_PB.Z6;
                newPB.Upflag    = "0";

                //更新数据库
                DataToDbAddRequest <R_PbInfo> request = new DataToDbAddRequest <R_PbInfo>();
                request.Item = newPB;
                r_PbService.AddItem(request);
                //更新缓存
                R_PBCacheAddRequest addRequest = new R_PBCacheAddRequest();
                addRequest.R_PBInfo = newPB;
                r_PBCacheService.AddR_PBCache(addRequest);
            }
        }
Exemplo n.º 3
0
 public BasicResponse BatchUpdateR_PBCache(R_PBCacheBatchUpdateRequest R_PBCacheRequest)
 {
     R_PBCache.CahceInstance.UpdateItems(R_PBCacheRequest.R_PBInfos);
     return(new BasicResponse());
 }