江西体能测试增量迁移实施方案

功能基线:本地 kxxl/develop_jxtks260916@966bd96 + 当前连接的开发库 ydy_jxtks1

约束:PHP 5.6 · ThinkPHP 5.0 · Vue 2 · Webpack 3 · MySQL 5.6

可进入实现:兼容性、页面一致性和业务正确性均设置为发布门禁
A 级当前启用功能:完整页面与接口回归
B 级未启用但共享代码:契约与类型隔离烟测
C 级未启用且无共享路径:不纳入兼容范围

一、核心结论

以江西本地代码和开发库的实际功能作为唯一回归基线。新增模块采用独立表、独立接口和显式类型隔离;共享代码只做向后兼容的增量适配,菜单最后开放。

已核实江西开发库当前有 29 个启用页面菜单,覆盖综合管理、训练管理、机能监控(含体重管理)、营养管理、系统管理和综合设置。这些是完整回归范围。
selectionSet、历史选材/医务/体态等代码存在但菜单未启用,不做完整页面验收;只有经过本次共享代码或共享表时才做接口烟测。
禁止整文件覆盖 Staff、EnginerySet、BodyTest 或复制演示 dist;禁止升级全局前端依赖;禁止复制演示人员、历史测试、地址和评分数据。

二、隔离架构

隔离层规则保护对象
数据库体能专属 5 张表;分类/指标/单位 type=5,地址 type=3,数据权限 type=6训练、选材、机能、体重数据不串库
接口共享方法新增可选 type,未传参保持江西当前默认;体能页面显式传参现有调用方响应与行为不变
人员只给 getStaffByStation 增加 sport_uuid/sport_event_uuid,不替换江西过滤规则组织、人员、权限、InBody
前端复用江西容器、按钮、表格、弹窗、分页、图标和反馈;局部 scoped 样式视觉和交互一致,不污染全局主题
发布代码/表结构/构建/回归全部通过后再插入菜单并授权未完成模块不对用户暴露

type=5 体能分类/指标/单位type=3 体能地址type=6 数据权限staff.test_date 独立于 weight_date

三、实施顺序

冻结江西基线

记录分支、当前本地改动、29 个启用页面和关键接口正常响应;保留本地启动配置及 BodyTest 当前改动。

数据库结构

新增 test、staff_test、sport_score、norm_score、test_analysis;补 staff.test_date、sport.status、norm_category.type;提供预检与安全 rollback。

共享兼容层

EnginerySet 显式 type 隔离、Staff 只增字段、测试附件限定主记录归属;先证明原调用不变。

体能设置闭环

依次完成单位、地址、指标、分类、评分;江西运动项目重新配置,评分权重总和固定为 10。

测试记录闭环

新增/读取/编辑/删除事务化;维护 manage_staff.type=6 和 staff.test_date;同人同日多场测试不覆盖。

导入导出与附件

Excel 全表先校验后一次性写入,失败不产生部分数据;附件只作用于当前测试。

个体分析

趋势、评分和空状态完整;评分按专项+性别精确匹配,再按项目+性别回退,无配置时显示未配置。

江西风格适配

按当前 selection/function 页面结构统一导航、搜索区、按钮、表格、弹窗、分页和三种桌面分辨率。

构建、菜单与开放

使用江西源码生成 public/dist,完成全回归后执行 36 条菜单 SQL并授权测试角色。

四、关键业务规则

五、强制回归门禁

级别范围通过条件
A登录权限、综合管理、组织结构 ID/导出、训练、机能、体重、营养、系统与综合设置、InBody29 个当前启用页面及相关接口与基线一致;任一失败均阻断菜单开放
B未启用但共享 EnginerySet、Staff、category/norm/unit/address 的代码未传新参数时响应不变,type=3/4/5/6 数据严格隔离
C未启用且不经过本次修改路径的历史模块不纳入本次兼容和人工验收范围

新增功能验收

设置、评分、测试记录、导入导出、附件、个体分析、角色权限、PHP 5.6 语法、MySQL 5.6 SQL、前端生产构建和浏览器端到端必须全部通过。

六、页面一致性标准

七、回滚策略

  1. 优先撤销体能菜单授权,使模块立即不可见。
  2. 回退代码和 public/dist 到迁移前提交。
  3. 新增表只有在无江西业务数据时才可 DROP;有数据则保留并停止写入。
  4. 共享表新增字段保持向后兼容,常规回滚不删除。
  5. 菜单只按本次 36 个 UUID 删除,禁止按 ID 范围删除。

八、完成标准

只有新增模块全部通过、29 个当前启用页面回归全绿、B 级共享契约烟测通过、页面风格实看一致、SQL/rollback/构建/测试证据齐全,才允许交付。

当前状态:方案完成,可进入阶段 0;尚未修改 kxxl 业务代码、未执行开发库结构 SQL、未插入菜单。