diff --git a/iot-common/iot-common-core/src/main/java/cc/iotkit/common/utils/file/FileUtils.java b/iot-common/iot-common-core/src/main/java/cc/iotkit/common/utils/file/FileUtils.java
index df978517..483e053d 100644
--- a/iot-common/iot-common-core/src/main/java/cc/iotkit/common/utils/file/FileUtils.java
+++ b/iot-common/iot-common-core/src/main/java/cc/iotkit/common/utils/file/FileUtils.java
@@ -1,10 +1,11 @@
package cc.iotkit.common.utils.file;
import cn.hutool.core.io.FileUtil;
+import jakarta.servlet.http.HttpServletResponse;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import javax.servlet.http.HttpServletResponse;
+
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
diff --git a/iot-common/pom.xml b/iot-common/pom.xml
index d3bef4b2..b2bfa899 100644
--- a/iot-common/pom.xml
+++ b/iot-common/pom.xml
@@ -21,7 +21,6 @@
iot-common-core
iot-script-engine
iot-message-bus
- iot-message-notify
iot-common-doc
iot-common-excel
iot-common-log
diff --git a/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysOssConfigData.java b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysOssConfigData.java
new file mode 100644
index 00000000..c9a9010b
--- /dev/null
+++ b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysOssConfigData.java
@@ -0,0 +1,9 @@
+package cc.iotkit.data.system;
+
+/**
+ * 操作日志数据接口
+ *
+ * @author sjg
+ */
+public interface ISysOssConfigData {
+}
diff --git a/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysOssData.java b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysOssData.java
new file mode 100644
index 00000000..6de53a54
--- /dev/null
+++ b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysOssData.java
@@ -0,0 +1,9 @@
+package cc.iotkit.data.system;
+
+/**
+ * 操作日志数据接口
+ *
+ * @author sjg
+ */
+public interface ISysOssData {
+}
diff --git a/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysPostData.java b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysPostData.java
new file mode 100644
index 00000000..aa20e7c3
--- /dev/null
+++ b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysPostData.java
@@ -0,0 +1,9 @@
+package cc.iotkit.data.system;
+
+/**
+ * 操作日志数据接口
+ *
+ * @author sjg
+ */
+public interface ISysPostData {
+}
diff --git a/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysRoleData.java b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysRoleData.java
new file mode 100644
index 00000000..5d3bb411
--- /dev/null
+++ b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysRoleData.java
@@ -0,0 +1,9 @@
+package cc.iotkit.data.system;
+
+/**
+ * 操作日志数据接口
+ *
+ * @author sjg
+ */
+public interface ISysRoleData {
+}
diff --git a/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysRoleDeptData.java b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysRoleDeptData.java
new file mode 100644
index 00000000..a6ca2b19
--- /dev/null
+++ b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysRoleDeptData.java
@@ -0,0 +1,9 @@
+package cc.iotkit.data.system;
+
+/**
+ * 操作日志数据接口
+ *
+ * @author sjg
+ */
+public interface ISysRoleDeptData {
+}
diff --git a/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysRoleMenuData.java b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysRoleMenuData.java
new file mode 100644
index 00000000..253a3b77
--- /dev/null
+++ b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysRoleMenuData.java
@@ -0,0 +1,9 @@
+package cc.iotkit.data.system;
+
+/**
+ * 操作日志数据接口
+ *
+ * @author sjg
+ */
+public interface ISysRoleMenuData {
+}
diff --git a/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysTenantData.java b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysTenantData.java
new file mode 100644
index 00000000..61c83abf
--- /dev/null
+++ b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysTenantData.java
@@ -0,0 +1,9 @@
+package cc.iotkit.data.system;
+
+/**
+ * 操作日志数据接口
+ *
+ * @author sjg
+ */
+public interface ISysTenantData {
+}
diff --git a/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysTenantPackageData.java b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysTenantPackageData.java
new file mode 100644
index 00000000..94891e86
--- /dev/null
+++ b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysTenantPackageData.java
@@ -0,0 +1,9 @@
+package cc.iotkit.data.system;
+
+/**
+ * 操作日志数据接口
+ *
+ * @author sjg
+ */
+public interface ISysTenantPackageData {
+}
diff --git a/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysUserData.java b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysUserData.java
new file mode 100644
index 00000000..0d9e3fff
--- /dev/null
+++ b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysUserData.java
@@ -0,0 +1,9 @@
+package cc.iotkit.data.system;
+
+/**
+ * 操作日志数据接口
+ *
+ * @author sjg
+ */
+public interface ISysUserData {
+}
diff --git a/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysUserPostData.java b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysUserPostData.java
new file mode 100644
index 00000000..4008646d
--- /dev/null
+++ b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysUserPostData.java
@@ -0,0 +1,9 @@
+package cc.iotkit.data.system;
+
+/**
+ * 操作日志数据接口
+ *
+ * @author sjg
+ */
+public interface ISysUserPostData {
+}
diff --git a/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysUserRoleData.java b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysUserRoleData.java
new file mode 100644
index 00000000..30df6893
--- /dev/null
+++ b/iot-data/iot-data-service/src/main/java/cc/iotkit/data/system/ISysUserRoleData.java
@@ -0,0 +1,9 @@
+package cc.iotkit.data.system;
+
+/**
+ * 操作日志数据接口
+ *
+ * @author sjg
+ */
+public interface ISysUserRoleData {
+}
diff --git a/iot-data/iot-rdb-data-service/pom.xml b/iot-data/iot-rdb-data-service/pom.xml
index 5a07ab45..7f22a7bd 100755
--- a/iot-data/iot-rdb-data-service/pom.xml
+++ b/iot-data/iot-rdb-data-service/pom.xml
@@ -23,6 +23,16 @@
spring-boot-starter-data-jpa
+
+
+ com.querydsl
+ querydsl-apt
+
+
+ com.querydsl
+ querydsl-jpa
+
+
com.h2database
h2
@@ -63,6 +73,11 @@
cc.iotkit
iot-data-service
+
+ org.springframework.data
+ spring-data-commons
+ 2.7.11
+
@@ -90,6 +105,26 @@
+
+
+
+ com.mysema.maven
+ apt-maven-plugin
+ 1.1.3
+
+
+ generate-sources
+
+ process
+
+
+ target/generated-sources/java
+ com.querydsl.apt.jpa.JPAAnnotationProcessor
+
+
+
+
+
diff --git a/iot-data/iot-rdb-data-service/src/main/java/cc/iotkit/data/convert/system/SysConfigMapper.java b/iot-data/iot-rdb-data-service/src/main/java/cc/iotkit/data/convert/system/SysConfigMapper.java
new file mode 100644
index 00000000..256ac5b6
--- /dev/null
+++ b/iot-data/iot-rdb-data-service/src/main/java/cc/iotkit/data/convert/system/SysConfigMapper.java
@@ -0,0 +1,23 @@
+package cc.iotkit.data.convert.system;
+
+import cc.iotkit.data.model.TbAlertConfig;
+import cc.iotkit.model.alert.AlertConfig;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Mapper
+public interface SysConfigMapper {
+
+ SysConfigMapper M = Mappers.getMapper(SysConfigMapper.class);
+
+ AlertConfig toDto(TbAlertConfig vo);
+
+ TbAlertConfig toVo(AlertConfig dto);
+
+ static List toDto(List alertConfigs) {
+ return alertConfigs.stream().map(M::toDto).collect(Collectors.toList());
+ }
+}
diff --git a/iot-data/iot-rdb-data-service/src/main/java/cc/iotkit/data/dao/system/SysConfigRepository.java b/iot-data/iot-rdb-data-service/src/main/java/cc/iotkit/data/dao/system/SysConfigRepository.java
new file mode 100644
index 00000000..963b3344
--- /dev/null
+++ b/iot-data/iot-rdb-data-service/src/main/java/cc/iotkit/data/dao/system/SysConfigRepository.java
@@ -0,0 +1,17 @@
+/*
+ * +----------------------------------------------------------------------
+ * | Copyright (c) 奇特物联 2021-2022 All rights reserved.
+ * +----------------------------------------------------------------------
+ * | Licensed 未经许可不能去掉「奇特物联」相关版权
+ * +----------------------------------------------------------------------
+ * | Author: xw2sy@163.com
+ * +----------------------------------------------------------------------
+ */
+package cc.iotkit.data.dao.system;
+
+import cc.iotkit.data.model.system.TbSysConfig;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface SysConfigRepository extends JpaRepository, QueryDslPredicateExecutor {
+
+}
diff --git a/iot-data/iot-rdb-data-service/src/main/java/cc/iotkit/data/dao/system/SysDeptRepository.java b/iot-data/iot-rdb-data-service/src/main/java/cc/iotkit/data/dao/system/SysDeptRepository.java
new file mode 100644
index 00000000..5af5cc60
--- /dev/null
+++ b/iot-data/iot-rdb-data-service/src/main/java/cc/iotkit/data/dao/system/SysDeptRepository.java
@@ -0,0 +1,17 @@
+/*
+ * +----------------------------------------------------------------------
+ * | Copyright (c) 奇特物联 2021-2022 All rights reserved.
+ * +----------------------------------------------------------------------
+ * | Licensed 未经许可不能去掉「奇特物联」相关版权
+ * +----------------------------------------------------------------------
+ * | Author: xw2sy@163.com
+ * +----------------------------------------------------------------------
+ */
+package cc.iotkit.data.dao.system;
+
+import cc.iotkit.data.model.system.TbSysConfig;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface SysDeptRepository extends JpaRepository {
+
+}
diff --git a/iot-common/iot-message-notify/pom.xml b/iot-module/iot-message-notify/pom.xml
similarity index 100%
rename from iot-common/iot-message-notify/pom.xml
rename to iot-module/iot-message-notify/pom.xml
diff --git a/iot-common/iot-message-notify/readme.md b/iot-module/iot-message-notify/readme.md
similarity index 100%
rename from iot-common/iot-message-notify/readme.md
rename to iot-module/iot-message-notify/readme.md
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/config/VertxManager.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/config/VertxManager.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/config/VertxManager.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/config/VertxManager.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/enums/ChannelEnum.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/enums/ChannelEnum.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/enums/ChannelEnum.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/enums/ChannelEnum.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/event/MessageEvent.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/event/MessageEvent.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/event/MessageEvent.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/event/MessageEvent.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/listener/DingTalkEventListener.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/listener/DingTalkEventListener.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/listener/DingTalkEventListener.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/listener/DingTalkEventListener.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/listener/EmailEventListener.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/listener/EmailEventListener.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/listener/EmailEventListener.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/listener/EmailEventListener.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/listener/MessageEventListener.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/listener/MessageEventListener.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/listener/MessageEventListener.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/listener/MessageEventListener.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/listener/PhoneMessageEventListener.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/listener/PhoneMessageEventListener.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/listener/PhoneMessageEventListener.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/listener/PhoneMessageEventListener.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/listener/QyWechatEventListener.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/listener/QyWechatEventListener.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/listener/QyWechatEventListener.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/listener/QyWechatEventListener.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/listener/VoiceEventListener.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/listener/VoiceEventListener.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/listener/VoiceEventListener.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/listener/VoiceEventListener.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/model/DingTalkMessage.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/model/DingTalkMessage.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/model/DingTalkMessage.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/model/DingTalkMessage.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/model/EmailConfig.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/model/EmailConfig.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/model/EmailConfig.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/model/EmailConfig.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/model/EmailMessage.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/model/EmailMessage.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/model/EmailMessage.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/model/EmailMessage.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/model/Message.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/model/Message.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/model/Message.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/model/Message.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/model/QyWechatMessage.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/model/QyWechatMessage.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/model/QyWechatMessage.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/model/QyWechatMessage.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/notify/EventManager.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/notify/EventManager.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/notify/EventManager.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/notify/EventManager.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/notify/EventType.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/notify/EventType.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/notify/EventType.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/notify/EventType.java
diff --git a/iot-common/iot-message-notify/src/main/java/cc/iotkit/message/service/MessageService.java b/iot-module/iot-message-notify/src/main/java/cc/iotkit/message/service/MessageService.java
similarity index 100%
rename from iot-common/iot-message-notify/src/main/java/cc/iotkit/message/service/MessageService.java
rename to iot-module/iot-message-notify/src/main/java/cc/iotkit/message/service/MessageService.java
diff --git a/iot-common/iot-message-notify/消息中心文档.md b/iot-module/iot-message-notify/消息中心文档.md
similarity index 100%
rename from iot-common/iot-message-notify/消息中心文档.md
rename to iot-module/iot-message-notify/消息中心文档.md
diff --git a/iot-module/iot-system/src/main/java/cc/iotkit/system/mapper/SysDeptMapper.java b/iot-module/iot-system/src/main/java/cc/iotkit/system/mapper/SysDeptMapper.java
index da4028a0..33117241 100644
--- a/iot-module/iot-system/src/main/java/cc/iotkit/system/mapper/SysDeptMapper.java
+++ b/iot-module/iot-system/src/main/java/cc/iotkit/system/mapper/SysDeptMapper.java
@@ -1,5 +1,6 @@
package cc.iotkit.system.mapper;
+import cc.iotkit.model.system.SysDept;
import cc.iotkit.system.domain.vo.SysDeptVo;
import java.util.List;
diff --git a/iot-module/pom.xml b/iot-module/pom.xml
index aba98bfe..f891b546 100644
--- a/iot-module/pom.xml
+++ b/iot-module/pom.xml
@@ -15,6 +15,7 @@
iot-system
iot-manager
iot-rule-engine
+ iot-message-notify