From e1e570048b9848803c86121c5f083e294054b83c Mon Sep 17 00:00:00 2001 From: lwj <3529558005@qq.com> Date: Tue, 10 Sep 2024 02:05:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E5=8F=96=E5=85=AC=E5=85=B1=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 35 +++++++++ pom.xml | 33 +++++++++ .../com/muyu/etl/basic/DataValueBasic.java | 24 ++++++ .../java/com/muyu/etl/basic/TaskBasic.java | 11 +++ .../java/com/muyu/etl/domain/DataValue.java | 30 ++++++++ .../java/com/muyu/etl/enums/DataType.java | 73 +++++++++++++++++++ .../com/muyu/etl/scope/TaskScopeBasic.java | 18 +++++ .../com/muyu/etl/scope/TaskScopeConfig.java | 36 +++++++++ 8 files changed, 260 insertions(+) create mode 100644 .gitignore create mode 100644 pom.xml create mode 100644 src/main/java/com/muyu/etl/basic/DataValueBasic.java create mode 100644 src/main/java/com/muyu/etl/basic/TaskBasic.java create mode 100644 src/main/java/com/muyu/etl/domain/DataValue.java create mode 100644 src/main/java/com/muyu/etl/enums/DataType.java create mode 100644 src/main/java/com/muyu/etl/scope/TaskScopeBasic.java create mode 100644 src/main/java/com/muyu/etl/scope/TaskScopeConfig.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3e403e3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..36cb50c --- /dev/null +++ b/pom.xml @@ -0,0 +1,33 @@ + + + 4.0.0 + + com.muyu + cloud-common + 3.6.3 + + cloud-common-etl + 1.0.0 + + cloud-common-etl + + + 17 + 17 + UTF-8 + + + + com.muyu + cloud-common-core + + + org.projectlombok + lombok + provided + + + + diff --git a/src/main/java/com/muyu/etl/basic/DataValueBasic.java b/src/main/java/com/muyu/etl/basic/DataValueBasic.java new file mode 100644 index 0000000..028b4b5 --- /dev/null +++ b/src/main/java/com/muyu/etl/basic/DataValueBasic.java @@ -0,0 +1,24 @@ +package com.muyu.etl.basic; + +import com.muyu.etl.domain.DataValue; + +public interface DataValueBasic extends TaskBasic{ + + /** + * 数据值 + * @return 返回查询的数据值 + */ + public DataValue getDataStructure(); + + /** + * 数据记录 + * @return 数据记录 + */ + public DataValue[] getRow(); + + /** + * 数据集 + * @return 数据集 + */ + public DataValue[][] getRows(); +} diff --git a/src/main/java/com/muyu/etl/basic/TaskBasic.java b/src/main/java/com/muyu/etl/basic/TaskBasic.java new file mode 100644 index 0000000..9314294 --- /dev/null +++ b/src/main/java/com/muyu/etl/basic/TaskBasic.java @@ -0,0 +1,11 @@ +package com.muyu.etl.basic; + +import com.muyu.etl.scope.TaskScopeBasic; +import com.muyu.etl.scope.TaskScopeConfig; + +public interface TaskBasic { + + public default TaskScopeConfig getScopeConfig(){ + return TaskScopeBasic.get(); + } +} diff --git a/src/main/java/com/muyu/etl/domain/DataValue.java b/src/main/java/com/muyu/etl/domain/DataValue.java new file mode 100644 index 0000000..d65a389 --- /dev/null +++ b/src/main/java/com/muyu/etl/domain/DataValue.java @@ -0,0 +1,30 @@ +package com.muyu.etl.domain; + +import com.muyu.etl.enums.DataType; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class DataValue { + /** + * 字段名 + */ + private String key; + /** + * 字段类型 + */ + private DataType type; + /** + * 描述 + */ + private String label; + /** + * 值 + */ + private Object value; +} diff --git a/src/main/java/com/muyu/etl/enums/DataType.java b/src/main/java/com/muyu/etl/enums/DataType.java new file mode 100644 index 0000000..aae16d5 --- /dev/null +++ b/src/main/java/com/muyu/etl/enums/DataType.java @@ -0,0 +1,73 @@ +package com.muyu.etl.enums; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Author:zhangzhihao + * @name:DataType + * @Date:2024/8/28 18:38 + * 不准抄代码,添加注释,清楚每一行代码意思 + */ +public enum DataType { + VARCHAR("varchar",String.class,"String"), + BIGINT("bigint", Long.class,"Long"), + INT("int", Integer.class,"Integer"), + DECIMAL("decimal", BigDecimal.class,"BigDecimal"), + DATETIME("datetime", Date.class,"Date"), + TEXT("text", String.class,"String"), + DOUBLE("double", Double.class,"Double"); + + private final String sourceType; + + private final Class targetType; + + private final String javaType; + + public String getSourceType() { + return sourceType; + } + + public Class getTargetType() { + return targetType; + } + + public String getJavaType() { + return javaType; + } + + + public static Class convertType(String type){ + for (DataType dataType : DataType.values()) { + if (dataType.sourceType.equalsIgnoreCase(type)){ + return dataType.targetType; + } + } + return String.class; + } + + public static DataType findBySqlType(String sqlType){ + for (DataType dataType : DataType.values()) { + if (dataType.getSourceType().equalsIgnoreCase(sqlType)){ + return dataType; + } + } + return VARCHAR; + } + + public static String convertTypeString(String type){ + + for (DataType dataType : DataType.values()) { + if (dataType.sourceType.equalsIgnoreCase(type)){ + return dataType.javaType; + } + } + return "String"; + } + + DataType(String sourceType, Class targetType, String javaType) { + this.sourceType = sourceType; + this.targetType = targetType; + this.javaType = javaType; + } +} diff --git a/src/main/java/com/muyu/etl/scope/TaskScopeBasic.java b/src/main/java/com/muyu/etl/scope/TaskScopeBasic.java new file mode 100644 index 0000000..7d616ef --- /dev/null +++ b/src/main/java/com/muyu/etl/scope/TaskScopeBasic.java @@ -0,0 +1,18 @@ +package com.muyu.etl.scope; + +public class TaskScopeBasic { + + private static final ThreadLocal localScope = new ThreadLocal<>(); + + public static void set(final TaskScopeConfig handler) { + localScope.set(handler); + } + + public static TaskScopeConfig get() { + return localScope.get(); + } + + public static void remove(){ + localScope.remove(); + } +} diff --git a/src/main/java/com/muyu/etl/scope/TaskScopeConfig.java b/src/main/java/com/muyu/etl/scope/TaskScopeConfig.java new file mode 100644 index 0000000..7bdd377 --- /dev/null +++ b/src/main/java/com/muyu/etl/scope/TaskScopeConfig.java @@ -0,0 +1,36 @@ +package com.muyu.etl.scope; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.concurrent.LinkedBlockingDeque; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TaskScopeConfig { + + /** + * 任務ID + */ + private String taskId; + + + private LinkedBlockingDeque taskNodeQueue = new LinkedBlockingDeque(); + + public void addTaskNode(Object obj){ + this.taskNodeQueue.add(obj); + } + + public boolean hashTaskNodeNext(){ + return !taskNodeQueue.isEmpty(); + } + + private T nextTaskNode(){ + return (T) taskNodeQueue.poll(); + } + +}