/// <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 Basic.Framework.Web.BasicResponse <List <Sys.Safety.Request.SysEmergencyLinkage.IdTextCheck> > GetAllPassivePointInfo() { return(_sysEmergencyLinkageService.GetAllPassivePointInfo()); }