From 045af48abea767cf5f0557117ad1def58327bd50 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 3 Mar 2025 10:01:38 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E7=A7=BB=E9=99=A4=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E6=8E=92=E7=8F=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/WorkGridsController.cs | 10 +++++++++ .../Request/WorkGridScheduleSaveRequest.cs | 12 +++++++++++ .../Services/IWorkGridScheduleService.cs | 2 ++ .../Implements/WorkGridScheduleService.cs | 21 ++++++++++++++++--- 4 files changed, 42 insertions(+), 3 deletions(-) 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) {