陈方远那条消息发出的时候是下午六点十分,陆衍一直把手机扣在桌上,等到快九点才打过去。
不是故意晾着,是他想先把这件事的边界想清楚再开口。
电话接了,那头是外面的背景声,饭馆或者咖啡馆的嗡嗡声。
「方便说吗?」陆衍问。
「你说,」陈方远说,声音压低了一点,「我就是想知道那条整改记录是怎么找到的。」
「工具发现的是文件里的日期问题,」陆衍说,「跟认证机构没有关系——那个是字段扫描,机构叫什么名字工具不管。」
「那恒远整改的那条呢?」
「那是我自己查的,」陆衍说,「7份证书同一家机构,集中度不正常,我就多查了一下。认证机构的整改记录,来源是各省市的市场监管局和认证监督管理委员会,公开的,但分散,各省一个平台,不在一个地方,普通搜索翻不到。」
陈方远沉了一下,「你是说这个不是工具做的,是你自己搜的。」
「对,这次是碰到了顺带发现的,不是固定流程。」
「那以后呢,」陈方远说,「你们是每个项目都会这样查一遍认证机构的背景,还是只有碰巧发现的时候才会说?」
这正是陆衍想清楚之后才敢回的问题。
「目前是后者,」他说,「但如果这类需求是固定的,我可以想想怎么系统化。让我回去想一想,明天跟你说。」
他挂了电话,把本子翻到新的一页。
桌上的台灯照着纸面,他写了两行,然后停下来看了一会儿。
「这张证书的字段有没有问题」——工具的事。

「签这张证书的机构可不可信」——不同的数据库,不同的流程。
两件事的性质不同。第一件,工具做的是文件字段之间的逻辑一致性,有什么写什么,没有边界问题。第二件,需要的是认证机构的历史记录,来源是监管平台而不是文件本身,查的也不是「这份证书有没有问题」,查的是「发这份证书的人有没有问题」。
一个向内,一个向外。
他在两行字下面画了一道横线,然后写:规模是关键——全国认证机构有多少家,有整改记录的有多少家,是否能建一张查询表。
如果有整改记录的机构是几百家,每次项目都重新翻一遍监管平台不现实。但如果只有几十家,那建一个查询库是可以做的事情:拿到证书,机构名字和查询库比对,有记录的出提示,没记录的空白,不用每次都重新搜。
问题是他不知道那个数是多少。
他看了看时间,九点二十,冯树可能还没睡。
冯树接电话接得很快,声音有点懒,但没有睡意。
「耀之资本那边进展怎么样了,」冯树开口就问,「食品添加剂那部分走到哪了?」
「还在跑,」陆衍说,「我打电话是问另一件事。」
「说。」
「你知道全国有多少家认证机构吗?」
冯树顿了一下,「你问这个干嘛?」
陆衍把恒远的事说了一遍,包括那7份证书、整改记录、附注格式,以及陈方远的那个问题。
「他问以后你们是否每个项目都查,」陆衍说,「我在想如果认证机构数量有限,可不可以做一张整改记录查询表,拿到证书直接比对,不用每次人工翻。」
「这个,」冯树说,「认证机构备案数据库是公开的,我记得在市场监管总局那边,不是散的,是统一备案的,应该有完整名单。」

「有整改记录的呢?」
「这个就散了,各省各地的通报,不在一个地方,」冯树说,「不过如果你只要最近五年的有效记录,口子可以收窄——失效或已注销的机构可以排掉,剩下的就是现在还在开展业务的、历史上有过整改记录的,这个范围应该是可以查的。」
「你觉得大概有多少家?」
「我不知道,」冯树说,「让我下午看一眼,再跟你说。」
陆衍把本子上那行问题重新看了一遍,确认冯树理解了他要的是什么,才说:「好,你有时间的时候查,不急。」
「不急你打什么电话,」冯树说,「我下午查,你等消息。」
第二天下午两点,冯树发来了一条消息。
是一串数字,前面没有解释。
陆衍打开看:「73。」
然后才是下面一段:「市场监管总局官网,认证机构备案名单,目前在册2400多家。我把最近五年有省市级整改通报或者监督抽查异常记录的逐个核了一遍,包括已整改的,73家。其中还在业务正常开展、资质没有吊销的,大概60出头。」
陆衍盯着那个数字看了一会儿。
73,在2400多里面不到3%。这是个小到可以处理的集合。
他回了一条:「你用了多长时间?」
「三个小时,」冯树说,「手动的,不快,但思路清楚。」
「三个小时,73家,能不能整理成一张表?」
「已经整理了,」冯树说,「机构名称、备案号、整改记录时间、整改内容摘要、当前资质状态,五列,发给你?」

