fix 增加数据校验
This commit is contained in:
@@ -8,4 +8,9 @@ public class WorkGridPageRequest : PageDto
|
||||
/// 网格code,不传则取我的网格
|
||||
/// </summary>
|
||||
public Guid? WorkGridCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排班日期
|
||||
/// </summary>
|
||||
public DateTime Date { get; set; } = DateTime.Today;
|
||||
}
|
||||
@@ -11,10 +11,4 @@ public class WorkGridScheduleResponse
|
||||
public string UserCode { get; set; }
|
||||
|
||||
public string UserName { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 最大连续排班信息
|
||||
/// </summary>
|
||||
public WorkGridScheduleMaximumConsecutiveDto MaximumConsecutiveSchedules { get; set; }
|
||||
}
|
||||
@@ -36,22 +36,9 @@ public class WorkGridUserPageDetailResponse
|
||||
/// 人员姓名
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
// /// <summary>
|
||||
// /// 排班值
|
||||
// /// </summary>
|
||||
// public WorkGridTimePeriodEnumType? ScheduleType { get; set; }
|
||||
//
|
||||
// /// <summary>
|
||||
// /// 排班描述
|
||||
// /// </summary>
|
||||
// public string ScheduleTypeDesc
|
||||
// {
|
||||
// get
|
||||
// {
|
||||
// return !ScheduleType.HasValue
|
||||
// ? "未排班"
|
||||
// : ScheduleType.Value.GetDescription();
|
||||
// }
|
||||
// }
|
||||
|
||||
/// <summary>
|
||||
/// 最大连续排班信息
|
||||
/// </summary>
|
||||
public WorkGridScheduleMaximumConsecutiveDto MaximumConsecutiveSchedules { get; set; }
|
||||
}
|
||||
@@ -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