Browse Source

预约计划

master
DESKTOP-G961P6V\Zhh 1 year ago
parent
commit
fa101eae36
  1. 5
      src/Shentun.WebPeis.Application.Contracts/AppointScheduleTimes/AppointScheduleTimeDto.cs
  2. 1
      src/Shentun.WebPeis.Application/AppointScheduleTimes/AppointScheduleTimeAppService.cs
  3. 36
      src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs
  4. 53
      test/Shentun.WebPeis.Application.Tests/AppointScheduleAppServiceTest.cs
  5. 14
      test/Shentun.WebPeis.EntityFrameworkCore.Tests/EntityFrameworkCore/Applications/EfCoreAppointScheduleAppServiceTest.cs

5
src/Shentun.WebPeis.Application.Contracts/AppointScheduleTimes/AppointScheduleTimeDto.cs

@ -31,8 +31,11 @@ namespace Shentun.WebPeis.AppointScheduleTimes
public int AppointNumber { get; set; } public int AppointNumber { get; set; }
/// <summary>
/// 可预约数
/// </summary>
public int CanAppointNumber { get; set; }
public Guid AppointScheduleId { get; set; } public Guid AppointScheduleId { get; set; }
} }

1
src/Shentun.WebPeis.Application/AppointScheduleTimes/AppointScheduleTimeAppService.cs

@ -54,6 +54,7 @@ namespace Shentun.WebPeis.AppointScheduleTimes
AppointNumber = s.AppointNumber, AppointNumber = s.AppointNumber,
AppointScheduleTimeId = s.AppointScheduleTimeId, AppointScheduleTimeId = s.AppointScheduleTimeId,
NumberLimit = s.NumberLimit, NumberLimit = s.NumberLimit,
CanAppointNumber = s.NumberLimit - s.AppointNumber,
StartTime = DataHelper.ConvertTimeOnlyToString(s.StartTime), StartTime = DataHelper.ConvertTimeOnlyToString(s.StartTime),
StopTime = DataHelper.ConvertTimeOnlyToString(s.StopTime) StopTime = DataHelper.ConvertTimeOnlyToString(s.StopTime)
}).ToList(); }).ToList();

36
src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs

@ -42,14 +42,16 @@ namespace Shentun.WebPeis.AppointSchedules
_appointScheduleTimeManager = appointScheduleTimeManager; _appointScheduleTimeManager = appointScheduleTimeManager;
_sysParmValueManager = sysParmValueManager; _sysParmValueManager = sysParmValueManager;
} }
/// <summary> /// <summary>
/// 获取预约日期列表 /// 获取预约日期列表
/// </summary> /// </summary>
/// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost("api/app/AppointSchedule/GetAppointScheduleDateList")] [HttpPost("api/app/AppointSchedule/GetAppointScheduleDateList")]
public async Task<List<AppointScheduleDateDto>> GetAppointScheduleDateListAsync(MedicalCenterIdInputDto input) public async Task<List<AppointScheduleDateDto>> GetAppointScheduleDateListAsync(MedicalCenterIdInputDto input)
{ {
var appointScheduleDateDtos = await GetAppointScheduleDateTestListAsync();
var canAppointDaysStr = await _sysParmValueManager.GetSysParmValueAsync(input.MedicalCenterId, "appoint_schedule_can_appoint_days"); var canAppointDaysStr = await _sysParmValueManager.GetSysParmValueAsync(input.MedicalCenterId, "appoint_schedule_can_appoint_days");
if (!int.TryParse(canAppointDaysStr, out var canAppointDays)) 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', 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' IsFull = (x.Key.AmNumberLimit + x.Key.PmNumberLimit)<= x.Key.AppointScheduleTimes.Sum(m=>m.AppointNumber)?'Y':'N'
}).ToList(); }).ToList();
return appointScheduleDateDtos;
return list;
}
/// <summary>
/// 获取预约时间信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/AppointSchedule/GetAppointScheduleTimeListById")]
public async Task<List<AppointScheduleTimeDto>> 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;
} }

53
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<TStartupModule> : WebPeisApplicationTestBase<TStartupModule>
where TStartupModule : IAbpModule
{
private readonly IRepository<AppointSchedule> _repository;
private readonly AppointScheduleAppService _appService;
private readonly ITestOutputHelper _output;
private readonly IUnitOfWorkManager _unitOfWorkManager;
public AppointScheduleAppServiceTest(ITestOutputHelper output)
{
_unitOfWorkManager = GetRequiredService<IUnitOfWorkManager>();
_repository = GetRequiredService<IRepository<AppointSchedule>>();
_appService = GetRequiredService<AppointScheduleAppService>();
_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();
}
}
}
}

14
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<WebPeisEntityFrameworkCoreTestModule>
{
public EfCoreAppointScheduleAppServiceTest(ITestOutputHelper output) : base(output) { }
}
}
Loading…
Cancel
Save