「发过来。」
文件发过来的时候是下午两点十八分,Excel格式,73行,每行五列,整齐干净。
陆衍翻了一遍,在恒远那一行停了几秒。信息和他之前手动搜到的一致,只是冯树写得更简洁,把核心信息提炼了出来。
他把文件存好,坐在椅子上想了一会儿。
问题从来不是这张表难不难建,是这张表是不是青舟该做的事情。
陆衍在本子上把之前那两行字重新抄了一遍:「这张证书的字段有没有问题」vs 「签这张证书的机构可不可信」。
然后在下面加:后者是前者的前提,但前提的核验是另一件事。
他想到江远洲上次说的那句话——「证明做过检查」。当时他理解的是检查文件字段,是留下一个可追溯的操作记录,证明在交割之前有人认真过了每一份文件。但如果这份检查还能包括对签发机构的背景核查,那这份「做过检查」的证明就更厚实了一层。
不只是「我看了文件」,还是「我不只看了文件,我还查了签这份文件的人」。
他把本子翻到新的一页,写了三行:
工具层:文件字段一致性,自动扫描,覆盖每一份。
机构层:认证机构背景记录,查询库比对,补充性信息。
报告层:两层结果合并输出,来源性质分开说明。
三层是不同的东西,覆盖范围、可靠性、更新频率都不一样。工具层每次都要跑,机构层靠一张表,定期更新。报告层是输出格式,把前两层的结果放在各自该放的位置。
这三层拼在一起才是陈方远问的那个「以后你们都会做吗」。
他发消息给卫越:「那张73家的整改记录表,你看一眼,看看报告里能不能加一个「认证机构背景」模块,逻辑是:取出文件里出现的所有认证机构名称,和查询表比对,有记录的出提示,格式和附注一样——来源是表,不是工具自动扫描的。」

卫越回复很快:「可以做。名称比对不复杂,有模糊匹配的需求吗,比如「恒远检测」和「恒远检测技术有限公司」要不要合并?」
「要,」陆衍说,「主要名称要对得上。」
「好,」卫越说,「表可以先用冯树整理的这个,我对接一下逻辑。」
陆衍把手机放下,拿起那支没盖盖的钢笔,在本子上圈了那三层。
下面他写了一行:范围清楚,来源清楚,格式清楚——这件事能做。
当天晚上,他给陈方远发了一条语音消息。
不长,四十秒出头:「之前你问以后是否每个项目都会查认证机构背景,我今天想清楚了。可以做,但不是工具自动的——是我们查了一遍全国认证机构整改记录,建了一张查询表,73家有记录,以后每次报告都包含机构背景这一层,有记录的出提示,没记录的空白,格式和文件扫描报告分开但一起发。」
停了一下,「不额外收费。先跑几个项目,确认这张表的覆盖范围和准确性,再决定后面怎么做。」
发出去大概十分钟,陈方远回了一条:「那加进来,我们愿意多付一点。」
陆衍看着这条消息,把手机放下。
愿意多付的意思,是他认为这件事有价值,不只是附送的功能。但陆衍现在不想谈价钱,他想先知道这张表在真实项目里跑出来的结果是什么——73家在2400里面不到3%,大多数项目遇到的认证机构不在那个范围里,那这个模块输出的会是一堆空白,空白不是没有用,但它需要有人理解这个空白意味着什么。
他在本子上记了一行:先跑,看结果,再说定价。
然后在下面写了冯树那个数字:73/2400。
这个数字是今天最有用的发现。不是因为73很大,而是因为73足够小——小到一个人花三个小时可以整理出来,小到可以放进一张表里,小到青舟能管得住这件事。
如果这个数字是七百三十,他今晚不会发那条语音。