叉车脱审罚几万?我用 .NET 10 + Vue 3 撸了一套特种设备与资质年审系统,开源了!
项目地址:https://gitee.com/wyabsdai/certi-pass.git
开源协议:MIT(自由商用、修改与二次分发)
一句话介绍:面向中小工贸制造、物流车队企业的特种设备与人员资质年审合规管理系统(SaaS 多租户)。
项目截图









一、 起因:一次真实的生产“安全事故”
做工贸制造或者物流行业的朋友应该深有体会:
- 厂里的叉车、行车、压力容器每年都要定检,定检报告锁在档案柜里,什么时候到期全凭安全员脑子记;
- 工人的电工证、特种焊工证几年一审,有人脱审了还在违规上岗,管理者根本不知情;
- 应急管理部门或市监局一突击检查,证书脱审直接吃罚单,动辄几万元,甚至责令停产整顿!
这就是典型的行业三长两短:“罚款重、管理乱、应检难”。
市面上动辄几十万的安全生产大系统对小微企业来说太重、太贵。为了彻底解决“证书到期没人管”这个硬伤,我动手写了这款开源的合规管理系统 —— 安审云 CertiPass。
免费提供基础额度,直接帮中小微企业建立电子台账,实现**“到期自动预警、合规一键导出、现场一机一码”**。
二、 核心业务亮点:小而美的合规闭环
整个系统围绕**“事前防范、事中可查、事后可溯”**设计:
| 模块 | 实际解决的业务痛点 |
|---|---|
| 人员资质台账 | 覆盖电工/焊工/叉车/起重机等特种作业证,支持拍照录入,自动追踪复审与到期日。 |
| 设备定检台账 | 管理特种设备的注册代码、检验周期、下次检验日,内置检验机构快速联系通道。 |
| 全渠道预警中心 | 设定四级预警状态(过期 / 紧急≤30天 / 预警≤60天 / 正常)。每天早上 07:30 自动巡检,企业微信 / 钉钉 / 飞书机器人 + 邮件 + 短信多路强提醒。 |
| 现场“一机一码” | 为每台设备生成带有 SM3 签名的专属二维码贴纸。现场执法或安全巡查时,手机扫码秒级查看定检状态,告别翻纸质档案。 |
| 合规报表一键出 | 检查来了不慌!集成 QuestPDF 与 MiniExcel,一键导出带中文字体的高清合规 PDF 与台账 Excel。 |
| 大屏可视化看板 | 基于 ECharts 的统计看板,到期风险分布、租户预警趋势一目了然。 |
三、 硬核技术栈:尝鲜与工业级的结合
技术选型上拒绝陈旧架构,全面采用现代化的高性能组合:
- 后端底座:.NET 10(Minimal API + FastEndpoints 8 架构),告别庞大的传统 Controller,垂直切片设计(REPR 模式),运行极度轻量且并发强悍。
- 持久化层:EF Core 10 + PostgreSQL 17,原生高并发与优秀 JSONB/时序处理支持。
- 管理前端:Vue 3.5 + Vite 7 + Element Plus 2.11 + Pinia + ECharts 6,若依风格动态路由与细粒度按钮权限(
certi:worker:add式)。 - 移动端:uni-app(Vue 2),适配小程序与 Android/iOS App,满足现场巡查、拍照核验、扫码查看等一线场景。
- 安全与国密:登录全链路采用 SM3 密码摘要,前端 SM3 加密传输 + 后端二次加盐
salt$SM3(salt+hash)存储,合规安全性拉满。 - 文档引擎:QuestPDF(社区版)+ MiniExcel,告别传统组件内存溢出和中文字体缺字问题。
四、 核心架构设计揭秘
1. 优雅的多租户数据行级隔离
作为一款标准的 SaaS 平台,系统采用共享数据库、独立 TenantId 行级隔离方案:
借助 EF Core 的全局查询过滤器(Global Query Filters),开发者在写业务业务查询时完全无感知,底层自动注入 WHERE tenant_id = @t:
// 核心隔离逻辑:通过 ITenantContext 获取当前 JWT 解析出的租户 ID
modelBuilder.Entity<WorkerCertificate>()
.HasQueryFilter(e => e.TenantId == _tenantContext.CurrentTenantId);
新员工入职、多企业注册,数据天然物理阻断,杜绝越权泄露。
2. 轻量且解耦的预警巡检引擎
系统没有引入庞大的调度中间件,而是通过 .NET 原生 BackgroundService 实现轻量级定时调度:
每日 07:30 (HostedService 定时触发) 手动点击"立即盘点"
│ │
└─────────────────┬─────────────────────┘
▼
AlertScanEngine 全租户扫描
│
计算证书/设备剩余有效天数
│
命中阈值 (过期 / 30天 / 60天)
│
┌───────────────────────┼───────────────────────┐
▼ ▼ ▼
企微/钉钉/飞书 Webhook SMTP 邮件通道 短信网关推送
└───────────────────────┬───────────────────────┘
▼
cp_alert_logs 落地留痕(同目标同日自动去重)
五、 快速上手:本地 5 分钟跑起来
项目代码结构极其扁平,开箱即用:
├── CertiPass/ # 后端(.NET 10 + FastEndpoints)
├── vue3-sail/ # 管理端前端(Vue3 + Element Plus)
├── app/ # 移动端(uni-app)
└── sql/ # 数据库完整导出脚本(DDL + 演示数据)
1. 跑起数据库
安装 PostgreSQL 17,新建数据库并直接导入根目录 SQL:
psql -U postgres -d CertiPass -f sql/certipass_full_export.sql
2. 启动后端 API
编辑 CertiPass/appsettings.Development.json 配置好数据库连接串和 JWT 密钥,命令行直接启动:
cd CertiPass
dotnet run
# 后端即刻运行在 http://localhost:5117,自带 Swagger 文档
3. 启动管理后台
cd vue3-sail
npm install
npm run dev
# 访问 http://localhost:8990 即可看到登录页
预置演示账号:
- 超管:
admin/Cert@2026- 企业演示账号:
demo/Cert@2026
六、 为什么选择开源?
特种设备与资质合规管理看似是细分领域,但几乎是所有制造工厂、物流车队、工程施工单位的刚性合规痛点。过去这种系统要么是外包定制天价,要么是传统软件界面陈旧、不支持现代通讯软件提醒。
我将整个系统的核心业务逻辑、多租户设计基座、前后端完整代码按 MIT 协议 完整开源出来,希望能够:
- 帮中小微企业降本增效:不用花冤枉钱,自己拉个代码就能部署一套高可用、带全渠道提醒的年审台账系统;
- 给 .NET + Vue3 开发者提供实战参考:展示 .NET 10 最新的 Minimal API + FastEndpoints 如何快速构建结构干净、性能爆表的 SaaS 业务系统。
项目地址与交流
- Gitee 源码仓库:https://gitee.com/wyabsdai/certi-pass.git
- 开源协议:MIT
如果你觉得这个项目对你的业务或者技术进阶有帮助,欢迎去 Gitee 点个 ⭐ Star 支持一下!有任何功能建议、二次开发需求或 Bug 反馈,欢迎提交 Issue 或提 PR 参与贡献!
本系统是基于.NET 10与Vue 3开发的开源特种设备及人员资质年审合规管理平台,支持SaaS多租户架构、行级数据隔离、自动预警巡检、国密SM3安全认证及跨端(Web/小程序/App)应用。采用Minimal API、FastEndpoints、EF Core 10、PostgreSQL 17与QuestPDF等现代技术栈,面向中小制造与物流企业提供轻量、高可用、易部署的电子台账解决方案。
388

被折叠的 条评论
为什么被折叠?



