diff --git a/backend/app/api/pl/transport_address.py b/backend/app/api/pl/transport_address.py index d1a5781b3..054a850ae 100644 --- a/backend/app/api/pl/transport_address.py +++ b/backend/app/api/pl/transport_address.py @@ -135,6 +135,7 @@ ADDRESS_EXPORT_COLUMNS = [ ExportColumn(title="详细地址", field="fullAddress"), ExportColumn(title="联系人", field="contactName"), ExportColumn(title="联系电话", field="contactPhone"), + ExportColumn(title="注意事项", field="notes"), ExportColumn(title="状态", field="statusLabel"), ExportColumn(title="备注", field="remark"), ] @@ -221,6 +222,7 @@ def create_transport_address( lat=payload.lat, contact_name=payload.contact_name, contact_phone=payload.contact_phone, + notes=payload.notes, status=payload.status or "1", remark=payload.remark, create_by=user.id, diff --git a/backend/app/models/pl_models.py b/backend/app/models/pl_models.py index 0ba40a5a6..ac0faed6a 100644 --- a/backend/app/models/pl_models.py +++ b/backend/app/models/pl_models.py @@ -128,6 +128,7 @@ class PlTransportAddress(Base): lat = Column(DECIMAL(10, 6), nullable=False, comment="纬度") contact_name = Column(String(100), nullable=True, comment="联系人") contact_phone = Column(String(32), nullable=True, comment="联系电话") + notes = Column(String(500), nullable=True, comment="注意事项") status = Column(CHAR(1), nullable=False, default="1", comment="状态 1-启用 0-停用") tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号") order_num = Column(Integer, nullable=True, comment="排序号") diff --git a/backend/app/schemas/pl/transport_address.py b/backend/app/schemas/pl/transport_address.py index 4933791bb..be8903b55 100644 --- a/backend/app/schemas/pl/transport_address.py +++ b/backend/app/schemas/pl/transport_address.py @@ -13,6 +13,7 @@ class TransportAddressBase(BaseModel): lat: Decimal = Field(..., description="纬度") contact_name: Optional[str] = Field(default=None, max_length=100, alias="contactName", description="联系人") contact_phone: Optional[str] = Field(default=None, max_length=32, alias="contactPhone", description="联系电话") + notes: Optional[str] = Field(default=None, max_length=500, description="注意事项") status: str = Field(default="1", max_length=1, description="状态 1-启用 0-停用") remark: Optional[str] = Field(default=None, description="备注") @@ -34,6 +35,7 @@ class TransportAddressUpdate(BaseModel): lat: Optional[Decimal] = None contact_name: Optional[str] = Field(default=None, max_length=100, alias="contactName") contact_phone: Optional[str] = Field(default=None, max_length=32, alias="contactPhone") + notes: Optional[str] = Field(default=None, max_length=500) status: Optional[str] = Field(default=None, max_length=1) remark: Optional[str] = None diff --git a/backend/tests/test_pl_transport_address_notes_schema.py b/backend/tests/test_pl_transport_address_notes_schema.py new file mode 100644 index 000000000..9b970d3fa --- /dev/null +++ b/backend/tests/test_pl_transport_address_notes_schema.py @@ -0,0 +1,36 @@ +"""运输地址库 Schema 接受 notes。""" +from __future__ import annotations + +from decimal import Decimal + +from app.schemas.pl.transport_address import TransportAddressCreate, TransportAddressUpdate + + +def test_transport_address_create_accepts_notes(): + body = TransportAddressCreate.model_validate( + { + "addressName": "测试仓", + "fullAddress": "安庆市某某路1号", + "lng": Decimal("117.0"), + "lat": Decimal("30.5"), + "notes": "大门左侧卸货", + } + ) + assert body.notes == "大门左侧卸货" + + +def test_transport_address_update_accepts_notes(): + body = TransportAddressUpdate.model_validate({"notes": "进厂需报备"}) + assert body.notes == "进厂需报备" + + +def test_transport_address_create_notes_optional(): + body = TransportAddressCreate.model_validate( + { + "addressName": "测试仓", + "fullAddress": "安庆市某某路1号", + "lng": Decimal("117.0"), + "lat": Decimal("30.5"), + } + ) + assert body.notes is None diff --git a/docs/sql/migrations/2026-09-02-pl-transport-address-notes.sql b/docs/sql/migrations/2026-09-02-pl-transport-address-notes.sql new file mode 100644 index 000000000..4ee75f714 --- /dev/null +++ b/docs/sql/migrations/2026-09-02-pl-transport-address-notes.sql @@ -0,0 +1,7 @@ +-- 运输地址库增加注意事项 +-- 设计: docs/superpowers/specs/2026-09-02-pl-transport-address-notes-fill-design.md + +SET NAMES utf8mb4; + +ALTER TABLE `pl_transport_address` + ADD COLUMN `notes` varchar(500) DEFAULT NULL COMMENT '注意事项' AFTER `contact_phone`; diff --git a/docs/sql/shanxia2.0.sql b/docs/sql/shanxia2.0.sql index e2e9f6f9d..02a73a125 100644 --- a/docs/sql/shanxia2.0.sql +++ b/docs/sql/shanxia2.0.sql @@ -27529,6 +27529,7 @@ CREATE TABLE `pl_transport_address` ( `lat` decimal(10,6) NOT NULL COMMENT '纬度', `contact_name` varchar(100) DEFAULT NULL COMMENT '联系人', `contact_phone` varchar(32) DEFAULT NULL COMMENT '联系电话', + `notes` varchar(500) DEFAULT NULL COMMENT '注意事项', `status` char(1) NOT NULL DEFAULT '1' COMMENT '状态 1-启用 0-停用', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号',