From 50c86aa0299133c4f0375f2bcb39c6787b02de22 Mon Sep 17 00:00:00 2001 From: gaibu <1016771049@qq.com> Date: Thu, 28 Sep 2023 16:51:33 +0800 Subject: [PATCH] =?UTF-8?q?sql=20=E6=8F=92=E4=BB=B6=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=A7=84=E8=8C=83=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../liteflow/parser/constant/ReadType.java | 9 ++++----- .../parser/constant/SqlReadConstant.java | 9 ++++----- .../sql/polling/AbstractSqlReadPollTask.java | 10 ++++------ .../parser/sql/polling/SqlReadPollTask.java | 15 +++++++++----- .../sql/polling/impl/ChainReadPollTask.java | 17 ++++------------ .../sql/polling/impl/ScriptReadPollTask.java | 9 ++++----- .../parser/sql/read/AbstractSqlRead.java | 10 ++++------ .../liteflow/parser/sql/read/SqlRead.java | 15 +++++++++----- .../parser/sql/read/SqlReadFactory.java | 9 ++++----- .../parser/sql/read/impl/ChainRead.java | 10 ++++------ .../parser/sql/read/impl/ScriptRead.java | 10 +++------- .../SQLWithXmlELSpringbootPollingTest.java | 20 +++++++++++++++++++ 12 files changed, 75 insertions(+), 68 deletions(-) diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/ReadType.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/ReadType.java index a687d53d1..812c5a5be 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/ReadType.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/ReadType.java @@ -1,12 +1,11 @@ package com.yomahub.liteflow.parser.constant; /** - * Copyright (C), 2021, 北京同创永益科技发展有限公司 + * sql 类型枚举 * - * @author tangkc - * @version 3.0.0 - * @description - * @date 2023/9/28 11:43 + * @author tangkc huxinyu + * @date 2023/9/28 11:49 + * @since 2.11.1 */ public enum ReadType { CHAIN, diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/SqlReadConstant.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/SqlReadConstant.java index 127bc0084..80116f908 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/SqlReadConstant.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/SqlReadConstant.java @@ -1,12 +1,11 @@ package com.yomahub.liteflow.parser.constant; /** - * Copyright (C), 2021, 北京同创永益科技发展有限公司 + * sql 读取常量类 * - * @author tangkc - * @version 3.0.0 - * @description - * @date 2023/9/28 11:42 + * @author tangkc huxinyu + * @date 2023/9/28 11:49 + * @since 2.11.1 */ public class SqlReadConstant { diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/AbstractSqlReadPollTask.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/AbstractSqlReadPollTask.java index 1fc75902d..72e9fa634 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/AbstractSqlReadPollTask.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/AbstractSqlReadPollTask.java @@ -1,7 +1,6 @@ package com.yomahub.liteflow.parser.sql.polling; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.digest.DigestUtil; import com.yomahub.liteflow.parser.sql.exception.ELSQLException; @@ -14,12 +13,11 @@ import java.util.Map; import java.util.Set; /** - * Copyright (C), 2021, 北京同创永益科技发展有限公司 + * sql 轮询任务抽象类,维护公共方法 * - * @author tangkc - * @version 3.0.0 - * @description - * @date 2023/9/28 14:12 + * @author tangkc huxinyu + * @date 2023/9/28 11:49 + * @since 2.11.1 */ public abstract class AbstractSqlReadPollTask implements SqlReadPollTask { private final Map DATA_SHA_MAP; diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/SqlReadPollTask.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/SqlReadPollTask.java index 898dbfb21..bbe48aaaf 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/SqlReadPollTask.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/SqlReadPollTask.java @@ -3,16 +3,21 @@ package com.yomahub.liteflow.parser.sql.polling; import com.yomahub.liteflow.parser.constant.ReadType; /** - * Copyright (C), 2021, 北京同创永益科技发展有限公司 + * sql 轮询任务接口 * - * @author tangkc - * @version 3.0.0 - * @description - * @date 2023/9/28 14:10 + * @author tangkc huxinyu + * @date 2023/9/28 11:49 + * @since 2.11.1 */ public interface SqlReadPollTask { + /** + * 执行 + */ void execute(); + /** + * 类型 + */ ReadType type(); } diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/impl/ChainReadPollTask.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/impl/ChainReadPollTask.java index 1eaac11c4..0e13e0fc6 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/impl/ChainReadPollTask.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/impl/ChainReadPollTask.java @@ -3,27 +3,18 @@ package com.yomahub.liteflow.parser.sql.polling.impl; import com.yomahub.liteflow.builder.el.LiteFlowChainELBuilder; import com.yomahub.liteflow.flow.FlowBus; import com.yomahub.liteflow.parser.constant.ReadType; -import com.yomahub.liteflow.parser.helper.ParserHelper; import com.yomahub.liteflow.parser.sql.polling.AbstractSqlReadPollTask; -import com.yomahub.liteflow.parser.sql.polling.SqlReadPollTask; import com.yomahub.liteflow.parser.sql.read.SqlRead; -import org.dom4j.Document; -import org.dom4j.DocumentHelper; import java.util.List; import java.util.Map; -import java.util.Optional; - -import static com.yomahub.liteflow.common.ChainConstant.ID; -import static com.yomahub.liteflow.common.ChainConstant.NAME; /** - * Copyright (C), 2021, 北京同创永益科技发展有限公司 + * chain 读取任务 * - * @author tangkc - * @version 3.0.0 - * @description - * @date 2023/9/28 14:46 + * @author tangkc huxinyu + * @date 2023/9/28 11:49 + * @since 2.11.1 */ public class ChainReadPollTask extends AbstractSqlReadPollTask { diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/impl/ScriptReadPollTask.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/impl/ScriptReadPollTask.java index 41dd5b4c4..539b5a849 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/impl/ScriptReadPollTask.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/polling/impl/ScriptReadPollTask.java @@ -10,12 +10,11 @@ import java.util.List; import java.util.Map; /** - * Copyright (C), 2021, 北京同创永益科技发展有限公司 + * 脚本轮询任务 * - * @author tangkc - * @version 3.0.0 - * @description - * @date 2023/9/28 15:03 + * @author tangkc huxinyu + * @date 2023/9/28 11:49 + * @since 2.11.1 */ public class ScriptReadPollTask extends AbstractSqlReadPollTask { public ScriptReadPollTask(Map dataMap, SqlRead read) { 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 e917a6161..e598adbd1 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 @@ -5,7 +5,6 @@ import com.yomahub.liteflow.log.LFLog; import com.yomahub.liteflow.log.LFLoggerManager; import com.yomahub.liteflow.parser.constant.SqlReadConstant; import com.yomahub.liteflow.parser.sql.exception.ELSQLException; -import com.yomahub.liteflow.parser.sql.read.impl.ScriptRead; import com.yomahub.liteflow.parser.sql.util.LiteFlowJdbcUtil; import com.yomahub.liteflow.parser.sql.vo.SQLParserVO; @@ -17,12 +16,11 @@ import java.util.HashMap; import java.util.Map; /** - * Copyright (C), 2021, 北京同创永益科技发展有限公司 + * sql 读取抽象类,维护公共方法 * - * @author tangkc - * @version 3.0.0 - * @description - * @date 2023/9/28 11:26 + * @author tangkc huxinyu + * @date 2023/9/28 11:49 + * @since 2.11.1 */ public abstract class AbstractSqlRead implements SqlRead { public final SQLParserVO config; diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/SqlRead.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/SqlRead.java index c94c54570..8b0bdb0ee 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/SqlRead.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/SqlRead.java @@ -5,16 +5,21 @@ import com.yomahub.liteflow.parser.constant.ReadType; import java.util.Map; /** - * Copyright (C), 2021, 北京同创永益科技发展有限公司 + * sql 读取接口 * - * @author tangkc - * @version 3.0.0 - * @description - * @date 2023/9/28 11:25 + * @author tangkc huxinyu + * @date 2023/9/28 11:49 + * @since 2.11.1 */ public interface SqlRead { + /** + * 读取 + */ Map read(); + /** + * 类型 + */ ReadType type(); } diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/SqlReadFactory.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/SqlReadFactory.java index 4f4f531e4..ad7cea54e 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/SqlReadFactory.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/SqlReadFactory.java @@ -12,12 +12,11 @@ import java.util.HashMap; import java.util.Map; /** - * Copyright (C), 2021, 北京同创永益科技发展有限公司 + * sql 读取工厂类 * - * @author tangkc - * @version 3.0.0 - * @description - * @date 2023/9/28 15:42 + * @author tangkc huxinyu + * @date 2023/9/28 11:49 + * @since 2.11.1 */ public class SqlReadFactory { private static final Map READ_MAP = new HashMap<>(); 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 a8c776b3e..3eacc28c5 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 @@ -1,7 +1,6 @@ package com.yomahub.liteflow.parser.sql.read.impl; import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.XmlUtil; import com.yomahub.liteflow.parser.constant.ReadType; import com.yomahub.liteflow.parser.constant.SqlReadConstant; import com.yomahub.liteflow.parser.sql.exception.ELSQLException; @@ -12,12 +11,11 @@ import java.sql.ResultSet; import java.sql.SQLException; /** - * Copyright (C), 2021, 北京同创永益科技发展有限公司 + * chain 读取 * - * @author tangkc - * @version 3.0.0 - * @description - * @date 2023/9/28 11:44 + * @author tangkc huxinyu + * @date 2023/9/28 11:49 + * @since 2.11.1 */ public class ChainRead extends AbstractSqlRead { 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 8c04d5086..5fae2d029 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 @@ -2,11 +2,8 @@ package com.yomahub.liteflow.parser.sql.read.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.XmlUtil; import com.yomahub.liteflow.enums.NodeTypeEnum; import com.yomahub.liteflow.enums.ScriptTypeEnum; -import com.yomahub.liteflow.log.LFLog; -import com.yomahub.liteflow.log.LFLoggerManager; import com.yomahub.liteflow.parser.constant.ReadType; import com.yomahub.liteflow.parser.constant.SqlReadConstant; import com.yomahub.liteflow.parser.sql.exception.ELSQLException; @@ -21,12 +18,11 @@ import java.util.List; import java.util.Objects; /** - * Copyright (C), 2021, 北京同创永益科技发展有限公司 + * 脚本读取 * - * @author tangkc - * @version 3.0.0 - * @description + * @author tangkc huxinyu * @date 2023/9/28 11:49 + * @since 2.11.1 */ public class ScriptRead extends AbstractSqlRead { diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/java/com/yomahub/liteflow/test/sql/SQLWithXmlELSpringbootPollingTest.java b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/java/com/yomahub/liteflow/test/sql/SQLWithXmlELSpringbootPollingTest.java index e907cc2ab..4a37741bf 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/java/com/yomahub/liteflow/test/sql/SQLWithXmlELSpringbootPollingTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/java/com/yomahub/liteflow/test/sql/SQLWithXmlELSpringbootPollingTest.java @@ -74,6 +74,8 @@ public class SQLWithXmlELSpringbootPollingTest extends BaseTest { insertData(); Thread.sleep(4000); Assertions.assertEquals("a==>b", flowExecutor.execute2Resp("chain5", "arg").getExecuteStepStr()); + + } @@ -99,6 +101,24 @@ public class SQLWithXmlELSpringbootPollingTest extends BaseTest { Assertions.assertEquals("hello", context.getData("test")); } + /** + * 删除chain数据 + */ + private void deleteData(){ + LiteflowConfig liteflowConfig = LiteflowConfigGetter.get(); + SQLParserVO sqlParserVO = JsonUtil.parseObject(liteflowConfig.getRuleSourceExtData(), SQLParserVO.class); + Connection connection; + try { + connection = DriverManager.getConnection(sqlParserVO.getUrl(), sqlParserVO.getUsername(), + sqlParserVO.getPassword()); + Statement statement = connection.createStatement(); + statement.executeUpdate("DELETE FROM EL_TABLE WHERE chain_name='chain1'"); + } + catch (SQLException e) { + throw new ELSQLException(e.getMessage()); + } + } + /** * 修改chain数据 */