田爽 1 year ago
parent
commit
dec9c09286
1 changed files with 24 additions and 15 deletions
  1. 24 15
      src/Hotline.Api/Controllers/SchedulingController.cs

+ 24 - 15
src/Hotline.Api/Controllers/SchedulingController.cs

@@ -230,6 +230,29 @@ namespace Hotline.Api.Controllers
 				if (dtos.SchedulingStartTime.HasValue  && dtos.SchedulingEndTime.HasValue)
 				{
 					for (int i = 0; dtos.SchedulingStartTime.Value.AddDays(i) <= dtos.SchedulingEndTime.Value; i++)
+					{
+						var schedulingTime = dtos.SchedulingStartTime.Value.AddDays(i);
+						var oldScheduling = await _schedulingRepository.Queryable().Where(x => x.SchedulingUserId == user.UserId && x.ShiftId == dtos.ShiftId && x.SchedulingTime == schedulingTime).AnyAsync();
+						if (!oldScheduling)
+						{
+							var scheduling = new Scheduling
+							{
+								SchedulingUserId = user.UserId,
+								SchedulingUserName = user.UserName,
+								ShiftId = dtos.ShiftId,
+								ShiftName = dtos.ShiftName,
+								SchedulingTime = schedulingTime,
+								WorkingTime = shift.WorkingTime,
+								OffDutyTime = shift.OffDutyTime,
+								SendOrderNum = 0
+							};
+							schedulings.Add(scheduling);
+						}
+					}
+                }
+				else {
+					var oldScheduling = await _schedulingRepository.Queryable().Where(x => x.SchedulingUserId == user.UserId && x.ShiftId == dtos.ShiftId && x.SchedulingTime == dtos.SchedulingTime).AnyAsync();
+					if (!oldScheduling)
 					{
 						var scheduling = new Scheduling
 						{
@@ -237,27 +260,13 @@ namespace Hotline.Api.Controllers
 							SchedulingUserName = user.UserName,
 							ShiftId = dtos.ShiftId,
 							ShiftName = dtos.ShiftName,
-							SchedulingTime = dtos.SchedulingStartTime.Value.AddDays(i),
+							SchedulingTime = dtos.SchedulingTime,
 							WorkingTime = shift.WorkingTime,
 							OffDutyTime = shift.OffDutyTime,
 							SendOrderNum = 0
 						};
 						schedulings.Add(scheduling);
 					}
-                }
-				else {
-					var scheduling = new Scheduling
-					{
-						SchedulingUserId = user.UserId,
-						SchedulingUserName = user.UserName,
-						ShiftId = dtos.ShiftId,
-						ShiftName = dtos.ShiftName,
-						SchedulingTime = dtos.SchedulingTime,
-						WorkingTime = shift.WorkingTime,
-						OffDutyTime = shift.OffDutyTime,
-						SendOrderNum = 0
-					};
-					schedulings.Add(scheduling);
 				}
 			}
 			await _schedulingRepository.AddRangeAsync(schedulings, HttpContext.RequestAborted);