def by_epcs_join_goods_tab(cls, epcs): return dbSession.query(cls).join(Goods, cls.epc == Goods.epc).filter(Goods.epc.in_(epcs)).all()
def by_user_need_return(cls, user_id): return dbSession.query(cls).filter(and_(cls.user_id == user_id, cls.status.in_([1, 2, 3, 4]))).order_by(cls.outbound_datetime).all()
def by_epc_need_return(cls, epc): return dbSession.query(cls).filter(cls.epc == epc, cls.status.in_([1, 2])).first()
def by_card_id(cls, card_id): return dbSession.query(cls).filter_by(card_id=card_id).first()
def by_user(cls, user_id): return dbSession.query(cls, Goods).join(Goods, cls.goods_id == Goods.id).filter(cls.user_id == user_id).all()
def by_id(cls, id): return dbSession.query(cls).filter_by(id=id).first()
def by_addr(cls, ip, port): return dbSession.query(cls).filter_by(ip=ip, port=port).first()
def by_id_list(cls, id_list): return dbSession.query(cls).filter(cls.id.in_(id_list)).all()
def by_lcd_id(cls, lcd_id): return dbSession.query(cls).filter(cls.led_id == lcd_id).all()
def by_eqid_sensor(cls, eq_id, sensor_addr): return dbSession.query(cls).filter_by(collector_id=eq_id, sensor_addr=sensor_addr).first()
def by_eqid_antenna(cls, eq_id, antenna_num, addr_num): return dbSession.query(cls).filter(and_(cls.collector_id == eq_id, cls.sensor_addr == addr_num, cls.antenna_num.contains(antenna_num))).first()
def by_row_col(cls, shelf_id, row_num, col_num): return dbSession.query(cls).filter(cls.shelf_id == shelf_id, cls.row_num == row_num, cls.col_num == col_num).first()
def by_level(cls, level): return dbSession.query(cls).filter_by(level=level).first()
def by_uuid(cls, uuid): return dbSession.query(cls).filter_by(uuid=uuid).first()
def by_user_grid_status3(cls, user_id, grid_id): return dbSession.query(cls).filter(cls.user_id == user_id, cls.grid_id == grid_id, cls.status == 3).all()
def by_collector_id(cls, collector_id): return dbSession.query(cls).filter(cls.collector_id == collector_id).all()
def by_name(cls, name): return dbSession.query(cls).filter_by(name=name).first()
def by_addr(cls, ip, port): return dbSession.query(cls).filter(cls.ip == ip, cls.port == port).first()
def by_code(cls, code): return dbSession.query(cls).filter_by(code=code).first()
def by_epc_list(cls, epcs: list): return dbSession.query(cls).filter(cls.epc.in_(epcs)).all()
def all(cls): return dbSession.query(cls).all()
def by_user_need_return(cls, user_id): return dbSession.query(cls).filter( and_(cls.user_id == user_id, or_(cls.status != 0, cls.wrong_place_gid.isnot(None)))).all()