云
昨天 74b0d9c5ab1dc316b29f8525dcffe45225d4c43c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import sys,json,re
from pathlib import Path
P=Path(__file__).parent
sys.stdout.reconfigure(encoding='utf8')
sys.path.insert(0,str(P.parent/'iqc-import-20261012/deps'))
import pymysql
c=pymysql.connect(host='36.213.150.237',port=10000,user='root',password=sys.stdin.readline().strip(),database='mom-hm',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
s={};pattern=re.compile('演示|模拟|非真实|补录|台账|导入|对冲|待确认|待补|禁止|占位|手工|自动生成|示意|虚构')
with c.cursor() as q:
 q.execute("SELECT table_name FROM information_schema.columns WHERE table_schema=DATABASE() AND column_name='remark' AND (table_name LIKE 'mes_pro_%' OR table_name LIKE 'mes_qc_%' OR table_name LIKE 'mes_wm_%' OR table_name LIKE 'erp_stock_%' OR table_name IN ('erp_sale_out','erp_sale_out_items','erp_purchase_in','erp_purchase_in_items')) ORDER BY table_name");tabs=[x['TABLE_NAME'] for x in q.fetchall()]
 for t in tabs:
  q.execute('SHOW COLUMNS FROM '+t);cols={x['Field'] for x in q.fetchall()}
  if not {'id','deleted','update_time','updater'}<=cols:continue
  q.execute('SELECT id,remark FROM '+t+' WHERE deleted=0 ORDER BY id');rows=q.fetchall();s[t]=rows
  vals=list(dict.fromkeys(x['remark'] for x in rows if x['remark'] and pattern.search(x['remark'])))
  if vals:print(t,'记录',len(rows),'匹配',sum(bool(x['remark'] and pattern.search(x['remark'])) for x in rows),'不同备注',len(vals),json.dumps(vals[:7],ensure_ascii=False))
(P/'preview.json').write_text(json.dumps(s,ensure_ascii=False,default=str,indent=2),encoding='utf8')
c.close()