gaoluyang
13 小时以前 e40a608ef9bf51db294d8eefada6a8e2e80cebca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import sys,json
from pathlib import Path
sys.stdout.reconfigure(encoding='utf-8')
from decimal import Decimal
sys.path.insert(0,str(Path('scripts/iqc-import-20261012/deps').resolve()))
import pymysql
p=Path('scripts/qc-indicator-optimize-20261014')
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,autocommit=False)
with c.cursor() as q:
 q.execute('SELECT id,name,result_type,unit_text FROM mes_qc_indicator WHERE id IN (47,286) FOR UPDATE');rows=q.fetchall();assert len(rows)==2 and all(x['result_type']==2 for x in rows)
 assert rows[1]['unit_text']=='MPN/g'
 (p/'mpn-type-before.json').write_text(json.dumps(rows,ensure_ascii=False,indent=2),encoding='utf8')
 q.execute('UPDATE mes_qc_indicator SET result_type=1,update_time=update_time WHERE id IN (47,286) AND result_type=2');assert q.rowcount==2
 c.commit()
r=json.loads((p/'result-applied.json').read_text(encoding='utf8'))
for change in r['changes']:
 if change['table']=='mes_qc_indicator' and change['id'] in [47,286]:change['after']['result_type']=1
(p/'result-applied.json').write_text(json.dumps(r,ensure_ascii=False,indent=2),encoding='utf8')
with (p/'applied.sql').open('a',encoding='utf8') as f:f.write('\n-- MPN estimate supports decimal results; no rounding of microbial estimates.\nUPDATE mes_qc_indicator SET result_type=1,update_time=update_time WHERE id IN (47,286);\n')
print('MPN estimation fields support decimals; other data unchanged.');c.close()