fix 网格增加最大用户数设置
This commit is contained in:
@@ -15,13 +15,13 @@ public interface IWorkGridService : IScopeDependency
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
Task<Pagination<WorkGridGainfoPageResponse>> GetPageAsync(WorkGridGainfoPageRequest request);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 保存
|
||||
/// </summary>
|
||||
/// <param name="requests"></param>
|
||||
/// <returns></returns>
|
||||
Task SaveAsync(List<WorkGridSaveRequest> requests);
|
||||
Task<string> SaveAsync(List<WorkGridSaveRequest> requests);
|
||||
|
||||
/// <summary>
|
||||
/// /网格分页
|
||||
@@ -48,7 +48,7 @@ public interface IWorkGridService : IScopeDependency
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
Task AssignAsync(WorkGridUserAssignRequest request);
|
||||
Task<string> AssignAsync(WorkGridUserAssignRequest request);
|
||||
|
||||
/// <summary>
|
||||
/// 移除人员
|
||||
|
||||
@@ -74,10 +74,11 @@ public class WorkGridService : IWorkGridService
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task SaveAsync(List<WorkGridSaveRequest> requests)
|
||||
public async Task<string> SaveAsync(List<WorkGridSaveRequest> requests)
|
||||
{
|
||||
var insertGrids = new List<string>();
|
||||
var updateGrids = new List<string>();
|
||||
var tips = new List<string>();
|
||||
|
||||
var leaderUserCodes = requests.Select(x => x.LeaderUserCode).Distinct().ToList();
|
||||
var existsUserCodes = await _dbContext.Queryable<GainfoEntity>().Where(x => leaderUserCodes.Contains(x.Code)).Select(x => x.Code).ToListAsync();
|
||||
@@ -93,7 +94,6 @@ public class WorkGridService : IWorkGridService
|
||||
true.ThrowIfTrue($"网格区域名称[{request.Name}]重复");
|
||||
}
|
||||
|
||||
|
||||
if (!request.Id.HasValue)
|
||||
{
|
||||
var exists = await _dbContext.Queryable<WorkGridEntity>()
|
||||
@@ -107,14 +107,23 @@ public class WorkGridService : IWorkGridService
|
||||
entity.LeaderUserCode = request.LeaderUserCode;
|
||||
|
||||
await _dbContext.InsertAsync(entity);
|
||||
insertGrids.Add($"{entity.Name}({entity.LeaderUserCode})");
|
||||
insertGrids.Add($"{entity.Name}({entity.LeaderUserCode}),最大用户数:{entity.MaxUserCount}");
|
||||
}
|
||||
else
|
||||
{
|
||||
var entity = await _dbContext.Queryable<WorkGridEntity>().Where(x => x.Id == request.Id).SingleAsync();
|
||||
entity.ThrowIfNull("网格不存在");
|
||||
|
||||
updateGrids.Add($"{entity.Name}->{request.Name}");
|
||||
updateGrids.Add($"{entity.Name}->{request.Name},{entity.MaxUserCount}->{request.MaxUserCount}");
|
||||
if (request.MaxUserCount < entity.MaxUserCount)
|
||||
{
|
||||
var userCount = await _dbContext.Queryable<WorkGridUserEntity>().Where(x => x.WorkGridCode == entity.Code).CountAsync();
|
||||
if (userCount > request.MaxUserCount)
|
||||
{
|
||||
tips.Add($"{request.Name}人员{userCount}超出最大人数设置{request.MaxUserCount}");
|
||||
}
|
||||
}
|
||||
|
||||
request.Adapt(entity);
|
||||
|
||||
await _dbContext.UpdateAsync(entity);
|
||||
@@ -123,6 +132,9 @@ public class WorkGridService : IWorkGridService
|
||||
|
||||
await _operateLog.LogAsync(OperateLogType.WorkGrid, "创建网格:" + insertGrids.Join("\r\n"));
|
||||
await _operateLog.LogAsync(OperateLogType.WorkGrid, "修改网格:" + updateGrids.Join("\r\n"));
|
||||
|
||||
|
||||
return tips.Any() ? tips.Join("\r\n") : null;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -146,6 +158,7 @@ public class WorkGridService : IWorkGridService
|
||||
LeaderUserCode = x.LeaderUserCode,
|
||||
UserName = ga.Name,
|
||||
Remark = x.Remark,
|
||||
MaxUserCount = x.MaxUserCount,
|
||||
UserCount = SqlFunc.Subqueryable<WorkGridUserEntity>().Where(p => p.WorkGridCode == x.Code && x.IsDeleted == false).Count()
|
||||
})
|
||||
.ToPageListAsync(request);
|
||||
@@ -183,7 +196,8 @@ public class WorkGridService : IWorkGridService
|
||||
Id = x.Id,
|
||||
Code = x.Code,
|
||||
Name = x.Name,
|
||||
Remark = x.Remark
|
||||
Remark = x.Remark,
|
||||
MaxUserCount = x.MaxUserCount
|
||||
})
|
||||
.SingleAsync();
|
||||
|
||||
@@ -216,7 +230,7 @@ public class WorkGridService : IWorkGridService
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task AssignAsync(WorkGridUserAssignRequest request)
|
||||
public async Task<string> AssignAsync(WorkGridUserAssignRequest request)
|
||||
{
|
||||
var currentFactory = _currentUser.GetStringTenantId();
|
||||
var role = _currentUser.GetRole();
|
||||
@@ -250,7 +264,10 @@ public class WorkGridService : IWorkGridService
|
||||
}).ToList();
|
||||
|
||||
await _dbContext.InsertAsync(dataToInserts);
|
||||
var userCount = await _dbContext.Queryable<WorkGridUserEntity>().Where(x => x.WorkGridCode == myWorkGrid.Code).CountAsync();
|
||||
await _operateLog.LogAsync(OperateLogType.WorkGrid, $"分配人员到网格({myWorkGrid.Name}),人员:{dataToInserts.Select(x => x.UserCode).Join(",")}");
|
||||
|
||||
return $"{myWorkGrid.Name}人员{userCount}超出最大人数设置{myWorkGrid.MaxUserCount}";
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
Reference in New Issue
Block a user