林辰刚放下手机,眉头就皱了起来。电话是政数局的工程师打来的,声音急促,说住建局的数据接口连上了,但系统读不出关键字段,测试环境已经崩溃两次。
他立刻抓起外套往外走。招待所项目指挥部离这里不远,步行十分钟就能到。路上他拨通了周敏的号码,把情况说了一遍。
“你确定不是我们这边配置的问题?”林辰问。
“我反复检查过了。”周敏在电话那头回答,“数据流能进来,但结构完全对不上。字段命名没有规则,有些该有的字段根本不存在。”
林辰挂了电话,加快脚步。他知道这事不能拖。项目刚拿到临时拨款,技术人员也进了场,现在卡在数据对接上,一旦耽搁,后面所有节点都会被推后。
十分钟后,他推开指挥部的门。陈雪和刘伟已经在了,周敏正坐在电脑前翻看日志文件,旁边站着那位政数局的工程师,脸色不太好。
“问题出在哪?”林辰直接问。
周敏抬头,“住建局的数据库格式和他们报备的标准不一致。我们按标准做的解析器,结果发现实际传输的数据里,‘申请人身份证号’这个字段有时候叫Id_cARd,有时候叫cREdIt_No,甚至有一次变成了USER_KEY。”
“有没有可能是测试数据的问题?”刘伟插了一句。
“不是。”工程师摇头,“我们用了他们正式提交的历史记录包,一样乱。字段顺序变来变去,必填项也不固定。这种数据质量,没法做自动化处理。”
林辰走到白板前,拿起笔写下三行字:
数据格式混乱
字段定义缺失
系统无法解析
他盯着这三条看了一会儿,转身问:“影响范围有多大?”
周敏打开投影,调出项目进度图。“如果这个问题不解决,身份核验模块和补贴发放流程都跑不起来。至少耽误七天。”
“七天不行。”林辰打断,“市级督导组的验收节点提前到了第十五天,我们只剩十二天时间。再掉链子,前期所有努力都白费。”
屋里安静了几秒。
刘伟低声说:“要不要先瞒着?等找到办法再说。现在报上去,怕上面觉得我们掌控不了局面。”
林辰看了他一眼。“你觉得能瞒几天?今天系统跑不通,明天日报怎么写?后天督查组来查进展,拿什么给人看?”
刘伟低下头没说话。
“问题不是出在我们身上。”林辰语气平稳,“但我们得承担后果。所以唯一的出路,是尽快拿出应对方案,而不是想着怎么遮掩。”
他说完,转向陈雪:“你马上准备一份情况说明,发给区委改革办和政数局。标题就写《关于试点项目数据对接异常的初步报告》。内容要客观,只讲事实,不提责任归属。”
陈雪点头,打开笔记本开始整理要点。
林辰又对周敏说:“联系住建局信息科,我要知道他们的数据库到底是什么版本,最后一次更新是什么时候。”
“我已经打了三个电话。”周敏说,“但他们说系统太老,原始文档早就找不到了,现在维护都是靠老师傅凭经验操作。”
林辰沉默片刻,忽然问:“最近一个月,他们有没有对外输出过完整数据包?比如上报市里的季度报表?”
“有。”周敏想了想,“每季度都要给财政局送一次业务汇总。”
“那就去找那份报表。”林辰说,“让基层窗口的人帮忙,把最近几笔实际办理的案例数据打包发过来。我们要从真实业务流中反推字段逻辑。”
“可这样合法吗?”刘伟有点犹豫,“没经过上级授权,私自收集跨部门数据……”
“我们不是窃取。”林辰说,“是为了解决系统兼容问题,确保群众办事不受影响。所有获取的数据仅用于技术适配,全程留痕备案。真有人追责,我来担。”
没人再说话。
陈雪已经拟好了报告草稿,递给林辰过目。他快速扫了一遍,改了两处措辞,然后点击发送。
“现在分两步走。”林辰站直身子,“周敏带技术组,全力逆向分析数据结构,争取明天中午前拿出临时转换方案;陈雪继续跟进住建局沟通,争取让他们派个熟悉系统的人员现场支持;刘伟负责后勤,安排轮班,今晚所有人都要顶住。”
他看了看表,十一点十七分。
“我就不回去了。”他说,“就在这儿守着。”
陈雪看了他一眼。“你要不要先休息一下?明天还有协调会。”
“等事情稳住再说。”林辰坐回椅子上,“现在每一分钟都可能决定项目能不能按时上线。”
周敏那边已经开始联系基层窗口人员。几分钟后,第一个数据包传了过来。是永清县下辖某镇住建窗口昨天办结的一笔危房改造申请。
工程师接过文件导入测试环境。屏幕闪了一下,部分字段终于能识别了。
“有用!”他喊了一声,“虽然命名不统一,但从上下文能判断出哪些是姓名、哪些是地址。我们可以建一个映射表,手动标注常见字段的别名。”
林辰走过去看着屏幕。“那就从这个样本开始,把所有可能出现的字段别名都列出来。之后每收到一个新样本,就验证一次映射规则。”
“工作量会很大。”周敏说。
“没别的路。”林辰说,“总比干等着强。”
陈雪这时接到住建局信息科的回电。对方表示可以配合,但需要区府办出具正式函件才能派人参与技术支持。
“告诉他们,函件正在走流程。”林辰接过电话说,“今晚先让值班的技术员保持在线,随时响应我们的查询请求。明天一早,函件就会送到。”
对方迟疑了几秒,答应下来。
时间一点一点过去。凌晨一点,技术组已经收集到六个不同乡镇的数据样本,初步整理出三十多个字段的常见别名,并建立了一个简易的自动转换脚本。
测试运行一次,系统成功解析了八成以上的字段。
“剩下的两成怎么办?”刘伟问。
“人工补录。”林辰说,“先把核心字段打通,非关键信息允许短时手工录入。等主流程跑通,再回头优化全自动方案。”
他走到白板前,在原有的计划下面加了一条:
启动人工辅助机制,保障主线运行
然后画了个倒计时:48小时。
“我们必须在后天凌晨前完成全部调试。”他说,“这是底线。”
陈雪一直在电脑前更新日报模板。她把当前进展、采取措施和下一步计划整理成简报格式,设定好明早七点自动发送给相关单位。
刘伟去外面买了几份盒饭回来,没人动筷子。
政数局的工程师揉了揉眼睛,“我通宵没问题,就是担心明天白天撑不住。”
“你先眯两小时。”林辰说,“三点钟叫你起来交接。我们排个班,保证机房一直有人。”
屋子里只剩下键盘敲击声和偶尔的低声交流。
林辰站在窗边喝了口凉水。玻璃上映出房间里的灯光和几个人忙碌的身影。
楼下大院静悄悄的,只有路灯还亮着。一辆环卫车缓缓驶过,刷地停下,司机下车捡起了路边一个空塑料瓶,扔进车厢。
林辰转过身,看见周敏正把最后一份样本数据导入系统。转换脚本重新运行,进度条缓慢前进。
屏幕上的数字跳动了一下。
错误代码消失,状态变为“连接成功”。