两个都叫“成人票”的票种被合成一个,是数据搬完之后最容易埋雷的一步。迁移校验那一晚人手不够,做映射的人按名字对,把旧售票系统里两个同名票种都挂到票务系统新库的同一个票种上。第二天早上第一批客人到窗口,出的票票面价少了一档,检票口的适用通道跟着错,一整天补打了三十多张票。

按名字合并为什么是错法?名字是最不稳定的字段,改个名字不要审批,也不影响任何单据。而票种底下挂着票面价、有效期规则、通道权限和历史单引用。同名的两档,往往一档是全价日票,一档是含观光车的联票;也可能是同一档全价票,一档平季一档旺季。票务系统里只留一个,两档的规则就被压成一条,出事的时候没人知道自己踩的是哪一条,只能整批回滚。
要比的是四个维度,不是名字
逐个两两比对四项:票种编码、票面价、有效期、适用通道。编码看新旧两库是不是同一条主键,编码不同的两个名字绝不可能是同一种票。票面价要对着调价记录核最后一次生效的那档,别拿界面显示的旧值比。有效期看是当日有效、次年同日前有效,还是按次数扣。适用通道最容易漏,这一项决定这张票能过哪几个闸机口、能进哪几个点,两条通道规则不同的票并到一起,检票口就只能靠人拦。历史单引用要在合并前查,把引用多的并进引用少的那个,等于让一堆老单指向一张已停用的票,客人来退改时售票系统找不到规则,窗口只能一句“系统里查不到”把人打发走。

停用哪一个得有人签字。签字的人是运营负责人,不是技术员,也不是做映射的那个人。签之前要出两张纸:一张同名票种对照表,四个维度逐行填;一张引用统计,写清每档挂着多少历史单、多少未核销,这份统计只能从旧售票系统的只读库里导,新库里的引用数不完整。值班经理在窗口侧确认客人看得懂新名字,财务在结算侧确认两档的分成规则没被并掉,两边都点过头才能停。票务系统里票种停用是当天生效,不会给你留观察期,所以停哪一个的决定要晚上线半天,等窗口和渠道都确认完再动手。少这一步,停用就成了技术员一个人的决定,之后所有的解释都落在他头上。
判定值就一句话:同名票种必须两两比对四个维度,四个全同才允许合并。“两两”这三个字有讲究,同一个名称出现三次时,比法是先挑信息最完整的那一档作基准,另两档各自与它比,比完仍剩下两档不同就留成两档,绝不许多数归一。多数归一听着省事,实际上是把少数那一档的引用丢在原地。
例外是保留和停用的方向。票面价不同、但历史单引用多的那一档不能停用,要改名而不是合并:引用多的留下改名,加一个季节或者通道后缀,把引用少的那档停掉。停用引用多的那一档,会同时砸三样东西,老单退改找不到票种、渠道后台的名字对不上、年卡里剩余的次数按错规则扣。改名只麻烦窗口一次,停用要麻烦财务和渠道一整年,这笔账在做映射的人手上通常算不过来,得由值班经理在旁边提醒一句。

鄂公网安备 42018502004652号