# eam-system **Repository Path**: robot1937/eam-system ## Basic Information - **Project Name**: eam-system - **Description**: 面向大型工厂(资产 >10,000)的 EAM 系统,覆盖资产全生命周期:采购入库→分配使用→点检巡检→保养维修→报废处置。对标 IBM Maximo / SAP EAM - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-15 - **Last Updated**: 2026-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EAM 系统 🏭 > 大型工厂级企业资产管理系统(Enterprise Asset Management) [![Vue 3](https://img.shields.io/badge/Vue-3.4-4FC08D?logo=vue.js)]() [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.3-6DB33F?logo=springboot)]() [![Java](https://img.shields.io/badge/Java-17-007396?logo=openjdk)]() [![MySQL](https://img.shields.io/badge/MySQL-8.0-4479A1?logo=mysql)]() [![License](https://img.shields.io/badge/license-MIT-blue)]() ## 📋 项目简介 面向**大型工厂**(资产数量 >10,000)的企业资产管理系统,覆盖资产**全生命周期**管理:从采购入库 → 分配使用 → 点检巡检 → 保养维修 → 报废处置。对标 IBM Maximo / SAP EAM / IFS Cloud EAM,结合国内迈斯/东经/轻流等设备管理系统功能,全量复刻 12 大核心域 60+ 功能点。 **单租户**部署,PC 后台 + 移动端 PWA 双端,工厂车间扫码即用。 > **当前进度**:P0 核心功能 7/8 ✅ | P1 增强功能 10/10 ✅ | 54 表 / 844 字段 / DB注释100% | 42 个后端 Controller | PC + 移动端 PWA 主流程已落地 | **4 项关键业务差距已补齐 ✅** ## ✨ 核心功能(12 大域) | 域 | 模块 | 关键功能 | |---|---|---| | ① | 📦 资产档案 | 资产台账 / 分类树 / 一物一码 / 位置档案 / 仪表读数 | | ② | 🔧 服务与维修 | 服务请求 / 报修工单 / 派工抢单 / 工时记录 / 工单 BOM | | ③ | 🔍 点检巡检 | 点检模板 / 点检计划 / 移动端执行 / 任务回看 / 异常转工单 | | ④ | 🛡️ 保养维护 | 保养模板 / PM 计划 / 移动端逐项执行 / 任务回看 / 异常闭环 | | ⑤ | 🚨 故障管理 | 故障代码字典 / 故障原因分类 / 维修闭环 / 复发追踪基础 | | ⑥ | 📋 工单中心 | 工单状态机 / 多级审批 / 后端动作权限 / 时间线中文化 / 工单看板 | | ⑦ | 📊 备件库存 | 备件台账 / 仓库库存 / 出入库流水 / 补货配置 / 低库存预警 / 盘点 | | ⑧ | 💰 采购合同 | 采购申请 / 采购订单 / 到货入库 / 供应商评分 / 合同台账 | | ⑨ | 📉 折旧财务 | 折旧计算 / TCO 总拥有成本 / 资产财务视图 | | ⑩ | 📈 KPI 报表 | 首页看板 / KPI 仪表盘 / 报表中心 / 工时统计 / 数据大屏基础 | | ⑪ | 🔐 权限组织 | 登录认证 / 组织树 / 用户角色 / 菜单按钮权限 / 字典 / 操作审计 | | ⑫ | 📡 集成扩展 | PWA 移动端 / 扫码 / Excel 导入导出 / 通知渠道 / 通知规则 / GIS 楼层图 | ### 已落地页面能力 - **PC 后台**:首页仪表盘、资产档案、资产分类、扫码、服务请求、工单中心、审批待办、点检、保养、备件库存、盘点、采购、报表、KPI、折旧、系统管理。 - **移动端 PWA**:移动首页、服务请求列表/新建/详情、工单列表/详情、点检任务列表/详情、保养任务列表/详情、扫码入口。 - **点检/保养闭环**:模板配置、计划生成、任务执行、异常描述与照片、结果提交、任务回看。 - **工单闭环**:服务请求转工单、审批、派工、开始处理、完成、关闭/取消、时间线、后端状态机、动作级权限校验。 - **库存采购闭环**:备件台账、仓库、库存流水、补货规则、补货日志、低库存清单、盘点、采购申请/订单/收货。 - **扩展模块**:工单工时、工单 BOM、调度、校准、仪表读数、GIS 资产位置/楼层图、TCO、通知渠道/通知规则、操作日志。 ### 2026-06-23 关键补齐 - **扫码直达执行页**:资产扫码后,点检/保养支持“单任务直达详情、多任务按资产过滤列表”,报修表单支持资产预填。 - **排班联动**:新增 `派工调度` 页面与菜单;服务请求审核通过后,未指定受理人时可自动匹配默认工程师并自动派工。 - **点检异常跟进**:新增 `异常跟进` 菜单与 `eam_inspection_follow_up` 跟进单,点检异常自动生成 `PRE_REPAIR`、`MAINTAIN_CONFIRM` 两类待办。 - **换下件分支处置**:新增 `返库 / 报废 / 外修 / 厂家返修 / 待处理` 分支化表单,工单详情页按中文状态与处置详情展示旧件去向。 ## 🏗️ 技术栈 ### 前端 (`eam-client/`) | 类别 | 技术 | |---|---| | 框架 | Vue 3.4 + TypeScript | | 构建 | Vite 5 | | UI | **Element Plus** | | 状态 | Pinia 3 | | 路由 | Vue Router 4 | | HTTP | axios | | 图表 | ECharts 5 | | 二维码 | vue-qrcode-reader(扫)+ qrcode.vue(生成)| | 移动端 | PWA(vite-plugin-pwa + workbox)| ### 后端 (`eam-server/`) | 类别 | 技术 | |---|---| | 框架 | Spring Boot 3.3 | | JDK | 17 | | 构建 | Maven | | ORM | MyBatis-Plus 3.5 | | 数据库 | MySQL 8 | | 缓存 | Redis 7 | | 认证 | **Sa-Token** | | Excel | EasyExcel(阿里)| | 二维码 | zxing-core | ### 基础设施 | 类别 | 选型 | |---|---| | 文件存储 | 本地 `storage/` | | 包管理 | npm(前端)/ Maven(后端)| | 工作流 | 简单状态机(MVP),Activiti 留二期 | ## 📂 目录结构 ``` eam-system/ ├── README.md ← 本文件 ├── AGENTS.md ← 项目级 AI 编码规约(继承根 AGENTS.md) ├── docs/ │ ├── PRD.md ← 产品需求(12 域 60+ 功能) │ ├── USER-MANUAL.md ← 用户操作手册 │ ├── SYSTEM-BLUEPRINT.md ← 系统蓝图 │ ├── EAM-GAP-ANALYSIS.md ← 能力差距分析 │ └── eam-init-full.sql ← 数据库初始化脚本 ├── eam-client/ ← Vue 3 前端 │ └── src/ │ ├── api/ ← 按域拆分的 axios 封装 │ ├── views/ ← 12 域页面 │ ├── components/ ← 通用组件(资产卡片/扫码器/工单看板) │ ├── stores/ ← Pinia │ └── router/ └── eam-server/ ← Spring Boot 后端 ├── src/main/java/com/eam/ │ ├── controller/ ← REST 接口(资产/工单/点检/保养/库存/采购等 42 个 Controller) │ ├── statemachine/ ← 工单状态机与动作流转规则 │ ├── security/ ← 登录认证与动作级权限校验 │ ├── scheduler/ ← 点检/保养任务生成调度 │ ├── service/ │ ├── mapper/ ← MyBatis-Plus │ ├── entity/ ← 54 实体 │ ├── dto/ │ ├── config/ ← Sa-Token / Redis / EasyExcel │ ├── common/ ← Result / 工具类 │ ├── exception/ ← BizException + 全局异常处理 │ └── filter/ ├── src/main/resources/ │ ├── application.yml │ ├── application-dev.yml │ └── mapper/ ← MyBatis xml ├── sql/ │ └── eam_init.sql ← 54 张表 + 初始数据 └── pom.xml ``` ## 🚀 快速启动 ### 前置条件 - JDK 17+ - Node.js 20+ - MySQL 8+ - Redis 7+ - Maven 3.8+ ### Step 1 · 数据库初始化 ```bash mysql -uroot -p < docs/eam-init-full.sql # 默认创建库名 eam,初始化 54 张表 + 演示数据 ``` ### Step 1.1 · 增量业务补丁(2026-06-23) ```bash # 点检异常跟进单 mysql -uroot -p eam < eam-server/sql/p1_2_inspection_follow_up.sql # 换下件跟踪单基础表 + 分支化处置字段 mysql -uroot -p eam < eam-server/sql/p1_4_replaced_part_tracking.sql mysql -uroot -p eam < eam-server/sql/p1_4_1_replaced_part_disposal_branches.sql ``` > 如果本地库早于 2026-06-23 初始化,至少要补这 3 个 SQL,才能完整使用“异常跟进”和“换下件分支处置”。 ### Step 2 · 启动后端 ```bash cd eam-server mvn spring-boot:run # 启动后访问 http://localhost:8095/api/health ``` ### Step 3 · 启动前端 ```bash cd eam-client npm install npm run dev # 访问 http://localhost:5174 ``` ### 测试账号 | 角色 | 账号 | 密码 | |---|---|---| | 系统管理员 | admin | admin123 | | 厂长 | factory_manager | 123456 | | 班组长 | foreman | 123456 | | 维修工 | repairer | 123456 | | 操作工 | operator | 123456 | ## 🔌 端口约定 | 服务 | 端口 | |---|---| | 前端 dev (Vite) | 5174 | | 后端 (Spring Boot) | 8095 | | MySQL | 3306(库名 `eam`)| | Redis | 6379 | ## 📱 访问入口 | 端 | 入口 | 说明 | |---|---|---| | PC 后台 | `http://localhost:5174/` | 登录后进入后台工作台 | | 移动端首页 | `http://localhost:5174/m` | 现场工人 PWA 入口 | | 移动端扫码 | `http://localhost:5174/m/scan` | 扫资产码进入点检/报修等现场操作 | | 后端健康检查 | `http://localhost:8095/api/health` | Spring Boot 服务状态检查 | ## 📦 构建发布 ```bash # 前端 cd eam-client && npm run build # 产物在 dist/ # 后端 cd eam-server && mvn package # 产物 target/eam-server-1.0.0.jar ``` ## 🔐 配置敏感项 - 数据库账号密码:`eam-server/src/main/resources/application-local.yml`(**不进 git**,参考 `application-dev.yml` 模板) - Redis 密码:同上 - 详见项目内 `.env.example` 模板 ## 🌐 仓库 - Gitee:[https://gitee.com/robot1937/eam-system](https://gitee.com/robot1937/eam-system) ## 📅 里程碑 | Phase | 周期 | 范围 | |---|---|---| | **Phase 1** (MVP) | W1-W4 | 资产档案 / 服务请求 / 工单 / 点检巡检 / 保养 / 权限 / 基础 KPI / PWA | | **Phase 2** | W5-W8 | 故障代码 / 备件库存 / 补货盘点 / 采购收货 / 折旧 / TCO / 报表 | | **Phase 3** | W9-W12 | GIS 楼层图 / 校准 / 调度 / 通知规则 / 更细粒度权限 / 工作流引擎 | | **2026-06-18** | 当前 | 工单状态机抽取、时间线中文化、按钮能力后端化、动作级权限校验已完成 | | **2026-06-23** | 当前 | 4 项业务差距补齐:扫码直达、派工联动、点检异常跟进、换下件分支处置 | ## 🧪 真实验证样本 - **自动派工** - 服务请求:`SR-20260623-00002` - 自动生成工单:`WO-20260623-00003` - 结果:`status=ASSIGNED`,受理人自动匹配为 `按钮测试员` - **扫码分流** - 资产编码:`DEF-CAT2-074244` - 结果:点检/保养支持“多任务回列表过滤”;单任务直达逻辑已落代码 - **点检异常跟进** - 点检记录:`2069257901920288769` - 自动工单:`2069257901945454593` - 自动生成跟进单:`PRE_REPAIR` + `MAINTAIN_CONFIRM` - **换下件分支处置** - 工单:`WO-20260622-00004` - 报废样本:`RPT-1782186666810` -> `报废 / 已报废 / 磨损超限,无法修复` - 外修样本:`RPT-1782186666844` -> `外修 / 外修中 / 苏州机修服务商 / WX-20260623-001 / 2026-06-30 18:00:00` --- **Maintainer**: 老板 + Hermes Agent **Last Updated**: 2026-06-23