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

@@ -8,4 +8,9 @@ public class WorkGridPageRequest : PageDto
/// 网格code,不传则取我的网格
/// </summary>
public Guid? WorkGridCode { get; set; }
/// <summary>
/// 排班日期
/// </summary>
public DateTime Date { get; set; } = DateTime.Today;
}

View File

@@ -11,10 +11,4 @@ public class WorkGridScheduleResponse
public string UserCode { get; set; }
public string UserName { get; set; }
/// <summary>
/// 最大连续排班信息
/// </summary>
public WorkGridScheduleMaximumConsecutiveDto MaximumConsecutiveSchedules { get; set; }
}

View File

@@ -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; }
}

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;
}