# 安全生产作业票智能管理系统 **Repository Path**: java_project_5/safety-work-ticket-system ## Basic Information - **Project Name**: 安全生产作业票智能管理系统 - **Description**: 安全生产作业票智能管理系统设计与实现 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-07-25 - **Last Updated**: 2026-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SecPerm — 安全作业票审批管理系统 安全作业票(动火作业等)全流程审批管理系统,支持自定义流程模板、动态审批流、签发资质校验、作业票打印等功能。 ## 技术栈 | 层 | 技术 | 版本 | |---|------|------| | 前端框架 | Vue 3 | ^3.5.29 | | 构建工具 | Vite | ^7.3.1 | | UI 组件库 | Element Plus | ^2.13.7 | | 状态管理 | Pinia | ^3.0.4 | | 路由 | vue-router | ^5.0.3 | | HTTP 请求 | Axios | ^1.15.0 | | 流程可视化 | @vue-flow/core | ^1.48.2 | | 后端框架 | Spring Boot | 3.4.2 | | ORM | MyBatis-Plus | 3.5.5 | | 数据库 | MySQL 8.0 | — | | 缓存 | Redis | — | | 认证 | JWT | 3.10.3 | ## 项目结构 ``` SecPerm/ ├── secPerm-service/ # 后端 Spring Boot 项目 │ ├── src/main/java/ │ │ └── com/my/project/secpermservice/ │ │ ├── common/ # 通用工具类、常量、Result 封装 │ │ ├── config/ # Spring 配置(Security、CORS、Redis 等) │ │ ├── controller/ # RESTful 控制器 │ │ ├── entity/ # 实体类(数据库映射) │ │ ├── mapper/ # MyBatis-Plus 映射接口 │ │ ├── service/ # 服务接口 + 实现 │ │ └── vo/ # 视图模型 │ └── src/main/resources/ │ └── application.yml # 应用配置 ├── secPerm-webapp/ # 前端 Vue 3 项目 │ ├── src/ │ │ ├── api/ # API 请求模块 │ │ ├── components/ # 公共组件(Layout、BaseTable 等) │ │ ├── router/ # 路由配置 │ │ ├── stores/ # Pinia 状态管理 │ │ ├── utils/ # 工具函数 │ │ └── views/ # 页面组件 │ │ ├── approve/ # 流程审批 │ │ ├── flow/ # 流程管理(模板、原子操作、作业类型) │ │ │ ├── atomicAction/actions/ # 7 个原子操作组件 │ │ │ ├── template/ # 流程模板编辑器 │ │ │ └── workType/ # 作业类型管理 │ │ ├── permit/ # 作业票查看/打印 │ │ ├── progress/ # 申请进度查询 │ │ ├── secpermApply/ # 作业票申请 │ │ ├── supervision/ # 监管查阅 │ │ └── system/ # 系统管理(用户、角色、部门、路由) │ └── vite.config.js ├── secperm.sql # 完整数据库建表脚本 └── README.md ``` ## 数据库 ### 核心表 | 表 | 说明 | |---|------| | `flow_template` | 流程模板 | | `flow_template_node` | 模板节点 | | `flow_node_handler` | 节点处理人配置 | | `flow_atomic_action` | 原子操作定义 | | `flow_node_atomic_action` | 节点绑定的原子操作 | | `flow_instance` | 流程实例(作业票) | | `flow_instance_node` | 实例节点(模板节点的快照) | | `flow_instance_data` | 实例表单数据 | | `work_type` | 作业类型(动火、高处、受限空间等) | | `user_qualifications` | 用户资质证书 | | `sys_user` | 系统用户 | | `sys_role` | 系统角色 | | `sys_route` | 路由菜单 | | `sys_files` | 文件存储 | ### 初始化 ```bash # 建库 mysql -u root -p -e "CREATE DATABASE secperm CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" # 导入表结构和初始数据 mysql -u root -p secperm < secperm.sql ``` 数据库连接配置详见 `secPerm-service/src/main/resources/application.yml`。 ## 快速启动 ### 环境要求 - JDK 17+ - Node.js 18+ - MySQL 8.0 - Redis ### 后端 ```bash cd secPerm-service mvn clean install -DskipTests mvn spring-boot:run ``` 默认端口:`http://localhost:8000/api` ### 前端 ```bash cd secPerm-webapp npm install npm run dev ``` 默认地址:`http://localhost:5173` ## 功能模块 ### 流程引擎 - **动态模板**:通过可视化编辑器(@vue-flow)拖拽配置审批节点 - **节点类型**:申请 → 审核 → 安全审核 → 审批 → 签发 → 现场确认 → 通知 - **原子操作**:每个节点可绑定多个原子操作组件(表单/确认/附件上传等) - **处理人匹配**:按角色、用户、部门、作业等级匹配处理人 - **流程推进**:审批通过 → 下一节点;拒绝 → 终止;驳回 → 退回至前一节点 ### 原子操作组件 | 组件 | 说明 | |------|------| | `basic-info` | 基础信息表单(字段动态配置) | | `safety-checklist` | 安全措施检查清单 | | `qualification-select` | 资质证书选择 | | `attachments-upload` | 附件/照片上传 | | `gas-detection` | 气体检测数据录入(可多条) | | `permit-issuance` | 签发作票确认(4 项确认) | | `remark` | 补充说明 | ### 签发与作业票 - 签发节点执行前校验用户是否持有有效的 `issuer` 类型资质 - 签发通过后,在详情页显示"查看作业票"按钮 - 作业票页面包含:基本信息、安全措施确认、审批链条、签发信息 - 支持浏览器打印 / 另存为 PDF ## API 概览 | 路径 | 说明 | |------|------| | `POST /user/login` | 用户登录 | | `POST /instance/create` | 创建流程实例 | | `POST /instance/advance` | 流程推进(审批通过) | | `POST /instance/reject` | 拒绝流程 | | `POST /instance/return` | 驳回退回 | | `POST /instance/withdraw` | 撤回审批 | | `GET /instance/detail/{id}` | 流程详情(含节点、数据、文件) | | `GET /instance/pending-tasks` | 待办任务列表 | | `GET /instance/my-progress` | 我的申请进度 | | `GET /instance/supervise` | 监管查阅 | | `GET /file/download/{id}` | 文件下载 | | `GET /qualification/list` | 资质列表 | | `GET /qualification/validate` | 资质校验 | | `POST /template/save` | 保存模板 | | `GET /template/list` | 模板列表 | | `GET /template/node/list` | 节点列表 | | `POST /template/node/save` | 保存节点 | | `POST /template/handler/save` | 保存处理人 | 完整 API 详见各 Controller 文件。