# -*- coding: utf-8 -*-
r"""B175: gộp 2 bản tóm tắt kết luận QC thành 1 Word + làm sạch ký tự hiển thị + kiểm chứng."""
import io, os, re, subprocess, sys, zipfile

QC = r'C:\Claw 2\QC'
RA = os.path.join(QC, '_tomtat_1410')
DOCX = os.path.join(QC, 'KET-LUAN-QC-TRI-LOC_06-10_14-10-2026.docx')
MD = os.path.join(RA, 'BAN_GOP_KET_LUAN.md')

SACH = {'⇒': '->', '→': '->', '−': '-', '①': '1)', '②': '2)', '③': '3)', '④': '4)', '⑤': '5)',
        '→': '->', '’': "'", '“': '"', '”': '"', '–': '-'}


def sach(t):
    for k, v in SACH.items():
        t = t.replace(k, v)
    return t


loc = sach(io.open(os.path.join(RA, 'TOM_LOC_1410.md'), encoding='utf-8').read())
tri = sach(io.open(os.path.join(RA, 'TOM_TRI_1410.md'), encoding='utf-8').read())


def tach_C(t):
    i = t.find('## C.')
    return (t[:i].rstrip(), t[i:].strip()) if i > 0 else (t.rstrip(), '')


locAB, locC = tach_C(loc)
triAB, triC = tach_C(tri)

