diff --git a/Src/Dlhis.Basic/WorkGrids/Controllers/WorkGridsController.cs b/Src/Dlhis.Basic/WorkGrids/Controllers/WorkGridsController.cs
index 50aeb8c3..01a666a9 100644
--- a/Src/Dlhis.Basic/WorkGrids/Controllers/WorkGridsController.cs
+++ b/Src/Dlhis.Basic/WorkGrids/Controllers/WorkGridsController.cs
@@ -127,6 +127,16 @@ public class WorkGridsController : ControllerBase
{
await _workGridScheduleService.SaveAsync(request);
}
+
+ ///
+ /// 移除网格人员排班
+ ///
+ ///
+ [HttpPost("user/schedule/remove")]
+ public async Task RemoveAsyncScheduleAsync(WorkGridScheduleSaveRequest request)
+ {
+ await _workGridScheduleService.RemoveAsync(request);
+ }
///
/// 获取网格员排班列表
diff --git a/Src/Dlhis.Basic/WorkGrids/Request/WorkGridScheduleSaveRequest.cs b/Src/Dlhis.Basic/WorkGrids/Request/WorkGridScheduleSaveRequest.cs
index dcede077..08b23358 100644
--- a/Src/Dlhis.Basic/WorkGrids/Request/WorkGridScheduleSaveRequest.cs
+++ b/Src/Dlhis.Basic/WorkGrids/Request/WorkGridScheduleSaveRequest.cs
@@ -4,11 +4,23 @@ namespace Dlhis.Basic.WorkGrids.Request;
public class WorkGridScheduleSaveRequest
{
+ ///
+ /// 网格code
+ ///
public Guid WorkGridCode { get; set; }
+ ///
+ /// 排班日期
+ ///
public DateOnly Date { get; set; }
+ ///
+ /// 班次
+ ///
public WorkGridTimePeriodEnumType PeriodType { get; set; }
+ ///
+ /// 人员codes
+ ///
public List UserCodes { get; set; }
}
\ No newline at end of file
diff --git a/Src/Dlhis.Basic/WorkGrids/Services/IWorkGridScheduleService.cs b/Src/Dlhis.Basic/WorkGrids/Services/IWorkGridScheduleService.cs
index a1b04591..5dfd2345 100644
--- a/Src/Dlhis.Basic/WorkGrids/Services/IWorkGridScheduleService.cs
+++ b/Src/Dlhis.Basic/WorkGrids/Services/IWorkGridScheduleService.cs
@@ -12,6 +12,8 @@ public interface IWorkGridScheduleService : IScopeDependency
{
Task SaveAsync(WorkGridScheduleSaveRequest request);
+ Task RemoveAsync(WorkGridScheduleSaveRequest request);
+
Task> GetListAsync(Guid workGridCode, DateOnly date, WorkGridTimePeriodEnumType? periodType);
Task> GetListSummaryAsync(Guid workGridCode, DateOnly start, DateOnly end);
diff --git a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs
index fe8ba3ff..740f7504 100644
--- a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs
+++ b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs
@@ -27,12 +27,14 @@ public class WorkGridScheduleService : IWorkGridScheduleService
public async Task SaveAsync(WorkGridScheduleSaveRequest request)
{
var exists = await _dbContext.Queryable()
- .Where(x => x.Date == request.Date)
+ .Where(x => x.WorkGridCode == request.WorkGridCode
+ && x.Date == request.Date
+ && request.UserCodes.Contains(x.UserCode)
+ )
.Where(x => x.PeriodType != request.PeriodType)
- .Where(x => request.UserCodes.Contains(x.UserCode))
.AnyAsync();
- exists.ThrowIfTrue($"存在已经分配的人员");
+ exists.ThrowIfTrue("当天已经存在排班人员");
var data = await _dbContext.Queryable()
.Where(x => x.WorkGridCode == request.WorkGridCode)
@@ -53,6 +55,19 @@ public class WorkGridScheduleService : IWorkGridScheduleService
await _dbContext.InsertAsync(toInserts);
}
+ ///
+ public async Task RemoveAsync(WorkGridScheduleSaveRequest request)
+ {
+ var data = await _dbContext.Queryable()
+ .Where(x => x.WorkGridCode == request.WorkGridCode)
+ .Where(x => x.Date == request.Date)
+ .Where(x => x.PeriodType == request.PeriodType)
+ .Where(x => request.UserCodes.Contains(x.UserCode))
+ .ToListAsync();
+
+ await _dbContext.DeleteReallyAsync(data);
+ }
+
///
public async Task> GetListAsync(Guid workGridCode, DateOnly date, WorkGridTimePeriodEnumType? periodType)
{