From fc24e3a37b2c352560a5ac3ab66effcead5831b1 Mon Sep 17 00:00:00 2001 From: JiaoTianBo Date: Wed, 25 Mar 2026 11:24:30 +0800 Subject: [PATCH] =?UTF-8?q?fix(routes):=20=E4=BC=98=E5=8C=96=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E5=AF=BC=E5=85=A5=E9=94=99=E8=AF=AF=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=B9=B6=E8=B0=83=E6=95=B4=E8=81=8C=E4=BD=8D=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 优化 job 路由导入时的异常捕获,添加错误信息和堆栈打印 - 修改职位接口中 requirements 字段的转换逻辑,支持多种对象转换为字典 - 修正 job 模块中 CandidateSource 引用路径 - 移除职位管理页面中“创建职位”按钮相关代码 --- .../ylhp_hr_2_0/controller/routes/__init__.py | 5 ++++- .../yinlihupo/ylhp_hr_2_0/controller/routes/job.py | 14 ++++++++++++-- .../ylhp_hr_2_0_fronted/src/views/Jobs.vue | 4 ---- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/__init__.py b/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/__init__.py index a6a0ef3..54a9ad1 100644 --- a/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/__init__.py +++ b/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/__init__.py @@ -32,7 +32,10 @@ except ImportError: try: from .job import router as job_router -except ImportError: +except ImportError as e: + import traceback + print(f"[ERROR] Failed to import job router: {e}") + traceback.print_exc() from fastapi import APIRouter job_router = APIRouter() diff --git a/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/job.py b/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/job.py index 8f16b3c..17856b7 100644 --- a/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/job.py +++ b/src/main/python/cn/yinlihupo/ylhp_hr_2_0/controller/routes/job.py @@ -14,7 +14,7 @@ from ..schemas import ( EvaluationSchemaResponse, EvaluationSchemaListResponse ) from ...domain.job import Job -from ...domain.enums import CandidateSource +from ...domain.candidate import CandidateSource from ...mapper.job_mapper import JobMapper from ...mapper.evaluation_mapper import EvaluationMapper @@ -24,6 +24,16 @@ router = APIRouter(prefix="/api/jobs", tags=["职位管理"]) def _job_to_response(job: Job) -> JobPositionResponse: """将领域实体转换为响应模型""" + # 将 JobRequirement 对象转换为字典 + requirements_dict = None + if job.requirements is not None: + if hasattr(job.requirements, 'to_dict'): + requirements_dict = job.requirements.to_dict() + elif hasattr(job.requirements, '__dict__'): + requirements_dict = job.requirements.__dict__ + else: + requirements_dict = job.requirements + return JobPositionResponse( id=job.id, title=job.title, @@ -35,7 +45,7 @@ def _job_to_response(job: Job) -> JobPositionResponse: location=job.location, salary_min=job.salary_min, salary_max=job.salary_max, - requirements=job.requirements, + requirements=requirements_dict, description=job.description, candidate_count=job.candidate_count, new_candidate_count=job.new_candidate_count, diff --git a/src/main/web/cn.yinlihupo/ylhp_hr_2_0_fronted/src/views/Jobs.vue b/src/main/web/cn.yinlihupo/ylhp_hr_2_0_fronted/src/views/Jobs.vue index c421eac..3d179fd 100644 --- a/src/main/web/cn.yinlihupo/ylhp_hr_2_0_fronted/src/views/Jobs.vue +++ b/src/main/web/cn.yinlihupo/ylhp_hr_2_0_fronted/src/views/Jobs.vue @@ -2,10 +2,6 @@