//private string GetDriverWearingSafeBelt(AnalyseRecord analyseRecord)
        //{
        //    string sRet = "未识别";
        //    if (analyseRecord != null && analyseRecord.DriverWearingSafeBelt != null)
        //    {
        //        if (analyseRecord.DriverWearingSafeBelt.ID != 3)
        //        {
        //            sRet = analyseRecord.DriverWearingSafeBelt.Name;
        //        }
        //    }

        //    return sRet;
        //}

        //private string GetPlateNumber(AnalyseRecord analyseRecord)
        //{
        //    string plateNumber = string.Empty;
        //    if (analyseRecord != null)
        //    {
        //        plateNumber = analyseRecord.PlateNumber;
        //        if (analyseRecord.ErrorCode == 0)
        //        {
        //            if (string.Compare(analyseRecord.PlateNumber, "11111111", true) == 0)
        //            {
        //                plateNumber = "无牌车";
        //            }
        //            if (string.Compare(analyseRecord.PlateNumber, "22222222", true) == 0)
        //            {
        //                plateNumber = "两轮车";
        //            }
        //        }
        //        else if (analyseRecord.ErrorCode == -2)
        //        {
        //            plateNumber = "未识别";
        //        }
        //        else
        //        {
        //            plateNumber = "图片错误";
        //        }
        //    }
        //    return plateNumber;
        //}

        //private void GetVehicleBrandName(AnalyseRecord record, ref string brand, ref string model)
        //{
        //    brand =  "未识别" ;
        //    model =  "未识别" ;

        //    if (record.BrandInfo != null)
        //    {
        //        model = record.BrandInfo.Name;
        //        if (record.ParentBrandInfo != null)
        //        {
        //            brand = record.ParentBrandInfo.Name;
        //        }
        //        else
        //        {
        //            brand = string.Empty;
        //        }
        //    }
        //}

        //private void GetVehicleBrandName(AnalyseRecord record, out VehiclePropertyInfo brand, out VehiclePropertyInfo model)
        //{
        //    brand = Constant.PropertyInfo_UNKNOWN;
        //    model = Constant.PropertyInfo_UNKNOWN;

        //    if (record.BrandInfo != null)
        //    {
        //        if (record.ParentBrandInfo != null)
        //        {
        //            if (record.ParentBrandInfo.ID == 999 )
        //            {
        //                // 被归到其它车厂商的车, 车厂家设置成与车型一样
        //                brand = model = record.BrandInfo;
        //            }
        //            else
        //            {
        //                brand = record.ParentBrandInfo;
        //                model = record.BrandInfo;
        //            }
        //        }
        //        else
        //        {
        //            // brand = Constant.PropertyInfo_UNKNOWN;
        //            brand = model = record.BrandInfo;
        //        }
        //    }
        //}

        //private void GetVehicleColor(AnalyseRecord record, ref string vehicleColor, ref string plateColor)
        //{
        //    vehicleColor =
        //     record.VehicleColorInfo != null ? record.VehicleColorInfo.Name : record.VehicleColor;
        //    plateColor =
        //        record.PlateColorInfo != null ? record.PlateColorInfo.Name : record.PlateColor;

        //    if (string.IsNullOrEmpty(vehicleColor))
        //    {
        //        vehicleColor = "未识别";
        //    }
        //    if (string.IsNullOrEmpty(plateColor))
        //    {
        //        plateColor = "未识别";
        //    }
        //}



        //private void OnNewSearch(SearchPara searchPara)
        //{
        //    if (PreNewSearch != null)
        //    {
        //        PreNewSearch(null,null);
        //    }

        //    if (m_ResultPageInfo != null)
        //    {
        //        m_ResultPageInfo.SelectedPageNumberChanged -= new EventHandler(ResultPageInfo_SelectedPageNumberChanged);
        //    }
        //    m_currPageRecords.Clear();

        //}

        public void OnSearchFinished(List <AnalyseRecord> records)
        {
            if (PreNewSearch != null)
            {
                PreNewSearch(null, null);
            }

            if (m_ResultPageInfo != null)
            {
                m_ResultPageInfo.SelectedPageNumberChanged -= new EventHandler(ResultPageInfo_SelectedPageNumberChanged);
            }
            m_currPageRecords.Clear();

            if (records != null && records.Count > 0)
            {
                m_Records = records;

                m_ResultPageInfo = new DataModel.PageInfo(24, m_Records.Count, 0);
                m_ResultPageInfo.SelectedPageNumberChanged += new EventHandler(ResultPageInfo_SelectedPageNumberChanged);
                m_currPageRecords.AddRange(m_Records.GetRange(0, Math.Min(24, m_Records.Count)));
            }
            else
            {
                m_Records        = null;
                m_ResultPageInfo = new DataModel.PageInfo(24, 0, 0);
            }

            if (SearchResult != null)
            {
                SearchResult(true, EventArgs.Empty);
            }
        }
        //private void OnNewCompareSearch(SearchPara searchPara)
        //{
        //    m_isCompareSearch = true;
        //    if (PreNewSearch != null)
        //    {
        //        string[] settings = new string[] { searchPara.Task.TaskName+ " 以图搜车" };
        //        PreNewSearch(settings);
        //    }

        //    if (m_ResultPageInfo != null)
        //    {
        //        m_ResultPageInfo.SelectedPageNumberChanged -= new EventHandler(ResultPageInfo_SelectedPageNumberChanged);
        //    }
        //    m_DTAnalyseResults.Rows.Clear();

        //    m_searchPara = searchPara;
        //    Task = m_searchPara.Task;
        //    // SearchSettings = searchPara.ToString();

        //    //m_FileAccess = FileAccessFactory.GetFileAccess(Task.PictureSource);

        //    if (Framework.Container.Instance.TaskManager.Revisor != null)
        //    {
        //        if (Task.Status == TaskStatus.Finished)
        //        {
        //            m_Records = Framework.Container.Instance.TaskManager.Revisor.GetAllResults(Task);
        //            m_ResultPageInfo = new DataModel.PageInfo(m_Records.Count == 0? 100 : m_Records.Count, searchPara.ResultCount, 0);
        //        }
        //        else
        //        {
        //            m_Records = null;
        //            m_ResultPageInfo = new DataModel.PageInfo(100, 0, 0);
        //        }
        //    }
        //    else
        //    {
        //        m_ResultPageInfo = new DataModel.PageInfo(100, searchPara.ResultCount, 0);
        //        m_ResultPageInfo.SelectedPageNumberChanged += new EventHandler(ResultPageInfo_SelectedPageNumberChanged);
        //        m_SQLQuery = m_searchPara.SqlQuery;
        //        //m_Records = Framework.Container.Instance.TaskManager.SwitchComparePage(m_SQLQuery, m_ResultPageInfo, m_searchPara);
        //    }

        //    FileName = string.Format("{0}: ", m_searchPara.Task.TaskName);
        //    RaisePropertyChangedEvent("FileName");
        //    if (m_Records != null && m_Records.Count > 0)
        //    {
        //        foreach (AnalyseRecord record in m_Records)
        //        {
        //            AddResultRow(m_DTAnalyseResults, record);
        //        }
        //        HasResult = true;
        //    }
        //    else
        //    {
        //        Framework.Container.Instance.InteractionService.ShowMessageBox("没有检索到结果");
        //    }

        //    if (SearchResult != null)
        //    {
        //        SearchResult(this, EventArgs.Empty);
        //    }
        //}
        private void OnSearchFinished(Tuple <List <AnalyseRecord>, long, string> records)
        {
            if (SearchStartTime == null)
            {
                SearchStartTime = DateTime.Now.AddSeconds(-2);
            }
            DateTime searchFinishTime = DateTime.Now;

            Trace.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss,fff") + " OnSearchFinished 1");
            string errorMsg = "";

            if (records != null && records.Item1 != null && records.Item1.Count > 0)
            {
                m_Records = records.Item1;

                m_ResultPageInfo = new DataModel.PageInfo(100, (int)records.Item2, 0);
                m_ResultPageInfo.SelectedPageNumberChanged += new EventHandler(ResultPageInfo_SelectedPageNumberChanged);
                try
                {
                    var detaillist = Framework.Container.Instance.TaskManager.GetDetailResults(m_Records.GetRange(0, Math.Min(100, m_Records.Count)));
                    foreach (AnalyseRecord record in detaillist)
                    {
                        AddResultRow(m_DTAnalyseResults, record);
                        Trace.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss,fff") + " AddResultRow");
                    }
                }
                catch (SDKCallException ex)
                {
                    errorMsg = "无法查询到记录的明细信息,错误信息:" + ex.ToString();
                }
                HasResult = true;
            }
            else
            {
                m_Records        = null;
                m_ResultPageInfo = new DataModel.PageInfo(100, 0, 0);
                errorMsg         = "没有检索到结果" + (string.IsNullOrEmpty(records.Item3) ? "" : ",错误信息:" + records.Item3);
                HasResult        = false;
            }
            Trace.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss,fff") + " OnSearchFinished 2");

            if (SearchResult != null)
            {
                SearchResult(this, EventArgs.Empty);
            }
            Trace.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss,fff") + " OnSearchFinished 3");
            string SearchCastTime1 = searchFinishTime.Subtract(SearchStartTime).TotalSeconds.ToString("0.#") + "秒";
            string SearchCastTime2 = DateTime.Now.Subtract(SearchStartTime).TotalSeconds.ToString("0.#") + "秒";

            FileName = string.Format("检索耗时:{1}: ", m_searchPara.ToString(), SearchCastTime1, SearchCastTime2);
            RaisePropertyChangedEvent("FileName");
            if (!string.IsNullOrEmpty(errorMsg))
            {
                Framework.Container.Instance.InteractionService.ShowMessageBox(errorMsg);
            }
        }
        //private void OnNewCompareSearch(SearchPara searchPara)
        //{
        //    m_isCompareSearch = true;
        //    if (PreNewSearch != null)
        //    {
        //        string[] settings = new string[] { searchPara.Task.TaskName+ " 以图搜车" };
        //        PreNewSearch(settings);
        //    }

        //    if (m_ResultPageInfo != null)
        //    {
        //        m_ResultPageInfo.SelectedPageNumberChanged -= new EventHandler(ResultPageInfo_SelectedPageNumberChanged);
        //    }
        //    m_DTAnalyseResults.Rows.Clear();

        //    m_searchPara = searchPara;
        //    Task = m_searchPara.Task;
        //    // SearchSettings = searchPara.ToString();

        //    //m_FileAccess = FileAccessFactory.GetFileAccess(Task.PictureSource);

        //    if (Framework.Container.Instance.TaskManager.Revisor != null)
        //    {
        //        if (Task.Status == TaskStatus.Finished)
        //        {
        //            m_Records = Framework.Container.Instance.TaskManager.Revisor.GetAllResults(Task);
        //            m_ResultPageInfo = new DataModel.PageInfo(m_Records.Count == 0? 100 : m_Records.Count, searchPara.ResultCount, 0);
        //        }
        //        else
        //        {
        //            m_Records = null;
        //            m_ResultPageInfo = new DataModel.PageInfo(100, 0, 0);
        //        }
        //    }
        //    else
        //    {
        //        m_ResultPageInfo = new DataModel.PageInfo(100, searchPara.ResultCount, 0);
        //        m_ResultPageInfo.SelectedPageNumberChanged += new EventHandler(ResultPageInfo_SelectedPageNumberChanged);
        //        m_SQLQuery = m_searchPara.SqlQuery;
        //        //m_Records = Framework.Container.Instance.TaskManager.SwitchComparePage(m_SQLQuery, m_ResultPageInfo, m_searchPara);
        //    }

        //    FileName = string.Format("{0}: ", m_searchPara.Task.TaskName);
        //    RaisePropertyChangedEvent("FileName");
        //    if (m_Records != null && m_Records.Count > 0)
        //    {
        //        foreach (AnalyseRecord record in m_Records)
        //        {
        //            AddResultRow(m_DTAnalyseResults, record);
        //        }
        //        HasResult = true;
        //    }
        //    else
        //    {
        //        Framework.Container.Instance.InteractionService.ShowMessageBox("没有检索到结果");
        //    }

        //    if (SearchResult != null)
        //    {
        //        SearchResult(this, EventArgs.Empty);
        //    }
        //}
        private void OnSearchFinished(Tuple <List <AnalyseRecord>, long, string> records)
        {
            if (SearchStartTime == null)
            {
                SearchStartTime = DateTime.Now.AddSeconds(-2);
            }
            DateTime searchFinishTime = DateTime.Now;

            Trace.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss,fff") + " OnSearchFinished 1");
            if (records != null && records.Item1 != null && records.Item1.Count > 0)
            {
                m_Records = records.Item1;

                m_ResultPageInfo = new DataModel.PageInfo(24, m_Records.Count, 0);
                m_ResultPageInfo.SelectedPageNumberChanged += new EventHandler(ResultPageInfo_SelectedPageNumberChanged);
                //foreach (AnalyseRecord record in m_Records.GetRange(0, Math.Min(12, m_Records.Count)))
                //{
                //    AddResultRow(m_DTAnalyseResults, record);
                //}
                HasResult = true;
            }
            else
            {
                m_Records        = null;
                m_ResultPageInfo = new DataModel.PageInfo(24, 0, 0);
                Framework.Container.Instance.InteractionService.ShowMessageBox("没有检索到结果" + (string.IsNullOrEmpty(records.Item3)?"":",错误信息:" + records.Item3));
            }
            Trace.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss,fff") + " OnSearchFinished 2");

            if (SearchResult != null)
            {
                SearchResult(true, EventArgs.Empty);
            }
            Trace.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss,fff") + " OnSearchFinished 3");
            string SearchCastTime1 = searchFinishTime.Subtract(SearchStartTime).TotalSeconds.ToString("0.#") + "秒";
            string SearchCastTime2 = DateTime.Now.Subtract(SearchStartTime).TotalSeconds.ToString("0.#") + "秒";

            FileName = string.Format("比对总数:{3}条,检索用时:{1} ", m_searchPara.ToString(), SearchCastTime1, SearchCastTime2, records.Item2);
            RaisePropertyChangedEvent("FileName");
        }
