diff --git a/cloud-auth/src/main/resources/bootstrap.yml b/cloud-auth/src/main/resources/bootstrap.yml
index 2bdda14..270c8d6 100644
--- a/cloud-auth/src/main/resources/bootstrap.yml
+++ b/cloud-auth/src/main/resources/bootstrap.yml
@@ -6,7 +6,7 @@ nacos:
addr: 106.15.136.7:8848
user-name: nacos
password: nacos
- namespace: dev
+ namespace: xzr
# Spring
spring:
application:
diff --git a/cloud-gateway/src/main/resources/bootstrap.yml b/cloud-gateway/src/main/resources/bootstrap.yml
index 4132cf0..5e54e71 100644
--- a/cloud-gateway/src/main/resources/bootstrap.yml
+++ b/cloud-gateway/src/main/resources/bootstrap.yml
@@ -6,7 +6,7 @@ nacos:
addr: 106.15.136.7:8848
user-name: nacos
password: nacos
- namespace: dev
+ namespace: xzr
# Spring
spring:
diff --git a/cloud-modules/cloud-modules-data-process/pom.xml b/cloud-modules/cloud-modules-data-process/pom.xml
new file mode 100644
index 0000000..cb4a354
--- /dev/null
+++ b/cloud-modules/cloud-modules-data-process/pom.xml
@@ -0,0 +1,91 @@
+
+
+ 4.0.0
+
+ com.muyu
+ cloud-modules
+ 3.6.3
+
+
+ cloud-modules-data-process
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+ cloud-modules-data-process 数据处理
+
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+
+ com.mysql
+ mysql-connector-j
+
+
+
+
+ com.muyu
+ cloud-common-datasource
+
+
+
+
+ com.muyu
+ cloud-common-datascope
+
+
+
+
+ com.muyu
+ cloud-common-log
+
+
+
+
+ com.muyu
+ cloud-common-api-doc
+
+
+
+
+ com.muyu
+ cloud-common-core
+
+
+
+
+ org.apache.iotdb
+ iotdb-session
+
+
+
\ No newline at end of file
diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/CloudDataProcessApplication.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/CloudDataProcessApplication.java
new file mode 100644
index 0000000..b5ba238
--- /dev/null
+++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/CloudDataProcessApplication.java
@@ -0,0 +1,20 @@
+package com.muyu.data.process;
+
+import com.muyu.common.security.annotation.EnableCustomConfig;
+import com.muyu.common.security.annotation.EnableMyFeignClients;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @Author: zi run
+ * @Date 2024/9/28 22:31
+ * @Description 数据处理微服启动类
+ */
+@EnableCustomConfig
+@EnableMyFeignClients
+@SpringBootApplication
+public class CloudDataProcessApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(CloudDataProcessApplication.class, args);
+ }
+}
diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/config/IoTDBSessionConfig.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/config/IoTDBSessionConfig.java
new file mode 100644
index 0000000..3bf7de1
--- /dev/null
+++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/config/IoTDBSessionConfig.java
@@ -0,0 +1,72 @@
+package com.muyu.data.process.basic.config;
+
+import lombok.extern.slf4j.Slf4j;
+import org.apache.iotdb.session.pool.SessionPool;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+/**
+ * @Author: zi run
+ * @Date 2024/9/28 22:41
+ * @Description IoTDB会话配置
+ */
+@Slf4j
+@Component
+@Configuration
+public class IoTDBSessionConfig {
+
+ @Value("${spring.iotdb.username}")
+ private String username;
+
+ @Value("${spring.iotdb.password}")
+ private String password;
+
+ @Value("${spring.iotdb.ip}")
+ private String ip;
+
+ @Value("${spring.iotdb.port}")
+ private int port;
+
+ @Value("${spring.iotdb.maxSize}")
+ private int maxSize;
+
+ /**
+ * IoTDB会话池
+ */
+ private static SessionPool sessionPool = null;
+
+ /**
+ * 获取IoTDB会话对象
+ * @return ioTDB会话对象
+ */
+ public SessionPool getSessionPool() {
+ if (sessionPool == null) {
+ sessionPool = new SessionPool(ip, port, username, password, maxSize);
+ }
+ return sessionPool;
+ }
+
+ /**
+ * 向IoTDB中插入特定设备的记录
+ *
+ * @param deviceId 设备的唯一标识符
+ * @param time 记录的时间戳,以毫秒为单位
+ * @param measurements 与记录关联的测量名称列表
+ * @param values 每个测量对应的值列表。值的顺序必须与测量名称一一对应
+ *
+ *
该方法从会话池中获取一个会话,并尝试将指定的记录插入到 IoTDB 中。
+ * 如果插入失败,将记录错误信息,便于后续排查。
+ */
+ public void insertRecord(String deviceId, long time, List measurements, List values) {
+ getSessionPool();
+ try {
+ log.info("iotdb数据入库:device_id:[{}], measurements:[{}], values:[{}]", deviceId, measurements, values);
+ sessionPool.insertRecord(deviceId, time, measurements, values);
+ } catch (Exception e) {
+ log.error("IotDBSession insertRecord失败: deviceId={}, time={}, measurements={}, values={}, error={}",
+ deviceId, time, measurements, values, e.getMessage());
+ }
+ }
+}
diff --git a/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/IoTDBService.java b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/IoTDBService.java
new file mode 100644
index 0000000..0a99fd6
--- /dev/null
+++ b/cloud-modules/cloud-modules-data-process/src/main/java/com/muyu/data/process/basic/service/IoTDBService.java
@@ -0,0 +1,110 @@
+package com.muyu.data.process.basic.service;
+
+import com.muyu.data.process.domain.dto.IoTDbRecordAble;
+import com.muyu.data.process.domain.dto.MeasurementSchemaValuesDTO;
+import org.apache.iotdb.common.rpc.thrift.TAggregationType;
+import org.apache.iotdb.isession.SessionDataSet;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.write.record.Tablet;
+import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author: zi run
+ * @Date 2024/9/28 23:37
+ * @Description IoTDB业务层
+ */
+public interface IoTDBService {
+
+ /**
+ * 插入一个 Tablet 对象到 IoTDB 数据库
+ *
+ * @param tablet 要插入的 Tablet 对象,包含待写入的数据
+ */
+ void insertTablet(Tablet tablet);
+
+ void insertTablets(Map tablets);
+
+ void insertStringRecord(String deviceId, long time, List measurements, List values);
+
+ void insertRecord(String deviceId, long time, List measurements, List types, List