# 承销商管理 — 功能需求 ## 1. 文档说明 | 项 | 说明 | | --- | --- | | 模块名称 | 承销商管理(交易市场平台) | | 目标 | 在业务后台维护交易市场**承销商主数据**(主体信息、联系方式、经营地点、销售去向等),支撑承销商检索、台账维护及后续交易、销售统计等业务引用 | | 关联系统 | 业务后台;本模块为承销商**主档维护**,不替代交易开单、对账、支付等下游流程(若需与订单/结算联动,另出集成需求) | | 修订依据 | 同目录 `承销商管理-草稿.md`、界面原型(`承销商管理.png`) | 本文档仅描述**功能需求与业务规则**,不涉及库表结构、接口路径、请求体字段命名、HTTP 报文及技术栈选型。 --- ## 2. 术语与枚举 ### 2.1 承销商(一条记录) - 表示交易市场内的一个**承销/销售主体**(个体户或企业),负责将货品销售至指定区域范围。 - 由运营人员在后台**登记与维护**;保存成功后可在列表检索,并供后续业务按编号或名称引用。 - 单条记录包含:编号、名称、类型、身份识别号、联系方式、经营地点、销售去向等。 ### 2.2 承销商类型(单选,必填) | 类型 | 含义 | 身份识别字段(界面标签) | | --- | --- | --- | | **个体户** | 自然人经营主体 | **身份证号** | | **企业** | 法人或非法人组织主体 | **主体识别号**(统一社会信用代码等,见 **§2.5**) | 切换类型时,身份识别字段的**标签、校验规则**随之切换;已填写的识别号在切换类型后须**重新校验**,不符合新类型规则时拒绝保存并提示。 ### 2.3 销售去向(单选,必填) 表示承销商货品或服务的主要**销售区域范围**(与草稿、原型一致): | 销售去向 | 含义概要 | | --- | --- | | **本市** | 主要在本市范围内销售 | | **本省** | 主要在本省(自治区、直辖市)范围内销售 | | **外省** | 主要面向本省以外区域销售 | - 界面以**下拉单选**展示;保存后列表、详情展示对应中文标签。 - **本期不提供**多级行政区划联动选点(如精确到市/县代码);若后续与地图、区划库对接须单独立项。 ### 2.4 承销商编号 - **系统自动生成**,用户**不可手工录入或修改**(新增弹窗中只读或「保存后自动生成」占位,修改时只读)。 - 格式:**2 位数字**字符串,建议左侧补零(如 `01`、`02` … `99`)。 - **全局唯一**:同一系统内不得重复;编号用尽(如已达 `99`)时拒绝继续新增并提示「承销商编号已达上限,请联系管理员」。 - 生成时机:用户点击新增「确定」且校验通过时分配。 > **说明:** 草稿写「所有均可修改」指业务信息字段;**编号不在可改范围内**,与自动生成语义一致。 ### 2.5 身份识别号校验(摘要) | 承销商类型 | 规则摘要 | | --- | --- | | 个体户 · 身份证号 | **必填**;18 位居民身份证格式及校验位规则(末位可为 `X`/`x`),与项目全局身份证校验一致 | | 企业 · 主体识别号 | **必填**;统一社会信用代码 **18 位**(字符集、校验位与项目全局规则一致) | ### 2.6 平台账号分配 - 列表提供「**分配账号**」操作:为当前承销商创建若依平台登录用户。 - **默认登录名**:承销商名称的**汉字拼音首字母**(小写)+ 该条记录的**数据库主键 id**。 - **默认角色**:绑定平台角色编号 **104**(承销商端角色,以 `sys_role.role_id` 为准)。 - **仅可成功分配一次**;失败时不标记已分配,可重试。 - **删除联动**:逻辑删除承销商时,若已分配账号,**同时删除**关联 `sys_user`。 ### 2.7 删除与可见性 - 删除采用与项目其他业务台账一致的**逻辑删除**:删除后默认不在列表与常规查询中展示,数据保留供审计。 - **本期不提供**回收站界面。 - 若承销商存在**未支付**交易订单,**禁止删除**并提示「存在未支付订单,无法删除」;仅**已完成**订单不阻止删除。 ### 2.8 列表筛选项与记录字段的关系 | 筛选项 | 与记录字段关系 | | --- | --- | | 承销商编号 | 选填;对「承销商编号」**模糊**匹配(包含输入片段即可,如输入 `1` 可命中 `01`、`11` 等,具体规则与项目全局模糊查询一致) | | 承销商名称 | 选填;对「承销商名称」**模糊**匹配(包含输入片段即可);空则不过滤 | > **与供应商管理的差异:** 供应商模块为编号/名称**精确**匹配;本模块按草稿与原型采用**模糊**匹配,实施与测试须按本节验收。 --- ## 3. 功能范围 **本期实现:** | 能力 | 说明 | | --- | --- | | 承销商列表 | 编号、名称模糊筛选;分页;见 **§5.2** | | 新增承销商 | 录入业务字段;编号自动生成;见 **§5.1** | | 修改承销商 | 除编号外字段均可改;见 **§5.3** | | 查看详情 | 只读展示全部业务字段;见 **§5.4** | | 删除承销商 | 单条删除;见 **§5.5** | | 分配账号 | 为承销商创建平台用户;每条仅成功一次;见 **§5.6** | | 工具栏 | 搜索、重置、新增 | **本期不实现(除非后续单独立项):** - 承销商准入审批、黑名单、资质附件 - 批量导入/导出、编号手工指定 - 与交易订单、库存、结算单自动联动 - 销售去向多级区划、地图选点 - 按类型、销售去向的列表筛选(原型未要求则不做) --- ## 4. 业务流程概览 ```mermaid flowchart TD A[进入承销商管理] --> B{用户操作} B -->|登记| C[新增承销商] C --> D[选择类型与销售去向] D --> E[填写并校验] E -->|通过| F[系统分配编号并保存] E -->|未通过| C F --> G[返回列表] B -->|检索| H[输入编号/名称片段] H --> I[模糊搜索列表] I --> J{行操作} J -->|查看| K[只读详情] J -->|编辑| L[修改承销商] L --> E J -->|分配账号| Q[创建平台用户] Q --> G J -->|删除| M[二次确认] M -->|允许| N[逻辑删除] M -->|有关联| O[提示不可删] N --> G K --> I B -->|重置| P[清空筛选] P --> I ``` **典型使用顺序:** 1. 运营人员**新增**承销商,选择个体户/企业、**销售去向**,填写身份号、联系方式等。 2. 系统**自动分配**两位编号。 3. 日常按编号或名称**模糊**查询台账。 4. 需要承销商登录平台时,对未分配行**分配账号**。 5. 信息变更时**修改**(编号不变);无效登记**删除**(无关联时)。 6. 核对完整信息时**查看**详情。 --- ## 5. 详细功能需求 ### 5.1 新增承销商 #### 5.1.1 业务字段 | 字段 | 必填 | 规则摘要 | | --- | --- | --- | | 承销商编号 | — | **只读**;保存成功后展示系统生成的 2 位数字编号 | | 承销商名称 | 是 | **1~20** 个字符;去除首尾空白后非空 | | 承销商类型 | 是 | **个体户** / **企业**,单选 | | 身份证号 / 主体识别号 | 是 | 标签随类型切换;校验见 **§2.5** | | 联系方式 | 是 | **中国大陆手机号**格式校验 | | 经营地点 | 否 | 文本;长度宜 **0~50** 字(有内容时按 1~50 校验) | | 销售去向 | 是 | **本市** / **本省** / **外省**,单选 | #### 5.1.2 界面联动(与原型一致) | 用户操作 | 界面行为 | | --- | --- | | 选择「个体户」 | 身份字段标签为「身份证号」 | | 选择「企业」 | 身份字段标签为「主体识别号」 | | 选择销售去向 | 下拉展示三档选项,必选其一 | #### 5.1.3 保存与取消 | 操作 | 行为 | | --- | --- | | **确定** | 全量校验通过后保存;分配承销商编号;关闭弹窗并刷新列表 | | **取消** | 关闭弹窗,不保存 | #### 5.1.4 校验摘要 | 规则 | 说明 | | --- | --- | | 必填 | 名称、类型、身份号、联系方式、销售去向为空或仅空白时拒绝保存 | | 名称唯一 | **默认建议**未删除记录间名称不可重复;重复时提示「承销商名称已存在」 | | 身份号唯一 | **默认建议**未删除记录间身份识别号不可重复 | --- ### 5.2 查询承销商列表 #### 5.2.1 筛选 | 条件 | 规则 | | --- | --- | | 承销商编号 | 选填;**模糊**匹配(**§2.8**) | | 承销商名称 | 选填;**模糊**匹配 | 支持**编号 + 名称**组合筛选(同时满足)。 #### 5.2.2 列表规则 - 默认每页 **20** 条。 - 默认排序:**承销商编号升序**(或 **创建时间倒序**,产品择一后全文一致;**默认建议编号升序**)。 - 工具栏:**搜索**、**重置**、**新增**。 #### 5.2.3 展示列(与原型一致) 承销商编号、承销商名称、承销商类型、身份证号/主体识别号、联系方式、经营地点、**销售去向**、**账号分配**、操作。 | 列 | 展示说明 | | --- | --- | | 承销商类型 | 中文:个体户 / 企业 | | 身份证号/主体识别号 | 统一列展示对应类型的识别号 | | 经营地点 | 过长省略;详情可看全 | | 销售去向 | 中文:本市 / 本省 / 外省 | | 账号分配 | 未分配「否」;已分配「是」及登录名(若有) | | 操作 | 查看、编辑、删除;**未分配**时「分配账号」(权限见 **§6**) | --- ### 5.3 修改承销商 | 项 | 要求 | | --- | --- | | 入口 | 列表「编辑」;详情可提供「编辑」 | | 不可改字段 | **承销商编号**(只读) | | 可改范围 | **§5.1.1** 中其余全部字段(含销售去向) | | 类型变更 | 切换后重新校验身份号;标签联动同新增 | | 校验 | 同 **§5.1.4** | | 保存 | **确定** 保存并刷新;**取消** 放弃 | --- ### 5.4 查看承销商详情 | 项 | 要求 | | --- | --- | | 展示内容 | **§5.1.1** 全部字段;**销售去向**中文标签;**是否已分配账号**、**已分配登录名**(若有) | | 只读 | 全部不可编辑 | | 操作 | 可提供 **编辑**、**删除**;**未分配**时可 **分配账号**;**关闭** 返回 | | 审计信息 | 宜含创建人、创建时间、修改人、修改时间(与项目其他台账一致) | --- ### 5.5 删除承销商 | 项 | 要求 | | --- | --- | | 入口 | 列表「删除」;详情可提供「删除」 | | 确认 | 删除前**二次确认**(宜展示编号、名称) | | 删除方式 | **逻辑删除**(**§2.6**) | | 关联约束 | 存在**未支付**交易订单(`order_status=待支付`)时**拒绝删除**,提示「存在未支付订单,无法删除」;已完成订单不阻止删除 | | 批量删除 | **本期不提供** | | 已分配账号 | 删除时**同步删除**平台用户 | --- ### 5.6 分配账号 | 项 | 要求 | | --- | --- | | 入口 | 列表「分配账号」;详情同等入口 | | 前置 | 记录未删且**未分配** | | 确认 | 二次确认(宜展示承销商名称) | | 登录名 | **§2.6**:名称拼音首字母 + `id` | | 角色 | 默认 **104** | | 初始密码 | `sys.user.initPassword`,缺省 `123456` | | 用户资料 | 昵称=承销商名称;手机=联系方式 | | 成功 | 标记已分配;写 `sys_user_id`、`assigned_login_name` | | 失败 | 不标记已分配;提示「账号创建失败:{原因}」 | | 重复 | 提示「该承销商已分配账号,不可重复分配」 | --- ## 6. 操作与权限矩阵(汇总) 在**已授权**前提下: | 操作 | 列表/详情 | 说明 | | --- | --- | --- | | 查询列表、筛选 | ✓ | 需列表查询权限 | | 新增 | 工具栏「新增」 | 需新增权限 | | 查看 | 行内/详情 | 需查看权限 | | 修改 | 行内/详情 | 需修改权限;编号不可改 | | 删除 | 行内/详情 | 需删除权限 | | 分配账号 | 行内/详情 | 需分配账号权限;**仅未分配** | 无权限的按钮**不展示或禁用**(与若依按钮权限惯例一致)。 --- ## 7. 与供应商管理对照(便于评审) | 维度 | 供应商管理 | 承销商管理(本模块) | | --- | --- | --- | | 主体称谓 | 供应商 | 承销商 | | 列表筛选 | 编号、名称**精确** | 编号、名称**模糊** | | 特色业务字段 | 收费方式及费率/标准 | **销售去向**(本市/本省/外省) | | 编号规则 | 2 位自动、不可改 | 同左 | | 类型与身份号 | 个体户/企业 | 同左 | | 车辆号牌 | 可选多条 | **本期不提供** | | 分配账号 | 角色 **103** | 角色 **104** | | 登录名规则 | 名称拼音首字母 + id | 同左 | --- ## 8. 异常与提示(业务侧) | 场景 | 提示方向(示例) | | --- | --- | | 手机号格式错误 | 请输入正确的手机号码 | | 身份证/主体识别号错误 | 请输入正确的身份证号 / 主体识别号 | | 未选销售去向 | 请选择销售去向 | | 名称/身份号重复 | 承销商名称已存在 / 该身份识别号已登记 | | 编号用尽 | 承销商编号已达上限,请联系管理员 | | 删除受阻 | 存在未支付订单,无法删除 | | 重复分配账号 | 该承销商已分配账号,不可重复分配 | | 账号创建失败 | 账号创建失败:登录名已存在 / 用户保存失败 | **本期不涉及** HTTP 响应结构、错误码表等技术约定。 --- ## 9. 非功能需求(摘要) | 项 | 要求 | | --- | --- | | 易用性 | 类型切换时身份字段标签即时更新;销售去向选项清晰 | | 一致性 | 逻辑删除、分页、校验风格与供应商管理等台账模块一致 | | 安全 | 联系方式、身份号是否脱敏按项目统一规范 | --- ## 10. 修订记录 | 版本 | 说明 | | --- | --- | | 1.0 | 初稿:依据草稿与原型;明确销售去向三档、列表模糊筛选、编号自动生成;剔除接口与技术栈;经营地点按文本 50 字(原型提示为字数限制而非区划下拉) | | 1.1 | 依据修订草稿:移除车辆号牌;列表查询表述为承销商列表(非供应商) | | 1.2 | 新增 §2.6、§5.6 分配账号:拼音首字母+id、角色 104、仅一次;删除联动删平台用户 | | 1.3 | §2.7、§5.5:存在未支付交易订单时禁止删除 |