package hr import ( "WiiCITMS/models/hr" "WiiCITMS/process/common" "WiiGenerates/WiiCITMS/generates/v1/go/types" "WiiGoLibrary/apply/middle/process/v1" "WiiGoLibrary/framework/db/v1/utils/mssql/unique" "errors" ) // AssignStaffPositionWithPermission 分配员工到岗位,带权限检查 func AssignStaffPositionWithPermission(params AssignStaffPositionRequest, operatorGuid string) (*StaffPositionResponse, *process.Process) { // 检查操作者权限 result := CheckAccessControl(operatorGuid, common.OperationUpdate, common.ResourceStaff, "") if !result.HasPermission { return nil, process.FailError(types.NoPermissionError, errors.New(result.ErrorMessage)) } // 转换为AssignPosition参数并执行分配 positionResult, proc := AssignPosition(AssignPositionRequest{ StaffGuid: params.StaffGuid, OrganizationGuid: params.PositionGuid, // 假设这里有参数转换逻辑 }) if proc.IsError() { return nil, proc } // 将结果转换为StaffPositionResponse return &StaffPositionResponse{ RecordGuid: positionResult.RecordGuid.String(), StaffGuid: positionResult.StaffGuid.String(), StaffName: positionResult.StaffName, PositionGuid: positionResult.PositionGuid.String(), PositionName: positionResult.PositionName, OrganizationID: int64(0), // 需要根据实际情况转换 }, process.Success(200) } // RemoveStaffPositionWithPermission 从岗位中移除员工,带权限检查 func RemoveStaffPositionWithPermission(staffPositionGuid string, operatorGuid string) *process.Process { // 检查操作者权限 result := CheckAccessControl(operatorGuid, common.OperationUpdate, common.ResourceStaff, "") if !result.HasPermission { return process.FailError(types.NoPermissionError, errors.New(result.ErrorMessage)) } // 执行移除 return RemoveStaffPosition(RemoveStaffPositionRequest{ StaffGuid: staffPositionGuid, }) } // UpdateOrganizationWithPermission 更新组织信息,带权限检查 func UpdateOrganizationWithPermission(orgGuid string, params UpdateOrganizationRequest, operatorGuid string) (*hr.OrganizationModel, *process.Process) { // 检查操作者权限 result := CheckAccessControl(operatorGuid, common.OperationUpdate, common.ResourceOrganization, orgGuid) if !result.HasPermission { return nil, process.FailError(types.NoPermissionError, errors.New(result.ErrorMessage)) } // 将UpdateOrganizationRequest转换为CreateOrganizationRequest createParams := CreateOrganizationRequest{ OrganizationName: params.OrganizationName, OrganizationType: params.OrganizationType, ParentGuid: params.ParentGuid, Description: params.Description, } // 执行更新 return UpdateOrganization(orgGuid, createParams) } // CreatePositionWithPermission 创建岗位,带权限检查 func CreatePositionWithPermission(params CreatePositionRequest, operatorGuid string) (*hr.PositionModel, *process.Process) { // 检查操作者权限 result := CheckAccessControl(operatorGuid, common.OperationCreate, common.ResourcePosition, "") if !result.HasPermission { return nil, process.FailError(types.NoPermissionError, errors.New(result.ErrorMessage)) } // 执行创建 return CreatePosition(params) } // UpdatePositionWithPermission 更新岗位信息,带权限检查 func UpdatePositionWithPermission(positionGuid string, params CreatePositionRequest, operatorGuid string) (*hr.PositionModel, *process.Process) { // 检查操作者权限 result := CheckAccessControl(operatorGuid, common.OperationUpdate, common.ResourcePosition, "") if !result.HasPermission { return nil, process.FailError(types.NoPermissionError, errors.New(result.ErrorMessage)) } // 执行更新 return UpdatePosition(positionGuid, params) } // DeletePositionWithPermission 删除岗位,带权限检查 func DeletePositionWithPermission(positionGuid string, operatorGuid string) *process.Process { // 检查操作者权限 result := CheckAccessControl(operatorGuid, common.OperationDelete, common.ResourcePosition, "") if !result.HasPermission { return process.FailError(types.NoPermissionError, errors.New(result.ErrorMessage)) } // 执行删除 return DeletePosition(positionGuid) } // AssignPositionToOrgWithPermission 分配岗位到组织,带权限检查 func AssignPositionToOrgWithPermission(params OrgPositionRelRequest, operatorGuid string) (*hr.OrgPositionRelModel, *process.Process) { // 验证组织ID和岗位ID orgGuid, err := unique.FromString(params.OrganizationGuid) if err != nil { return nil, process.FailError(types.InvalidParamError, err) } // 检查操作者权限 - 需要对组织有更新权限 result := CheckAccessControl(operatorGuid, common.OperationUpdate, common.ResourceOrganization, orgGuid.String()) if !result.HasPermission { return nil, process.FailError(types.NoPermissionError, errors.New(result.ErrorMessage)) } // 将OrgPositionRelRequest转换为AssignPositionToOrgRequest assignParams := AssignPositionToOrgRequest{ OrganizationGuid: params.OrganizationGuid, PositionGuid: params.PositionGuid, HeadCount: params.HeadCount, } // 执行分配 return AssignPositionToOrg(assignParams) } // RemovePositionFromOrgWithPermission 从组织中移除岗位,带权限检查 func RemovePositionFromOrgWithPermission(relationGuid string, operatorGuid string) *process.Process { // 获取关系记录以确定组织ID rel, proc := GetPositionOrgRelation(relationGuid) if proc.IsError() { return proc } // 检查操作者权限 - 需要对组织有更新权限 result := CheckAccessControl(operatorGuid, common.OperationUpdate, common.ResourceOrganization, rel.OrganizationGuid) if !result.HasPermission { return process.FailError(types.NoPermissionError, errors.New(result.ErrorMessage)) } // 执行移除 return RemovePositionFromOrg(relationGuid) }