# -*- coding: utf-8 -*-
r"""B94: tra 'tái chế' trong mọi nguồn (CSDL A/B/C, btchem.db, 2 sổ QC, phiếu TVT) để trả lời: tái chế BẰNG GÌ, có KIỂM SOÁT không."""
import os, re, sqlite3, glob

def in_dong(t, n=200):
    return re.sub(r'\s+', ' ', t)[:n]


print('=' * 100)
print('1) CSDL A (quy trinh / buoc_quy_trinh) — Quy trình sơn')
A = r'C:\Claw 2\Nghien cuu\Du-an-A-Quy-trinh-son\CSDLA.db'
c = sqlite3.connect('file:%s?mode=ro' % A.replace('\\', '/'), uri=True)
cols_q = [r[1] for r in c.execute('pragma table_info(quy_trinh)')]
cols_b = [r[1] for r in c.execute('pragma table_info(buoc_quy_trinh)')]
print('   cột quy_trinh:', cols_q)
print('   cột buoc_quy_trinh:', cols_b)
for bang, cols in (('quy_trinh', cols_q), ('buoc_quy_trinh', cols_b)):
    dieu = ' OR '.join('%s LIKE ?' % x for x in cols)
    rows = list(c.execute('select * from %s where %s' % (bang, dieu), ['%tái chế%'] * len(cols)))
    print('   %-16s %d dòng có "tái chế"' % (bang, len(rows)))
    for r in rows[:8]:
        print('      -', in_dong(' | '.join(str(x) for x in r), 400))
c.close()

print()
print('2) CSDL C (CSDLC.db — kinh_nghiem) — bài học khách hàng/nhà máy')
C = r'C:\Claw-Zalo\CSDLC\CSDLC.db'
c = sqlite3.connect('file:%s?mode=ro' % C.replace('\\', '/'), uri=True)
cols = [r[1] for r in c.execute('pragma table_info(kinh_nghiem)')]
print('   cột:', cols)
dieu = ' OR '.join('%s LIKE ?' % x for x in cols)
rows = list(c.execute('select * from kinh_nghiem where %s' % dieu, ['%tái chế%'] * len(cols)))
print('   %d dòng có "tái chế"' % len(rows))
for r in rows:
    print('      -', in_dong(' | '.join(str(x) for x in r), 500))
c.close()

print()
print('3) btchem.db — mau_lam / bao_cao_kt_tuan / su_co_kph')
B = r'C:\c\deepseek-harness\claw2-db\btchem.db'
c = sqlite3.connect('file:%s?mode=ro' % B.replace('\\', '/'), uri=True)
for bang in ('mau_lam', 'bao_cao_kt_tuan', 'su_co_kph'):
    try:
        cols = [r[1] for r in c.execute('pragma table_info(%s)' % bang)]
        dieu = ' OR '.join('%s LIKE ?' % x for x in cols)
        rows = list(c.execute('select * from %s where %s' % (bang, dieu), ['%tái chế%'] * len(cols)))
        print('   %-18s %d dòng' % (bang, len(rows)))
        for r in rows[:10]:
            print('      -', in_dong(' | '.join(str(x) for x in r), 400))
    except Exception as e:
        print('   %-18s LỖI %s' % (bang, e))
c.close()

print()
print('4) Sổ QC (Locqc.md / Tri qc.md) — mọi dòng có "tái chế"')
for f in (r'C:\Claw 2\QC\Locqc.md', r'C:\Claw 2\QC\Tri qc.md'):
    s = open(f, encoding='utf-8').read()
    print('  ---', os.path.basename(f))
    for m in re.finditer(r'[^\n]*tái chế[^\n]*', s, re.I):
        print('     ·', in_dong(m.group(0), 300))

print()
print('5) Có file/thẻ mẫu nào định nghĩa "tái chế" trong dự án?')
for pat in (r'C:\Claw 2\Nghien cuu\**\*tái chế*', r'C:\Claw 2\QC\**\*tái chế*', r'C:\Claw 2\**\*TAI CHE*'):
    for f in glob.glob(pat, recursive=True)[:10]:
        print('   ', f)
