权限相关调整

This commit is contained in:
fuenmao
2026-09-10 16:43:11 +08:00
parent 1fd557a19e
commit f858b04701
19 changed files with 393 additions and 53 deletions
@@ -11,10 +11,12 @@ namespace SimpleAdmin.Application;
public class OnboardingEmployeeService : IOnboardingEmployeeService
{
private readonly SqlSugarScope _db;
private readonly IOnboardingDataPermissionService _dataPermission;
public OnboardingEmployeeService()
public OnboardingEmployeeService(IOnboardingDataPermissionService dataPermission)
{
_db = DbContext.DB;
_dataPermission = dataPermission;
}
/// <summary>
@@ -184,6 +186,7 @@ public class OnboardingEmployeeService : IOnboardingEmployeeService
var employee = await _db.Queryable<ObEmployee>().InSingleAsync(input.Id)
?? throw Oops.Bah("员工档案不存在");
await EnsureEmployeeCanManage(employee);
var before = CreateHrState(employee);
var regularizationStatus = employee.RegularizationStatus;
var regularizationDate = employee.RegularizationDate;
@@ -266,6 +269,7 @@ public class OnboardingEmployeeService : IOnboardingEmployeeService
var employee = await _db.Queryable<ObEmployee>().InSingleAsync(input.Id)
?? throw Oops.Bah("员工档案不存在");
await EnsureEmployeeCanManage(employee);
if (employee.EmploymentType == EmployeeEmploymentType.PartTime)
throw Oops.Bah("兼职员工不适用转正流程,请先调整用工类型");
if (employee.RegularizationStatus == EmployeeRegularizationStatus.Regular)
@@ -360,6 +364,7 @@ public class OnboardingEmployeeService : IOnboardingEmployeeService
var employee = await _db.Queryable<ObEmployee>().InSingleAsync(input.Id)
?? throw Oops.Bah("员工档案不存在");
await EnsureEmployeeCanManage(employee);
if (employee.RegularizationStatus != EmployeeRegularizationStatus.Regular)
throw Oops.Bah("该员工当前不是已转正状态");
@@ -411,6 +416,14 @@ public class OnboardingEmployeeService : IOnboardingEmployeeService
/// <summary>
/// 查询员工来源任务中上传的全部材料,并补充原始文件名、后缀和文件大小。
/// </summary>
private Task EnsureEmployeeCanManage(ObEmployee employee)
{
return _dataPermission.EnsureCanManage(
employee.CreateUserId,
OnboardingPermissionCodes.EmployeeManageAll,
"员工档案");
}
private async Task<List<OnboardingTaskMaterialDetailOutput>> GetEmployeeMaterials(long? taskId)
{
if (!taskId.HasValue)