Exemple #1
0
        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);
            }
        }
Exemple #4
0
 public IPagedList <HealthResult> Search(HealthResultSearchModel searchModel)
 {
     return(_healthResultRepository.Search(searchModel));
 }