From 2aeeecba2350c2461b417228a4d2d4baefba4ec8 Mon Sep 17 00:00:00 2001
From: "DESKTOP-G961P6V\\Zhh" <839860190@qq.com>
Date: Mon, 3 Jun 2024 19:40:39 +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
---
.../AppointScheduleAppService.cs | 26 ++++++++++++++++++-
.../MedicalCenterIdInputDto.cs | 13 ++++++++++
.../Models/AppointSchedule.cs | 2 ++
.../Configures/AppointScheduleConfigure.cs | 1 +
4 files changed, 41 insertions(+), 1 deletion(-)
create mode 100644 src/Shentun.WebPeis.Application/MedicalCenterIdInputDto.cs
diff --git a/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs b/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs
index 3b70d7c..8288999 100644
--- a/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs
+++ b/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs
@@ -47,9 +47,33 @@ namespace Shentun.WebPeis.AppointSchedules
///
///
[HttpPost("api/app/AppointSchedule/GetAppointScheduleDateList")]
- public async Task> GetAppointScheduleDateListAsync()
+ 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))
+ {
+ canAppointDays = 30;
+ }
+
+ var appointSchedules = (from appointSchedule in await _appointScheduleRepository.GetQueryableAsync()
+ join appointScheduleTime in await _appointScheduleTimeRepository.GetQueryableAsync()
+ on appointSchedule.AppointScheduleId equals appointScheduleTime.AppointScheduleId
+ where appointSchedule.MedicalCenterId == input.MedicalCenterId &&
+ appointSchedule.AppointDate >= DateTime.Now.Date && appointSchedule.AppointDate <= DateTime.Now.Date.AddDays(canAppointDays
+ select new
+ {
+ appointSchedule,
+ appointScheduleTime
+ }
+ ).ToList();
+ var list = appointSchedules.GroupBy(o => o.appointSchedule)
+ .Select(x => new AppointScheduleDateDto()
+ {
+ AppointDate = x.Key.AppointDate,
+ 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;
}
diff --git a/src/Shentun.WebPeis.Application/MedicalCenterIdInputDto.cs b/src/Shentun.WebPeis.Application/MedicalCenterIdInputDto.cs
new file mode 100644
index 0000000..3be79a6
--- /dev/null
+++ b/src/Shentun.WebPeis.Application/MedicalCenterIdInputDto.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Shentun.WebPeis
+{
+ public class MedicalCenterIdInputDto
+ {
+ public Guid MedicalCenterId { get; set; }
+ }
+}
diff --git a/src/Shentun.WebPeis.Domain/Models/AppointSchedule.cs b/src/Shentun.WebPeis.Domain/Models/AppointSchedule.cs
index 890e733..be212f1 100644
--- a/src/Shentun.WebPeis.Domain/Models/AppointSchedule.cs
+++ b/src/Shentun.WebPeis.Domain/Models/AppointSchedule.cs
@@ -36,6 +36,8 @@ public partial class AppointSchedule : AuditedEntity, IHasConcurrencyStamp
public Guid AppointScheduleId { get; set; }
+ public Guid MedicalCenterId { get; set; }
+
public virtual ICollection AppointScheduleTimes { get; set; } = new List();
public override object?[] GetKeys()
diff --git a/src/Shentun.WebPeis.EntityFrameworkCore/Configures/AppointScheduleConfigure.cs b/src/Shentun.WebPeis.EntityFrameworkCore/Configures/AppointScheduleConfigure.cs
index c522492..c1d9ea7 100644
--- a/src/Shentun.WebPeis.EntityFrameworkCore/Configures/AppointScheduleConfigure.cs
+++ b/src/Shentun.WebPeis.EntityFrameworkCore/Configures/AppointScheduleConfigure.cs
@@ -40,6 +40,7 @@ namespace Shentun.WebPeis.Configures
entity.Property(e => e.AmNumberLimit).IsRequired().HasColumnName("am_number_limit");
entity.Property(e => e.PmNumberLimit).IsRequired().HasColumnName("pm_number_limit");
entity.Property(e => e.SingleNumberLimit).IsRequired().HasColumnName("single_number_limit");
+ entity.Property(e => e.MedicalCenterId).IsRequired().HasColumnName("medical_center_id");
}
}
}