FIXED ASSET CONTROL

资产在哪、归谁、 多久没盘,
一眼看清

办公桌位图、资产台账与 180 天盘点周期进入同一条可追踪的工作流。跨大区、跨时区的团队用同一份数据,中英文同时交付。

SYSTEM CAPABILITY

把「资产登记表」变成一套会自己维持一致的系统

表格能记住资产,但记不住它什么时候该被复核、上一任保管人是谁、两张桌子是不是压在了一起。这些约束交给系统。

01 / SEAT MAP

桌位图不是一张图片

桌位存归一化坐标,拖动时按分离轴定理做精确碰撞,旋转过的桌子也不会误判。网格、底图边界与相邻桌位都能吸附,吸上去时画出对齐参考线。

02 / AUDIT

180 天盘点周期自己走

计数器由上次盘点时间推导,不存字段、不跑定时任务,所以不存在「昨天服务没起来,于是漏了一天」。超期红、周期内绿,颜色之外还有文字标识。

03 / TRACEABLE

每次变更都留得下痕

调拨在单个事务里同时更新当前关系、业务时间线与审计日志。带幂等键与版本号,网络重试不会产生重复历史,多人同时编辑也不会后写覆盖前写。

WHY IT HOLDS

约束写在数据库里,不是写在使用守则里

靠人记住规则的系统,规则迟早会被绕开。

  • 桌位重叠前后端消费同一份测试向量,前端放行的位置后端不会在保存时才拒绝。
  • 资产状态7 个状态之间的流转由后端状态机决定,前端填了保管人也改不动状态。
  • 删除有历史的资产不做硬删除,改为归档,时间线完整保留。
  • 权限5 角色 × 9 项能力在服务端逐个用例校验,藏起按钮不等于没有权限。

64

条功能需求全部实现

72

个接口与 OpenAPI 契约双向校验

100

分可访问性,8 个页面 × 亮暗两套主题

MANUAL VS SYSTEM

同样是一份台账,差在哪

左边这些事,表格不是做不到,而是要靠人每次都记得做。

能力表格台账FixedAssetHash
记录资产的型号、序列号与归属
按站点、楼层、房间查找一件资产
桌位在平面图上的真实位置
两张桌子压在一起时拒绝保存
盘点到期自己浮出来,不靠提醒
每次调拨留下不可改写的历史
多人同时编辑不会后写覆盖前写
中英文与多时区同一份数据

「表格台账」指的是常见做法:一张共享电子表格,加上一张画在幻灯片里的座位图。

STACK

单二进制、单文件数据库、不用容器

一台小机器就能跑起来,备份就是拷一个文件。

BACKEND

Go + SQLite

纯 Go 的 SQLite 驱动,不依赖 CGO。WAL 模式、单写连接池、显式开启并回读外键约束 —— 启动时确认不成立就拒绝提供服务。

FRONTEND

Astro + Preact + Konva

静态输出,交互只在需要的地方水合。地图用 Canvas 承载,旁边配一份等价的数值编辑面板,只用键盘也能完成同样的操作。

BILINGUAL

中英与多时区

界面、后端错误消息与主数据都按请求语言返回。时间跟着数据所属站点显示,站点没设时区就回退到它所属大区的默认时区。

想看它怎么跑?

演示环境有三个站点、两个楼层、五个房间和十二件资产。