add 移除人员排班
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user