=== CSDL B — nhóm trong bảng mau_bang_in ===
   PIGMENT                76 ô
   DYE                    45 ô

=== ô có DYE trong tên/nhóm/ghi_chú ===
    (5, 'DYE', 'Vàng 412 (10%)', 10, '#DFA200', 70.5, 11.8, 74.3, 'trung-binh')
    (6, 'DYE', 'Vàng 412 (30%)', 30, None, None, None, None, '')
    (4, 'DYE', 'Vàng 412 (5%)', 5, '#E5A100', 71.0, 15.0, 74.9, 'cao')
    (2, 'DYE', 'Vàng BT (10%)', 10, '#D56204', 55.0, 41.4, 62.9, 'cao')
    (3, 'DYE', 'Vàng BT (30%)', 30, None, None, None, None, '')
    (1, 'DYE', 'Vàng BT (5%)', 5, '#E17900', 61.4, 34.4, 68.4, 'cao')
    (8, 'DYE', 'Vàng Y57 (10%)', 10, '#EBB100', 75.5, 9.1, 78.3, 'trung-binh')
    (9, 'DYE', 'Vàng Y57 (30%)', 30, '#E77E0D', 63.3, 34.4, 68.0, 'trung-binh')
    (7, 'DYE', 'Vàng Y57 (5%)', 5, '#ECB50A', 76.6, 7.5, 78.0, 'cao')
    (11, 'DYE', 'Vàng cam 210K (10%)', 10, '#E2640D', 57.4, 45.4, 63.7, 'trung-binh')
    (12, 'DYE', 'Vàng cam 210K (30%)', 30, '#D9520B', 52.7, 50.4, 60.5, 'trung-binh')
    (10, 'DYE', 'Vàng cam 210K (5%)', 5, '#E2A415', 71.4, 12.3, 72.1, 'thap (lệch AGY nhiều)')
    (44, 'DYE', 'Xanh dương BL 06 (10%)', 10, '#0043B0', 32.1, 27.3, -62.5, 'trung-binh')
    (45, 'DYE', 'Xanh dương BL 06 (30%)', 30, '#01157A', 15.2, 36.3, -57.1, 'trung-binh')
    (43, 'DYE', 'Xanh dương BL 06 (5%)', 5, '#026EDA', 47.3, 15.8, -62.3, 'trung-binh')
    (41, 'DYE', 'Xanh lá 520K (10%)', 10, '#004800', 25.7, -34.6, 33.2, 'cao')
    (42, 'DYE', 'Xanh lá 520K (30%)', 30, '#13130D', 5.7, -1.1, 3.1, 'thap (nghi lấy nhầm nền giấy)')
    (40, 'DYE', 'Xanh lá 520K (5%)', 5, '#034723', 25.7, -29.2, 16.2, 'thap (lệch AGY nhiều)')
    (34, 'DYE', 'Đen 821 (10%)', 10, '#A8858F', 59.1, 15.0, -0.2, 'trung-binh')
    (35, 'DYE', 'Đen 821 (20%)', 20, '#4B3848', 26.1, 11.6, -6.6, 'thap (nghi lấy nhầm nền giấy)')
    (36, 'DYE', 'Đen 821 (30%)', 30, '#251812', 9.7, 5.5, 6.5, 'thap (nghi lấy nhầm nền giấy)')
    (37, 'DYE', 'Đen B51 (10%)', 10, '#B18A92', 61.3, 16.1, 1.4, 'trung-binh')
    (38, 'DYE', 'Đen B51 (20%)', 20, '#675162', 37.2, 12.4, -6.4, 'thap (nghi lấy nhầm nền giấy)')
    (39, 'DYE', 'Đen B51 (30%)', 30, '#6A565D', 38.7, 9.5, -0.9, 'thap (nghi lấy nhầm nền giấy)')
    (30, 'DYE', 'Đen BT (10%)', 10, None, None, None, None, '')
    (28, 'DYE', 'Đen BT (2%)', 2, '#3B3347', 22.8, 8.3, -11.1, 'thap (nghi lấy nhầm nền giấy)')
    (29, 'DYE', 'Đen BT (5%)', 5, '#080505', 1.5, 0.8, 0.3, 'thap (nghi lấy nhầm nền giấy)')
    (33, 'DYE', 'Đen K (1-10) (10%)', 10, '#1A0E02', 4.9, 3.4, 6.5, 'thap (nghi lấy nhầm nền giấy)')
    (31, 'DYE', 'Đen K (1-10) (2%)', 2, '#423442', 23.7, 9.2, -6.3, 'thap (nghi lấy nhầm nền giấy)')
    (32, 'DYE', 'Đen K (1-10) (5%)', 5, '#7E6770', 46.1, 10.8, -1.6, 'thap (nghi lấy nhầm nền giấy)')
    (23, 'DYE', 'Đỏ 3311 (10%)', 10, '#CD014B', 43.5, 69.9, 19.3, 'trung-binh')
    (24, 'DYE', 'Đỏ 3311 (30%)', 30, '#C50140', 41.6, 67.4, 23.5, 'trung-binh')
    (22, 'DYE', 'Đỏ 3311 (5%)', 5, '#D33073', 48.5, 66.1, 1.7, 'trung-binh')
    (20, 'DYE', 'Đỏ 334 (10%)', 10, '#AD000C', 35.8, 60.0, 45.4, 'cao')
    (21, 'DYE', 'Đỏ 334 (30%)', 30, '#9C0113', 32.1, 55.6, 37.7, 'cao')
    (19, 'DYE', 'Đỏ 334 (5%)', 5, '#B3033E', 37.8, 62.8, 19.1, 'trung-binh')
    (14, 'DYE', 'Đỏ BT (10%)', 10, '#CE0200', 43.0, 68.0, 57.2, 'cao')
    (15, 'DYE', 'Đỏ BT (30%)', 30, '#9B000C', 31.8, 55.4, 40.8, 'cao')
    (13, 'DYE', 'Đỏ BT (5%)', 5, '#E8020B', 48.5, 74.5, 59.5, 'cao')
    (26, 'DYE', 'Đỏ R95 (10%)', 10, '#A5FAFF', 93.3, -24.4, -10.5, 'thap (lệch AGY nhiều)')
    (27, 'DYE', 'Đỏ R95 (30%)', 30, '#ACDCE3', 84.7, -13.9, -8.5, 'thap (lệch AGY nhiều)')
    (25, 'DYE', 'Đỏ R95 (5%)', 5, '#B6DFEA', 86.3, -10.9, -9.8, 'thap (lệch AGY nhiều)')
    (17, 'DYE', 'Đỏ VM 334 (10%)', 10, '#9A0110', 31.7, 55.1, 38.6, 'cao')
    (18, 'DYE', 'Đỏ VM334 (30%)', 30, '#720114', 22.5, 44.5, 24.6, 'cao')
    (16, 'DYE', 'Đỏ VM334 (5%)', 5, '#C20039', 40.8, 66.5, 26.7, 'cao')

