diff --git a/Src/Dlhis.Basic/WorkGrids/Request/WorkGridPageRequest.cs b/Src/Dlhis.Basic/WorkGrids/Request/WorkGridPageRequest.cs
index e5a2a3d2..eb7bd538 100644
--- a/Src/Dlhis.Basic/WorkGrids/Request/WorkGridPageRequest.cs
+++ b/Src/Dlhis.Basic/WorkGrids/Request/WorkGridPageRequest.cs
@@ -8,4 +8,9 @@ public class WorkGridPageRequest : PageDto
/// 网格code,不传则取我的网格
///
public Guid? WorkGridCode { get; set; }
+
+ ///
+ /// 排班日期
+ ///
+ public DateTime Date { get; set; } = DateTime.Today;
}
\ No newline at end of file
diff --git a/Src/Dlhis.Basic/WorkGrids/Response/WorkGridScheduleResponse.cs b/Src/Dlhis.Basic/WorkGrids/Response/WorkGridScheduleResponse.cs
index f95fa2a3..34a61f34 100644
--- a/Src/Dlhis.Basic/WorkGrids/Response/WorkGridScheduleResponse.cs
+++ b/Src/Dlhis.Basic/WorkGrids/Response/WorkGridScheduleResponse.cs
@@ -11,10 +11,4 @@ public class WorkGridScheduleResponse
public string UserCode { get; set; }
public string UserName { get; set; }
-
-
- ///
- /// 最大连续排班信息
- ///
- public WorkGridScheduleMaximumConsecutiveDto MaximumConsecutiveSchedules { get; set; }
}
\ No newline at end of file
diff --git a/Src/Dlhis.Basic/WorkGrids/Response/WorkGridUserPageResponse.cs b/Src/Dlhis.Basic/WorkGrids/Response/WorkGridUserPageResponse.cs
index bd601ea0..ddc14d4b 100644
--- a/Src/Dlhis.Basic/WorkGrids/Response/WorkGridUserPageResponse.cs
+++ b/Src/Dlhis.Basic/WorkGrids/Response/WorkGridUserPageResponse.cs
@@ -36,22 +36,9 @@ public class WorkGridUserPageDetailResponse
/// 人员姓名
///
public string Name { get; set; }
-
- // ///
- // /// 排班值
- // ///
- // public WorkGridTimePeriodEnumType? ScheduleType { get; set; }
- //
- // ///
- // /// 排班描述
- // ///
- // public string ScheduleTypeDesc
- // {
- // get
- // {
- // return !ScheduleType.HasValue
- // ? "未排班"
- // : ScheduleType.Value.GetDescription();
- // }
- // }
+
+ ///
+ /// 最大连续排班信息
+ ///
+ public WorkGridScheduleMaximumConsecutiveDto MaximumConsecutiveSchedules { get; set; }
}
\ No newline at end of file
diff --git a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs
index a939b30b..fb44e1ab 100644
--- a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs
+++ b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs
@@ -38,11 +38,17 @@ public class WorkGridScheduleService : IWorkGridScheduleService
public async Task SaveAsync(WorkGridScheduleSaveRequest request)
{
- //await _factorySettingService.CheckWorkGridSetLimitAsync(request.Date);
-
var workGrid = await _dbContext.Queryable().SingleAsync(x => x.Code == request.WorkGridCode);
workGrid.ThrowIfNull("工作网格不存在");
+ var workGridUserCodes = await _dbContext.Queryable()
+ .Where(x => x.WorkGridCode == workGrid.Code && request.UserCodes.Contains(x.UserCode))
+ .Select(x => x.UserCode)
+ .ToListAsync();
+
+ var others = request.UserCodes.Except(workGridUserCodes).ToList();
+ others.ThrowIfExists($"{others.Join(",")}非当前网格人员");
+
var exists = await _dbContext.Queryable()
.Where(x => x.WorkGridCode == request.WorkGridCode
&& x.Date == request.Date
@@ -71,8 +77,6 @@ public class WorkGridScheduleService : IWorkGridScheduleService
///
public async Task RemoveAsync(WorkGridScheduleSaveRequest request)
{
- //await _factorySettingService.CheckWorkGridSetLimitAsync(request.Date);
-
var workGrid = await _dbContext.Queryable().SingleAsync(x => x.Code == request.WorkGridCode);
workGrid.ThrowIfNull("工作网格不存在");
@@ -103,17 +107,6 @@ public class WorkGridScheduleService : IWorkGridScheduleService
})
.ToListAsync();
- var userCodes = data.Select(x => x.UserCode).ToList();
- if (userCodes.Any())
- {
- var maximumConsecutiveUserCodes = await MaximumConsecutiveUserCodesAsync(userCodes, 1, date);
-
- foreach (var item in data)
- {
- item.MaximumConsecutiveSchedules = maximumConsecutiveUserCodes.FirstOrDefault(x => x.UserCode == item.UserCode);
- }
- }
-
return data;
}
diff --git a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs
index e581a8fa..c1f724c3 100644
--- a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs
+++ b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs
@@ -193,6 +193,17 @@ public class WorkGridService : IWorkGridService
})
.SingleAsync();
+ var userCodes = myWorkGrid.UserInfos.Select(x => x.Code).ToList();
+ if (userCodes.Any())
+ {
+ var maximumConsecutiveUserCodes = await _workGridScheduleService.MaximumConsecutiveUserCodesAsync(userCodes, 1, DateOnly.FromDateTime(request.Date));
+
+ foreach (var item in myWorkGrid.UserInfos)
+ {
+ item.MaximumConsecutiveSchedules = maximumConsecutiveUserCodes.FirstOrDefault(x => x.UserCode == item.Code);
+ }
+ }
+
return myWorkGrid;
}