from collections import defaultdict from datetime import date, timedelta from sqlalchemy import update, exists, select, and_ from db import MysqlSession from db.mysql import ZxIeOcrerror, ZxPhrec from util import util if __name__ == '__main__': today = date.today() session = MysqlSession() ocr_errors = (session.query(ZxIeOcrerror.pk_phrec, ZxIeOcrerror.cXm, ZxIeOcrerror.cSfzh, ZxIeOcrerror.cfjaddress, ZxIeOcrerror.pk_phhd, ZxIeOcrerror.cfjaddress2) .filter(and_(ZxIeOcrerror.creationtime >= today, ZxIeOcrerror.creationtime < today + timedelta(days=1))) .order_by(ZxIeOcrerror.pk_phrec.desc()).all()) session.close() result = defaultdict(int) result[f"{today}涂抹错误图片总数"] = len(ocr_errors) for ocr_error in ocr_errors: if ocr_error.cfjaddress2: result[ocr_error.cfjaddress2] += 1 continue if ocr_error.cfjaddress[17] == '1': session = MysqlSession() update_flag = (update(ZxIeOcrerror).where(ZxIeOcrerror.pk_phrec == ocr_error.pk_phrec).values( checktime=util.get_default_datetime(), cfjaddress2="图片类型错误")) session.execute(update_flag) session.commit() session.close() result["图片类型错误"] += 1 continue session = MysqlSession() query = select(exists().where(ZxPhrec.cfjaddress == ocr_error.cfjaddress)) record_exists = session.execute(query).scalar() session.close() if not record_exists: session = MysqlSession() update_flag = (update(ZxIeOcrerror).where(ZxIeOcrerror.pk_phrec == ocr_error.pk_phrec).values( checktime=util.get_default_datetime(), cfjaddress2="未同步")) session.execute(update_flag) session.commit() session.close() result["未同步"] += 1 continue session = MysqlSession() update_flag = (update(ZxIeOcrerror).where(ZxIeOcrerror.pk_phrec == ocr_error.pk_phrec).values( cfjaddress2="未知错误")) session.execute(update_flag) session.commit() session.close() result["未知错误"] += 1 print(result)