# workorder **Repository Path**: chenshiba/workorder ## Basic Information - **Project Name**: workorder - **Description**: 工单系统 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-15 - **Last Updated**: 2026-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 工单管理系统 一个基于 Spring Boot + Vue 3 的企业级工单管理系统,用于规范系统变更流程,确保生产系统变更的可控性和可追溯性。 ## 系统功能 ### 核心功能模块 1. **登录认证模块** - 支持账号/手机号 + 密码登录 - 基于 Session 的会话管理 - 自动登录状态保持 2. **工单创建模块** - 支持多种工单类型(请假、报销、采购、出差) - 可自定义审批流程 - 支持附件上传 - 自动关联提交人信息 3. **审批流程模块** - 支持多级审批节点配置 - 每个节点支持多选审批人 - 支持"或签"和"会签"模式 - 审批意见记录 4. **工单查询模块** - 支持多条件筛选(类型、状态、时间) - 分页查询 - 工单详情查看 5. **审计与复查模块** - 完整的审批日志时间轴 - 历史记录查询 - 操作记录追溯 ## 技术栈 ### 后端 - Spring Boot 2.7.18 - MyBatis Plus 3.5.3.1 - MySQL 8.0 - Spring Session ### 前端 - Vue 3.4.21 - Element Plus 2.6.3 - Vue Router 4.3.0 - Pinia 2.1.7 - Axios 1.6.8 - Vite 5.2.8 ## 项目结构 ``` gd/ ├── database/ # 数据库脚本 │ └── init.sql # 初始化SQL ├── backend/ # 后端项目 │ ├── src/ │ │ ├── main/ │ │ │ ├── java/com/example/workorder/ │ │ │ │ ├── entity/ # 实体类 │ │ │ │ ├── mapper/ # Mapper接口 │ │ │ │ ├── service/ # 服务层 │ │ │ │ ├── controller/ # 控制器 │ │ │ │ ├── dto/ # 数据传输对象 │ │ │ │ ├── common/ # 通用类 │ │ │ │ └── config/ # 配置类 │ │ │ └── resources/ │ │ │ └── application.yml # 配置文件 │ │ └── test/ # 测试代码 │ └── pom.xml # Maven配置 ├── frontend/ # 前端项目 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ ├── api/ # API接口 │ │ ├── stores/ # 状态管理 │ │ ├── router/ # 路由配置 │ │ ├── utils/ # 工具函数 │ │ ├── App.vue # 根组件 │ │ └── main.js # 入口文件 │ ├── index.html # HTML模板 │ ├── vite.config.js # Vite配置 │ └── package.json # 依赖配置 └── README.md # 项目说明 ``` ## 快速开始 ### 环境要求 - JDK 11+ - Node.js 16+ - MySQL 8.0+ - Maven 3.6+ ### 数据库配置 1. 创建数据库: ```sql CREATE DATABASE workorder_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 执行初始化脚本: ```bash mysql -u root -p workorder_db < database/init.sql ``` 3. 修改后端配置文件 `backend/src/main/resources/application.yml`,更新数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/workorder_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: root password: your_password ``` ### 后端启动 ```bash cd backend mvn clean install mvn spring-boot:run ``` 后端服务将在 http://localhost:8080 启动 ### 前端启动 ```bash cd frontend npm install npm run dev ``` 前端服务将在 http://localhost:3000 启动 ## 默认账号 测试账号(密码统一为:123456): | 账号 | 姓名 | 部门 | 职位 | |------|------|------|------| | zhangsan | 张三 | 技术部 | 开发工程师 | | lisi | 李四 | 业务部 | 业务专员 | | wangwu | 王五 | 技术部 | 部门经理 | | zhaoliu | 赵六 | 财务部 | 财务经理 | ## 核心API接口 ### 用户相关 - `POST /api/user/login` - 用户登录 - `POST /api/user/logout` - 用户登出 - `GET /api/user/current` - 获取当前用户信息 - `GET /api/user/list` - 获取用户列表 ### 工单相关 - `POST /api/workorder/create` - 创建工单 - `POST /api/workorder/list` - 分页查询工单 - `GET /api/workorder/detail/{id}` - 获取工单详情 - `POST /api/workorder/approve` - 审批工单 - `POST /api/workorder/upload` - 上传附件 - `GET /api/workorder/pending` - 获取待审批工单 ## 数据库表设计 ### 主要数据表 1. **zn_users** - 用户表 - 存储用户基本信息 2. **zn_work_orders** - 工单主表 - 存储工单基本信息和状态 3. **zn_approval_nodes** - 审批节点配置表 - 存储每个工单的审批节点配置 4. **zn_approval_records** - 审批记录表 - 存储审批历史记录 5. **zn_attachments** - 附件表 - 存储工单附件信息 ## 系统特色 ### 1. 灵活的审批流程 - 支持自定义审批节点 - 每个节点可配置多个审批人 - 支持或签(任一人通过即可)和会签(所有人都需通过) ### 2. 完整的审批记录 - 时间轴展示审批流程 - 详细记录审批意见和时间 - 支持审批历史追溯 ### 3. 现代化UI设计 - 深色主题设计 - 玻璃拟态效果 - 流畅的动画过渡 - 响应式布局 ### 4. 数据安全 - 基于 Session 的认证机制 - 密码 MD5 加密 - 登录状态验证 ## 开发说明 ### 后端开发规范 - 使用 MyBatis Plus 简化数据库操作 - 统一的响应格式 `Result` - 异常统一处理 - 使用 Lombok 简化代码 ### 前端开发规范 - 使用 Vue 3 Composition API - 使用 Pinia 进行状态管理 - 使用 Element Plus UI 组件库 - 统一的 API 请求封装 ## 部署说明 ### 后端打包 ```bash cd backend mvn clean package ``` 生成的 jar 包在 `backend/target/workorder-system-1.0.0.jar` ### 前端打包 ```bash cd frontend npm run build ``` 生成的静态文件在 `frontend/dist/` ## 许可证 MIT License