|
@@ -213,25 +213,33 @@ namespace Hotline.Api.Controllers
|
|
|
public async Task Add([FromBody] AddDto dtos)
|
|
|
{
|
|
|
List<Scheduling> schedulings = new List<Scheduling>();
|
|
|
- foreach (var dto in dtos.UserDtos)
|
|
|
+
|
|
|
+ if (string.IsNullOrEmpty(dtos.ShiftId))
|
|
|
+ throw UserFriendlyException.SameMessage("请传入排班班次信息");
|
|
|
+ var shift = await _schedulingShiftRepository.GetAsync(dtos.ShiftId, HttpContext.RequestAborted);
|
|
|
+ if (shift == null)
|
|
|
+ throw UserFriendlyException.SameMessage("传入排班班次信息错误");
|
|
|
+ foreach (var Id in dtos.UserIds)
|
|
|
{
|
|
|
- if (string.IsNullOrEmpty(dto.UserId))
|
|
|
+ if (string.IsNullOrEmpty(Id))
|
|
|
throw UserFriendlyException.SameMessage("请传入排班用户信息");
|
|
|
- if (string.IsNullOrEmpty(dtos.ShiftId))
|
|
|
- throw UserFriendlyException.SameMessage("请传入排班班次信息");
|
|
|
+ var user = await _schedulingUserRepository.GetAsync(Id, HttpContext.RequestAborted);
|
|
|
+ if (user == null)
|
|
|
+ throw UserFriendlyException.SameMessage("传入排班用户信息错误");
|
|
|
+
|
|
|
if (dtos.SchedulingStartTime.HasValue && dtos.SchedulingEndTime.HasValue)
|
|
|
{
|
|
|
for (int i = 0; dtos.SchedulingStartTime.Value.AddDays(i) <= dtos.SchedulingEndTime.Value; i++)
|
|
|
{
|
|
|
var scheduling = new Scheduling
|
|
|
{
|
|
|
- SchedulingUserId = dto.UserId,
|
|
|
- SchedulingUserName = dto.UserName,
|
|
|
+ SchedulingUserId = user.UserId,
|
|
|
+ SchedulingUserName = user.UserName,
|
|
|
ShiftId = dtos.ShiftId,
|
|
|
ShiftName = dtos.ShiftName,
|
|
|
SchedulingTime = dtos.SchedulingStartTime.Value.AddDays(i),
|
|
|
- WorkingTime = dtos.WorkingTime,
|
|
|
- OffDutyTime = dtos.OffDutyTime,
|
|
|
+ WorkingTime = shift.WorkingTime,
|
|
|
+ OffDutyTime = shift.OffDutyTime,
|
|
|
SendOrderNum = 0
|
|
|
};
|
|
|
schedulings.Add(scheduling);
|
|
@@ -240,13 +248,13 @@ namespace Hotline.Api.Controllers
|
|
|
else {
|
|
|
var scheduling = new Scheduling
|
|
|
{
|
|
|
- SchedulingUserId = dto.UserId,
|
|
|
- SchedulingUserName = dto.UserName,
|
|
|
+ SchedulingUserId = user.UserId,
|
|
|
+ SchedulingUserName = user.UserName,
|
|
|
ShiftId = dtos.ShiftId,
|
|
|
ShiftName = dtos.ShiftName,
|
|
|
SchedulingTime = dtos.SchedulingTime,
|
|
|
- WorkingTime = dtos.WorkingTime,
|
|
|
- OffDutyTime = dtos.OffDutyTime,
|
|
|
+ WorkingTime = shift.WorkingTime,
|
|
|
+ OffDutyTime = shift.OffDutyTime,
|
|
|
SendOrderNum = 0
|
|
|
};
|
|
|
schedulings.Add(scheduling);
|