add 移除人员排班

This commit is contained in:
2025-03-03 10:01:38 +08:00
parent 179075d2eb
commit 045af48abe
4 changed files with 42 additions and 3 deletions

View File

@@ -128,6 +128,16 @@ public class WorkGridsController : ControllerBase
await _workGridScheduleService.SaveAsync(request);
}
/// <summary>
/// 移除网格人员排班
/// </summary>
/// <param name="request"></param>
[HttpPost("user/schedule/remove")]
public async Task RemoveAsyncScheduleAsync(WorkGridScheduleSaveRequest request)
{
await _workGridScheduleService.RemoveAsync(request);
}
/// <summary>
/// 获取网格员排班列表
/// </summary>

View File

@@ -4,11 +4,23 @@ namespace Dlhis.Basic.WorkGrids.Request;
public class WorkGridScheduleSaveRequest
{
/// <summary>
/// 网格code
/// </summary>
public Guid WorkGridCode { get; set; }
/// <summary>
/// 排班日期
/// </summary>
public DateOnly Date { get; set; }
/// <summary>
/// 班次
/// </summary>
public WorkGridTimePeriodEnumType PeriodType { get; set; }
/// <summary>
/// 人员codes
/// </summary>
public List<string> UserCodes { get; set; }
}

View File

@@ -12,6 +12,8 @@ public interface IWorkGridScheduleService : IScopeDependency
{
Task SaveAsync(WorkGridScheduleSaveRequest request);
Task RemoveAsync(WorkGridScheduleSaveRequest request);
Task<List<WorkGridScheduleResponse>> GetListAsync(Guid workGridCode, DateOnly date, WorkGridTimePeriodEnumType? periodType);
Task<IEnumerable<WorkGridScheduleSummaryResponse>> GetListSummaryAsync(Guid workGridCode, DateOnly start, DateOnly end);

View File

@@ -27,12 +27,14 @@ public class WorkGridScheduleService : IWorkGridScheduleService
public async Task SaveAsync(WorkGridScheduleSaveRequest request)
{
var exists = await _dbContext.Queryable<WorkGridScheduleEntity>()
.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<WorkGridScheduleEntity>()
.Where(x => x.WorkGridCode == request.WorkGridCode)
@@ -53,6 +55,19 @@ public class WorkGridScheduleService : IWorkGridScheduleService
await _dbContext.InsertAsync(toInserts);
}
/// <inheritdoc />
public async Task RemoveAsync(WorkGridScheduleSaveRequest request)
{
var data = await _dbContext.Queryable<WorkGridScheduleEntity>()
.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);
}
/// <inheritdoc />
public async Task<List<WorkGridScheduleResponse>> GetListAsync(Guid workGridCode, DateOnly date, WorkGridTimePeriodEnumType? periodType)
{