public IPagedList <HealthResult> Search(HealthResultSearchModel searchModel) { string selectedWorkType = null; bool compareEmptyOrNullWorkType = false; if (searchModel.SelectedWorkType != null) { selectedWorkType = searchModel.SelectedWorkType.Replace("NULL", ""); compareEmptyOrNullWorkType = true; } string selectedFinalResult = null; bool compareEmptyOrNullFinalResult = false; if (searchModel.SelectedFinalResults != null) { selectedFinalResult = searchModel.SelectedFinalResults.Replace("NULL", ""); compareEmptyOrNullFinalResult = true; } var query = _context.HealthResult .Where(x => x.Deleted == false && (searchModel.SelectedCompany == null || x.CompanyEmployee.Company.Id == searchModel.SelectedCompany) && (string.IsNullOrEmpty(searchModel.AdverseFactor) || x.CompanyEmployee.AdverseFactor.Contains(searchModel.AdverseFactor)) && (searchModel.MinHealthDate == null || x.HealthDate >= searchModel.MinHealthDate) && (searchModel.MaxHealthDate == null || x.HealthDate <= searchModel.MaxHealthDate) && (searchModel.SelectedWorkType == null || selectedWorkType.Contains(x.CompanyEmployee.WorkType) || (compareEmptyOrNullWorkType == false || compareEmptyOrNullWorkType == true && string.IsNullOrEmpty(x.CompanyEmployee.WorkType) == true)) && (searchModel.SelectedFinalResults == null || selectedFinalResult.Contains(x.Result) || (compareEmptyOrNullFinalResult == false || compareEmptyOrNullFinalResult == true && string.IsNullOrEmpty(x.Result) == true)) && (string.IsNullOrEmpty(searchModel.HealthResultKeyWord) == true || x.Result.Contains(searchModel.HealthResultKeyWord) || x.ImageCode.Contains(searchModel.HealthResultKeyWord) || x.MainPositiveResult.Contains(searchModel.HealthResultKeyWord) || x.ReportCode.Contains(searchModel.HealthResultKeyWord) || x.HealthCode.Contains(searchModel.HealthResultKeyWord) || x.HealthPerson.Contains(searchModel.HealthResultKeyWord) ) && (string.IsNullOrEmpty(searchModel.EmployeeKeyWord) == true || x.CompanyEmployee.EmployeeBaseInfo.UserName.Contains(searchModel.EmployeeKeyWord) || x.CompanyEmployee.EmployeeBaseInfo.IDCard.Contains(searchModel.EmployeeKeyWord) || x.CompanyEmployee.AdverseFactor.Contains(searchModel.EmployeeKeyWord) ) && (searchModel.MinAdverseYears == null || x.CompanyEmployee.AdverseMonthes >= searchModel.MinAdverseYears * 12) && (searchModel.MaxAdverseYears == null || x.CompanyEmployee.AdverseMonthes <= searchModel.MaxAdverseYears * 12) ).OrderBy(x => x.ReportCode); var count = query.Count(); var result = query.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize).ToList(); return(new PagedList <HealthResult>(result, searchModel.PageIndex, searchModel.PageSize, count)); }
public ActionResult Download(HealthResultSearchViewModel model) { using (UnitOfWorkManager.NewUnitOfWork()) { var companies = _companyService.GetAll(); LoadCompanyList(model, companies); var finalResults = _healthResultService.GetAllFinalResults(); LoadFinalResultList(model, finalResults); IList <string> workTypes = _companyEmployeeService.GetWorkTypes(null); LoadWorkTypes(model, workTypes); var searchModel = new HealthResultSearchModel { PageIndex = 1, PageSize = int.MaxValue, EmployeeKeyWord = model.EmployeeKeyWord, HealthResultKeyWord = model.HealthResultKeyWord, MaxAdverseYears = model.MaxAdverseYears, MinAdverseYears = model.MinAdverseYears, SelectedCompany = model.SelectedCompany, SelectedFinalResults = model.SelectedFinalResults, SelectedWorkType = model.SelectedWorkType, AdverseFactor = model.AdverseFactor, MinHealthDate = model.MinHealthDate, MaxHealthDate = model.MaxHealthDate }; model.HealthResults = _healthResultService.Search(searchModel); try { var fileName = DateTime.Now.ToString("yyyyMMddhhmmss") + ".xlsx"; var filePath = Server.MapPath("~/Content/ExportFiles/" + fileName); System.IO.File.Copy(Server.MapPath("~/Content/Templates/体检结果模板(导出).xlsx"), filePath); _healthResultService.ExportHealthResult(filePath, model.HealthResults.ToList()); return(File(filePath, "text/xls", "体检结果.xlsx")); } catch (Exception ex) { ErrorNotification(ex); return(RedirectToAction("Search", new { @model = model })); } } }
private void SearchHealthResult(HealthResultSearchViewModel model) { using (UnitOfWorkManager.NewUnitOfWork()) { if (WorkContext.CurrentMembershipUser.MembershipRoles.FirstOrDefault(x => x.Id == new Guid("7A2F0ECA-4DAF-4AA5-8C1D-9CFFD6AAD69F")) != null || WorkContext.CurrentMembershipUser.MembershipRoles.FirstOrDefault(x => x.Id == new Guid("1DE9E15C-D0DE-4B90-BD95-9D1167D86C50")) != null) { var companies = _companyService.GetAll(); LoadCompanyList(model, companies); } else { LoadCompanyListForEnterpriseUser(model); } var finalResults = _healthResultService.GetAllFinalResults(); LoadFinalResultList(model, finalResults); IList <string> workTypes = _companyEmployeeService.GetWorkTypes(null); LoadWorkTypes(model, workTypes); var searchModel = new HealthResultSearchModel { PageIndex = model.PageIndex, EmployeeKeyWord = model.EmployeeKeyWord, HealthResultKeyWord = model.HealthResultKeyWord, MaxAdverseYears = model.MaxAdverseYears, MinAdverseYears = model.MinAdverseYears, SelectedCompany = model.SelectedCompany, SelectedFinalResults = model.SelectedFinalResults, SelectedWorkType = model.SelectedWorkType, AdverseFactor = model.AdverseFactor, MinHealthDate = model.MinHealthDate, MaxHealthDate = model.MaxHealthDate }; model.HealthResults = _healthResultService.Search(searchModel); } }
public IPagedList <HealthResult> Search(HealthResultSearchModel searchModel) { return(_healthResultRepository.Search(searchModel)); }