作品 / 企业固定资产管理系统
行政与资产 · ADMIN2025NO.04商业项目

企业固定资产管理系统

面向 20–50 人中小企业的固定资产台账系统——扫码盘点、领用留痕、按月自动折旧,装在客户自己机房,可换客户自有品牌

GoGinGORMVue3Element PlusVantEChartsSQLiteMySQL
企业固定资产管理系统 界面截图
1 / 2

缘起

一次办公室搬迁之后要盘一遍全部资产。拿到手的是一张三年没合拢的表:同一台显示器在三行里写着三个名字,谁领走了没地方查,用了几年该折多少钱没人算得清。盘到第三天还剩半个仓没数完。

那天晚上我建的不是第四张 Excel,是第一个数据模型。

背景

后来我把一句话逮着人就问:"你们公司现在有多少台设备?"十来个老板,九个答不上来。答上来的那个,台账也已经废了。

这类公司的画像很具体:二十到五十人,设备几十台。资产全靠 Excel 加微信群管着,老板自己知道乱,但不知道乱到什么程度——有员工离职带走了电脑,HR 三个月后盘点才发现;到了审计或者汇算清缴,财务拿着账来问,答不上来。数字还各记在各处:台账在行政的表里,领用条在纸上,折旧在财务的另一次计算里,三边对不上时没人能说是哪一环漏了。

他也想过买系统。一看报价,几万到几十万,心里盘算"就管几十台电脑值这么多钱吗";真买过的,实施周期长,上线之后没人用。

规模过了几百件,靠一张表已经守不住准确性。真正需要的不是一套更复杂的系统,而是一套把建档、领用、调拨、盘点、折旧串在同一条记录链上的轻量工具;而且数据要躺在自己机房里——中小企业要的是踏实,方便是次要的。

方案

按资产从买到废的那条线来组织,每一步都留下记录,下一步直接用上一步的结果:

  • 采购入库:从采购申请、审批到分批验收入库;验收完成后自动生成资产编码,同一批买五台显示器就是五条独立可追溯的资产,耗材类另行处理不参与折旧
  • 资产台账:一条记录同时带着财务信息(采购价、折旧)、归属信息(部门、使用人、存放位置)和实物信息(品牌、型号、序列号、图片附件);支持多条件检索与二维码标签
  • 领用归还:员工提交申请、管理员审批后资产归属自动跟着走,归还后回到闲置并清空使用人;借用期间资产被锁住,两个人同时申领同一台不会重复放行
  • 调拨管理:跨部门转移一张单子走完,批准后部门归属与存放位置自动同步
  • 维修保养:登记维修时资产自动标记为"维修中",完成后自动回闲置;保养可设下次到期日,三十天内到期自动提醒
  • 资产盘点:按全部、部门、分类、位置四种范围生成盘点任务,逐项确认后自动算盈亏;现场用手机扫资产标签就能盘,可拍照留证
  • 折旧管理:按直线法按月计提,重复计算自动跳过,累计折旧不会超过可折旧金额;单台资产可暂停或恢复
  • 资产处置:报废、变卖、捐赠三种方式走申请与审批,已处置的资产不能再处置一次
  • 配件与耗材:配件记录装在哪台设备上、什么时候拆下来的,拆下可选报废、回库或送修;耗材领用自动扣减库存,库存不够直接拦住
  • 标签与单据:资产标签和申购单、领用单、调拨单、盘点明细、维修单都有对应打印视图,标签与标识卡可在模板间切换
  • 权限与留痕:管理员、资产管理员、普通用户三种预置角色,也可以自定义;所有写操作和登录都留下日志

手机端不是管理端的缩小版,而是现场工具:扫码盘点、维修保养登记、配件与耗材更换、调拨申请与审批。管理员在电脑上定规矩,人在仓库里用手机干活。

技术架构

模块技术选型
后端Go + Gin + GORM + JWT + bcrypt
数据库SQLite(默认,WAL 模式)+ MySQL(可切换)
PC 端Vue3 + Vite + Element Plus + ECharts + Pinia
移动端Vue3 + Vant UI(独立构建,后端托管在 /m/)
交付单二进制 + 静态产物打包;Windows / Linux / Docker 三套部署形态

规模与机制:34 张数据表、165 个 RESTful 接口、64 个权限码、PC 端 32 个页面、移动端 22 个页面。前后端双重权限校验(前端路由守卫 + 后端中间件),权限分 api 与 button 两类。数据库层用 GORM 自动迁移建表并初始化种子数据,SQLite 走 WAL 提升并发读写,外键约束在迁移期间临时关闭以避免重建表失败。

商业交付层是这块的重点:品牌配置(系统名 / 副标题 / Logo / Favicon)在构建时编进二进制,同一份代码可以打出不同客户的白标包;三档授权(免费 / 基础 / 专业)由本地 HMAC 验签的凭证控制,凭证与机器指纹绑定,判定在客户端本地完成、不回访服务器,客户机器可长期离线运行;签发侧是一个独立的激活服务加一个命令行签发工具,激活台账单独入库、每日备份。

