Sáng thứ Hai, Dư An tới công ty sớm hơn thường lệ mười lăm phút. Không phải vì có cuộc họp quan trọng. Lịch của cậu chỉ bắt đầu lúc chín giờ rưỡi, còn phần việc cần làm trước đó cũng không đến mức phải vội. Nhưng từ tối qua, sau khi đóng khung trò chuyện với Tống Hoài Cẩn mà không lưu trữ lại, cậu ngủ không sâu. Đến gần sáu giờ sáng đã tỉnh, nằm thêm một lúc cũng không ngủ lại được, nên dứt khoát rời nhà sớm.
Trong thang máy, Dư An mở điện thoại một lần. Khung trò chuyện cá nhân vẫn ở vị trí cao hơn trước. Không có tin nhắn mới. Cậu nhìn hai giây rồi chuyển sang ứng dụng công việc.
Quang đã gửi từ lúc bảy giờ hai mươi một bảng đối chiếu nhà cung cấp mới nhất. Tin nhắn đi kèm rất ngắn: “Bên tập đoàn vừa bổ sung danh sách lịch sử. Có mấy mã cũ hệ thống mình đang nhận là nhà cung cấp mới, anh xem giúp em trước khi chạy lại nhé.”
Dư An trả lời “Được”, rồi bước ra khỏi thang máy. Việc đối chiếu này vốn không khó. Khi hai hệ thống dùng cách đặt mã khác nhau, cùng một nhà cung cấp có thể xuất hiện hai lần chỉ vì tên viết khác, đổi tên pháp nhân hoặc chuyển từ mã cũ sang mã mới. Nếu không làm sạch trước, lúc chuyển dữ liệu sang hệ thống chung sẽ rất dễ sinh chuyện: cùng một đơn vị nhưng tồn tại hai hồ sơ, lịch sử hợp đồng nằm một nơi, lịch sử thanh toán nằm một nơi khác, sau này truy lại rất mất thời gian.
Dư An đã xử lý kiểu việc đó nhiều lần. Cậu lấy cà phê ở khu pha nước, ngồi xuống bàn, mở tập tin Quang gửi. Bảng có hơn một nghìn dòng. Phần lớn đã được hệ thống đánh dấu tự động. Màu xanh là khớp chắc chắn theo mã số thuế; màu vàng là tên gần giống nhưng còn phải kiểm tra; màu đỏ là có yếu tố trùng nhưng dữ liệu không đủ.
Dư An lọc màu đỏ trước. Mười hai dòng. Cậu đi lần lượt, không vội. Một nhà cung cấp đổi địa chỉ. Một đơn vị trước đây ghi thiếu loại hình doanh nghiệp. Hai trường hợp tên cũ và tên mới khác hẳn nhưng mã số thuế giống nhau. Có một hồ sơ đã ngừng hoạt động từ ba năm trước nhưng phía công ty cậu vẫn còn một khoản bảo hành chưa kết thúc, nên chưa thể bỏ khỏi dữ liệu chuyển đổi.
Đến dòng thứ tám, Dư An dừng chuột. Tên hiện tại là Công ty TNHH Giải pháp Kỹ thuật Tân Lộ. Mã đang dùng ở công ty cậu: SUP-1187.
Hệ thống đề xuất nối với một mã lịch sử phía tập đoàn: TL-047. Tên cũ ở dòng đối chiếu là Công ty TNHH Thương mại Kỹ thuật Tân Lộ. Mã số thuế giống nhau.
Không có gì đặc biệt. Doanh nghiệp đổi tên, đổi ngành nghề mô tả hoặc sửa cách ghi trên hệ thống là chuyện bình thường. Dư An định bấm xác nhận thì nhìn thấy cột “nguồn lịch sử”.
Không phải một công ty. Ba công ty con. Cậu kéo ngang sang phải. Mã TL-047 từng được dùng ở ba đơn vị thuộc tập đoàn trong giai đoạn cách đây bảy đến tám năm, sau đó bị chuyển sang trạng thái ngừng sử dụng. Tới khoảng bốn năm trước, hồ sơ pháp nhân được cập nhật tên mới. Phía công ty Dư An bắt đầu giao dịch với đơn vị này hai năm rưỡi trước, hoàn toàn độc lập với dữ liệu cũ của tập đoàn.
Dư An không xác nhận nữa. Cậu mở phần lịch sử đi kèm. Một bảng khác hiện ra, lần này là các lần hồ sơ nhà cung cấp được tạo, sửa, dùng cho hợp đồng và gắn vào thanh toán. Dữ liệu cũ không đẹp. Có dòng thiếu tên người thao tác, có dòng chỉ còn mã tài khoản, có dòng không rõ người duyệt vì hệ thống đời trước chỉ giữ chuỗi ký tự thay vì mã nhân sự. Đây chính là kiểu dữ liệu khiến nhóm của Dư An mất mấy ngày trước để dựng lại bảng đối chiếu người dùng.
Cậu phóng to. TL-047. Ngày tạo đầu tiên nằm ở năm Dư An học lớp mười một. Sau đó là hàng chục lượt phát sinh ở ba công ty con khác nhau. Dư An lướt xuống theo thứ tự thời gian. Phần lớn tên không có ý nghĩa với cậu. Có người cậu chưa từng nghe. Có những tài khoản chỉ hiện dạng ký hiệu cũ. Cậu gần như định đóng bảng thì một cái tên xuất hiện giữa cột người duyệt.
Lâm Chính Viễn.
Ngón tay Dư An dừng trên bàn rê chuột. Không có âm thanh nào thay đổi trong văn phòng. Máy điều hòa vẫn chạy. Bàn bên kia có người vừa kéo ghế. Phía khu pha nước, tiếng máy pha cà phê vang lên một nhịp ngắn rồi tắt.
Dư An nhìn lại cái tên lần nữa. Lâm Chính Viễn. Không phải một ký hiệu gần giống. Không phải tên trùng. Phần dữ liệu đi kèm còn giữ mã nhân sự cũ và đơn vị làm việc của cha cậu.
Cậu ngồi thẳng lưng. Bảy năm trước, cha từng nói có nhiều hồ sơ mua hàng và dịch vụ đi qua bộ phận của ông, một số mang chữ ký của ông. Dư An biết điều đó. Cậu cũng biết cha chưa từng phủ nhận phần trách nhiệm nghề nghiệp của mình. Chính Viễn từng nói rất rõ: có những hồ sơ ông đã tin vào các bước kiểm tra trước, có những lúc bị thúc tiến độ, và đáng lẽ ông phải kiểm tra sâu hơn trước khi ký.
Nhưng trong suốt bảy năm, những điều ấy chỉ tồn tại trong trí nhớ của Dư An dưới dạng lời kể của một buổi tối rất xa. Bây giờ nó nằm trước mặt cậu thành một dòng dữ liệu.
TL-047. Tân Lộ. Lâm Chính Viễn.
Dư An kéo bảng sang phải. Dòng có tên cha cậu thuộc một yêu cầu thanh toán cho gói thiết bị. Số tiền không hiện trong bảng tổng hợp vì dữ liệu tài chính chi tiết được tách sang phần khác, nhưng chuỗi phê duyệt vẫn còn. Cha cậu không phải người tạo yêu cầu. Ông cũng không phải người đầu tiên duyệt. Tên ông nằm ở giữa một chuỗi bốn bước.
Dư An đọc lại từ đầu. Người đề nghị. Người xác nhận nghiệp vụ.
Lâm Chính Viễn. Một tài khoản quản lý khác ở bước cuối. Tài khoản cuối chỉ còn mã cũ, chưa nối được với tên người. Cậu không nghĩ gì thêm từ một dòng.
Một dòng không chứng minh được gì. Dư An lọc toàn bộ lịch sử theo mã TL-047. Hai mươi chín giao dịch có chuỗi duyệt đủ dùng. Trong số đó, tên cha cậu xuất hiện ở chín. Sáu giao dịch khác thuộc công ty con nơi cha chưa từng làm. Bốn giao dịch được tạo sau thời điểm cha cậu đã rời khỏi công ty.
Dư An dừng ở con số cuối. Bốn. Cậu kéo phần thông tin người dùng sang một cửa sổ khác, tìm mã nhân sự cũ của Chính Viễn. Tài khoản công việc đã bị khóa vào tuần ông rời vị trí. Mốc thời gian nằm đó rất rõ.
Sau ngày tài khoản bị khóa, TL-047 vẫn còn bốn lần phát sinh mới trong hệ thống của tập đoàn. Một lần ở công ty cũ của cha cậu. Ba lần ở hai công ty con khác.
Dư An đặt tay khỏi bàn phím. Cậu biết quá rõ không được phép suy từ đó ra câu “cha mình vô tội”. Một nhà cung cấp tiếp tục hoạt động sau khi một người nghỉ việc không nói lên ai là người đã làm gì trước đó. Những khoản sau có thể xuất phát từ hợp đồng cũ, từ nghĩa vụ đã ký, từ một quy trình hoàn toàn khác. Việc tên Chính Viễn chỉ nằm giữa chuỗi phê duyệt cũng không xóa trách nhiệm của ông đối với chữ ký của mình.
Nhưng có một điều đã khác. Suốt bảy năm, trong ký ức của Dư An, câu chuyện về cha luôn bị đóng khung quanh một điểm: những hồ sơ có chữ ký của Lâm Chính Viễn. Còn dữ liệu trước mặt lại cho thấy mã nhà cung cấp ấy đi qua nhiều người, nhiều công ty và vẫn tiếp tục tồn tại sau khi Chính Viễn đã rời khỏi hệ thống.
Nó lớn hơn một chữ ký. Dư An mở một ghi chú trống. Cậu không viết suy luận. Chỉ chép dữ kiện.
TL-047 — Công ty TNHH Thương mại Kỹ thuật Tân Lộ.
Tên hiện tại: Công ty TNHH Giải pháp Kỹ thuật Tân Lộ.
Cùng mã số thuế với SUP-1187.
Xuất hiện tại ba công ty con.
Lâm Chính Viễn xuất hiện ở 9/29 chuỗi phê duyệt còn đủ dữ liệu.
Có giao dịch tiếp tục sau ngày tài khoản Lâm Chính Viễn bị khóa.
Dư An đọc sáu dòng rồi xóa dòng cuối cùng cậu vừa định viết: “Cha không phải người duy nhất.” Câu ấy đúng theo nghĩa bề mặt, nhưng vẫn là một kết luận. Cậu thay bằng: Cần kiểm tra người ở bước duyệt cuối và nguồn hợp đồng.
“Anh An.”
Dư An đóng cửa sổ ghi chú theo phản xạ rồi mới nhận ra Quang đứng cách bàn mình một mét. “Gì vậy?”
Quang chỉ màn hình. “Mấy mã đỏ có vấn đề gì không anh? Em định mười giờ chạy lại.”
Dư An nhìn đồng hồ. Tám giờ bốn mươi bảy.
“Bảy mã đầu xác nhận được. Mã TL-047 để riêng.”
“Không nối với SUP-1187 à?”
“Chưa.”
Quang cúi nhìn tập tin. “Cùng mã số thuế mà.”
“Đúng. Nhưng phần lịch sử của nó đi qua nhiều đơn vị, còn có giao dịch cũ chưa xác định được người duyệt cuối. Nếu nối thẳng rồi làm gọn dữ liệu quá sớm, sau này truy ngược sẽ khó.”
Quang gật đầu. “Vậy em đánh dấu giữ nguyên lịch sử?”
“Ừ. Đừng gộp bản cũ vào bản mới. Chỉ tạo liên kết để biết hai mã là cùng pháp nhân.”
“Ok.”
Dư An nhìn cậu ta quay đi, rồi mở lại ghi chú. Lần này cậu không đóng nữa. Chín giờ hai mươi, Tống Hoài Cẩn tới khu làm việc của nhóm phía công ty Dư An trước giờ họp mười phút. Cậu không đi thẳng đến bàn Dư An như mấy ngày đầu mà dừng ở chỗ Hà, trao đổi ngắn về danh sách vấn đề tuần này. Đến khi Hà chỉ sang phía Dư An, Hoài Cẩn mới bước tới.
“Danh sách nhà cung cấp lịch sử có vấn đề?”
Dư An ngẩng lên. “Một mã cần giữ riêng để kiểm tra.”
“Lỗi dữ liệu?”
“Chưa chắc.”
Hoài Cẩn không nhìn vào màn hình. “Cậu cần ai tham gia?”
Dư An im một nhịp. Câu hỏi giống hệt cách Hoài Cẩn đã hỏi trong mấy tuần vừa qua mỗi khi có vấn đề: cậu cần gì, cần ai, phần nào thuộc quyền cậu quyết. Không phải “đưa tôi xem”, cũng không phải “để tôi xử lý”.
“Chưa cần ai.” Dư An nói. “Tôi muốn đối chiếu thêm lịch sử hợp đồng và người duyệt trước.”
“Bao lâu?”
“Hôm nay tôi sẽ biết có đáng mở thành một nhánh kiểm tra riêng không.”
“Được.” Hoài Cẩn vẫn chưa hỏi mã nào.
Dư An nhìn cậu một giây rồi nói thêm: “Nếu cần dữ liệu từ phía tập đoàn, tôi sẽ gửi yêu cầu qua kênh công việc.”
“Ừ.”
“Cậu không hỏi là mã nào à?”
Lần này Hoài Cẩn mới nhìn thẳng vào cậu. “Cậu vừa nói muốn đối chiếu trước.”
“Thì sao?”
“Nếu cậu muốn tôi biết bây giờ, cậu sẽ nói.”
Dư An không đáp ngay. Có lẽ vài tuần trước, câu ấy sẽ khiến cậu khó chịu. Hoặc cậu sẽ lập tức nghĩ Hoài Cẩn đang tránh biết điều gì. Nhưng hiện tại, nó chỉ là một câu trả quyền quyết định lại đúng chỗ.
“Đúng.” Dư An nói.
Hoài Cẩn gật đầu, không hỏi thêm. Cuộc họp sau đó kéo dài hơn một giờ. Nội dung chủ yếu là những việc rất hiện tại: nhóm nào được chuyển sang luồng phê duyệt mới, nhóm nào phải giữ thêm dữ liệu cũ, những hồ sơ chưa đủ điều kiện thì cần ai xác nhận. Dư An tham gia bình thường. Cậu phản biện hai điểm, sửa một mốc và từ chối chốt một nhóm yêu cầu vì thiếu danh sách người phê duyệt dự phòng.
Không ai nhận ra giữa một bảng hơn một nghìn nhà cung cấp có một mã khiến lòng bàn tay cậu lạnh đi từ tám giờ sáng. Mười một giờ mười hai, khi cuộc họp vừa kết thúc, Hoài Cẩn đứng lên trước nhưng không rời phòng ngay. Cậu chờ những người khác đi bớt, rồi hỏi rất nhỏ:
“Cậu ổn không?”
Dư An đang gập máy tính lại. Cậu ngước lên. “Câu này liên quan công việc hay không?”
Hoài Cẩn dừng một nhịp. “Không liên quan công việc.”
Dư An gần như bật cười, nhưng cuối cùng chỉ thở ra. “Vậy tôi có thể không trả lời.”
“Ừ.”
“Thế thì không trả lời.”
Hoài Cẩn gật đầu. “Được.”
Cậu thật sự không hỏi thêm. Dư An nhìn theo khi Hoài Cẩn ra khỏi phòng. Cảnh giác của cậu không giảm đi. Nếu có, nó còn rõ hơn. Bởi việc một người thay đổi ở những chuyện nhỏ không thể tự động sửa một chuyện lớn mà người đó vẫn chưa nói. Dư An hiểu điều ấy rất rõ.
Nhưng đồng thời, cậu cũng hiểu mình đang làm một việc gần giống bảy năm trước theo chiều ngược lại. Cậu đã tìm thấy một mảnh dữ liệu liên quan trực tiếp tới cha mình. Hoài Cẩn đang ở ngay trong cùng dự án.
Và Dư An chưa nói. Lý do lần này không hoàn toàn giống năm mười tám tuổi. Cậu không muốn dùng một dòng chưa đủ chứng minh để buộc tội ai. Cậu cũng chưa biết Hoài Cẩn có liên quan tới mã TL-047 hay chỉ biết vụ việc ở tầng khác. Nói quá sớm có thể khiến toàn bộ cuộc kiểm tra đổi màu trước khi Dư An kịp nhìn dữ liệu bằng mắt mình.
Nhưng dù lý do hợp lý đến đâu, sự thật vẫn là cậu đang giữ lại một phần thông tin. Dư An biết điều đó. Buổi trưa, cậu không xuống ăn cùng nhóm. Cậu mua một hộp cơm ở tầng dưới rồi quay lên bàn, mở phần lịch sử hợp đồng.
TL-047 có bảy hợp đồng cũ còn giữ được mã tham chiếu. Ba hợp đồng chỉ còn tiêu đề và ngày. Bốn hợp đồng có đủ đường dẫn sang hồ sơ lưu trữ, nhưng Dư An không có quyền mở trực tiếp vì thuộc dữ liệu của công ty khác trong tập đoàn.
Cậu không tìm cách vượt quyền. Thay vào đó, Dư An gửi một yêu cầu truy cập đúng quy trình, ghi lý do: phục vụ xác minh quan hệ mã nhà cung cấp trong quá trình chuyển dữ liệu. Ở ô người phê duyệt yêu cầu, hệ thống tự chọn bộ phận kiểm soát dữ liệu của tập đoàn.
Dư An bấm gửi. Mười ba phút sau, yêu cầu được chấp nhận ở mức chỉ đọc với hai hợp đồng. Hai hợp đồng còn lại bị từ chối vì gắn với hồ sơ hạn chế.
Cậu mở hợp đồng đầu tiên. Không có gì đặc biệt. Một gói cung cấp thiết bị có phụ lục giá, nghiệm thu, thanh toán nhiều đợt. Chính Viễn xuất hiện ở một biên bản xác nhận ngân sách. Không phải người ký hợp đồng.
Hợp đồng thứ hai khiến Dư An dừng lại lâu hơn. Không phải vì tên cha. Tên cha cậu không xuất hiện trong trang đầu.
Nhưng ở phần lịch sử điều chỉnh hạn mức, có một dòng cho thấy giá trị được nâng lên sau khi hợp đồng đã chạy được gần hai tháng. Người đề nghị nâng hạn mức thuộc bộ phận khác. Người phê duyệt cuối là một mã nhân sự cấp tập đoàn chưa nối tên. Phía tài chính công ty con chỉ xác nhận ngân sách sau đó.
Dư An đọc thứ tự ba lần. Rồi cậu quay lại bảng TL-047. Một vài giao dịch có tên Chính Viễn diễn ra sau lần nâng hạn mức ấy.
Không phải trước. Dư An đặt hai cửa sổ cạnh nhau. Nếu chỉ nhìn chữ ký của cha cậu trên một hồ sơ thanh toán, người ta sẽ thấy ông đã xác nhận những khoản tiền dựa trên một hạn mức có sẵn.
Nhưng ai đã đề nghị nâng hạn mức? Ai phê duyệt nó ở cấp tập đoàn? Và tại sao cùng nhà cung cấp này lại xuất hiện ở hai công ty con khác?
Cậu không có câu trả lời. Nhưng lần đầu tiên sau bảy năm, câu chuyện cũ không còn chỉ là một khối ký ức mờ với kết luận đã đóng sẵn. Nó có cấu trúc.
Có thứ tự. Có người trước, người sau. Có quyết định nằm trên chữ ký của cha cậu. Dư An mở ghi chú và thêm ba dòng mới.
Có điều chỉnh hạn mức trước các giao dịch mang tên Lâm Chính Viễn.
Người đề nghị điều chỉnh không thuộc bộ phận tài chính của Lâm Chính Viễn.
Người duyệt cuối: mã cấp tập đoàn, chưa xác định danh tính.
Cậu nhìn những dòng đó rất lâu. Điện thoại rung. Là khung trò chuyện công việc với Hoài Cẩn.
Tống Hoài Cẩn: “Mã cậu giữ lại sáng nay có cần phía tôi hỗ trợ lấy lịch sử không?”
Dư An nhìn tin nhắn. Ngón tay cậu đặt trên bàn phím nhưng chưa gõ. Chỉ vài giờ trước, cậu còn nghĩ nếu cần thì sẽ gửi yêu cầu qua kênh công việc. Bây giờ yêu cầu đã gửi, một phần dữ liệu đã mở, và cậu có trong tay thứ đủ để biết việc này không còn là một lỗi ghép mã thông thường.
Cậu có thể nói tên TL-047 ngay lúc này. Cũng có thể nói nó liên quan tới cha mình. Dư An gõ một câu rồi xóa. Gõ lại.
Lâm Dư An: “Tôi đã lấy được một phần. Có vài điểm không khớp, tôi muốn kiểm tra thêm trước.”
Hoài Cẩn trả lời gần như ngay lập tức. Tống Hoài Cẩn: “Được.”
Một phút sau có thêm tin mới. Tống Hoài Cẩn: “Khi nào cậu muốn tôi tham gia thì nói.”
Dư An đọc xong, không trả lời. Cậu quay lại màn hình máy tính. TL-047 vẫn nằm giữa bảng đối chiếu, một mã cũ mà sáng nay Quang chỉ định gộp vào hồ sơ mới rồi cho qua.
Dư An bấm đổi trạng thái của dòng đó từ chờ ghép mã sang giữ lại để kiểm tra lịch sử. Cậu không biết mã này sẽ dẫn tới đâu. Cậu chỉ biết từ lúc này, chuyện năm mười tám tuổi đã thôi nằm yên trong quá khứ.