This commit is contained in:
2025-03-21 15:44:53 +08:00
parent 7333365585
commit d943f2e813
9 changed files with 48 additions and 57 deletions

View File

@@ -21,7 +21,7 @@ public interface IWorkGridService : IScopeDependency
/// </summary>
/// <param name="requests"></param>
/// <returns></returns>
Task<string> SaveAsync(List<WorkGridSaveRequest> requests);
Task SaveAsync(List<WorkGridSaveRequest> requests);
/// <summary>
/// /网格分页
@@ -48,7 +48,7 @@ public interface IWorkGridService : IScopeDependency
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
Task<string> AssignAsync(WorkGridUserAssignRequest request);
Task AssignAsync(WorkGridUserAssignRequest request);
/// <summary>
/// 移除人员

View File

@@ -74,11 +74,10 @@ public class WorkGridService : IWorkGridService
}
/// <inheritdoc />
public async Task<string> SaveAsync(List<WorkGridSaveRequest> requests)
public async Task 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();
@@ -107,23 +106,14 @@ public class WorkGridService : IWorkGridService
entity.LeaderUserCode = request.LeaderUserCode;
await _dbContext.InsertAsync(entity);
insertGrids.Add($"{entity.Name}({entity.LeaderUserCode}),最大用户数:{entity.MaxUserCount}");
insertGrids.Add($"{entity.Name}({entity.LeaderUserCode}),最大用户数:{entity.MaxUserTipCount}");
}
else
{
var entity = await _dbContext.Queryable<WorkGridEntity>().Where(x => x.Id == request.Id).SingleAsync();
entity.ThrowIfNull("网格不存在");
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}");
}
}
updateGrids.Add($"{entity.Name}->{request.Name},排版用户数{entity.MaxUserTipCount}->{request.MaxUserTipCount},连续排班天数:{entity.MaxConsecutiveTipCount}->{request.MaxConsecutiveTipCount}");
request.Adapt(entity);
await _dbContext.UpdateAsync(entity);
@@ -132,9 +122,6 @@ 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 />
@@ -158,7 +145,8 @@ public class WorkGridService : IWorkGridService
LeaderUserCode = x.LeaderUserCode,
UserName = ga.Name,
Remark = x.Remark,
MaxUserCount = x.MaxUserCount,
MaxUserTipCount = x.MaxUserTipCount,
MaxConsecutiveTipCount = x.MaxConsecutiveTipCount,
UserCount = SqlFunc.Subqueryable<WorkGridUserEntity>().Where(p => p.WorkGridCode == x.Code && p.IsDeleted == false).Count()
})
.ToPageListAsync(request);
@@ -197,7 +185,8 @@ public class WorkGridService : IWorkGridService
Code = x.Code,
Name = x.Name,
Remark = x.Remark,
MaxUserCount = x.MaxUserCount
MaxUserTipCount = x.MaxUserTipCount,
MaxConsecutiveTipCount = x.MaxConsecutiveTipCount
})
.SingleAsync();
@@ -230,7 +219,7 @@ public class WorkGridService : IWorkGridService
}
/// <inheritdoc />
public async Task<string> AssignAsync(WorkGridUserAssignRequest request)
public async Task AssignAsync(WorkGridUserAssignRequest request)
{
var currentFactory = _currentUser.GetStringTenantId();
var role = _currentUser.GetRole();
@@ -264,12 +253,7 @@ 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 userCount > myWorkGrid.MaxUserCount
? $"{myWorkGrid.Name}人员{userCount}超出最大人数设置{myWorkGrid.MaxUserCount}"
: null;
}
/// <inheritdoc />