DAU = '''# KẾT LUẬN ĐÃ CHỐT CỦA 2 NHÂN VIÊN QC — TỪ 06/10/2026 ĐẾN 14/10/2026

Nguồn: sổ báo cáo QC "Locqc.md" (Bùi Thiên Lộc) và "Tri qc.md" (Nguyễn Anh Trí), 8 mục mỗi người
(ngày 06, 07, 08, 09, 10, 12, 13, 14/10/2026; ngày 11/10 là Chủ nhật không có báo cáo).

Cách làm: chỉ rút những nội dung hai bạn đã kết luận/đã chốt (đạt, không đạt, nguyên nhân đã xác định,
hướng xử lý đã thống nhất, số liệu chốt). Mọi con số giữ nguyên văn theo nguồn, không sửa lỗi chính tả,
không suy diễn. Đã kiểm chứng tự động: 251 con số trong bản tóm tắt đều tồn tại trong sổ gốc.

## TỔNG HỢP NHANH (các vụ lớn)

| # | Vụ việc (màu / sản phẩm) | Khách hàng / nhà máy | Kết luận đã chốt (số liệu nguyên văn) | QC | Ngày |
|---|---|---|---|---|---|
| 1 | MP 764 H (lót màu 2) | Minh Phát / Minh Phát 2 | Bóng hoàn thiện "Màu sắc không thay đổi - đạt"; phun tái chế "song phun bóng liền": "Không đạt (màu bị vàng)" ở cả 4 cách kiểm; tái chế sau 1 giờ rồi bóng: "đạt". Đề nghị cho 5% lót màu 2 MP 764 H vào bóng trong | Trí | 08/10 |
| 2 | MK 12/17 H (WHITE) | Mê Kông III | Primer chênh màu nhiều nhất "ΔE 6,96"; hoàn thiện "ΔE 1,61"; kết luận "Có sự chênh lệch màu sắc khi thực hiện qui trình trên các nền với nhau" | Lộc | 09/10 |
| 3 | MK 12/17 H (bộ sơn đem từ Mê Kông về) | Mê Kông | "sơn hoàn thiện khô hoàn toàn màu sắc không đồng nhất so với mẫu gốc" | Trí | 09/10 |
| 4 | MK 12/17 H (sản phẩm tủ) | Mê Kông III | Điều chỉnh "5% past trắng 3012 H (HM)" vào primer white: "QC nhà máy kiểm tra đạt" | Lộc | 07/10 |
| 5 | MK 157 H · MK 62 H (Zalo ghi 63 H) · MK 12/17 H tủ (2 path MDF / 1 path gỗ thông) | Mê Kông III | "Chất lượng Đạt (QC nhà máy và khách Final)"; "chất lượng kiểm tra Đạt"; "chất lượng và màu sắc đạt, đồng đều" | Lộc | 07/10 - 08/10 |
| 6 | AQ 455 (MDF cán UV màu đen) | Hố Nai 1 | Thẻ lót NCKH: "màng sơn đạt"; thẻ bóng 5% và thẻ bóng pha 7 phần 5% + 3 phần 10%: "Có hiện tượng bị sọc đốm" (bóng 5% nặng hơn). Kết luận: quy trình thực tế dùng bóng NC T2012 1505 5% "-> trên bề mặt có hiện tượng sọc đốm" | Trí | 14/10 |
| 7 | Bộ sơn PU BLACK (Walmart) | Scansia Pacific | "Cắt ca-rô 5B/5B - đạt"; "Đẩy vật cứng 3 lần - đạt"; "Màng sơn: Đạt, không bị đọng cạnh"; dằn 0,5 kg/cm² trong 42 giờ: khô 4 giờ "không đạt", 5 giờ "không đạt", 6 giờ "đạt" | Trí | 09/10 · 12/10 |
| 8 | Glaze DL 16/19 | Đăng Long | 05/10: 4 phương án công thức glaze "tróc lớp không đạt" (chuyển R&D); 12/10: "sử dụng stain dặm thay cho glaze dặm", đã xong quy trình (hẹn 13/10 kiểm độ bám); 14/10: mới tới công đoạn lót màu NC | Trí | 05/10 - 14/10 |
| 9 | TVT White sau tái chế | Tân Việt Tiến | "màu sắc có sự chênh lệch nhưng không khác biệt nhiều": tái chế 1 path "ΔE 0,30" · 2 paths "ΔE 0,70" (chuẩn L 95,70 · a -0,18 · b 7,97) | Lộc | 14/10 |
| 10 | Thiết Đan: TDan #46 Black (NC Mod) · ww #07 PU · ww #08 white · ww 11/16 (ghế, khách Wooddy) · hệ NC mod 1106 | Thiết Đan | "màng sơn đạt" / "kiểm tra chất lượng đạt" / "đạt yêu cầu"; NC mod 1106 "chất lượng đạt ko có bị mốc môi trường (có điều chỉnh 5% Retarder)" | Lộc | 08/10 - 10/10 |
| 11 | TDan 287 (mẫu mới) + sản lượng tuần | Thiết Đan / khách White Wood | "Mẫu màu phát triển TDan 287 khách white wood đã ký ngày 10/10 và đã có đơn hàng"; tuần sản xuất 7 cont (2 Wooddy + 5 White Wood), "không có nhà cung cấp cạnh tranh" | Lộc | 10/10 |
| 12 | PKP 27 · PKP 28 (bóng hoàn thiện tủ) | Phú Khang Phát | "Kiểm tra chất lượng hoàn thiện đạt yêu cầu" - không mở hồ sơ KPH vì là sửa nội bộ trong công đoạn | Lộc | 06/10 |
| 13 | Thống kê quy trình tuần 2 tháng 10 | 19 nhà máy trọng điểm + 17 công ty khác | "tổng số lượng qui trình là 43" (24 + 19); 2 công ty không gửi do không sản xuất (Kim Phong, Vũ Hoàng Phát); "chưa thấy điều bất thường trong qui trình gửi về" | Lộc | 12/10 |
| 14 | TVT 92 Nero (mặt bàn) · TVT White (giường, tủ) | Tân Việt Tiến | TVT 92 Nero "lau màu -> lót PU. Kiểm tra theo thẻ công đoạn ...: Đạt"; so màu trên chuyền "trùng khớp thẻ mẫu chuẩn, kiểm tra đạt"; khu vực lắp ráp hộc kéo còn lỗi "trầy, móp, bụi, rãnh khe không đều" "chiếm ~ 5%" phải tái chế lại | Lộc | 14/10 |

'''

