import json,sys from pathlib import Path P=Path(__file__).parent sys.path.insert(0,str(P/'deps')) import pymysql result=json.loads((P/'import-result.json').read_text(encoding='utf8')) standards={s['template_id']:s['standard'] for s in json.loads((P/'national-standards-plan.json').read_text(encoding='utf8'))['schemes'] if s['status']==0} 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) log=[] try: c.begin() with c.cursor() as q: for iid in result['inserted_ids']: q.execute('SELECT id,template_id,execute_standard FROM mes_qc_iqc WHERE id=%s AND deleted=0 FOR UPDATE',(iid,));r=q.fetchone();assert r and r['template_id'] in standards standard=standards[r['template_id']];assert r['execute_standard'] in (None,'',standard) sql="UPDATE mes_qc_iqc SET execute_standard=%s,updater='1' WHERE id=%s AND deleted=0";args=(standard,iid) log.append(q.mogrify(sql,args)+';');q.execute(sql,args) (P/'national-iqc-execute-standard.sql').write_text('START TRANSACTION;\n'+'\n'.join(log)+'\nCOMMIT;\n',encoding='utf8') c.commit() q.execute('SELECT * FROM mes_qc_iqc WHERE deleted=0 ORDER BY id');rows=q.fetchall() for r in rows: if r['id'] in result['inserted_ids']:assert r['execute_standard']==standards[r['template_id']] assert (r['inspect_date']-r['receive_date']).days==15 assert len(rows)==40 (P/'post-import.json').write_text(json.dumps(rows,ensure_ascii=False,default=str,indent=2),encoding='utf8') print(json.dumps({'total_iqc':len(rows),'execute_standard_verified':len(result['inserted_ids']),'receive_date_verified':True})) except Exception:c.rollback();raise finally:c.close()