public static object GetHCUrl(int coordinatesId) { string url = ""; int iChannel = 0; string urlref = ""; int iChannelref = 0; using (AppExtensionDataContext db = new AppExtensionDataContext()) { CoordinatesCamera coordinate = db.CoordinatesCameras.SingleOrDefault(c => c.CoordinatesId == coordinatesId); if (coordinate != null) { url = coordinate.CameraIP; iChannel = coordinate.iChannel; urlref = coordinate.CameraIPlref; iChannelref = coordinate.iChannelref; } } return(new { url, iChannel, urlref, iChannelref }); }
private void LoadRepeater() { using (AppExtensionDataContext db = new AppExtensionDataContext()) { repeater.DataSource = db.InterrogationLogs.Where(t => t.PoliceId > 0) .OrderByDescending(x => x.StartTime) .Skip(p.RecordOffset).Take(p.PageSize) .ToList(); repeater.DataBind(); } }
public object GetCoordinatesAndTagInfo(int tagID) { if (!LocatingServiceUtil.IsAvailable()) { return(null); } IServiceApi serviceApi = LocatingServiceUtil.Instance <IServiceApi>(); TagStatusView tagStatusView = serviceApi.SelectTagStatus(tagID); int coordinatesID = 0; string hostName = ""; string coordinates = ""; string tagStatus = ""; bool SystemHasVedio = BusSystemConfig.GetVedioType() == 1; bool CoordinatesHasVedio = false; string url = ""; int iChannel = 0; string urlref = ""; int iChannelref = 0; if (tagStatusView != null) { hostName = string.Format("<a href=\"{0}\">{1}</a>", Web.WebPath.GetFullPath("TagUsers/TagUser.aspx?id=" + tagStatusView.HostTag.HostId), tagStatusView.HostTag.HostName); coordinates = tagStatusView.CoordinatesName; coordinatesID = tagStatusView.CoordinatesId; //tagStatus.Text = LocatingMonitorUtils.GetAllTagEventsDescription(tagStatusView); tagStatus = LocatingMonitorUtils.GetAllTagEventsDescription(tagStatusView, tagStatusView.HostTag.HostGroupId.Min(), 10, "Master/WebItem.Master"); if (tagStatus.Length == 0) { tagStatus = "正常"; } if (SystemHasVedio) { using (AppExtensionDataContext db = new AppExtensionDataContext()) { CoordinatesCamera coordinate = db.CoordinatesCameras.SingleOrDefault(c => c.CoordinatesId == coordinatesID); if (coordinate != null) { CoordinatesHasVedio = true; url = coordinate.CameraIP; iChannel = coordinate.iChannel; urlref = coordinate.CameraIPlref; iChannelref = coordinate.iChannelref; } } } return(new { //------位置、状态----- hostName, coordinates, tagStatus, coordinatesID, //------是否有视频----- SystemHasVedio, CoordinatesHasVedio, //------摄像头信息----- url, iChannel, urlref, iChannelref, VedioType = NetRadio.Business.BusSystemConfig.GetVedioType() }); } else { return(null); } }
public string GetJobSize(string beginTime, string endTime) { #region 新算法 string _res = ""; try { DateTime _beginTime = DateTime.Parse(beginTime); DateTime _endTime = DateTime.Parse(endTime); IList <InterrogationLog> interrogationLogs = new List <InterrogationLog>(); IList <TagPositionLog> positionReconds = new List <TagPositionLog>(); Dictionary <int, int> policeJobAmount = new Dictionary <int, int>(); List <int> interrogationRooms = new List <int>(); Dictionary <InterrogationLog, int> interrogationItems = new Dictionary <InterrogationLog, int>(); using (AppExtensionDataContext dbExtension = new AppExtensionDataContext()) { interrogationLogs = dbExtension.InterrogationLogs.Where(t => t.StartTime > _beginTime && t.EndTime < _endTime).ToList(); } using (AppDataContext db = new AppDataContext()) { interrogationRooms = db.LocationGroups.Where(t => t.GroupId == (int)PrisonCoordinatesGroup.InterrogateRoom).Select(t => t.LocationId).ToList(); policeJobAmount = db.HostPositionStatusViews.ToList().Where(u => u.TagId > 0 && u.HostGroupId == (byte)TagUserType.Cop).ToDictionary(u => u.HostId, u => u.HostGroupId - 1); positionReconds = db.TagPositionLogs.Where(t => t.WriteTime > _beginTime && t.WriteTime < _endTime && interrogationRooms.Contains(t.CoordinatesId)).ToList(); } foreach (var item in interrogationLogs) { int interrogationRoomId = 0; TagPositionLog culpritOutItem = positionReconds.Where(t => t.WriteTime > item.StartTime && t.HostId == item.CulpritId).OrderBy(t => t.WriteTime).FirstOrDefault();//culpritOutItem表示犯人从监区带出,而非从提审室外出 interrogationRoomId = culpritOutItem.CoordinatesId; if (culpritOutItem != null && culpritOutItem.HostId > 0) { TagPositionLog outItem = positionReconds.Where(t => t.CoordinatesId == interrogationRoomId && t.WriteTime > item.StartTime).OrderBy(t => t.WriteTime).FirstOrDefault(); if (outItem != null && policeJobAmount.Keys.Contains(outItem.HostId.Value)) { policeJobAmount[outItem.HostId.Value]++; } TagPositionLog inItem = positionReconds.Where(t => t.CoordinatesId == interrogationRoomId && t.WriteTime > item.EndTime).OrderBy(t => t.WriteTime).FirstOrDefault(); if (inItem != null && policeJobAmount.Keys.Contains(inItem.HostId.Value)) { policeJobAmount[inItem.HostId.Value]++; } } else { continue; } } Dictionary <HostTag, int> JobAmountresult = new Dictionary <HostTag, int>(); using (AppDataContext db = new AppDataContext()) { var query = from a in policeJobAmount from b in db.HostTags where a.Key == b.HostId select new { b, a.Value }; JobAmountresult = query.OrderByDescending(t => t.Value).ToDictionary(t => t.b, t => t.Value); } StringBuilder sb = new StringBuilder(""); sb.AppendFormat(@" <table style='width: 100%;' cellpadding=0 cellspacing=0 border=0 class='grid alternate fixed'> <thead class=category> <th style='text-align: center;'> 警员名称 </th> <th style='text-align: center;'> 警员编号 </th> <th style='text-align: center;'> 警员工作量 </th> </thead> "); if (JobAmountresult.Count > 0) { foreach (var item in JobAmountresult) { sb.AppendFormat(@" <tr> <td style='text-align: center;'> {0} </td> <td style='border-left: solid 1px #e9e9e9;text-align: center;'> {1} </td> <td style='border-left: solid 1px #e9e9e9;text-align: center;'> {2} </td> </tr> ", item.Key.HostName, item.Key.HostExternalId, item.Value); } } else { sb.AppendFormat(@" <tr> <td colspan=3> 无数据!!! </td> </tr>" ); } sb.AppendFormat(@"</table>"); _res = sb.ToString(); } catch (Exception e1) { _res = e1.Message; } return(_res); #endregion #region 原算法 // string _res = ""; // try // { // DateTime _beginTime = DateTime.Parse(beginTime); // DateTime _endTime = DateTime.Parse(endTime); // SqlParameter p1 = new SqlParameter("@BeginTime", _beginTime); // SqlParameter p2 = new SqlParameter("@EndTime", _endTime); // DataSet ds = Summer.Query.RunProcedure("GetPoliceJobSize", new SqlParameter[2] { p1, p2 }, "LocatingMonitor"); // StringBuilder sb = new StringBuilder(""); // sb.AppendFormat(@" // <table style='width: 100%;' cellpadding=0 cellspacing=0 border=0 class='grid alternate fixed'> // <thead class=category> // <th style='text-align: center;'> // 警员名称 // </th> // <th style='text-align: center;'> // 警员编号 // </th> // <th style='text-align: center;'> // 警员工作量 // </th> // </thead> // "); // bool hasData = false; // if (ds != null && ds.Tables.Count == 1) // { // foreach (DataRow log in ds.Tables[0].Rows) // { // sb.AppendFormat(@" // <tr> // <td style='text-align: center;'> // {0} // </td> // <td style='border-left: solid 1px #e9e9e9;text-align: center;'> // {1} // </td> // <td style='border-left: solid 1px #e9e9e9;text-align: center;'> // {2} // </td> // </tr> // ", log["HostName"], log["HostExternalid"], log["JobSize"]); // hasData = true; // } // } // if (!hasData) // { // sb.AppendFormat(@" // <tr> // <td colspan=3> // 无数据!!! // </td> // </tr>" // ); // } // sb.AppendFormat(@"</table>"); // _res = sb.ToString(); // } // catch (Exception e1) // { // _res = e1.Message; // } // return _res; #endregion }
public static bool SetCulpritstatus(string tagMac, bool isIll, bool isSerious, bool isArraignment) { if (LocatingServiceUtil.IsAvailable()) { TagStatusView tagView = TagStatusView.SelectTagStatus(tagMac); if (isIll) { tagView.HostTag.AddHostGroup(4); Diary.Insert(ContextUser.Current.Id, tagView.TagId, tagView.HostTag.HostId, "将犯人" + tagView.HostTag.HostName + "设置为病犯。"); } else { if (tagView.HostTag.HostGroupId.Contains(4)) { tagView.HostTag.RemoveHostGroup(4); Diary.Insert(ContextUser.Current.Id, tagView.TagId, tagView.HostTag.HostId, "取消犯人" + tagView.HostTag.HostName + "的病犯设置。"); } } if (isSerious) { tagView.HostTag.AddHostGroup(3); Diary.Insert(ContextUser.Current.Id, tagView.TagId, tagView.HostTag.HostId, "将犯人" + tagView.HostTag.HostName + "设置为重刑犯。"); } else { if (tagView.HostTag.HostGroupId.Contains(3)) { tagView.HostTag.RemoveHostGroup(3); Diary.Insert(ContextUser.Current.Id, tagView.TagId, tagView.HostTag.HostId, "取消犯人" + tagView.HostTag.HostName + "的病犯设置。"); } } try { if (isArraignment) { if (tagView.HostTag.HostStatusId == (int)HostTagStatusType.Normal) { tagView.HostTag.HostStatusId = (int)HostTagStatusType.Interrogation; HostTag.SetHostStatus(tagView.HostTag.HostId, (int)HostTagStatusType.Interrogation); using (AppExtensionDataContext dbExtension = new AppExtensionDataContext()) { InterrogationLog interrogationLog = new InterrogationLog(); interrogationLog.PoliceId = ContextUser.Current.Id; interrogationLog.CulpritId = tagView.HostTag.HostId; interrogationLog.StartTime = DateTime.Now; dbExtension.InterrogationLogs.InsertOnSubmit(interrogationLog); dbExtension.SubmitChanges(); } Diary.Insert(ContextUser.Current.Id, tagView.TagId, tagView.HostTag.HostId, "提审犯人" + tagView.HostTag.HostName + "。"); } } else { if (tagView.HostTag.HostStatusId == (int)HostTagStatusType.Interrogation) { tagView.HostTag.HostStatusId = (int)HostTagStatusType.Normal; HostTag.SetHostStatus(tagView.HostTag.HostId, (int)HostTagStatusType.Normal); using (AppExtensionDataContext dbExtension = new AppExtensionDataContext()) { InterrogationLog interrogationLog = dbExtension.InterrogationLogs.SingleOrDefault(t => t.PoliceId == ContextUser.Current.Id && t.CulpritId == tagView.HostTag.HostId && t.EndTime == null); if (interrogationLog != null) { interrogationLog.EndTime = DateTime.Now; dbExtension.SubmitChanges(); } } Diary.Insert(ContextUser.Current.Id, tagView.TagId, tagView.HostTag.HostId, "犯人" + tagView.HostTag.HostName + "结束提审。"); } } } catch (Exception exp) { string err = exp.Source + ":" + exp.Message; } LocatingServiceUtil.Instance <IServiceApi>().ReloadTagHost(tagView.TagId); return(true); } else { return(false); } }
protected void Page_Load(object sender, EventArgs e) { NetRadio.Data.User oUser = NetRadio.Data.User.SelectByUserName(me.Name); if (oUser.Role >= (int)UserRole.Admin) { isAdmin = true; } if (BusSystemConfig.IsAutoSelectStrongestRssiTag() == false) { tagSelector.Visible = true; selectStrongestRssiTag.Visible = false; changeTag.Href = "javascript:tt();"; } else { tagSelector.Visible = false; selectStrongestRssiTag.Visible = true; changeTag.Href = "javascript:tt2();"; } Ajax.AjaxManager.RegisterClass(typeof(__TagUser)); AjaxUtil.RegisterClientScript(typeof(__TagUser), this.Page); if (!Page.IsPostBack) { LoadJailRoomList(); } int _tagId; string _tagMac = null; userId.Value = _id.ToString(); using (AppDataContext db = new AppDataContext()) { var culprit = db.HostTagGroupStatus.SingleOrDefault(u => u.HostGroupId == (int)TagUserType.Culprit && u.HostId == _id); if (culprit == null) { ShowMessagePage("记录不存在。"); } _tagId = culprit.TagId; var tag = Tag.Select(_tagId); if (tag != null) { _tagMac = tag.TagMac; } currentTagId.Value = _tagId.ToString(); tagMac.Text = _tagMac; userId.Value = culprit.HostId.ToString(); name.Text = newName.Text = culprit.HostName; number.Text = newNumber.Text = culprit.HostExternalId; memo.Text = newMemo.Text = Strings.TextEncode(culprit.Description); if (Config.Settings.IsLoadHostInfo) { CulMoreInfo.Visible = true; string strConnect = System.Configuration.ConfigurationSettings.AppSettings["FXConnectionString"].ToString(); SqlConnection conn = new SqlConnection(strConnect); string strSQL = "SELECT top 1 RYBH, ZJHM, JYAQ,V_SSJD.HZ as SSJDHZ, V_AJLB.HZ as AJLBHZ from V_RYXXALL join V_AJLB on V_RYXXALL.AJLB=V_AJLB.DM join V_SSJD on V_SSJD.DM=V_RYXXALL.SSJD where RYBH='" + culprit.HostExternalId + "'"; DataSet ds = new DataSet(); // 创建一个 DataSet conn.Open(); SqlDataAdapter command = new SqlDataAdapter(strSQL, conn); // 用 SqlDataAdapter 得到一个数据集 command.Fill(ds, "CulInfo"); //把Dataset绑定到数据表 DataTable dt = ds.Tables["CulInfo"]; if (dt.Rows.Count > 0) { IDNO.Text = dt.Rows[0]["ZJHM"].ToString(); CulKind.Text = dt.Rows[0]["AJLBHZ"].ToString(); CulState.Text = dt.Rows[0]["SSJDHZ"].ToString(); CulDes.Text = dt.Rows[0]["JYAQ"].ToString(); } } else { CulMoreInfo.Visible = false; } tagBound.Text = culprit.TagId == 0 ? "未携带标签" : "已领用标签"; photo.Src = "UserPhoto.ashx?id=" + _id; jailRoom.Text = MapArea.All.Where(a => a.Id == CulpritRoomReference.All.Where(r => r.CulpritId == _id).Select(r => r.JailRoomId).SingleOrDefault()).Select(a => a.AreaName).SingleOrDefault(); if (!isAdmin) { changeName.Visible = false; changeNumber.Visible = false; changeMemo.Visible = false; deleteButton.Visible = false; uploadButton.Visible = false; } } if (!LocatingServiceUtil.IsAvailable() || !isAdmin) { changeTag.Visible = false; changeJailRoom.Visible = false; clearAllEvents.Visible = false; locatingServiceDownMarker.Visible = true; setStatus.Visible = false; locatingServiceDownMarker1.Visible = true; } else { try { if (!string.IsNullOrEmpty(_tagMac)) { TagStatusView tagStatus = LocatingServiceUtil.Instance <IServiceApi>().SelectTagStatus(_tagMac); if (tagStatus != null) { coordinatesName.Text = Coordinates.GetName(tagStatus.CoordinatesId); positionUpdateTime.Value = tagStatus.PositionUpdateTime; if (tagStatus.HostTag.HostGroupId.Contains(4)) { illness.Checked = true; } if (tagStatus.HostTag.HostGroupId.Contains(3)) { serious.Checked = true; } if (tagStatus.HostTag.HostStatusId == (int)HostTagStatusType.Interrogation) { arraignment.Checked = true; using (AppExtensionDataContext dbExtension = new AppExtensionDataContext()) { InterrogationLog interrogationLog = dbExtension.InterrogationLogs.SingleOrDefault(t => t.CulpritId == tagStatus.HostTag.HostId && t.StartTime == null); if (interrogationLog != null) { if (interrogationLog.PoliceId == me.Id) { arraignment.Enabled = true; } else { arraignment.Enabled = false; } } else { //状态与数据库不一致,需要同步 } } } absence.Text = Misc.GetEventStatusDescription(tagStatus.AbsenceStatus); areaEvent.Text = Misc.GetEventStatusDescription(tagStatus.AreaEventStatus); batteryInsufficient.Text = Misc.GetEventStatusDescription(tagStatus.BatteryInsufficientStatus); batteryReset.Text = Misc.GetEventStatusDescription(tagStatus.BatteryResetStatus); buttonPressed.Text = Misc.GetEventStatusDescription(tagStatus.ButtonPressedStatus); wristletBroken.Text = Misc.GetEventStatusDescription(tagStatus.WristletBrokenStatus); eventUpdateTime.Value = tagStatus.EventUpdateTime; clearAbsence.Visible = tagStatus.AbsenceStatus != (byte)EventStatus.Cleared; clearAreaEvent.Visible = tagStatus.AreaEventStatus != (byte)EventStatus.Cleared; clearBatteryInsufficient.Visible = tagStatus.BatteryInsufficientStatus != (byte)EventStatus.Cleared; clearBatteryReset.Visible = tagStatus.BatteryResetStatus != (byte)EventStatus.Cleared; clearButtonPressed.Visible = tagStatus.ButtonPressedStatus != (byte)EventStatus.Cleared; clearWristletBroken.Visible = tagStatus.WristletBrokenStatus != (byte)EventStatus.Cleared; } } } catch { } } using (AppDataContext db = new AppDataContext()) { list.DataSource = db.DBViewTagAlerts.Where(x => x.TagId == _tagId).OrderByDescending(x => x.WriteTime).Take(10).ToList(); list.ItemCreated += new RepeaterItemEventHandler(list_ItemCreated); list.DataBind(); if (latestWarnings.Visible = list.Items.Count > 0) { moreWarninngs.Href = "../History/MarshalEventLog.aspx?tagNameKeyword=" + Server.UrlEncode(name.Text); } } }