Files
xst 8c61209dd4 test(物流公司管理需求): 需求文档与 QE Fleet 全流程设计产物入库
- 需求 v1.1 + 2026-09-29 需求方确认的 Q7~Q19 决议(含 BR-07/BR-09/6.7/6.9 矛盾表述修订)
- 测试点 159 个、测试用例 164 条(P0 55/P1 81/P2 23/P3 5),需求→测试点→用例三级追溯覆盖率 100%
- 质量裁决 PASS(首轮 PASS_WITH_FIX,13 项待确认确认后复裁决升级);评审原始 2 阻断项+9 建议项+3 优化项已全部修复
- 确认单:与 4 个历史需求均为并行关系、0 冲突、0 回写
- 附导出 v1/v2 版本快照、Playwright/Appium 脚本骨架、覆盖率审计脚本与指标、评审修复脚本
2026-09-29 10:03:35 +08:00

402 lines
28 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 物流公司管理需求
> 文档角色:需求文档
> 原始来源:`requirements\物流公司管理需求.md`
# 物流公司管理需求文档
> **版本**: v1.1(Q1–Q6 决议已确认)
> **编写日期**: 2026-09-28(同日确认决议,见第 8 节)
> **状态**: 待评审
> **交互原型**: [prototypes/物流公司管理原型.html](prototypes/物流公司管理原型.html)(可点击操作,数据为演示数据,不落库)
> **UI 参考**: 运八管理端"基础信息 → 货主管理 → 企业货主"(新增表单、编辑页-合同管理 Tab、新增合同弹窗三张截图);2026-09-28 补充实际页面截图:运费核算(运单列表 + 核算状态列)、修改核算弹窗、运单管理、货源管理、货主打款、财务打款
> **关联模块**: 基础信息 / 承运结算 → 运费核算
---
## 1. 背景与目标
### 1.1 背景
平台目前的承运主体以车队/司机为主。随着业务扩展,出现由**外协物流公司**整段承运的场景:平台将一批运单委托给一家物流公司完成,运费按公司口径核算与结算。当前系统没有物流公司档案的维护入口,合同以线下方式管理,核算时结算对象无法从系统中选择,只能手工填写,导致:
- 物流公司信息分散、口径不一致(同一公司在不同运单、打款记录中名称/信用代码写法不一);
- 合同(含税源地归属)无系统记录,开票与核算缺少依据;
- 核算人员勾选结算对象时无可用清单,效率低且易错。
### 1.2 目标
1. 提供**物流公司**档案管理能力:创建、修改、删除、查询。
2. 编辑物流公司时支持**合同管理**(交互对标"企业货主-合同管理")。
3. 运费核算环节,核算人员在**运单上**勾选物流公司(选填、单选),核算数据**填充至运单表**;运单记录所选公司信息。
4. 新建/编辑货源时支持选择物流公司(选填、单选),作为货源及关联运单的记录信息。
### 1.3 不在本期范围
- 物流公司登录端(APP/门户)、给物流公司开账号。
- 合同审批流、电子签章。
- 与现有"承运人管理/车队管理"实体的打通或合并。
- 基于合同的自动计费、自动开票。
### 1.4 设计原则(强调)
**本功能仅作运单记录,不影响任何流程。** 物流公司档案及其在运单、货源上的关联,仅用于业务记录、展示与追溯:
- 是否选择物流公司、所选公司是否存在生效合同,均**不阻断、不改变**任何业务流程(核算、货源、运单、打款等);
- 合同状态(待生效/生效中/已过期)仅作信息展示,不参与任何校验或计费;
- 唯一的强约束针对档案数据本身的一致性(唯一性校验、删除保护,见 BR-01/BR-04),不属于业务流程控制。
---
## 2. 名词与范围
| 名词 | 说明 |
|:---|:---|
| 物流公司 | 与平台签订承运合同、整段承接运输业务的外协承运主体,档案含基本资料与证件 |
| 物流合同 | 平台与物流公司签订的承运合同,记录合同编号、签订/生效/过期时间、所属税源地、附件 |
| 运费核算 | "承运结算 → 运费核算"环节:核算人员将核算数据**填充到运单表**;**无独立核算单据**,核算的对象就是运单 |
| 生效合同 | 当前日期 ∈ [生效时间, 过期时间] 的合同,状态由系统按日期自动计算 |
---
## 3. 角色与权限
| 角色 | 权限 |
|:---|:---|
| 运营管理员(基础信息维护岗) | 物流公司新增/编辑/删除/启停用、合同管理(全部操作) |
| 核算人员 | 运费核算时在运单上勾选物流公司;可查看物流公司列表(只读),不可增删改 |
| 系统管理员 | 可授权上述权限给其他角色(沿用平台角色权限体系) |
- 数据权限:沿用平台多机构数据隔离规则,物流公司按创建机构归属,跨机构不可见、不可操作。
- 所有增/删/改操作写入行为日志(操作人、时间、IP、变更内容摘要)。
---
## 4. 功能清单
| 编号 | 功能 | 说明 | 优先级 |
|:---|:---|:---|:---:|
| FR-01 | 物流公司列表查询 | 多条件查询 + 分页,列表展示状态与生效合同数 | P0 |
| FR-02 | 新增物流公司 | 证件上传 + 基本信息表单,唯一性校验 | P0 |
| FR-03 | 编辑物流公司 | 企业资料修改 + 合同管理 Tab(对标企业货主) | P0 |
| FR-04 | 删除物流公司 | 二次确认;有约束条件(见 BR-04) | P0 |
| FR-05 | 启用/停用 | 状态开关,控制核算勾选可见性(见 BR-05) | P0 |
| FR-06 | 合同管理 | 列表 + 新增/编辑/删除/查看,附件上传 | P0 |
| FR-07 | 运单核算关联物流公司 | 运费核算时在**运单**上弹窗**单选**一家启用状态公司(**选填**,见 BR-06),连同"客户收货地址"(选填、仅作记录)一并**填充至运单表** | P0 |
| FR-08 | 货源选择物流公司 | 新建/编辑货源时选择物流公司(选填、单选,见 BR-07) | P1 |
| FR-09 | 打款列表物流公司筛选 | **货主打款、财务打款**两个页面查询区增加"物流公司"筛选项(见 BR-08 / 6.8) | P1 |
| FR-10 | 列表显示物流公司 | **货源管理列表、运单管理、货主打款/财务打款列表**均显示"物流公司"列(快照口径,见 BR-09 / 6.9) | P1 |
---
## 5. 业务规则
### BR-01 唯一性
- **公司名称**全平台唯一(不含已逻辑删除的公司)。
- **统一社会信用代码**全平台唯一,格式按国标 18 位(`[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}`)校验。
- **简称码**(选填)全平台唯一,2-4 位纯字母(对标企业货主简称码口径)。
### BR-02 状态定义
物流公司仅两种状态:**启用** / **停用**。新增后默认为**启用**。
### BR-03 合同规则
- 同一物流公司下**合同编号唯一**;不同公司之间允许重复。
- 过期时间必须晚于生效时间。
- 合同状态由系统按当前日期自动计算:待生效 / 生效中 / 已过期,不可手工设置。
- 附件仅允许 pdf/doc/docx/jpg/jpeg/bmp/png(对标企业货主合同附件口径)。
### BR-04 删除约束
- 删除为**逻辑删除**,需二次确认。
- 满足任一条件时**禁止删除**,仅可停用:
1. 存在状态为"生效中"的合同;
2. 已被任一**运单**引用(运单上记录了该公司,历史运单需要追溯公司信息)。
- 阻断提示需说明具体原因(生效合同数 / 被运单引用),并引导改用"停用"。
- 以上为**档案数据完整性保护**,不属于业务流程控制(见 1.4 设计原则)。
### BR-05 启用/停用影响
- **停用**:不再出现在运费核算的勾选弹窗中;已核算的运单不受影响;档案仍可查询、编辑、管理合同。
- **启用**:恢复出现在勾选列表。
- 停用需二次确认;启用即时生效。
### BR-06 运单核算关联物流公司(单选、选填)
> **口径纠正(2026-09-28)**:核算单与运单是同一个东西——**核算是将核算数据填充到运单表**,没有独立的核算单,不存在"新建核算单"。本节操作对象均为**运单**。
1. 运费核算位于 **整车运输 → 承运结算 → 运费核算**,页面即运单列表(含"**核算状态**"列:未核算/已核算);核算人员通过行内"编辑"打开**修改核算**弹窗,弹窗中提供**选择物流公司**入口,选择结果**填充到运单表**。
2. 弹窗**仅加载启用状态**的物流公司,默认按创建时间倒序,支持按公司名称/统一社会信用代码搜索,分页默认 20 条/页。
3. **单选**(Q1 决议):一张运单仅可关联**一家**物流公司;再次选择时替换上次结果。核算时**自动带出**物流公司:货源已选公司的运单(FR-08)默认带入该公司,可**取消选择**(清除)和**再次选择**(更换)。
4. **选填**(Q2 决议):不强制选择;未选择时核算数据正常保存到运单(运单上记为"无外协公司"),不影响任何流程。
5. 无生效合同的公司**可勾选**(Q3 决议),行内"⚠ 无生效合同"仅作信息提示,不做任何阻断。
6. 保存核算时若已选择公司,将其 **ID + 公司名称 + 统一社会信用代码** 写入**运单表**对应字段;此后公司改名/停用/删除均不影响运单上已保存的信息。
7. 运单核算同时增加"**客户收货地址**"字段(2026-09-28 新增):**选填**文本(≤200 字符),**仅作记录**、填充到运单表并随运单展示,不参与任何校验、流程与计费。
### BR-07 货源选择物流公司(FR-08)
1. **新建/编辑货源**(发布货源页面)增加"物流公司"字段:**选填、单选**,交互复用 BR-06 的选择弹窗(仅启用公司)。
2. 所选物流公司记录于**货源维度**并随货源展示;核算时作为修改核算弹窗的**默认带入值**(弹窗初始无值),核算保存后写入运单表(**运单维度**)。两者均仅作记录展示与追溯,不参与货源、运单、结算的任何流程判断与计费(见 1.4 设计原则,Q8 决议)。
3. 编辑货源可更换或清除所选物流公司;保存时同样写入信息快照。
### BR-08 打款列表物流公司筛选(FR-09)
1. 打款分**货主打款**与**财务打款**两个页面(均位于 整车运输 → 承运结算 菜单下),两个页面的查询区均增加"**物流公司**"下拉筛选项;打款记录页同步增加。
2. 下拉选项:全部 / **无外协公司** / 各物流公司(**含停用状态**——历史打款记录需可按原公司查出)。
3. 过滤依据为运单上记录的物流公司(由货源选择带入,FR-08);未关联公司的运单归入"无外协公司"。
4. 仅作查询过滤与结果展示,**不影响打款流程、金额计算与任何审批动作**(见 1.4 设计原则)。
### BR-09 列表显示物流公司(FR-10)
1. **货源管理列表**(整车运输 → 货源管理 → 货源管理):显示该货源所选物流公司;未选择的显示"无外协公司"。
2. **运单管理**:显示**运单表**记录的物流公司(核算保存时写入;货源所选公司由核算弹窗默认带入);未核算或未关联的显示"无外协公司",不联表实时取货源当前值(Q8 决议)。
3. **货主打款 / 财务打款列表**:随 FR-09 一并显示该列(见 6.8)。
4. 展示口径为公司名称**快照**:公司后续改名/停用/删除,历史记录仍显示保存时的名称,不受影响。
5. 该列为只读展示,不参与任何流程(见 1.4 设计原则);列表导出 Excel 需同步包含"物流公司"列。
> 说明:以上待确认问题 Q1–Q6 已于 2026-09-28 全部确认,结论见第 8 节"决议记录"。其中核算相关口径后又作一次纠正:**核算即运单核算、无独立核算单**,本文档已统一按运单口径表述。
---
## 6. 页面详述
### 6.1 物流公司列表(菜单:基础信息 → 承运管理 → 物流公司管理)
**查询条件**:
| 条件 | 控件 | 说明 |
|:---|:---|:---|
| 公司名称 | 输入框 | 模糊匹配 |
| 统一社会信用代码 | 输入框 | 模糊匹配 |
| 联系方式 | 输入框 | 模糊匹配 |
| 状态 | 下拉 | 全部 / 启用 / 停用 |
| 创建时间 | 日期范围 | 含当天 |
按钮:查询、重置、新增、导出(导出 Excel,沿用平台 20000 条上限口径)。
**列表列**:
| 列 | 说明 |
|:---|:---|
| 公司名称 | 超链接,点击进入编辑页 |
| 简称码 | 未设置为显示 "-" |
| 统一社会信用代码 | - |
| 法人代表名称 | - |
| 联系人 / 联系方式 | - |
| 生效合同数 | 实时统计"生效中"合同数量 |
| 状态 | 启用(绿)/ 停用(灰),行内开关切换 |
| 创建人 / 创建时间 | - |
| 操作 | 编辑、删除(删除受 BR-04 约束) |
默认排序:创建时间倒序。分页:默认 20 条/页,可选 10/20/50/100。
### 6.2 新增物流公司
页面布局对标"企业货主-新增":上方证件上传区,下方两栏表单。
**证件上传区**:
| 证件 | 必填 | 说明 |
|:---|:---:|:---|
| 企业营业执照 | ✓ | jpg/jpeg/png/pdf |
| 法人身份证人像面照片 | ✓ | jpg/jpeg/png |
| 法人身份证国徽面照片 | ✓ | jpg/jpeg/png |
| 道路运输经营许可证 | - | jpg/jpeg/png/pdf(Q5 决议:选填) |
**表单字段**:
| 字段 | 必填 | 类型 | 校验/说明 |
|:---|:---:|:---|:---|
| 公司名称 | ✓ | 文本 | ≤50 字符;全平台唯一(BR-01) |
| 统一社会信用代码 | ✓ | 文本 | 18 位国标格式 + 唯一(BR-01),失焦即校验 |
| 法人代表名称 | ✓ | 文本 | ≤30 字符 |
| 联系人 | ✓ | 文本 | ≤20 字符 |
| 联系方式 | ✓ | 文本 | 手机号格式 |
| 简称码 | - | 文本 | 2-4 位纯字母,全平台唯一(BR-01) |
| 企业通信地址 | ✓ | 省市区级联 | 对标企业货主通信地址控件 |
| 详细地址 | ✓ | 文本 | ≤100 字符 |
| 备注 | - | 多行文本 | ≤200 字符 |
提交成功 → 返回列表并提示"新增成功",新公司状态为**启用**。提交失败时表单不清空,错误字段就近标红提示。
### 6.3 编辑物流公司
页面 Tab 结构对标"编辑企业货主",本期包含两个 Tab(结构上预留扩展):
- **企业资料**:同新增表单,回显数据;公司名称、统一社会信用代码修改时重新执行唯一性校验(排除自身)。
- **合同管理**:见 6.4。
### 6.4 合同管理(编辑页内 Tab,对标企业货主-合同管理)
**筛选条件**:合同编号(输入)、所属税源地(下拉)、签订时间范围、创建时间范围。按钮:查询、新增、导出。
**列表列**:选择框(批量列,本期不提供批量操作)、合同编号、所属税源地、合同状态(待生效/生效中/已过期,自动计算)、创建人、签订时间、创建时间、生效时间、过期时间、操作(查看 / 编辑 / 删除)。
**新增/编辑合同弹窗**(对标企业货主"新增"弹窗):
| 字段 | 必填 | 校验/说明 |
|:---|:---:|:---|
| 合同编号 | ✓ | 同一公司下唯一(BR-03),≤50 字符 |
| 签订时间 | ✓ | 日期,可晚于当前日期(补录场景),不做强校验 |
| 生效时间 | ✓ | 日期 |
| 过期时间 | ✓ | 晚于生效时间(BR-03) |
| 所属税源地 | ✓ | 下拉,数据来源"数据字典-税源地"(与企业货主税源地同源) |
| 附件 | ✓ | 点击上传,仅 pdf/doc/docx/jpg/jpeg/bmp/png(BR-03),单文件;**暂不设置大小上限**(Q6 决议);上传后显示文件名,可重新上传替换 |
- **查看**:只读弹窗,附件支持预览/下载。
- **删除**:二次确认,记录操作日志;仅作记录数据维护,不影响其他流程。
### 6.5 删除 / 停用
见 BR-04、BR-05。列表"删除"按钮与编辑页内均不提供物理删除入口;删除后列表不可见,导出与核算勾选均不含已删除公司。
### 6.6 运费核算 —— 在运单上核算并关联物流公司(FR-07,单选/选填)
> **核算单与运单是同一个东西**:核算是将核算数据填充到运单表,没有独立的核算单,也没有"新建核算单"入口;运费核算的操作对象就是运单。
**入口**:整车运输 → 承运结算 → 运费核算(页面即运单列表,含"核算状态"列:未核算/已核算;列表带批量核算按钮)。
**交互流程**:
1. 核算人员在运单列表点击行内"编辑",打开**修改核算**弹窗(含运单信息区:运单号、货主名称、司机姓名、车牌号、结算吨位等,原有字段不变)。
2. 修改核算弹窗中新增"物流公司"(**选填、单选**)与"**客户收货地址**"(**选填**)两个字段;物流公司默认带入货源上选择的公司(FR-08),可点击"选择物流公司"打开弹窗更换或清除。
3. 选择弹窗:系统加载**启用状态**物流公司(BR-06),展示公司名称、统一社会信用代码、联系人、联系方式、生效合同数(无生效合同的行显示"⚠ 无生效合同",仅提示、可勾选);支持搜索、分页(20 条/页);**单选**。
4. 选择后点击"确定",弹窗关闭,所选公司回填修改核算弹窗。
5. 点击"保存/核算":核算数据(含物流公司、客户收货地址)**写入运单表**,运单"核算状态"更新为"已核算";未选择公司时正常保存(运单上记为"无外协公司")。
6. 运费核算列表与运单管理的"物流公司"列展示运单表中的公司信息(FR-10 / 6.9)。
**异常与边界**:
- 弹窗打开时公司列表加载失败 → 空状态 + "重新加载"按钮。
- 核算保存时公司已被停用/删除 → 后端二次校验:提示具体公司名并要求重新选择(数据有效性校验,非流程控制)。
- 已核算的运单再次修改核算 → 覆盖更新运单上的核算字段并记录日志(不产生新单据)。
- 搜索无结果 → 空状态"未找到符合条件的物流公司"。
- **批量核算**:沿用现有逻辑;是否支持批量填充物流公司/客户收货地址,见待确认 Q7。
### 6.7 货源选择物流公司(FR-08,新增)
**入口**:整车运输 → 货源管理 → 发布货源(新建)/ 编辑货源。
**交互**:
1. 表单增加"物流公司"字段(**选填、单选**),建议置于承运信息区("指定车队司机"附近);按钮"选择物流公司"复用 6.6 的选择弹窗(仅启用公司、支持搜索分页)。
2. 选择后回显公司名称、统一社会信用代码、联系人,可"移除"清空,或再次打开弹窗更换(替换上次选择)。
3. 保存货源时写入所选公司信息快照;该信息随货源展示,并在核算时作为修改核算弹窗的默认带入值(运单侧的记录以核算保存写入运单表为准,见 Q8 决议)。
4. **不触发任何流程**:选择与否、公司是否有合同,均不影响货源发布、接单、运单流转与结算(见 1.4 设计原则)。
### 6.8 打款列表增加物流公司筛选项(FR-09,新增)
**入口**:整车运输 → 承运结算 → **货主打款** / **财务打款**(两个独立页面,均需改造);打款记录页同步。
**交互**:
1. 查询区增加"物流公司"下拉筛选项(BR-08):全部 / 无外协公司 / 各物流公司(含停用)。
2. 与其他筛选条件(运单号、打款状态、打款时间范围等)可组合查询,结果实时过滤。
3. 物流公司列展示运单上记录的公司名称(信息快照);无关联公司的运单显示"无外协公司"。
4. 仅作查询过滤,不改变打款列表的任何操作入口与流程(打款、驳回等按原有逻辑执行)。
### 6.9 货源管理列表 / 运单管理 / 货主打款 / 财务打款 显示物流公司(FR-10,新增)
| 列表 | 物流公司列数据来源 | 空值显示 |
|:---|:---|:---|
| 货源管理列表(整车运输 → 货源管理 → 货源管理) | 该货源选择的物流公司(FR-08) | 无外协公司 |
| 运单管理(整车运输 → 运输管理 → 运单管理) | 运单表记录的物流公司(核算保存写入;未核算不取货源当前值) | 无外协公司 |
| 货主打款 / 财务打款(整车运输 → 承运结算,FR-09) | 运单上记录的物流公司快照 | 无外协公司 |
- 建议列位置:货源管理列表置于"目的地"之后;运单管理置于"承运司机"附近;货主打款/财务打款置于"运输单号"之后。
- 展示为只读信息,不参与任何流程(见 1.4 设计原则);导出 Excel 同步包含该列。
---
## 7. 数据与接口要点(给开发)
| 项 | 要求 |
|:---|:---|
| 表设计 | `logistics_company`(主档)、`logistics_contract`(合同,company_id 外键);**运单表**新增核算字段:物流公司(company_id + company_name + uscc 冗余存储)、客户收货地址、核算状态 |
| 删除 | 物流公司逻辑删除(deleted 标志);合同物理删除并记日志 |
| 唯一性 | 名称/信用代码/简称码唯一约束在**数据库层**实现(应用层先校验给出友好提示) |
| 快照 | 运单表冗余存储 company_name、uscc,核算保存时写入,不做联表实时取值 |
| 附件 | 存华为云 OBS,库内仅存 URL;上传接口复用现有文件服务 |
| 导出 | 列表导出复用平台 Excel 导出组件(默认上限 20000 条) |
| 日志 | 增删改、启停用、合同增删改均记行为日志 |
| 幂等 | 新增/保存接口防重复提交(沿用平台统一幂等口径) |
---
## 8. 决议记录(2026-09-28 确认)
> **总原则:本功能仅作运单记录,不影响任何流程**(见 1.4 设计原则)。
| 编号 | 问题 | 决议 |
|:---:|:---|:---|
| Q1 | 勾选粒度 | **核算(运单)仅可勾选一家**(单选) |
| Q2 | 是否强制勾选物流公司 | **不强制、不必填**;未选择按"无外协公司"正常保存核算 |
| Q3 | 无生效合同的公司是否可被勾选 | **可勾选**;"无生效合同"仅作信息提示 |
| Q4 | 与承运人/车队体系是否打通 | **本期不处理**;独立建档 + 信用代码唯一防重 |
| Q5 | 道路运输经营许可证是否必传 | **不是必传**;其余证件(营业执照、法人身份证人像面/国徽面)必传 |
| Q6 | 合同附件大小上限 / 是否多附件 | **先不设置大小上限**(格式白名单保留);单附件 |
**新增需求(2026-09-28)**:
1. 新建、编辑货源时也要选择物流公司 → 已纳入 FR-08 / BR-07 / 6.7。
2. 运单核算增加"客户收货地址"字段,仅作记录 → 已纳入 BR-06 第 7 条 / 6.6。
**口径纠正(2026-09-28)**:**核算单与运单是同一个东西**——核算是将核算数据填充到运单表,不存在独立核算单/"新建核算单";文档中原"核算单"表述已全部改为运单口径(FR-07 / BR-06 / 6.6 同步修订)。
**补充确认(2026-09-28,依据实际页面截图)**:
- 运费核算、货主打款、财务打款均位于 **整车运输 → 承运结算** 菜单下;打款分**货主打款**、**财务打款**两个页面,两页面均需增加物流公司筛选与列。
- 运费核算页面即运单列表(含"核算状态"列:未核算/已核算),核算操作通过行内"编辑"打开"修改核算"弹窗完成,弹窗中新增物流公司与客户收货地址字段。
> ✅ 已确认 Q7(2026-09-29):**批量核算不支持**批量填充物流公司/客户收货地址;批量核算逻辑不变,两个字段仅单笔"修改核算"弹窗中填写。
3. 打款时打款列表增加一个物流公司的筛选项 → 已纳入 FR-09 / BR-08 / 6.8。
4. 货源列表、运单管理、打款列表都要显示物流公司 → 已纳入 FR-10 / BR-09 / 6.9。
**补充确认(2026-09-29,需求方逐项确认,QE Fleet 流水线记录)**:
| 编号 | 问题 | 决议 |
|:---:|:---|:---|
| Q8 | 运单管理列/打款筛选/导出的"物流公司"取值口径(BR-09/6.9 与 6.6 表述不一致) | **显示一律以运单表为准**。货源所选物流公司为**货源维度**记录;核算时按货源所选公司**默认带入**"修改核算"弹窗(**运单表初始无值:未核算的运单没有值**;弹窗内可清除或更换),确认核算后写入运单表(**运单维度**)。列表/筛选/导出取运单表快照,未核算或未关联显示"无外协公司",**不联表实时取货源当前值**。BR-09.2 / 6.9 / BR-07.2 / 6.7 已同步修订。 |
| Q9 | BR-04 删除保护是否覆盖"仅被货源引用、无运单"的公司 | **不覆盖**。仍仅"存在生效中合同"与"被任一运单引用"两条件阻断删除;货源列表按快照展示名称,不受影响。 |
| Q10 | 合同附件扩展名大小写(.PDF/.Jpg 是否放行) | **大小写不敏感**:.PDF/.Jpg 等同 .pdf/.jpg 放行(白名单按扩展名小写归一后判定)。 |
| Q11 | 联系方式是否允许座机/国际前缀 | **仅手机号**(`1[3-9]\d{9}`);座机(0871-…)与国际前缀(+86…)不支持。 |
| Q12 | 简称码是否仅接受大写字母 | **不做限制**(该字段仅做记录、不参与任何流程):大小写均不阻断,行为需确定、可解释。 |
| Q13 | 唯一性判重是否对首尾空格 trim | **提交前 trim 后判重**:"甲公司 "与"甲公司"视为重复。 |
| Q14 | 统一社会信用代码是否校验第 18 位国标校验位 | **仅按 BR-01 正则校验**字符集与长度,不额外校验校验位(校验位错误但格式合法的号码可保存)。 |
| Q15 | 纯空格/空白字符在必填文本字段的处理 | **trim 后为空视为未填**,按空值阻断(必填字段)。 |
| Q16 | 简称码空值与"排除自身"校验范围 | 简称码空值**不参与**全平台唯一(多家公司可同时留空);编辑时**名称/统一社会信用代码/简称码/合同编号均排除自身**。 |
| Q17 | 垫资-货主打款 / 垫资-财务打款两页是否同口径改造 | **本期不改造**(两页保持原样);需回归验证其查询与打款功能不受本次改造影响。 |
| Q18 | 平台两个"运费核算"菜单的处理范围 | **仅改造 整车运输 → 承运结算 → 运费核算**;"运单认证核算 → 运费核算"不处理。 |
| Q19 | "客户收货地址"的展示载体 | 以**运单详情只读展示**为验收基线;**不加入运单管理列表列**;导出暂不要求包含该列。 |
---
## 9. 验收要点(概要)
1. 创建:三个唯一性字段(名称/信用代码/简称码)重复时均有明确提示,且数据库层有兜底约束;营业执照、法人身份证人像面/国徽面必传校验生效,道路运输经营许可证可不传。
2. 删除:存在生效合同或被运单引用的公司删除被阻断,提示包含原因;无引用公司可删除且列表消失。
3. 停用:停用后立即从选择弹窗消失,历史运单/货源展示不变(快照)。
4. 合同:过期时间 ≤ 生效时间被阻断;附件类型白名单外文件被拒绝;合同状态随日期自动变化;附件不设大小上限。
5. 运单核算:仅启用公司可见;**单选**(再次选择替换、可移除清空);**不选公司可直接保存核算**;无生效合同公司可正常勾选;核算后物流公司/客户收货地址正确**写入运单表**并在运单列表展示;货源已选公司的运单默认带入。
6. 货源:新建/编辑货源可选择、更换、清除物流公司(选填、单选);不选择不影响货源保存与后续任何流程。
7. 权限:核算人员账号进入物流公司列表为只读;跨机构数据不可见。
8. 并发:两人同时新建同一信用代码,后提交者失败且提示友好;重复点击保存不产生重复数据。
9. 打款筛选(货主打款/财务打款两页面):物流公司筛选项可单独或组合查询;"无外协公司"可过滤未关联记录;**停用公司仍可筛出历史打款记录**;筛选不改变打款/驳回等任何操作。
10. 列表展示:货源管理列表、运单管理、货主打款/财务打款列表均显示"物流公司"列,口径为公司名称快照;未关联记录显示"无外协公司";导出 Excel 含该列;公司改名/停用后历史列表显示不变。
---
## 10. 原型与截图对照
| 原型页面 | 对标截图 |
|:---|:---|
| 物流公司列表 | 通用列表风格(查询 + 表格 + 分页,同企业货主列表) |
| 新增物流公司 | 截图1:企业货主-新增(证件上传区 + 两栏表单) |
| 编辑物流公司-合同管理 Tab | 截图2:企业货主-编辑-合同管理(筛选 + 按钮组 + 合同表格) |
| 新增/编辑合同弹窗 | 截图3:企业货主-新增合同弹窗(编号/三个时间/税源地/附件) |
| 运费核算-运单核算弹窗 | 新增设计:在运单上核算(无独立核算单),**单选** + 搜索 + 分页(选填) |
| 发布货源-物流公司选择 | 新增设计:复用同一弹窗(FR-08) |
| 货主打款/财务打款-物流公司筛选 | 实际页面截图:两页面查询区各加筛选(FR-09) |
| 货源管理/运单管理/打款-物流公司列 | 实际页面截图:列表只读展示(FR-10) |