DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
d5a8de62fe
  1. 39
      src/Shentun.WebPeis.Application.Contracts/AppointScheduleTimes/AppointScheduleTimeDto.cs
  2. 34
      src/Shentun.WebPeis.Application.Contracts/AppointSchedules/AppointScheduleDto.cs
  3. 14
      src/Shentun.WebPeis.Application.Contracts/AppointSchedules/AppointScheduleIdInputDto.cs
  4. 14
      src/Shentun.WebPeis.Application.Contracts/AppointSchedules/DeleteAppointScheduleInputDto.cs
  5. 5
      src/Shentun.WebPeis.Application.Contracts/AppointSchedules/UpdateAppointScheduleNumberLimitInputDto.cs
  6. 63
      src/Shentun.WebPeis.Application/AppointScheduleTimes/AppointScheduleTimeAppService.cs
  7. 66
      src/Shentun.WebPeis.Application/AppointSchedules/AppointScheduleAppService.cs
  8. 22
      src/Shentun.WebPeis.Domain/AppointSchedules/AppointScheduleManager.cs
  9. 2
      src/Shentun.WebPeis.Domain/DataHelper.cs

39
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
{
/// <summary>
/// 主键
/// </summary>
public Guid AppointScheduleTimeId { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public string StartTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public string StopTime { get; set; }
/// <summary>
/// 数量限制
/// </summary>
public int NumberLimit { get; set; }
/// <summary>
/// 已预约数
/// </summary>
public int AppointNumber { get; set; }
public Guid AppointScheduleId { get; set; }
}
}

34
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
{
/// <summary>
/// 预约日期
/// </summary>
public string AppointDate { get; set; }
/// <summary>
/// 上午数量限制
/// </summary>
public int AmNumberLimit { get; set; }
/// <summary>
/// 下午数量限制
/// </summary>
public int PmNumberLimit { get; set; }
/// <summary>
/// 个人体检数量限制
/// </summary>
public int SingleNumberLimit { get; set; }
/// <summary>
/// 主键
/// </summary>
public Guid AppointScheduleId { get; set; }
}
}

14
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
{
/// <summary>
/// 预约计划主表ID
/// </summary>
public Guid AppointScheduleId { get; set; }
}
}

14
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
{
/// <summary>
/// ID集合
/// </summary>
public List<Guid> AppointScheduleIds { get; set; }
}
}

5
src/Shentun.WebPeis.Application.Contracts/AppointSchedules/UpdateAppointScheduleNumberLimitInputDto.cs

@ -19,5 +19,10 @@ namespace Shentun.WebPeis.AppointSchedules
/// 下午数量限制 /// 下午数量限制
/// </summary> /// </summary>
public int? PmNumberLimit { get; set; } public int? PmNumberLimit { get; set; }
/// <summary>
/// 个人体检数量限制
/// </summary>
public int? SingleNumberLimit { get; set; }
} }
} }

63
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
{
/// <summary>
/// 预约计划明细
/// </summary>
[ApiExplorerSettings(GroupName = "Work")]
[Authorize]
public class AppointScheduleTimeAppService : ApplicationService
{
private readonly IRepository<AppointScheduleTime> _appointScheduleTimeRepository;
private readonly CacheService _cacheService;
public AppointScheduleTimeAppService(
IRepository<AppointScheduleTime> appointScheduleTimeRepository,
CacheService cacheService
)
{
_appointScheduleTimeRepository = appointScheduleTimeRepository;
_cacheService = cacheService;
}
/// <summary>
/// 获取预约计划明细
/// </summary>
/// <returns></returns>
[HttpPost("api/app/AppointScheduleTime/GetAppointScheduleTimeListByAppointScheduleId")]
public async Task<List<AppointScheduleTimeDto>> 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;
}
}
}

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

@ -51,7 +51,6 @@ namespace Shentun.WebPeis.AppointSchedules
{ {
var appointScheduleDateDtos = await GetAppointScheduleDateTestListAsync(); var appointScheduleDateDtos = await GetAppointScheduleDateTestListAsync();
return appointScheduleDateDtos; return appointScheduleDateDtos;
} }
@ -232,6 +231,7 @@ namespace Shentun.WebPeis.AppointSchedules
} }
} }
} }
@ -307,7 +307,7 @@ namespace Shentun.WebPeis.AppointSchedules
m.StartTime.Hour, m.StartTime.Hour,
m.StartTime.Minute, m.StartTime.Minute,
m.StartTime.Second) > DateTime.Now m.StartTime.Second) > DateTime.Now
&&m.StartTime> amStopTime);
&& m.StartTime > amStopTime);
if (addNumberLimit > 0) 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);
} }
/// <summary>
/// 获取预约计划
/// </summary>
/// <returns></returns>
[HttpPost("api/app/AppointSchedule/GetAppointScheduleNumberLimitList")]
public async Task<List<AppointScheduleDto>> 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;
}
/// <summary>
/// 删除预约计划
/// </summary>
/// <returns></returns>
[HttpPost("api/app/AppointSchedule/DeleteAppointScheduleNumberLimit")]
public async Task DeleteAppointScheduleAsync(DeleteAppointScheduleInputDto input)
{
if (input.AppointScheduleIds.Any())
{
foreach (var item in collection)
{
await _appointScheduleManager.CheckAndDeleteAsync(item);
}
}
}
} }
} }

22
src/Shentun.WebPeis.Domain/AppointSchedules/AppointScheduleManager.cs

@ -13,12 +13,14 @@ namespace Shentun.WebPeis.AppointSchedules
public class AppointScheduleManager : DomainService public class AppointScheduleManager : DomainService
{ {
private readonly IRepository<AppointSchedule> _appointScheduleRepository; private readonly IRepository<AppointSchedule> _appointScheduleRepository;
private readonly IRepository<AppointScheduleTime> _appointScheduleTimeRepository;
public AppointScheduleManager( public AppointScheduleManager(
IRepository<AppointSchedule> appointScheduleRepository
)
IRepository<AppointSchedule> appointScheduleRepository,
IRepository<AppointScheduleTime> appointScheduleTimeRepository)
{ {
_appointScheduleRepository = appointScheduleRepository; _appointScheduleRepository = appointScheduleRepository;
_appointScheduleTimeRepository = appointScheduleTimeRepository;
} }
/// <summary> /// <summary>
@ -57,5 +59,21 @@ namespace Shentun.WebPeis.AppointSchedules
} }
} }
/// <summary>
/// 删除
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
public async Task CheckAndDeleteAsync(Guid appointScheduleId)
{
//先删除明细
await _appointScheduleTimeRepository.DeleteAsync(m => m.AppointScheduleId == appointScheduleId);
await _appointScheduleRepository.DeleteAsync(d => d.AppointScheduleId == appointScheduleId);
}
} }
} }

2
src/Shentun.WebPeis.Domain/DataHelper.cs

@ -39,7 +39,7 @@ namespace Shentun.WebPeis
} }
else else
{ {
return value.Value.ToString("HH:mm:ss");
return value.Value.ToString("HH:mm");
} }
} }

Loading…
Cancel
Save