第四十九章 · 回来¶
周三早上七点四十一分,纪衡回了消息。四个字:「九点半。三楼。」
昨晚十点半发出去的那句「有个事,当面说」,在他手机里躺了九个小时。回复没有问是什么事,也没有问哪天方便。
同一天的日历上还有另一行:跨境三个兜底的修复 MR,万钧定的死线,今天下班前。
他把三个 MR 最后过一遍。失败即告警、失败期间停止折算、回滚阈值千分之十。单测四十一个,全绿。八点五十,他点了提交,指派给刘铮,留言一行:「死线内。」
刘铮七分钟后回:「收。评审我来催。」
九点二十五,三楼。纪衡办公室的门开着,桌上没有茶,只有一台笔记本,屏幕上是一张资源表。
「坐。」纪衡说。
陈稳坐了。
「万钧那边的位置,一年值多少,你算过没有。」
「算过。」
「多少。」
「没算出来。」陈稳说。「跨境的盘头三个月还在搭。值多少,要看后年。」
「那你回来,是亏的。」
「按钱算,是。」
纪衡把笔记本转过来半圈,屏幕上是交易结算部的资源表。一组的框里,人数比他走的时候多了一个,名字他不认识。
「合并以后,一组七个人。王磊带两个新人。蒋辉的二组,不归你管。」纪衡说。「你回来做什么。」
「对账那条线没做完。」
「推广方案十二月底交了。六条业务线。」
「交的是方案。」陈稳说。「系统还是 T+1。」
纪衡的手指在桌面上敲了两下。
「新业务孵化组,直接向 VP 汇报。结算组向谁汇报,你知道。」他说。「一个月,你在万钧那边资源评审全过,六十七处的清单他拿去当 Q2 的抓手。这个位置是有人排着队要的。你放弃它,回来做一条十二月底就『交完』的线。我不理解。」
陈稳把手机翻过来,屏幕朝下,放在腿上。
「还没做完。」他说。
「哪一块没做完。」
「差异单的处理。上周扫静默兜底,扫到一个配置。差额千分之三以内的对账差异单,自动以结算侧金额核销。不生成异常单,不通知业务线。」陈稳说。「说明栏是空的。」
纪衡敲桌子的手停了。
「哪个配置。」
「settle.reconcile.auto_accept.enabled。八月一号开的。」
「你什么时候扫到的。」
「上周二。」
「为什么现在说。」
「清单要交,就得交真的。」陈稳说。「这条变更在结算的库里。人回来了,话得跟着回来。」
纪衡往后靠了两度。这是他听进东西的时候的姿势,陈稳总共见过两次。
「影响多少。」
「八月到现在,自动核销四千四百一十二笔,核销金额九万六千三百四十元。业务线没有一方知道。」
纪衡把这两个数字抄在纸上。
「四千四百一十二,怎么数出来的。」
「差异单表,settle_diff_order,状态 auto_accepted。」陈稳说。「按月按业务线聚出来四十行,单子本身六千多字我贴在邮件里了。」
「先讲数。」
「谁改的。」
「还没核实完。」
「谁批的。」
「配置中心不需要批。」
纪衡把笔放下,纸推到桌子中间。
「第一件事,把它核实完。要什么权限,列给我。」他说。「第二件事,四千四百一十二笔,按业务线拆开,哪条线吃了几笔,给我一张表。」
「好。」
「第三件事。」纪衡说。「你在万钧那边学会的东西,别丢。这边用得上。」
这句不像问句。陈稳应了一声好。
「工位你自己挑。下周一到。」纪衡说。「考核的事我跟万钧通了电话,停到你走的那个周五。」
陈稳起身的时候,纪衡又开口。
「你走的时候,我问过一个人,你后不后悔。」
陈稳站在门口。这个问题他有答案,答案里有一个日期和一个咖啡店。他没有说。
「现在不用答了。」纪衡说。「去吧。」
九点四十一分,五楼西区。刘铮在工位上等他,屏幕开着评审页面。
「三个 MR,两个批了。」刘铮说。「汇率兜底那个,万征加了一条评论,问删了兜底以后,千分之十的回滚阈值谁来盯。」
「你怎么答的。」
「告警挂人,人不盯挂值班。」刘铮说。「他回了个👍。」
「可以。」
「交接文档昨天理完了。」刘铮把一个 U 盘推过来。「三周以后接手的人到。你回去之后——」
他停住了。上次那半句也没说完。
「缺的不是会写的人。」陈稳说。
「你记住了。」
「记住了。」
下午他收拾工位。五楼西区的桌面上东西不多:一台显示器,一个水杯,两盒并排的胃药,一张背面朝下压在键盘角上的名片。他把名片翻过来,背面的字读了一遍——跟他说你是做 settle.guard 的那个人——又翻回去,收进背包夹层,和顾源的打印件放在一层。
晚上回住处做饭。冰箱里那半罐辣酱剩一个底,他开着火,用勺子刮罐壁,刮出来的不多,拌进面里,正好一碗。吃完他把罐子洗了,倒扣在沥水架上。
盐罐快见底。他抓了一撮撒进锅里,尝了一口,正好。这罐盐是十二月开的,她搬走以后,他没有买过新的。
周四早上九点,他先去了三楼。
「八月那条变更,我昨天说了一半。」陈稳说。「还有一半,今天补。」
「说。」
「来源那一栏,我拿到了。一个内网 IP,跟八月一日删索引那条记录,是同一个。两次操作,间隔五分钟。」陈稳说。「这条线两个月前查到门禁,断在审批上。我走之前,工单自动归档了,最后跟进人写的是我的名字。」
纪衡的手指停在纸面上。
「你扫了两个月,扫出一条八月的线。」他说。「你在万钧那边,一天都没放下过。」
「清单要交真的。」
「IP。」
「10.14.1.88。」
纪衡把这几个数字写在纸上,笔画很慢。
「DHCP 那条线,当时卡在哪儿。」
「卡在申请记录。两次分配,申请人写的都是张毅。张毅八月一号在黄山,有 OA 审批。」陈稳说。「再往下,要查这个 IP 一月以来有没有新的分配,以及每次登录配置中心的日志。」
纪衡把纸推回来。
「去查。运维部你要谁对接。」
「赵岩。」
「工单抄送我。」纪衡说。「这次别等九十天。」
十点二十,他提交 OA 工单:查询 10.14.1.88 自 2027 年 1 月 1 日以来的 DHCP 分配记录,及对应时段配置中心登录日志。抄送纪衡。
十一点零五分,赵岩的回复到了,比他想的快。两张截图。
第一张,DHCP 分配记录一条:2027 年 1 月 22 日 21:07:44,IP 10.14.1.88,MAC 00:1A:2B:3C:4D:5E。申请人一栏,空白。
第二张,配置中心登录日志一条:2027 年 1 月 22 日 21:14:03,账号 root,来源 10.14.1.88,访问命名空间 settle。操作类型:查询。变更数:零。
MAC 和八月那台机器对得上。一月,它又来了一次。没有改任何东西,只查了结算的命名空间。
一月二十二日晚上九点十四分。那个晚上陈稳在补说明栏空白的十一处,补到第九处,九点十四分的时候,他刚把第七处的说明提交完。同一段时间里,有人从同一台机器登进来,看了同一个命名空间。
他在记事本上写:「1 月 22 日 21:14。它回来看了一眼。看的是我扫过的那页。」
再一行:「那晚我在补说明。它可能看见我了。」
赵岩在消息末尾附了一句:「工单我提了加急。别谢我,谢抄送的那个人。」
陈稳回:「收到。」
下午他把四千四百一十二笔差异单按业务线拆。
六条业务线,最少的四十一笔,最多的一条线一千二百一十四笔:汇金。他把汇金线按月再拆,十一月一个月四百三十一笔——手抄台账跑的整月。十二月二十日回执口径上线,整月不到八十笔。
每一笔都在千分之三以内,最大的单笔差额不到四块钱。钱不大,笔数不对。台账手抄的月份,差异单是回执口径的五倍多。
他把表发给纪衡,附一句:「汇金线的手抄台账期间,差异单密度是回执上线后的五点四倍。台账精度问题,和推广方案里那条风险注释对得上。」
纪衡回了两个字:「收到。」
隔了四十分钟,又来一条:「汇金那条,下周一你先去对一次。带着你的表去。」
五点半,二号楼旁边的咖啡店。他先到,点了两杯,把其中一杯放在对面的位子前。
易文五点四十进的门。
「工位坐进去了。」她说。这不是问句。
「下周一。」
「谁批的。」
「我自己开口的。」
易文把糖包撕开,倒进去半包,搅了两圈。
「十二月底我问你那两个问题,你说分不出。」她说。「现在分出来了。」
「分出了一半。」
「另一半呢。」
「让线自己说话。」陈稳说。「能不能成,做了才知道。」
她端起来喝了一口,把杯子放下。
「上次这杯说好了你请。」她说。「比我想的早了五天。」
「早比晚便宜。」
「这句话不像你说的。」易文把杯子转了半圈。「下个双月会你上去讲。讲的时候记住今天这句——让线自己说话。讲不出来,就还是你在替它说。」
结账的时候他先扫了码。她看了一眼小票,没有争。
「回去以后,」她说,「别什么都自己扛。现在组里有七个人,四千四百笔拆得完,一月二十二号这种事,一个人查不完。」
陈稳端着杯子。一月二十二号的事,他一个字都没跟她说过。
「什么一月二十二号。」她问。
「一个新查到的东西。」他说。「还没核实完。」
「你上次说『还没核实完』,是三个月前。」易文说。「核实完之前,别让第二个九十天过去。」
周五是他在跨境的最后一天。考核停到今天,下午的周报三百字,发给刘铮。四点,刘铮从工位那边抬手拍了一下自己的桌子,隔着两排工位,什么都没说。
四点五十,万钧的消息进来:「清单补来源那条,下周五。人走了,数没走。」
陈稳回:「查完就补。」
万钧没有再回。对话框停在那一行。
下班前他把五楼西区的门禁卡交回前台。前台登记,撕了张条给他:「二月一号,老楼一楼重新办。」
办卡条他夹进记事本,夹在写着一月二十二日那页后面。
回工位的路上,刘铮叫住他,递过来一个文件袋。
「接手人的简历,万钧圈了一个。」刘铮说。「三年跨境支付,日语能读。你回去之前带两天。」
「明天上午。」
「还有,」刘铮说。「汇率兜底下线以后第一个完整周,失败率千分之四点二,没触发回滚。这个数你走之前要不要写进交接。」
「写。」陈稳说。「数跟着系统走,不跟着人走。」
刘铮笑了一下,回去了。
周六下午,他拆了鞋柜那个纸箱。
四百八的皮鞋在箱子最底下,鞋尖那两道皱褶比十一月又深了一道。他拿湿布把鞋面擦了一遍,摆上门口鞋架的最上层。旁边那双新鞋的鞋楦没拆,他抽出来看了看,又原样塞回去,纸箱折平,压在阳台的角落。
箱子底还剩一张超市小票,二〇二六年十一月三日的,买鞋那天他陪她去交的停车费,七块。他把小票折了两折,扔进垃圾分类,其他那一格。
周日他装包。水杯,胃药,那张结算组的便利贴,顾源的打印件。装到最后,他把一页折过角的记事本抽出来——「先让差异静默,再让对账跑不动。顺序不对。或者,删索引本来就不是为了静默。」折角按原来的方向折了回去,放进包的外袋。
晚上他把交接文档最后过了一遍。文档末尾有一栏是空的:接手人签字。他把这一栏留着,什么都没填。
一月二十七号那天,K1074 应该发车。他打开购票软件查了一眼,那趟车显示:候补。他把软件关了。
周一,二月一号,早上八点四十,老楼一楼。闸机还是人脸识别,他低头对准,闸开了。前台办卡,新卡上部门一栏印着:交易结算部·一组。
二楼走廊尽头,戴耳机的年轻人不在了。老梁的旧工位空着,桌面左上角一圈白色的印子,擦不掉的那种。打印机在老位置,指示灯闪了一下,没有吐纸。
他的工位跟走的时候一样。显示器上一层薄灰,擦一遍就没了。王磊端着笔记本从会议室出来,在过道上停住。
「你回来了。」
「回来了。」
「纪总周五就说了。两个新人下个月独立值班,周报模板我按你那份改的。」王磊说。「有一处没敢改——模板最后那栏『问题比事实有用』,新人看不懂。」
「留着。」陈稳说。「看不懂就问。」
「问谁。」
「问我。」
蒋辉是十点钟过来的,端着他的杯子,在他工位旁边站定。
「回来了。」
「回来了。」
「坐回原来这个位子。」蒋辉说。「我就知道。」
「你什么时候知道的。」
「万钧拍板那天下午。」蒋辉喝了口茶。「六十七处的清单你交到一半人就走了,补来源那条他压给了你,下周五。这条线现在算谁的,你想清楚没有。」
「算我带回来的。」
「带回给纪衡,还是带回给万钧。」蒋辉说。「两边都在等同一个答案,答案只能给一个。」
陈稳把水杯放在桌上,杯底和桌面磕了一声。
「给查到的人。」
蒋辉看了他两秒。
「你现在说话,比三个月前像样。」他说。「周二排班评审,你来讲讲对账这边的排期吧。别讲方案,讲剩多少、卡在哪。」
「好。」
蒋辉端着杯子回二组去了。走到门口,他回头补了一句:「你那个 IP 的事,什么时候要人手,说一声。」
陈稳没有问他是怎么知道的。蒋辉从来有他的渠道,这件事上次是提醒,这次也算。
下午三点,他登录,拉起 IDE,打开对账模块的入口文件,往下翻到第三百一十行。
注释还在:
-- TODO: 对账模块重构,当前实现基于逐笔比对,时间窗口为 T+1。目标:T+0 实时对账。
去年八月三十一日写的。之后他背了 C,写了 OKR,合了组,走了又回来。这一行没人动过。
光标停在行尾。他在下面新建了一个分支,名字打了一半:
feat/reconcile-realtime
回车之前,他把光标停了两秒,然后按了下去。
窗外,对面那栋楼的那扇窗,还是黑的。他数了数:十二个月零六天。
← 第四十八章 决定 · 目录 · 第五十章 重写 →