This commit is contained in:
2026-07-31 14:09:41 +08:00
parent 1ec28f7cfc
commit b7e02f0782
13 changed files with 616 additions and 931 deletions
+24 -8
View File
@@ -1,8 +1,8 @@
# 虫虫出海一期开发进度表
> 创建日期:2026-07-27
> 更新日期:2026-07-30
> 当前阶段:一期双端持续浏览器联调;Client 一期核心静态页面与路由已完成(静态完成度 100%)。后端 2026-07-30 业务成熟度回归已确认认证、个人资料、成员、角色、仓库、往来单位、订单草稿和履约快递能力通过真实 API 检查;前端已继续接入个人资料、修改密码、成员完整维护、角色权限回显/保存和商户往来单位候选,仍需完成关键写操作、资质图片及 Admin 目标租户订单的人工浏览器验收
> 更新日期:2026-07-31
> 当前阶段:一期双端持续浏览器联调;Client 一期核心静态页面与路由已完成(静态完成度 100%)。当前采用“前端可改、`baiyue-firstleg/` 后端只读核对”的联调方式;已修正订单主往来单位 `customerId`、往来单位类型契约,并接入角色编辑/启停/删除真实 API。仍需后端准备启用收货仓、自定义角色和快递有值样本后完成浏览器只读验收,写操作暂不执行
> 总体状态:开发中
头程订单一期闭环范围与接口草案见 `一期头程订单闭环设计.md`。
@@ -69,10 +69,10 @@
| ADM-USER-01 | 后台 | 内部用户 | 用户列表、搜索、分页和详情 | P0 | 进行中 | 70% | BASE-03 | 待分配 | 前端列表、筛选和分页已完成 |
| ADM-USER-02 | 后台 | 内部用户 | 新增、编辑、启停、重置密码 | P0 | 进行中 | 65% | ADM-USER-01 | 待分配 | 前端交互已完成,操作日志与接口待接入 |
| ADM-USER-03 | 后台 | 内部用户 | 给用户分配一个或多个角色 | P0 | 进行中 | 75% | ADM-ROLE-01 | 待分配 | 多角色选择与回显已完成 |
| ADM-ROLE-01 | 后台 | 角色 | 角色列表、新增、编辑、删除、启停 | P0 | 联调中 | 82% | BASE-03 | 待分配 | 平台角色列表与新增已接 `/api/platform/v1/iam/roles`;编辑、删除、启停接口未提供,真实会话中明确禁用且不回退模拟写入 |
| ADM-ROLE-01 | 后台 | 角色 | 角色列表、新增、编辑、删除、启停 | P0 | 联调中 | 92% | BASE-03 | 待分配 | 已按后端 `RbacController` 接入角色查询、新增、编辑、启停、删除、权限回显及全量保存;待准备自定义角色样本完成真实写操作验收 |
| ADM-ROLE-02 | 后台 | 角色 | 给角色分配菜单和操作权限 | P0 | 已阻塞 | 75% | ADM-PERM-01 | 待分配 | 写接口是全量替换,但缺少角色当前 `permissionIds` 回显;真实会话暂不开放保存,避免清空已有授权 |
| ADM-PERM-01 | 后台 | 权限 | 菜单树、页面权限、按钮权限和接口权限模型 | P0 | 联调中 | 88% | BASE-02 | 待分配 | `GET/POST /api/platform/v1/iam/permissions` 已接入;真实模式只创建 `MENU/BUTTON`,编辑和启停接口待补 |
| ADM-PERM-02 | 后台 | 权限 | 登录后返回当前用户菜单和权限集合 | P0 | 联调中 | 80% | ADM-PERM-01 | 待分配 | 已实现 JWT 权限与 IAM 启用资源取交集、动态菜单和会话恢复;待 Gateway 恢复后复验权限变更后的 Token 刷新 |
| ADM-PERM-02 | 后台 | 权限 | 登录后返回当前用户菜单和权限集合 | P0 | 联调中 | 80% | ADM-PERM-01 | 待分配 | 已接 `/api/platform/v1/iam/authorization/permissions` 当前用户启用权限快照,并与 JWT 权限取交集;待 Gateway 恢复后复验权限变更后的 Token 刷新 |
| ADM-PERM-03 | 后台 | 权限 | 未授权页面、按钮隐藏和接口拒绝访问 | P0 | 联调中 | 65% | ADM-PERM-02 | 待分配 | 前端路由、菜单和主要按钮已按稳定权限码控制;后端文档确认方法级按钮权限尚未覆盖所有管理接口 |
| ADM-ORDER-01 | 后台 | 头程订单 | 订单列表、组合查询、分页和导出 | P0 | 进行中 | 70% | BASE-03 | 待分配 | 前端组合筛选、分页、选择与导出反馈已完成 |
| ADM-ORDER-02 | 后台 | 头程订单 | 订单详情、货物、收发货和平台收货仓信息 | P0 | 进行中 | 75% | ADM-ORDER-01 | 待分配 | 前端详情按下单时仓库快照展示;API 与数据库持久化待接入 |
@@ -99,17 +99,17 @@
| CLI-PROFILE-01 | 客户端 | 公司信息 | 企业基本信息、法人信息、联系人、手机、邮箱、微信和地址查看与维护 | P0 | 进行中 | 65% | CLI-REG-01 | 待分配 | 原型按“企业基本信息/联系信息”分页签展示;当前静态编辑交互已完成,等待接口和真实权限控制 |
| CLI-PROFILE-02 | 客户端 | 公司信息 | 一期营业执照状态、查看和上传 | P1 | 联调中 | 90% | BASE-04 | 待分配 | 已接资料编辑、资质查询、营业执照上传及携带 Token 的图片预览;按后端限制为单张 JPG/PNG、最大 5MB,待稳定环境完成浏览器验收 |
| CLI-MEMBER-01 | 客户端 | 企业成员 | 成员列表、新增、编辑、启停和重置密码 | P0 | 联调中 | 92% | CLI-REG-01 | 待分配 | 姓名、联系方式、memberNo 和 roleIds 已真实回显;新增、编辑、启停、重置密码均接精确 membershipId 路径,所有者保护由服务端最终校验 |
| CLI-ROLE-01 | 客户端 | 角色 | 企业角色新增、编辑、删除、启停 | P0 | 联调中 | 80% | CLI-MEMBER-01 | 待分配 | 已接角色列表和新增角色;编辑、删除、启停接口未在联调文档中提供,页面进入 API 模式后不再回退模拟写入 |
| CLI-ROLE-01 | 客户端 | 角色 | 企业角色新增、编辑、删除、启停 | P0 | 测试中 | 90% | CLI-MEMBER-01 | 待分配 | 已从后端只读源码确认并接入编辑、状态和删除真实接口;浏览器真实读取正常,当前只有内置角色,需自定义角色样本复测操作入口且暂不执行写入 |
| CLI-ROLE-02 | 客户端 | 角色 | 为成员分配一个或多个角色 | P0 | 联调中 | 92% | CLI-ROLE-01 | 待分配 | 成员 roleIds 已回显,新增/编辑成员通过精确 membershipId 全量保存角色;待浏览器执行一次真实写入验收 |
| CLI-MENU-01 | 客户端 | 菜单分配 | 企业管理员为本企业角色分配客户端菜单和操作权限 | P0 | 进行中 | 60% | CLI-ROLE-01 | 待分配 | 已确认操作人为企业管理员;分组选择交互已完成,动态菜单生成与平台菜单隔离需由服务端契约保证 |
| CLI-PERM-01 | 客户端 | 权限 | 页面、按钮和接口权限定义及角色授权 | P0 | 联调中 | 90% | CLI-MENU-01 | 待分配 | 角色 permissionIds 与启用权限资源已映射回显;非内置启用角色可全量保存权限,待准备自定义角色完成浏览器写入验收 |
| CLI-PERM-02 | 客户端 | 权限 | 按当前成员权限生成菜单并执行接口鉴权 | P0 | 进行中 | 55% | CLI-PERM-01 | 待分配 | 已完成演示账号权限集合、动态菜单、路由 403、首个可访问页面、会话恢复和按钮权限预览;服务端仍必须校验 `tenant_id` 与权限 |
| CLI-CP-01 | 客户端 | 往来单位查询 | 只读查询当前可用的发货单位和收货单位,支持关键词和类型筛选 | P0 | 联调中 | 88% | ADM-CP-03、BASE-03 | 待分配 | 已接 `/api/merchant/v1/partners/candidates`,按 SENDER/RECEIVER 查询当前租户启用候选;无维护入口且不回退演示数据 |
| CLI-CP-01 | 客户端 | 往来单位查询 | 只读查询当前可用的发货单位和收货单位,支持关键词和类型筛选 | P0 | 联调中 | 90% | ADM-CP-03、BASE-03 | 待分配 | 已接 `/api/merchant/v1/partners/candidates`;后端类型修正为 `CUSTOMER / SUPPLIER / BOTH`,一次读取启用候选并同时供订单发货方/收货方选择,无维护入口且不回退演示数据 |
| CLI-WH-01 | 客户端 | 平台收货仓选择 | 查询已启用仓库,展示名称、地址和收货时间 | P0 | 测试中 | 95% | WH-BASE-01、ADM-WH-02 | 待分配 | 浏览器已读取 1 条真实启用仓库,选择后成功加载深圳地址和每日 16:00 截单时间;历史订单引用失效仓库时要求重新选择,不回退模拟仓库 |
| CLI-ORDER-01 | 客户端 | 头程订单 | 新建头程订单、保存草稿和提交;提交前校验企业资料审核状态 | P0 | 联调中 | 92% | BASE-03、ADM-CUSTOMER-03 | 待分配 | 企业审核状态改为进入订单页时真实加载;创建/编辑/提交契约、幂等键和权限映射已接。为避免污染联调数据,本轮只读验收未执行保存和提交 |
| CLI-ORDER-02 | 客户端 | 头程订单 | 我的订单列表和详情 | P0 | 测试中 | 95% | CLI-ORDER-01 | 待分配 | 浏览器真实读取 1 条草稿及详情,货物、双方快照和状态历史正常回显;编辑前强制加载完整详情,修复列表简要数据导致空货物和响应式复制异常 |
| CLI-ORDER-03 | 客户端 | 头程订单 | 下单选择平台收货仓;提交时保存仓库 ID 和展示快照 | P0 | 测试中 | 90% | CLI-WH-01、CLI-ORDER-01 | 待分配 | 新订单真实仓库选择和详情回显已验证;当前旧草稿引用已不存在的仓库 `2001`,客户端清空失效选择并提示重新选择,服务端样本关联待修复 |
| CLI-ORDER-04 | 客户端 | 头程订单 | 从已启用往来单位选择发货方/收货方并带入联系人和地址,提交时保存快照 | P0 | 测试中 | 92% | CLI-CP-01、CLI-ORDER-01 | 待分配 | 真实候选接口和订单双方快照已接;当前新建表单候选为空,旧订单快照可完整回显并以“历史快照”标识已不在候选中的单位 |
| CLI-ORDER-04 | 客户端 | 头程订单 | 从已启用往来单位选择发货方/收货方并带入联系人和地址,提交时保存快照 | P0 | 测试中 | 94% | CLI-CP-01、CLI-ORDER-01 | 待分配 | 真实候选接口和订单双方快照已接;创建/编辑请求已用发货方 ID 填充后端必填 `customerId`。当前无启用收货仓,创建入口被禁用,候选下拉待准备仓库样本后复测 |
| ADM-ORDER-05 | 后台 | 头程订单 | 维护履约快递公司、快递单号并在订单详情展示 | P1 | 进行中 | 80% | ADM-EXP-02、ADM-ORDER-02 | 待分配 | Vue 列表/详情/维护弹窗、单组限制、停用历史回显和审计记录完成;一期不接轨迹订阅,业务 API 待新架构确认 |
| CLI-ORDER-05 | 客户端 | 头程订单 | 订单详情只读展示后台维护的快递公司和快递单号 | P1 | 测试中 | 75% | ADM-ORDER-05、CLI-ORDER-02 | 待分配 | 真实订单详情已验证“平台尚未维护快递信息”空态,客户侧无编辑入口;仍需后台准备含快递公司和单号的样本复测有值回显 |
| TEST-01 | 公共 | 测试 | 用户、角色、权限和越权访问测试 | P0 | 进行中 | 40% | 权限模块完成 | 待分配 | 客户端已覆盖权限过滤、403、首个可访问页面、按钮权限和会话恢复;跨企业越权及接口拒绝必须待服务端测试 |
@@ -228,7 +228,7 @@
| 客户端权限效果 | 通过(静态) | 按演示账号过滤导航,拒绝无权限路由并显示 403,恢复刷新后的权限身份,控制主要业务按钮和首个可访问页面 |
| 往来单位与订单快照 | 通过(静态) | 仅选择启用的发货/收货单位,可调整本单联系人和地址;保存后形成独立快照,不反向修改主数据 |
| 快递信息 | 通过(静态) | 订单详情只读展示平台维护的快递公司和单号,并提供未维护空态;客户侧无写入口 |
| 服务端与数据安全 | 联调中 | 认证、权限资源、企业资料、营业执照、个人资料、成员完整维护、角色权限保存、仓库详情、往来单位、头程订单及快递只读字段已接真实 API;角色编辑/启停/删除路径仍待 Gateway OpenAPI 明确,客户端不猜测接口 |
| 服务端与数据安全 | 联调中 | 认证、权限资源、企业资料、营业执照、个人资料、成员完整维护、角色完整维护、仓库详情、往来单位、头程订单及快递只读字段已接真实 API;订单 `customerId` 与 `CUSTOMER / SUPPLIER / BOTH` 契约已按后端源码和回归脚本复核 |
> 客户端静态页面阶段通过不等于一期业务完成。菜单隐藏和页面只读只用于前端体验,服务端仍必须按当前用户、`tenant_id` 和权限编码执行授权校验。
@@ -310,3 +310,19 @@
- 当前订单详情的快递公司和快递单号均为空,客户端正确显示只读空态;需后端准备含快递信息的样本后复测有值场景。
- 当前订单的部分中文字段由接口直接返回 `????`,涉及仓库名称、发货方、品名、渠道名称和备注;英文、数字、货物数量重量及收货方地址正常。该问题应由后端检查初始化脚本、数据库字符集或写入编码。
- 过程中 Gateway 曾短暂返回 502/401,页面失败态、重试和会话清理行为符合预期;重新登录后恢复。最终代码门禁通过:Client 94 项自动化测试、`pnpm typecheck` 和 `pnpm build` 均成功。
### Client 后端只读契约核对与复测(2026-07-31)
- 联调方式调整为前端代码可修改、`baiyue-firstleg/` 后端仓库只读。后端每次拉取后优先核对相关 Controller、DTO、Service、Repository 与回归脚本,不改后端 Java、SQL、配置或文档。
- 后端已存在商户角色编辑、状态和删除接口,客户端已接入 `PUT /api/merchant/v1/iam/roles/{roleId}`、`PUT /api/merchant/v1/iam/roles/{roleId}/status`、`DELETE /api/merchant/v1/iam/roles/{roleId}`,不再执行本地假更新。
- 下单服务端强制校验主往来单位 `customerId`,并用服务端往来单位名称覆盖客户端 `customerName`;客户端创建和编辑请求现以所选发货方 ID 填充 `customerId`,发货方和收货方详情仍分别保存订单快照。
- 往来单位主数据类型为 `CUSTOMER / SUPPLIER / BOTH`,不是订单角色 `SENDER / RECEIVER`。客户端改为一次读取当前租户启用候选,并允许同一候选用于发货方或收货方。
- 本地 Gateway 真实登录成功,角色页读取两个内置角色及权限数正常;当前无自定义角色样本,未执行角色写操作。订单页当前返回 0 个启用收货仓,“创建订单”正确禁用,因此往来单位下拉仍待仓库样本恢复后只读验收。
- 代码门禁通过:Client 94 项自动化测试、`pnpm typecheck` 和 `pnpm build` 均成功。新增契约断言覆盖 `customerId`、往来单位后端类型/双订单角色映射,以及角色编辑、状态、删除真实调用。
### Admin 后端只读契约核对与角色接入(2026-07-31)
- 从后端 `iam/RbacController.java` 与 `RbacDtos.java` 确认平台角色已提供详情、编辑、启停、删除和权限全量替换接口,前端不再受旧联调文档缺口限制。
- Admin 角色页现同时读取角色 `permissionIds` 与权限资源,真实回显菜单和按钮授权;编辑使用 `PUT /api/platform/v1/iam/roles/{roleId}`,启停使用 `PUT /api/platform/v1/iam/roles/{roleId}/status`,删除使用 `DELETE /api/platform/v1/iam/roles/{roleId}`,授权使用 `PUT /api/platform/v1/iam/roles/permissions`。
- 19 位角色和权限 ID 延续字符串处理,避免 JavaScript 数值精度丢失;保存、启停和删除均有重复提交防护与真实失败反馈,不回退本地成功。
- 后端订单 Controller 仍包含订单驳回接口,与当前一期“不设置已驳回状态”的确认结论冲突,本轮明确不接入该接口;企业资料审核驳回不受此订单规则影响。