diff --git a/src/Shentun.Peis.Application.Contracts/PatientRegisters/GetListInSearchDto.cs b/src/Shentun.Peis.Application.Contracts/PatientRegisters/GetListInSearchDto.cs index 11bd572..adc9318 100644 --- a/src/Shentun.Peis.Application.Contracts/PatientRegisters/GetListInSearchDto.cs +++ b/src/Shentun.Peis.Application.Contracts/PatientRegisters/GetListInSearchDto.cs @@ -55,6 +55,11 @@ namespace Shentun.Peis.PatientRegisters /// public string? EndDate { get; set; } + /// + /// 日期类型(1、登记日期 2、体检日期 ) 默认登记日期 + /// + public char DateType { get; set; } = '1'; + /// /// 完成状态 /// @@ -75,7 +80,7 @@ namespace Shentun.Peis.PatientRegisters public int MaxResultCount { get; set; } = 50; public int SkipCount { get; set; } = 0; - + } } diff --git a/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs b/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs index 51d0f9e..5d49cd0 100644 --- a/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs +++ b/src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs @@ -447,9 +447,26 @@ namespace Shentun.Peis.PatientRegisters entlist = entlist.Where(m => m.patientRegister.SexId == input.SexId); if (!string.IsNullOrEmpty(input.StartDate) && !string.IsNullOrEmpty(input.EndDate)) - entlist = entlist.Where(m => m.patientRegister.CreationTime >= Convert.ToDateTime(input.StartDate) && - m.patientRegister.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1)); - + { + if (input.DateType == '1') + { + entlist = entlist.Where(m => m.patientRegister.CreationTime >= Convert.ToDateTime(input.StartDate) && + m.patientRegister.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1)); + } + else if (input.DateType == '2') + { + entlist = entlist.Where(m => m.patientRegister.MedicalStartDate >= Convert.ToDateTime(input.StartDate) && + m.patientRegister.MedicalStartDate < Convert.ToDateTime(input.EndDate).AddDays(1)); + } + else + { + entlist = entlist.Where(m => (m.patientRegister.CreationTime >= Convert.ToDateTime(input.StartDate) && + m.patientRegister.CreationTime < Convert.ToDateTime(input.EndDate).AddDays(1)) + || (m.patientRegister.MedicalStartDate >= Convert.ToDateTime(input.StartDate) && + m.patientRegister.MedicalStartDate < Convert.ToDateTime(input.EndDate).AddDays(1)) + ); + } + } if (input.CompleteFlag != null) { entlist = entlist.Where(m => m.patientRegister.CompleteFlag == input.CompleteFlag); @@ -1083,6 +1100,8 @@ namespace Shentun.Peis.PatientRegisters from ac in cc.DefaultIfEmpty() join d in await _registerCheckAsbitemRepository.GetQueryableAsync() on ac.Id equals d.RegisterCheckId into dd from ad in dd.DefaultIfEmpty() + join e in await _asbitemRepository.GetQueryableAsync() on ad.AsbitemId equals e.Id + where e.IsCheck == 'Y' select new { a, @@ -1324,6 +1343,8 @@ namespace Shentun.Peis.PatientRegisters from ac in cc.DefaultIfEmpty() join d in await _registerCheckAsbitemRepository.GetQueryableAsync() on ac.Id equals d.RegisterCheckId into dd from ad in dd.DefaultIfEmpty() + join e in await _asbitemRepository.GetQueryableAsync() on ad.AsbitemId equals e.Id + where e.IsCheck == 'Y' select new { a, @@ -1431,7 +1452,9 @@ namespace Shentun.Peis.PatientRegisters - if (input.CompleteFlag != null && input.CompleteFlag != PatientRegisterCompleteFlag.ItemCheckUnSumCheck) + if (input.CompleteFlag != null + && input.CompleteFlag != PatientRegisterCompleteFlag.ItemCheckUnSumCheck + && input.CompleteFlag != PatientRegisterCompleteFlag.PartCheck) { sumquery = sumquery.Where(m => m.a.CompleteFlag == input.CompleteFlag); } @@ -3026,13 +3049,16 @@ namespace Shentun.Peis.PatientRegisters public async Task GetPatientRegisterItemStatusAsync(Guid PatientRegisterId) { //未检组合项目 - var UnCheckedAsbitem = (await _registerCheckAsbitemRepository.GetDbSetAsync()) + var UnCheckedAsbitem = (await _registerCheckAsbitemRepository.GetQueryableAsync()) .Include(x => x.Asbitem) .Include(x => x.RegisterCheck) - .Where(m => m.PatientRegisterId == PatientRegisterId && m.RegisterCheck.CompleteFlag == RegisterCheckCompleteFlag.UnChecked).OrderBy(o => o.Asbitem.DisplayOrder).Select(s => s.Asbitem.DisplayName).ToList(); + .Where(m => m.PatientRegisterId == PatientRegisterId + && m.RegisterCheck.CompleteFlag == RegisterCheckCompleteFlag.UnChecked + && m.Asbitem.IsCheck == 'Y') + .OrderBy(o => o.Asbitem.DisplayOrder).Select(s => s.Asbitem.DisplayName).ToList(); //弃检检组合项目 - var GiveUpAsbitem = (await _registerCheckAsbitemRepository.GetDbSetAsync()) + var GiveUpAsbitem = (await _registerCheckAsbitemRepository.GetQueryableAsync()) .Include(x => x.Asbitem) .Include(x => x.RegisterCheck) .Where(m => m.PatientRegisterId == PatientRegisterId && m.RegisterCheck.CompleteFlag == RegisterCheckCompleteFlag.GiveUpChecked).OrderBy(o => o.Asbitem.DisplayOrder).Select(s => s.Asbitem.DisplayName).ToList();