林晨用了一个周末的时间,把晨枫快餐的管理系统从Excel搬到了一个真正的系统里。
周五晚上十点,第一家店打烊之后,林晨坐在后面的小仓库里,面前是一台笔记本电脑和两罐红牛。屏幕上是VS code的界面,左边是python代码,右边是mySqL的数据库表。他敲了四个小时的代码,从订单管理模块开始写。python和FastApI搭后端,mySqL存数据,小程序做前端,没有用任何复杂的框架,每一步都是为快餐店的实际需求设计的。数据库的表结构他画了三版,第一版太复杂,第二版缺了几个字段,第三版才定下来。每张表对应一个业务模块,订单表、库存表、排班表、财务表,四张表,干干净净。
订单管理是最先上线的功能。两家店的订单数据通过小程序实时同步,林浩在任何一家店都能看到另一家店的出菜情况。第二家店的平均出菜时间从面板上能看到,如果出菜时间突然从五分钟变成八分钟,数字旁边会出现一个红色的标记。林晨在代码里设了一个阈值:出菜时间超过七分钟就标红,超过十分钟就弹窗提醒。他试了几次,阈值调到七分钟正好,太低会误报,太高会漏报。
第二家店出菜慢了,这边有提示。林浩看着ipad上的界面说。
看数据不如看人。林晨补了一句,但数据能告诉你什么时候该去看人。
林浩没说话,手指在ipad上划了两下,把第二家店的出菜时间面板放大了。屏幕上显示的是过去两个小时每道菜的出菜时间曲线,回锅肉的平均出菜时间从六分钟变成了五分半,鱼香肉丝稳定在五分钟。数字不会骗人,但数字也不能替他站在灶台前面。
库存管理模块是林晨从FinGpt的代码里改出来的。他把金融数据接口换成了食材数据接口,把策略信号换成了补货提醒。系统每天晚上自动统计两家店的食材消耗量,计算出每种食材的安全库存线。任何一种食材低于两天用量的时候,林枫的手机上会收到一条提醒。林晨把库存预警的阈值设成了两天用量,太短容易断货,太长容易浪费,两天是个平衡点。
林枫看了一眼手机上的提醒。猪肉还剩四十斤,明天要去拉货了。
系统会自动提醒你。林晨说。
我知道,但它提醒的时候,我已经在路上了。林枫把手机揣回口袋。他每天凌晨四点出门拉货,系统的提醒对他来说更像是一个确认,而不是预警。不过有总比没有强,至少他不用再在脑子里算库存了。以前他每天睡前要在脑子里过一遍第二天的食材需求,猪肉还够几天、蔬菜还够几天、调料还够几天,现在这些数字全在系统里,他只需要看一眼手机就行。
员工排班模块是最简单的。一个日历界面,每个员工标上上班时间,两家店的排班在同一张表上。谁在哪家店,颜色标注清楚。排班冲突的时候界面会弹出黄色提示,林浩不用再在脑子里算谁今天在哪里。林晨在排班逻辑里加了一个规则:每家店至少要有一个能出全部十道菜的人,如果排班结果导致某家店没有熟手,系统会自动标红。
以前排班靠脑子想。林浩扫了一眼日历界面,现在看颜色就行。
财务报表模块林晨花的时间最少。林枫的手写报表已经很详细了,他只需要把数据从纸上搬到系统里。日报和周报自动生成,营收和净利润、翻台率和回头客占比,这些数据以前林枫要花一个小时算,现在系统五秒钟出结果。林晨在报表里加了一个同比环比的计算,每天跟昨天比,每周跟上周比,每个月跟上个月比,数据的变化趋势一目了然。
系统上线的第一天是个周一。林枫拿着ipad坐在第一家店的角落里,从中午十一点看到下午两点。他没说话,只是在屏幕上点来点去,看每一个模块的数据。订单模块和库存模块他各点开看了两遍,排班模块和财务模块各看了一遍。他特别仔细地看了库存预警的那一栏,猪肉、蔬菜、调料的剩余量和安全库存线全部标成了绿色和黄色,没有红色,说明一切正常。
跟你t厂的系统有什么区别?林枫终于开口了。
没区别。逻辑一样,数据不一样。林晨坐在对面,手里端着一杯水。
林枫想了一下。那这个系统能不能算出来哪个菜最赚钱?
林晨拿过ipad,点了两下屏幕,调出一张表格。十道菜的毛利率排名从高到低排列,鱼香肉丝排第一,毛利率百分之七十四。水煮肉片排最后,毛利率百分之五十八,食材成本高,第二家店已经不上这道菜了。干煸四季豆的毛利率百分之七十一,但单价低,每份的绝对利润只有八块钱。
你把单价和毛利放在一起看。林枫说。
林晨把表格切换成另一个维度:每道菜的每小时利润贡献。鱼香肉丝每小时能出十二份,每份利润七块三,每小时利润贡献八十七块六。水煮肉片每小时只能出八份,出餐时间长,每份利润七块五,每小时利润贡献六十块。这两个菜的毛利率差了十六个百分点,但每小时利润贡献只差了二十七块,因为鱼香肉丝出餐快,同一时间能出更多份。
鱼香肉丝比水煮肉片赚钱。林枫看了一眼数字,得出了结论。
水煮肉片是招牌。林晨说,它拉客流。没有水煮肉片,客人不会来。
林枫点了一下头。他管了十几年材料采购,有些东西不能只看单价。贵的不一定亏,便宜的不一定赚,关键看它在整个结构里起什么作用。
林晨在系统里加了一个维度:综合利润指数。毛利率和出餐速度加权计算,再乘以点单率,得出每道菜的综合贡献值。鱼香肉丝排第一,回锅肉排第二,麻婆豆腐排第三。
这三道菜的排名跟营收排名几乎一样。林枫看了看表格。
利润结构是稳定的。林晨合上笔记本电脑,招牌菜拉人,利润菜赚钱,结构没问题。
林枫在ipad上又划了两下,扫了一眼财务模块的月度数据。两家店合计月营收二十八万,净利润十五万出头。这些数字以前是他用计算器一笔一笔敲出来的,现在系统自动生成,五秒钟就出来了。他把ipad放在桌上,看了一眼窗外。第一家店的门口排着三四个客人,外卖骑手在旁边等着取餐,一切都在正常运转。
以前月底算账要算到凌晨两点。林枫把ipad推到一边,手指在桌面上敲了两下,现在点一下就出来了。
你以前算的是什么?
营收、成本、毛利、净利润,四个数。现在系统里十几个维度,我以前想都不敢想。
林晨没接话。他看着林枫在桌面上敲的手指,知道这是他在思考的习惯。林枫管了十几年的材料采购,对数字的敏感是天生的。系统给他的不是新东西,只是把他脑子里一直在算的东西变成了看得见的数据。
系统上线一周后,两家店的数据同步变得流畅了。林浩不需要每天在两家店之间跑三个来回,他只在第二家店待两个小时,剩下的时间在第一家店。两家店的出菜速度和库存量全部在ipad上一目了然,哪边出了问题,数据面板上最先反映出来。
阿伟也习惯了看卡片出菜。每天早上备料的时候,他会按照卡片上的用量提前称好调料,用小塑料盒分装,每道菜一盒,贴上标签。出菜的时候拿一盒倒进锅里,不用再凭手感,也不用再看卡片。出菜时间稳定在五分半,跟林浩在的时候一样。副厨也慢慢习惯了,虽然他出的那几道菜还没有完全标准化,但有了卡片和定量勺,至少不会再出大偏差。
有一天下着雨,林枫的手机在凌晨四点收到了一条库存预警。大蒜的库存低于两天用量,系统自动推了一条提醒。他看了一眼,马上打电话给第二家店,让阿伟把备用的大蒜从第一家店的冷柜里拿一部分带过去。中午他拉货的时候多进了五斤大蒜,系统里的库存线又变回了绿色。第二天林晨在系统里加了一个功能:当某种食材触发预警时,自动在两家店之间做一次库存调拨建议。如果第一家店有富余、第二家店缺货,系统会提示从第一家店调货。这个功能上线之后,断货的情况再也没有出现过。
林枫在笔记本上记了一行字:系统上线一周,两家店出菜效率持平,库存损耗降3%。
你这是把t厂的系统搬到了快餐店。林枫说。
林晨没否认。他收起笔记本电脑,瞟了一眼时间,站起来往门口走。明天还有一堆数据要调,库存模块的安全库存线需要根据两周的实际消耗重新校准,排班模块要加一个换班申请的功能。他推开门走进夜色里,脑子里已经在想明天要改的代码了。
系统上线第二周,林晨又加了一个模块:会员分析。两家店的会员数据汇总在一张表上,按消费频次分了三档,每月来四次以上的标绿色,两到四次的标黄色,一次以下的标红色。绿色会员占百分之三十五,贡献了百分之六十的营收。这个数字跟他在t厂做用户分析时看到的规律一样,百分之二十的用户贡献百分之八十的价值。快餐店也一样。
系统上线一个月之后,林晨在电子表格上加了一行数据:管理效率提升百分之十五。他算的是林浩每天在两家店之间跑的时间。以前他每天要跑两到三个来回,现在只需要跑一个来回,省出来的时间他用来做菜品研发和培训阿伟。库存损耗也降了三个百分点,以前每周总有几斤蔬菜因为备多了卖不完而扔掉,现在系统根据历史数据自动调整备料量,浪费少了很多。林晨在电子表格的最后一行写了一行字:数字化不是目的,效率才是。然后他合上电脑,看了一眼时间,十点了。