Esempio n. 1
0
        /// <summary>
        /// 将查询转为记录
        /// </summary>
        /// <param name="queryData">查询结果</param>
        /// <returns>记录列表</returns>
        List <InternalMemoReport> ConvertReports(List <SOInternalMemoInfo> queryData)
        {
            List <InternalMemoReport> reports = new List <InternalMemoReport>();
            //去掉重复数据
            var distinctQuery = queryData.Distinct();
            var users         = distinctQuery.GroupBy(item => item.CreateUserSysNo);

            foreach (var user in users)
            {
                InternalMemoReport report = new InternalMemoReport();
                report.UserSysNo = user.Key;
                report.UserName  = ExternalDomainBroker.GetUserInfoBySysNo(user.First().CreateUserSysNo).UserDisplayName;

                List <int> ProcessedSOList = new List <int>();

                foreach (var imemo in user.OrderBy(item => item.LogTime.Value).ToList())
                {
                    if (ProcessedSOList.Exists(item => item == imemo.SOSysNo))
                    {
                        continue;
                    }

                    if (distinctQuery.Count(item => (item.LogTime.Value > imemo.LogTime.Value &&
                                                     item.LogTime.Value.AddDays(-3) < imemo.LogTime.Value) &&
                                            item.SOSysNo == imemo.SOSysNo) == 0)
                    {
                        report.ResolvedCount++;
                    }
                    else
                    {
                        report.UnResolvedCount++;
                    }
                    ProcessedSOList.Add(imemo.SOSysNo);
                }

                reports.Add(report);
            }

            return(reports);
        }
Esempio n. 2
0
        public List <InternalMemoReport> GetReports(List <InternalMemoEntity> ImemoList)
        {
            List <InternalMemoReport> reports = new List <InternalMemoReport>();
            var users = ImemoList.GroupBy(item => item.UserSysNo).ToList();

            foreach (var user in users)
            {
                InternalMemoReport report = new InternalMemoReport();
                report.UserSysNo = user.Key;
                report.UserName  = user.ToList()[0].UserName;

                List <int> ProcessedSOList = new List <int>();

                foreach (var imemo in user.OrderBy(item => item.InDate).ToList())
                {
                    if (ProcessedSOList.Exists(item => item == imemo.SOSysNo))
                    {
                        continue;
                    }

                    if (!ImemoList.Exists(item => (item.InDate > imemo.InDate &&
                                                   item.InDate.AddDays(-3) < imemo.InDate) &&
                                          item.SOSysNo == imemo.SOSysNo))
                    {
                        report.ResolvedCount++;
                        ProcessedSOList.Add(imemo.SOSysNo);
                    }
                    else
                    {
                        report.UnResolvedCount++;
                        ProcessedSOList.Add(imemo.SOSysNo);
                    }
                }

                reports.Add(report);
            }

            return(reports);
        }