Esempio n. 4
0
        public void OnSearchFinished(List <AnalyseRecord> records)
        {
            if (PreNewSearch != null)
            {
                PreNewSearch(null, null);
            }

            if (m_ResultPageInfo != null)
            {
                m_ResultPageInfo.SelectedPageNumberChanged -= new EventHandler(ResultPageInfo_SelectedPageNumberChanged);
            }
            m_DTAnalyseResults.Clear();

            if (records != null && records.Count > 0)
            {
                m_Records        = records;
                m_GroupRecords   = records.GroupBy(id => id.PlateNumber).ToDictionary(group => group.Key, group => group.ToList());
                m_GroupRecords   = m_GroupRecords.OrderByDescending(o1 => o1.Value.Max(it1 => it1.Score)).ThenByDescending(o2 => o2.Value.Max(it2 => it2.CompareSimilarity)).ToDictionary(r => r.Key, v => v.Value);
                m_ResultPageInfo = new DataModel.PageInfo(24, m_GroupRecords.Count, 0);

                m_ResultPageInfo.SelectedPageNumberChanged += new EventHandler(ResultPageInfo_SelectedPageNumberChanged);
                foreach (List <AnalyseRecord> record in m_GroupRecords.Values.ToList().GetRange(0, Math.Min(24, m_GroupRecords.Count)))
                {
                    m_DTAnalyseResults.Add(record);
                }
                HasResult = true;
            }
            else
            {
                m_Records        = null;
                m_ResultPageInfo = new DataModel.PageInfo(24, 0, 0);
            }

            if (SearchResult != null)
            {
                SearchResult(true, EventArgs.Empty);
            }
        }