From d15eeb98559217d04452e8cd43b5c5175786d0f3 Mon Sep 17 00:00:00 2001 From: gaibu <1016771049@qq.com> Date: Sun, 14 Jan 2024 19:56:52 +0800 Subject: [PATCH] =?UTF-8?q?enhancement=20#I61D1N=20=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20enable=20=E9=80=BB=E8=BE=91,=E5=AE=8C?= =?UTF-8?q?=E6=88=90=20sql=20=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parser/sql/read/AbstractSqlRead.java | 22 +++++++++++++++---- .../parser/sql/read/impl/ChainRead.java | 20 ++++++++++++----- .../parser/sql/read/impl/ScriptRead.java | 20 ++++++++++++----- 3 files changed, 48 insertions(+), 14 deletions(-) diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java index fc0ac3e96..610c7079c 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java @@ -49,16 +49,20 @@ public abstract class AbstractSqlRead implements SqlRead { // 设置游标拉取数量 stmt.setFetchSize(SqlReadConstant.FETCH_SIZE_MAX); stmt.setString(1, config.getApplicationName()); - ParameterMetaData parameterMetaData = stmt.getParameterMetaData(); - if (parameterMetaData.getParameterCount() == 2) { - stmt.setBoolean(2, true); - } + rs = stmt.executeQuery(); while (rs.next()) { String xml = buildXmlElement(rs); String uniqueKey = buildXmlElementUniqueKey(rs); + if (hasEnableFiled()){ + boolean enable = getEnableFiledValue(rs); + // 如果停用,直接跳过 + if (!enable){ + continue; + } + } result.put(uniqueKey, xml); } } catch (Exception e) { @@ -71,6 +75,16 @@ public abstract class AbstractSqlRead implements SqlRead { return result; } + /** + * 是否包含启停字段 + */ + public abstract boolean hasEnableFiled(); + + /** + * 获取启停字段对应的字段值 + */ + public abstract boolean getEnableFiledValue(ResultSet rs) throws SQLException; + public abstract String buildQuerySql(); public abstract String buildXmlElement(ResultSet rs) throws SQLException; diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ChainRead.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ChainRead.java index d2b9defc0..4bbd1d3cf 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ChainRead.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ChainRead.java @@ -23,6 +23,20 @@ public class ChainRead extends AbstractSqlRead { super(config); } + @Override + public boolean hasEnableFiled() { + String chainEnableField = super.config.getChainEnableField(); + return StrUtil.isNotBlank(chainEnableField); + } + + @Override + public boolean getEnableFiledValue(ResultSet rs) throws SQLException { + String chainEnableField = super.config.getChainEnableField(); + byte enable = rs.getByte(chainEnableField); + + return enable == 1; + } + @Override public String buildQuerySql() { String chainTableName = super.config.getChainTableName(); @@ -30,7 +44,7 @@ public class ChainRead extends AbstractSqlRead { String chainNameField = super.config.getChainNameField(); String chainApplicationNameField = super.config.getChainApplicationNameField(); String applicationName = super.config.getApplicationName(); - String chainEnableField = super.config.getChainEnableField(); + if (StrUtil.isBlank(chainTableName)) { throw new ELSQLException("You did not define the chainTableName property"); @@ -43,10 +57,6 @@ public class ChainRead extends AbstractSqlRead { String sqlCmd = StrUtil.format(SqlReadConstant.SQL_PATTERN, chainNameField, elDataField, chainTableName, chainApplicationNameField); - if (StrUtil.isNotBlank(chainEnableField)){ - sqlCmd = StrUtil.format("{} {}", sqlCmd, StrUtil.format(SqlReadConstant.SQL_ENABLE_PATTERN, chainEnableField)); - } - return sqlCmd; } diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ScriptRead.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ScriptRead.java index 6c1253b8b..d55b142f4 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ScriptRead.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ScriptRead.java @@ -30,6 +30,20 @@ public class ScriptRead extends AbstractSqlRead { super(config); } + @Override + public boolean hasEnableFiled() { + String scriptEnableField = super.config.getScriptEnableField(); + return StrUtil.isNotBlank(scriptEnableField); + } + + @Override + public boolean getEnableFiledValue(ResultSet rs) throws SQLException { + String scriptEnableField = super.config.getScriptEnableField(); + byte enable = rs.getByte(scriptEnableField); + + return enable == 1; + } + @Override public String buildQuerySql() { String scriptLanguageField = super.config.getScriptLanguageField(); @@ -40,7 +54,7 @@ public class ScriptRead extends AbstractSqlRead { String scriptTypeField = super.config.getScriptTypeField(); String scriptApplicationNameField = super.config.getScriptApplicationNameField(); String applicationName = super.config.getApplicationName(); - String scriptEnableField = super.config.getScriptEnableField(); + if (StrUtil.isBlank(applicationName) || StrUtil.isBlank(scriptApplicationNameField)) { throw new ELSQLException("You did not define the applicationName or scriptApplicationNameField property"); @@ -73,10 +87,6 @@ public class ScriptRead extends AbstractSqlRead { ); } - if (StrUtil.isNotBlank(scriptEnableField)){ - sqlCmd = StrUtil.format("{} {}", sqlCmd, StrUtil.format(SqlReadConstant.SQL_ENABLE_PATTERN, scriptEnableField)); - } - return sqlCmd; }