class TableInfo {

    public void importPackage(StrategyConfig strategyConfig, GlobalConfig globalConfig) {
        boolean importSerializable = true;
        if (StringUtils.isNotBlank(strategyConfig.getSuperEntityClass())) {
            // 自定义父类
            importSerializable = false;
            this.importPackages.add(strategyConfig.getSuperEntityClass());
        } else {
            if (globalConfig.isActiveRecord()) {
                // 无父类开启 AR 模式
                this.getImportPackages().add(Model.class.getCanonicalName());
                importSerializable = false;
            }
        }
        if (importSerializable) {
            this.importPackages.add(Serializable.class.getCanonicalName());
        }
        if (this.isConvert()) {
            this.importPackages.add(TableName.class.getCanonicalName());
        }
        if (strategyConfig.getLogicDeleteFieldName() != null && this.isLogicDelete(strategyConfig.getLogicDeleteFieldName())) {
            this.importPackages.add(TableLogic.class.getCanonicalName());
        }
        if (null != globalConfig.getIdType() && this.isHavePrimaryKey()) {
            // 指定需要 IdType 场景
            this.importPackages.add(IdType.class.getCanonicalName());
            this.importPackages.add(TableId.class.getCanonicalName());
        }
        this.fields.forEach(field -> {
            if (null != field.getColumnType() && null != field.getColumnType().getPkg()) {
                importPackages.add(field.getColumnType().getPkg());
            }
            if (field.isKeyFlag()) {
                // 主键
                if (field.isConvert() || field.isKeyIdentityFlag()) {
                    importPackages.add(TableId.class.getCanonicalName());
                }
                // 自增
                if (field.isKeyIdentityFlag()) {
                    importPackages.add(IdType.class.getCanonicalName());
                }
            } else if (field.isConvert()) {
                // 普通字段
                importPackages.add(com.baomidou.mybatisplus.annotation.TableField.class.getCanonicalName());
            }
            if (null != field.getFill()) {
                // 填充字段
                importPackages.add(com.baomidou.mybatisplus.annotation.TableField.class.getCanonicalName());
                //TODO 好像default的不用处理也行,这个做优化项目.
                importPackages.add(FieldFill.class.getCanonicalName());
            }
            String versionFieldName = strategyConfig.getVersionFieldName();
            if (StringUtils.isNotBlank(versionFieldName) && versionFieldName.equals(field.getName())) {
                this.importPackages.add(Version.class.getCanonicalName());
            }
        });
    }

}