fix 增加数据校验
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user