Ejemplo n.º 1
0
        public BasicResponse <R_CallInfo> AddCall(R_CallAddRequest callRequest)
        {
            var callresponse = new BasicResponse <R_CallInfo>();
            //判断缓存中是否存在
            R_CallInfo oldR_CallInfo = null;
            RCallCacheGetByKeyRequest RCallCacheRequest = new RCallCacheGetByKeyRequest();

            RCallCacheRequest.Id = callRequest.CallInfo.Id;
            oldR_CallInfo        = _RCallCacheService.GetByKeyRCallCache(RCallCacheRequest).Data;
            if (oldR_CallInfo != null)
            {
                //缓存中存在此测点
                callresponse.Code    = 1;
                callresponse.Message = "当前添加的呼叫控制已存在!";
                return(callresponse);
            }
            var _call      = ObjectConverter.Copy <R_CallInfo, R_CallModel>(callRequest.CallInfo);
            var resultcall = _Repository.AddCall(_call);

            //写呼叫历史记录
            AddR_PHJInfo(callRequest.CallInfo);

            //更新缓存
            RCallCacheAddRequest RCallCacheAddRequest = new RCallCacheAddRequest();

            RCallCacheAddRequest.RCallInfo = callRequest.CallInfo;
            _RCallCacheService.AddRCallCache(RCallCacheAddRequest);

            callresponse.Data = ObjectConverter.Copy <R_CallModel, R_CallInfo>(resultcall);
            return(callresponse);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 添加呼叫
        /// </summary>
        /// <param name="tempCallInfo"></param>
        public void AddR_CallInfo(R_CallInfo tempCallInfo)
        {
            //赋值操作用户,客户端IP地址
            UpdateCreateUser(tempCallInfo);

            R_CallAddRequest callRequest = new R_CallAddRequest();

            callRequest.CallInfo = tempCallInfo;
            _R_CallService.AddCall(callRequest);
        }
Ejemplo n.º 3
0
        /// <summary>新增历史记录和call,更新实时状态
        ///
        /// </summary>
        private static void AddLinkageHisAndCall(SysEmergencyLinkageInfo item,
                                                 List <Jc_BInfo> satisfyJcb, DateTime nowTime, bool ifUpdateRealTimeValue)
        {
            var allPosition = PositionService.GetAllPositionCache().Data;

            //新增联动历史记录
            var emergencyLinkHistoryInfo = new EmergencyLinkHistoryInfo()
            {
                SysEmergencyLinkageId = item.Id,
                StartTime             = nowTime,
                EndTime    = new DateTime(1900, 1, 1),
                IsForceEnd = 0,
                EndPerson  = "0"
            };
            var emergencyLinkageHistoryMasterPointAssList = new List <EmergencyLinkageHistoryMasterPointAssInfo>();

            foreach (var item2 in satisfyJcb)
            {
                var newItem = new EmergencyLinkageHistoryMasterPointAssInfo
                {
                    PointId   = item2.PointID,
                    DataState = item2.Type
                };
                emergencyLinkageHistoryMasterPointAssList.Add(newItem);
            }

            var req = new AddEmergencyLinkHistoryAndAssRequest
            {
                EmergencyLinkHistoryInfo             = emergencyLinkHistoryInfo,
                LinkageHistoryMasterPointAssInfoList = emergencyLinkageHistoryMasterPointAssList
            };

            EmergencyLinkHistoryService.AddEmergencyLinkHistoryAndAss(req);

            //新增人员rcall
            if (item.PassivePersonAssId != "0")
            {
                var req2 = new LongIdRequest()
                {
                    Id = Convert.ToInt64(item.PassivePersonAssId)
                };
                var           res2          = SysEmergencyLinkageService.GetPassivePersonByAssId(req2);
                var           passivePerson = res2.Data;
                StringBuilder sbPersonCard  = new StringBuilder();
                foreach (var item2 in passivePerson)
                {
                    sbPersonCard.Append(item2.Bh + ",");
                }
                if (sbPersonCard.Length > 0)
                {
                    sbPersonCard.Remove(sbPersonCard.Length - 1, 1);
                }

                var newRcall = new R_CallInfo()
                {
                    Id                = IdHelper.CreateLongId().ToString(),
                    MasterId          = item.Id,
                    Type              = 0,
                    CallType          = 1,
                    CallPersonDefType = 2,
                    BhContent         = sbPersonCard.ToString(),
                    CallTime          = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
                };
                var req5 = new R_CallAddRequest()
                {
                    CallInfo = newRcall
                };
                RcallService.AddCall(req5);
            }

            //被控区域测点及所选测点获取
            List <IdTextCheck> lisAllAssDef = new List <IdTextCheck>(); //所有关联被控测点

            if (item.PassiveAreaAssId != "0")
            {
                var req6 = new LongIdRequest
                {
                    Id = Convert.ToInt64(item.PassiveAreaAssId)
                };
                var res6             = SysEmergencyLinkageService.GetPassiveAreaInfoByAssId(req6);
                var allPassiveArea   = res6.Data;
                var allPassiveAreaId = new List <string>();
                foreach (var item2 in allPassiveArea)
                {
                    allPassiveAreaId.Add(item2.Areaid);
                }

                var res7            = SysEmergencyLinkageService.GetAllPassivePointInfo();
                var allPassivePoint = res7.Data;

                var passiveAreaPoint =
                    allPassivePoint.Where(a => allPassiveAreaId.Contains(a.AreaId)).ToList();
                lisAllAssDef.AddRange(passiveAreaPoint);
            }
            if (item.PassivePointAssId != "0")
            {
                var req6 = new LongIdRequest()
                {
                    Id = Convert.ToInt64(item.PassivePointAssId)
                };
                var res6 = SysEmergencyLinkageService.GetPassivePointInfoByAssId(req6);
                lisAllAssDef.AddRange(res6.Data);
            }

            //插入测点rcall
            var handlePersonPoint = lisAllAssDef.Where(a => a.SysId == "11").ToList();

            if (handlePersonPoint.Count > 0)
            {
                var handlePersonPointStr = new StringBuilder(); //人员定位系统关联的被控测点字符串
                foreach (var item2 in handlePersonPoint)
                {
                    handlePersonPointStr.Append(item2.Point + ",");
                }
                handlePersonPointStr.Remove(handlePersonPointStr.Length - 1, 1);

                var rcall = new R_CallInfo()
                {
                    Id                = IdHelper.CreateLongId().ToString(),
                    MasterId          = item.Id,
                    Type              = 1,
                    CallType          = 1,
                    CallPersonDefType = 4,
                    PointList         = handlePersonPointStr.ToString(),
                    CallTime          = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
                };
                var req8 = new R_CallAddRequest()
                {
                    CallInfo = rcall
                };
                RcallService.AddCall(req8);
            }

            //插入bcall
            var handleBroadcastPoint = lisAllAssDef.Where(a => a.SysId == "12").ToList();

            if (handleBroadcastPoint.Count > 0)
            {
                //var handleBroadcastPointStr = new StringBuilder(); //广播系统关联的被控测点字符串
                //foreach (var item2 in handleBroadcastPoint)
                //{
                //    handleBroadcastPointStr.Append(item2.Point + ",");
                //}
                //handleBroadcastPointStr.Remove(handleBroadcastPointStr.Length - 1, 1);
                var bcallId = IdHelper.CreateLongId().ToString();
                var handleBroadcastPointList = new List <B_CallpointlistInfo>();
                foreach (var item2 in handleBroadcastPoint)
                {
                    var newItem = new B_CallpointlistInfo()
                    {
                        Id            = IdHelper.CreateLongId().ToString(),
                        BCallId       = bcallId,
                        CalledPointId = item2.Id
                    };
                    handleBroadcastPointList.Add(newItem);
                }

                var broadcastDetail = new StringBuilder(); //广播内容
                broadcastDetail.Append(item.Name + ",");
                foreach (var item2 in satisfyJcb)
                {
                    var wzInfo = allPosition.FirstOrDefault(a => a.WzID == item2.Wzid);
                    var wzName = "";
                    if (wzInfo != null)
                    {
                        wzName = wzInfo.Wz;
                    }

                    broadcastDetail.Append(wzName + "," + EnumHelper.GetEnumDescription((DeviceDataState)item2.Type) + ",");
                }
                broadcastDetail.Remove(broadcastDetail.Length - 1, 1);

                var bcall = new B_CallInfo()
                {
                    Id       = bcallId,
                    MasterId = item.Id,
                    CallType = 1,
                    //PointList = handleBroadcastPointStr.ToString(),//注释,调整了表结构,此处需要修改  20171227
                    CallPointList = handleBroadcastPointList,
                    Message       = broadcastDetail.ToString(),
                    CallTime      = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
                };
                var req9 = new B_CallAddRequest()
                {
                    CallInfo = bcall
                };
                BcallService.AddCall(req9);
            }

            //更新实时状态
            if (ifUpdateRealTimeValue)
            {
                var req17 = new UpdateRealTimeStateRequest
                {
                    LinkageId = item.Id,
                    State     = "1"
                };
                SysEmergencyLinkageService.UpdateRealTimeState(req17);
            }
        }