add 移除人员排班
This commit is contained in:
@@ -128,6 +128,16 @@ public class WorkGridsController : ControllerBase
|
|||||||
{
|
{
|
||||||
await _workGridScheduleService.SaveAsync(request);
|
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
|
public class WorkGridScheduleSaveRequest
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 网格code
|
||||||
|
/// </summary>
|
||||||
public Guid WorkGridCode { get; set; }
|
public Guid WorkGridCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 排班日期
|
||||||
|
/// </summary>
|
||||||
public DateOnly Date { get; set; }
|
public DateOnly Date { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 班次
|
||||||
|
/// </summary>
|
||||||
public WorkGridTimePeriodEnumType PeriodType { get; set; }
|
public WorkGridTimePeriodEnumType PeriodType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 人员codes
|
||||||
|
/// </summary>
|
||||||
public List<string> UserCodes { get; set; }
|
public List<string> UserCodes { get; set; }
|
||||||
}
|
}
|
||||||
@@ -12,6 +12,8 @@ public interface IWorkGridScheduleService : IScopeDependency
|
|||||||
{
|
{
|
||||||
Task SaveAsync(WorkGridScheduleSaveRequest request);
|
Task SaveAsync(WorkGridScheduleSaveRequest request);
|
||||||
|
|
||||||
|
Task RemoveAsync(WorkGridScheduleSaveRequest request);
|
||||||
|
|
||||||
Task<List<WorkGridScheduleResponse>> GetListAsync(Guid workGridCode, DateOnly date, WorkGridTimePeriodEnumType? periodType);
|
Task<List<WorkGridScheduleResponse>> GetListAsync(Guid workGridCode, DateOnly date, WorkGridTimePeriodEnumType? periodType);
|
||||||
|
|
||||||
Task<IEnumerable<WorkGridScheduleSummaryResponse>> GetListSummaryAsync(Guid workGridCode, DateOnly start, DateOnly end);
|
Task<IEnumerable<WorkGridScheduleSummaryResponse>> GetListSummaryAsync(Guid workGridCode, DateOnly start, DateOnly end);
|
||||||
|
|||||||
@@ -27,12 +27,14 @@ public class WorkGridScheduleService : IWorkGridScheduleService
|
|||||||
public async Task SaveAsync(WorkGridScheduleSaveRequest request)
|
public async Task SaveAsync(WorkGridScheduleSaveRequest request)
|
||||||
{
|
{
|
||||||
var exists = await _dbContext.Queryable<WorkGridScheduleEntity>()
|
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 => x.PeriodType != request.PeriodType)
|
||||||
.Where(x => request.UserCodes.Contains(x.UserCode))
|
|
||||||
.AnyAsync();
|
.AnyAsync();
|
||||||
|
|
||||||
exists.ThrowIfTrue($"存在已经分配的人员");
|
exists.ThrowIfTrue("当天已经存在排班人员");
|
||||||
|
|
||||||
var data = await _dbContext.Queryable<WorkGridScheduleEntity>()
|
var data = await _dbContext.Queryable<WorkGridScheduleEntity>()
|
||||||
.Where(x => x.WorkGridCode == request.WorkGridCode)
|
.Where(x => x.WorkGridCode == request.WorkGridCode)
|
||||||
@@ -53,6 +55,19 @@ public class WorkGridScheduleService : IWorkGridScheduleService
|
|||||||
await _dbContext.InsertAsync(toInserts);
|
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 />
|
/// <inheritdoc />
|
||||||
public async Task<List<WorkGridScheduleResponse>> GetListAsync(Guid workGridCode, DateOnly date, WorkGridTimePeriodEnumType? periodType)
|
public async Task<List<WorkGridScheduleResponse>> GetListAsync(Guid workGridCode, DateOnly date, WorkGridTimePeriodEnumType? periodType)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user