public ActionResult Search( DateTime?startTime = null, DateTime?endTime = null, string[] type = null, string[] id = null, string userId = null, string[] department = null, int page = 1, int rows = 20) { var parameter = new UserEvaluationParameter { StartTime = startTime, EndTime = endTime, Types = type, IDs = id, UserID = userId, Departments = department, MigrateType = MigrateType.To, Page = new PageParameter(page, rows) }; ViewBag.List = Core.UserEvaluationManager.Search(parameter); ViewBag.Parameter = parameter; ViewBag.Types = Core.UserEvaluationManager.GetWindTypes(); ViewBag.IDs = Core.UserEvaluationManager.GetWindIds(); ViewBag.UserIDs = Core.UserEvaluationManager.GetUserIDs(); ViewBag.Departments = Core.UserEvaluationManager.GetDepartments(); return(View()); }
public Dictionary <string, Dictionary <string, long> > StatisticWait(UserEvaluationParameter parameter) { var dict = new Dictionary <string, Dictionary <string, long> >(); var query = DB.UserEvaluations.Where(e => e.CallTime.HasValue).AsQueryable(); if (parameter.StartTime.HasValue) { query = query.Where(e => e.CallTime >= parameter.StartTime.Value); } if (parameter.EndTime.HasValue) { query = query.Where(e => e.CallTime <= parameter.EndTime.Value); } var list = query.ToList(); Dictionary <string, List <UserEvaluation> > temp = null; switch (parameter.TimeType) { case TimeType.Day: temp = list.GroupBy(e => e.GetNumberTime.ToString("yyyy-MM-dd")).ToDictionary(e => e.Key, e => e.ToList()); break; case TimeType.Month: temp = list.GroupBy(e => e.GetNumberTime.ToString("yyyy-MM")).ToDictionary(e => e.Key, e => e.ToList()); break; } switch (parameter.Type) { case StatictType.Type: dict = temp.ToDictionary(e => e.Key, e => e.Value.GroupBy(k => string.IsNullOrEmpty(k.WinType) ? "NULL" : k.WinType).ToDictionary(k => k.Key, k => k.Sum(j => j.Seconds) / k.LongCount())); break; case StatictType.User: dict = temp.ToDictionary(e => e.Key, e => e.Value.GroupBy(k => string.IsNullOrEmpty(k.UserID) ? "NULL" : k.UserID).ToDictionary(k => k.Key, k => k.Sum(j => j.Seconds) / k.LongCount())); break; case StatictType.Win: dict = temp.ToDictionary(e => e.Key, e => e.Value.GroupBy(k => string.IsNullOrEmpty(k.WinID) ? "NULL" : k.WinID).ToDictionary(k => k.Key, k => k.Sum(j => j.Seconds) / k.LongCount())); break; case StatictType.Department: dict = temp.ToDictionary(e => e.Key, e => e.Value.GroupBy(k => string.IsNullOrEmpty(k.Department) ? "NULL" : k.Department).ToDictionary(k => k.Key, k => k.Sum(j => j.Seconds) / k.LongCount())); break; } return(dict); }
public ActionResult StatisticWait( TimeType?timeType = null, StatictType?type = null, DateTime?startTime = null, DateTime?endTime = null) { var parameter = new UserEvaluationParameter() { TimeType = timeType.HasValue ? timeType.Value : TimeType.Day, Type = type.HasValue ? type.Value : StatictType.Type, StartTime = startTime, EndTime = endTime }; var dict = Core.UserEvaluationManager.StatisticWait(parameter); ViewBag.Dict = dict; ViewBag.Head = Extract <string>(dict); ViewBag.Parameter = parameter; return(View()); }
public ActionResult DownloadIndex( TimeType?timeType = null, StatictType?type = null, DateTime?startTime = null, DateTime?endTime = null) { var parameter = new UserEvaluationParameter() { TimeType = timeType.HasValue ? timeType.Value : TimeType.Day, Type = type.HasValue ? type.Value : StatictType.Type, StartTime = startTime, EndTime = endTime }; var dict = Core.UserEvaluationManager.Statistic(parameter); IWorkbook workbook = ExcelManager.Save(dict, parameter, Extract <string>(dict), WinTypeHelper.Dict); MemoryStream ms = new MemoryStream(); workbook.Write(ms); ms.Flush(); byte[] fileContents = ms.ToArray(); return(File(fileContents, "application/ms-excel", "统计表.xls")); }
public ActionResult DownloadMigrate(DateTime?startTime = null, DateTime?endTime = null, string userId = null, MigrateType MigrateType = MigrateType.To) { var parameter = new UserEvaluationParameter { StartTime = startTime, EndTime = endTime, UserID = userId, MigrateType = MigrateType }; var list = Core.UserEvaluationManager.Search(parameter); IWorkbook workbook = ExcelManager.Save2(list, WinTypeHelper.Dict); MemoryStream ms = new MemoryStream(); workbook.Write(ms); ms.Flush(); byte[] fileContents = ms.ToArray(); return(File(fileContents, "application/ms-excel", "转移.xls")); }
public ActionResult Migrate( DateTime?startTime = null, DateTime?endTime = null, string userId = null, MigrateType MigrateType = MigrateType.To, int page = 1, int rows = 20) { var parameter = new UserEvaluationParameter { StartTime = startTime, EndTime = endTime, UserID = userId, MigrateType = MigrateType, Page = new PageParameter(page, rows) }; ViewBag.List = Core.UserEvaluationManager.Search(parameter); ViewBag.UserIDs = Core.UserEvaluationManager.GetUserIDs(); ViewBag.Parameter = parameter; return(View()); }
public List <UserEvaluation> Search(UserEvaluationParameter parameter) { var query = DB.UserEvaluations.AsQueryable(); if (parameter.StartTime.HasValue) { query = query.Where(e => e.CallTime >= parameter.StartTime.Value); } if (parameter.EndTime.HasValue) { query = query.Where(e => e.CallTime <= parameter.EndTime.Value); } if (!string.IsNullOrEmpty(parameter.UserID)) { switch (parameter.MigrateType) { case MigrateType.To: if (parameter.UserID == "空") { query = query.Where(e => string.IsNullOrEmpty(e.UserID)); } else { query = query.Where(e => e.UserID == parameter.UserID); } break; case MigrateType.From: if (parameter.UserID == "空") { query = query.Where(e => string.IsNullOrEmpty(e.FromUserID)); } else { query = query.Where(e => e.FromUserID == parameter.UserID); } break; } } if (parameter.Types != null && parameter.Types.Length > 0) { query = query.Where(e => parameter.Types.Contains(e.WinType)); } if (parameter.IDs != null && parameter.IDs.Length > 0) { if (parameter.IDs.Contains("空")) { query = query.Where(e => parameter.IDs.Contains(e.WinID) || string.IsNullOrEmpty(e.WinID)); } else { query = query.Where(e => parameter.IDs.Contains(e.WinID)); } } if (parameter.Departments != null && parameter.Departments.Length > 0) { if (parameter.Departments.Contains("空")) { query = query.Where(e => parameter.Departments.Contains(e.Department) || string.IsNullOrEmpty(e.Department)); } else { query = query.Where(e => parameter.Departments.Contains(e.Department)); } } query = query.OrderByDescending(e => e.ID).SetPage(parameter.Page); return(query.ToList()); }
public static IWorkbook Save( Dictionary <string, Dictionary <string, long> > dict, UserEvaluationParameter paramter, List <string> heads, Dictionary <string, string> headDict) { if (!System.IO.File.Exists(_modelExcelFilePath)) { return(null); } IWorkbook workbook = _modelExcelFilePath.OpenExcel(); if (workbook != null) { var sheet = workbook.GetSheetAt(0); if (sheet != null) { var modelrow = sheet.GetRow(0); var modelcell = modelrow.GetCell(0); modelcell.SetCellValue(string.Format("时间\\{0}", paramter.Type.GetDescription())); var i = 1; foreach (var head in heads) { var cell = GetCell(modelrow, i++, modelcell); if (headDict.ContainsKey(head)) { cell.SetCellValue(headDict[head]); } else { cell.SetCellValue(head); } } i = 1; foreach (var entry in dict.OrderByDescending(e => e.Key)) { var row = sheet.GetRow(i); if (row == null) { row = sheet.CreateRow(i); } i++; var cell = GetCell(row, 0, modelcell); cell.SetCellValue(entry.Key); var j = 1; foreach (var head in heads) { cell = GetCell(row, j++, modelcell); if (entry.Value.ContainsKey(head)) { cell.SetCellValue(entry.Value[head]); } else { cell.SetCellValue("/"); } } } } } return(workbook); }