From fa101eae368ab463380d903b58d8e13fc505fe10 Mon Sep 17 00:00:00 2001 From: "DESKTOP-G961P6V\\Zhh" <839860190@qq.com> Date: Mon, 3 Jun 2024 20:01:17 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=BA=A6=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AppointScheduleTimeDto.cs | 5 +- .../AppointScheduleTimeAppService.cs | 1 + .../AppointScheduleAppService.cs | 36 ++++++++++++- .../AppointScheduleAppServiceTest.cs | 53 +++++++++++++++++++ .../EfCoreAppointScheduleAppServiceTest.cs | 14 +++++ 5 files changed, 106 insertions(+), 3 deletions(-) create mode 100644 test/Shentun.WebPeis.Application.Tests/AppointScheduleAppServiceTest.cs create mode 100644 test/Shentun.WebPeis.EntityFrameworkCore.Tests/EntityFrameworkCore/Applications/EfCoreAppointScheduleAppServiceTest.cs diff --git a/src/Shentun.WebPeis.Application.Contracts/AppointScheduleTimes/AppointScheduleTimeDto.cs b/src/Shentun.WebPeis.Application.Contracts/AppointScheduleTimes/AppointScheduleTimeDto.cs index b0e1233..4aaa278 100644 --- a/src/Shentun.WebPeis.Application.Contracts/AppointScheduleTimes/AppointScheduleTimeDto.cs +++ b/src/Shentun.WebPeis.Application.Contracts/AppointScheduleTimes/AppointScheduleTimeDto.cs @@ -31,8 +31,11 @@ namespace Shentun.WebPeis.AppointScheduleTimes public int AppointNumber { get; set; } + /// + /// 可预约数 + /// + public int CanAppointNumber { get; set; } - public Guid AppointScheduleId { get; set; } } diff --git a/src/Shentun.WebPeis.Application/AppointScheduleTimes/AppointScheduleTimeAppService.cs b/src/Shentun.WebPeis.Application/AppointScheduleTimes/AppointScheduleTimeAppService.cs index 009b35d..1fc4f20 100644 --- a/src/Shentun.WebPeis.Application/AppointScheduleTimes/AppointScheduleTimeAppService.cs +++ b/src/Shentun.WebPeis.Application/AppointScheduleTimes/AppointScheduleTimeAppService.cs @@ -54,6 +54,7 @@ namespace Shentun.WebPeis.AppointScheduleTimes AppointNumber = s.AppointNumber, AppointScheduleTimeId = s.AppointScheduleTimeId, NumberLimit = s.NumberLimit, + CanAppointNumber = s.NumberLimit - s.AppointNumber, StartTime = DataHelper.ConvertTimeOnlyToString(s.StartTime), StopTime = DataHelper.ConvertTimeOnlyToString(s.StopTime) }).ToList(); diff --git a/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs b/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs index 8288999..30abaaf 100644 --- a/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs +++ b/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs @@ -42,14 +42,16 @@ namespace Shentun.WebPeis.AppointSchedules _appointScheduleTimeManager = appointScheduleTimeManager; _sysParmValueManager = sysParmValueManager; } + /// /// 获取预约日期列表 /// + /// /// [HttpPost("api/app/AppointSchedule/GetAppointScheduleDateList")] public async Task> GetAppointScheduleDateListAsync(MedicalCenterIdInputDto input) { - var appointScheduleDateDtos = await GetAppointScheduleDateTestListAsync(); + var canAppointDaysStr = await _sysParmValueManager.GetSysParmValueAsync(input.MedicalCenterId, "appoint_schedule_can_appoint_days"); if (!int.TryParse(canAppointDaysStr, out var canAppointDays)) { @@ -74,7 +76,37 @@ namespace Shentun.WebPeis.AppointSchedules IsWork = (x.Key.AmNumberLimit + x.Key.PmNumberLimit) == 0? 'N':'Y', IsFull = (x.Key.AmNumberLimit + x.Key.PmNumberLimit)<= x.Key.AppointScheduleTimes.Sum(m=>m.AppointNumber)?'Y':'N' }).ToList(); - return appointScheduleDateDtos; + return list; + } + + /// + /// 获取预约时间信息 + /// + /// + /// + [HttpPost("api/app/AppointSchedule/GetAppointScheduleTimeListById")] + public async Task> GetAppointScheduleTimeListByIdAsync(AppointScheduleIdInputDto input) + { + var entList = (await _appointScheduleTimeRepository.GetQueryableAsync()) + .Where(m => m.AppointScheduleId == input.AppointScheduleId) + .OrderBy(o => o.StartTime); + var entListDto = entList.Select(s => new AppointScheduleTimeDto + { + 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, + AppointNumber = s.AppointNumber, + AppointScheduleTimeId = s.AppointScheduleTimeId, + NumberLimit = s.NumberLimit, + CanAppointNumber = s.NumberLimit - s.AppointNumber, + StartTime = DataHelper.ConvertTimeOnlyToString(s.StartTime), + StopTime = DataHelper.ConvertTimeOnlyToString(s.StopTime) + }).ToList(); + return entListDto; } diff --git a/test/Shentun.WebPeis.Application.Tests/AppointScheduleAppServiceTest.cs b/test/Shentun.WebPeis.Application.Tests/AppointScheduleAppServiceTest.cs new file mode 100644 index 0000000..8acb2d8 --- /dev/null +++ b/test/Shentun.WebPeis.Application.Tests/AppointScheduleAppServiceTest.cs @@ -0,0 +1,53 @@ +using Shentun.WebPeis.AppointPatientRegisters; +using Shentun.WebPeis.AppointSchedules; +using Shentun.WebPeis.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Modularity; +using Volo.Abp.Uow; +using Xunit; +using Xunit.Abstractions; + +namespace Shentun.WebPeis +{ + public class AppointScheduleAppServiceTest : WebPeisApplicationTestBase + where TStartupModule : IAbpModule + { + private readonly IRepository _repository; + private readonly AppointScheduleAppService _appService; + private readonly ITestOutputHelper _output; + private readonly IUnitOfWorkManager _unitOfWorkManager; + public AppointScheduleAppServiceTest(ITestOutputHelper output) + { + _unitOfWorkManager = GetRequiredService(); + _repository = GetRequiredService>(); + _appService = GetRequiredService(); + _output = output; + } + + [Fact] + public async Task GetAppointScheduleDateListAsync() + { + using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true)) + { + + var entity = new MedicalCenterIdInputDto() + { + MedicalCenterId = new Guid("150da355-dfbf-466b-9697-355836a862c4") + }; + var list = await _appService.GetAppointScheduleDateListAsync(entity); + foreach (var item in list) + { + _output.WriteLine(item.AppointDate.ToString()); + + } + await unitOfWork.CompleteAsync(); + } + } + + } +} diff --git a/test/Shentun.WebPeis.EntityFrameworkCore.Tests/EntityFrameworkCore/Applications/EfCoreAppointScheduleAppServiceTest.cs b/test/Shentun.WebPeis.EntityFrameworkCore.Tests/EntityFrameworkCore/Applications/EfCoreAppointScheduleAppServiceTest.cs new file mode 100644 index 0000000..2eb67a7 --- /dev/null +++ b/test/Shentun.WebPeis.EntityFrameworkCore.Tests/EntityFrameworkCore/Applications/EfCoreAppointScheduleAppServiceTest.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Xunit.Abstractions; + +namespace Shentun.WebPeis.EntityFrameworkCore.Applications +{ + public class EfCoreAppointScheduleAppServiceTest : AppointScheduleAppServiceTest + { + public EfCoreAppointScheduleAppServiceTest(ITestOutputHelper output) : base(output) { } + } +}