# andon **Repository Path**: litcas/andon ## Basic Information - **Project Name**: andon - **Description**: andon能实时捕捉生产中的设备故障、质量异常、物料短缺等问题,通过灯光、显示屏等直观形式预警,快速触发相关人员响应处理,最终实现减少生产停机、提升生产效率与产品质量的目标。 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-04-07 - **Last Updated**: 2026-04-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Andon异常管理系统项目结构 ## 项目概述 本文档详细描述了Andon异常管理系统的项目结构,包括后端服务、前端应用和框架组件的组织方式。 ## 目录结构 ``` ├── .idea/ # IDE配置文件 ├── README.md # 项目说明文档 ├── andon-emt-server/ # 后端服务模块 ├── andon-front/ # 前端应用模块 ├── document/ # 项目文档 └── framework2.0/ # 基础框架组件 ``` ## 后端服务 (andon-emt-server) 后端服务基于Java开发,采用Maven多模块架构。 ``` ├── andon-gateway/ # API网关服务 ├── andon-xxl-job/ # XXL-Job分布式任务调度 │ ├── andon-xxl-job-admin/ # 调度中心 │ ├── andon-xxl-job-core/ # 核心组件 │ └── doc/ # 文档 ├── andon-xxl-job-api/ # 任务调度API接口 ├── dev-ops-center/ # 运维中心服务 ├── doc/ # 数据库脚本 │ ├── andon-init.sql # Andon系统初始化脚本 │ ├── andon-update.sql # Andon系统更新脚本 │ ├── devOpsCenter.sql # 运维中心数据库脚本 │ ├── docker-cmd.script # Docker启动脚本 │ ├── init.sql # 初始化脚本 │ ├── nacos.sql # Nacos配置中心脚本 │ └── xxl_job.sql # XXL-Job数据库脚本 ├── emt/ # 异常管理服务(核心业务模块) ├── log/ # 日志目录 │ ├── info/ # 信息日志 │ └── log_info.log # 日志文件 ├── nacos/ # Nacos配置中心 │ ├── LICENSE │ ├── NOTICE │ └── conf/ # 配置文件 ├── pom.xml # Maven项目配置 └── public/ # 公共资源 └── static/ # 静态资源 ``` ## 前端应用 (andon-front) 前端应用采用Vue框架开发,包含管理后台和移动端应用。 ``` ├── admin-andon/ # 管理后台应用 │ ├── .browserslistrc # 浏览器兼容性配置 │ ├── .editorconfig # 编辑器配置 │ ├── .eslintignore # ESLint忽略配置 │ ├── .eslintrc.js # ESLint配置 │ ├── .postcssrc.js # PostCSS配置 │ ├── .prettierrc # Prettier配置 │ ├── README.md # 项目说明 │ ├── babel.config.js # Babel配置 │ ├── dist/ # 构建输出目录 │ ├── package-lock.json # NPM依赖锁定 │ ├── package.json # NPM项目配置 │ ├── public/ # 公共资源 │ ├── src/ # 源代码目录 │ └── vue.config.js # Vue配置 ├── client-andon/ # 移动端应用 │ ├── .hbuilderx/ # HBuilderX配置 │ ├── App.vue # Vue应用入口 │ ├── README.md # 项目说明 │ ├── androidPrivacy.json # Android隐私配置 │ ├── api/ # API接口 │ ├── components/ # Vue组件 │ ├── index.html # HTML入口 │ ├── js_sdk/ # JavaScript SDK │ ├── main.js # JavaScript入口 │ ├── manifest.json # 应用配置 │ ├── package-lock.json # NPM依赖锁定 │ ├── package.json # NPM项目配置 │ ├── pages/ # 页面组件 │ ├── pages.json # 页面配置 │ ├── static/ # 静态资源 │ ├── store/ # Vuex状态管理 │ ├── uni.promisify.adaptor.js # Promise适配 │ ├── uni.scss # SCSS全局样式 │ ├── uniCloud-aliyun/ # 阿里云uniCloud │ ├── uni_modules/ # uni-app模块 │ ├── util/ # 工具函数 │ └── wxcomponents/ # 微信小程序组件 └── devOps-andon/ # 运维中心前端 ├── .browserslistrc # 浏览器兼容性配置 ├── .editorconfig # 编辑器配置 ├── .eslintignore # ESLint忽略配置 ├── .eslintrc.js # ESLint配置 ├── .postcssrc.js # PostCSS配置 ├── .prettierrc # Prettier配置 ├── README.md # 项目说明 ├── babel.config.js # Babel配置 ├── package-lock.json # NPM依赖锁定 ├── package.json # NPM项目配置 ├── public/ # 公共资源 ├── src/ # 源代码目录 └── vue.config.js # Vue配置 ``` ## 项目文档 (document) ``` ├── 亨通异常管理系统成果物-2023.12.14/ # 项目成果物 │ ├── README.md # 成果物说明 │ ├── 异常系统离线安装.docx # 离线安装文档 │ ├── 盟固利Andon系统-蓝图设计.docx # 系统蓝图设计 │ ├── 盟固利异常管理用户使用说明书.docx # 用户使用说明书 │ ├── 盟固利异常管理系统-接口文档.md # 接口文档 │ ├── 盟固利异常管理系统-移动端-演示视频.mp4 # 移动端演示视频 │ ├── 盟固利异常管理系统-管理后台-演示视频.mp4 # 管理后台演示视频 │ ├── 盟固利异常管理系统用户使用手册.docx # 系统用户手册 │ └── 盟固利异常管理系统移动端用户手册.docx # 移动端用户手册 └── 历史版本/ # 历史版本备份 ├── admin-andon_240111.zip # 管理后台备份 ├── client-andon_240111.zip # 移动端备份 ├── devOps-andon_240111.zip # 运维中心备份 └── framework2.0_java_240109.rar # 框架备份 ``` ## 基础框架 (framework2.0) 框架提供了系统开发的基础组件和工具。 ``` ├── admin/ # 管理后台框架 ├── alipay/ # 支付宝支付集成 ├── alipay-all/ # 支付宝全功能集成 ├── cloud/ # 云服务集成 ├── common/ # 通用工具类 ├── core/ # 核心框架 ├── email/ # 邮件服务 ├── license/ # 许可证管理 │ ├── README.md # 许可证说明 │ ├── img/ # 图片资源 │ ├── license-annotation/ # 许可证注解 │ ├── license-core/ # 许可证核心 │ ├── license-create/ # 许可证创建 │ ├── license-verify/ # 许可证验证 │ └── pom.xml # Maven配置 ├── oss/ # 对象存储服务 ├── pom.xml # Maven项目配置 ├── sms/ # 短信服务 ├── wechat-miniapp/ # 微信小程序集成 ├── wechat-mp/ # 微信公众号集成 ├── wechat-open/ # 微信开放平台集成 └── wechat-pay/ # 微信支付集成 ``` ## 系统功能架构 ### 核心业务功能 #### 1. 异常提报与处理流程 - **异常提报**:支持多渠道提报异常,包括移动端、Web端 - **任务响应**:接收异常任务,可进行响应、转派、驳回等操作 - **异常处理**:处理人员进行异常处理,支持上传附件、填写处理措施 - **验收确认**:提报人或指定人员对处理结果进行验收 - **异常挂起/延期**:支持任务挂起和延期申请 #### 2. 消息通知机制 - 基于模板的消息推送服务,支持多场景消息自动发送 - 异常提报、响应、处理、验收等各环节的消息通知 - 支持超时提醒和多级预警 #### 3. 知识库管理 - 异常处理知识库,记录常见问题及解决方案 - 按异常分类、紧急程度、严重程度进行知识管理 - 支持附件上传和文档下载 #### 4. 统计分析功能 - 异常分类统计和占比分析 - 处理时效性统计和趋势分析 - 异常项发生频率TOP 10统计 - 实时看板展示关键指标 #### 5. 系统管理功能 - 用户管理、角色权限管理 - 部门组织架构管理 - 异常分类和异常项管理 - 工作单元(地点)管理 ### 系统架构详解 #### 后端架构 - 采用微服务架构,通过Nacos进行服务注册与发现 - API网关层(andon-gateway)负责请求路由、权限验证和负载均衡 - 核心业务层(emt)实现异常管理的主要业务逻辑 - 任务调度层(andon-xxl-job)处理定时任务和异步操作 - 运维中心(dev-ops-center)提供系统监控和管理功能 - 模块化设计,各业务功能高度解耦,便于扩展 #### 前端架构 - 管理后台(admin-andon):基于Vue.js + Element UI + AVue构建的Web应用 - 移动端(client-andon):基于uni-app框架开发,支持Android、iOS、小程序多端部署 - 运维中心前端(devOps-andon):提供运维监控和管理界面 - 组件化设计,提高代码复用性和开发效率 #### 数据管理 - 采用关系型数据库存储业务数据 - 提供完整的数据库初始化和更新脚本 - 支持数据迁移和版本管理 - 集成缓存机制提升系统性能 ## 技术栈与核心代码示例 ### 后端技术栈 - Java Spring Boot - Spring Cloud (服务注册发现、Feign) - MyBatis Plus - Nacos配置中心 - XXL-Job分布式任务调度 - Maven ### 后端核心代码示例 #### 异常任务服务实现 (ExceptionTaskServiceImpl) ```java @Service @RequiredArgsConstructor @Slf4j public class ExceptionTaskServiceImpl extends BaseServiceImpl implements ExceptionTaskService { private final ExceptionTaskMapper exceptionTaskMapper; private final ExceptionItemService exceptionItemService; private final ExceptionProcessService exceptionProcessService; private final MessagePushService messagePushService; // 其他依赖注入 @Override @DSTransactional public Long create(ExceptionTaskCreateRequest request) { // 创建异常任务的核心逻辑 // 1. 验证异常项和流程配置 // 2. 初始化任务状态和节点信息 // 3. 保存任务数据 // 4. 发送通知消息 // 5. 返回任务ID } // 其他任务处理方法:响应、处理、验收等 } ``` #### 消息推送服务 (MessagePushServiceImpl) ```java @Service @RequiredArgsConstructor @Slf4j public class MessagePushServiceImpl implements MessagePushService { private final ITemplateService templateService; private final MessageService messageService; private final MessageSendRecordService messageSendRecordService; @Override public void submitSend(FtUser user, Long taskId, String itemTitle, List receiveUserId, Long businessId) { // 异常提报消息推送实现 // 1. 构建消息模板参数 // 2. 根据接收人ID列表发送消息 // 3. 记录消息发送日志 } @Override public void responseRejectSend(FtUser user, Long taskId, String itemTitle, Long receiveUserId, Long businessId) { // 异常响应驳回消息推送实现 } // 其他场景的消息推送方法 } ``` ### 前端技术栈 - Vue.js 2.6.x - Element UI - AVue - uni-app (移动端) - Axios - Vuex ### 前端核心代码示例 #### 管理后台异常任务列表组件 ```javascript ``` #### 移动端异常提报页面 ```javascript // pages/index/sendDialog.vue export default { data() { return { formData: { exceptionCategoryId: '', exceptionItemId: '', description: '', images: [], // 其他提报数据 }, // 其他数据 } }, methods: { // 选择异常分类 selectCategory() { // 选择分类逻辑 }, // 选择异常项 selectExceptionItem() { // 选择异常项逻辑 }, // 上传图片 uploadImage() { // 图片上传逻辑 }, // 提交异常提报 submit() { // 表单验证 // 调用API提交数据 // 处理响应结果 } } } ``` ### 移动端功能模块 移动端应用基于uni-app框架开发,主要功能包括: 1. **异常提报**:快速提报各类异常,支持拍照上传 2. **任务处理**:响应、处理、转派、驳回等操作 3. **消息通知**:接收异常任务和状态变更通知 4. **我的任务**:查看待处理和已处理的任务 5. **数据看板**:查看异常统计信息 移动端页面结构: - 首页/异常提报入口 - 任务列表/详情页 - 处理操作页面(响应、处理、验收等) - 消息中心 - 个人中心 ## 部署说明 ### 后端服务部署 #### 环境要求 - JDK 1.8+ - MySQL 5.7+ - Nacos 2.0+ - Redis 5.0+ - Maven 3.6+ #### 部署步骤 1. **编译打包** ```bash # 在项目根目录执行 cd d:\gitlab\andon-dep\andon-emt-server mvn clean package -DskipTests ``` 2. **数据库初始化** - 执行数据库脚本:`d:\gitlab\andon-dep\doc\sql\init.sql` - 导入基础配置数据:`d:\gitlab\andon-dep\doc\sql\data.sql` 3. **Nacos配置** - 确保Nacos服务正常运行 - 导入配置文件:`d:\gitlab\andon-dep\doc\config\nacos-config.json` - 修改配置中的数据库连接信息和其他环境参数 4. **服务启动顺序** - 先启动基础服务:andon-gateway、framework-admin - 再启动核心业务服务:emt - 最后启动其他服务:andon-xxl-job、dev-ops-center 5. **启动脚本示例** ```bash # 启动服务命令示例 java -jar -Dspring.profiles.active=prod -Xms512m -Xmx1024m andon-gateway.jar ``` ### 前端应用部署 #### 管理后台部署 1. **环境要求** - Node.js 14.0+ - Nginx 2. **构建与部署** ```bash # 进入项目目录 cd d:\gitlab\andon-dep\andon-front\admin-andon # 安装依赖 npm install # 构建生产版本 npm run build:prod # 部署到Nginx cp -r dist/* /path/to/nginx/html/admin-andon/ ``` 3. **Nginx配置示例** ```nginx server { listen 80; server_name admin-andon.example.com; location / { root /path/to/nginx/html/admin-andon; index index.html index.htm; try_files $uri $uri/ /index.html; } # API接口代理 location /api/ { proxy_pass http://localhost:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` #### 移动端部署 1. **构建与打包** ```bash # 进入项目目录 cd d:\gitlab\andon-dep\andon-front\client-andon # 安装依赖 npm install # 构建Android版本 npm run build:android # 构建iOS版本 npm run build:ios ``` 2. **平台发布** - Android:生成APK文件,可上传至应用商店或企业内部应用分发平台 - iOS:需要通过App Store审核发布 - 小程序:按照各平台要求进行上传和审核 ### 运维中心部署 ```bash # 进入项目目录 cd d:\gitlab\andon-dep\andon-front\devOps-andon # 安装依赖 npm install # 构建生产版本 npm run build:prod # 部署到Nginx cp -r dist/* /path/to/nginx/html/devOps-andon/ ``` ### 配置说明 #### 关键配置项 - **服务配置**:在Nacos中配置各服务的相关参数,包括数据库连接、缓存设置等 - **日志配置**:可在`application.yml`中配置日志级别和存储路径 - **安全配置**:配置访问权限、认证方式和接口安全策略 - **告警配置**:配置消息通知方式和告警规则 #### 环境变量说明 - `spring.profiles.active`:指定运行环境(dev、test、prod) - `server.port`:服务端口号 - `spring.cloud.nacos.discovery.server-addr`:Nacos服务地址 - `spring.datasource.url`:数据库连接URL ### 监控与维护 #### 日志管理 - 各服务日志存放在服务所在目录的logs文件夹中 - 建议配置ELK或其他日志收集分析工具进行集中管理 #### 性能监控 - 使用Prometheus + Grafana监控服务性能 - 配置JVM监控和应用性能指标监控 #### 常见问题处理 1. **服务启动失败**:检查端口是否被占用、数据库连接是否正常、Nacos服务是否可用 2. **前端页面加载异常**:检查Nginx配置、API代理设置和网络连接 3. **任务处理异常**:检查工作流配置、权限设置和异常处理流程是否正确 ## 开发指南 ### 环境准备 #### 后端环境 - JDK 1.8+ - Maven 3.6+ - MySQL 5.7+ - Redis 5.0+ - Nacos 2.0+ - XXL-Job 2.3.0+ #### 前端环境 - Node.js 14.0+ - npm 6.0+ 或 yarn - IDE推荐:VSCode + Vetur插件 ### 开发环境搭建 #### 后端开发环境 1. **克隆代码** ```bash git clone [仓库地址] cd d:\gitlab\andon-dep ``` 2. **配置数据库** - 创建数据库:`andon_emt` - 导入初始化脚本:`d:\gitlab\andon-dep\doc\sql\init.sql` - 导入开发数据:`d:\gitlab\andon-dep\doc\sql\dev-data.sql` 3. **启动Nacos** ```bash # 启动Nacos服务器 cd nacos/bin startup.cmd -m standalone ``` 4. **导入Nacos配置** - 访问Nacos控制台:`http://localhost:8848/nacos` - 导入配置:`d:\gitlab\andon-dep\doc\config\nacos-dev-config.json` - 修改数据库连接配置为本地开发环境 5. **启动服务** - 在IDE中启动`EmtApplication`类(核心业务服务) - 启动`GatewayApplication`类(API网关) #### 前端开发环境 1. **管理后台开发** ```bash cd d:\gitlab\andon-dep\andon-front\admin-andon npm install npm run dev # 访问 http://localhost:8081 ``` 2. **移动端开发** ```bash cd d:\gitlab\andon-dep\andon-front\client-andon npm install npm run dev:h5 # 访问 http://localhost:8082 ``` 3. **运维中心开发** ```bash cd d:\gitlab\andon-dep\andon-front\devOps-andon npm install npm run dev # 访问 http://localhost:8083 ``` ### 代码规范 #### Java代码规范 1. **命名规范** - 类名:采用大驼峰命名法(如`ExceptionTaskService`) - 方法名:采用小驼峰命名法(如`createTask`) - 变量名:采用小驼峰命名法(如`userId`) - 常量名:全大写,单词间用下划线分隔(如`MAX_RETRY_COUNT`) 2. **代码风格** - 使用4个空格进行缩进 - 每行代码不超过120个字符 - 方法长度不超过80行 - 使用Lambda表达式简化代码 3. **注释规范** - 类、方法必须有JavaDoc注释 - 关键业务逻辑必须有注释说明 - 使用`@author`标注作者 - 使用`@since`标注版本信息 #### 前端代码规范 1. **Vue组件命名** - 组件文件使用大驼峰命名法(如`ExceptionList.vue`) - 组件名称与文件名称保持一致 2. **代码风格** - 使用2个空格进行缩进 - 变量和方法命名使用小驼峰 - 使用ES6+语法 - 避免在模板中写复杂逻辑 3. **Vuex使用规范** - 模块化管理状态 - 遵循单一职责原则 - 使用常量定义mutation类型 ### 数据库开发规范 1. 表名使用`_`分隔,小写字母(如`exception_task`) 2. 字段名使用`_`分隔,小写字母(如`task_status`) 3. 必须定义主键,推荐使用自增ID 4. 关键字段必须添加注释 5. 避免使用存储过程和触发器 ### API接口规范 #### 接口命名规范 - RESTful风格,使用HTTP方法表示操作类型 - 接口路径使用小写字母,单词间用`-`分隔 - 资源名称使用复数形式 #### 接口返回格式 ```json { "code": 200, "message": "success", "data": {} } ``` #### 常见状态码 - 200:操作成功 - 400:参数错误 - 401:未认证 - 403:无权限 - 404:资源不存在 - 500:服务器内部错误 ## API接口说明 ### 异常任务管理接口 #### 1. 创建异常任务 - **URL**: `/api/v1/exception-tasks` - **Method**: `POST` - **请求体**: ```json { "exceptionCategoryId": 1, "exceptionItemId": 101, "description": "设备故障", "workspaceLocationId": 1001, "images": ["base64编码的图片1", "base64编码的图片2"], "priority": 1, "severity": 2 } ``` - **响应**: ```json { "code": 200, "message": "success", "data": { "taskId": 10001, "taskNo": "ANDON202308010001" } } ``` #### 2. 异常任务列表 - **URL**: `/api/v1/exception-tasks` - **Method**: `GET` - **参数**: - `page`: 页码 - `size`: 每页大小 - `status`: 任务状态(可选) - `exceptionCategoryId`: 异常分类ID(可选) - **响应**: ```json { "code": 200, "message": "success", "data": { "list": [ { "taskId": 10001, "taskNo": "ANDON202308010001", "exceptionItemName": "设备故障", "taskStatus": 1, "taskStatusName": "待响应", "submitTime": "2023-08-01 10:30:00", "remainder": "23:59:59" } ], "total": 100, "page": 1, "size": 10 } } ``` #### 3. 任务响应 - **URL**: `/api/v1/exception-tasks/{taskId}/response` - **Method**: `PUT` - **请求体**: ```json { "responseTime": "2023-08-01 10:35:00", "responseDesc": "已收到,正在处理" } ``` - **响应**: ```json { "code": 200, "message": "success", "data": null } ``` #### 4. 任务处理 - **URL**: `/api/v1/exception-tasks/{taskId}/process` - **Method**: `PUT` - **请求体**: ```json { "processTime": "2023-08-01 11:00:00", "processMeasures": "已更换部件", "processResult": "已修复", "images": ["base64编码的图片"] } ``` - **响应**: ```json { "code": 200, "message": "success", "data": null } ``` #### 5. 任务验收 - **URL**: `/api/v1/exception-tasks/{taskId}/acceptance` - **Method**: `PUT` - **请求体**: ```json { "acceptanceTime": "2023-08-01 11:10:00", "acceptanceResult": 1, // 1: 验收通过, 2: 验收不通过 "acceptanceRemark": "处理很好" } ``` - **响应**: ```json { "code": 200, "message": "success", "data": null } ``` ### 系统管理接口 #### 1. 用户管理 - **URL**: `/api/v1/users` - **Method**: `GET/POST/PUT/DELETE` - **功能**: 提供用户的增删改查功能 #### 2. 部门管理 - **URL**: `/api/v1/departments` - **Method**: `GET/POST/PUT/DELETE` - **功能**: 提供部门的增删改查功能 #### 3. 异常项管理 - **URL**: `/api/v1/exception-items` - **Method**: `GET/POST/PUT/DELETE` - **功能**: 提供异常项的增删改查功能 ## 项目贡献 ### 贡献流程 1. Fork代码仓库 2. 创建功能分支 3. 提交代码修改 4. 编写单元测试 5. 提交Pull Request ### 提交流程 1. 确保代码通过编译和测试 2. 提交前执行代码格式化 3. 提交信息格式:`[模块名] 功能说明` 4. 大型功能必须编写详细的设计文档 ## 文档结构 - `d:\gitlab\andon-dep\document\` - 项目文档 - `亨通异常管理系统成果物-2023.12.14` - 离线安装和使用说明 - `亨通异常管理系统开发文档` - 开发相关文档 - `历史版本` - 历史版本备份 系统提供了完整的Swagger API文档,开发时可通过`http://localhost:8080/swagger-ui.html`访问。 ## 维护说明 系统日志位于`andon-emt-server/log`目录,定期清理以避免占用过多磁盘空间。 --- 本文档基于项目当前状态自动生成,如有更新请及时维护。