diff --git a/.gradle/6.3/executionHistory/executionHistory.bin b/.gradle/6.3/executionHistory/executionHistory.bin
new file mode 100644
index 0000000..b28b03b
Binary files /dev/null and b/.gradle/6.3/executionHistory/executionHistory.bin differ
diff --git a/.gradle/6.3/executionHistory/executionHistory.lock b/.gradle/6.3/executionHistory/executionHistory.lock
new file mode 100644
index 0000000..3a65b72
Binary files /dev/null and b/.gradle/6.3/executionHistory/executionHistory.lock differ
diff --git a/.gradle/6.3/fileChanges/last-build.bin b/.gradle/6.3/fileChanges/last-build.bin
new file mode 100644
index 0000000..f76dd23
Binary files /dev/null and b/.gradle/6.3/fileChanges/last-build.bin differ
diff --git a/.gradle/6.3/fileContent/fileContent.lock b/.gradle/6.3/fileContent/fileContent.lock
new file mode 100644
index 0000000..a9d8e9b
Binary files /dev/null and b/.gradle/6.3/fileContent/fileContent.lock differ
diff --git a/.gradle/6.3/fileHashes/fileHashes.bin b/.gradle/6.3/fileHashes/fileHashes.bin
new file mode 100644
index 0000000..3404d24
Binary files /dev/null and b/.gradle/6.3/fileHashes/fileHashes.bin differ
diff --git a/.gradle/6.3/fileHashes/fileHashes.lock b/.gradle/6.3/fileHashes/fileHashes.lock
new file mode 100644
index 0000000..f1d601b
Binary files /dev/null and b/.gradle/6.3/fileHashes/fileHashes.lock differ
diff --git a/.gradle/6.3/fileHashes/resourceHashesCache.bin b/.gradle/6.3/fileHashes/resourceHashesCache.bin
new file mode 100644
index 0000000..c91b601
Binary files /dev/null and b/.gradle/6.3/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/6.3/gc.properties b/.gradle/6.3/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/6.3/javaCompile/classAnalysis.bin b/.gradle/6.3/javaCompile/classAnalysis.bin
new file mode 100644
index 0000000..1528005
Binary files /dev/null and b/.gradle/6.3/javaCompile/classAnalysis.bin differ
diff --git a/.gradle/6.3/javaCompile/javaCompile.lock b/.gradle/6.3/javaCompile/javaCompile.lock
new file mode 100644
index 0000000..37b15b5
Binary files /dev/null and b/.gradle/6.3/javaCompile/javaCompile.lock differ
diff --git a/.gradle/6.3/javaCompile/taskHistory.bin b/.gradle/6.3/javaCompile/taskHistory.bin
new file mode 100644
index 0000000..9c83c58
Binary files /dev/null and b/.gradle/6.3/javaCompile/taskHistory.bin differ
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
new file mode 100644
index 0000000..6f83b34
Binary files /dev/null and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties
new file mode 100644
index 0000000..c2f5f36
--- /dev/null
+++ b/.gradle/buildOutputCleanup/cache.properties
@@ -0,0 +1,2 @@
+#Wed Nov 22 10:53:06 CST 2023
+gradle.version=6.3
diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin
new file mode 100644
index 0000000..a898066
Binary files /dev/null and b/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/.gradle/checksums/checksums.lock b/.gradle/checksums/checksums.lock
new file mode 100644
index 0000000..c7000bd
Binary files /dev/null and b/.gradle/checksums/checksums.lock differ
diff --git a/.gradle/checksums/md5-checksums.bin b/.gradle/checksums/md5-checksums.bin
new file mode 100644
index 0000000..982a232
Binary files /dev/null and b/.gradle/checksums/md5-checksums.bin differ
diff --git a/.gradle/checksums/sha1-checksums.bin b/.gradle/checksums/sha1-checksums.bin
new file mode 100644
index 0000000..f9a9e9e
Binary files /dev/null and b/.gradle/checksums/sha1-checksums.bin differ
diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..5c61b16
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+hy-iot-paas
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..8f9f9f4
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000..ab393bd
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ mysql.8
+ true
+ com.mysql.cj.jdbc.Driver
+ jdbc:mysql://117.78.10.170:3006/app_zhangqiyang_app_master_pre
+ $ProjectFileDir$
+
+
+
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..58d5482
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..b6bdcb9
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..ea57fd2
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..dcb6b8c
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/modules/test/build/src-gen/java/Log/LogEntity.java b/modules/test/build/src-gen/java/Log/LogEntity.java
deleted file mode 100644
index 977d556..0000000
--- a/modules/test/build/src-gen/java/Log/LogEntity.java
+++ /dev/null
@@ -1,372 +0,0 @@
-package Log;
-
-import com.google.common.base.MoreObjects;
-import com.hypaas.auth.db.AuditableModel;
-import com.hypaas.db.annotations.ActField;
-import com.hypaas.db.annotations.Widget;
-import java.time.LocalDateTime;
-import java.util.Objects;
-import javax.persistence.Basic;
-import javax.persistence.Cacheable;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Inheritance;
-import javax.persistence.InheritanceType;
-import javax.persistence.SequenceGenerator;
-import javax.persistence.Table;
-import module.AlarmLevel;
-import module.OperateType;
-import module.UserAuth;
-import org.hibernate.annotations.Type;
-
-@Entity
-@Cacheable(false)
-@Table(name = "sys_log")
-@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
-public class LogEntity extends AuditableModel {
-
- @Id
- @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sys_log_SEQ")
- @SequenceGenerator(name = "sys_log_SEQ", sequenceName = "sys_log_SEQ", allocationSize = 1)
- private Long id;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "CONTENT")
- @ActField(isJudg = false)
- private String content;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "DEPT", nullable = true)
- @ActField(isJudg = false)
- private String dept;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "EXMSG", nullable = true)
- @ActField(isJudg = false)
- private String exceptionMessage;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "EXSTACK", nullable = true)
- @ActField(isJudg = false)
- private String exceptionStackTrace;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "EXTYPE", nullable = true)
- @ActField(isJudg = false)
- private String exceptionType;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "HASHVALUE", nullable = true)
- @ActField(isJudg = false)
- private Long hashValue;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "LEVELDESC", nullable = true)
- @ActField(isJudg = false)
- private String levelDesc;
-
- @Widget(massUpdate = false, copyable = true)
- @Basic
- @Type(type = "com.hypaas.db.hibernate.type.ValueEnumType")
- @Column(name = "LEVELNUM")
- private AlarmLevel levelNum;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "MODULE")
- @ActField(isJudg = false)
- private String module;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "OBJECTNAME")
- @ActField(isJudg = false)
- private String objectName;
-
- @Widget(massUpdate = false, copyable = true)
- @Basic
- @Type(type = "com.hypaas.db.hibernate.type.ValueEnumType")
- @Column(name = "OPTYPE")
- private OperateType opType;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "PROGRAM", nullable = true)
- @ActField(isJudg = false)
- private String program;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "RESULT", nullable = true)
- @ActField(isJudg = false)
- private Integer result;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "RESULTDESC", nullable = true)
- @ActField(isJudg = false)
- private String resultDesc;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "STATUS", nullable = true)
- @ActField(isJudg = false)
- private Integer status;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "TIME", nullable = true)
- @ActField(isJudg = false)
- private LocalDateTime time;
-
- @Widget(massUpdate = false, copyable = true)
- @Basic
- @Type(type = "com.hypaas.db.hibernate.type.ValueEnumType")
- @Column(name = "USERAUTH")
- private UserAuth userAuth;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "USERAUTHDESC", nullable = true)
- @ActField(isJudg = false)
- private String userAuthDesc;
-
- @Widget(massUpdate = false, copyable = true)
- @Column(name = "USERID")
- @ActField(isJudg = false)
- private String userId;
-
- @Widget(massUpdate = false, copyable = true)
- @ActField(isJudg = false)
- private String address;
-
- @Widget(selection = "secret.level.things")
- private String secretLevel;
-
- @Widget(title = "Attributes")
- @Basic(fetch = FetchType.LAZY)
- @Type(type = "json")
- private String attrs;
-
- public LogEntity() {}
-
- @Override
- public Long getId() {
- return id;
- }
-
- @Override
- public void setId(Long id) {
- this.id = id;
- }
-
- public String getContent() {
- return content;
- }
-
- public void setContent(String content) {
- this.content = content;
- }
-
- public String getDept() {
- return dept;
- }
-
- public void setDept(String dept) {
- this.dept = dept;
- }
-
- public String getExceptionMessage() {
- return exceptionMessage;
- }
-
- public void setExceptionMessage(String exceptionMessage) {
- this.exceptionMessage = exceptionMessage;
- }
-
- public String getExceptionStackTrace() {
- return exceptionStackTrace;
- }
-
- public void setExceptionStackTrace(String exceptionStackTrace) {
- this.exceptionStackTrace = exceptionStackTrace;
- }
-
- public String getExceptionType() {
- return exceptionType;
- }
-
- public void setExceptionType(String exceptionType) {
- this.exceptionType = exceptionType;
- }
-
- public Long getHashValue() {
- return hashValue;
- }
-
- public void setHashValue(Long hashValue) {
- this.hashValue = hashValue;
- }
-
- public String getLevelDesc() {
- return levelDesc;
- }
-
- public void setLevelDesc(String levelDesc) {
- this.levelDesc = levelDesc;
- }
-
- public AlarmLevel getLevelNum() {
- return levelNum;
- }
-
- public void setLevelNum(AlarmLevel levelNum) {
- this.levelNum = levelNum;
- }
-
- public String getModule() {
- return module;
- }
-
- public void setModule(String module) {
- this.module = module;
- }
-
- public String getObjectName() {
- return objectName;
- }
-
- public void setObjectName(String objectName) {
- this.objectName = objectName;
- }
-
- public OperateType getOpType() {
- return opType;
- }
-
- public void setOpType(OperateType opType) {
- this.opType = opType;
- }
-
- public String getProgram() {
- return program;
- }
-
- public void setProgram(String program) {
- this.program = program;
- }
-
- public Integer getResult() {
- return result;
- }
-
- public void setResult(Integer result) {
- this.result = result;
- }
-
- public String getResultDesc() {
- return resultDesc;
- }
-
- public void setResultDesc(String resultDesc) {
- this.resultDesc = resultDesc;
- }
-
- public Integer getStatus() {
- return status;
- }
-
- public void setStatus(Integer status) {
- this.status = status;
- }
-
- public LocalDateTime getTime() {
- return time;
- }
-
- public void setTime(LocalDateTime time) {
- this.time = time;
- }
-
- public UserAuth getUserAuth() {
- return userAuth;
- }
-
- public void setUserAuth(UserAuth userAuth) {
- this.userAuth = userAuth;
- }
-
- public String getUserAuthDesc() {
- return userAuthDesc;
- }
-
- public void setUserAuthDesc(String userAuthDesc) {
- this.userAuthDesc = userAuthDesc;
- }
-
- public String getUserId() {
- return userId;
- }
-
- public void setUserId(String userId) {
- this.userId = userId;
- }
-
- public String getAddress() {
- return address;
- }
-
- public void setAddress(String address) {
- this.address = address;
- }
-
- public String getSecretLevel() {
- return secretLevel;
- }
-
- public void setSecretLevel(String secretLevel) {
- this.secretLevel = secretLevel;
- }
-
- public String getAttrs() {
- return attrs;
- }
-
- public void setAttrs(String attrs) {
- this.attrs = attrs;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == null) return false;
- if (this == obj) return true;
- if (!(obj instanceof LogEntity)) return false;
-
- final LogEntity other = (LogEntity) obj;
- if (this.getId() != null || other.getId() != null) {
- return Objects.equals(this.getId(), other.getId());
- }
-
- return false;
- }
-
- @Override
- public int hashCode() {
- return 31;
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(this)
- .add("id", getId())
- .add("content", getContent())
- .add("dept", getDept())
- .add("exceptionMessage", getExceptionMessage())
- .add("exceptionStackTrace", getExceptionStackTrace())
- .add("exceptionType", getExceptionType())
- .add("hashValue", getHashValue())
- .add("levelDesc", getLevelDesc())
- .add("levelNum", getLevelNum())
- .add("module", getModule())
- .add("objectName", getObjectName())
- .add("opType", getOpType())
- .omitNullValues()
- .toString();
- }
-}
diff --git a/modules/test/build/src-gen/java/Log/repo/LogEntityRepository.java b/modules/test/build/src-gen/java/Log/repo/LogEntityRepository.java
deleted file mode 100644
index e6ddf93..0000000
--- a/modules/test/build/src-gen/java/Log/repo/LogEntityRepository.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package Log.repo;
-
-import Log.LogEntity;
-import com.hypaas.db.JpaRepository;
-
-public class LogEntityRepository extends JpaRepository {
-
- public LogEntityRepository() {
- super(LogEntity.class);
- }
-}
diff --git a/modules/test/build/src-gen/java/module/AlarmLevel.java b/modules/test/build/src-gen/java/module/AlarmLevel.java
deleted file mode 100644
index 80ed303..0000000
--- a/modules/test/build/src-gen/java/module/AlarmLevel.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package module;
-
-import com.hypaas.db.ValueEnum;
-import java.util.Objects;
-
-public enum AlarmLevel implements ValueEnum {
- P0(1),
-
- P1(2),
-
- P2(4),
-
- P3(8),
-
- P4(16),
-
- P5(32);
-
- private final Integer value;
-
- private AlarmLevel(Integer value) {
- this.value = Objects.requireNonNull(value);
- }
-
- @Override
- public Integer getValue() {
- return value;
- }
-}
diff --git a/modules/test/build/src-gen/java/module/Module.java b/modules/test/build/src-gen/java/module/Module.java
deleted file mode 100644
index 4d066d2..0000000
--- a/modules/test/build/src-gen/java/module/Module.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package module;
-
-import com.hypaas.db.ValueEnum;
-import java.util.Objects;
-
-public enum Module implements ValueEnum {
- WMM("处理器管理模块"),
-
- SMM("存储器管理模块"),
-
- DEMM("设备管理模块"),
-
- DMM("文件管理模块");
-
- private final String value;
-
- private Module(String value) {
- this.value = Objects.requireNonNull(value);
- }
-
- @Override
- public String getValue() {
- return value;
- }
-}
diff --git a/modules/test/build/src-gen/java/module/OperateType.java b/modules/test/build/src-gen/java/module/OperateType.java
deleted file mode 100644
index 72af13f..0000000
--- a/modules/test/build/src-gen/java/module/OperateType.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package module;
-
-import com.hypaas.db.ValueEnum;
-import com.hypaas.db.annotations.Widget;
-import java.util.Objects;
-
-public enum OperateType implements ValueEnum {
- @Widget(title = "登录")
- Login("Login"),
-
- @Widget(title = "退出")
- Exit("Exit"),
-
- @Widget(title = "新建")
- New("New"),
-
- @Widget(title = "修改")
- Update("Update"),
-
- @Widget(title = "删除")
- Delete("Delete"),
-
- @Widget(title = "查询")
- Select("Select"),
-
- @Widget(title = "批量导入")
- BatchImport("BatchImport"),
-
- @Widget(title = "批量导出")
- BatchExport("BatchExport");
-
- private final String value;
-
- private OperateType(String value) {
- this.value = Objects.requireNonNull(value);
- }
-
- @Override
- public String getValue() {
- return value;
- }
-}
diff --git a/modules/test/build/src-gen/java/module/UserAuth.java b/modules/test/build/src-gen/java/module/UserAuth.java
deleted file mode 100644
index 9d76b58..0000000
--- a/modules/test/build/src-gen/java/module/UserAuth.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package module;
-
-import com.hypaas.db.ValueEnum;
-import com.hypaas.db.annotations.Widget;
-import java.util.Objects;
-
-public enum UserAuth implements ValueEnum {
- @Widget(title = "系统管理员")
- SystemManageUser("0"),
-
- @Widget(title = "安全保密员")
- SecurityUser("1"),
-
- @Widget(title = "安全审计员")
- SecurityAuditUser("2"),
-
- @Widget(title = "业务用户")
- ServiceUser("3");
-
- private final String value;
-
- private UserAuth(String value) {
- this.value = Objects.requireNonNull(value);
- }
-
- @Override
- public String getValue() {
- return value;
- }
-}
diff --git a/modules/test/out/production/classes/Log/LogEntity.class b/modules/test/out/production/classes/Log/LogEntity.class
new file mode 100644
index 0000000..0c8da92
Binary files /dev/null and b/modules/test/out/production/classes/Log/LogEntity.class differ
diff --git a/modules/test/out/production/classes/Log/repo/LogEntityRepository.class b/modules/test/out/production/classes/Log/repo/LogEntityRepository.class
new file mode 100644
index 0000000..f50c128
Binary files /dev/null and b/modules/test/out/production/classes/Log/repo/LogEntityRepository.class differ
diff --git a/modules/test/out/production/classes/module/AlarmLevel.class b/modules/test/out/production/classes/module/AlarmLevel.class
new file mode 100644
index 0000000..2b9c7a6
Binary files /dev/null and b/modules/test/out/production/classes/module/AlarmLevel.class differ
diff --git a/modules/test/out/production/classes/module/Module.class b/modules/test/out/production/classes/module/Module.class
new file mode 100644
index 0000000..57f4494
Binary files /dev/null and b/modules/test/out/production/classes/module/Module.class differ
diff --git a/modules/test/out/production/classes/module/OperateType.class b/modules/test/out/production/classes/module/OperateType.class
new file mode 100644
index 0000000..a88279f
Binary files /dev/null and b/modules/test/out/production/classes/module/OperateType.class differ
diff --git a/modules/test/out/production/classes/module/UserAuth.class b/modules/test/out/production/classes/module/UserAuth.class
new file mode 100644
index 0000000..225484e
Binary files /dev/null and b/modules/test/out/production/classes/module/UserAuth.class differ
diff --git a/modules/test/out/production/resources/domains/AlarmLevel.xml b/modules/test/out/production/resources/domains/AlarmLevel.xml
new file mode 100644
index 0000000..36c17d1
--- /dev/null
+++ b/modules/test/out/production/resources/domains/AlarmLevel.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/test/out/production/resources/domains/LogEntity.xml b/modules/test/out/production/resources/domains/LogEntity.xml
new file mode 100644
index 0000000..e22182d
--- /dev/null
+++ b/modules/test/out/production/resources/domains/LogEntity.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/test/out/production/resources/domains/Module.xml b/modules/test/out/production/resources/domains/Module.xml
new file mode 100644
index 0000000..7254765
--- /dev/null
+++ b/modules/test/out/production/resources/domains/Module.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/test/out/production/resources/domains/OperateType.xml b/modules/test/out/production/resources/domains/OperateType.xml
new file mode 100644
index 0000000..18b3303
--- /dev/null
+++ b/modules/test/out/production/resources/domains/OperateType.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/test/out/production/resources/domains/UserAuth.xml b/modules/test/out/production/resources/domains/UserAuth.xml
new file mode 100644
index 0000000..61c0644
--- /dev/null
+++ b/modules/test/out/production/resources/domains/UserAuth.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/test/out/production/resources/i18n/messages.csv b/modules/test/out/production/resources/i18n/messages.csv
new file mode 100644
index 0000000..2bcfb59
--- /dev/null
+++ b/modules/test/out/production/resources/i18n/messages.csv
@@ -0,0 +1 @@
+"key","message","comment","context"
\ No newline at end of file
diff --git a/modules/test/out/production/resources/i18n/messages_en.csv b/modules/test/out/production/resources/i18n/messages_en.csv
new file mode 100644
index 0000000..2bcfb59
--- /dev/null
+++ b/modules/test/out/production/resources/i18n/messages_en.csv
@@ -0,0 +1 @@
+"key","message","comment","context"
\ No newline at end of file
diff --git a/modules/test/out/production/resources/i18n/messages_zh.csv b/modules/test/out/production/resources/i18n/messages_zh.csv
new file mode 100644
index 0000000..2bcfb59
--- /dev/null
+++ b/modules/test/out/production/resources/i18n/messages_zh.csv
@@ -0,0 +1 @@
+"key","message","comment","context"
\ No newline at end of file
diff --git a/modules/test/build/src-gen/resources/module.properties b/modules/test/out/production/resources/module.properties
similarity index 100%
rename from modules/test/build/src-gen/resources/module.properties
rename to modules/test/out/production/resources/module.properties
diff --git a/modules/test/out/production/resources/views/SecurityAuditUser-form.xml b/modules/test/out/production/resources/views/SecurityAuditUser-form.xml
new file mode 100644
index 0000000..d16f44f
--- /dev/null
+++ b/modules/test/out/production/resources/views/SecurityAuditUser-form.xml
@@ -0,0 +1,16 @@
+
+
+
+
diff --git a/modules/test/out/production/resources/views/SecurityAuditUser-grid.xml b/modules/test/out/production/resources/views/SecurityAuditUser-grid.xml
new file mode 100644
index 0000000..7a80027
--- /dev/null
+++ b/modules/test/out/production/resources/views/SecurityAuditUser-grid.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/test/out/production/resources/views/SecurityUser-form.xml b/modules/test/out/production/resources/views/SecurityUser-form.xml
new file mode 100644
index 0000000..ce646fd
--- /dev/null
+++ b/modules/test/out/production/resources/views/SecurityUser-form.xml
@@ -0,0 +1,16 @@
+
+
+
+
diff --git a/modules/test/out/production/resources/views/SecurityUser-grid.xml b/modules/test/out/production/resources/views/SecurityUser-grid.xml
new file mode 100644
index 0000000..4c3d7c0
--- /dev/null
+++ b/modules/test/out/production/resources/views/SecurityUser-grid.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/test/out/production/resources/views/ServiceUser-form.xml b/modules/test/out/production/resources/views/ServiceUser-form.xml
new file mode 100644
index 0000000..aff73a3
--- /dev/null
+++ b/modules/test/out/production/resources/views/ServiceUser-form.xml
@@ -0,0 +1,16 @@
+
+
+
+
diff --git a/modules/test/out/production/resources/views/ServiceUser-grid.xml b/modules/test/out/production/resources/views/ServiceUser-grid.xml
new file mode 100644
index 0000000..5fa345e
--- /dev/null
+++ b/modules/test/out/production/resources/views/ServiceUser-grid.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/test/out/production/resources/views/SystemManageUser-form.xml b/modules/test/out/production/resources/views/SystemManageUser-form.xml
new file mode 100644
index 0000000..adab470
--- /dev/null
+++ b/modules/test/out/production/resources/views/SystemManageUser-form.xml
@@ -0,0 +1,16 @@
+
+
+
+
diff --git a/modules/test/out/production/resources/views/SystemManageUser-grid.xml b/modules/test/out/production/resources/views/SystemManageUser-grid.xml
new file mode 100644
index 0000000..b155bf6
--- /dev/null
+++ b/modules/test/out/production/resources/views/SystemManageUser-grid.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/test/out/production/resources/views/actionGroup.xml b/modules/test/out/production/resources/views/actionGroup.xml
new file mode 100644
index 0000000..d35926b
--- /dev/null
+++ b/modules/test/out/production/resources/views/actionGroup.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ self.userAuth=3
+
+
+
+
+ self.userAuth=1
+
+
+
+
+ self.userAuth=2
+
+
+
+
+ self.userAuth=0
+
+
diff --git a/modules/test/out/production/resources/views/menu.xml b/modules/test/out/production/resources/views/menu.xml
new file mode 100644
index 0000000..daa6605
--- /dev/null
+++ b/modules/test/out/production/resources/views/menu.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/out/production/resources/AccessInterface.yml b/out/production/resources/AccessInterface.yml
new file mode 100644
index 0000000..d9d99b4
--- /dev/null
+++ b/out/production/resources/AccessInterface.yml
@@ -0,0 +1,3 @@
+interfaceList:
+ - "/ws/register/register/face"
+ - "/ws/register/login/face"
\ No newline at end of file
diff --git a/out/production/resources/META-INF/persistence.xml b/out/production/resources/META-INF/persistence.xml
new file mode 100644
index 0000000..217d608
--- /dev/null
+++ b/out/production/resources/META-INF/persistence.xml
@@ -0,0 +1,39 @@
+
+
+
+ org.hibernate.jpa.HibernatePersistenceProvider
+ ENABLE_SELECTIVE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/out/production/resources/application.properties b/out/production/resources/application.properties
new file mode 100644
index 0000000..8a8a09c
--- /dev/null
+++ b/out/production/resources/application.properties
@@ -0,0 +1,388 @@
+# Application Information
+# ~~~~~
+application.name=\u004c\u006f\u0067\u004d\u0061\u006e\u0061\u0067\u0065
+application.id=
+application.sid=1719173642480254976
+application.callback.url=http://117.78.10.170:3000/api/v1/message/preview/
+application.description=
+application.version=1.0.0
+# Author/Company
+# ~~~~~
+application.author=Sunwiseinfo
+application.copyright=Copyright (c) {year} Sunwise. All Rights Reserved.
+# Header Logo
+# ~~~~~
+# width 237.07mm height 35.28mm
+application.logo =img/logo.png
+# width 334.43mm height 163.69mm
+application.login.logo =img/login.png
+# Home Website
+# ~~~~~
+# Link to be used with header logo
+application.home=http://www.sunwiseinfo.com
+# Link to the online help
+# ~~~~~
+application.help=http://docs.sunwiseinfo.com
+# Application deployment mode
+# ~~~~~
+# Set to 'dev' for development mode else 'prod'
+application.mode=dev
+# CSS Theme
+# ~~~~~
+# Set default CSS theme, for example `blue`
+application.theme=hypaas-sunwise
+# Default Locale (language)
+# ~~~~~
+# Set default application locale (en, fr, fr_FR, en_US)
+application.locale=zh_CN
+
+#context.app = com.hypaas.apps.base.service.app.AppService
+#context.appLogo = com.hypaas.apps.base.service.user.UserService:getUserActiveCompanyLogoLink
+
+# Encryption
+# ~~~~~
+# Set encryption password
+#encryption.password = MySuperSecretKey
+# Set encryption algorithm (CBC or GCM)
+#encryption.algorithm = CBC
+# Database settings
+# ~~~~~
+# See hibernate documentation for connection parameters
+
+#local logout config
+auth.logout.local=true
+#multi_tenancy config
+#application.multi_tenancy=true
+
+# PostgreSQL
+#db.default.driver = org.postgresql.Driver
+#db.default.ddl = update
+#db.default.url = jdbc:postgresql://localhost:5432/hypaas-erp
+#db.default.user = hypaas
+#db.default.password = hypaas
+
+# MySQL
+#db.default.driver = com.mysql.jdbc.Driver
+#db.default.visible=false
+db.default.driver=com.mysql.cj.jdbc.Driver
+db.default.ddl=update
+db.default.url=jdbc:mysql://117.78.10.170:3006/app_zhangqiyang_app_master_pre?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&nullCatalogMeansCurrent=true
+db.default.user=app_zhangqiyang
+db.default.password=Asdf123!@#
+
+#db.company1.name=Company 1
+#db.company1.driver=com.mysql.cj.jdbc.Driver
+#db.company1.url=jdbc:mysql://localhost:3306/hy_iot_paas2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false
+#db.company1.user=hypaas
+#db.company1.password=hypaas
+#
+#db.company2.name=Company 2
+#db.company2.driver=com.mysql.cj.jdbc.Driver
+#db.company2.url=jdbc:mysql://localhost:3306/hy_iot_paas3?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false
+#db.company2.user=hypaas
+#db.company2.password=hypaas
+
+# Oracle
+#db.default.driver = oracle.jdbc.OracleDriver
+#db.default.ddl = update
+#db.default.url = jdbc:oracle:thin:@localhost:1521:oracle
+#db.default.user = hypaas
+#db.default.password =
+#Datasource
+jdbc.filters=stat,wall
+jdbc.maxActive=20
+jdbc.initialSize=5
+jdbc.maxWait=60000
+jdbc.minIdle=10
+jdbc.timeBetweenEvictionRunsMillis=60000
+jdbc.minEvictableIdleTimeMillis=300000
+jdbc.validationQuery=SELECT 1
+jdbc.testWhileIdle=true
+jdbc.testOnBorrow=false
+jdbc.testOnReturn=false
+jdbc.maxOpenPreparedStatements=20
+jdbc.removeAbandoned=true
+jdbc.removeAbandonedTimeout=1800
+jdbc.logAbandoned=true
+#0:NONE,1:read_uncommitted,2:read_committed,4:REPEATABLE_READ,8:SERIALIZABLE
+jdbc.transactionIsolation=2
+jdbc.cache_mode=ENABLE_SELECTIVE
+#jdbc.cache_mode = ALL
+jdbc.fetch_size=20
+jdbc.batch_size=20
+mybatis.environment.id=dev
+# Date Format
+# ~~~~~
+date.format=dd/MM/yyyy
+# Timezone
+# ~~~~~
+date.timezone=Asia/Shanghai
+# Session timeout (in minutes)
+# ~~~~~
+session.timeout=60
+# Storage path for upload files (attachments)
+# ~~~~~
+# use {user.home} key to save files under user home directory, or
+# use absolute path where server user have write permission.
+file.upload.dir={user.home}/.hypaas/attachments
+# Upload filename pattern, default is auto where file is save with same name
+# in the given upload dir, if file is already there, a count number is
+# appended to file name.
+#
+# This can be overridden by providing custom name pattern, for example:
+#
+# file.upload.filename.pattern = {year}-{month}/{day}/{name}
+# file.upload.filename.pattern = {AA}/{name}
+#
+# Following placeholders can be used:
+#
+# {year} - current year
+# {month} - current month
+# {day} - current day
+# {name} - file name
+# {A} - first letter from file name
+# {AA} - first 2 letter from file name
+# {AAA} - first 3 letter from file name
+#
+#file.upload.filename.pattern = {year}-{month}/{day}/{name}
+# Maximum upload size (in MB)
+# ~~~~~
+file.upload.size=5
+
+#视频文件代理全路径
+nginx.proxy.path =
+
+#自动任务调度目标接口路径
+scheduling.url =
+
+#序列化字段,逗号分开
+serialize.keys =
+
+# Whitelist pattern can be used to allow file upload with matching names.
+#
+# For example: \\.(xml|html|jpg|png|pdf|xsl)$
+#
+# Regular expression
+# ~~~~~
+#file.upload.whitelist.pattern =
+# Blacklist pattern can be used to block file upload with matching names.
+#
+# Regular expression
+# ~~~~~
+#file.upload.blacklist.pattern =
+# Whitelist content type can be used to allow file upload with matching content.
+#
+# List of mime-types (plain/text,image/*,video/webm)
+# ~~~~~
+#file.upload.whitelist.types =
+# Blacklist content type can be used to block file upload with matching content.
+#
+# List of mime-types (plain/text,image/*,video/webm)
+# ~~~~~
+#file.upload.blacklist.types =
+# The external report design directory
+# ~~~~~
+# this directory is searched for the rptdesign files
+# (fallbacks to designs provided by modules)
+reports.design.dir={user.home}/.hypaas/reports
+# Storage path for report outputs
+reports.output.dir={user.home}/.hypaas/reports-gen
+# Data export (csv) encoding
+# ~~~~
+# Use Windows-1252, ISO-8859-1 or ISO-8859-15 if targeting ms excel
+# (excel does not recognize utf8 encoded csv)
+data.export.encoding=UTF-8
+# Storage path for export action
+# ~~~~~
+data.export.dir={user.home}/.hypaas/data-export
+# Specify whether to import demo data
+# ~~~~~
+data.import.hypaas-data=false
+# Storage path for templates
+# ~~~~~
+template.search.dir={user.home}/.hypaas/templates
+# LDAP Configuration
+# ~~~~~
+#ldap.server.url = ldap://localhost:10389
+# can be "simple" or "CRAM-MD5"
+ldap.auth.type=simple
+ldap.system.user=uid=admin,ou=system
+ldap.system.password=secret
+# group search base
+ldap.group.base=ou=groups,dc=example,dc=com
+# if set, create groups on ldap server under ldap.group.base
+#ldap.group.object.class = groupOfUniqueNames
+# a template to search groups by user login id
+ldap.group.filter=(uniqueMember=uid={0})
+# user search base
+ldap.user.base=ou=users,dc=example,dc=com
+# a template to search user by user login id
+ldap.user.filter=(uid={0})
+# CAS configuration
+# ~~~~~
+#auth.cas.server.url.prefix = http://localhost:8081/cas
+# use public accessible url
+#auth.cas.service = http://localhost:8080/hy-iot-paas/callback
+# login url, if not given prepared from server & service url
+#auth.cas.login.url = http://localhost:8081/cas/login?service=http://localhost:8080/hy-iot-paas/callback?client_name=CasClient
+# logout url, if not given prepared from server & service url
+#auth.cas.logout.url = http://localhost:8081/cas/logout?service=http://localhost:8080/hy-iot-paas
+# CAS validation protocol (CAS, SAML)
+#auth.cas.protocol = CAS10
+# the attribute to map to user display name
+#auth.cas.attrs.user.name = name
+# the attribute to map to user email
+#auth.cas.attrs.user.email = mail
+# Quartz Scheduler
+# ~~~~~
+# quartz job scheduler
+# Specify whether to enable quartz scheduler
+quartz.enable=false
+# total number of threads in quartz thread pool
+# the number of jobs that can run simultaneously
+quartz.threadCount=3
+# SMPT configuration
+# ~~~~~
+# SMTP server configuration
+#mail.smtp.host = smtp.gmail.com
+#mail.smtp.port = 587
+#mail.smtp.channel = starttls
+#mail.smtp.user = user@gmail.com
+#mail.smtp.pass = secret
+# timeout settings
+#mail.smtp.timeout = 60000
+#mail.smtp.connectionTimeout = 60000
+# IMAP configuration
+# ~~~~~
+# IMAP server configuration
+# (quartz scheduler should be enabled for fetching stream replies)
+#mail.imap.host = imap.gmail.com
+#mail.imap.port = 993
+#mail.imap.channel = ssl
+#mail.imap.user = user@gmail.com
+#mail.imap.pass = secret
+# timeout settings
+#mail.imap.timeout = 60000
+#mail.imap.connectionTimeout = 60000
+# CORS configuration
+# ~~~~~
+# CORS settings to allow cross origin requests
+# regular expression to test allowed origin or * to allow all (not recommended)
+#cors.allow.origin = *
+#cors.allow.credentials = true
+#cors.allow.methods = GET,PUT,POST,DELETE,HEAD,OPTIONS
+#cors.allow.headers = Origin,Accept,X-Requested-With,Content-Type,Access-Control-Request-Method,Access-Control-Request-Headers
+# View configuration
+# ~~~~~
+# Set to true to enable single view mode
+view.single.tab=false
+# Set menu style (left, top, both)
+view.menubar.location=both
+# Advance Filter Sharing
+# ~~~~~
+# Set to false to hide advance search filter share option, or set to list of
+# role names to enable share for those roles only.
+#view.adv-search.share = share-filter,can-share-filter
+# Logging
+# ~~~~~
+# Custom logback configuration can be provided with `logging.config` property pointing
+# to a custom `logback.xml`. In this case, all the logging configuration provided here
+# will be ignored.
+#
+# Following settings can be used to configure logging system automatically.
+#
+#logging.path = {user.home}/.hypaas/logs
+#logging.pattern.file = %d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } --- [%t] %-40.40logger{39} : %m%n
+#logging.pattern.console = %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n
+# Global logging
+logging.level.root=ERROR
+# Hypaas logging
+# Log everything.
+logging.level.com.hypaas=INFO
+# Hibernate logging
+# Log everything. Good for troubleshooting
+#logging.level.org.hibernate = INFO
+# Log all SQL DML statements as they are executed
+#logging.level.org.hibernate.SQL = DEBUG
+#logging.level.org.hibernate.engine.jdbc = DEBUG
+# Log all SQL DDL statements as they are executed
+#logging.level.org.hibernate.tool.hbm2ddl = INFO
+# Log all JDBC parameters
+#logging.level.org.hibernate.type = ALL
+# Log transactions
+#logging.level.org.hibernate.transaction = DEBUG
+# Log L2-Cache
+#logging.level.org.hibernate.cache = DEBUG
+# Log JDBC resource acquisition
+#logging.level.org.hibernate.jdbc = TRACE
+#logging.level.org.hibernate.service.jdbc = TRACE
+# Log connection pooling
+#logging.level.com.zaxxer.hikari = INFO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/out/production/resources/i18n/messages.csv b/out/production/resources/i18n/messages.csv
new file mode 100644
index 0000000..b0ddf17
--- /dev/null
+++ b/out/production/resources/i18n/messages.csv
@@ -0,0 +1,3 @@
+"key","message","comment","context"
+"Dashboards",,,
+"Welcome!",,,
diff --git a/out/production/resources/i18n/messages_en.csv b/out/production/resources/i18n/messages_en.csv
new file mode 100644
index 0000000..b0ddf17
--- /dev/null
+++ b/out/production/resources/i18n/messages_en.csv
@@ -0,0 +1,3 @@
+"key","message","comment","context"
+"Dashboards",,,
+"Welcome!",,,
diff --git a/out/production/resources/i18n/messages_fr.csv b/out/production/resources/i18n/messages_fr.csv
new file mode 100644
index 0000000..0e23da9
--- /dev/null
+++ b/out/production/resources/i18n/messages_fr.csv
@@ -0,0 +1,3 @@
+"key","message","comment","context"
+"Dashboards","Tableau de bord",,
+"Welcome!","Bienvenue",,
diff --git a/out/production/resources/i18n/messages_zh.csv b/out/production/resources/i18n/messages_zh.csv
new file mode 100644
index 0000000..8e66f06
--- /dev/null
+++ b/out/production/resources/i18n/messages_zh.csv
@@ -0,0 +1,3 @@
+"key","message","comment","context"
+"Dashboards","仪表盘",,
+"Welcome!","我的仪表盘",,
diff --git a/build/src-gen/resources/module.properties b/out/production/resources/module.properties
similarity index 100%
rename from build/src-gen/resources/module.properties
rename to out/production/resources/module.properties
diff --git a/out/production/resources/views/welcome.xml b/out/production/resources/views/welcome.xml
new file mode 100644
index 0000000..eee31fd
--- /dev/null
+++ b/out/production/resources/views/welcome.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+