From 24ab3b3576f93fe38c8400a0e1679c686af63694 Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Mon, 3 Jun 2024 17:43:32 +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 | 39 +++++++++++ .../AppointSchedules/AppointScheduleDto.cs | 34 ++++++++++ .../AppointScheduleIdInputDto.cs | 14 ++++ .../DeleteAppointScheduleInputDto.cs | 14 ++++ ...pdateAppointScheduleNumberLimitInputDto.cs | 5 ++ .../AppointScheduleTimeAppService.cs | 63 ++++++++++++++++++ .../AppointScheduleAppService.cs | 66 ++++++++++++++++++- .../AppointScheduleManager.cs | 22 ++++++- src/Shentun.WebPeis.Domain/DataHelper.cs | 2 +- 9 files changed, 254 insertions(+), 5 deletions(-) create mode 100644 src/Shentun.WebPeis.Application.Contracts/AppointScheduleTimes/AppointScheduleTimeDto.cs create mode 100644 src/Shentun.WebPeis.Application.Contracts/AppointSchedules/AppointScheduleDto.cs create mode 100644 src/Shentun.WebPeis.Application.Contracts/AppointSchedules/AppointScheduleIdInputDto.cs create mode 100644 src/Shentun.WebPeis.Application.Contracts/AppointSchedules/DeleteAppointScheduleInputDto.cs create mode 100644 src/Shentun.WebPeis.Application/AppointScheduleTimes/AppointScheduleTimeAppService.cs diff --git a/src/Shentun.WebPeis.Application.Contracts/AppointScheduleTimes/AppointScheduleTimeDto.cs b/src/Shentun.WebPeis.Application.Contracts/AppointScheduleTimes/AppointScheduleTimeDto.cs new file mode 100644 index 0000000..b0e1233 --- /dev/null +++ b/src/Shentun.WebPeis.Application.Contracts/AppointScheduleTimes/AppointScheduleTimeDto.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.WebPeis.AppointScheduleTimes +{ + public class AppointScheduleTimeDto: AuditedEntityDtoName + { + /// + /// 主键 + /// + public Guid AppointScheduleTimeId { get; set; } + /// + /// 开始时间 + /// + + public string StartTime { get; set; } + /// + /// 结束时间 + /// + + public string StopTime { get; set; } + /// + /// 数量限制 + /// + + public int NumberLimit { get; set; } + /// + /// 已预约数 + /// + + public int AppointNumber { get; set; } + + + + + public Guid AppointScheduleId { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/AppointScheduleDto.cs b/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/AppointScheduleDto.cs new file mode 100644 index 0000000..9ebd3d9 --- /dev/null +++ b/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/AppointScheduleDto.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.WebPeis.AppointSchedules +{ + public class AppointScheduleDto: AuditedEntityDtoName + { + /// + /// 预约日期 + /// + public string AppointDate { get; set; } + + /// + /// 上午数量限制 + /// + public int AmNumberLimit { get; set; } + /// + /// 下午数量限制 + /// + public int PmNumberLimit { get; set; } + /// + /// 个人体检数量限制 + /// + + public int SingleNumberLimit { get; set; } + + /// + /// 主键 + /// + + public Guid AppointScheduleId { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/AppointScheduleIdInputDto.cs b/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/AppointScheduleIdInputDto.cs new file mode 100644 index 0000000..270a3e7 --- /dev/null +++ b/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/AppointScheduleIdInputDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.WebPeis.AppointSchedules +{ + public class AppointScheduleIdInputDto + { + /// + /// 预约计划主表ID + /// + public Guid AppointScheduleId { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/DeleteAppointScheduleInputDto.cs b/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/DeleteAppointScheduleInputDto.cs new file mode 100644 index 0000000..58d68af --- /dev/null +++ b/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/DeleteAppointScheduleInputDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.WebPeis.AppointSchedules +{ + public class DeleteAppointScheduleInputDto + { + /// + /// ID集合 + /// + public List AppointScheduleIds { get; set; } + } +} diff --git a/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/UpdateAppointScheduleNumberLimitInputDto.cs b/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/UpdateAppointScheduleNumberLimitInputDto.cs index 01f0f69..9212cbd 100644 --- a/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/UpdateAppointScheduleNumberLimitInputDto.cs +++ b/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/UpdateAppointScheduleNumberLimitInputDto.cs @@ -19,5 +19,10 @@ namespace Shentun.WebPeis.AppointSchedules /// 下午数量限制 /// public int? PmNumberLimit { get; set; } + + /// + /// 个人体检数量限制 + /// + public int? SingleNumberLimit { get; set; } } } diff --git a/src/Shentun.WebPeis.Application/AppointScheduleTimes/AppointScheduleTimeAppService.cs b/src/Shentun.WebPeis.Application/AppointScheduleTimes/AppointScheduleTimeAppService.cs new file mode 100644 index 0000000..009b35d --- /dev/null +++ b/src/Shentun.WebPeis.Application/AppointScheduleTimes/AppointScheduleTimeAppService.cs @@ -0,0 +1,63 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +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.Application.Services; +using Volo.Abp.Domain.Repositories; + +namespace Shentun.WebPeis.AppointScheduleTimes +{ + /// + /// 预约计划明细 + /// + [ApiExplorerSettings(GroupName = "Work")] + [Authorize] + public class AppointScheduleTimeAppService : ApplicationService + { + + private readonly IRepository _appointScheduleTimeRepository; + private readonly CacheService _cacheService; + + public AppointScheduleTimeAppService( + IRepository appointScheduleTimeRepository, + CacheService cacheService + ) + { + _appointScheduleTimeRepository = appointScheduleTimeRepository; + _cacheService = cacheService; + } + + /// + /// 获取预约计划明细 + /// + /// + [HttpPost("api/app/AppointScheduleTime/GetAppointScheduleTimeListByAppointScheduleId")] + public async Task> GetAppointScheduleTimeListByAppointScheduleIdAsync(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, + StartTime = DataHelper.ConvertTimeOnlyToString(s.StartTime), + StopTime = DataHelper.ConvertTimeOnlyToString(s.StopTime) + }).ToList(); + return entListDto; + } + } +} diff --git a/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs b/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs index 6eb6feb..3d5d441 100644 --- a/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs +++ b/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs @@ -51,7 +51,6 @@ namespace Shentun.WebPeis.AppointSchedules { var appointScheduleDateDtos = await GetAppointScheduleDateTestListAsync(); return appointScheduleDateDtos; - } @@ -232,6 +231,7 @@ namespace Shentun.WebPeis.AppointSchedules } } + } @@ -307,7 +307,7 @@ namespace Shentun.WebPeis.AppointSchedules m.StartTime.Hour, m.StartTime.Minute, m.StartTime.Second) > DateTime.Now - &&m.StartTime> amStopTime); + && m.StartTime > amStopTime); if (addNumberLimit > 0) { @@ -335,6 +335,68 @@ namespace Shentun.WebPeis.AppointSchedules } + + + if (input.AmNumberLimit != null) + { + appointScheduleEnt.AmNumberLimit = input.AmNumberLimit.Value; + } + + if (input.PmNumberLimit != null) + { + appointScheduleEnt.PmNumberLimit = input.PmNumberLimit.Value; + } + + if (input.SingleNumberLimit != null) + { + appointScheduleEnt.SingleNumberLimit = input.SingleNumberLimit.Value; + } + + await _appointScheduleRepository.UpdateAsync(appointScheduleEnt); } + + + + /// + /// 获取预约计划 + /// + /// + [HttpPost("api/app/AppointSchedule/GetAppointScheduleNumberLimitList")] + public async Task> GetAppointScheduleListAsync() + { + var entList = await _appointScheduleRepository.GetQueryableAsync(); + var entListDto = entList.Select(s => new AppointScheduleDto + { + AmNumberLimit = s.AmNumberLimit, + 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, + PmNumberLimit = s.PmNumberLimit, + SingleNumberLimit = s.SingleNumberLimit + }).OrderBy(o => o.AppointDate).ToList(); + return entListDto; + } + + /// + /// 删除预约计划 + /// + /// + [HttpPost("api/app/AppointSchedule/DeleteAppointScheduleNumberLimit")] + public async Task DeleteAppointScheduleAsync(DeleteAppointScheduleInputDto input) + { + if (input.AppointScheduleIds.Any()) + { + foreach (var item in collection) + { + await _appointScheduleManager.CheckAndDeleteAsync(item); + } + } + } + } } diff --git a/src/Shentun.WebPeis.Domain/AppointSchedules/AppointScheduleManager.cs b/src/Shentun.WebPeis.Domain/AppointSchedules/AppointScheduleManager.cs index 3e08013..6d36352 100644 --- a/src/Shentun.WebPeis.Domain/AppointSchedules/AppointScheduleManager.cs +++ b/src/Shentun.WebPeis.Domain/AppointSchedules/AppointScheduleManager.cs @@ -13,12 +13,14 @@ namespace Shentun.WebPeis.AppointSchedules public class AppointScheduleManager : DomainService { private readonly IRepository _appointScheduleRepository; + private readonly IRepository _appointScheduleTimeRepository; public AppointScheduleManager( - IRepository appointScheduleRepository - ) + IRepository appointScheduleRepository, + IRepository appointScheduleTimeRepository) { _appointScheduleRepository = appointScheduleRepository; + _appointScheduleTimeRepository = appointScheduleTimeRepository; } /// @@ -57,5 +59,21 @@ namespace Shentun.WebPeis.AppointSchedules } } + + /// + /// 删除 + /// + /// + /// + /// + public async Task CheckAndDeleteAsync(Guid appointScheduleId) + { + //先删除明细 + + await _appointScheduleTimeRepository.DeleteAsync(m => m.AppointScheduleId == appointScheduleId); + + await _appointScheduleRepository.DeleteAsync(d => d.AppointScheduleId == appointScheduleId); + + } } } diff --git a/src/Shentun.WebPeis.Domain/DataHelper.cs b/src/Shentun.WebPeis.Domain/DataHelper.cs index ea63e59..cacb75a 100644 --- a/src/Shentun.WebPeis.Domain/DataHelper.cs +++ b/src/Shentun.WebPeis.Domain/DataHelper.cs @@ -39,7 +39,7 @@ namespace Shentun.WebPeis } else { - return value.Value.ToString("HH:mm:ss"); + return value.Value.ToString("HH:mm"); } }