# eh-EAM **Repository Path**: MISSMYSEIF/eh-eam ## Basic Information - **Project Name**: eh-EAM - **Description**: 一款企业资产管理系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-06 - **Last Updated**: 2026-06-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EAM 企业资产管理系统 > 前后端分离的企业资产管理系统,适配 Web / APP / PC / HarmonyOS / 小程序等多端。 ## 项目简介 EAM(Enterprise Asset Management)企业资产管理系统,覆盖资产全生命周期管理:登记 → 领用 → 维修 → 调拨 → 盘点 → 报废,支持多端统一体验。 ### 核心功能 | 模块 | 功能 | |---|---| | 资产台账 | 资产登记/编辑/删除/导入导出、分类管理、标签管理、状态机流转 | | 采购管理 | 采购申请、审批流程、入库登记、金额偏差校验 | | 领用/归还 | 领用申请、归还(完好/损坏)、逾期提醒、并发领用校验 | | 调拨管理 | 调拨申请、双方并行审批、批量调拨、归属自动变更 | | 维修/保养 | 报修申请、维修完成、高费用标记、保养计划、到期提醒 | | 盘点管理 | 盘点任务创建/执行、差异报告、差异确认后台账更新、逾期提醒 | | 报废/处置 | 报废申请、两级审批、残值处置、已报废禁止操作 | | 统计报表 | 资产总览、趋势分析、维修费用统计、多维度筛选 | | 系统管理 | 用户/角色/权限/部门、审批流程配置、编码规则配置 | ## 技术栈 ### 后端 | 技术 | 版本 | 说明 | |---|---|---| | Java | 17+ | 开发语言 | | Spring Boot | 3.2+ | 应用框架 | | Spring Security | 6.x | 认证授权(JWT) | | Spring Cloud Gateway | 4.x | API网关 | | MyBatis-Plus | 3.5+ | ORM框架 | | MySQL | 8.0 | 关系型数据库 | | Redis | 7.x | 缓存/会话/分布式锁 | | RabbitMQ | 3.x | 消息队列 | | MinIO | - | 对象存储 | | XXL-Job | - | 分布式定时任务 | | Knife4j | 4.x | API文档 | | Liquibase | - | 数据库版本管理 | ### 前端 | 技术 | 版本 | 说明 | |---|---|---| | Vue 3 | 3.4+ | Composition API | | TypeScript | 5.x | 类型安全 | | UniApp | 3.x | 跨端框架(Web/APP/小程序/HarmonyOS) | | uni-ui | - | UniApp官方UI组件库 | | Pinia | 2.x | 状态管理 | | Axios | 1.x | HTTP请求 | | ECharts | 5.x | 统计图表(H5端) | | vue-echarts | 7.x | ECharts Vue3封装(H5端) | | dayjs | 1.x | 日期处理 | ## 项目结构 ``` eh-eam/ ├── eam-server/ # 后端(Maven多模块) │ ├── eam-gateway/ # API网关 │ ├── eam-common/ # 公共模块(响应/异常/枚举/工具) │ ├── eam-auth/ # 认证授权(JWT/SSO) │ ├── eam-system/ # 系统管理(用户/角色/部门/审批配置) │ ├── eam-asset/ # 资产核心(台账/分类/状态机) │ ├── eam-business/ # 业务流程(采购/领用/调拨/维修/盘点/报废) │ ├── eam-statistics/ # 统计报表 │ ├── eam-infra/ # 基础设施(文件/消息/审计/导出) │ ├── eam-job/ # 定时任务 │ ├── docker-compose.yml # 中间件编排 │ └── pom.xml # 父POM ├── eam-ui/ # 前端(UniApp + Vue3 + TypeScript) │ ├── src/ │ │ ├── api/ # API接口定义(13个模块) │ │ ├── components/ # 公共组件(11个,含Chart图表封装) │ │ ├── composables/ # 组合式函数(5个:usePagination/usePermission/useAssetStatus/useApproval/useExport) │ │ ├── constants/ # 常量定义 │ │ ├── directives/ # 自定义指令(v-permission) │ │ ├── pages/ # 页面(34个,9大业务模块) │ │ ├── platforms/ # 多端适配(web/app/mp-weixin/harmony) │ │ ├── router/ # 路由配置 │ │ ├── store/ # Pinia状态管理(4个:user/permission/asset/app) │ │ ├── styles/ # 全局样式 │ │ └── utils/ # 工具函数(6个:request/auth/validate/format/tree/export) │ ├── package.json │ └── vite.config.ts ├── .codeartsdoer/ # 设计文档 ├── .gitignore ├── README.md # 本文件 └── README.en.md # 英文说明 ``` ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.8+ - Node.js 18+ - Docker & Docker Compose - HBuilderX(UniApp开发IDE) ### 1. 启动中间件 ```bash cd eam-server docker-compose up -d ``` 等待 MySQL、Redis、RabbitMQ、MinIO 启动完成。 ### 2. 启动后端 ```bash cd eam-server mvn clean install -DskipTests # 启动认证服务 cd eam-auth && mvn spring-boot:run # 启动资产服务 cd eam-asset && mvn spring-boot:run # 启动系统管理服务 cd eam-system && mvn spring-boot:run # 启动业务流程服务 cd eam-business && mvn spring-boot:run # 启动统计报表服务 cd eam-statistics && mvn spring-boot:run ``` ### 3. 启动前端 ```bash cd eam-ui npm install # Web端开发 npm run dev:h5 # 微信小程序开发 npm run dev:mp-weixin # APP端开发 npm run dev:app ``` ### 4. 访问系统 - Web端:http://localhost:5173 - API文档:http://localhost:8080/doc.html - 默认账号:admin / admin123 ## 多端适配 本项目使用 UniApp 条件编译实现多端适配: | 端 | 适配方式 | 特殊处理 | |---|---|---| | Web | H5编译 | WebSocket通知、HTML5扫码、a标签下载 | | Android/iOS | APP编译 | 原生扫码、原生推送、plus下载 | | 微信小程序 | mp-weixin编译 | wx文件选择、订阅消息、wx.saveFile | | HarmonyOS | harmony编译 | Harmony原生API、Harmony Push | | PC客户端 | Web编译 | 窗口最大化适配 | ## 资产状态机 ``` 闲置(IDLE) ──领用──→ 在用(IN_USE) ──报修──→ 维修中(REPAIRING) │ │ │ │ │归还(完好) │维修完成 │ ↓ ↓ │ 闲置(IDLE) 闲置(IDLE) │ │ │ └──报废审批──→ 已报废(SCRAPPED) ←──报废审批──┘ ``` ## 部署指南 ### 开发环境 使用 Docker Compose 一键启动所有中间件,各微服务本地启动。 ### 生产环境 推荐部署方案: - **Nginx**:反向代理 + 负载均衡 - **微服务集群**:2+实例,按模块独立部署 - **MySQL**:主从复制,读写分离 - **Redis**:Sentinel 集群,高可用 - **RabbitMQ**:镜像队列,消息持久化 - **MinIO**:分布式模式,数据冗余 ### Docker 部署(生产) ```bash # 构建后端镜像 cd eam-server mvn clean package -DskipTests docker build -t eam-auth:latest ./eam-auth docker build -t eam-asset:latest ./eam-asset docker build -t eam-system:latest ./eam-system docker build -t eam-business:latest ./eam-business # 构建前端镜像 cd eam-ui npm run build:h5 docker build -t eam-ui:latest . # 使用 docker-compose 启动全部服务 docker-compose -f docker-compose-prod.yml up -d ``` ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ## 许可证 MIT License