コード例 #1
0
        /// <summary>
        /// 添加或修改R_Preal记录
        /// </summary>
        /// <param name="prealInfo"></param>
        public static void InsertPrealData(R_PrealInfo prealInfo)
        {
            RPrealCacheAddRequest request = new RPrealCacheAddRequest();

            request.PrealInfo = prealInfo;
            rPRealCacheService.AddRRealCache(request);
        }
コード例 #2
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);
            }
        }
コード例 #3
0
        /// <summary>
        /// 清除Preal信息
        /// </summary>
        /// <param name="id"></param>
        public static void DeletePreal(R_PrealInfo preal)
        {
            RPrealCacheDeleteRequest request = new RPrealCacheDeleteRequest();

            request.PrealInfo = preal;
            rPRealCacheService.DeleteRRealCache(request);
        }
コード例 #4
0
        public Basic.Framework.Web.BasicResponse UpdateRRealInfo(Sys.Safety.Request.PersonCache.RPrealCacheUpdatePropertiesRequest RealCacheRequest)
        {
            R_PrealInfo updateitem = KJ237CacheHelper.Cache.FindFirst <R_PrealInfo>(o => o.Id == RealCacheRequest.Id);

            updateitem.CopyProperties(RealCacheRequest.UpdateItems);
            KJ237CacheHelper.Cache.Update <R_PrealInfo>(updateitem);
            return(new BasicResponse());
        }
コード例 #5
0
        /// <summary>
        /// 获取单个人员信息
        /// </summary>
        /// <returns></returns>
        public static R_PrealInfo GetOnePrealInfo(string bh)
        {
            R_PrealInfo item = null;
            RPrealCacheGetByConditonRequest request = new RPrealCacheGetByConditonRequest();

            request.Predicate = a => a.Bh == bh;
            var result = rPRealCacheService.GetRealCache(request);

            if (result.IsSuccess && result.Data != null && result.Data.Count > 0)
            {
                item = result.Data[0];
            }
            return(item);
        }
コード例 #6
0
        public Basic.Framework.Web.BasicResponse BatchUpdateRealInfo(Sys.Safety.Request.PersonCache.RPrealCacheBatchUpdatePropertiesRequest request)
        {
            List <R_PrealInfo> updateitems = new List <R_PrealInfo>();

            foreach (string tempId in request.UpdateItems.Keys)
            {
                R_PrealInfo updateitem = KJ237CacheHelper.Cache.FindFirst <R_PrealInfo>(o => o.Id == tempId);
                if (updateitem != null)
                {
                    updateitem.CopyProperties(request.UpdateItems[tempId]);
                    updateitems.Add(updateitem);
                }
            }

            KJ237CacheHelper.Cache.BatchUpdate <R_PrealInfo>(updateitems);
            return(new BasicResponse());
        }
コード例 #7
0
        public BasicResponse OldPlsPersonRealSync(OldPlsPersonRealSyncRequest request)
        {
            try
            {
                var req = new RPrealCacheGetAllRequest();
                var res = _RPRealCacheService.GetAllRRealCache(req);
                var allPersonRealCache = res.Data;      //所有人员实时缓存
                var info = request.Info;

                foreach (var item in info)
                {
                    R_PrealInfo personRealCache = new R_PrealInfo();
                    var         ifExist         = false;
                    if (allPersonRealCache != null)
                    {
                        personRealCache = allPersonRealCache.FirstOrDefault(a => a.Yid == item.Yid);
                        if (personRealCache != null)
                        {
                            ifExist = true;
                        }
                    }

                    if (!ifExist)
                    {
                        var req2 = new RPrealCacheAddRequest
                        {
                            PrealInfo = item
                        };
                        _RPRealCacheService.AddRRealCache(req2);
                    }
                    else
                    {
                        if (item.Bh != personRealCache.Bh || item.JobNumber != personRealCache.JobNumber ||
                            item.PersonName != personRealCache.PersonName ||
                            item.Department != personRealCache.Department ||
                            item.Duty != personRealCache.Duty ||
                            item.TypeOfWork != personRealCache.TypeOfWork ||
                            item.CurrentPosition != personRealCache.CurrentPosition ||
                            item.Rtime != personRealCache.Rtime ||
                            item.UpPosition != personRealCache.UpPosition ||
                            item.OnPosition != personRealCache.OnPosition ||
                            item.Ontime != personRealCache.Ontime ||
                            item.Rjsc != personRealCache.Rjsc || item.Bjtype != personRealCache.Bjtype || item.Flag != personRealCache.Flag)
                        {
                            var req2 = new RPrealCacheUpdateRequest
                            {
                                PrealInfo = item
                            };
                            _RPRealCacheService.UpdateRRealCahce(req2);
                        }
                    }
                }

                if (allPersonRealCache != null)
                {
                    for (var i = allPersonRealCache.Count - 1; i >= 0; i--)
                    {
                        var ifExist = info.Any(a => a.Yid == allPersonRealCache[i].Yid);
                        if (!ifExist)
                        {
                            var req3 = new RPrealCacheDeleteRequest
                            {
                                PrealInfo = allPersonRealCache[i]
                            };
                            _RPRealCacheService.DeleteRRealCache(req3);
                        }
                    }
                }

                return(new BasicResponse());
            }
            catch (Exception exc)
            {
                LogHelper.Error(exc.ToString());
                return(new BasicResponse()
                {
                    Code = 101,
                    Message = "同步失败"
                });
            }
        }
コード例 #8
0
        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);
        }