From f4b3769226c4f8142a143a37e0f9247ac6479a8d Mon Sep 17 00:00:00 2001
From: wxd <123@qq.com>
Date: Mon, 3 Jun 2024 22:51:24 +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
---
 .../CreateAppointScheduleWithDetailInputDto.cs     |  5 +++++
 .../GetAppointScheduleListInputDto.cs              | 14 ++++++++++++++
 .../AppointSchedules/AppointScheduleAppService.cs  | 14 +++++++-------
 .../AppointScheduleTemplateManager.cs              |  2 +-
 .../Models/AppointSchedule.cs                      |  8 +++++---
 .../Models/AppointScheduleTemplate.cs              |  5 ++++-
 .../Models/AppointScheduleTime.cs                  |  4 ++--
 7 files changed, 38 insertions(+), 14 deletions(-)
 create mode 100644 src/Shentun.WebPeis.Application.Contracts/AppointSchedules/GetAppointScheduleListInputDto.cs
diff --git a/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/CreateAppointScheduleWithDetailInputDto.cs b/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/CreateAppointScheduleWithDetailInputDto.cs
index f4cf9f5..ca16d08 100644
--- a/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/CreateAppointScheduleWithDetailInputDto.cs
+++ b/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/CreateAppointScheduleWithDetailInputDto.cs
@@ -6,6 +6,11 @@ namespace Shentun.WebPeis.AppointSchedules
 {
     public class CreateAppointScheduleWithDetailInputDto
     {
+        /// 
+        /// 体检中心ID
+        /// 
+        public Guid MedicalCenterId { get; set; }
+
         /// 
         /// 开始日期
         /// 
diff --git a/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/GetAppointScheduleListInputDto.cs b/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/GetAppointScheduleListInputDto.cs
new file mode 100644
index 0000000..c34adea
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/AppointSchedules/GetAppointScheduleListInputDto.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.AppointSchedules
+{
+    public class GetAppointScheduleListInputDto
+    {
+        /// 
+        /// 体检中心ID
+        /// 
+        public Guid MedicalCenterId { get; set; }
+    }
+}
diff --git a/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs b/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs
index 0f79f09..186aa27 100644
--- a/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs
+++ b/src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs
@@ -56,13 +56,13 @@ namespace Shentun.WebPeis.AppointSchedules
         [HttpPost("api/app/AppointSchedule/GetAppointScheduleDateList")]
         public async Task> GetAppointScheduleDateListAsync(MedicalCenterIdInputDto input)
         {
-            Guid medicalCenterId ;
-            if (input == null ||  input.MedicalCenterId == Guid.Empty || input.MedicalCenterId == null)
+            Guid medicalCenterId;
+            if (input == null || input.MedicalCenterId == Guid.Empty || input.MedicalCenterId == null)
             {
                 var webPeisOrganizationUnit = await _webPeisOrganizationUnitManager.GetMedicalCenterListAsync();
                 if (webPeisOrganizationUnit.Count > 1 || webPeisOrganizationUnit.Count == 0)
                 {
-                    throw new UserFriendlyException("体检中心参数不能为空");      
+                    throw new UserFriendlyException("体检中心参数不能为空");
                 }
                 medicalCenterId = webPeisOrganizationUnit.First().Id;
             }
@@ -122,7 +122,7 @@ namespace Shentun.WebPeis.AppointSchedules
         }
 
 
-        
+
 
 
         /// 
@@ -139,7 +139,7 @@ namespace Shentun.WebPeis.AppointSchedules
             //所有日期
             List dateTimes = DataHelper.GetAllDatesWithinRange(startDate, endDate);
 
-            var appointScheduleTemplateList = await _appointScheduleTemplateRepository.GetListAsync();
+            var appointScheduleTemplateList = await _appointScheduleTemplateRepository.GetListAsync(m => m.MedicalCenterId == input.MedicalCenterId);
 
             foreach (var dateTime in dateTimes)
             {
@@ -403,9 +403,9 @@ namespace Shentun.WebPeis.AppointSchedules
         /// 
         /// 
         [HttpPost("api/app/AppointSchedule/GetAppointScheduleNumberLimitList")]
-        public async Task> GetAppointScheduleListAsync()
+        public async Task> GetAppointScheduleListAsync(GetAppointScheduleListInputDto input)
         {
-            var entList = await _appointScheduleRepository.GetQueryableAsync();
+            var entList = (await _appointScheduleRepository.GetQueryableAsync()).Where(m => m.MedicalCenterId == input.MedicalCenterId);
             var entListDto = entList.Select(s => new AppointScheduleDto
             {
                 AmNumberLimit = s.AmNumberLimit,
diff --git a/src/Shentun.WebPeis.Domain/AppointScheduleTemplates/AppointScheduleTemplateManager.cs b/src/Shentun.WebPeis.Domain/AppointScheduleTemplates/AppointScheduleTemplateManager.cs
index 9b41f97..172652a 100644
--- a/src/Shentun.WebPeis.Domain/AppointScheduleTemplates/AppointScheduleTemplateManager.cs
+++ b/src/Shentun.WebPeis.Domain/AppointScheduleTemplates/AppointScheduleTemplateManager.cs
@@ -38,7 +38,7 @@ namespace Shentun.WebPeis.AppointScheduleTemplates
         {
             DataHelper.CheckEntityIsNull(entity);
 
-            var isWeekId = await _appointScheduleTemplateRepository.FirstOrDefaultAsync(f => f.WeekId == entity.WeekId);
+            var isWeekId = await _appointScheduleTemplateRepository.FirstOrDefaultAsync(f => f.WeekId == entity.WeekId && f.MedicalCenterId == entity.MedicalCenterId);
             if (isWeekId != null)
                 throw new UserFriendlyException($"WeekId数据已存在,不能重复");
             return new AppointScheduleTemplate
diff --git a/src/Shentun.WebPeis.Domain/Models/AppointSchedule.cs b/src/Shentun.WebPeis.Domain/Models/AppointSchedule.cs
index be212f1..4ec9ae2 100644
--- a/src/Shentun.WebPeis.Domain/Models/AppointSchedule.cs
+++ b/src/Shentun.WebPeis.Domain/Models/AppointSchedule.cs
@@ -23,24 +23,26 @@ public partial class AppointSchedule : AuditedEntity, IHasConcurrencyStamp
     /// 下午数量限制
     /// 
     public int PmNumberLimit { get; set; }
+
     /// 
     /// 个人体检数量限制
     /// 
-
     public int SingleNumberLimit { get; set; }
 
     public string ConcurrencyStamp { get; set; }
     /// 
     /// 主键
     /// 
-
     public Guid AppointScheduleId { get; set; }
 
+    /// 
+    /// 体检中心ID
+    /// 
     public Guid MedicalCenterId { get; set; }
 
     public virtual ICollection AppointScheduleTimes { get; set; } = new List();
 
-    public override object?[] GetKeys()
+    public override object[] GetKeys()
     {
         return [AppointScheduleId];
     }
diff --git a/src/Shentun.WebPeis.Domain/Models/AppointScheduleTemplate.cs b/src/Shentun.WebPeis.Domain/Models/AppointScheduleTemplate.cs
index 57e1ff1..5e77ef3 100644
--- a/src/Shentun.WebPeis.Domain/Models/AppointScheduleTemplate.cs
+++ b/src/Shentun.WebPeis.Domain/Models/AppointScheduleTemplate.cs
@@ -57,11 +57,14 @@ public   class AppointScheduleTemplate : AuditedEntity, IHasConcurrencyStamp, ID
 
     public int DisplayOrder { get; set; }
 
+    /// 
+    /// 体检中心ID
+    /// 
     public Guid MedicalCenterId { get; set; }
 
     public string? ConcurrencyStamp { get; set; }
 
-    public override object?[] GetKeys()
+    public override object[] GetKeys()
     {
         return [AppointScheduleTemplateId];
     }
diff --git a/src/Shentun.WebPeis.Domain/Models/AppointScheduleTime.cs b/src/Shentun.WebPeis.Domain/Models/AppointScheduleTime.cs
index d3cb223..297f94b 100644
--- a/src/Shentun.WebPeis.Domain/Models/AppointScheduleTime.cs
+++ b/src/Shentun.WebPeis.Domain/Models/AppointScheduleTime.cs
@@ -41,9 +41,9 @@ public partial class AppointScheduleTime : AuditedEntity, IHasConcurrencyStamp
 
     public Guid AppointScheduleId { get; set; }
 
-    public virtual AppointSchedule? AppointSchedule { get; set; }
+    public virtual AppointSchedule AppointSchedule { get; set; }
 
-    public override object?[] GetKeys()
+    public override object[] GetKeys()
     {
         return [AppointScheduleTimeId];
     }