From 916ac6bda32a5b102a3181cc8c5dbd5319c5656d Mon Sep 17 00:00:00 2001 From: local Date: Tue, 11 Aug 2026 13:34:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E6=9C=80=E6=96=B0=E4=BB=A3?= =?UTF-8?q?=E7=A0=81:=E5=90=8C=E6=AD=A5=E6=89=80=E6=9C=89=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=8F=8A=E6=96=B0=E5=A2=9E=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 479 +++ .../src/main/java/com/ruoyi/Dzp/DzpSend.java | 120 + .../java/com/ruoyi/Dzp/LEDSender2010.java | 3235 +++++++++++++++++ .../src/main/java/com/ruoyi/Dzp/Lzss.java | 164 + .../main/java/com/ruoyi/Dzp/MyUdpSocket.java | 93 + .../main/java/com/ruoyi/Dzp/ProtocolDemo.java | 995 +++++ .../java/com/ruoyi/Dzp/domain/basLed.java | 27 + .../com/ruoyi/Dzp/mapper/BasLedMapper.java | 15 + .../api/controller/BatchNoGenerator.java | 78 + .../api/controller/ToErpApiController.java | 111 +- .../api/controller/ToWmsApiController.java | 143 +- .../ruoyi/api/controller/TwinController.java | 17 + .../com/ruoyi/api/domain/CallBackErp.java | 70 + .../ruoyi/api/domain/CallBackErpItems.java | 68 + .../api/domain/DeliveryNoticeItemVo.java | 36 +- .../ruoyi/api/domain/DeliveryNoticeVo.java | 11 + .../com/ruoyi/api/domain/LocationDetail.java | 44 + .../com/ruoyi/api/domain/RequestEnter.java | 4 + .../com/ruoyi/api/domain/WmsJobRequest.java | 2 + .../moveMsg/controller/MoveMsgController.java | 104 + .../com/ruoyi/api/moveMsg/domain/MoveMsg.java | 202 + .../api/moveMsg/mapper/MoveMsgMapper.java | 61 + .../api/moveMsg/service/IMoveMsgService.java | 61 + .../service/impl/MoveMsgServiceImpl.java | 93 + .../com/ruoyi/api/service/IToErpService.java | 9 + .../com/ruoyi/api/service/IToWmsService.java | 2 + .../com/ruoyi/api/service/ITwinService.java | 2 + .../api/service/impl/ToErpServiceImpl.java | 1021 +++++- .../api/service/impl/ToWcsServiceImpl.java | 9 +- .../api/service/impl/ToWmsServiceImpl.java | 70 +- .../api/service/impl/TwinServiceImpl.java | 66 + .../controller/AgvPointController.java | 104 + .../ruoyi/bas/agvPoint/domain/AgvPoint.java | 113 + .../ruoyi/bas/agvPoint/domain/AgvTask.java | 22 + .../bas/agvPoint/mapper/AgvPointMapper.java | 61 + .../agvPoint/service/IAgvPointService.java | 61 + .../service/impl/AgvPointServiceImpl.java | 93 + .../controller/BasTraycodeController.java | 1 + .../bas/traycode/domain/BasTraycode.java | 8 +- .../traycode/mapper/BasTraycodeMapper.java | 2 + .../traycode/service/IBasTraycodeService.java | 2 + .../service/impl/BasTraycodeServiceImpl.java | 39 +- .../impl/BasTraycodeFormatServiceImpl.java | 17 - .../service/impl/CheckStockinServiceImpl.java | 6 +- .../agv/mapper/AgvContainerTaskMapper.java | 2 + .../agv/service/IAgvContainerTaskService.java | 2 + .../impl/AgvContainerTaskServiceImpl.java | 5 + .../ruoyi/in/stockin/domain/InStockin.java | 46 + .../in/stockin/mapper/InStockinMapper.java | 2 + .../in/stockin/service/IInStockinService.java | 2 + .../service/impl/InStockinServiceImpl.java | 5 + .../in/stockinback/domain/InStockinBack.java | 18 + .../domain/InStockinDetailBack.java | 38 + .../mapper/InStockinDetailBackMapper.java | 5 + .../service/IInStockinDetailBackService.java | 4 + .../impl/InStockinDetailBackServiceImpl.java | 10 + .../stockindetail/domain/InStockinDetail.java | 6 +- .../mapper/InStockinDetailMapper.java | 2 + .../service/IInStockinDetailService.java | 2 + .../impl/InStockinDetailServiceImpl.java | 5 + .../stockinfinish/domain/InStockinFinish.java | 9 + .../impl/InStockinFinishServiceImpl.java | 2 +- .../com/ruoyi/job/mydojob/domain/MydoJob.java | 20 + .../ruoyi/job/mydojob/domain/PkDetail.java | 27 + .../job/mydojob/mapper/MydoJobMapper.java | 12 + .../job/mydojob/service/IMydoJobService.java | 2 + .../service/impl/MydoJobServiceImpl.java | 17 +- .../log/controller/RequestLogController.java | 28 + .../ruoyi/log/mapper/RequestLogMapper.java | 6 + .../ruoyi/log/service/IRequestLogService.java | 9 + .../service/impl/RequestLogServiceImpl.java | 96 +- .../ViewHandAllotStockController.java | 3 + .../domain/ViewHandAllotStock.java | 34 +- .../controller/OutStockoutController.java | 27 +- .../out/outStockout/domain/OutStockout.java | 45 + .../outStockout/mapper/OutStockoutMapper.java | 2 + .../service/IOutStockoutService.java | 2 + .../service/impl/OutStockoutServiceImpl.java | 12 +- .../controller/OutStockoutBackController.java | 104 + .../domain/OutStockoutBack.java | 464 +++ .../mapper/OutStockoutBackMapper.java | 64 + .../service/IOutStockoutBackService.java | 70 + .../impl/OutStockoutBackServiceImpl.java | 98 + .../domain/OutStockoutDetail.java | 48 +- .../OutStockoutDetailBackController.java | 104 + .../domain/OutStockoutDetailBack.java | 645 ++++ .../mapper/OutStockoutDetailBackMapper.java | 66 + .../IOutStockoutDetailBackService.java | 65 + .../OutStockoutDetailBackServiceImpl.java | 103 + .../ViewProductAndStockController.java | 2 +- .../ruoyi/pda/controller/PdaController.java | 320 +- .../ruoyi/pda/domain/TrayCodeMakeSure.java | 9 + .../com/ruoyi/pda/domain/TrayCodeMsg.java | 22 + .../java/com/ruoyi/pda/mapper/PdaMapper.java | 14 + .../com/ruoyi/pda/service/PdaService.java | 18 +- .../com/ruoyi/pda/service/PdaServiceImp.java | 169 +- .../stock/controller/BasStockController.java | 10 +- .../ruoyi/stock/stock/domain/BasStock.java | 3 + .../stock/stock/mapper/BasStockMapper.java | 17 + .../stock/stock/service/IBasStockService.java | 6 + .../service/impl/BasStockServiceImpl.java | 28 +- .../src/main/resources/application-druid.yml | 4 +- .../src/main/resources/application.yml | 10 +- .../mapper/agv/AgvContainerTaskMapper.xml | 26 +- .../resources/mapper/ai/ChatMessageMapper.xml | 17 +- .../mapper/ai/ConversationsMapper.xml | 25 +- .../mapper/api/KnowledgeFileMapper.xml | 24 +- .../resources/mapper/api/MoveMsgMapper.xml | 108 + .../resources/mapper/bas/AgvPointMapper.xml | 82 + .../mapper/bas/BasContainerDetailsMapper.xml | 18 +- .../mapper/bas/BasContainerMapper.xml | 14 +- .../mapper/bas/BasCustomerMapper.xml | 6 +- .../resources/mapper/bas/BasJobIdMapper.xml | 41 +- .../resources/mapper/bas/BasLedMapper.xml | 65 + .../mapper/bas/BasProductCodeMapper.xml | 20 +- .../mapper/bas/BasProductPortMapper.xml | 10 +- .../mapper/bas/BasProductPortRelMapper.xml | 11 +- .../resources/mapper/bas/BasRoadwayMapper.xml | 18 +- .../mapper/bas/BasSupplierMapper.xml | 6 +- .../resources/mapper/bas/BasTagMapper.xml | 19 +- .../mapper/bas/BasTraycodeFormatMapper.xml | 10 +- .../mapper/bas/BasTraycodeMapper.xml | 11 +- .../mapper/bas/BasWarehousePortMapper.xml | 10 +- .../bas/cargoSpace/BasCargoSpaceMapper.xml | 61 +- .../bas/warehouse/BasWarehouseMapper.xml | 13 +- .../mapper/check/CheckCommitRecordMapper.xml | 18 +- .../CheckDifferenceRecordFinishMapper.xml | 31 +- .../check/CheckDifferenceRecordMapper.xml | 31 +- .../check/CheckStockinDetailFinishMapper.xml | 115 +- .../mapper/check/CheckStockinDetailMapper.xml | 59 +- .../mapper/check/CheckStockinFinishMapper.xml | 75 +- .../mapper/check/CheckStockinMapper.xml | 39 +- .../mapper/in/InStockinBackMapper.xml | 54 +- .../mapper/in/InStockinDetailBackMapper.xml | 145 +- .../mapper/in/InStockinDetailFinishMapper.xml | 115 +- .../mapper/in/InStockinDetailMapper.xml | 86 +- .../mapper/in/InStockinFinishMapper.xml | 79 +- .../resources/mapper/in/InStockinMapper.xml | 146 +- .../mapper/in/TransferBillCallbackMapper.xml | 20 +- .../mapper/job/MydoJobDetailFinishMapper.xml | 55 +- .../mapper/job/MydoJobDetailMapper.xml | 67 +- .../mapper/job/MydoJobFinishMapper.xml | 95 +- .../resources/mapper/job/MydoJobMapper.xml | 82 +- .../mapper/out/OutExceptionRecordMapper.xml | 18 +- .../mapper/out/OutPickSubmitMapper.xml | 24 +- .../mapper/out/OutStockoutBackMapper.xml | 225 ++ .../out/OutStockoutDetailBackMapper.xml | 320 ++ .../out/OutStockoutDetailFinishMapper.xml | 66 +- .../mapper/out/OutStockoutDetailMapper.xml | 147 +- .../mapper/out/OutStockoutFinishMapper.xml | 68 +- .../mapper/out/OutStockoutMapper.xml | 102 +- .../mapper/out/ViewHandAllotStockMapper.xml | 122 +- .../main/resources/mapper/pda/PdaMapper.xml | 61 +- .../resources/mapper/pda/TrayMsgMapper.xml | 10 +- .../ViewProductAndStockMapper.xml | 63 +- .../ReceiveStockinDetailFinishMapper.xml | 103 +- .../receive/ReceiveStockinDetailMapper.xml | 53 +- .../receive/ReceiveStockinFinishMapper.xml | 75 +- .../mapper/receive/ReceiveStockinMapper.xml | 39 +- .../requestInterface/RequestLogMapper.xml | 43 +- .../mapper/search/ViewInJobFlowMapper.xml | 86 +- .../mapper/search/ViewOutJobFlowMapper.xml | 84 +- .../mapper/search/ViewStockDetailMapper.xml | 70 +- .../mapper/search/ViewStockSecureMapper.xml | 16 +- .../mapper/search/ViewStockWarningMapper.xml | 14 +- .../search/ViewStockinHistoryMapper.xml | 78 +- .../search/ViewStockoutHistoryMapper.xml | 58 +- .../stock/BasStockFreezeRecordMapper.xml | 33 +- .../stock/BasStockMaintainRecordMapper.xml | 33 +- .../resources/mapper/stock/BasStockMapper.xml | 709 +++- ruoyi-ui/package.json | 1 + ruoyi-ui/src/views/bas/traycode/index.vue | 111 +- 172 files changed, 13896 insertions(+), 1774 deletions(-) create mode 100644 AGENTS.md create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/Dzp/DzpSend.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/Dzp/LEDSender2010.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/Dzp/Lzss.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/Dzp/MyUdpSocket.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/Dzp/ProtocolDemo.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/Dzp/domain/basLed.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/Dzp/mapper/BasLedMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/controller/BatchNoGenerator.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/domain/CallBackErp.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/domain/CallBackErpItems.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/domain/LocationDetail.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/moveMsg/controller/MoveMsgController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/moveMsg/domain/MoveMsg.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/moveMsg/mapper/MoveMsgMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/moveMsg/service/IMoveMsgService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/moveMsg/service/impl/MoveMsgServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/bas/agvPoint/controller/AgvPointController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/bas/agvPoint/domain/AgvPoint.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/bas/agvPoint/domain/AgvTask.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/bas/agvPoint/mapper/AgvPointMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/bas/agvPoint/service/IAgvPointService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/bas/agvPoint/service/impl/AgvPointServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/domain/PkDetail.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/outStockoutBack/controller/OutStockoutBackController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/outStockoutBack/domain/OutStockoutBack.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/outStockoutBack/mapper/OutStockoutBackMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/outStockoutBack/service/IOutStockoutBackService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/outStockoutBack/service/impl/OutStockoutBackServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/outStockoutDetailBack/controller/OutStockoutDetailBackController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/outStockoutDetailBack/domain/OutStockoutDetailBack.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/outStockoutDetailBack/mapper/OutStockoutDetailBackMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/outStockoutDetailBack/service/IOutStockoutDetailBackService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/outStockoutDetailBack/service/impl/OutStockoutDetailBackServiceImpl.java create mode 100644 ruoyi-admin/src/main/resources/mapper/api/MoveMsgMapper.xml create mode 100644 ruoyi-admin/src/main/resources/mapper/bas/AgvPointMapper.xml create mode 100644 ruoyi-admin/src/main/resources/mapper/bas/BasLedMapper.xml create mode 100644 ruoyi-admin/src/main/resources/mapper/out/OutStockoutBackMapper.xml create mode 100644 ruoyi-admin/src/main/resources/mapper/out/OutStockoutDetailBackMapper.xml diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..e06f366 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,479 @@ +# FT546MWS 项目说明 + +## 项目概述 + +FT546MWS 是一个基于 **若依(RuoYi)** 框架定制的制造执行系统(MES)和仓库管理系统(WMS),采用前后端分离架构。项目基于若依 v3.9.0 进行二次开发,集成了工业物联网(IIoT)功能和 AI 能力。 + +### 核心技术栈 + +#### 后端技术 +- **框架**: Spring Boot 3.5.4 +- **Java 版本**: Java 17 +- **数据库**: SQL Server 2019 (主库), MariaDB (从库, 可选) +- **ORM**: MyBatis 3.0.4 + MyBatis-Plus 3.5.14 +- **连接池**: Druid 1.2.23 +- **缓存**: Redis +- **权限认证**: JWT + Spring Security +- **API 文档**: SpringDoc OpenAPI (Swagger) +- **定时任务**: Quartz +- **代码生成**: Velocity 模板引擎 +- **工业通信**: HslCommunication 3.7.0 (支持 PLC、Modbus 等工业协议) +- **AI 集成**: Spring AI 1.0.1 (OpenAI 兼容接口, 向量数据库) +- **MCP 协议**: Spring AI MCP Client +- **工具库**: Hutool 5.8.27, FastJSON2 2.0.57, POI 4.1.2 + +#### 前端技术 +- **框架**: Vue 2.6.12 +- **UI 组件库**: Element UI 2.15.14 +- **状态管理**: Vuex 3.6.0 +- **路由**: Vue Router 3.4.9 +- **图表**: ECharts 5.4.0 +- **国际化**: Vue I18n 7.3.2 +- **构建工具**: Vue CLI 4.4.6 +- **其他**: Axios, Quill (富文本编辑器), VueCropper (图片裁剪) + +### 项目架构 + +这是一个典型的前后端分离的 Maven 多模块项目,包含以下模块: + +``` +FT546MWS/ +├── ruoyi-admin/ # Web 服务入口模块(启动类、控制器) +├── ruoyi-framework/ # 框架核心模块(安全配置、拦截器、工具类) +├── ruoyi-system/ # 系统管理模块(用户、角色、菜单、部门等) +├── ruoyi-common/ # 通用工具模块(工具类、常量、注解) +├── ruoyi-generator/ # 代码生成器模块 +├── ruoyi-quartz/ # 定时任务模块 +├── ruoyi-ui/ # 前端 Vue 项目 +├── sql/ # 数据库脚本 +├── bin/ # 批处理脚本(构建、运行、清理) +└── pom.xml # Maven 父 POM 配置 +``` + +### 业务模块 + +前端业务模块(位于 `ruoyi-ui/src/views/`): +- **system**: 系统管理(用户、角色、菜单、部门、岗位、字典、参数、通知) +- **monitor**: 系统监控(在线用户、操作日志、登录日志、服务监控、缓存监控、定时任务) +- **tool**: 系统工具(表单构建、代码生成、系统接口) +- **bas**: 基础数据管理 +- **in**: 入库管理 +- **out**: 出库管理 +- **stock**: 库存管理 +- **check**: 盘点管理 +- **job**: 作业管理 +- **kpi**: 绩效管理 +- **ai**: AI 功能集成 +- **search**: 搜索功能 +- **requestInterface**: 接口请求管理 +- **dashboard**: 仪表盘/数据看板 + +## 环境配置 + +### 数据库配置 + +#### 主数据库(SQL Server) +- **地址**: 172.16.2.170:1433 +- **数据库名**: FT546-wms +- **用户名**: sa +- **密码**: Flrd0914. +- **驱动**: com.microsoft.sqlserver.jdbc.SQLServerDriver + +#### 从数据库(MariaDB)- 已禁用 +- **地址**: 172.16.2.170:3307 +- **数据库名**: mydb +- **用户名**: root +- **密码**: Flrd0914. + +### Redis 配置 +- **地址**: 172.16.2.170:6379 +- **数据库索引**: 0 +- **密码**: 123456 +- **超时**: 10s + +### AI 配置 +- **提供商**: SiliconFlow (OpenAI 兼容) +- **Base URL**: https://api.siliconflow.cn +- **对话模型**: deepseek-ai/DeepSeek-V3.1 +- **嵌入模型**: Qwen/Qwen3-Embedding-8B (1024 维度) +- **向量数据库**: MariaDB (已配置但未完全启用) + +### Druid 监控 +- **访问地址**: http://localhost:8080/druid/ +- **用户名**: ruoyi +- **密码**: 123456 + +### API 文档 +- **Swagger UI**: http://localhost:8080/swagger-ui.html +- **OpenAPI JSON**: http://localhost:8080/v3/api-docs + +## 构建和运行 + +### 后端构建和运行 + +#### 方式一:使用 Maven 命令 + +```bash +# 进入项目根目录 +cd D:\workSpace\PROJECT_SPACE\FT546\FT546MWS + +# 清理并编译 +mvn clean compile + +# 打包(跳过测试) +mvn clean package -DskipTests + +# 运行 +java -jar ruoyi-admin/target/ruoyi-admin.jar + +# 或使用 JVM 参数运行 +java -Dname=ruoyi-admin.jar -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -jar ruoyi-admin/target/ruoyi-admin.jar +``` + +#### 方式二:使用批处理脚本 + +```bash +# 进入 bin 目录 +cd bin + +# 启动服务 +ry.bat +# 选择 [1] 启动 ruoyi-admin.jar + +# 停止服务 +ry.bat +# 选择 [2] 关闭 ruoyi-admin.jar + +# 重启服务 +ry.bat +# 选择 [3] 重启 ruoyi-admin.jar + +# 查看状态 +ry.bat +# 选择 [4] 查看状态 +``` + +#### 方式三:使用 IDE +1. 使用 IntelliJ IDEA 或 Eclipse 导入项目(Maven 项目) +2. 找到启动类:`com.ruoyi.RuoYiApplication`(位于 ruoyi-admin 模块) +3. 运行启动类 + +### 前端构建和运行 + +#### 开发环境 + +```bash +# 进入前端目录 +cd ruoyi-ui + +# 安装依赖(使用 npm 镜像加速) +npm install --registry=https://registry.npmmirror.com + +# 或直接安装 +npm install + +# 启动开发服务器 +npm run dev +``` + +前端服务启动后,浏览器访问:http://localhost:80 + +默认账号: +- 用户名: admin +- 密码: admin123 + +#### 生产环境构建 + +```bash +# 构建测试环境 +npm run build:stage + +# 构建生产环境 +npm run build:prod +``` + +构建产物将输出到 `ruoyi-ui/dist` 目录。 + +#### 使用批处理脚本 + +```bash +# 进入前端 bin 目录 +cd ruoyi-ui\bin + +# 运行前端开发服务器 +run-web.bat + +# 打包前端 +package.bat + +# 清理构建产物 +clean.bat +``` + +## 开发规范 + +### 后端开发规范 + +#### 包结构规范 +``` +com.ruoyi +├── common/ # 通用模块 +│ ├── annotation/ # 自定义注解 +│ ├── constant/ # 常量定义 +│ ├── core/ # 核心配置 +│ ├── enums/ # 枚举类 +│ ├── exception/ # 异常处理 +│ └── utils/ # 工具类 +├── framework/ # 框架核心 +│ ├── aspectj/ # 切面 +│ ├── config/ # 配置类 +│ ├── interceptor/ # 拦截器 +│ ├── security/ # 安全相关 +│ └── web/ # Web 配置 +├── system/ # 系统管理 +│ ├── controller/ # 控制器 +│ ├── domain/ # 实体类 +│ ├── mapper/ # 数据访问层 +│ └── service/ # 业务逻辑层 +│ └── impl/ # 业务实现 +└── web/ # Web 控制器(其他业务模块) +``` + +#### 代码生成规范 +项目使用代码生成器(`ruoyi-generator` 模块)快速生成 CRUD 代码: + +1. 在数据库中创建表 +2. 登录系统 → 系统工具 → 代码生成 +3. 导入表并配置生成信息 +4. 生成代码并下载 +5. 将生成的代码复制到对应模块 + +生成的代码包括: +- Java 实体类(domain) +- Mapper 接口和 XML(mapper) +- Service 接口和实现(service/impl) +- Controller 控制器(controller) +- Vue 页面(前端 views) +- API 接口定义(前端 api) + +#### 控制器规范 +- 使用 `@RestController` 注解 +- 统一返回格式:`AjaxResult`(包装 success、error、data) +- 权限控制:使用 `@PreAuthorize("@ss.hasPermi('system:user:list')")` +- 操作日志:使用 `@Log(title = "用户管理", businessType = BusinessType.INSERT)` +- 分页查询:使用 `startPage()` 方法(继承 BaseController) + +#### Service 规范 +- 接口定义在 `service` 包 +- 实现类在 `service/impl` 包 +- 使用 `@Service` 注解 +- 业务逻辑方法命名:`selectXxxList`(查询)、`insertXxx`(新增)、`updateXxx`(修改)、`deleteXxxByIds`(删除) +- 缓存注解:`@Cacheable`(查询)、`@CacheEvict`(更新/删除) + +#### Mapper 规范 +- 使用 MyBatis-Plus 注解或 XML 配置 +- XML 文件位于 `resources/mapper/` 目录 +- 继承 `BaseMapper` 接口 +- 复杂查询使用 XML 文件编写 SQL + +### 前端开发规范 + +#### 目录结构规范 +``` +src/ +├── api/ # API 接口定义 +│ ├── login.js # 登录相关 +│ ├── system/ # 系统管理 +│ ├── monitor/ # 监控模块 +│ └── ... # 其他业务模块 +├── assets/ # 静态资源 +│ ├── images/ # 图片 +│ ├── icons/ # 图标 +│ ├── logo/ # Logo +│ └── styles/ # 样式文件 +├── components/ # 公共组件 +│ ├── Pagination/ # 分页组件 +│ ├── RightToolbar/ # 工具栏 +│ ├── Editor/ # 富文本编辑器 +│ └── ... # 其他组件 +├── directive/ # 自定义指令 +├── layout/ # 布局组件 +├── plugins/ # 插件 +├── router/ # 路由配置 +├── store/ # Vuex 状态管理 +├── utils/ # 工具函数 +├── views/ # 页面组件 +│ ├── system/ # 系统管理页面 +│ ├── monitor/ # 监控页面 +│ └── ... # 其他业务页面 +├── App.vue # 根组件 +├── main.js # 入口文件 +├── permission.js # 权限控制 +└── settings.js # 全局配置 +``` + +#### 组件命名规范 +- 组件名使用 PascalCase(大驼峰) +- 文件名与组件名保持一致 +- 例如:`UserList.vue` + +#### API 调用规范 +- API 接口定义在 `src/api/` 目录 +- 使用 Axios 发送请求(已封装) +- 请求路径配置在 `.env.development` 等环境变量文件中 +- 统一使用 `request.js` 封装的请求方法 + +#### 路由规范 +- 路由配置在 `src/router/index.js` +- 使用 Vue Router 的路由懒加载 +- 需要权限的路由在路由配置中添加 `meta` 字段 +- 例如:`meta: { title: '用户管理', icon: 'user', noCache: true }` + +#### 样式规范 +- 使用 SCSS 预处理器 +- 全局样式放在 `src/assets/styles/` 目录 +- 组件样式使用 `