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) {