public BasicResponse AddEmergencyLinkHistoryAndAss(AddEmergencyLinkHistoryAndAssRequest request)
        {
            var primaryId = IdHelper.CreateLongId().ToString();

            request.EmergencyLinkHistoryInfo.Id = primaryId;
            foreach (var item in request.LinkageHistoryMasterPointAssInfoList)
            {
                item.Id = IdHelper.CreateLongId().ToString();
                item.EmergencyLinkHistoryId = primaryId;
            }
            var model =
                ObjectConverter.Copy <EmergencyLinkHistoryInfo, EmergencyLinkHistoryModel>(
                    request.EmergencyLinkHistoryInfo);
            var models =
                ObjectConverter
                .CopyList <EmergencyLinkageHistoryMasterPointAssInfo, EmergencyLinkageHistoryMasterPointAssModel>(
                    request.LinkageHistoryMasterPointAssInfoList);

            TransactionsManager.BeginTransaction(() =>
            {
                _Repository.AddEmergencyLinkHistory(model);
                foreach (var item in models)
                {
                    _emergencyLinkageHistoryMasterPointAssRepository.AddEmergencyLinkageHistoryMasterPointAss(item);
                }
            });
            return(new BasicResponse());
        }
 public BasicResponse AddEmergencyLinkHistoryAndAss(AddEmergencyLinkHistoryAndAssRequest request)
 {
     return(_EmergencyLinkageHistoryService.AddEmergencyLinkHistoryAndAss(request));
 }
Esempio 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);
            }
        }
        public BasicResponse AddEmergencyLinkHistoryAndAss(AddEmergencyLinkHistoryAndAssRequest request)
        {
            var responseStr = HttpClientHelper.Post(Webapi + "/v1/EmergencyLinkHistory/AddEmergencyLinkHistoryAndAss?token=" + Token, JSONHelper.ToJSONString(request));

            return(JSONHelper.ParseJSONString <BasicResponse>(responseStr));
        }