# -*- coding: utf-8 -*-
"""Thêm mục 16/09/2026 (báo cáo Lộc QC — kiểm tra màu KH 3900 tại Kim Huy) vào Locqc.md."""
import io, os, shutil, datetime, difflib

F = r"C:\Claw 2\QC\Locqc.md"
NGAY = datetime.datetime.now().strftime("%d%m%Y")
BKDIR = os.path.join(r"C:\Claw 2\QC", NGAY, "BACKUP_MD", "Nhan su tham gia")
os.makedirs(BKDIR, exist_ok=True)
BK = os.path.join(BKDIR, "QC__Locqc.md")
shutil.copy2(F, BK)
print("backup đầu ngày:", BK, os.path.getsize(BK), "bytes")

s = io.open(F, encoding="utf-8", newline="").read()
NL = "\r\n" if "\r\n" in s else "\n"
assert "CẬP NHẬT 16/09/2026" not in s, "đã có mục 16/09 — dừng lại"

MUC = """---

# BÁO CÁO CÔNG VIỆC HẰNG NGÀY — CẬP NHẬT 16/09/2026: Kiểm tra màu **KH 3900** tại Công ty **KIM HUY** (sản phẩm tủ 5 ngăn / tủ 2 ngăn — ~3 cont, khách hàng **CRM**)

**Ngày báo cáo:** 16/09/2026 · **Người báo cáo:** Bùi Thiên Lộc (QC BT Chem)
**Kính gửi:** BLĐ phòng Kỹ thuật & phòng QC BT-Chem
**Nhà máy:** Công ty **Kim Huy** (ván cán tại Cty **Kim Phong**) · **Khách hàng cuối:** **CRM** · **Số lượng:** **~3 cont** (tủ 5 ngăn, tủ 2 ngăn)

## 1. Quy trình đang sản xuất trên chuyền (theo báo cáo)

| Bước | Công đoạn | Thông số / thời gian |
|:--:|:--|:--|
| 1 | Mặt ván **PB, MDF cán** (**BTUV 2703** → **cán lót màu KH Black 1808**) tại Cty **Kim Phong** | sau **> 3 ngày** chuyển về Cty Kim Huy |
| 1b | Gỗ thông (**đố, diêm**): phun **lót màu KH 3900** tại Cty Kim Huy | **1 pasth**, sau **> 24 giờ** |
| 1c | Lắp ráp thành sản phẩm → lên **chuyền pallet** trám trét xử lý lỗi → **chà nhám #320** toàn sản phẩm | — |
| 2 | **Lót NC KH 0204 η 16 giây** phun **cạnh hộc kéo** → **Lót NC KH 0204 η 12 giây** phun **toàn sản phẩm** | sau **2 giờ 50 → 3 giờ**; **2 lần sấy 45 °C**, thời gian sấy **~ 1,5 giờ**; **1 pasth** |
| 2b | Trám trét lỗi phôi → **chà nhám #320** | — |
| 3 | **Lót NC KH 0204** η **[nguồn để trống]** giây tại **vị trí đố, diêm** → sau **10 phút** phun **lót màu NC KH 3900** toàn sản phẩm (**1 pasth**) | sau **50 – 55 phút** (**sấy 45 °C**, **25 – 30 phút**) |
| 3b | Kiểm tra xử lý lỗi cục bộ → chà nhám + trám trét cục bộ → phun **lót NC KH 0204 / lót màu KH 3900** cục bộ | sau **10 – 15 phút** |
| 4 | **Bóng NC 2605 KH 35%** η **10″50** phun toàn sản phẩm (**1 pasth**) theo chuyền sản xuất | qua **~ 5 giờ** (**4 lần** qua buồng sấy **45 °C**, khoảng **2 giờ**) |
| 4b | QC nhà máy kiểm tra sản phẩm: **lỗi → hạ xuống chuyền, chuyển qua khu vực tái chế**; **đạt → đóng gói trên chuyền** | — |

## 2. Kiểm tra chất lượng sản phẩm sau 18 giờ

| Chỉ tiêu | Kết quả trong báo cáo |
|:--|:--|
| Màu sắc | so với mẫu gốc — **(nguồn để trống)** |
| Độ bóng | đo bằng máy — **(nguồn để trống)** *(yêu cầu **40 ± 5%**)* |
| Độ phủ | cảm quan so với mẫu gốc |
| Màng sơn | **(nguồn để trống)** |
| Độ bám dính | giật băng keo, cắt ca rô giật băng keo |
| Kết luận | **(nguồn để trống)** |

## 3. Ghi chú của báo cáo

- **Lót cán trục KH Black 1808** và **lót màu KH 3900** đã **điều chỉnh công thức** và đưa vào sản xuất, sử dụng **lót NC KH 0204** (ở **bước 2, độ nhớt 16 giây**): chất lượng sản phẩm sản xuất hoàn thiện **ĐẠT** — đã làm **báo cáo ngày 29/08/2026**.
- **Hôm nay (16/09)** điều chỉnh **độ nhớt lót NC KH 0204 về 12 giây** ở bước 2 trên sản phẩm hoàn thiện.

## 4. Đề xuất

- **Kỹ thuật giám sát và hướng dẫn công nhân phun thao tác chuẩn (chậm và đều)** để đảm bảo **độ dày màng sơn đồng đều** trên sản phẩm.

> ⚠️ **Ghi chú đối chiếu & theo dõi:**
> - ⚠️ **Nguồn:** nội dung do **chủ tài khoản (Anh Minh)** cung cấp bằng text ngày 16/09/2026 (bản 2 trang) — **chưa nhận được bản ký số/ảnh**; số liệu **giữ nguyên văn, không tự sửa**.
> - ⚠️ **Báo cáo để TRỐNG 5 ô số liệu**: màu sắc · độ bóng · màng sơn · kết luận · độ nhớt lót NC KH 0204 ở bước 3 → **chưa có cơ sở kết luận đạt/không đạt cho lô ~3 cont khách CRM**; đề nghị Lộc QC bổ sung số đo (kèm dụng cụ đo, góc đo độ bóng) trước khi chốt vụ.
> - 📌 **Nối trực tiếp mục 15/09/2026 cùng file** (kế hoạch ngày mai 16/09 lên chuyền, dùng **lót NC KH 0204 độ nhớt 12 giây**, *"không như lúc thử kiểm tra điều chỉnh đã dùng **lót cán trục KH Black 1008** và **lót màu NC KH 3900**"*). Báo cáo 16/09 ghi **cán lót màu KH Black 1808** → ⚠️ **lệch mã 1008 / 1808, cần xác nhận** (khối 17 portal KPH và chuỗi 10–15/08 đều dùng **1808**).
> - ⚠️ **Độ nhớt lót NC KH 0204 đang có nhiều mốc — cần thống nhất:** hôm nay chạy **16 giây (cạnh hộc kéo)** và **12 giây (toàn sản phẩm)**; báo cáo 29/08 ghi **η 16″00**; mục Kim Phong 11/01 ghi **15S**; chuỗi 10–15/08 ghi **12 – 12″56** → đề nghị ghi rõ **dụng cụ đo (cốc Zahn/FC4)** + **nhiệt độ** và lý do giảm độ nhớt (giảm η = pha loãng nhiều hơn, ảnh hưởng **độ dày màng** và **độ bám**).
> - 📌 **Hai chỉ tiêu còn tồn từ đợt 28 → 29/08 phải đo lại và ghi tách riêng:** (1) **độ bóng 33 – 40%** so với yêu cầu **40 ± 5%** (thấp ở đầu dải); (2) **cắt ca rô cạnh hộc kéo / khung đố < 4B/5B** (giật băng keo đạt nhưng cắt ca rô chưa đạt — liên quan **mất lót, màng sơn ghim gỗ và lông nhám**). Đề nghị ghi kết quả **tách riêng mặt phẳng ↔ cạnh hộc kéo/đố**, kèm **ảnh cắt ca rô sau 24 giờ**.
> - 📌 **Theo dõi màu lòng/cạnh hộc kéo:** yêu cầu kiểm tra **lòng và cạnh hộc kéo không bị lấp màu** (trước đây lót màu KH 3900 làm cạnh hộc kéo **hấp màu**) — đối chiếu thẻ màu đã duyệt.
> - ⚠️ **Mã bóng cần đối chiếu:** báo cáo 16/09 ghi **Bóng NC 2605 KH 35%** (η 10″50), trong khi chuỗi **24/08** kiểm **4 lô Bóng NC 2605 KH 401** → xác nhận **mã bóng đang chạy thực tế** để không lẫn khi đặt hàng/đối chiếu.
> - 📌 **Nhiệt – thời gian sấy:** hôm nay có **2 lần sấy 45 °C (~1,5 giờ)** ở bước 2 và **4 lần qua buồng sấy 45 °C (khoảng 2 giờ)** cho lớp bóng → dùng làm mốc so sánh hiệu quả sấy giữa **chuyền pallet** và **hầm sấy**.
> - 📌 **Liên kết hồ sơ KPH:** nội dung này đã ghi đồng bộ vào **CSDL chính (`su_co_kph` #28)**, **CSDL KPH (hồ sơ #799)** và **portal KPH — khối 17 `kimhuy`, panel “📎 Bổ sung 16/09/2026 — BÁO CÁO KIỂM TRA MÀU KH 3900”**.
> - 📌 **Cần bổ sung để khép chuỗi:** **báo cáo 29/08/2026** (mốc “lót NC KH 0204 η 16 giây — sản phẩm hoàn thiện đạt”) được nhắc trong ghi chú nhưng **chưa có trên portal** → đề nghị gửi để nối đủ chuỗi KH 3900.
"""
assert not s.endswith("\n\n"), repr(s[-40:])
new = s.rstrip("\r\n") + NL + NL + MUC.replace("\n", NL)
io.open(F, "w", encoding="utf-8", newline="").write(new)

# verify: chỉ THÊM, không mất dòng nào
old_l = io.open(BK, encoding="utf-8", newline="").read().split("\n")
new_l = io.open(F, encoding="utf-8", newline="").read().split("\n")
sm = difflib.SequenceMatcher(None, old_l, new_l, autojunk=False)
removed = added = 0
for tag, i1, i2, j1, j2 in sm.get_opcodes():
    if tag in ("replace", "delete"): removed += i2 - i1
    if tag in ("replace", "insert"): added += j2 - j1
print(f"dòng mất: {removed} | dòng thêm: {added}")
print("phần cũ giữ nguyên 100%:", io.open(F, encoding='utf-8', newline='').read().startswith(io.open(BK, encoding='utf-8', newline='').read()))
chk = io.open(F, encoding="utf-8").read()
print("có mục 16/09:", "CẬP NHẬT 16/09/2026" in chk, "| số heading:", chk.count("\n# BÁO CÁO"), "| dung lượng:", os.path.getsize(F), "bytes")
