status: complete created: 2026-07-15
execution-log.md。| 项目 | 值 |
|---|---|
| 前端 | Vitest + Vue 3;Node v20.19.0 |
| 后端 | JUnit 5 / Spring Boot Test(Excel、Crypto Starter 独立执行) |
| Excel | EasyExcel 写入,Apache POI/工作簿读取验证 |
| SQL | xmllint + 静态契约检查;不连接真实 MySQL |
| 类/模块 | 场景 | 输入 | 预期结果 |
|---|---|---|---|
message-notification-utils.js |
未完成流程消息 | FLOW_TODO/readFlag=0 |
可显示并触发审批 |
message-notification-utils.js |
已办流程消息 | FLOW_TODO/readFlag=1 |
不显示、不触发审批 |
import-utils.js |
超过 20 行预览 | 表头 + 25 行 | 总行数 25、只返回前 20 行 |
import-utils.js |
动态/通用错误字段兼容 | message/errorMessage、label/columnName |
统一为可渲染错误行 |
crypto-config.js |
后端全局关闭 | enabled=false |
前端 enabled=false、防重放按返回配置同步 |
crypto-config.js |
API 子开关关闭 | enabled=true, enableApiCrypto=false |
前端 API 加密关闭 |
crypto-config.js |
配置加载失败 | 请求异常 | 保持静态 enabled=true,不降级明文 |
ExcelImportTemplateWriter |
生成导入模板 | 必填、可选两列 | 两个工作表、样例行、字段说明均存在 |
CryptoEncryptorLifecycleTest |
关闭状态启动 | enabled=false + 无效 SM4/AES/RSA 历史值 |
加密器和 RSA Holder 可创建,不在启动阶段校验无效密钥 |
CryptoEncryptorLifecycleTest |
运行时重新开启 | 先关闭并设置无效值,再切换有效 16 字节密钥 | 同一 SM4/AES 实例读取最新密钥并完成加解密往返 |
SysUserOrgRoleMapper.xml 通过 XML 语法检查。selectRoleNamesByUserOrg 不再使用 SELECT DISTINCT r.role_name。GROUP BY r.id, r.role_name, r.sort 和原排序条件。forge-starter-crypto、forge-starter-config、forge-starter-auth、forge-starter-excel 通过 Admin reactor 聚合编译。/crypto/config 匿名访问、配置切换真实密文/明文与用户关联管理接口由用户环境做 E2E 回填。git diff --check,回填文档状态与执行证据。| 时间 | 范围 | 命令 | 结果 | 备注 |
|---|---|---|---|---|
| 2026-07-15 前 | 当前工作区 | 见 app-first-lowcode-workbench/execution-log.md |
多阶段历史构建通过,但当前工作区此后仍有大量未提交差异 | 本变更必须重新验证目标差异,不能直接复用为最终结论 |
| 时间 | 变更范围 | 必跑项 | 实际命令 | 结果 | 跳过/警告 |
|---|---|---|---|---|---|
| 2026-07-15 | 前端纯函数 | Vitest | pnpm exec vitest run src/components/ai-form/__tests__/import-utils.spec.js src/layouts/components/__tests__/message-notification-utils.spec.js src/utils/crypto/__tests__/crypto-config.spec.js |
passed,3 files / 11 tests | 无 |
| 2026-07-15 | Excel 模板 | JUnit | JAVA_HOME=...17... mvn -pl forge-framework/forge-starter-parent/forge-starter-excel -Penable-tests -Dtest=ExcelImportTemplateWriterTest test |
passed,1 test | 首次未指定 Java 17 失败,修正环境后通过 |
| 2026-07-15 | SQL | XML/静态契约 | xmllint --noout .../SysUserOrgRoleMapper.xml + rg |
passed | 未连接真实 MySQL |
| 2026-07-15 | 前端差异 | ESLint | pnpm exec eslint <本轮相关前端文件> |
passed | 无 |
| 2026-07-15 | 后端集成 | Admin reactor package | JAVA_HOME=...17... mvn -pl forge-admin-server -am package -DskipTests |
passed,42/42 modules | 测试按命令跳过;存在既有 deprecated/unchecked 警告 |
| 2026-07-15 | 前端集成 | production build | source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm build |
passed,8684 modules | 既有组件命名冲突、CSS 注释及 chunk 警告;脚本内部将 heap 设为 40961MB |
| 2026-07-15 | 差异卫生 | 空白检查 | git diff --check |
passed | 工作区原有大量未提交改动均保留 |
| 2026-07-16 | 加解密关闭启动回归 | Crypto Starter JUnit | JAVA_HOME=...17... mvn -pl forge-framework/forge-starter-parent/forge-starter-crypto -Penable-tests -Dtest=CryptoEncryptorLifecycleTest test |
passed,3/3 | 未启动真实服务 |
| 2026-07-16 | 主应用装配 | Admin reactor package | JAVA_HOME=...17... mvn -pl forge-admin-server -am package -DskipTests |
passed,42/42 modules | 测试按命令跳过;存在既有 deprecated/unchecked 警告 |
execution-log.md:同目录增量追加。/crypto/config 与 /api/config/manage/crypto 契约;真实 HTTP 留待用户环境。