/// <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); }
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); }