This commit is contained in:
2025-04-25 11:59:21 +08:00
parent 6204ddbc57
commit c135bf294a
3 changed files with 37 additions and 0 deletions

View File

@@ -215,4 +215,11 @@ public class WorkGridsController : ControllerBase
{
await _workGridScheduleService.ManuallyUploadAsync(logIds);
}
[HttpPost("test")]
public async Task<object> Test(WorkGridScheduleSaveRequest request)
{
return await _workGridScheduleService.TestAsync(request);
}
}

View File

@@ -25,4 +25,6 @@ public interface IWorkGridScheduleService : IScopeDependency
Task ManuallyUploadAsync(List<long> logIds);
Task<List<WorkGridScheduleMaximumConsecutiveDto>> MaximumConsecutiveUserCodesAsync(List<string> userCodes, int days, DateOnly date);
Task<object> TestAsync(WorkGridScheduleSaveRequest request);
}

View File

@@ -142,6 +142,34 @@ public class WorkGridScheduleService : IWorkGridScheduleService
_logger.LogError("推送信息错误save,{error}", e.Message);
}
}
public async Task<object> TestAsync(WorkGridScheduleSaveRequest request)
{
request.UserCodes = request.UserCodes.Distinct().ToList();
var workGrid = await _dbContext.Queryable<WorkGridEntity>()
.LeftJoin<GainfoEntity>((x, ga) => x.LeaderUserCode == ga.Code)
.Where(x => x.Code == request.WorkGridCode)
.Select((x, ga) => new
{
x.Code, x.Name,
x.LeaderUserCode,
LeaderUserName = ga.Name,
x.MaxConsecutiveLimitCount
})
.SingleAsync();
workGrid.ThrowIfNull("工作网格不存在");
var timeSetting = await _dbContext.Queryable<WorkGridTimePeriodEntity>().Where(x => x.Type == request.PeriodType).Select(x => new { x.Start, x.Before }).SingleAsync();
timeSetting.ThrowIfNull("工作网格时间尚未配置,无法操作");
var currentLimit = request.Date.ToDateTime(timeSetting.Start.Add(-TimeSpan.FromSeconds(timeSetting.Before)));
(DateTime.Now >= currentLimit).ThrowIfTrue("当前时间不可修改排班信息");
return currentLimit;
}
/// <inheritdoc />
public async Task RemoveAsync(WorkGridScheduleSaveRequest request)