public ActionResult StatisticCoQuan(ValueSearchStatisticViewModel model) { var find = Find(model); var tinhHinhThucHienByTacNghiep = TacNghiepTinhHinhThucHienRepository.GetAllByListTacNghiepId(find.Select(x => x.Id)); var result = tinhHinhThucHienByTacNghiep.GroupBy(x => new { x.CoQuanId, x.CoQuanInfo.Name }, y => y, (a, b) => { return(new ResultStatisticByCoQuanViewModel { TenCoQuan = a.Name, NotExecuteResults = b.Where(x => x.MucDoHoanThanhId == (int)EnumMucDoHoanThanh.CHUATHUHIEN).Select(s => new ResultCongViecThucHien { LinhVucString = s.TacNghiepInfo.LinhVucTacNghiepInfo.Name, VanBan = GetPathFiles(EnsureFolderTacNghiep(s.TacNghiepId)), NoiDungCongViec = s.TacNghiepInfo.NoiDung, NgayHoanThanh = s.NgayHoanThanh, NgayTao = s.TacNghiepInfo.NgayTao, NgayHetHan = s.TacNghiepInfo.NgayHetHan, TrangThai = "Chưa thực hiện", }), ExecutingResults = b.Where(w => w.MucDoHoanThanhId == (int)EnumMucDoHoanThanh.DANGTHUCHIEN).Select(s => new ResultCongViecThucHien { LinhVucString = s.TacNghiepInfo.LinhVucTacNghiepInfo.Name, VanBan = GetPathFiles(EnsureFolderTacNghiep(s.TacNghiepId)), NoiDungCongViec = s.TacNghiepInfo.NoiDung, NgayHoanThanh = s.NgayHoanThanh, NgayTao = s.TacNghiepInfo.NgayTao, NgayHetHan = s.TacNghiepInfo.NgayHetHan, TrangThai = "Đang thực hiện", }), ExecutedResults = b.Where(w => (w.MucDoHoanThanhId == (int)EnumMucDoHoanThanh.DATHUCHIEN || w.MucDoHoanThanhId == (int)EnumMucDoHoanThanh.DAHOANHTHANH) && w.NgayHoanThanh.CompareDate(w.TacNghiepInfo.NgayHetHan)).Select(s => new ResultCongViecThucHien { LinhVucString = s.TacNghiepInfo.LinhVucTacNghiepInfo.Name, VanBan = GetPathFiles(EnsureFolderTacNghiep(s.TacNghiepId)), NoiDungCongViec = s.TacNghiepInfo.NoiDung, NgayHoanThanh = s.NgayHoanThanh, NgayTao = s.TacNghiepInfo.NgayTao, NgayHetHan = s.TacNghiepInfo.NgayHetHan, TrangThai = "Đã thực hiện/đúng hạn", }), ExecutedOverResults = b.Where(w => (w.MucDoHoanThanhId == (int)EnumMucDoHoanThanh.DATHUCHIEN || w.MucDoHoanThanhId == (int)EnumMucDoHoanThanh.DAHOANHTHANH) && !w.NgayHoanThanh.CompareDate(w.TacNghiepInfo.NgayHetHan)).Select(s => new ResultCongViecThucHien { LinhVucString = s.TacNghiepInfo.LinhVucTacNghiepInfo.Name, VanBan = GetPathFiles(EnsureFolderTacNghiep(s.TacNghiepId)), NoiDungCongViec = s.TacNghiepInfo.NoiDung, NgayHoanThanh = s.NgayHoanThanh, NgayTao = s.TacNghiepInfo.NgayTao, NgayHetHan = s.TacNghiepInfo.NgayHetHan, TrangThai = "Đã thực hiện/trễ hạn", IsDeadline = true }), }); }); return(PartialView("_PartialPageStatisticCoQuan", result)); }
private IEnumerable <TacNghiepResult> Find(ValueSearchStatisticViewModel model) { var all = TacNghiepRepository.GetAll(); if (model.CoQuanId.HasValue) { all = all.Where(x => x.CoQuanInfos.Any(y => y.Id == model.CoQuanId.Value)); } if (model.LinhVucTacNghiepId.HasValue) { all = all.Where(x => x.LinhVucTacNghiepId == model.LinhVucTacNghiepId.Value); } if (model.MucDoHoanThanhId.HasValue) { all = all.Where(x => x.MucDoHoanThanhId == model.MucDoHoanThanhId.Value); } if (model.From.HasValue) { all = all.Where(x => x.NgayTao >= model.From.Value); } if (model.To.HasValue) { all = all.Where(x => x.NgayTao <= model.To.Value); } return(all); }
public ActionResult StatisticCongViec(ValueSearchStatisticViewModel model) { var find = Find(model); var tinhHinhThucHienByTacNghiep = TacNghiepTinhHinhThucHienRepository.GetAllByListTacNghiepId(find.Select(x => x.Id)); var result = tinhHinhThucHienByTacNghiep.GroupBy(x => new { x.TacNghiepInfo.NoiDung, x.TacNghiepId, x.TacNghiepInfo.NgayTao, x.TacNghiepInfo.NgayHoanThanh }, y => y, (a, b) => { return(new ResultStatisticByCongViecViewModel { NgayTao = a.NgayTao, Name = a.NoiDung, NotExecuteResults = b.Where(w => (w.MucDoHoanThanhId == (int)EnumMucDoHoanThanh.CHUATHUHIEN || w.MucDoHoanThanhId == (int)EnumMucDoHoanThanh.DAXEM)).Select(s => new ResultCoQuanThucHien { Name = s.CoQuanInfo.Name, }), ExecutingResults = b.Where(w => w.MucDoHoanThanhId == (int)EnumMucDoHoanThanh.DANGTHUCHIEN).Select(s => new ResultCoQuanThucHien { Name = s.CoQuanInfo.Name, }), ExecutedResults = b.Where(w => w.MucDoHoanThanhId == (int)EnumMucDoHoanThanh.DATHUCHIEN || w.MucDoHoanThanhId == (int)EnumMucDoHoanThanh.DAHOANHTHANH).Select(s => new ResultCoQuanThucHien { Name = s.CoQuanInfo.Name, NgayHoanThanh = a.NgayHoanThanh, }), }); }); return(PartialView("_PartialPageStatisticCongViec", result)); }