gaoluyang
2 天以前 e40a608ef9bf51db294d8eefada6a8e2e80cebca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import sys,json
from read_links import P,connect,encode
plan=json.loads((P/'plan.json').read_text(encoding='utf8'))
ids=[r['id'] for r in plan['unresolved']]
tables=['crm_customer','mes_qc_oqc','mes_md_item','mdm_item','erp_product','erp_sale_order','erp_sale_order_items',
 'mes_wm_product_sales','mes_wm_product_sales_line','mes_wm_batch','crm_contract','crm_contract_product',
 'crm_sale_quotation','crm_sale_quotation_product','crm_business','crm_business_product']
c=connect(sys.stdin.readline().strip());s={'tables':{},'target_ids':ids}
with c.cursor() as q:
 q.execute("SET time_zone='+08:00'");q.execute('SELECT DATABASE() db,NOW() now');s['state']=q.fetchone()
 q.execute('SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA=DATABASE()');available={r['TABLE_NAME'] for r in q.fetchall()}
 for t in tables:
  if t not in available:continue
  q.execute('SHOW COLUMNS FROM `'+t+'`');cols=q.fetchall()
  q.execute('SELECT * FROM `'+t+'` WHERE deleted=0 ORDER BY id');rows=q.fetchall()
  s['tables'][t]={'columns':cols,'rows':rows}
  if t in ('mdm_item','erp_product','crm_contract_product','crm_business_product'):print(t,len(rows),','.join(x['Field'] for x in cols))
(P/'oqc-context.json').write_text(encode(s),encoding='utf8');print('Target',len(ids),'State',encode(s['state']));c.close()