fix 增加数据校验

This commit is contained in:
2025-03-06 17:02:20 +08:00
parent bf392a7c46
commit 532dbf0760
5 changed files with 29 additions and 39 deletions

View File

@@ -38,11 +38,17 @@ public class WorkGridScheduleService : IWorkGridScheduleService
public async Task SaveAsync(WorkGridScheduleSaveRequest request)
{
//await _factorySettingService.CheckWorkGridSetLimitAsync(request.Date);
var workGrid = await _dbContext.Queryable<WorkGridEntity>().SingleAsync(x => x.Code == request.WorkGridCode);
workGrid.ThrowIfNull("工作网格不存在");
var workGridUserCodes = await _dbContext.Queryable<WorkGridUserEntity>()
.Where(x => x.WorkGridCode == workGrid.Code && request.UserCodes.Contains(x.UserCode))
.Select(x => x.UserCode)
.ToListAsync();
var others = request.UserCodes.Except(workGridUserCodes).ToList();
others.ThrowIfExists($"{others.Join(",")}非当前网格人员");
var exists = await _dbContext.Queryable<WorkGridScheduleEntity>()
.Where(x => x.WorkGridCode == request.WorkGridCode
&& x.Date == request.Date
@@ -71,8 +77,6 @@ public class WorkGridScheduleService : IWorkGridScheduleService
/// <inheritdoc />
public async Task RemoveAsync(WorkGridScheduleSaveRequest request)
{
//await _factorySettingService.CheckWorkGridSetLimitAsync(request.Date);
var workGrid = await _dbContext.Queryable<WorkGridEntity>().SingleAsync(x => x.Code == request.WorkGridCode);
workGrid.ThrowIfNull("工作网格不存在");
@@ -103,17 +107,6 @@ public class WorkGridScheduleService : IWorkGridScheduleService
})
.ToListAsync();
var userCodes = data.Select(x => x.UserCode).ToList();
if (userCodes.Any())
{
var maximumConsecutiveUserCodes = await MaximumConsecutiveUserCodesAsync(userCodes, 1, date);
foreach (var item in data)
{
item.MaximumConsecutiveSchedules = maximumConsecutiveUserCodes.FirstOrDefault(x => x.UserCode == item.UserCode);
}
}
return data;
}

View File

@@ -193,6 +193,17 @@ public class WorkGridService : IWorkGridService
})
.SingleAsync();
var userCodes = myWorkGrid.UserInfos.Select(x => x.Code).ToList();
if (userCodes.Any())
{
var maximumConsecutiveUserCodes = await _workGridScheduleService.MaximumConsecutiveUserCodesAsync(userCodes, 1, DateOnly.FromDateTime(request.Date));
foreach (var item in myWorkGrid.UserInfos)
{
item.MaximumConsecutiveSchedules = maximumConsecutiveUserCodes.FirstOrDefault(x => x.UserCode == item.Code);
}
}
return myWorkGrid;
}