Files
shanxia2.0/openspec/changes/transport-plan-management/specs/vehicle-driver/spec.md
T
2026-06-29 11:15:39 +08:00

96 lines
4.8 KiB
Markdown
Raw 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.
# Vehicle, Personnel & Certificate(车辆/人员/证书管理)
## ADDED Requirements
### Requirement: 车辆档案管理
系统 SHALL 支持车辆档案的完整管理,含关联人员子表与车辆证书子表。
#### Scenario: 车辆信息维护
- **WHEN** 管理员新增或编辑车辆
- **THEN** 系统 SHALL 记录车牌号(唯一)、车辆类型(自有/承运商)、承运商(类型为承运商时)、载重、车辆状态(可用/维修中/报废)、备注
- **AND** 系统 SHALL 在车辆弹窗内以子表维护关联人员(姓名、手机号非必填、年龄、人员类型、关联备注、默认司机)
- **AND** 系统 SHALL 在车辆弹窗内以子表维护车辆证书(证书名称、证号、有效期、提前提醒天数,默认 30)
#### Scenario: 车辆归属管理
- **WHEN** 管理员编辑车辆归属类型
- **THEN** 系统 SHALL 确保同一辆车只能属于一种类型(自有或承运商)
- **AND** 系统 SHALL 禁止同一车牌号重复
#### Scenario: 车辆关联人员
- **WHEN** 管理员在车辆弹窗维护关联人员子表
- **THEN** 系统 SHALL 支持每车多人,人员类型为司机或押运员
- **AND** 系统 SHALL 确保每辆车最多一名默认司机(仅 role=driver 的行可设为默认)
- **AND** 系统 SHALL 在保存时 upsert 人员主数据(有手机号时按手机号去重,无手机号时按姓名弱匹配)
---
### Requirement: 人员档案管理
系统 SHALL 支持人员(司机、押运员等)档案的独立管理。
#### Scenario: 人员信息维护
- **WHEN** 管理员新增或编辑人员
- **THEN** 系统 SHALL 记录姓名(必填)、手机号(非必填)、年龄、身份证号、在职状态、备注
- **AND** 系统 SHALL 以子表维护人员证书(证书名称、证号、有效期、提前提醒天数,默认 30)
- **AND** 系统 SHALL NOT 在人员表写死驾驶证/行驶证/危化品证等字段
#### Scenario: 人员与车辆绑定
- **WHEN** 管理员在车辆弹窗或人员管理中维护绑定关系
- **THEN** 系统 SHALL 允许同一人员关联多辆车、同一车辆关联多人
- **AND** 系统 SHALL 在运输安排选择车辆后自动带出该车的默认司机
- **AND** 系统 SHALL 在安排运输时司机下拉仅展示该车 role=driver 的关联人员
---
### Requirement: 动态证书管理
系统 SHALL 使用独立证书表管理车辆与人员的各类证书。
#### Scenario: 证书实例维护
- **WHEN** 管理员为车辆或人员添加证书
- **THEN** 系统 SHALL 记录 owner_type(vehicle/personnel)、证书名称、证号、有效期、remind_days(默认 30)、附件
- **AND** 系统 SHALL 允许同一主体持有多个证书,证种可动态增删
- **AND** 证书附件 SHALL 使用 OpenSpec「附件上传卡片化布局」:`AttachmentUploadField` 组件,多附件以逗号分隔 URL 存入 `attachment_urls`;支持上传、下载、图片预览
#### Scenario: 证书到期提醒
- **WHEN** 证书 expire_date 非空且剩余天数 ≤ remind_days
- **THEN** 系统 SHALL 通过定时任务扫描 pl_cert 生成 pl_document_reminder
- **AND** 提醒 SHALL 覆盖车辆与人员证书
- **AND** 提醒列表 SHALL 展示主体类型、主体名称(车牌/姓名)、证书名称、到期日期、剩余天数
---
### Requirement: 承运商管理
系统 SHALL 支持承运商档案管理,含资质附件与运输协议有效期校验。
#### Scenario: 承运商信息维护
- **WHEN** 管理员新增承运商
- **THEN** 系统 SHALL 记录承运商名称、联系人、联系电话、合作状态(合作中/已终止)
- **AND** 系统 SHALL 要求上传营业执照、道路经营许可证、运输协议,并填写运输协议有效期
- **AND** 附件 SHALL 使用 `AttachmentUploadField` 卡片化布局,URL 逗号分隔存库
#### Scenario: 协议过期阻断运输
- **WHEN** 承运商运输协议有效期早于当前日期
- **THEN** 系统 SHALL 展示「协议已过期」
- **AND** 该承运商名下车辆 SHALL NOT 出现在安排运输与计划预选车辆列表
- **AND** 安排/调整运输接口 SHALL 拒绝使用该承运商车辆
- **AND** 协议过期时 SHALL 禁止调整运输,直至更新协议
#### Scenario: 历史承运商兼容
- **WHEN** 存在未补全资质附件的历史承运商
- **THEN** 系统 SHALL 允许保留基础档案
- **AND** 在其资质补全且协议有效前 SHALL NOT 允许安排运输
#### Scenario: 承运商审核
- **WHEN** 管理员审核承运商
- **THEN** 系统 SHALL 支持将待审核承运商标记为已通过
- **AND** 仅审核通过且资质齐全、协议有效的承运商车辆可用于运输安排
- **AND** 修改资质附件后 SHALL 将审核状态重置为待审核
#### Scenario: 承运商车辆筛选
- **WHEN** 用户选择承运商后安排运输
- **THEN** 系统 SHALL 仅显示该承运商名下的车辆