修改多个问题,优化代码结构
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
from typing import List, Optional
|
||||
|
||||
from fastapi import HTTPException
|
||||
from pydantic import Field, BaseModel, field_validator
|
||||
from pydantic import Field, BaseModel, field_validator, model_validator
|
||||
from ..common.push_system import BaseUpdateRequestSchema
|
||||
from ..common.base import BaseResponseWithID
|
||||
from ..common.datetime import get_current_date
|
||||
@@ -78,7 +78,7 @@ class ProjectResponseBase(BaseResponseWithID):
|
||||
|
||||
# 拓展信息
|
||||
dbtc_score_list: Optional[list] = Field(default_factory=list, description='达标投产评分列表') # 这里项目用的是list而不是List
|
||||
# : Optional[str] = Field(None, description="审核状态", examples=["pending"])
|
||||
# approval_status: Optional[str] = Field(None, description="审核状态", examples=["pending"])
|
||||
|
||||
|
||||
|
||||
@@ -266,11 +266,35 @@ class ProjectProductionCapacity(BaseModel):
|
||||
"""
|
||||
plan_production_date: DateStr | None = Field(None, description="集团公司计划投产日期", examples=["2024-08-01"])
|
||||
plan_full_production_date: DateStr | None = Field(None, description="集团公司计划全部投产日期", examples=["2024-09-01"])
|
||||
ic_plan_first_production_date: DateStr | None = Field(None, description="区域公司计划首批投产日期(只有新能源需要)",examples=["2024-08-01"])
|
||||
ic_plan_full_production_date: DateStr | None = Field(None, description="区域公司计划全投日期(只有新能源需要)",examples=["2024-09-01"])
|
||||
actual_production_date: DateStr | None = Field(None, description="实际投产日期(只有新能源需要)", examples=["2024-08-15"])
|
||||
actual_full_production_date: DateStr | None = Field(None, description="实际全投日期(只有新能源需要)", examples=["2024-09-10"])
|
||||
actual_production_list : list[_ActualProductionNode] | None = Field(None, description="实际投产节点列表(每次必须填写全部)(只有新能源需要)")
|
||||
|
||||
@model_validator(mode="before")
|
||||
@classmethod
|
||||
def reject_ic_plan_dates(cls, data):
|
||||
if not isinstance(data, dict):
|
||||
return data
|
||||
|
||||
blocked_fields = [
|
||||
field for field in ("ic_plan_first_production_date", "ic_plan_full_production_date")
|
||||
if field in data
|
||||
]
|
||||
if blocked_fields:
|
||||
raise HTTPException(
|
||||
status_code=400,
|
||||
detail=f"/production_capacity 接口不支持更新字段: {', '.join(blocked_fields)}"
|
||||
)
|
||||
return data
|
||||
|
||||
@property
|
||||
def ic_plan_first_production_date(self) -> str:
|
||||
return ""
|
||||
|
||||
@property
|
||||
def ic_plan_full_production_date(self) -> str:
|
||||
return ""
|
||||
|
||||
@field_validator("actual_production_date")
|
||||
def validate_actual_production_date(cls, v):
|
||||
if v is None:
|
||||
|
||||
Reference in New Issue
Block a user