gaoluyang
2 小时以前 e71d71bf43c2307c89d3592adf08c1b32fcd0907
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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()