![]()
凌晨一点,办公室只剩陈默头顶那排灯亮着。林晚抱着一个纸箱站在门口,箱沿露出卷好的床单。
“你那间空房,还租吗?”她问。
陈默把椅子转过来,第一反应是拒绝。他与林晚合作过几次,却从没和女同事合住过,更不想把工作里的事带回家。
手机偏在这时亮了。周启发来消息:天亮前交出仓储试跑方案,赶不上就换人。
林晚看见屏幕上没来得及熄掉的货位图,放下纸箱,指着一行数字说:“退货托盘怎么也算进可用货位了?”
陈默以为她看错了,调出原始表。三个库区的退货托盘都占着位置,演示数据却把那些格口列成了空位。
明早客户要按图走车。车到了,库门里却没有地方卸货,演示会当场停摆。
“你能帮我核一遍运营那边的退货流程吗?”陈默问。
林晚没有立刻坐下。“先说房子的事。我今天从原来的住处搬出来了,今晚得有地方睡。”
陈默看了看她的纸箱。“两居室月租三千六,一人一千八。先试住一个月,公共地方一起收拾,工作上的事回家也可以说不。”
“行。”林晚拉开椅子,“先把明天救下来。”
两人查到凌晨三点。林晚逐项标出退货托盘的去向,陈默重算容量,把原方案里那张漂亮的满负荷图换成了分区试跑图。
他另加一页风险提示:退货区清空前,不得按全仓可用货位向客户承诺接车量。林晚读完,让他把这页放在演示图后面。
“周总可能嫌它难看。”陈默说。
“现场堵车更难看。”她把核过的清单推还给他。
发出修订稿后,陈默陪她去取剩下的行李。雨还没停,林晚的东西只有两个箱子和一只小行李袋。
上楼时她没有提为何急着搬,只在门口停了一下,等陈默先开门。空房的灯亮起来,床架和衣柜都是房子原有的。
“钥匙明天给你配。”陈默说,“今晚先用我的备用钥匙。”
林晚把箱子推进屋里,又折回客厅拿水。陈默听见她轻轻关上房门,才发现自己还穿着在办公室熬夜的外套。
第二天八点,陈默带着修订方案进会议室。周启已经坐在主位,看到新增的风险页,翻过两页,停了一瞬。
“容量图改了?”周启问。
“退货托盘占着三个库区的格口。照原图演示,车进来就没有卸货位。”陈默把清单递过去,“我想把限制条件向客户讲清楚。”
周启接过纸,却没有表态。客户一到,他便让陈默操作系统,自己负责介绍。
屏幕上的车辆沿修订路线进入仓库,预约、扫码、分配货位一项项跑通。客户现场负责人还让人临时换了一辆车,系统也给出了正确的库区。
会议室里有人鼓掌。陈默放下鼠标,准备翻到风险页,周启却先接过遥控器,投出了结束页。
“昨晚做了点格式调整,今天的演示效果大家都看到了。”周启笑着对客户说,“正式上线按这个版本推进。”
陈默看向投影。那页写着接车限制的风险提示已经从正式文件里移走,连目录都不留痕迹。
客户问最早什么时候能接正式车队,周启报了日期。陈默张了张嘴,看见客户的试跑权限申请还压在周启手边。
会后他追到走廊。“那三个库区今晚还没清出来,至少要告诉客户按什么条件接车。”
“试跑数据已经修好,别把内部清理写成系统风险。”周启放慢脚步,“权限我还没批,你先把上线准备做完。”
陈默跟过周启两年。入职时,是周启从一堆简历里挑中了他;后来每次棘手交付,也总把他带去现场。
这份情分让陈默把反驳咽了回去,却没法删掉自己电脑里的风险页。他把昨夜的计算表与晨会版本分别存好,去找仓库值班员核清退货区。
值班员说白班已经开始搬托盘,但要清空三个库区,最快也得明早。陈默请他把完成时间发在工作群里,自己继续催试跑权限。
直到傍晚,权限才批下来,附着一句“勿影响正式上线”。陈默跑完最后一轮模拟,系统没有再把退货位认作空位。
他回家时,玄关多了一只浅口碗,里面放着备用钥匙。林晚正在把纸箱压平,见他进门,只问:“客户看到限制条件了吗?”
“没有。演示过了,周启把风险页拿掉了。”陈默换鞋,“我今天没拦住。”
林晚把压好的纸箱靠在墙边,没有劝他去争那页是谁写的。“真到了现场,出问题谁接电话?”
陈默的手机随即响起来,屏幕上是客户现场负责人的名字。
“陈工,系统显示还有空位,”对方声音发紧,“车队已经到门口了,第一辆车进了库却卸不下来,后面的全堵住了。”
陈默立刻拿起电脑。“先别让第二辆车进门。我现在查车位状态,也马上过去。”
林晚抓起外套,伸手关掉玄关的灯。“运营那边我来联系。路上你把今天实际清走的托盘数问清楚。”
车开到仓库时,雨水正从篷顶往下淌。门外排着六辆货车,司机们围在保安亭前,指着手机上的预约号争论。
陈默先找到第一辆车的司机,请他把车停在不挡消防通道的位置。司机熬得眼睛发红:“系统给了位,我按指示进来,里面的人却让我倒出去。”
“这笔等候时间先记我这里。”陈默记下车号和到场时间,“让我跟你走一遍路线。”
林晚去找值夜班的运营主管。陈默跟着叉车司机从入库口走到退货区,沿路看见好几排贴着旧标签的托盘。
司机用叉尖指向最里侧。“白天搬走了一批,可这些待验退货不能直接上架。系统把这里算空的,我连转弯都转不过去。”
陈默拿出电脑,对照现场格口。昨夜修订过的容量表没有问题,正式接车时调用的验收模板却是另一个版本。
那个模板把退货区标成了普通货位,还允许系统在未完成复核时分配给新到车辆。陈默记下模板编号,问谁批准沿用。
值班员翻出上线通知:“上周就定了,周总说先按旧客户的模板走,后面再切。”
陈默没有让值班员替谁背书。他拍下模板编号和现场货位状态,又请司机带他按系统指派的路线走了一遍。
第二次走到转角,叉车必须连退三把才能绕过待验托盘。门外又有司机按喇叭,值班员急得把对讲机音量调大。
“先暂停给车分配退货区。”陈默说,“已经预约的车,能卸的转到东侧,不能卸的给司机明确时间。”
值班员看向他:“你能改吗?总监的上线通知还在群里。”
“我先向客户报现场情况,改动由他们确认。”陈默拨通现场负责人的电话,当着值班员把库内位置说清。
客户负责人走来时,林晚正拿着手机与运营主管核对试跑条件。她把一封旧邮件转给陈默:“当初确认的是退货复核完成后才开放这些格口。”
邮件由客户项目组发出,抄送了周启和仓库运营。附件里的条件与陈默昨夜保留的风险页一致,日期早于正式上线通知。
客户负责人看完,在门口站了片刻。“先把路疏通。我给你们到明晚的修复窗口,超过时间,后面的车全部改送别家仓。”
陈默请运营主管清出东侧两个真实空位,让最先到的车卸货。林晚逐辆通知司机新的排队顺序,把原本堵在路口的车引到等候区。
第一辆车卸完已近凌晨。陈默仍留在库里,对照原始操作记录复现分配结果:系统读取的是旧模板,司机没有选错预约项目。
他导出未修改的操作日志,又让值班员保留上线通知的原文。
周启的电话在这时打来。“客户说车堵了?你昨晚怎么改的容量?”
“容量改对了,正式环境用的还是旧模板。客户留存的试跑邮件写着,退货复核前不能开放格口。”陈默报出模板编号。
那头静了两秒。“先把你的个人失误说明写出来,交给我。我帮你挡客户,后面会补偿你。”
陈默看着还亮着灯的卸货口。“我可以写明昨晚没有坚持让风险页留在正式文件里,不能写成模板是我擅自选的。”
“陈默,我是在给你留余地。”周启的语气冷下来,“明早的听证,客户总得看到有人负责。”
“我会到场说明。”陈默说。
挂断电话后,林晚递来一瓶水。她只问日志有没有保存完整,没有替他评价周启。
“你今晚也不用一直待着。”陈默接过水,“车疏开了,运营人员会盯后面的预约。”
“我还要核一件事。”林晚把试跑条件重新读了一遍,“旧客户的模板谁申请复用,运营这边有记录。查到了发你。”
他们各自做事。陈默把现场发现写成两页说明,附上车辆实际路线和需要停用的模板编号,发给客户现场负责人确认。
对方很快回复:路线属实,同意先关闭退货区自动分配,其余库区限量接车。这封回复给了修复组一条能执行的路。
天快亮时,林晚拿到运营记录。旧模板曾被提出过复核意见,周启为赶季度验收,批准先复用;运营主管当时要求把条件写进上线提示。
陈默看了记录,仍有一处刺眼:晨会后他知道风险页被移走,却只在内部催过清库,没有直接告诉客户。
他把这段也写进自己的说明,标明时间和他做过的事。写完,他请林晚帮他看有没有把现场司机的操作写错。
林晚逐行读完,只改了“司机误入”四个字。“他是照系统指示开的,别让他替我们承担这句。”
上午,客户要求周启、陈默和仓库运营参加听证。陈默带着日志、客户留存的原版邮件以及修复方案赶去会议室。
电梯里,周启发来私信:别忘了,当年是谁把你招进来的。
陈默盯着那行字。入职面试时,周启替他争过一次机会;如今也是周启,要他把旧模板的问题写成个人失误。他把手机收起,抱紧文件夹走出电梯。
听证室门外,客户负责人正在和仓库经理说话。看见陈默,他指了指桌上的车队记录:“今天把事说清,再谈明晚能不能继续接车。”
陈默进门时,周启已经坐下。他面前放着一份打印好的说明,第一页写着“交付人员配置疏漏”。
客户负责人没有先看那份纸。“昨晚你说正式环境调了旧模板,原始记录带来了吗?”
“带来了。”陈默把操作日志投到屏幕上,“我按时间说,哪里是我做的,哪里不是。”
他先展示客户确认的试跑条件,再打开晨会使用的修订稿。昨夜的容量错误已被改正,正式文件却拿掉了退货区开放前必须复核的提示。
接着是上线通知、模板编号和车辆入库后的操作记录。屏幕上的时间一项接一项向前走,没有哪一步需要靠猜。
周启打断他:“模板是现成的,试跑结束后切换也来得及。你作为交付负责人,没提醒我正式环境还挂着它?”
“我昨夜提醒了退货区不能接车,晨会后也催过清库。”陈默停了一下,“但我看见风险页被移走时,没有坚持让客户收到。这部分责任我认。”
客户负责人问:“旧模板是谁批准用到正式环境的?”
周启伸手去拿纸杯。仓库运营主管打开审批记录,念出批准时间和名字。会议室安静下来。
陈默没有翻出手机里的通话记录,也没有提那条私信。他把屏幕切到现场路线图:“争这一步不影响现在要做的事。明晚前必须把错误分配停住。”
他的方案只保留真实空位接车,退货区待验托盘逐格复核;系统修正后,先用昨晚被挡住的车辆预约单重跑,再请客户现场验收。
“谁来带队?”客户负责人问。
“我。”陈默说,“昨夜车没进来时我在场,修复过程由我向你们逐项交付。”
周启立刻摇头。“不行。现有人员都在别的项目上,你一个人带不了。部门也不能为这件事停下其他交付。”
陈默没有答应替整个部门承诺。他把最低所需的人手写在白板上:一名系统配置员、一名仓库现场员,加上他自己。
“给我这三个人到明晚。”他说,“做不到,我现在就告诉客户窗口守不住,不让车队再空等一次。”
会议室后门打开,区域负责人走进来。她原本只旁听最后的责任处理,看见白板上的时间安排,叫周启先坐下。
“让我听完他的方案。”她说。
陈默重新说明最关键的验证步骤。区域负责人问了两处:旧模板停用后会不会影响其他客户,仓库能否在明晚前完成退货区复核。
陈默分别给出隔离办法和仓库经理确认过的工作量。仓库经理当场点头,表示可以派一名熟悉现场的值班员。
“系统配置员我来协调。”区域负责人说,“陈默负责修复,周启负责把其他项目的人手交接好。”
周启看了陈默一眼,没有再说人手不够。客户负责人把昨晚的车辆记录合上,提出下午看一次配置结果,明早看现场重跑。
散会的间隙,陈默在走廊遇到林晚。她手里还拿着运营那份试跑条件,眼下有熬夜留下的青色。
“区域负责人怎么会来?”陈默问。
“我把你写的现场说明和客户邮件转给她办公室了。”林晚说,“她管这片区的运营,昨晚的车队也在她职责里。”
陈默以为她是循着正常业务渠道递的材料,心里仍有些意外。“你该先跟我说一声。”
“是我越过你了。”林晚没有替自己找理由,“我怕你上午只剩周启那份失误说明,没把转送的事告诉你。”
陈默看着她。“这次材料是真的,客户也在场。下次涉及我的方案,先让我自己决定怎么递。”
“好。”林晚把文件交给他,“接下来你自己说。”
下午的配置核查比会上预计的难。旧模板与其他库区共用一段规则,直接删除,另外两家客户的预约也会受影响。
借来的系统配置员只有半天时间,看到规则后想先复制一整套新模板。陈默算了算验证时间,否决了这个做法。
“只隔离退货区的自动分配,再核现有预约。”他把受影响的车单列出来,“改得越大,今晚越验不完。”
配置员照着他的范围修改。仓库现场员则带人清点格口,把不能开放的托盘位置一一标回系统。
晚上八点,客户负责人来到库里。陈默用昨晚第一辆车的预约单重新测试,系统这回把车引向东侧空位,没有再指向退货区。
客户负责人又随机挑了两张车单。一次通过,一次因司机到场时间变更而被拦下,陈默当场解释了限制条件。
“至少系统开始说实话了。”对方说,“明早我带车来复验。过了,停用正式上线的决定就撤回,后续限量接车。”
陈默没有急着庆祝。他把明早的接车上限写进交付承诺,只列自己能组织完成的修复和验证,不写“整个部门保证兜底”。
周启看见签字页,皱眉问:“你把部门承诺删了?”
“我能负责修复,不能替没到场的人签接车量。”陈默拿起笔,“客户要的是明天有车能进、有位能卸。”
他在修复负责人一栏签下自己的名字。客户负责人收起文件,约定明早六点从第一辆车开始复验。
回到工位,陈默才收到人事协调单:原组员已被抽去周启手里的另一个项目。
明早六点,客户就要带车来复验,跟他进仓的却是两名从未碰过这套系统的临时同事。