import sys,json from pathlib import Path from datetime import datetime sys.stdout.reconfigure(encoding='utf-8') sys.path.insert(0,str(Path(__file__).parent/'iqc-import-20261012/deps')) import pymysql with pymysql.connect(host='36.213.150.237',port=10000,user='root',password=sys.stdin.readline().strip(),database='mom-hm',charset='utf8mb4',connect_timeout=15,cursorclass=pymysql.cursors.DictCursor) as c: with c.cursor() as q: q.execute('SELECT DATABASE() db');assert q.fetchone()['db']=='mom-hm' q.execute('SELECT * FROM mes_md_workstation_machine WHERE deleted=0 ORDER BY id FOR UPDATE');before=q.fetchall() out=Path(__file__).parent/'schedule-diagnosis-20261015' (out/('station-links-before-'+datetime.now().strftime('%Y%m%d%H%M%S')+'.json')).write_text(json.dumps(before,ensure_ascii=False,default=str,indent=2),encoding='utf-8') changes=[] for sid,mid in [(42,14),(43,15)]: q.execute('SELECT * FROM mes_md_workstation WHERE id=%s AND deleted=0',(sid,));s=q.fetchone() q.execute('SELECT * FROM mes_dv_machinery WHERE id=%s AND deleted=0 FOR UPDATE',(mid,));m=q.fetchone() assert s['workshop_id']==m['workshop_id']==2 and s['status']==0 and m['status']==1 and m['production_efficiency']>0 assert (sid,mid) not in {(r['workstation_id'],r['machinery_id']) for r in before} q.execute('INSERT INTO mes_md_workstation_machine (workstation_id,machinery_id,quantity,remark,create_time,update_time,deleted) VALUES (%s,%s,1,%s,NOW(),NOW(),0)',(sid,mid,'根据同车间现有设备功能配置;与其他工作站共用同一实体设备,排产按设备编号校验占用冲突')) changes.append({'workstation':s['name'],'machine':m['name'],'capacity':str(m['production_efficiency'])}) c.commit() print(json.dumps({'committed':True,'links':changes},ensure_ascii=False))