用表格管公务车的公司,最后都会撞上同一堵墙:这张表只有两种存在方式。发到群里,全公司都知道谁昨天去了哪儿、谁的车花了多少油钱;锁在行政一个人手上,申请人连自己那张单批没批都要私聊问一句。
于是大多数公司选了第三条路——把一张表拆成好几张:行政留一张全的,各部门发一张删过列的,司机那边再抄一张排班表。拆的那一刻问题就换了个形状:三张表从此各自往前走,月底对不上,而「这台车今年到底花了多少钱」谁也答不上来。
下面这套系统不多建表。它只做一件事:让同一张表在不同人打开时,自己变成他该看的那张。
下面这台是车队管理员看到的样子——也就是这张表的全貌。点上面那排身份换一个人,页面会当场重新长一遍:菜单少几个、列少几列、行少几行。注意有一个人一列都没少,只是行少了,那正是下一节要讲的事。
这是车队管理员看到的样子,也是这张表的全貌。下面每换一个身份,都是从这里往下减——少了几个菜单、几列、几行,这行字会替你数出来。
| 单号 | 用车时间 | 用车人 | 部门 | 事由 | 目的地 | 车辆 | 驾驶员 | 里程 | 油费 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|
| YC-0912 | 09-03 08:30 | 周敏 | 市场部 | 客户拜访 | 松山湖华创 | 粤B·7F2K9 | 李国强 | 86 km | ¥142 | 已完成 |
| YC-0913 | 09-03 09:00 | 陈志远 | 市场部 | 行业展会 | 深圳会展中心 | 粤B·9T0M4 | 王海 | 54 km | ¥96 | 已完成 |
| YC-0915 | 09-03 13:30 | 周敏 | 市场部 | 送样品 | 长安宏远五金 | 粤B·7F2K9 | 李国强 | — | — | 出车中 |
| YC-0916 | 09-03 14:00 | 刘颖 | 财务部 | 银行对公 | 南城建行 | 粤B·2K8H1 | 王海 | — | — | 已派车 |
| YC-0917 | 09-03 15:30 | 郭强 | 工程部 | 工地巡查 | 惠州二期工地 | 粤B·5L6C3 | 李国强 | — | — | 已派车 |
| YC-0918 | 09-04 08:00 | 周敏 | 市场部 | 接机 | 宝安机场 | 待派 | 待派 | — | — | 待派车 |
| YC-0919 | 09-04 09:30 | 何斌 | 工程部 | 设备转场 | 清溪三号库 | 待派 | 待派 | — | — | 待审批 |
| YC-0920 | 09-04 13:00 | 陈志远 | 市场部 | 客户回访 | 广州天河 | 待派 | 待派 | — | — | 待审批 |
| YC-0921 | 09-05 07:30 | 刘颖 | 财务部 | 年审送件 | 东莞税务局 | 待派 | 待派 | — | — | 待审批 |
| 车牌 | 车型 | 维修项目 | 送修 | 预计取车 | 维修厂 | 送修人 | 结算金额 | 状态 |
|---|---|---|---|---|---|---|---|---|
| 粤B·2K8H1 | 轿车 | 定期保养 · 换机油三滤 | 09-01 | 09-03 17:00 | 宏运汽修 | 孙彦 | ¥860 | 在修 |
| 粤B·5L6C3 | 皮卡 | 更换刹车片 | 09-02 | 09-04 12:00 | 宏运汽修 | 孙彦 | ¥1,240 | 待取件 |
| 粤B·9T0M4 | 轿车 | 事故钣喷 | 08-28 | 09-06 18:00 | 通达车服 | 孙彦 | ¥4,300 | 在修 |
| 粤B·7F2K9 | 商务车 | 年检代办 | 09-05 | 09-05 16:00 | 通达车服 | 孙彦 | ¥320 | 已预约 |
界面是示意,人名车牌都是编的。这里的取舍也只是一种配法——哪一列给谁看,是你们自己在控制台上点出来的,不是我们定死的。
把刚才五个身份摊开画成一张网格,一件容易被忽略的事就浮上来了:「谁能看见什么」不是一个问题,是两个。它们长得像,配置的地方却完全不同。
应用生成出来的时候,凡是敏感的功能都是待授权状态——没有人能用,包括建它的人自己。要开给谁,在控制台的功能权限页上点:可以点角色、点部门(自动含子部门)、点具体某个人,也可以点外部角色。
| 功能 | 开放给谁 | 已经点了名的 |
|---|---|---|
| 提交用车申请 | 全员开放 | 组织里所有成员 |
| 审批本部门用车 | 仅指定对象 | 角色:部门负责人 |
| 派车与改派 | 仅指定对象 | 角色:车队管理员 |
| 看每趟费用 | 仅指定对象 | 角色:车队管理员、部门负责人 · 部门:财务部 |
| 导出用车台账 | 待授权 | 还没有人能用,包括管理员自己 |
| 回填维修进度 | 仅指定对象 | 外部角色:维修厂 |
改完实时落到正在运行的应用上——不用让 AI 再跑一轮,也不用重新发布。一份权限同时管开发版和正式版。
下半那四行不在这一页上。「申请人只看自己提的、部门负责人看本部门、驾驶员看派给自己的」——这是应用自己的业务逻辑,在对话里说一句就行,不需要谁去点开关。之所以要把这条界线说清楚,是因为混淆它的代价很具体:想让财务看到全公司的车,如果去功能权限里给财务加一条,他拿到的是那个功能,连别人部门的审批按钮也一起亮了。
日常最省事的做法是先把角色建好再配:财务、车队管理员、部门负责人这几个角色一次建好,以后人员变动只改角色成员,不用挨个应用去改。人一调部门,所有应用同一刻生效。
这些名字都照 使用说明 · 功能权限 那一页的原话,没有另造。
看完谁能看见什么,值得回头问一句:这些列凭什么存在。答案是这套系统底下还有一层——一台车一份档案,四类记录全挂在它下面,而不是各自躺在各自的表里。
| 挂在这台车下面的 | 谁录、什么时候录 | 挂上去之后才回答得了 |
|---|---|---|
| 车辆档案 | 买车时录一次:车牌、车型、归属部门、保险与年检到期日 | 这台车归谁、哪天到期 |
| 出车记录 | 每张派车单完成时自动落一条,驾驶员补两个里程数 | 这个月跑了几趟、多少公里、哪个部门用得最多 |
| 加油记录 | 司机加完油拍张小票,金额和升数自动认出来 | 百公里油耗,异常的那台会自己冒出来 |
| 保养记录 | 保养完行政录一次,或者修理厂在自己的账号里回填 | 下次保养还差多少公里 |
| 维修记录 | 送修时开单,进度和取车时间由修理厂自己填 | 这台车今年修了几次、花了多少 |
这五本东西在大多数公司都是有的——只不过分别躺在五个地方:档案在行政的一张表格里,加油在财务的加油卡对账单里,保养和维修在抽屉里的发票上,出车在司机的手写本上。所以「这台车今年花了多少钱」这个问题答不上来,从来不是因为没数据,是因为这些数据没有挂在同一辆车下面。
挂到一起之后,有三件事是顺带长出来的,不用另外建:单车年度成本(加油、保养、维修三本一加就是)、油耗异常(同款车摆在一起,偏得多的那台自己跳出来)、以及到期提醒——档案里本来就有保险和年检两个日期,平台的定时任务每天扫一遍,提前 30 天推给行政本人。这三件都是档案的副产品,不值得为它们各建一个系统。
车什么时候能取,最清楚的人是修车的师傅。让他自己填,这件事就不用行政每天打两个电话,也不用微信里翻聊天记录找「说是周三下午」。
不占贵司通讯录,进不了控制台,看不到成员名单和别的应用;打开只有这一个页面。
外部用户走的是另一道门:手机号验证码登录,你单独把人建进来,给他一个外部角色(比如「维修厂」),再在功能权限里把该开的功能授权给这个角色。没授权的功能对他就是不存在,连登录都进不来。
他能看见哪几台车,和内部同事是同一套逻辑:按归属。送到宏运的两台他看得见,送到通达车服的两台他看不见——两家修理厂用同一个应用,彼此看不到对方。
有一列他也看不见:结算金额。那是行政审完之后填的数,不是他报的价,所以它留在公司这一侧。这类到字段级别的取舍,正是「同一张表各看各的」这句话最后要落到的地方。
同一条通道换个名字就是别的场景:租赁公司报可用车辆、代驾公司接单、外包司机填行程。共同点是他们只参与流程里的一两步,不该看到全貌。
会议室与共用设备:把车换成会议室、投影仪、试验台。档案那一层变成设备台账,派车变成预约,驾驶员变成设备管理员——连「同一时段不能重复占用」这条规则都是一样的。
印章、证照与合同原件借用:底表是一份证照档案,借出和归还各落一个时间戳。这类东西的权限比车更紧:谁借过什么,往往只有法务和借用人本人该看得见,连部门负责人都不该有整张表。
宿舍、工位与备用机:底表是资产,每一条挂着「现在在谁手上」。行政看全部,员工只看自己名下的那几件,离职交接时把一个人名下的东西一次列全——这件事在表格里要靠筛选和记性,在这里是一次查询。
客户与供应商档案:底表换成客户,「谁能看见哪几行」变成防撞单——销售只看自己名下的客户,主管看整个团队的。这一类的结构和派车一模一样,只是底表里放的是人不是车。
这类系统有一个别的系统没有的坏毛病:配错了不会报错。多给了,没有人会来告诉你——看到不该看的东西的那个人,通常不会觉得这是个问题;少给了,同事那边的表现只是「按钮不见了」,他多半以为是应用坏了,而不是权限没开。
所以发布之前请把本页开头那件事,在控制台上再做一遍:用以身份预览换成每一个角色,把应用真打开看一眼。你看到的就是那个人会看到的界面——不用去借同事的账号,也不用等他上线以后来投诉。五个角色走五遍,通常十分钟。
还有一件值得在动手之前先谈定的事,它比开发本身更花时间:部门负责人到底该不该看到别的部门的用车。技术上两种都两分钟就能改,难的是公司里没人愿意先表态。建议按「谁为这笔钱负责,谁就看得见」来切——它比按职级切更容易解释,也更不容易被要求开例外。
它和「谁能点导出」不是一回事,走的是两条路。能不能用某个功能(导出台账、看每趟费用、改派车辆)在控制台的功能权限页上点,按角色、部门、个人逐项开放,改完实时生效,不用重新发布;而看得见哪几行属于应用自己的业务逻辑,在对话里说一句「申请人只看自己提的、部门负责人看本部门」就行。这两件事最容易被当成一件,混了就会返工。
用外部用户:手机号验证码登录,不占通讯录、进不了控制台,也看不到成员名单和别的应用。给他们建一个外部角色(比如「维修厂」),在功能权限里把该开的功能授权给这个角色,他们就只能打开你点名开放的这一个应用,只看得到属于自己的那几条。
用控制台的以身份预览,换成那个人的身份把应用打开一遍,看到的就是他真实会看到的界面,不用去借同事的账号。权限配错是静默的——多给了没人会来告诉你,少给了同事只会看见按钮不见了,所以上线前把每个角色各走一遍是这类应用唯一可靠的自检办法。
可以,但顺序要对:先把「一台车一份档案」这一层建起来,再把出车、加油、保养、维修四类记录挂到车上去。直接把几张表原样搬进来,得到的还是几张互不相干的表,「这台车今年花了多少钱」照样答不上来。
观思动的入口就是一句话。把它复制走自己去建,或者带着它跟我们聊——两条路的起点是同一段文字。
做一个公务车派车与用车台账应用:先给每台车建一份档案,记车牌、车型、归属部门、保险和年检到期日,出车、加油、保养、维修四类记录都挂在这台车下面;员工在手机上提用车申请,填用车时间、事由、目的地和随行人数,由本部门负责人审批,通过后由车队管理员派车并指定驾驶员;驾驶员出车前后各填一次里程,加油小票拍照上传;每台车能看到本月出车次数、总里程、油费和维修费,保险与年检到期前 30 天自动推企业微信提醒行政;用车申请人只看得到自己提的单,部门负责人看本部门的,驾驶员只看派给自己的,车队管理员看全部;送修的车由外部的维修厂账号自己回填进度和预计取车时间,他们只看得到送到自己厂里的那几台。