=== danh mục mau: các mã DYE nội bộ MH / phân loại hữu cơ có tồn kho ===
    (4, 'ĐỎ', 'Pigment Red TR 718', 'TR 718', 'HỮU CƠ (organic)', 'GENKY - VIỆT ẤN', 298.5, None, 'P.R.101 transparent oxide')
    (6, 'VÀNG', 'Hififast Yellow HF4G', 'HF4G', 'HỮU CƠ (organic)', 'CAPPELLE - BRENNTAG', 190.0, None, 'P.Y.151; C.I. 13980')
    (15, 'MÀU NỘI BỘ MH', 'MH Black 56 (NL.001475 — Solvent Black 28)', 'BLACK 56', 'chưa phân loại oxit/hữu cơ', 'Matapel/Eckart – nội bộ MH', None, None, None)
    (17, 'MÀU NỘI BỘ MH', 'MH Yellow 57 (Y82)', 'Y82', 'chưa phân loại oxit/hữu cơ', 'Matapel/Eckart – nội bộ MH', None, None, None)
    (23, 'MÀU NỘI BỘ MH', 'MH Black 20 (NL.001471 — Solvent Black 27)', 'BLACK 20', 'chưa phân loại oxit/hữu cơ', 'Matapel/Eckart – nội bộ MH', None, None, None)

=== tồn kho tất cả mã trong danh mục (kg) ===
   Hoover 778 BN                                  778 BN     1150.0    ưu tiên 2
   Pigment Brown TB 1008                          TB 1008    1047.5    ưu tiên 5
   Umber Pigment 645                              645        950.0     ưu tiên 1
   Carbon 30L (nghi HIBLACK 30L – Tín Phú)        30L        850.0     ưu tiên 6
   Ferrispec FP YB-2087                           YB-2087    800.0     ưu tiên 3
   Carbon Black MA 100 (Mitsubishi)               MA 100     430.0     ưu tiên 6
   Iron oxide Black VAP-330M                      VAP-330M   425.0     ưu tiên None
   Ferrispec FP RB-4097                           RB-4097    375.0     ưu tiên 4
   Brown SP 1008 W                                SP 1008 W  323.9     ưu tiên 5
   Pigment Red TR 718                             TR 718     298.5     ưu tiên None
   Iron Oxide RB 4097                             RB 4097    200.0     ưu tiên 4
   Hififast Yellow HF4G                           HF4G       190.0     ưu tiên None
   Red RO 4597                                    RO 4597    75.0      ưu tiên 4