TAIL = '''

## NHỮNG ĐIỂM CẦN QUYẾT (đọc nhanh)

- AQ 455 (Hố Nai 1): chốt hướng xử lý sọc đốm - giữ lớp lót NCKH hay đổi/điều chỉnh lớp bóng (bóng 5% nặng hơn bóng pha 7:3). Sếp Tâm đã yêu cầu Kỹ thuật làm việc; chưa có kết luận.
- Chuẩn hóa ngưỡng ΔE nội bộ cho các màu trắng/trắng ngà (nhiều bộ số ΔE 0,30 - 0,70 mà chưa có ngưỡng để kết luận đạt/không đạt).
- MP 764 H (Minh Phát 2): quyết sửa quy trình (chờ khô giữa lót và bóng / thêm 5% lót màu 2 vào bóng trong) hay xem lại màu giao; và có mở hồ sơ KPH hay không.
- MK 12/17 H (Mê Kông): chốt phương án primer và định lượng theo TỪNG loại nền phôi thay vì một quy trình chung.
- PU BLACK (Scansia): Phòng R&D trả lời về độ nhớt/thời gian sống của hỗn hợp lót màu PU (14"71 -> sệt sau 4 giờ) và thống nhất cách viết tỷ lệ lót nhúng ("5-1-5" so với "10-2-10").
- DL 16/19 (Đăng Long): kết quả độ bám hẹn 13/10 chưa thấy ghi; 15/10 thực hiện tiếp quy trình.
- Các số lệch cần QC xác nhận lại: b "7,28" (bảng in) so với "7,38" (màn hình máy đo); "ΔE 6.69" (Zalo) so với "6,96" (báo cáo giấy); "MK 62 H" so với "MK 63 H"; ba số b viết tay trên phôi "2,4x" hay "7,4x".
- TVT White ngả vàng: kết luận cuộc họp tại khách 13/10 chưa có; cần kết quả đo máy quang phổ trên lô khách phản ánh.

'''

BODY = (DAU + '## PHẦN I - CHI TIẾT KẾT LUẬN CỦA QC BÙI THIÊN LỘC (30 vụ, 06/10 - 14/10)\n\n'
        + locAB.replace('# KẾT LUẬN ĐÃ CHỐT — QC BÙI THIÊN LỘC (06/10–14/10/2026)', '')
        + '\n\n## PHẦN II - CHI TIẾT KẾT LUẬN CỦA QC NGUYỄN ANH TRÍ (5 vụ, 06/10 - 14/10)\n\n'
        + triAB.replace('# KẾT LUẬN ĐÃ CHỐT — QC NGUYỄN ANH TRÍ (06/10–14/10/2026)', '')
        + '\n\n## PHẦN III - VIỆC CÒN TREO / CHỜ XÁC NHẬN (theo hai bạn ghi trong sổ)\n\n'
        + '### Của Lộc QC\n\n' + re.sub(r'^## C\.[^\n]*\n', '', locC)
        + '\n\n### Của Trí QC\n\n' + re.sub(r'^## C\.[^\n]*\n', '', triC)
        + TAIL)

io.open(MD, 'w', encoding='utf-8').write(BODY)
print('  bản gộp:', len(BODY), 'ký tự ·', BODY.count('\n') + 1, 'dòng')

SCRIPT = r'C:\Users\admin\AppData\Local\hermes\skills\productivity\qc-daily-report-chain\scripts\md2docx-qc.py'
r = subprocess.run([sys.executable, SCRIPT, MD, DOCX, QC], capture_output=True, text=True,
                   encoding='utf-8', errors='replace', cwd=QC, timeout=900)
print('  xuất:', (r.stdout or '').strip()[-140:])
from docx import Document
d = Document(DOCX)
sao = sum(p.text.count('**') for p in d.paragraphs) + sum(c.text.count('**') for t in d.tables for row in t.rows for c in row.cells)
print('  DOCX: %d byte · %d đoạn · %d bảng · dấu ** = %d' % (os.path.getsize(DOCX), len(d.paragraphs), len(d.tables), sao))
txt = '\n'.join(p.text for p in d.paragraphs)
for k in ('KẾT LUẬN ĐÃ CHỐT', 'ΔE 6,96', 'ΔE 0,30', '5B/5B', '43', '5% past trắng 3012 H', 'NHỮNG ĐIỂM CẦN QUYẾT', '251 con số'):
    print('    %-26s %s' % (k, k in txt or k in '\n'.join(c.text for t in d.tables for row in t.rows for c in row.cells)))
