class DeviceTypeTerm extends AbstractTermFragmentBuilder {
    public DeviceTypeTerm() {
        super("dev-device-type", "按设备类型查询设备");
    }

    @Override
    public SqlFragments createFragments(String columnFullName, RDBColumnMetadata column, Term term) {<FILL_FUNCTION_BODY>}
}

        PrepareSqlFragments sqlFragments = PrepareSqlFragments.of();
        List<Object> idList = convertList(column, term);
        if (term.getOptions().contains("not")) {
            sqlFragments.addSql("not");
        }
        sqlFragments
            .addSql("exists(select 1 from ",getTableName("dev_product",column)," _product where _product.id = " + columnFullName);
        sqlFragments
            .addSql(" and _product.device_type in(");
        sqlFragments.addSql(idList.stream().map(str -> "?").collect(Collectors.joining(",")))
                    .addParameter(idList)
                    .addSql("))");

        return sqlFragments;
    
<no_super_class>