diff --git a/backend/app/api/pl/plan.py b/backend/app/api/pl/plan.py index cc9531694..13e3c7023 100644 --- a/backend/app/api/pl/plan.py +++ b/backend/app/api/pl/plan.py @@ -87,6 +87,10 @@ router = APIRouter(prefix="/plan", tags=["运输计划-计划管理"]) _PLAN_NO_SEQ_WIDTH = 3 +def _resolve_create_date(value: Optional[date]) -> date: + return value or date.today() + + def _generate_plan_no(db: Session) -> str: """生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置)""" today = date.today() @@ -397,6 +401,7 @@ def create_plan( id=generate_uuid(), tenant_no=tenant_no, plan_no=plan_no, + create_date=_resolve_create_date(payload.create_date), plan_date=payload.plan_date, belongs_company=payload.belongs_company, plan_type=plan_type, @@ -479,6 +484,7 @@ def create_plan_full( id=generate_uuid(), tenant_no=tenant_no, plan_no=plan_no, + create_date=_resolve_create_date(payload.create_date), plan_date=payload.plan_date, belongs_company=payload.belongs_company, plan_type=plan_type, @@ -599,6 +605,7 @@ def create_from_contract( id=generate_uuid(), tenant_no=tenant_no, plan_no=plan_no, + create_date=_resolve_create_date(payload.create_date), plan_date=payload.plan_date, belongs_company=contract.belongs_company or "shanxia", plan_type=plan_type, @@ -611,9 +618,10 @@ def create_from_contract( supplier_id=contract.supplier_id, supplier_name=(contract.party_a or contract.supplier_name or "").strip() or None, destination_id=contract.customer_id, - destination_name=(contract.party_b or contract.customer_name or "").strip() or None, + # 客户名称严格跟合同「客户名称」;目的地名称与客户保持一致(不再取需方可章名 party_b) + destination_name=(contract.customer_name or "").strip() or None, customer_id=contract.customer_id, - customer_name=(contract.party_b or contract.customer_name or "").strip() or None, + customer_name=(contract.customer_name or "").strip() or None, contact_name=contract.contact_name, contact_phone=contract.contact_phone, party_a=contract.party_a, diff --git a/backend/tests/test_pl_plan_create_date.py b/backend/tests/test_pl_plan_create_date.py new file mode 100644 index 000000000..3b4eedc3d --- /dev/null +++ b/backend/tests/test_pl_plan_create_date.py @@ -0,0 +1,11 @@ +from datetime import date + +from app.api.pl.plan import _resolve_create_date + + +def test_resolve_create_date_uses_explicit(): + assert _resolve_create_date(date(2026, 1, 15)) == date(2026, 1, 15) + + +def test_resolve_create_date_defaults_today(): + assert _resolve_create_date(None) == date.today()