diff --git a/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/AppointScheduleDto.cs b/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/AppointScheduleDto.cs index 4679f39..6a22f0f 100644 --- a/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/AppointScheduleDto.cs +++ b/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/AppointScheduleDto.cs @@ -18,6 +18,11 @@ namespace Shentun.WebPeis.AppointSchedules public int SingleNumberLimit { get; set; } + /// + /// 当天总限制数量 + /// + public int SumNumberLimit { get; set; } + /// /// 体检中心ID /// diff --git a/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs b/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs index 7b445d6..22acc58 100644 --- a/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs +++ b/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs @@ -266,33 +266,46 @@ namespace Shentun.WebPeis.AppointSchedules [HttpPost("api/app/AppointSchedule/GetAppointScheduleList")] public async Task> GetAppointScheduleListAsync(GetAppointScheduleListInputDto input) { - var entList = (await _appointScheduleRepository.GetQueryableAsync()).Where(m => m.MedicalCenterId == input.MedicalCenterId); + //var entList = (await _appointScheduleRepository.GetQueryableAsync()) + // .Where(m => m.MedicalCenterId == input.MedicalCenterId); + + var entList = from appointSchedule in await _appointScheduleRepository.GetQueryableAsync() + join appointScheduleTime in await _appointScheduleTimeRepository.GetQueryableAsync() + on appointSchedule.AppointScheduleId equals appointScheduleTime.AppointScheduleId into appointScheduleTimeTemp + from appointScheduleTimeHaveEmpty in appointScheduleTimeTemp.DefaultIfEmpty() + where appointSchedule.MedicalCenterId == input.MedicalCenterId + select new + { + appointSchedule, + NumberLimit = appointScheduleTimeHaveEmpty != null ? appointScheduleTimeHaveEmpty.NumberLimit : 0 + }; if (!string.IsNullOrWhiteSpace(input.StartDate)) { if (!string.IsNullOrWhiteSpace(input.EndDate)) { - entList = entList.Where(m => m.AppointDate.Date >= DateTime.Parse(input.StartDate) - && m.AppointDate.Date <= DateTime.Parse(input.EndDate)); + entList = entList.Where(m => m.appointSchedule.AppointDate.Date >= DateTime.Parse(input.StartDate) + && m.appointSchedule.AppointDate.Date <= DateTime.Parse(input.EndDate)); } else { - entList = entList.Where(m => m.AppointDate.Date >= DateTime.Parse(input.StartDate)); + entList = entList.Where(m => m.appointSchedule.AppointDate.Date >= DateTime.Parse(input.StartDate)); } } - var entListDto = entList.ToList().Select(s => new AppointScheduleDto + var entListDto = entList.ToList().GroupBy(g => g.appointSchedule).Select(s => new AppointScheduleDto { - AppointDate = DataHelper.ConversionDateShortToString(s.AppointDate), - AppointScheduleId = s.AppointScheduleId, - CreationTime = s.CreationTime, - CreatorId = s.CreatorId, - LastModificationTime = s.LastModificationTime, - LastModifierId = s.LastModifierId, - CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result, - LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result, - SingleNumberLimit = s.SingleNumberLimit, - IsWork = s.IsWork, - MedicalCenterId = s.MedicalCenterId + AppointDate = DataHelper.ConversionDateShortToString(s.Key.AppointDate), + AppointScheduleId = s.Key.AppointScheduleId, + CreationTime = s.Key.CreationTime, + CreatorId = s.Key.CreatorId, + LastModificationTime = s.Key.LastModificationTime, + LastModifierId = s.Key.LastModifierId, + CreatorName = _cacheService.GetSurnameAsync(s.Key.CreatorId).Result, + LastModifierName = _cacheService.GetSurnameAsync(s.Key.LastModifierId).Result, + SingleNumberLimit = s.Key.SingleNumberLimit, + IsWork = s.Key.IsWork, + MedicalCenterId = s.Key.MedicalCenterId, + SumNumberLimit = s.Sum(m => m.NumberLimit) }).OrderBy(o => o.AppointDate).ToList(); return entListDto; } diff --git a/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs b/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs index ebb7525..93d0368 100644 --- a/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs +++ b/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs @@ -1,6 +1,7 @@ using AutoMapper.Internal.Mappers; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Shentun.WebPeis.DiseaseRisks; using Shentun.WebPeis.Models; using System; using System.Collections.Generic; @@ -78,6 +79,39 @@ namespace Shentun.WebPeis.DiseaseRiskLevels return entdto; + } + + + /// + /// 获取列表 根据疾病风险ID + /// + /// + [HttpPost("api/app/DiseaseRiskLevel/GetDiseaseRiskLevelByDiseaseRiskId")] + public async Task> GetDiseaseRiskLevelByDiseaseRiskIdAsync(DiseaseRiskIdInputDto input) + { + var entlist = (await _diseaseRiskLevelRepository.GetQueryableAsync()).Where(m => m.DiseaseRiskId == input.DiseaseRiskId); + + var entdto = entlist.Select(s => new DiseaseRiskLevelDto + { + CreationTime = s.CreationTime, + CreatorId = s.CreatorId, + DisplayOrder = s.DisplayOrder, + LastModificationTime = s.LastModificationTime, + LastModifierId = s.LastModifierId, + SimpleCode = s.SimpleCode, + DiagnosisFunction = s.DiagnosisFunction, + DiseaseRiskId = s.DiseaseRiskId, + DiseaseRiskLevelId = s.DiseaseRiskLevelId, + DiseaseRiskLevelName = s.DiseaseRiskLevelName, + Explain = s.Explain, + Suggestion = s.Suggestion, + CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result, + LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result + }).OrderBy(o => o.DisplayOrder).ToList(); + + return entdto; + + } ///