=== CSDL A — quy trình ===
   id 1    | Bộ định nghĩa 24 bước quy trình sơn hoàn t | 24 bước | Dùng làm chuẩn đối chiếu cho mọi quy trình thực tế của khách
   id 2    | Quy trình KH 3900                          | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 1 câu có chữ "quy trình
   id 3    | Quy trình KH 3900 — KIỂM TRA LÓT MÀU NC KH | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 5 câu có chữ "quy trình
   id 4    | Quy trình KH 3900 — KẾT QUẢ KIỂM TRA & ĐÁN | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 1 câu có chữ "quy trình
   id 5    | Quy trình KH 3900 — KẾT QUẢ THỬ LÓT CÁN TR | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 2 câu có chữ "quy trình
   id 6    | Quy trình KH 3900                          | 2 bước | Trích từ chuỗi báo cáo QC hằng ngày; 11 câu có chữ "quy trìn
   id 7    | Quy trình KH 3900 — THỰC HIỆN QUY TRÌNH MÀ | 3 bước | Trích từ chuỗi báo cáo QC hằng ngày; 5 câu có chữ "quy trình
   id 8    | Quy trình KH 3900 — ĐIỀU CHỈNH QUY TRÌNH & | 6 bước | Trích từ chuỗi báo cáo QC hằng ngày; 18 câu có chữ "quy trìn
   id 9    | Quy trình ĐLO 03 — KIỂM TRA TẠI CÔNG TY ĐĂ | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 9 câu có chữ "quy trình
   id 10   | Quy trình KH 3900 — KIỂM TRA TẠI CÔNG TY K | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 4 câu có chữ "quy trình
   id 11   | Quy trình MP 744                           | 7 bước | Trích từ chuỗi báo cáo QC hằng ngày; 20 câu có chữ "quy trìn
   id 12   | Quy trình KH 0204 — QUY TRÌNH MÀU KH CHERR | 9 bước | Trích từ chuỗi báo cáo QC hằng ngày; 4 câu có chữ "quy trình
   id 13   | Quy trình KH 3900                          | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 3 câu có chữ "quy trình
   id 14   | Quy trình UV 2703                          | 5 bước | Trích từ chuỗi báo cáo QC hằng ngày; 10 câu có chữ "quy trìn
   id 15   | Quy trình KH 3900                          | 7 bước | Trích từ chuỗi báo cáo QC hằng ngày; 25 câu có chữ "quy trìn
   id 16   | Quy trình MD 2239 — Kiểm tra tại Công ty M | 7 bước | Trích từ chuỗi báo cáo QC hằng ngày; 6 câu có chữ "quy trình
   id 17   | Quy trình MD 2239 — Kiểm tra tại Công ty M | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 8 câu có chữ "quy trình
   id 18   | Quy trình PU 0408 — Kiểm tra tại Công ty A | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 2 câu có chữ "quy trình
   id 19   | Quy trình BT 01/21 — Sự cố chất lượng màu  | 3 bước | Trích từ chuỗi báo cáo QC hằng ngày; 8 câu có chữ "quy trình
   id 20   | Quy trình KH 3600 — Kiểm tra tại Công ty * | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 2 câu có chữ "quy trình
   id 21   | Quy trình PU 0707 B                        | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 7 câu có chữ "quy trình
   id 22   | Quy trình KH 3900 — Kiểm tra màu **KH 3900 | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 1 câu có chữ "quy trình
   id 23   | Quy trình DLO 16/19 — Kiểm tra tại Công ty | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 5 câu có chữ "quy trình
   id 24   | Quy trình DLO 11 — Kiểm tra tại Công ty ** | 2 bước | Trích từ chuỗi báo cáo QC hằng ngày; 4 câu có chữ "quy trình
   id 25   | Quy trình THTH 401 A — Báo cáo kết quả kỹ  | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 1 câu có chữ "quy trình
   id 26   | Quy trình SC 238 BR — Kiểm tra chất lượng  | 36 bước | Trích từ chuỗi báo cáo QC hằng ngày; 57 câu có chữ "quy trìn
   id 27   | Quy trình AQ 002 H — Xưởng 5 (nhà máy **Hố | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 22 câu có chữ "quy trìn
   id 28   | Quy trình AQ 002 H — Xưởng 5 (nhà máy **Hố | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 21 câu có chữ "quy trìn
   id 29   | Quy trình AQ 1190 — Quy trình màu AQ 1190  | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 27 câu có chữ "quy trìn
   id 30   | Quy trình AQ 455 — Kết quả màng sơn màu AQ | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 32 câu có chữ "quy trìn
   id 31   | Quy trình ĐLO 34 — Kiểm tra độ ổn định độ  | 3 bước | Trích từ chuỗi báo cáo QC hằng ngày; 7 câu có chữ "quy trình
   id 32   | Quy trình ĐLO 34 — Hoàn tất Báo cáo kiểm t | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 5 câu có chữ "quy trình
   id 33   | Quy trình (không rõ mã) — Thái Thành Luân) | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 7 câu có chữ "quy trình
   id 34   | Quy trình MHT 293 — Kiểm tra tại Công ty M | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 18 câu có chữ "quy trìn
   id 35   | Quy trình MHT 126 — Kiểm tra tại Công ty M | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 4 câu có chữ "quy trình
   id 36   | Quy trình AQ 455 — Báo cáo công việc hằng  | 4 bước | Trích từ chuỗi báo cáo QC hằng ngày; 27 câu có chữ "quy trìn
   id 37   | Quy trình AQ 1155                          | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 4 câu có chữ "quy trình
   id 38   | Quy trình AQ 1155 — KIỂM TRA CHẤT LƯỢNG BÓ | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 5 câu có chữ "quy trình
   id 39   | Quy trình BT 2203 — KIỂM TRA CHẤT LƯỢNG SO | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 11 câu có chữ "quy trìn
   id 40   | Quy trình AQ 1155                          | 4 bước | Trích từ chuỗi báo cáo QC hằng ngày; 16 câu có chữ "quy trìn
   id 41   | Quy trình BT 2203                          | 3 bước | Trích từ chuỗi báo cáo QC hằng ngày; 5 câu có chữ "quy trình
   id 42   | Quy trình PU 0707 B — KIỂM TRA CHẤT LƯỢNG  | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 5 câu có chữ "quy trình
   id 43   | Quy trình BT 2203 — KIỂM TRA CHẤT LƯỢNG GL | 7 bước | Trích từ chuỗi báo cáo QC hằng ngày; 3 câu có chữ "quy trình
   id 44   | Quy trình PU 0707 B — KẾT QUẢ KIỂM TRA MÀU | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 12 câu có chữ "quy trìn
   id 45   | Quy trình MD 2153 — KIỂM TRA CHẤT LƯỢNG MÀ | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 35 câu có chữ "quy trìn
   id 46   | Quy trình PU 0707 B — LÓT NHÚNG PU / LÓT M | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 22 câu có chữ "quy trìn
   id 47   | Quy trình KH 3900 — MÀNG SƠN ĐẠT YÊU CẦU ( | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 3 câu có chữ "quy trình
   id 48   | Quy trình PU 0408 ABR                      | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 26 câu có chữ "quy trìn
   id 49   | Quy trình KH 2                             | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 3 câu có chữ "quy trình
   id 50   | Quy trình KH 2                             | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 3 câu có chữ "quy trình
   id 51   | Quy trình PU 0408 NY                       | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 7 câu có chữ "quy trình
   id 52   | Quy trình PU 0408 NY                       | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 15 câu có chữ "quy trìn
   id 53   | Quy trình DL 16/19                         | 10 bước | Trích từ chuỗi báo cáo QC hằng ngày; 4 câu có chữ "quy trình
   id 54   | Quy trình TVIET 432                        | 5 bước | Trích từ chuỗi báo cáo QC hằng ngày; 3 câu có chữ "quy trình
   id 55   | Quy trình TVIET 432                        | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 3 câu có chữ "quy trình
   id 56   | Quy trình TVIET 432                        | 4 bước | Trích từ chuỗi báo cáo QC hằng ngày; 5 câu có chữ "quy trình
   id 57   | Quy trình MP 689 — Độ bóng **Bóng BEX 03-2 | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 11 câu có chữ "quy trìn
   id 58   | Quy trình MP 689 H — Kiểm tra độ bóng bóng | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 11 câu có chữ "quy trìn
   id 59   | Quy trình TVIET 432 — Kiểm tra tại **Công  | 3 bước | Trích từ chuỗi báo cáo QC hằng ngày; 7 câu có chữ "quy trình
   id 60   | Quy trình KH 2605 — Kiểm tra tại **Công ty | 4 bước | Trích từ chuỗi báo cáo QC hằng ngày; 19 câu có chữ "quy trìn
   id 61   | Quy trình THTH 91 — Kiểm tra tại **Công ty | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 9 câu có chữ "quy trình
   id 62   | Quy trình THTH 401 A — Kiểm tra xử lý trắn | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 2 câu có chữ "quy trình
   id 63   | Quy trình THTH 91 — Thử dung môi retarder  | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 11 câu có chữ "quy trìn
   id 64   | Quy trình THTH 91 — Thử và kiểm tra màng s | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 2 câu có chữ "quy trình
   id 65   | Quy trình THTH 91 — Kiểm tra màng sơn 5 sả | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 1 câu có chữ "quy trình
   id 66   | Quy trình THTH 91 — Kiểm tra bóng NC mod 1 | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 8 câu có chữ "quy trình
   id 67   | Quy trình BT 2507 — Màu mây 02 A — độ bám  | 5 bước | Trích từ chuỗi báo cáo QC hằng ngày; 16 câu có chữ "quy trìn
   id 68   | Quy trình DLO 34 — độ bám cắt ca-rô khi ph | 3 bước | Trích từ chuỗi báo cáo QC hằng ngày; 3 câu có chữ "quy trình
   id 69   | Quy trình THTH 91 — Kiểm tra màng sơn Bóng | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 4 câu có chữ "quy trình
   id 70   | Quy trình DL 16/19 — Kiểm tra chất lượng * | 4 bước | Trích từ chuỗi báo cáo QC hằng ngày; 13 câu có chữ "quy trìn
   id 71   | Quy trình DL 16/19 — lô 04/09 đạt, **3 lô  | 0 bước | Trích từ chuỗi báo cáo QC hằng ngày; 8 câu có chữ "quy trình
   id 72   | Quy trình hoàn thiện Hardwax Oil — Quy_Tri | 18 bước | Tài liệu quy trình đầy đủ do R&D soạn (18 dòng bước tách đượ
   id 73   | Quy trình hoàn thiện Hardwax Oil — Quy_Tri | 18 bước | Tài liệu quy trình đầy đủ do R&D soạn (18 dòng bước tách đượ
   id 74   | Quy trình hoàn thiện Hardwax Oil — Quy_Tri | 18 bước | Tài liệu quy trình đầy đủ do R&D soạn (18 dòng bước tách đượ
   id 75   | Quy trình hoàn thiện Hardwax Oil — Quy_Tri | 18 bước | Tài liệu quy trình đầy đủ do R&D soạn (18 dòng bước tách đượ
   id 76   | Quy trình hoàn thiện Hardwax Oil — Quy_Tri | 13 bước | Tài liệu quy trình đầy đủ do R&D soạn (13 dòng bước tách đượ
   id 77   | Quy trình hoàn thiện Hardwax Oil — Quy_Tri | 13 bước | Tài liệu quy trình đầy đủ do R&D soạn (13 dòng bước tách đượ
   id 78   | KPH #16 — TT mây 01/25; TT mây 02/25       | 0 bước | 
   id 79   | KPH #27 — Màu AQ 156                       | 0 bước | 
   id 80   | KPH #32 — lót NC 2407 trắng TVT            | 0 bước | 
   id 81   | KPH #58 — Màu MHT 03/22                    | 0 bước | 
   id 82   | KPH #63 — Màu GT white 00H                 | 0 bước | 
   id 83   | KPH #65 — Sơn màu NC KP 22090/2014 WT/D 40 | 0 bước | 
   id 84   | KPH #84 — Màu BH 7740 U                    | 0 bước | 
   id 85   | KPH #93 — Màu # 41 Hickory                 | 0 bước | 
   id 86   | KPH #94 — Màu TT 13/20 H                   | 0 bước | 
   id 87   | KPH #137 — AQ 773, AQ 703, AQ 724          | 0 bước | 
   id 88   | KPH #141 — Màu KH 3600                    | 0 bước | 
   id 89   | KPH #171 — Màu PL Dark Brown              | 0 bước | 
   id 90   | KPH #210 — Màu WSG 06 CWA                 | 0 bước | 
   id 91   | KPH #231 — Màu Dorothy 01/24              | 0 bước | 
   id 92   | KPH #292 — Màu VHF 26 - Lót đen PU VHF 26  | 0 bước | 
   id 93   | KPH #311 — Màu PCS 72                      | 0 bước | 
   id 94   | KPH #380 — Màu TĐan 03/15 PU               | 0 bước | 
   id 95   | KPH #388 — Màu TD 11/16                    | 0 bước | 
   id 96   | KPH #393 — Lót PU (1061222) Cứng PU (20101 | 0 bước | 
   id 97   | KPH #398 — Màu TT 1543 Lót PU TT 0807 Bóng | 0 bước | 
   id 98   | KPH #422 — Màu AQ 317 Lót NC KH (2031221)  | 0 bước | 
   id 99   | KPH #477 — Màu TTTL 7463 C                 | 0 bước | 
   id 100  | KPH #480 — Màu KH 3500 Lót cán trục KH 350 | 0 bước | 
   id 101  | KPH #605 — Stain màu 2 MP 462 H (1150325)  | 0 bước | 
   id 102  | Quy trình chuẩn hoá từ ảnh 05/10/2026 — TW | 9 bước | Bước ngăn dầu gỗ thông là bước xử lý đặc thù, trong bộ 24 bư
   id 103  | Quy trình chuẩn hoá từ ảnh 05/10/2026 — PT | 7 bước | Người làm mẫu: KTV (ẩn danh). Bước 5 kết hợp 2 kỹ thuật (màu
   id 104  | Quy trình chuẩn hoá từ ảnh 05/10/2026 — PT | 8 bước | Kèm 4 công thức pha chi tiết (Stain I, Lót màu PT-011 H, Sta
   id 105  | Quy trình chuẩn hoá từ ảnh 05/10/2026 — PT | 7 bước | Kèm 4 công thức pha chi tiết (Lót màu, Stain màu, Stain dặm,
   id 106  | QT_PG_06_PU_TrangMo_TrongNha_M30           | 6 bước | Thư viện quy trình chuẩn nội bộ (Google Drive HETHONGXEMMAU\
   id 107  | QT_PG_07_NC_DenMo_TrongNha_M10             | 6 bước | Thư viện quy trình chuẩn nội bộ (Google Drive HETHONGXEMMAU\
   id 108  | QT_PG_08_PU_XanhNgoaiTroi_NgoaiTroi_M50    | 6 bước | Thư viện quy trình chuẩn nội bộ (Google Drive HETHONGXEMMAU\
   id 109  | QT_PG_09_PU_TrangBongGuong_TrongNha_B95    | 8 bước | Thư viện quy trình chuẩn nội bộ (Google Drive HETHONGXEMMAU\
   id 110  | QT_PG_10_AC_HongPastel_TrongNha_M30        | 6 bước | Thư viện quy trình chuẩn nội bộ (Google Drive HETHONGXEMMAU\
   id 111  | QT_ST_IN_01_PU_GoiSoi_StainGlaze_TrongNha_ | 8 bước | Thư viện quy trình chuẩn nội bộ (Google Drive HETHONGXEMMAU\
   id 112  | QT_ST_IN_03_AC_Walnut_DyeStain_TrongNha_M5 | 7 bước | Thư viện quy trình chuẩn nội bộ (Google Drive HETHONGXEMMAU\
   id 113  | QT_ST_IN_05_NC_ClassicAsh_Glaze_TrongNha_M | 8 bước | Thư viện quy trình chuẩn nội bộ (Google Drive HETHONGXEMMAU\
   id 114  | QT_ST_OUT_02_PU_GoiThong_Stain_NgoaiTroi_M | 8 bước | Thư viện quy trình chuẩn nội bộ (Google Drive HETHONGXEMMAU\
   id 115  | QT_ST_OUT_04_DauOBT_GoiTeak_NgoaiTroi_M05  | 4 bước | Thư viện quy trình chuẩn nội bộ (Google Drive HETHONGXEMMAU\
   id 116  | QT_CHUAN_LAU-MAU-WASHCOAT (PA 1 — lô 05, n | 8 bước | Chủ dự án chốt: “Kỹ thuật chuẩn vẫn là phương án 1”
   id 117  | PT-008H — Veneer Oak (phiếu làm mẫu MÀU TH | 9 bước | Trích xuất: PHIEU_PT-008H_trich-xuat_2026-10-06.md · Bài học
   id 118  | QT_CHUAN_NHANH2 — Oak/Veneer có GHIM SỚ TƯ | 9 bước | Chuẩn NHÁNH 2 — song song với chuẩn chung id 116 (mẫu đều mà

=== CSDL A — 34 bước chuẩn ===
    1 | Sơn lót PU                                   | Sơn lót PU là lớp sơn trực tiếp lên bề mặt gỗ thô (hoặc sau 
    2 | Chỉnh sửa cân bằng màu gỗ                    | Chỉnh sửa cân bằng gỗ là loại sơn dùng để điều chỉnh và làm 
    3 | Sơn tạo vân gỗ (NGR)                         | Sơn tạo vân gỗ (NGR) là một loại sơn làm nổi vân gỗ (NGR) đư
    4 | Sơn Duro (tô đậm vân gỗ)                     | Sơn Duro là loại sơn màu đặc, hàm lượng màu cao, được lau để
    5 | Màu nền                                      | Màu nền là loại chất màu được sử dụng chủ yếu để tạo cho gỗ 
    6 | Sơn màu điều chỉnh                           | Sơn điều chỉnh màu là một loại sơn phủ màu dạng phun, được t
    7 | Màu PAD                                      | Sơn PAD là phương pháp sơn được thực hiện bằng cách sử dụng 
    8 | Lớp sơn lót nền (Basecoast)                  | Lớp sơn lót nền là một hệ thống sơn phủ có chứa chất tạo màu
    9 | Lau Glaze                                    | Lau Glaze là kỹ thuật sử dụng vải để lau lên sản phẩm gỗ, tạ
   10 | Phun Glaze                                   | Phun Glaze là phương pháp sử dụng súng phun để phun lên sản 
   11 | Lau bột bụi                                  | Lau bột bụi được thực hiện bằng cách sử dụng vải hoặc sản ph
   12 | Đánh cọ                                      | Đánh cọ là một kỹ thuật trang trí thủ công được sử dụng để t
   13 | Chà nhám sâu/ Làm mòn lớp sơn                | Chà nhám sâu/ Làm mòn lớp sơn là một kỹ thuật làm lớp màu tr
   14 | Chà highlight (làm nổi bật)                  | Chà hai lai (làm nổi bật) là phương pháp tạo hiệu ứng sáng t
   15 | Sáp tạo điểm tróc giả cổ (poloxy)            | Sáp tạo điểm tróc giả cổ là một kỹ thuật tạo hiệu ứng cũ kỹ 
   16 | Chà nhám                                     | Chà nhám là quá trình sử dụng vật liệu mài mòn để làm mịn, l
   17 | Phun hạt                                     | Phun hạt là phương pháp phun hoặc bắn những giọt sơn to hoặc
   18 | Hiệu ứng giả cổ đuôi bò                      | Hiệu ứng giả cổ đuôi bò là dạng vệt sơn/glaze dày, lượn sóng
   19 | Sơn Lót Mỏng                                 | Sơn Lót Mỏng là một lớp lót rất mỏng (độ nhớt sơn thường từ 
   20 | Sơn Lót                                      | Sơn lót là một lớp phủ trong suốt (độ nhớt sơn thường 12-16s
   21 | Sơn Bóng                                     | Lớp sơn bóng phủ cuối cùng là lớp trong suốt (độ nhớt sơn kh
   22 | Đánh cọ biên                                 | Đánh có biên là hiện tượng cạnh hoặc góc bề mặt trở nên mịn 
   23 | Sơn lót chống ngã vàng                       | Sơn lót chống ngã vàng là một loại lót trong suốt được thiết
   24 | Sơn phủ hoàn thiện chống ố vàng              | Sơn phủ hoàn thiện chống ố vàng là lớp sơn trong suốt bảo vệ
   25 | Ngăn dầu                                     | Lớp phủ cô lập dầu, nhựa và tinh dầu tự nhiên có trong gỗ (t
   26 | Kiểm tra & xử lý keo tràn                    | Kiểm tra các vị trí keo dán tràn/dính trên bề mặt mộc (làm ư
   27 | Kiểm soát độ ẩm gỗ & điều kiện môi trường    | Kiểm tra độ ẩm gỗ và điều kiện nhà xưởng TRƯỚC khi vào sơn: 
   28 | Vá trám khuyết tật bằng bột trét gỗ          | Trám các vết lõm, mẻ, nứt bằng bột trét gỗ cùng màu (trét hơ
   29 | Trét lấp mắt gỗ (lỗ mạch)                    | Trét bột lấp các mắt gỗ/lỗ mạch hở của loại gỗ mạch to (oak,
   30 | Nâng thớ – khử xù lông gỗ                    | Làm ẩm bề mặt bằng khăn nước sạch (hoặc nước) cho các thớ gỗ
   31 | Xử lý chống loang màu                        | Phủ chất xử lý chống loang (wood conditioner) trước khi lên 
   32 | Khử bụi – lau tack trước khi phủ             | Hút/thon/thổi sạch bụi chà nhám rồi lau bằng vải dính (tack 
   33 | Chà nhám giữa lớp (xử lý hạt bụi)            | Chà nhám nhẹ giữa các lớp (sau lớp lót và giữa các lớp phủ, 
   34 | Đánh bóng – miết bóng hoàn thiện             | Sau khi lớp phủ cuối đóng rắn: miết/đánh bóng bề mặt bằng bộ

=== CSDL A — bước của quy trình 112 (Walnut DyeStain), 116 (chuẩn PA1) và 118 (nhánh 2) ===
  — QT 112: QT_ST_IN_03_AC_Walnut_DyeStain_TrongNha_M50 | Vị trí: Trong nhà (Indoor - Luxury / Modern Classic) | Cốt gỗ: Gỗ Óc chó (Walnut) tự nhiên
      1. Bước 1: Chuẩn bị bề mặt — Giấy nhám P180 - P240                        [bước 16]
      2. Bước 2: Nhuộm màu (Dye Stain) — Thuốc nhuộm màu tan hệ AC (màu vàng, đ [bước 5]
      3. Bước 3: Sơn lót trong suốt AC — Lót AC TN trong suốt + + Cứng AC + + D [bước 19]
      4. Bước 4: Chà nhám lần 1 — Giấy nhám P320                                [bước 33]
      5. Bước 5: Sơn lót AC lần 2 — Lót AC TN trong suốt + + Cứng AC + + Dung m [bước 20]
      6. Bước 6: Chà nhám hoàn thiện — Giấy nhám P400                           [bước 33]
      7. Bước 7: Sơn phủ AC bán mờ 50% — Bóng AC TN trong suốt (mờ 50%) + + Cứn [bước 21]
  — QT 116: QT_CHUAN_LAU-MAU-WASHCOAT (PA 1 — lô 05, nâu xám tro) | Thứ tự chuẩn: nhuộm nền → lót mỏng washcoat → kiểm tra–dặm màu (không chà nhám) → lau màu 
      1. Bước 1: Nhuộm màu nền (stain NC nâu xám tro) — phun 1 pass hoặc lau đề [bước 5]
      2. Bước 2: Sơn lót mỏng (Washcoat) — lót NC pha rất loãng 100 : 150–200,  [bước 19]
      3. Bước 3: KIỂM TRA MÀU — DẶM MÀU NẾU LÁC (KHÔNG chà nhám) — tinh màu pha [bước 6]
      4. Bước 4: LAU MÀU — glaze nền pha tinh màu (thử 100 : 3–8) + dung môi ba [bước 9]
      5. Bước 5: Sơn lót trong (khoá màu) — 100 : 120–140 : 3, độ nhớt 12–14 s, [bước 20]
      6. Bước 6: Chà nhám giữa lớp — xốp #400–500 khử hạt bụi lồi (chà SAU khi  [bước 33]
      7. Bước 7: KIỂM TRA MÀU — DẶM MÀU NẾU LÁC (màu PAD) — màu stain lau loãng [bước 7]
      8. Bước 8: Sơn bóng NC kháng ngả vàng mờ 10 % — 100 : 100–120 : 3, độ nhớ [bước 21]
  — QT 118: QT_CHUAN_NHANH2 — Oak/Veneer có GHIM SỚ TƯƠNG PHẢN (già cổ/rustic) | Cấu trúc “BÓNG 2 LỚP KẸP GLAZE” + CHẤT NGẤM DẦU: lau vải màu hiệu ứng → phun stain → CHẤT 
      1. Bước 1 — LAU VẢI “màu tạo hiệu ứng” (MÀU TRONG SUỐT, pha sẵn PS) — lau [bước 5]
      2. Bước 2 — PHUN “màu stain” (MÀU TRONG SUỐT, PS) — phun SÚNG, khô 30 phú [bước 6]
      3. Bước 3 — PHUN **CHẤT NGẤM DẦU** (LOẠI KHÁC — dầu ngấm: TB 2211H 100 +  [bước 25]
      4. Bước 4 — PHUN **SƠN LÓT KHÔNG MÀU** (lót 503-2410H 100 + Diluen BT-08H [bước 20]
      5. Bước 5 — PHUN DẶM “màu stain” (MÀU TRONG SUỐT, PS) — súng, khô 15 phút [bước 6]
      6. Bước 6 — **QUÉT CỌ GLAZE lớp 1** — “Glaze đen BT-10H” (MÀU TRONG SUỐT) [bước 12]
      7. Bước 7 — PHUN **BÓNG KHÔNG MÀU lớp 1** — bóng Bex 03 2410H 5% (100) +  [bước 21]
      8. Bước 8 — **QUÉT CỌ GLAZE lớp 2** — “Glaze đen BT-20H” (MÀU TRONG SUỐT) [bước 12]
      9. Bước 9 — PHUN **BÓNG KHÔNG MÀU lớp 2 (hoàn thiện)** — bóng Bex 03 2410 [bước 21]

=== ĐO MÀU 2 ẢNH (code, CIELAB D65) ===
   gỗ mộc   960x1280 | điểm gỗ 628979 (100% vùng đo)
      màu trung vị: #ABA9A5 · L* 69.3 · a* -0.0 · b* +2.3 | L* P10-P90: 57.9–79.1
   mẫu màu  960x1280 | điểm gỗ 616602 (98% vùng đo)
      màu trung vị: #987270 · L* 51.7 · a* +14.7 · b* +6.9 | L* P10-P90: 35.1–74.0

   cần thay đổi (mẫu − mộc): ΔL* -17.59 · Δa* +14.70 · Δb* +4.63
Traceback (most recent call last):
  File "C:\Claw 2\Nghien cuu\_lo10_do_mau_va_tra_csdl.py", line 92, in <module>
    io.open(os.path.join(OUT, '_do_mau_2_anh.json'), 'w', encoding='utf-8').write(json.dumps(kq, ensure_ascii=False, indent=2))
                                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\admin\AppData\Roaming\uv\python\cpython-3.11-windows-x86_64-none\Lib\json\__init__.py", line 238, in dumps
    **kw).encode(obj)
          ^^^^^^^^^^^
  File "C:\Users\admin\AppData\Roaming\uv\python\cpython-3.11-windows-x86_64-none\Lib\json\encoder.py", line 202, in encode
    chunks = list(chunks)
             ^^^^^^^^^^^^
  File "C:\Users\admin\AppData\Roaming\uv\python\cpython-3.11-windows-x86_64-none\Lib\json\encoder.py", line 432, in _iterencode
    yield from _iterencode_dict(o, _current_indent_level)
  File "C:\Users\admin\AppData\Roaming\uv\python\cpython-3.11-windows-x86_64-none\Lib\json\encoder.py", line 406, in _iterencode_dict
    yield from chunks
  File "C:\Users\admin\AppData\Roaming\uv\python\cpython-3.11-windows-x86_64-none\Lib\json\encoder.py", line 406, in _iterencode_dict
    yield from chunks
  File "C:\Users\admin\AppData\Roaming\uv\python\cpython-3.11-windows-x86_64-none\Lib\json\encoder.py", line 439, in _iterencode
    o = _default(o)
        ^^^^^^^^^^^
  File "C:\Users\admin\AppData\Roaming\uv\python\cpython-3.11-windows-x86_64-none\Lib\json\encoder.py", line 180, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type float32 is not JSON serializable
