feat(pl): persist create_date on plan create APIs

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zlwuandCursor committed 2026-07-27 16:29:35 +08:00
1 parent bb7f05ffda
commit 349e031790
2 files changed
+21 -2

No files matched your search

+10 -2
View File
@@ -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,
+11
View File
@@ -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()