# RuoYi-Vue springboot2 基线迁移实施记录 ## 本次完成内容 - 以 `RuoYi-Vue/springboot2` 为基线覆盖当前仓库的框架层: - 根 `pom.xml` - `ruoyi-admin` - `ruoyi-common` - `ruoyi-framework` - `ruoyi-generator` - `ruoyi-quartz` - `ruoyi-system` - `ruoyi-ui` - `sql` 基础脚本 - 恢复并接回业务模块与业务页面: - `ruoyi-loan-pricing` - `ruoyi-ui/src/views/loanPricing` - `ruoyi-ui/src/api/loanPricing` - `ruoyi-ui/src/router/index.js` 中的业务路由 - `ruoyi-admin` 中的业务配置 - 将 `ruoyi-loan-pricing` 从 Boot 3 / Java 17 写法回退到 Boot 2 / Java 8 可编译形态: - 移除 `springdoc` 注解和依赖 - 将 `jakarta.*` 改回 `javax.*` - 将 `String.repeat` 改为 Java 8 兼容实现 - 将模型调用改为模块内 `RestTemplate + form-urlencoded` - 补回当前项目的“无 Redis”本地缓存实现: - `InMemoryCacheEntry` - `InMemoryCacheStats` - `InMemoryCacheStore` - 本地缓存版 `RedisCache` - 本地缓存版 `CacheController` - 调整前端业务依赖与脚本: - 恢复 `crypto-js` - 恢复 `splitpanes` - 恢复 `ruoyi-ui/tests` 下 4 个业务测试脚本 - 恢复项目原有部署辅助脚本: - `bin/prod/*.sh` - `bin/restart_java_backend*.sh` - 修正本地启动所需配置: - `logback.xml` 日志目录改为项目内 `logs` - `application.yml` 补齐 `swagger`、`redis`、`mybatis` - 增加 `ruoyi-loan-pricing` 模块挂载和依赖声明 ## 验证结果 ### 后端编译验证 已通过: - `export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home && export PATH="$JAVA_HOME/bin:$PATH" && mvn -pl ruoyi-admin -am -DskipTests package` - `export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home && export PATH="$JAVA_HOME/bin:$PATH" && mvn -pl ruoyi-admin -am install -DskipTests` ### 前端构建验证 已通过: - `source ~/.nvm/nvm.sh && nvm use 14.21.3 && npm install` - `source ~/.nvm/nvm.sh && nvm use 14.21.3 && npm run build:prod` ### 前后端联调验证 已验证: - 前端开发服务成功启动于 `http://localhost:1024` - 浏览器打开 `http://localhost:1024/login`,页面标题显示为“若依管理系统” - 浏览器点击登录后成功进入 `/index` - 页面已实际渲染“流程列表”业务页面 - 通过前端代理访问 `http://localhost:1024/dev-api/captchaImage` 返回: - `{"msg":"操作成功","code":200,"captchaEnabled":false}` - 源码态后端在 `Java 8 + spring-boot:run` 模式下可启动成功 - 登录接口可成功返回 token: - `POST /login` ## 联调中发现的遗留问题 浏览器进入系统后,页面出现两条后端错误提示: 1. 数据库缺少 `sys_notice_read` 表 2. `GET /loanPricing/workflow/list` 仍返回 `TooManyResultsException` 其中第 1 项已确认当前仓库 SQL 中已有对应建表语句: - `sql/ry_20260330.sql` - `sql/loan_pricing_prod_init_20260331.sql` 说明当前代码迁移已落地,但联调数据库尚未完全补齐到 `springboot2` 基线所需表结构。 第 2 项已经定位到当前运行态仍存在列表查询返回值与 MyBatis 映射结果不一致的问题,表现为: - `GET /loanPricing/workflow/list?pageNum=1&pageSize=10` - 返回:`{"msg":"nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 15","code":500}` ## 结论 本次代码迁移已经完成: - 框架层已切回 `RuoYi-Vue springboot2` - 业务模块和业务页面已接回 - Java 8 / Spring Boot 2 / Vue 2 的编译与构建链路已打通 - 浏览器已成功进入业务页面与登录链路 当前剩余问题集中在: - 联调数据库尚未补齐 `sys_notice_read` 表 - `workflow/list` 运行态查询仍需继续收口