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) { }
+    }
+}