# 过程配置需求卡

## 目录

- [REQ-PROC-001 列表与分页](#req-proc-001-列表与分页)
- [REQ-PROC-002 条件查询与重置](#req-proc-002-条件查询与重置)
- [REQ-PROC-003 查看过程配置](#req-proc-003-查看过程配置)
- [REQ-PROC-004 新增过程配置](#req-proc-004-新增过程配置)
- [REQ-PROC-005 编辑过程配置](#req-proc-005-编辑过程配置)
- [REQ-PROC-006 复制过程配置](#req-proc-006-复制过程配置)
- [REQ-PROC-007 编号与唯一性规则](#req-proc-007-编号与唯一性规则)
- [REQ-PROC-008 过程节点配置与联动](#req-proc-008-过程节点配置与联动)
- [REQ-PROC-009 启用/停用](#req-proc-009-启用停用)
- [REQ-PROC-010 单条删除](#req-proc-010-单条删除)
- [REQ-PROC-011 批量删除](#req-proc-011-批量删除)
- [REQ-PROC-012 组织权限与审计](#req-proc-012-组织权限与审计)
- [通用规则](#通用规则)

---

### REQ-PROC-001 列表与分页

- 功能点：

  - 默认展示当前组织全部过程配置数据，列表按创建时间降序排列。
  - 展示配置名称、配置编号、项目、包含过程节点、状态、默认后台完成运输天数、备注、组织、创建人、创建时间、更新时间、操作等字段。
  - 支持勾选多行数据用于批量删除。
  - 操作列根据状态与权限展示查看、编辑、复制、删除、启用、停用等按钮。
  - 草稿状态显示查看、编辑、复制、删除。
  - 启用状态显示查看、编辑、复制、停用。
  - 停用状态显示查看、编辑、复制、删除、启用。
  - 分页默认 10 条/页，支持 20/50/100 条/页。

- 异常与边界：

  - 查询无数据时展示空状态。
  - 当前页删除后无数据时自动回退页码并刷新列表。
  - 列表始终按当前组织权限范围加载数据。
  - 列表加载失败时保留当前筛选与分页条件。

- 反例：
  - 不允许默认按创建时间以外的字段覆盖排序规则。
  - 不允许在不满足状态条件时展示删除、启用或停用按钮。
  - 不允许分页后丢失当前查询条件。

---

### REQ-PROC-002 条件查询与重置

- 功能点：

  - 支持按配置名称、项目、配置编号、包含过程节点、组织、状态等条件组合查询，按该顺序展示。
  - 配置名称支持模糊查询。
  - 项目支持下拉模糊搜索选择。
  - 配置编号支持精确匹配。
  - 包含过程节点支持多选，枚举值为接单、到场、装货、发货、在途、到货、卸货、签收、回单。
  - 状态支持全部、草稿、启用、停用，默认全部。
  - 组织默认带出当前用户所属组织。
  - 点击查询后按条件展示数据。
  - 点击重置后清空所有条件并恢复默认列表。

- 异常与边界：

  - 查询条件为空时点击查询，按默认规则展示当前组织全部数据。
  - 查询结果为空时展示空状态，不清空用户已输入条件。
  - 重置后页码恢复第一页，并按创建时间降序重新加载。

- 反例：
  - 不允许重置后仍保留隐藏条件。
  - 不允许只按单一条件查询而忽略组合条件。
  - 不允许查询后改变列表字段展示范围。
  - 不允许在页面顶部提供“当前组织/全部组织”切换。

---

### REQ-PROC-003 查看过程配置

- 功能点：

  - 支持通过行操作查看过程配置详情。
  - 详情展示基本信息、现行过程节点、节点启用状态、节点联动配置、默认后台完成运输天数、备注、组织、创建人、创建时间、更新时间等信息。
  - 查看状态下字段全部置灰不可编辑。
  - 查看弹窗底部仅显示关闭按钮。

- 异常与边界：

  - 数据已删除或不存在时提示数据不存在，并刷新列表。
  - 详情加载失败时提示失败原因，不影响列表现状。
  - 仅展示已勾选启用的现行过程节点，未启用节点不展示在时间线中。

- 反例：
  - 不允许在查看状态下保存修改。
  - 不允许查看时修改数据。
  - 不允许查看弹窗出现提交按钮。

---

### REQ-PROC-004 新增过程配置

- 功能点：

  - 支持新增过程配置，用于按项目维度配置运输过程各节点的司机打卡要求。
  - 配置编号由系统自动生成，规则为 GC + 5 位流水号，保存后全局唯一。
  - 新增编辑弹窗分为三个板块：基本信息、现行过程节点、节点设置。
  - 新增编辑弹窗距离页面顶部 10px，弹窗宽度需保证节点设置三列内容在一屏内完整展示。
  - 基本信息板块包含配置名称、项目、默认 X 天后台完成运输、备注。
  - 项目使用下拉选择控件，支持模糊搜索，必填。
  - 默认后台完成运输天数使用普通输入框，仅允许输入正整数，最多 3 位。
  - 备注使用文本输入框，非必填，长度不超过 500 字符。
  - 新建保存后默认状态为草稿。
  - 现行过程节点以横向 timeline 展示当前配置已启用节点。
  - 节点设置区域使用表格展示固定节点内容，节点与字段不可拖拽改序。
  - 新增时节点设置不默认勾选过程节点，确认人、货量类型、凭证类型等复选项不预置选择；操作要求中的是否确认、是否打卡、上传货量、打卡定位默认选择“是”。

- 异常与边界：

  - 配置名称为空时阻止提交并提示“配置名称不能为空”。
  - 配置名称超过 100 字符时阻止提交。
  - 同一组织内配置名称重复时阻止提交并提示“配置名称已存在”。
  - 项目为空时阻止提交并提示“项目不能为空”。
  - 默认后台完成运输天数不是正整数或超过 3 位时阻止提交并提示“请输入正整数”。
  - 备注超过 500 字符时阻止提交并提示。
  - 提交失败时保留用户已填写内容。

- 反例：
  - 不允许手工填写配置编号。
  - 不允许新增时跳过项目必填校验。
  - 不允许新增后默认直接进入启用状态。

---

### REQ-PROC-005 编辑过程配置

- 功能点：

  - 支持编辑已存在的过程配置。
  - 配置编号在编辑状态下置灰不可编辑。
  - 配置名称、项目、默认后台完成运输天数、备注可编辑，校验规则同新增。
  - 项目可重新选择，但若该配置已被运单引用，则项目不可变更。
  - 过程节点配置可调整，校验规则同新增。
  - 保存成功后刷新列表。

- 异常与边界：

  - 配置名称修改后仍需满足同组织内唯一。
  - 项目被运单引用时禁止变更项目并提示。
  - 编辑的数据已不存在时提示数据不存在，并刷新列表。
  - 提交失败时保留用户修改内容。

- 反例：
  - 不允许编辑时修改配置编号。
  - 不允许编辑后产生同组织重名配置。
  - 不允许绕过新增时的节点联动与校验规则。

---

### REQ-PROC-006 复制过程配置

- 功能点：

  - 支持复制已有过程配置生成新配置。
  - 复制后配置名称自动追加“ - 副本”。
  - 节点设置内容全部复制。
  - 配置编号重新生成。
  - 新配置默认状态为草稿。
  - 复制后的配置可继续编辑后保存。

- 异常与边界：

  - 复制后若配置名称仍触发同组织重复校验，则阻止保存并提示。
  - 原配置不存在时不允许复制。
  - 复制失败时不影响原配置数据。

- 反例：
  - 不允许复制后沿用原配置编号。
  - 不允许复制后直接变为启用状态。
  - 不允许复制时丢失节点配置内容。

---

### REQ-PROC-007 编号与唯一性规则

- 功能点：

  - 配置编号由系统自动生成，规则为 GC + 5 位流水号。
  - 配置编号在系统中全局唯一。
  - 配置名称在同一组织内唯一。
  - 一个项目在同一时间只能关联一条启用状态的过程配置。

- 异常与边界：

  - 编号生成冲突时阻止保存并重新生成。
  - 同一组织内配置名称重复时阻止保存。
  - 启用前若所选项目存在其他启用配置时阻止启用，并提示“该项目已有关联的启用配置，请先停用原配置”。
  - 项目为单选下拉选择，同一项目同一时间只能关联一条启用配置。

- 反例：
  - 不允许手工编辑配置编号。
  - 不允许同一组织内出现同名配置。
  - 不允许同一项目同时存在两条启用配置。

---

### REQ-PROC-008 过程节点配置与联动

- 功能点：

  - 过程节点顺序固定，不可拖拽排序，依次为接单、到场、装货、发货、在途、到货、卸货、签收、回单。
  - 仅勾选启用的节点会展示在现行过程节点时间线中，时间线横向展示。
  - 节点配置区域以表格方式展示，固定包含节点设置、操作要求、附件要求三列。
  - 节点设置列包含勾选框和节点名称按钮样式展示。
  - 新增状态下所有过程节点默认未勾选，节点相关复选框默认不选中。
  - 接单节点的操作要求包含是否确认、确认接单人，是否确认提供“是 / 无需确认接单”单选，确认接单人使用“司机”复选框。
  - 到场、装货、发货、在途、到货、卸货、签收节点的操作要求包含是否打卡、打卡定位；装货、发货、到货、卸货、签收还包含上传货量和上传货量类型；附件要求包含上传凭证和凭证类型。
  - 在途节点额外包含打卡频次和打卡时段，打卡频次使用普通输入框，打卡时段使用时间选择器。
  - 回单节点的操作要求包含是否确认、确认完成，是否确认提供“是 / 无需确认完成”单选，确认完成使用“内部人员”复选框。
  - 各节点中是否打卡、上传货量、上传凭证均使用单选或复选输入，控件类型与截图保持一致。

- 异常与边界：

  - 节点是否确认项为空时阻止提交并提示“请选择确认方式”。
  - 节点是否打卡为空时阻止提交并提示“请选择是否打卡”。
  - 在途节点是否打卡为是但未配置打卡频次或打卡时段时阻止提交。
  - 在途节点打卡频次为空或小于 1 时阻止提交并提示“请输入打卡频次 / 打卡频次必须 ≥1”。
  - 在途节点打卡时段为空时阻止提交并提示“请选择打卡时段”。
  - 非在途节点出现打卡频次或打卡时段时应不展示。
  - 保存时若同时勾选签收和回单，且两者都配置上传凭证，则弹窗提示“签收与回单同时勾选了上传凭证，司机将需重复上传凭证，是否确认？”，按钮为确认、返回修改。
  - 节点启用状态与时间线展示不一致时阻止保存。
  - 选择为否后仍保留被置灰字段的旧值时，保存前应按禁用状态规则处理。

- 反例：
  - 不允许拖拽调整节点顺序。
  - 不允许非在途节点配置打卡频次和打卡时段。
  - 不允许是否打卡为否时仍强制填写打卡定位或打卡时段。
  - 不允许上传凭证关闭后仍提交凭证类型。

---

### REQ-PROC-009 启用/停用

- 功能点：

  - 配置状态分为草稿、启用、停用三种，新增或复制后默认进入草稿状态。
  - 草稿状态下编辑页面点击保存并启用后投入使用，状态变更为启用。
  - 启用状态下可停用，状态变更为停用。
  - 停用状态下可重新启用。
  - 停用的配置在运单创建等下游业务场景中不再展示，但历史已引用数据保留关联关系。

- 异常与边界：

  - 草稿启用前若同一项目已有其他启用配置，则阻止启用并提示先停用原配置。
  - 启用状态停用前若存在关联的未完成运单，则阻止停用并提示“该条配置已被引用，不可停用”。
  - 停用状态重新启用时仍需重新校验同一项目启用唯一性。
  - 状态切换失败时保持原状态不变。

- 反例：
  - 不允许启用状态直接删除。
  - 不允许绕过启用唯一性校验直接投入使用。
  - 不允许被引用的配置直接停用。

---

### REQ-PROC-010 单条删除

- 功能点：

  - 支持通过行操作删除单条过程配置。
  - 点击删除时弹出二次确认弹窗。
  - 删除成功后刷新列表，并提示“删除成功”。

- 异常与边界：

  - 草稿配置可直接删除。
  - 停用配置删除前需校验未被运单引用，已引用则提示“该条配置已被引用，不可删除”。
  - 启用配置不可删除，需先停用后再处理。
  - 数据不存在时提示数据不存在，并刷新列表。

- 反例：
  - 不允许跳过二次确认直接删除。
  - 不允许删除启用状态配置。
  - 不允许删除已被引用的停用配置。

---

### REQ-PROC-011 批量删除

- 功能点：

  - 支持勾选多行过程配置后批量删除。
  - 点击批量删除时弹出二次确认弹窗。
  - 删除时按单条规则逐一校验状态与业务引用。
  - 删除成功后刷新列表，并提示“删除成功 XX 条，因引用跳过 XX 条”。

- 异常与边界：

  - 未勾选数据时点击批量删除，应提示先选择需要删除的数据。
  - 草稿配置可直接删除。
  - 停用配置逐条校验是否被运单引用，已引用记录剔除并单独提示。
  - 启用配置不进入删除队列，并提示需先停用。
  - 所选数据全部不满足删除条件时不执行删除。

- 反例：
  - 不允许批量删除启用状态配置。
  - 不允许因为部分记录不可删而影响草稿记录删除。
  - 不允许删除后不刷新列表。

---

### REQ-PROC-012 组织权限与审计

- 功能点：

  - 组织列作为数据权限字段，普通用户默认仅可查看当前组织数据。
  - 根据权限配置控制查看、编辑、复制、删除、启用、停用等操作入口。
  - 创建人、创建时间、更新时间由系统自动记录。

- 异常与边界：

  - 无权限用户访问时提示权限不足。
  - 列表、详情等用户可见场景优先展示创建人姓名，不直接展示用户 ID。

- 反例：
  - 不允许普通用户通过手动构造组织条件查看全部组织数据。
  - 不允许手动维护创建人、创建时间、更新时间。
  - 不允许删除或篡改审计信息。

---

## 通用规则

- 过程配置用于按项目维度配置运输过程各节点的司机打卡要求，确保运输过程可追溯。
- 配置编号由系统自动生成，规则为 GC + 5 位流水号，且全局唯一。
- 配置名称在同一组织内不允许重复。
- 一个项目在同一时间只能关联一条启用状态的过程配置。
- 过程节点顺序固定，不可拖拽排序，依次为接单、到场、装货、发货、在途、到货、卸货、签收、回单。
- 仅勾选启用的节点才会展示在现行过程节点时间线中。
- 新增、编辑弹窗由基本信息、现行过程节点、节点设置三个板块组成。
- 新增、编辑弹窗顶部距离为 10px，弹窗宽度需保证节点设置内容一屏完整展示。
- 节点设置表格固定展示节点设置、操作要求、附件要求三列，控件类型与截图保持一致。
- 新增时节点设置不默认勾选节点，复选项不预置选择，操作要求单选项默认选择“是”。
- 仅在途节点支持打卡频次和打卡时段，默认打卡频次为 1 次，默认打卡时段为 00:00-24:00。
- 新增、编辑、复制、启用、停用、删除成功后均需刷新列表。
- 删除前必须校验状态与业务引用，已引用配置不允许直接删除或停用。
