protected void repeater_ItemCreated(object sender, RepeaterItemEventArgs e)
        {
            InterrogationLog log = e.Item.DataItem as InterrogationLog;

            SmartLabel    policeName  = e.Item.FindControl("policeName") as SmartLabel;
            SmartLabel    culpritName = e.Item.FindControl("culpritName") as SmartLabel;
            SmartLabel    status      = e.Item.FindControl("status") as SmartLabel;
            DateTimeLabel StartTime   = e.Item.FindControl("StartTime") as DateTimeLabel;
            DateTimeLabel EndTime     = e.Item.FindControl("EndTime") as DateTimeLabel;
            User          user        = Data.User.Select(log.PoliceId);

            if (user != null)
            {
                policeName.Text = Data.User.Select(log.PoliceId).UserName;
            }
            culpritName.Text       = HostTag.GetById(log.CulpritId).HostName;
            StartTime.DisplayValue = log.StartTime;
            if (log.EndTime != null)
            {
                EndTime.DisplayValue = log.EndTime.Value;
                status.Text          = "提审完成";
            }
            else
            {
                status.Text = "提审中";
            }
        }
예제 #2
0
        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);
                }
            }
        }
        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);
            }
        }
예제 #4
0
        protected void deleteButton_Click(object sender, EventArgs e)
        {
            HostTag host = HostTag.GetById(_id);

            if (host != null)
            {
                bool serviceAvailable = LocatingServiceUtil.IsAvailable();
                var  tagId            = host.TagId;

                if (tagId > 0)
                {
                    using (AppDataContext db = new AppDataContext())
                    {
                        //更新标签名称
                        Tag tag = Tag.Select(tagId);
                        if (tag != null)
                        {
                            string mac = tag.TagMac;
                            if (serviceAvailable)
                            {
                                LocatingServiceUtil.Instance <IServiceApi>().UpdateTagNameAndSerialNo(tagId, "NewTag_" + mac.Substring(12), "");
                            }
                            else
                            {
                                Tag.UpdateTagNameAndSerialNo(tagId, "NewTag_" + mac.Substring(12), "");
                            }
                        }

                        //删除标签历史记录和相关信息
                        AreaEventLog.DeleteByTagId(tagId);
                        GenericEventLog.DeleteByTagId(tagId);
                        TagPositionLog.DeleteByTagId(tagId);
                        //LocationChangeLog.DeleteMany(tagId);
                        //LatestEvent.DeleteByTagId(tagId);
                        TagEventStatus.DeleteMany(tagId);
                        TagPositionStatus.DeleteMany(tagId);
                        AreaWarningRuleCoverage.DeleteMany(tagId);
                        InterrogationLog.DeleteMany(host.HostId);
                        TagAlert.DeleteTagAlerts(tagId);
                        //删除低电记录: 不执行删除
                        //db.ExecuteCommand("delete from history_BatteryResetLog where TagId=", tagId);
                    }
                    TagLocateSetting.StopLocating(tagId);

                    if (serviceAvailable)
                    {
                        var s = LocatingServiceUtil.Instance <IServiceApi>();
                        s.StartStopLocating();
                    }

                    int areaId = CulpritRoomReference.GetRoomIdByCulpritId(host.HostId);
                    if (areaId != 0)
                    {
                        //查询警告条件
                        var ruleId = AreaWarningRule.SelectRuleByAreaId(areaId).Select(x => x.Id).FirstOrDefault();
                        //如果警告条件不存在,则自动建立一条
                        if (ruleId != 0)
                        {
                            //为警告条件设置关联标签
                            var culpritIdArray = CulpritRoomReference.All.Where(x => x.JailRoomId == areaId).Select(x => x.CulpritId).ToArray();
                            var tagIdArray     = HostTag.All.Where(x => culpritIdArray.Contains(x.HostId) && x.TagId > 0 && x.TagId != tagId).Select(x => x.TagId).ToArray();
                            if (serviceAvailable)
                            {
                                LocatingServiceUtil.Instance <IServiceApi>().SetWarningRuleCoverage(ruleId, tagIdArray);
                            }
                            else
                            {
                                AreaWarningRuleCoverage.SetCoverage(ruleId, tagIdArray);
                            }
                        }
                    }
                }

                //删除使用者信息
                CulpritRoomReference.DeleteByCulpritId(_id);
                //TagUser.DeleteById(_id);
                HostTag.DeleteHostTag(_id);
                TagStatusView.SelectTagStatus(tagId).HostTag = null;

                if (tagId > 0 && serviceAvailable)
                {
                    LocatingServiceUtil.Instance <IServiceApi>().ReloadTagHost(tagId);
                }

                //记录日志
                Diary.Insert(ContextUser.Current.Id, tagId, _id, "删除犯人" + host.HostName + "的信息" + (host.TagId == 0 ? "" : "并解除标签绑定。") + "。");
            }
            ShowMessagePage("删除成功。");
        }