工程方法:需求全部走 openspec 文档驱动——27 个待办变更、61 个已归档变更、64 份能力规格,一个变更只管一个行为,批准后才动代码,一次提交对应一个变更集,所以 git log 可以直接当开发日志读。核心链路有单元测试兜底,采购入库、标签打印、新手引导这类整条流程用真实浏览器端到端跑通后才归档。资产锁定的竞态是人工蹲在业务流里定位并修掉的——这类问题靠"顺手重构"解决不了。

成果

起点是三年前那张没合拢的 Excel,现在客户机房里跑着一套写着他自己公司名字的系统——同一份代码配上客户的一份品牌配置,编译时一起打进去,登录页和标题栏上都是他们的名字。系统已作为商业项目交付上线,公开的演示环境可以直接进去走一遍。

真正让它成交的不是功能列表,是数据进来的那一刻。客户把旧台账导进来才算了结:500 多条历史记录,光"IT部"这一个部门,老板自己在旧表里就写成了 5 个不同的名字,字段也对不上;导入做成逐行报错,哪一行、哪一列、为什么错都指出来。客户第一次一次性导完、系统里立刻能扫码盘点,这单才落地。

客户还提过一句我印象很深的话:「能不能不打印二维码?」照着做就是删掉二维码,可财务拿着标签还是要扫码盘点。追问两轮才明白,他要的是一张符合财务习惯的固定资产标识卡——编号、名称、部门、使用人,带下划线那种。最后没给这家单独做,而是把标签改成了模板:一个二维码版、一个表单卡版,全局可切换,后来顺着长出更多纸型,横竖都能打。客户随口一句偏好,长成了一套能配的东西。

客户是从内容来的。最早找上门的企业客户,就是从一篇讲固定资产台账烂尾的笔记私信过来的。

这套东西现在能卖成三种形态:装在客户自己机房的白标系统、配部署手册的安装包,以及已经办下来的软件著作权登记。三种形态共用同一份代码,只是打包时注入的品牌配置不同。

体验

MANUAL · 说明书

它到底能做什么、怎么跑起来

散文讲的是「为什么做」,这一节讲的是「它到底是什么」——可直接对照评估。

01 / 规格
交付形态
装好即用的部署包,客户机器不用装 Go、Node 之类的运行环境
运行环境
Windows 一键包、Linux(CentOS 7 / 宝塔面板)、Docker 镜像三种都有
数据库
单文件数据库,首次启动自动建表,客户不用另外装数据库服务
授权方式
免费版即可建档录资产,用机器指纹激活基础版 / 专业版
品牌
专业版可换成客户自己的系统名与 Logo,代码不用改
双端
PC 管理端 32 个页面 + 手机端 22 个页面(现场扫码用)
02 / 功能清单
  • 采购入库从采购申请、审批到分批验收入库,验收完成后自动生成资产编码,同一批买五台就是五条可追溯的资产
  • 资产台账一条记录同时带着采购价与折旧、部门与使用人、型号与序列号;支持多条件检索和二维码标签
  • 领用归还员工提交申请、管理员审批后归属自动跟着走;借用期间资产被锁住,两人同抢一台不会重复放行
  • 调拨管理跨部门转移一张单子走完,批准后部门归属与存放位置自动同步
  • 维修保养登记维修自动标记为维修中,完成后自动回闲置;保养到期前三十天自动提醒
  • 资产盘点按全部、部门、分类、位置生成盘点任务;现场用手机扫标签就能盘,自动算盈亏
  • 折旧管理按直线法按月计提,重复计算自动跳过,累计折旧不会超过可折旧金额
  • 资产处置报废、变卖、捐赠三种方式走申请与审批,已处置的资产不能再处置一次
  • 配件与耗材配件记录装在哪台设备上、何时拆下,拆下可选报废、回库或送修;耗材领用自动扣库存,不够直接拦住
  • 标签与单据资产标签和申购单、领用单、调拨单、盘点明细、维修单都有对应打印视图
  • 报表统计工作台看总览与趋势,另有资产、变动、配件、耗材四张报表
  • 权限与留痕管理员、资产管理员、普通用户三种预置角色可自定义;所有写操作和登录都有日志
03 / 部署与运行
  • 交付的是一套装好就能跑的包,客户机器不需要装任何开发环境
  • Windows 解压后双击启动;Linux 服务器上交给系统服务托管,或走宝塔面板一键部署
  • 首次启动自动建表并写入部门、角色、字典等基础数据,装完就能录资产
  • 数据存在客户自己的机器上;换机器或重装系统时把数据文件挪过去即可
  • 版本升级替换程序文件即可,表结构变更由程序在启动时自动补齐
04 / 已知限制
  • 定位是单机部署的中小团队台账,不适合跨多地、多人高并发的大集团场景
  • 手机端面向现场操作(扫码盘点、维修登记、配件与耗材更换、调拨审批),不是管理端的完整替代
  • 免费版限 200 条资产、导入导出各每周 1 次、仅 1 个管理员账号
  • 授权按机器绑定,换机器需要重新激活

有类似的事要管?

说说现在是怎么做的——Excel、微信群、纸质单子都行。我判断能不能做、大概怎么做。

聊聊你的需求