# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## 项目概述 这是一个基于 **RuoYi-Vue-Plus 5.5.1** 框架的 **AR 智能巡检平台**,采用前后端分离架构: - **后端**: Spring Boot 3.5.7 + Java 17 + Maven 多模块 - **前端**: Vue 3.5.13 + TypeScript 5.8.3 + Vite 6.3.2 - **数据库**: MySQL / PostgreSQL / Oracle + MyBatis-Plus 3.5.14 - **缓存**: Redis + Redisson 3.51.0 (非 Lettuce) - **认证**: Sa-Token 1.44.0 (非 Spring Security) ### 开发环境要求 **后端环境:** - JDK 17 或 JDK 21 - Maven 3.6+ - MySQL 5.7+ / PostgreSQL / Oracle / SQL Server - Redis 5.0+ **前端环境:** - Node.js >= 18.18.0 - npm >= 8.9.0 ## 项目架构详解 ### 后端模块结构 ``` ar-inspection/ ├── ruoyi-admin/ # 主应用模块,Web服务入口 ├── ruoyi-common/ # 通用功能模块(插件化架构) │ ├── ruoyi-common-core/ # 核心工具包 │ ├── ruoyi-common-mybatis/ # MyBatis-Plus 集成 │ ├── ruoyi-common-security/ # Sa-Token 安全认证 │ ├── ruoyi-common-redis/ # Redis 缓存 │ ├── ruoyi-common-oss/ # 对象存储(S3/MinIO) │ ├── ruoyi-common-doc/ # SpringDoc API文档 │ ├── ruoyi-common-web/ # Web 配置 │ ├── ruoyi-common-json/ # Jackson 序列化 │ ├── ruoyi-common-log/ # 操作日志 │ ├── ruoyi-common-job/ # SnailJob 定时任务 │ ├── ruoyi-common-translation/# 数据翻译 │ ├── ruoyi-common-encrypt/ # 数据加解密 │ ├── ruoyi-common-sensitive/ # 数据脱敏 │ ├── ruoyi-common-idempotent/ # 幂等处理 │ ├── ruoyi-common-ratelimiter/# 限流 │ ├── ruoyi-common-social/ # 第三方登录 │ ├── ruoyi-common-sms/ # 短信服务 │ ├── ruoyi-common-mail/ # 邮件服务 │ └── ruoyi-common-websocket/ # WebSocket/SSE ├── ruoyi-modules/ # 业务功能模块 │ ├── ruoyi-system/ # 系统管理模块 │ ├── ruoyi-inspection/ # AR智能巡检模块 │ ├── ruoyi-generator/ # 代码生成器 │ ├── ruoyi-demo/ # 演示案例 │ ├── ruoyi-workflow/ # 工作流模块(Warm-Flow) │ └── ruoyi-job/ # 任务调度 └── ruoyi-extend/ # 扩展模块 ├── ruoyi-monitor-admin/ # Spring Boot Admin 监控 └── ruoyi-snailjob-server/ # SnailJob 调度中心 ``` ### 前端目录结构 ``` plus-ui/ ├── src/ │ ├── api/ # API 接口定义 │ │ ├── demo/ # 演示模块 │ │ ├── monitor/ # 监控模块 │ │ ├── system/ # 系统管理 │ │ ├── tool/ # 工具模块 │ │ └── workflow/ # 工作流 │ ├── assets/ # 静态资源 │ ├── components/ # 公共组件 │ ├── directive/ # 自定义指令 │ ├── hooks/ # 组合式函数 │ ├── layout/ # 布局组件 │ ├── lang/ # 国际化 │ ├── plugins/ # 插件封装 │ ├── router/ # 路由配置 │ ├── store/ # Pinia 状态管理 │ ├── types/ # TypeScript 类型定义 │ ├── utils/ # 工具函数 │ └── views/ # 页面视图 ├── vite/ # Vite 插件配置 └── vite.config.ts # Vite 配置文件 ``` ## 核心技术架构 ### 后端核心组件 1. **权限认证: Sa-Token + JWT** (非 Spring Security) - 支持登录校验、角色校验、权限校验、二级认证 - 支持复杂权限表达式 (AND/OR) - 轻量级,性能优于 Spring Security 2. **ORM 框架: MyBatis-Plus** - 雪花ID主键 (ASSIGN_ID) - 多租户插件 (默认启用) - 数据权限插件 - 分页插件 - 逻辑删除支持 3. **缓存方案: Redisson** (非 Lettuce) - 支持分布式锁 (Lock4j) - 支持 Spring Cache 注解 - 更强大的分布式特性 4. **多数据源: Dynamic-Datasource** - 支持异构数据库动态切换 - 支持多主多从、混合模式 5. **任务调度: SnailJob** (非 Quartz) - 分布式任务调度 - 支持分片、重试、DAG 任务流 - 可视化管理界面 6. **工作流引擎: Warm-Flow** - 国产工作流引擎 - 支持复杂审批流程 - 轻量级,易于扩展 7. **文件存储: MinIO / AWS S3** - 支持七牛、阿里云、腾讯云等 - 统一的 OSS 抽象接口 8. **API 文档: SpringDoc** (非 Springfox) - 基于 javadoc 注释自动生成 - 零注解入侵 - 符合 OpenAPI 3.0 规范 ### 前端核心特性 1. **UI 框架**: Element Plus 2.9.8 2. **状态管理**: Pinia 3.0.2 (非 Vuex) 3. **路由**: Vue Router 4.5.0 4. **HTTP 客户端**: Axios 1.8.4 5. **表格组件**: vxe-table 4.13.7 6. **接口加密**: RSA + AES 动态加密 7. **原子化CSS**: UnoCSS ## 项目特定技术规范 ### 后端开发规范 1. **模块结构**: - `ruoyi-admin/` - 主应用入口,负责启动和全局配置 - `ruoyi-common/` - 通用功能模块(不要随意修改) - `ruoyi-modules/` - 业务模块目录 - `ruoyi-system/` - 系统管理模块 - `ruoyi-inspection/` - AR巡检核心业务模块 - 其他业务模块按功能划分 2. **代码分层**: ``` controller/ # 控制器层,处理HTTP请求 service/ # 业务逻辑层接口 service/impl/ # 业务逻辑实现 mapper/ # 数据访问层 domain/ # 实体类 vo/ # 视图对象 bo/ # 业务对象 ``` 3. **必须遵循的规范**: - 实体类必须继承 `BaseEntity` 并使用 Lombok 注解 - Mapper 接口继承 `BaseMapperPlus<实体类Mapper, 实体类, VO类>` - Service 实现类使用 `@RequiredArgsConstructor` 注入依赖 - Controller 统一返回 `R` 类型 - 使用 `@SaCheckPermission` 进行权限控制 - 所有 API 添加 Swagger 注解: `@Tag`, `@Operation`, `@Parameters` 4. **命名约定**: - 实体类: `XxxEntity` 或直接 `Xxx` - Mapper: `XxxMapper` - Service: `IXxxService` (接口) / `XxxServiceImpl` (实现) - Controller: `XxxController` - VO: `XxxVo` - BO: `XxxBo` 5. **数据库操作**: - 优先使用 MyBatis-Plus 的内置方法 - 复杂查询在 Mapper XML 中编写 - 使用 `LambdaQueryWrapper` 构建动态查询 - 分页使用 `TableDataInfo` 和 `PageQuery` ### 前端开发规范 1. **目录结构**: ``` plus-ui/ ├── src/ │ ├── api/ # API接口定义 │ ├── views/ # 页面视图 │ ├── components/ # 可复用组件 │ ├── store/ # Pinia状态管理 │ ├── router/ # 路由配置 │ ├── utils/ # 工具函数 │ └── types/ # TypeScript类型定义 ``` 2. **组件开发**: - 使用 Vue 3 Composition API (`