Преглед на файлове

!1 合并
Merge pull request !1 from GaoKunW/devlop

GaoKunW преди 10 месеца
родител
ревизия
cc9f848260
променени са 41 файла, в които са добавени 2656 реда и са изтрити 502 реда
  1. 11 1
      README.md
  2. 2 2
      eco-common/common-mapper/src/main/java/com/eco/common/mapper/annotation/FieldMapper.java
  3. 4 2
      eco-common/common-mapper/src/main/java/com/eco/common/mapper/annotation/FieldMapperType.java
  4. 5 5
      eco-common/common-mapper/src/main/java/com/eco/common/mapper/config/FieldMapperConfig.java
  5. 1 1
      eco-common/common-mapper/src/main/java/com/eco/common/mapper/constant/MapperConstant.java
  6. 4 2
      eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/FieldMapperInterface.java
  7. 1 1
      eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/handler/FieldMapperBeanSerializerModifier.java
  8. 3 3
      eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/handler/FieldMapperHandler.java
  9. 4 4
      eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/impl/DeptNameMapperImpl.java
  10. 4 4
      eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/impl/DictTypeMapperImpl.java
  11. 4 4
      eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/impl/NicknameMapperImpl.java
  12. 4 4
      eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/impl/OssUrlMapperImpl.java
  13. 4 4
      eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/impl/UserNameMapperImpl.java
  14. 6 6
      eco-common/common-mapper/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  15. 1 1
      eco-common/common-orm/src/main/java/org/eco/common/orm/core/domain/TreeEntity.java
  16. 0 2
      eco-common/common-redis/src/main/java/org/eco/common/redis/utils/RedisUtils.java
  17. 5 2
      eco-modules/generator/src/main/java/org/eco/generator/domain/GenTable.java
  18. 2 2
      eco-modules/generator/src/main/java/org/eco/generator/service/GenTableServiceImpl.java
  19. 4 0
      eco-modules/generator/src/main/resources/vm/api/api.ts.types.vm
  20. 1 1
      eco-modules/generator/src/main/resources/vm/api/api.ts.vm
  21. 46 18
      eco-modules/generator/src/main/resources/vm/java/controller.java.vm
  22. 32 18
      eco-modules/generator/src/main/resources/vm/java/listener.java.vm
  23. 46 8
      eco-modules/generator/src/main/resources/vm/java/service.java.vm
  24. 152 56
      eco-modules/generator/src/main/resources/vm/java/serviceImpl.java.vm
  25. 15 1
      eco-modules/generator/src/main/resources/vm/java/vo-import.java.vm
  26. 54 41
      eco-modules/generator/src/main/resources/vm/java/vo.java.vm
  27. 12 12
      eco-modules/generator/src/main/resources/vm/sql/dm8/sql.vm
  28. 6 6
      eco-modules/generator/src/main/resources/vm/sql/mysql/sql.vm
  29. 6 6
      eco-modules/generator/src/main/resources/vm/sql/postgresql/sql.vm
  30. 135 74
      eco-modules/generator/src/main/resources/vm/vue/index-tree.vue.vm
  31. 9 6
      eco-modules/generator/src/main/resources/vm/vue/index.vue.vm
  32. 2 2
      eco-modules/system/src/main/java/org/eco/system/domain/vo/ImportExportVo.java
  33. 3 2
      eco-modules/system/src/main/java/org/eco/system/service/IImportExportService.java
  34. 9 11
      eco-modules/system/src/main/java/org/eco/system/service/impl/ImportExportServiceImpl.java
  35. 8 19
      eco-modules/system/src/main/java/org/eco/system/service/impl/SysUserServiceImpl.java
  36. 0 1
      eco-start/src/main/java/org/eco/web/service/impl/PasswordAuthStrategy.java
  37. 11 11
      eco-start/src/main/resources/db/dm/V1_0_0_1__sys-init-ddl.sql
  38. 158 158
      eco-start/src/main/resources/db/dm/V1_0_0_2__sys-init-dml.sql
  39. 1 1
      eco-start/src/main/resources/db/mysql/V1_0_0_1__sys-init-ddl.sql
  40. 1150 0
      eco-start/src/main/resources/db/pgsql/V1_0_0_1__sys-init-ddl.sql
  41. 731 0
      eco-start/src/main/resources/db/pgsql/V1_0_0_2__sys-init-dml.sql

+ 11 - 1
README.md

@@ -1,3 +1,13 @@
 # eco
 
-脚手架
+* 后台管理系统脚手架
+
+<h4 align="center">eco是基于JDK21、Spring Boot V3.X+平台</h4>
+
+* 最新技术栈,后台管理系统快速开发平台,集成Mysql、Pgsql、国产数据库 达梦8,使用flyway作为数据库管理。集成MyBatis-Flex、JDK21、SpringBootV3.
+  X+、Lombok、Sa-Token、SpringDoc、Hutool、SpringBoot Admin、PowerJob、Vue3、Element-Plus、MinIO等优秀开源软件。
+* 最新前后端代码生成。
+
+
+### (3)前端传送 eco-web
+使用Vue3+vite+ts+pinia+Element-Plus构建,项目地址: [eco-web](https://gitee.com/gaokunw/eco-web)

+ 2 - 2
eco-common/common-mapper/src/main/java/com/phm/common/mapper/annotation/FieldMapper.java → eco-common/common-mapper/src/main/java/com/eco/common/mapper/annotation/FieldMapper.java

@@ -1,8 +1,8 @@
-package com.phm.common.mapper.annotation;
+package com.eco.common.mapper.annotation;
 
+import com.eco.common.mapper.core.handler.FieldMapperHandler;
 import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.phm.common.mapper.core.handler.FieldMapperHandler;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;

+ 4 - 2
eco-common/common-mapper/src/main/java/com/phm/common/mapper/annotation/FieldMapperType.java → eco-common/common-mapper/src/main/java/com/eco/common/mapper/annotation/FieldMapperType.java

@@ -1,4 +1,6 @@
-package com.phm.common.mapper.annotation;
+package com.eco.common.mapper.annotation;
+
+import com.eco.common.mapper.core.FieldMapperInterface;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
@@ -8,7 +10,7 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 /**
- * @Description: FieldMapperType 映射类型注释 (标注到{@link com.phm.common.mapper.core.FieldMapperInterface} 的实现类)
+ * @Description: FieldMapperType 映射类型注释 (标注到{@link FieldMapperInterface} 的实现类)
  * @Author: GaoKun Wang
  * @Date: 2024/7/1
  */

+ 5 - 5
eco-common/common-mapper/src/main/java/com/phm/common/mapper/config/FieldMapperConfig.java → eco-common/common-mapper/src/main/java/com/eco/common/mapper/config/FieldMapperConfig.java

@@ -1,10 +1,10 @@
-package com.phm.common.mapper.config;
+package com.eco.common.mapper.config;
 
+import com.eco.common.mapper.annotation.FieldMapperType;
+import com.eco.common.mapper.core.FieldMapperInterface;
+import com.eco.common.mapper.core.handler.FieldMapperBeanSerializerModifier;
+import com.eco.common.mapper.core.handler.FieldMapperHandler;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.phm.common.mapper.annotation.FieldMapperType;
-import com.phm.common.mapper.core.FieldMapperInterface;
-import com.phm.common.mapper.core.handler.FieldMapperBeanSerializerModifier;
-import com.phm.common.mapper.core.handler.FieldMapperHandler;
 import jakarta.annotation.PostConstruct;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 1
eco-common/common-mapper/src/main/java/com/phm/common/mapper/constant/MapperConstant.java → eco-common/common-mapper/src/main/java/com/eco/common/mapper/constant/MapperConstant.java

@@ -1,4 +1,4 @@
-package com.phm.common.mapper.constant;
+package com.eco.common.mapper.constant;
 
 /**
  * @Description: MapperConstant 常量

+ 4 - 2
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/FieldMapperInterface.java → eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/FieldMapperInterface.java

@@ -1,8 +1,10 @@
-package com.phm.common.mapper.core;
+package com.eco.common.mapper.core;
+
+import com.eco.common.mapper.annotation.FieldMapperType;
 
 /**
  * @Description: FieldMapperInterface接口
- * (实现类需标注 {@link com.phm.common.mapper.annotation.FieldMapperType} 注解标明翻译类型)
+ * (实现类需标注 {@link FieldMapperType} 注解标明翻译类型)
  * @Author: GaoKun Wang
  * @Date: 2024/7/1
  */

+ 1 - 1
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/handler/FieldMapperBeanSerializerModifier.java → eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/handler/FieldMapperBeanSerializerModifier.java

@@ -1,4 +1,4 @@
-package com.phm.common.mapper.core.handler;
+package com.eco.common.mapper.core.handler;
 
 import com.fasterxml.jackson.databind.BeanDescription;
 import com.fasterxml.jackson.databind.SerializationConfig;

+ 3 - 3
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/handler/FieldMapperHandler.java → eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/handler/FieldMapperHandler.java

@@ -1,14 +1,14 @@
-package com.phm.common.mapper.core.handler;
+package com.eco.common.mapper.core.handler;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.eco.common.mapper.core.FieldMapperInterface;
 import com.fasterxml.jackson.core.JsonGenerator;
 import com.fasterxml.jackson.databind.BeanProperty;
 import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.JsonSerializer;
 import com.fasterxml.jackson.databind.SerializerProvider;
 import com.fasterxml.jackson.databind.ser.ContextualSerializer;
-import com.phm.common.mapper.annotation.FieldMapper;
-import com.phm.common.mapper.core.FieldMapperInterface;
+import com.eco.common.mapper.annotation.FieldMapper;
 import org.eco.common.core.utils.StringUtils;
 import org.eco.common.core.utils.reflect.ReflectUtils;
 

+ 4 - 4
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/impl/DeptNameMapperImpl.java → eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/impl/DeptNameMapperImpl.java

@@ -1,8 +1,8 @@
-package com.phm.common.mapper.core.impl;
+package com.eco.common.mapper.core.impl;
 
-import com.phm.common.mapper.annotation.FieldMapperType;
-import com.phm.common.mapper.constant.MapperConstant;
-import com.phm.common.mapper.core.FieldMapperInterface;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.core.FieldMapperInterface;
+import com.eco.common.mapper.annotation.FieldMapperType;
 import lombok.AllArgsConstructor;
 import org.eco.common.core.service.DeptService;
 

+ 4 - 4
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/impl/DictTypeMapperImpl.java → eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/impl/DictTypeMapperImpl.java

@@ -1,8 +1,8 @@
-package com.phm.common.mapper.core.impl;
+package com.eco.common.mapper.core.impl;
 
-import com.phm.common.mapper.annotation.FieldMapperType;
-import com.phm.common.mapper.constant.MapperConstant;
-import com.phm.common.mapper.core.FieldMapperInterface;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.core.FieldMapperInterface;
+import com.eco.common.mapper.annotation.FieldMapperType;
 import lombok.AllArgsConstructor;
 import org.eco.common.core.service.DictService;
 import org.eco.common.core.utils.StringUtils;

+ 4 - 4
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/impl/NicknameMapperImpl.java → eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/impl/NicknameMapperImpl.java

@@ -1,8 +1,8 @@
-package com.phm.common.mapper.core.impl;
+package com.eco.common.mapper.core.impl;
 
-import com.phm.common.mapper.annotation.FieldMapperType;
-import com.phm.common.mapper.constant.MapperConstant;
-import com.phm.common.mapper.core.FieldMapperInterface;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.core.FieldMapperInterface;
+import com.eco.common.mapper.annotation.FieldMapperType;
 import lombok.AllArgsConstructor;
 import org.eco.common.core.service.UserService;
 

+ 4 - 4
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/impl/OssUrlMapperImpl.java → eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/impl/OssUrlMapperImpl.java

@@ -1,8 +1,8 @@
-package com.phm.common.mapper.core.impl;
+package com.eco.common.mapper.core.impl;
 
-import com.phm.common.mapper.annotation.FieldMapperType;
-import com.phm.common.mapper.constant.MapperConstant;
-import com.phm.common.mapper.core.FieldMapperInterface;
+import com.eco.common.mapper.annotation.FieldMapperType;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.core.FieldMapperInterface;
 import lombok.AllArgsConstructor;
 import org.eco.common.core.service.OssService;
 

+ 4 - 4
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/impl/UserNameMapperImpl.java → eco-common/common-mapper/src/main/java/com/eco/common/mapper/core/impl/UserNameMapperImpl.java

@@ -1,8 +1,8 @@
-package com.phm.common.mapper.core.impl;
+package com.eco.common.mapper.core.impl;
 
-import com.phm.common.mapper.annotation.FieldMapperType;
-import com.phm.common.mapper.constant.MapperConstant;
-import com.phm.common.mapper.core.FieldMapperInterface;
+import com.eco.common.mapper.annotation.FieldMapperType;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.core.FieldMapperInterface;
 import lombok.AllArgsConstructor;
 import org.eco.common.core.service.UserService;
 

+ 6 - 6
eco-common/common-mapper/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1,6 +1,6 @@
-com.phm.common.mapper.config.FieldMapperConfig
-com.phm.common.mapper.core.impl.DeptNameMapperImpl
-com.phm.common.mapper.core.impl.DictTypeMapperImpl
-com.phm.common.mapper.core.impl.NicknameMapperImpl
-com.phm.common.mapper.core.impl.OssUrlMapperImpl
-com.phm.common.mapper.core.impl.UserNameMapperImpl
+com.eco.common.mapper.config.FieldMapperConfig
+com.eco.common.mapper.core.impl.DeptNameMapperImpl
+com.eco.common.mapper.core.impl.DictTypeMapperImpl
+com.eco.common.mapper.core.impl.NicknameMapperImpl
+com.eco.common.mapper.core.impl.OssUrlMapperImpl
+com.eco.common.mapper.core.impl.UserNameMapperImpl

+ 1 - 1
eco-common/common-orm/src/main/java/org/eco/common/orm/core/domain/TreeEntity.java

@@ -24,7 +24,7 @@ public class TreeEntity extends BaseEntity {
     /**
      * 父级名称
      */
-    @Column(ignore = true)
+    @ExcelProperty(value = "上级名称")
     private String parentName;
 
     /**

+ 0 - 2
eco-common/common-redis/src/main/java/org/eco/common/redis/utils/RedisUtils.java

@@ -32,10 +32,8 @@ import java.util.stream.Stream;
  * redis 工具类
  *
  * @author wgk
- * @version 3.1.0 新增
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-@SuppressWarnings(value = {"unchecked", "rawtypes"})
 public class RedisUtils {
 
     private static final RedissonClient CLIENT = SpringUtils.getBean(RedissonClient.class);

+ 5 - 2
eco-modules/generator/src/main/java/org/eco/generator/domain/GenTable.java

@@ -2,15 +2,16 @@ package org.eco.generator.domain;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonInclude;
-import org.eco.common.core.constant.GenConstants;
-import org.eco.common.core.utils.StringUtils;
 import com.mybatisflex.annotation.Column;
 import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.RelationOneToMany;
 import com.mybatisflex.annotation.Table;
 import jakarta.validation.Valid;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
 import org.apache.commons.lang3.ArrayUtils;
+import org.eco.common.core.constant.GenConstants;
+import org.eco.common.core.utils.StringUtils;
 
 import java.io.Serial;
 import java.io.Serializable;
@@ -124,6 +125,8 @@ public class GenTable implements Serializable {
      * 表列信息
      */
     @Valid
+    @Column(ignore = true)
+    @RelationOneToMany(selfField = "tableId", targetField = "tableId", orderBy = "sort")
     private List<GenTableColumn> columns;
 
     /**

+ 2 - 2
eco-modules/generator/src/main/java/org/eco/generator/service/GenTableServiceImpl.java

@@ -1,6 +1,7 @@
 package org.eco.generator.service;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
@@ -566,10 +567,9 @@ public class GenTableServiceImpl extends BaseServiceImpl<GenTableMapper, GenTabl
      * @param table table
      */
     private void setMenuIds(GenTable table) {
-        String nowStr = DateUtils.dateTimeNow();
         List<Long> menuIds = new ArrayList<>();
         for (int i = 0; i < 7; i++) {
-            menuIds.add(Long.valueOf(nowStr + "0" + i));
+            menuIds.add(Long.valueOf(IdUtil.getSnowflakeNextIdStr()));
         }
         table.setMenuIds(menuIds);
     }

+ 4 - 0
eco-modules/generator/src/main/resources/vm/api/api.ts.types.vm

@@ -1,4 +1,8 @@
+#if($table.crud || $table.sub)
 import { PageQuery, BaseEntity } from '@/api/interface/index'
+#elseif($table.tree)
+import { BaseEntity } from '@/api/interface/index'
+#end
 export interface ${BusinessName}VO extends BaseEntity {
 #foreach ($column in $columns)
     #if($column.list)

+ 1 - 1
eco-modules/generator/src/main/resources/vm/api/api.ts.vm

@@ -66,5 +66,5 @@ export const import${BusinessName}DataApi = (data: any) => {
  * @returns returns
  */
 export const export${BusinessName}Api = (data: any) => {
-    return http.downloadPost('/${moduleName}/${businessName}/export', data)
+    return http.post('/${moduleName}/${businessName}/export', data)
 }

+ 46 - 18
eco-modules/generator/src/main/resources/vm/java/controller.java.vm

@@ -1,27 +1,32 @@
 package ${packageName}.controller;
 
-import java.util.List;
-
 import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
+import cn.hutool.core.collection.CollUtil;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.eco.common.core.core.domain.CommonResult;
-import org.eco.common.excel.utils.ExcelUtil;
 import org.eco.common.log.annotation.Log;
 import org.eco.common.log.enums.BusinessType;
+import org.eco.common.security.utils.LoginHelper;
+import org.eco.common.core.core.domain.model.LoginUser;
 import org.eco.common.web.annotation.RepeatSubmit;
+import org.eco.common.excel.utils.ExcelUtil;
 import org.eco.common.web.core.BaseController;
 import jakarta.annotation.Resource;
+import ${packageName}.domain.vo.${ClassName}ImportVo;
 import ${packageName}.domain.vo.${ClassName}Vo;
 import ${packageName}.domain.bo.${ClassName}Bo;
 import ${packageName}.service.I${ClassName}Service;
+import org.springframework.web.multipart.MultipartFile;
+    #if($table.crud || $table.sub)
+    import org.eco.common.core.core.page.PageResult;
+    #elseif($table.tree)
+    #end
 
-#if($table.crud || $table.sub)
-import org.eco.common.core.core.page.PageResult;
-#elseif($table.tree)
-#end
+import java.util.List;
+import java.util.ArrayList;
 
 /**
  * ${functionName}Controller
@@ -37,20 +42,20 @@ public class ${ClassName}Controller extends BaseController {
     @Resource
     private I${ClassName}Service ${className}Service;
 
-    /**
-     * 查询${functionName}列表
-     */
-    @SaCheckPermission("${permissionPrefix}:list")
-    @GetMapping("/list")
+/**
+ * 查询${functionName}列表
+ */
+@SaCheckPermission("${permissionPrefix}:list")
+@GetMapping("/list")
     #if($table.crud || $table.sub)
     public CommonResult<PageResult<${ClassName}Vo>> list(${ClassName}Bo ${className}Bo) {
         return CommonResult.success(${className}Service.selectPage(${className}Bo));
     }
     #elseif($table.tree)
-    public CommonResult<List<${ClassName}Vo>> list(${ClassName}Bo ${className}Bo) {
-        List<${ClassName}Vo> list = ${className}Service.selectList(${className}Bo);
-        return CommonResult.success(list);
-    }
+        public CommonResult<List<${ClassName}Vo>> list(${ClassName}Bo ${className}Bo) {
+            List<${ClassName}Vo> list = ${className}Service.selectList(${className}Bo);
+            return CommonResult.success(list);
+        }
     #end
 
     /**
@@ -59,9 +64,32 @@ public class ${ClassName}Controller extends BaseController {
     @SaCheckPermission("${permissionPrefix}:export")
     @Log(title = "${functionName}", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, ${ClassName}Bo ${className}Bo) {
+    public CommonResult<Void> export(${ClassName}Bo ${className}Bo) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
         List<${ClassName}Vo> list = ${className}Service.selectList(${className}Bo);
-        ExcelUtil.exportExcel(list, "${functionName}", ${ClassName}Vo.class, response);
+        if (CollUtil.isEmpty(list)) {
+            return CommonResult.fail("导出列表为空");
+        }
+            ${className}Service.asyncExport(list, "${functionName}", loginUser);
+        return CommonResult.success();
+    }
+
+    @SaCheckPermission("${permissionPrefix}:import")
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil.exportExcel(new ArrayList<>(), "${functionName}", ${ClassName}ImportVo.class, response);
+    }
+
+    /**
+     * 导入${functionName}列表
+     */
+    @Log(title = "${functionName}", businessType = BusinessType.IMPORT)
+    @SaCheckPermission("${permissionPrefix}:import")
+    @PostMapping("/importData")
+    public CommonResult<Void> importData(MultipartFile file, boolean updateSupport) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+            ${className}Service.asyncImportData(file, updateSupport, loginUser);
+        return CommonResult.success();
     }
 
     /**

+ 32 - 18
eco-modules/generator/src/main/resources/vm/java/listener.java.vm

@@ -9,6 +9,8 @@ import org.eco.common.core.utils.SpringUtils;
 import org.eco.common.core.utils.ValidatorUtils;
 import org.eco.common.excel.core.ExcelListener;
 import org.eco.common.excel.core.ExcelResult;
+import org.eco.common.excel.entity.ExcelResultRes;
+import org.eco.common.core.core.domain.model.LoginUser;
 import ${packageName}.domain.bo.${ClassName}Bo;
 import ${packageName}.domain.vo.${ClassName}ImportVo;
 import ${packageName}.domain.vo.${ClassName}Vo;
@@ -27,39 +29,41 @@ public class ${ClassName}ImportListener extends AnalysisEventListener<${ClassNam
     private final I${ClassName}Service ${className}Service;
 
     private final Boolean isUpdateSupport;
+    private final LoginUser loginUser;
     private int successNum = 0;
     private int failureNum = 0;
     private final StringBuilder successMsg = new StringBuilder();
     private final StringBuilder failureMsg = new StringBuilder();
 
-    public ${ClassName}ImportListener(Boolean isUpdateSupport) {
+    public ${ClassName}ImportListener(Boolean isUpdateSupport, LoginUser loginUser) {
         this.${className}Service = SpringUtils.getBean(I${ClassName}Service.class);
         this.isUpdateSupport = isUpdateSupport;
+        this.loginUser = loginUser;
     }
 
     @Override
     public void invoke(${ClassName}ImportVo ${className}Vo, AnalysisContext context) {
         try {
 
-            ${ClassName}Bo ${className}Bo = BeanUtil.toBean(${className}Vo, ${ClassName}Bo.class);
+                ${ClassName}Bo ${className}Bo = BeanUtil.toBean(${className}Vo, ${ClassName}Bo.class);
 
             //TODO:根据某个字段,查询数据库表中是否存在记录,不存在就新增,存在就更新
-            ${ClassName}Vo ${className}Vo1 = null;
+                ${ClassName}Vo ${className}Vo1 = null;
 
             #if($table.tree)
-            ${className}Vo1 = ${className}Service.selectById(${className}Vo.get${pkColumn.capJavaField}());
+                    ${className}Vo1 = ${className}Service.selectById(${className}Vo.get${pkColumn.capJavaField}());
             #else
-            //${className}Vo1 = ${className}Service.selectBySomefield(${className}Vo.getSomefield());
+                //${className}Vo1 = ${className}Service.selectBySomefield(${className}Vo.getSomefield());
             #end
             if (ObjectUtil.isNull(${className}Vo1)) {
                 //不存在就新增
-                ${className}Bo.setVersion(0);
+                setBo(${className}Bo);
                 ValidatorUtils.validate(${className}Bo);
-              #if($table.tree)
-                boolean inserted = ${className}Service.insertWithPk(${className}Bo);//树表需要前台传来主键值
-              #else
-                boolean inserted = ${className}Service.insert(${className}Bo);
-              #end
+                #if($table.tree)
+                    boolean inserted = ${className}Service.insertWithPk(${className}Bo);//树表需要前台传来主键值
+                #else
+                    boolean inserted = ${className}Service.insert(${className}Bo);
+                #end
 
                 if (inserted) {
                     successNum++;
@@ -72,8 +76,8 @@ public class ${ClassName}ImportListener extends AnalysisEventListener<${ClassNam
                 }
             } else if (isUpdateSupport) {
                 //存在就更新
-                ${className}Bo.set${pkColumn.capJavaField}(${className}Vo1.get${pkColumn.capJavaField}());//主键
-                ${className}Bo.setVersion(${className}Vo1.getVersion());
+                    ${className}Bo.set${pkColumn.capJavaField}(${className}Vo1.get${pkColumn.capJavaField}());//主键
+                    ${className}Bo.setVersion(${className}Vo1.getVersion());
                 boolean updated = ${className}Service.update(${className}Bo);
                 if (updated) {
                     successNum++;
@@ -93,9 +97,16 @@ public class ${ClassName}ImportListener extends AnalysisEventListener<${ClassNam
         }
     }
 
+    private void setBo(${ClassName}Bo ${className}Bo) {
+        ${className}Bo.setVersion(0);
+        ${className}Bo.setCreateBy(loginUser.getUserId());
+        ${className}Bo.setUpdateBy(loginUser.getUserId());
+        ${className}Bo.setTenantId(loginUser.getTenantId());
+    }
+
     @Override
     public void doAfterAllAnalysed(AnalysisContext context) {
-
+        log.info("解析完成");
     }
 
     @Override
@@ -103,14 +114,17 @@ public class ${ClassName}ImportListener extends AnalysisEventListener<${ClassNam
         return new ExcelResult<>() {
 
             @Override
-            public String getAnalysis() {
-                if (failureNum > 0) {
+            public ExcelResultRes getAnalysis() {
+                if (failureNum > 0 && successNum == 0) {
                     failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据没有成功导入,错误如下:");
-                    throw new BusinessException(failureMsg.toString());
+                    return ExcelResultRes.builder().logInfo(failureMsg.toString()).status("0").build();
+                } else if (failureNum > 0 && successNum > 0) {
+                    failureMsg.insert(0, "很抱歉,部分导入失败!共 " + failureNum + " 条数据没有成功导入,错误如下:");
+                    return ExcelResultRes.builder().logInfo(failureMsg.toString()).status("2").build();
                 } else {
                     successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
+                    return ExcelResultRes.builder().logInfo(successMsg.toString()).status("1").build();
                 }
-                return successMsg.toString();
             }
 
             @Override

+ 46 - 8
eco-modules/generator/src/main/resources/vm/java/service.java.vm

@@ -1,11 +1,13 @@
 package ${packageName}.service;
 
 import java.util.List;
-
+import org.eco.common.core.core.domain.model.LoginUser;
 import ${packageName}.domain.${ClassName};
 import ${packageName}.domain.vo.${ClassName}Vo;
 import ${packageName}.domain.bo.${ClassName}Bo;
 import org.eco.common.orm.core.service.IBaseService;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.multipart.MultipartFile;
 #if($table.crud || $table.sub)
 import org.eco.common.core.core.page.PageResult;
 #end
@@ -24,7 +26,15 @@ public interface I${ClassName}Service extends IBaseService<${ClassName}> {
      * @return ${functionName}
      */
         ${ClassName}Vo selectById(${pkColumn.javaType} ${pkColumn.javaField});
-
+#if($table.tree)
+    /**
+     * 查询${functionName}
+     *
+     * @param ${treeName} ${functionName}
+     * @return ${functionName}
+     */
+        ${ClassName}Vo selectByName(String ${treeName});
+#end
     /**
      * 查询${functionName}列表
      *
@@ -34,22 +44,30 @@ public interface I${ClassName}Service extends IBaseService<${ClassName}> {
     List<${ClassName}Vo> selectList(${ClassName}Bo ${className}Bo);
 
     #if($table.crud || $table.sub)
+        /**
+         * 分页查询${functionName}列表
+         *
+         * @param ${className}Bo ${functionName}Bo
+         * @return 分页${functionName}集合
+         */
+        PageResult<${ClassName}Vo> selectPage(${ClassName}Bo ${className}Bo);
+    #end
+
     /**
-     * 分页查询${functionName}列表
+     * 新增${functionName}
      *
      * @param ${className}Bo ${functionName}Bo
-     * @return 分页${functionName}集合
+     * @return 结果:true 操作成功,false 操作失败
      */
-    PageResult<${ClassName}Vo> selectPage(${ClassName}Bo ${className}Bo);
-    #end
+    boolean insert(${ClassName}Bo ${className}Bo);
 
     /**
-     * 新增${functionName}
+     * 新增${functionName},前台提供主键值,一般用于导入的场合
      *
      * @param ${className}Bo ${functionName}Bo
      * @return 结果:true 操作成功,false 操作失败
      */
-    boolean insert(${ClassName}Bo ${className}Bo);
+    boolean insertWithPk(${ClassName}Bo ${className}Bo);
 
     /**
      * 修改${functionName}
@@ -67,4 +85,24 @@ public interface I${ClassName}Service extends IBaseService<${ClassName}> {
      */
     boolean deleteByIds(${pkColumn.javaType}[] ${pkColumn.javaField}s);
 
+    /**
+     * 异步导入
+     *
+     * @param file          导入的文件
+     * @param updateSupport 是否覆盖
+     * @param user          用户上下文信息
+     */
+    @Async
+    void asyncImportData(MultipartFile file, boolean updateSupport, LoginUser user);
+
+    /**
+     * asyncExport 异步导出
+     *
+     * @param listVo    数据列表
+     * @param sheetName 文件名称
+     * @param user      上下文
+     */
+    @Async
+    void asyncExport(List<${ClassName}Vo> listVo, String sheetName, LoginUser user);
+
 }

+ 152 - 56
eco-modules/generator/src/main/resources/vm/java/serviceImpl.java.vm

@@ -6,8 +6,15 @@ import java.util.List;
 import cn.hutool.core.util.ObjectUtil;
 import com.mybatisflex.core.paginate.Page;
 import com.mybatisflex.core.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.eco.common.core.core.domain.model.LoginUser;
+import org.eco.common.excel.entity.ExcelResultRes;
+import org.eco.common.excel.service.IExcelService;
+import org.eco.common.core.utils.bean.BeanUtils;
 import org.eco.common.core.utils.MapstructUtils;
+import org.eco.system.service.IImportExportService;
 import org.eco.common.core.utils.StringUtils;
+import org.eco.system.domain.bo.ImportExportBo;
 import org.eco.common.orm.core.page.PageQuery;
 import org.eco.common.core.core.page.PageResult;
 import org.eco.common.orm.core.service.impl.BaseServiceImpl;
@@ -19,16 +26,20 @@ import org.eco.common.orm.core.service.impl.BaseServiceImpl;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-#if($table.sub)
-import java.util.ArrayList;
-import ${packageName}.domain.${subClassName};
-import ${packageName}.mapper.${subClassName}Mapper;
-import static ${packageName}.domain.table.${subClassName}TableDef.${CapitalUnderScoreSubClassName};
-#end
+import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
+    #if($table.sub)
+    import java.util.ArrayList;
+    import ${packageName}.domain.${subClassName};
+    import ${packageName}.mapper.${subClassName}Mapper;
+    import static ${packageName}.domain.table.${subClassName}TableDef.${CapitalUnderScoreSubClassName};
+    #end
 import ${packageName}.mapper.${ClassName}Mapper;
 import ${packageName}.domain.${ClassName};
 import ${packageName}.domain.bo.${ClassName}Bo;
 import ${packageName}.domain.vo.${ClassName}Vo;
+import ${packageName}.domain.vo.${ClassName}ImportVo;
+import ${packageName}.listener.${ClassName}ImportListener;
 import ${packageName}.service.I${ClassName}Service;
 import static ${packageName}.domain.table.${ClassName}TableDef.${CapitalUnderScoreClassName};
 
@@ -39,12 +50,19 @@ import static ${packageName}.domain.table.${ClassName}TableDef.${CapitalUnderSco
  * @date ${datetime}
  */
 @Service
+@Slf4j
 public class ${ClassName}ServiceImpl extends BaseServiceImpl<${ClassName}Mapper, ${ClassName}> implements I${ClassName}Service {
     @Resource
     private ${ClassName}Mapper ${className}Mapper;
-    #if($table.sub)
+
+    @Resource
+    private IExcelService excelService;
+
     @Resource
-    private ${subClassName}Mapper ${subclassName}Mapper;
+    private IImportExportService importExportService;
+    #if($table.sub)
+        @Resource
+        private ${subClassName}Mapper ${subclassName}Mapper;
     #end
 
     @Override
@@ -63,17 +81,17 @@ public class ${ClassName}ServiceImpl extends BaseServiceImpl<${ClassName}Mapper,
                 #set($capitalColumnName=$column.columnName.toUpperCase())
                 #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
                 #set($mpMethod=$column.queryType.toLowerCase())
-    #if($queryType != 'BETWEEN')
-        queryWrapper.and(${CapitalUnderScoreClassName}.${capitalColumnName}.$mpMethod
-        (${className}Bo.get$AttrName()));
-    #else
-        queryWrapper.and(${CapitalUnderScoreClassName}.${capitalColumnName}.$mpMethod
-        (${className}Bo.getParams().get("begin$AttrName"), ${className}Bo.getParams().get("end$AttrName")));
-    #end
+                #if($queryType != 'BETWEEN')
+                    queryWrapper.and(${CapitalUnderScoreClassName}.${capitalColumnName}.$mpMethod
+                    (${className}Bo.get$AttrName()));
+                #else
+                    queryWrapper.and(${CapitalUnderScoreClassName}.${capitalColumnName}.$mpMethod
+                    (${className}Bo.getParams().get("begin$AttrName"), ${className}Bo.getParams().get("end$AttrName")));
+                #end
             #end
         #end
         #if($table.tree)
-        queryWrapper.orderBy(${CapitalUnderScoreClassName}.ORDER_NUM.asc());
+            queryWrapper.orderBy(${CapitalUnderScoreClassName}.ORDER_NUM.asc());
         #end
 
         return queryWrapper;
@@ -96,6 +114,19 @@ public class ${ClassName}ServiceImpl extends BaseServiceImpl<${ClassName}Mapper,
 
     }
 
+#if($table.tree)
+    /**
+     * 查询${functionName}
+     *
+     * @param ${treeName} ${functionName}主键
+     * @return ${functionName}
+     */
+    @Override
+    public ${ClassName}Vo selectByName(String ${treeName}) {
+        #set($CapitalPkColumn=${treeName.toUpperCase()})
+        return this.getOneAs(query().where(${CapitalUnderScoreClassName}.${CapitalPkColumn}.eq(${treeName})), ${ClassName}Vo.class);
+    }
+#end
     /**
      * 查询${functionName}列表
      *
@@ -113,26 +144,50 @@ public class ${ClassName}ServiceImpl extends BaseServiceImpl<${ClassName}Mapper,
     }
 
     #if($table.crud || $table.sub)
+        /**
+         * 分页查询${functionName}列表
+         *
+         * @param ${className}Bo ${functionName}Bo
+         * @return 分页${functionName}集合
+         */
+        @Override
+        public PageResult<${ClassName}Vo> selectPage(${ClassName}Bo ${className}Bo) {
+            QueryWrapper queryWrapper = buildQueryWrapper(${className}Bo);
+            #if($table.sub)
+                Page<${ClassName}Vo> page = ${className}Mapper.paginateWithRelationsAs(PageQuery.build(), queryWrapper, ${ClassName}Vo.class);
+            #else
+                Page<${ClassName}Vo> page = this.pageAs(PageQuery.build(), queryWrapper, ${ClassName}Vo.class);
+            #end
+            return PageResult.build(page);
+        }
+    #end
+
     /**
-     * 分页查询${functionName}列表
+     * 新增${functionName}
      *
      * @param ${className}Bo ${functionName}Bo
-     * @return 分页${functionName}集合
+     * @return 结果:true 操作成功,false 操作失败
      */
+        #if($table.sub)
+        @Transactional
+        #end
     @Override
-    public PageResult<${ClassName}Vo> selectPage(${ClassName}Bo ${className}Bo) {
-        QueryWrapper queryWrapper = buildQueryWrapper(${className}Bo);
+    public boolean insert(${ClassName}Bo ${className}Bo) {
+        ${ClassName} ${className} =MapstructUtils.convert(${className}Bo, ${ClassName}. class);
+
         #if($table.sub)
-            Page<${ClassName}Vo> page = ${className}Mapper.paginateWithRelationsAs(PageQuery.build(), queryWrapper, ${ClassName}Vo.class);
+            boolean inserted = this.save(${className});//使用全局配置的雪花算法主键生成器生成ID值
+            if (inserted && ObjectUtil.isNotNull(${className})) {
+                return insert${subClassName}(${className});
+            }
+            return false;
         #else
-            Page<${ClassName}Vo> page = this.pageAs(PageQuery.build(), queryWrapper, ${ClassName}Vo.class);
+            return this.save(${className});//使用全局配置的雪花算法主键生成器生成ID值
         #end
-        return PageResult.build(page);
     }
-    #end
 
     /**
-     * 新增${functionName}
+     * 新增${functionName},前台提供主键值,一般用于导入的场合
      *
      * @param ${className}Bo ${functionName}Bo
      * @return 结果:true 操作成功,false 操作失败
@@ -141,18 +196,34 @@ public class ${ClassName}ServiceImpl extends BaseServiceImpl<${ClassName}Mapper,
         @Transactional
         #end
     @Override
-    public boolean insert(${ClassName}Bo ${className}Bo) {
-    ${ClassName} ${className} =MapstructUtils.convert(${className}Bo, ${ClassName}. class);
+    public boolean insertWithPk(${ClassName}Bo ${className}Bo)
+    {
+        ${ClassName} ${className} = MapstructUtils.convert(${className}Bo, ${ClassName}.class);
+
+        #if($table.tree)
+            //获取祖级列表字段
+            Long parentId = ${className}.getParentId();
+            if (parentId == 0) {
+                ${className}.setAncestors("0");
+            } else {
+                    ${ClassName}Vo parent${ClassName} = selectById(${className}Bo.getParentId());
+                if (ObjectUtil.isNotNull(parent${ClassName})) {
+                    ${className}.setAncestors(parent${ClassName}.getAncestors()+"," +parentId);
+                } else {
+                    ${className}.setAncestors("0");
+                }
+            }
+        #end
 
         #if($table.sub)
-        boolean inserted = this.save(${className});//使用全局配置的雪花算法主键生成器生成ID值
-        if (inserted && ObjectUtil.isNotNull(${className})) {
-            return insert${subClassName}(${className});
-        }
-        return false;
-    #else
-        return this.save(${className});//使用全局配置的雪花算法主键生成器生成ID值
-    #end
+            boolean inserted = ${className}Mapper.insertWithPk(${className}) > 0;//前台传来主键
+            if (inserted && ObjectUtil.isNotNull(${className})) {
+                return insert${subClassName}(${className});
+            }
+            return false;
+        #else
+            return ${className}Mapper.insertWithPk(${className}) > 0;//前台传来主键
+        #end
     }
 
     /**
@@ -183,6 +254,30 @@ public class ${ClassName}ServiceImpl extends BaseServiceImpl<${ClassName}Mapper,
         return false;
     }
 
+    @Override
+    public void asyncImportData(MultipartFile file, boolean updateSupport, LoginUser loginUser) {
+        ExcelResultRes result;
+        try {
+            String name = file.getOriginalFilename();
+            result = excelService.importExcel(file.getInputStream(), name, ${ClassName}ImportVo.class, new ${ClassName}ImportListener(updateSupport, loginUser));
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        boolean flag = importExportService.saveInfo(result, loginUser, "0");
+        if (flag) {
+            log.info("异步导入日志写入成功");
+        }
+    }
+
+    @Override
+    public void asyncExport(List<${ClassName}Vo> listVo, String sheetName, LoginUser loginUser) {
+        ExcelResultRes result = excelService.exportExcel(listVo, sheetName, ${ClassName}Vo.class);
+        boolean flag = importExportService.saveInfo(result, loginUser, "1");
+        if (flag) {
+            log.info("异步导出日志写入成功");
+        }
+    }
+
     /**
      * 批量删除${functionName}
      *
@@ -193,33 +288,34 @@ public class ${ClassName}ServiceImpl extends BaseServiceImpl<${ClassName}Mapper,
     @Override
     public boolean deleteByIds(${pkColumn.javaType}[] ${pkColumn.javaField}s) {
         #if($table.sub)
-        QueryWrapper queryWrapper = QueryWrapper.create().from(${CapitalUnderScoreSubClassName}).where(${CapitalUnderScoreSubClassName}.${CapitalUnderScoreSubTableFkClassName}.
-        in(Arrays.asList(${pkColumn.javaField}s)));
-            ${subclassName}Mapper.deleteByQuery(queryWrapper);
+            QueryWrapper queryWrapper = QueryWrapper.create().from(${CapitalUnderScoreSubClassName}).where(${CapitalUnderScoreSubClassName}.${CapitalUnderScoreSubTableFkClassName}.
+            in(Arrays.asList(${pkColumn.javaField}s)));
+                ${subclassName}Mapper.deleteByQuery(queryWrapper);
         #end
         return this.removeByIds(Arrays.asList(${pkColumn.javaField}s));
     }
 
     #if($table.sub)
-    /**
-     * 新增${subTable.functionName}信息
-     *
-     * @param ${className} ${functionName}对象
-     */
-    private boolean insert${subClassName}(${ClassName} ${className}) {
-        List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List();
-        ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}();
-        if (StringUtils.isNotNull(${subclassName}List)) {
-            List<${subClassName}> list = new ArrayList<>();
-            for (${subClassName} ${subclassName} :${subclassName}List){
-                ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField});
-                list.add(${subclassName});
-            }
-            if (list.size() > 0) {
-                return ${subclassName}Mapper.insertBatch(list) > 0;
+        /**
+         * 新增${subTable.functionName}信息
+         *
+         * @param ${className} ${functionName}对象
+         */
+        private boolean insert${subClassName}(${ClassName} ${className}) {
+            List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List();
+            ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}();
+            if (StringUtils.isNotNull(${subclassName}List)) {
+                List<${subClassName}> list = new ArrayList<>();
+                for (${subClassName} ${subclassName} :${subclassName}List){
+                    ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField});
+                    list.add(${subclassName});
+                }
+                if (list.size() > 0) {
+                    return ${subclassName}Mapper.insertBatch(list) > 0;
+                }
             }
+            return true;
         }
-        return true;
-    }
+
     #end
 }

+ 15 - 1
eco-modules/generator/src/main/resources/vm/java/vo-import.java.vm

@@ -3,6 +3,7 @@ package ${packageName}.domain.vo;
 #foreach ($import in $importList)
 import ${import};
 #end
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import org.eco.common.excel.annotation.ExcelDictFormat;
 import org.eco.common.excel.convert.ExcelDictConvert;
@@ -20,6 +21,7 @@ import lombok.NoArgsConstructor;
 
 @Data
 @NoArgsConstructor
+@ExcelIgnoreUnannotated
 public class ${ClassName}ImportVo implements Serializable {
 
     @Serial
@@ -35,6 +37,12 @@ public class ${ClassName}ImportVo implements Serializable {
  #end
 #end
 
+    /**
+     * 机型
+     */
+    @ExcelProperty(value = "上级名称" )
+    private String parentName;
+
     #foreach ($column in $columns)
 #if($column.isPk!='1')
 #if(!$table.isSuperColumn($column.javaField)  || ($column.javaField.equals("parentId"))  || ($column.javaField.equals("orderNum")))
@@ -65,5 +73,11 @@ public class ${ClassName}ImportVo implements Serializable {
 #end
 #end
 #end
-
+#if($table.tree)
+    /**
+     * 显示顺序
+     */
+    @ExcelProperty(value = "显示顺序")
+    private Integer orderNum;
+#end
 }

+ 54 - 41
eco-modules/generator/src/main/resources/vm/java/vo.java.vm

@@ -8,6 +8,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import org.eco.common.excel.annotation.ExcelDictFormat;
 import org.eco.common.excel.convert.ExcelDictConvert;
+import com.eco.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.annotation.FieldMapper;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -29,53 +31,64 @@ import org.eco.common.orm.core.domain.TreeEntity;
  * @author ${author}
  * @date ${datetime}
  */
-#if($table.crud || $table.sub)
-    #set($Entity="BaseEntity")
-#elseif($table.tree)
-    #set($Entity="TreeEntity")
-#end
-@Data
-@ExcelIgnoreUnannotated
-@EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = ${ClassName}.class)
-public class ${ClassName}Vo extends ${Entity} implements Serializable {
+    #if($table.crud || $table.sub)
+        #set($Entity="BaseEntity")
+    #elseif($table.tree)
+        #set($Entity="TreeEntity")
+    #end
+    @Data
+    @ExcelIgnoreUnannotated
+    @EqualsAndHashCode(callSuper = true)
+    @AutoMapper(target = ${ClassName}.class)
+    public class ${ClassName}Vo extends ${Entity} implements Serializable {
 
-@Serial
-private static final long serialVersionUID = 1L;
+    @Serial
+    private static final long serialVersionUID = 1L;
 
-#foreach ($column in $columns)
-    #if(!$table.isSuperColumn($column.javaField))
-    /** $column.columnComment */
-    #if($column.list)
-    #set($parentheseIndex=$column.columnComment.indexOf("("))
-    #if($parentheseIndex != -1)
-        #set($comment=$column.columnComment.substring(0, $parentheseIndex))
-    #else
-        #set($comment=$column.columnComment)
-    #end
-    #if(${column.dictType} && ${column.dictType} != '')
-    @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "${column.dictType}")
-    #elseif($parentheseIndex != -1)
-    @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(readConverterExp = "$column.readConverterExp()")
-    #else
-    @ExcelProperty(value = "${comment}")
-    #end
-    private $column.javaType $column.javaField;
+    #foreach ($column in $columns)
+        #if(!$table.isSuperColumn($column.javaField))
+            /** $column.columnComment */
+            #if($column.list)
+                #set($parentheseIndex=$column.columnComment.indexOf("("))
+                #if($parentheseIndex != -1)
+                    #set($comment=$column.columnComment.substring(0, $parentheseIndex))
+                #else
+                    #set($comment=$column.columnComment)
+                #end
+                #if(${column.dictType} && ${column.dictType} != '')
+                @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class)
+                @ExcelDictFormat(dictType = "${column.dictType}")
+                #elseif($parentheseIndex != -1)
+                @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class)
+                @ExcelDictFormat(readConverterExp = "$column.readConverterExp()")
+                #else
+                @ExcelProperty(value = "${comment}")
+                #end
+            private $column.javaType $column.javaField;
 
-    #else
-    @ExcelProperty(value = "${column.columnComment}")
-    private $column.javaType $column.javaField;
+            #else
+                @ExcelProperty(value = "${column.columnComment}")
+                private $column.javaType $column.javaField;
 
+            #end
+        #end
     #end
+
+    #if($table.sub)
+        /** $table.subTable.functionName信息 */
+        @RelationOneToMany(selfField = "${pkColumn.javaField}", targetField = "${pkColumn.javaField}")
+        private List<${subClassName}> ${subclassName}List;
     #end
-#end
+    /**
+     * 创建人名称
+     */
+    @FieldMapper(type = MapperConstant.USER_ID_TO_NAME, mapper = "createBy")
+    private String createByName;
 
-#if($table.sub)
-    /** $table.subTable.functionName信息 */
-    @RelationOneToMany(selfField = "${pkColumn.javaField}", targetField = "${pkColumn.javaField}")
-    private List<${subClassName}> ${subclassName}List;
-#end
+    /**
+     * 创建人名称
+     */
+    @FieldMapper(type = MapperConstant.USER_ID_TO_NAME, mapper = "updateBy")
+    private String updateByName;
 
 }

+ 12 - 12
eco-modules/generator/src/main/resources/vm/sql/dm8/sql.vm

@@ -1,19 +1,19 @@
 -- 菜单 SQL
-insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[0]}, '${functionName}', ${parentMenuId}, '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '', 1, now(), 1, null, '${functionName}菜单');
+insert into als.sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values(${table.menuIds[0]}, '${functionName}', ${parentMenuId}, '1', '${businessName}', '${moduleName}/${businessName}/index', 0, 1, 'C', '1', '0', '${permissionPrefix}:list', '', 1, now(), 1, null, '${functionName}菜单');
 
 -- 按钮 SQL
-insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query',        '', 1, now(), 1, null, '');
+insert into als.sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1',  '', '', 0, 1, 'F', '1', '1', '${permissionPrefix}:query',        '', 1, now(), 1, null, '');
 
-insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add',          '', 1, now(), 1, null, '');
+insert into als.sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2',  '', '', 0, 1, 'F', '1', '1', '${permissionPrefix}:add',          '', 1, now(), 1, null, '');
 
-insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit',         '', 1, now(), 1, null, '');
+insert into als.sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3',  '', '', 0, 1, 'F', '1', '1', '${permissionPrefix}:edit',         '', 1, now(), 1, null, '');
 
-insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove',       '', 1, now(), 1, null, '');
+insert into als.sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4',  '', '', 0, 1, 'F', '1', '1', '${permissionPrefix}:remove',       '', 1, now(), 1, null, '');
 
-insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export',       '', 1, now(), 1, null, '');
+insert into als.sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5',  '', '', 0, 1, 'F', '1', '1', '${permissionPrefix}:export',       '', 1, now(), 1, null, '');

+ 6 - 6
eco-modules/generator/src/main/resources/vm/sql/mysql/sql.vm

@@ -1,19 +1,19 @@
 -- 菜单 SQL
 insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[0]}, '${functionName}', ${parentMenuId}, '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '', 1, sysdate(), 1, null, '${functionName}菜单');
+values(${table.menuIds[0]}, '${functionName}', ${parentMenuId}, '1', '${businessName}', '${moduleName}/${businessName}/index', 0, 1, 'C', '1', '1', '${permissionPrefix}:list', '', 1, sysdate(), 1, null, '${functionName}菜单');
 
 -- 按钮 SQL
 insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query',        '', 1, sysdate(), 1, null, '');
+values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1',  '', '', 0, 1, 'F', '1', '1', '${permissionPrefix}:query',        '', 1, sysdate(), 1, null, '');
 
 insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add',          '', 1, sysdate(), 1, null, '');
+values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2',  '', '', 0, 1, 'F', '1', '1', '${permissionPrefix}:add',          '', 1, sysdate(), 1, null, '');
 
 insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit',         '', 1, sysdate(), 1, null, '');
+values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3',  '', '', 0, 1, 'F', '1', '1', '${permissionPrefix}:edit',         '', 1, sysdate(), 1, null, '');
 
 insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove',       '', 1, sysdate(), 1, null, '');
+values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4',  '', '', 0, 1, 'F', '1', '1', '${permissionPrefix}:remove',       '', 1, sysdate(), 1, null, '');
 
 insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export',       '', 1, sysdate(), 1, null, '');
+values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5',  '', '', 0, 1, 'F', '1', '1', '${permissionPrefix}:export',       '', 1, sysdate(), 1, null, '');

+ 6 - 6
eco-modules/generator/src/main/resources/vm/sql/postgresql/sql.vm

@@ -1,19 +1,19 @@
 -- 菜单 SQL
 insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[0]}, '${functionName}', ${parentMenuId}, '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '', 1, now(), 1, null, '${functionName}菜单');
+values(${table.menuIds[0]}, '${functionName}', ${parentMenuId}, '1', '${businessName}', '${moduleName}/${businessName}/index', 0, 1, 'C', '1', '1', '${permissionPrefix}:list', '', 1, now(), 1, null, '${functionName}菜单');
 
 -- 按钮 SQL
 insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query',        '', 1, now(), 1, null, '');
+values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1',  '', '', 0, 1, 'F', '1', '1', '${permissionPrefix}:query',        '', 1, now(), 1, null, '');
 
 insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add',          '', 1, now(), 1, null, '');
+values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2',  '', '', 0, 0, 'F', '1', '1', '${permissionPrefix}:add',          '', 1, now(), 1, null, '');
 
 insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit',         '', 1, now(), 1, null, '');
+values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3',  '', '', 0, 0, 'F', '1', '1', '${permissionPrefix}:edit',         '', 1, now(), 1, null, '');
 
 insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove',       '', 1, now(), 1, null, '');
+values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4',  '', '', 0, 0, 'F', '1', '1', '${permissionPrefix}:remove',       '', 1, now(), 1, null, '');
 
 insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5',  '', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export',       '', 1, now(), 1, null, '');
+values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5',  '', '', 0, 0, 'F', '1', '1', '${permissionPrefix}:export',       '', 1, now(), 1, null, '');

+ 135 - 74
eco-modules/generator/src/main/resources/vm/vue/index-tree.vue.vm

@@ -3,16 +3,22 @@
         <ProTable ref="proTable" :pagination="false" :columns="columns" row-key="${pkColumn.javaField}" :request-api="list${BusinessName}Api" :init-param="initParam" :data-callback="dataCallback">
             <!-- 表格 header 按钮 -->
             <template #tableHeader>
-                <el-button type="primary" v-auth="['${moduleName}:${businessName}:add']" :icon="CirclePlus" @click="openDialog(1, '${functionName}新增')">
+                <el-button type="primary" v-auth="['${moduleName}:${businessName}:add']" icon="CirclePlus" @click="openDialog(1, '${functionName}新增')">
                     新增
                 </el-button>
+                <el-button type="primary" v-auth="['${moduleName}:${businessName}:import']" icon="Upload" plain @click="batchAdd">
+                    导入
+                </el-button>
+                <el-button type="primary" v-auth="['${moduleName}:${businessName}:export']" icon="Download" plain @click="downloadFile">
+                    导出
+                </el-button>
             </template>
             <!-- 表格操作 -->
             <template #operation="scope">
                 <el-button
                     type="primary"
                     link
-                    :icon="EditPen"
+                    icon="EditPen"
                     v-auth="['${moduleName}:${businessName}:edit']"
                     @click="openDialog(2, '${functionName}编辑', scope.row)"
                 >
@@ -22,66 +28,93 @@
                     type="primary"
                     link
                     v-auth="['${moduleName}:${businessName}:add']"
-                    :icon="CirclePlus"
+                    icon="CirclePlus"
                     @click="openDialog(4, '${functionName}新增', scope.row)"
                 >
                     新增
                 </el-button>
                 <el-button type="primary"
                            link
-                           v-if="scope.row.${treeParentCode} != 0"
-                           :icon="Delete" v-auth="['${moduleName}:${businessName}:remove']"
+                           icon="Delete" v-auth="['${moduleName}:${businessName}:remove']"
                            @click="delete${BusinessName}(scope.row)"
                 >
                     删除
                 </el-button>
             </template>
         </ProTable>
-        <FormDialog ref="formDialogRef" />
+        <FormDialog ref="formDialogRef" :items-options="itemsOptions" :model="model"/>
         <ImportExcel ref="dialogRef" />
+        <TaskDialog ref="taskDialogRef" />
     </div>
 </template>
 
 <script setup lang="tsx" name="${BusinessName}">
-    import { ref, reactive } from 'vue'
     import { useHandleData } from '@/hooks/useHandleData'
-    import ProTable from '@/components/ProTable/index.vue'
+    import { ElMessageBox } from 'element-plus'
     import ImportExcel from '@/components/ImportExcel/index.vue'
+    import TaskDialog from '@/components/TaskDialog/index.vue'
     import FormDialog from '@/components/FormDialog/index.vue'
     import { ProTableInstance, ColumnProps } from '@/components/ProTable/interface'
-    import { Delete, EditPen, CirclePlus } from '@element-plus/icons-vue'
     import { handleTree } from '@/utils/common'
     import {
         list${BusinessName}Api,
         del${BusinessName}Api,
         add${BusinessName}Api,
         update${BusinessName}Api,
+        importTemplateApi,
+        import${BusinessName}DataApi,
+        export${BusinessName}Api,
         get${BusinessName}Api
     } from '@/api/modules/${moduleName}/${businessName}'
         #if(${dicts} != '')
-        import { getDictsApi } from '@/api/modules/system/dictData'
+            #set($dictsNoSymbol=$dicts.replace("'", ""))
+        const { proxy } = getCurrentInstance() as ComponentInternalInstance
+        const { ${dictsNoSymbol} } = toRefs<any>(proxy?.useDict(${dicts}));
         #end
 
     // ProTable 实例
     const proTable = ref<ProTableInstance>()
-
+    // 表单model
+    const model = ref({})
     // 如果表格需要初始化请求参数,直接定义传给 ProTable (之后每次请求都会自动带上该参数,此参数更改之后也会一直带上,改变此参数会自动刷新表格数据)
-    const initParam = reactive({ type: 1 })
+    const initParam = reactive({})
     const ${businessName}Options = ref<any[]>([])
     // dataCallback 是对于返回的表格数据做处理,如果你后台返回的数据不是 list && total && pageNum && pageSize 这些字段,可以在这里进行处理成这些字段
     const dataCallback = (res: any) => {
         const data = handleTree(res, '${pkColumn.javaField}')
-            ${businessName}Options.value = data
-        setFieldList()
+            ${businessName}Options.value = Object.assign([], data)
+            ${businessName}Options.value.push({ ${pkColumn.javaField}: 0, ${treeName}: '顶层', children: null })
+        setItemsOptions()
         return data
     }
 
     // 删除${functionName}信息
     const delete${BusinessName} = async (params: any) => {
-        await useHandleData(del${BusinessName}Api, { id: [params.${pkColumn.javaField}] }, `删除【${params.id}】${functionName}`)
+        await useHandleData(del${BusinessName}Api, params.${pkColumn.javaField}, '删除【' + params.${treeName} + '】${functionName}')
         proTable.value?.getTableList()
     }
 
+    const taskDialogRef = ref<InstanceType<typeof TaskDialog> | null>(null)
+    // 导出${functionName}列表
+    const downloadFile = async () => {
+        ElMessageBox.confirm('确认导出${functionName}数据?', '温馨提示', { type: 'warning' }).then(async () => {
+            export${BusinessName}Api(proTable.value?.searchParam)
+            taskDialogRef.value?.openExportDialog()
+        })
+    }
+
+    // 批量添加${functionName}
+    const dialogRef = ref<InstanceType<typeof ImportExcel> | null>(null)
+    const batchAdd = () => {
+        const params = {
+            title: '${functionName}',
+            tempApi: importTemplateApi,
+            importApi: import${BusinessName}DataApi,
+            getTableList: proTable.value?.getTableList
+        }
+        dialogRef.value?.acceptParams(params)
+    }
+
     const formDialogRef = ref<InstanceType<typeof FormDialog> | null>(null)
     // 打开弹框的功能
     const openDialog = async (type: number, title: string, row?: any) => {
@@ -90,23 +123,22 @@
             res = await get${BusinessName}Api(row?.${pkColumn.javaField} || null)
         }
         // 重置表单项
-        setFieldList()
+        setItemsOptions()
         if (row?.${treeParentCode} == 0 && type == 2) {
-            fieldList.splice(0, 1)
+            itemsOptions.splice(0, 1)
         }
         // 增加子节点
-        if (type == 4 && row?.${treeParentCode}) {
+        if (type == 4) {
             res.data = {
-                parentId: row?.${treeParentCode}
+                parentId: row?.${pkColumn.javaField}
             }
         }
+        model.value = type == 1 ? {} : res.data
         const params = {
             title,
             width: 580,
             isEdit: type !== 3,
-            fieldList: fieldList,
-            model: type == 1 ? {} : res.data,
-            api: type == 1 || type == 4 ? add${BusinessName}Api : update${BusinessName}Api,
+            api: [1, 4].includes(type) ? add${BusinessName}Api : update${BusinessName}Api,
             getTableList: proTable.value?.getTableList
         }
         formDialogRef.value?.openDialog(params)
@@ -138,19 +170,30 @@
                     #end
                     width: 120
                 },
-            #elseif($column.list && "" != $column.dictType)
+            #elseif($column.list && $column.htmlType == "input-number")
+                {
+                    prop: '${javaField}',
+                    label: '${comment}',
+                    #if($column.query)
+                        search: {
+                            el: 'input',
+                        },
+                    #else
+                    #end
+                    width: 120
+                },
+            #elseif($column.list && $column.dictType && "" != $column.dictType)
                 {
                     prop: '${javaField}',
                     label: '${comment}',
                     tag: true,
-                    enum: () => getDictsApi('$column.dictType'),
+                    enum: ${businessName}Options,
                     #if($column.query)
                         search: {
                             el: 'tree-select'
                         },
                     #else
                     #end
-                    fieldNames: { label: 'dictLabel', value: 'dictValue' }
                 },
             #elseif($column.list && "" != $javaField)
                 {
@@ -168,11 +211,10 @@
         #end
         { prop: 'operation', label: '操作', width: 230, fixed: 'right' }
     ])
-
     // 表单配置项
-    let fieldList: Form.FieldItem[] = []
-    const setFieldList = () => {
-        fieldList = [
+    let itemsOptions = reactive<ProForm.ItemsOptions[]>([])
+    const setItemsOptions = () => {
+        itemsOptions = [
             #foreach($column in $columns)
                 #set($field=$column.javaField)
                 #if($column.insert && !$column.pk)
@@ -184,112 +226,131 @@
                             #set($comment=$column.columnComment)
                         #end
                         #set($dictType=$column.dictType)
-                        #if("" != $treeParentCode && $column.javaField == $treeParentCode)
+                        #if(${field} == "parentId")
                             {
                                 label: '${comment}',
-                                field: '${field}',
-                                enum: ${businessName}Options.value,
-                                type: 'select-tree',
+                                prop: '${field}',
                                 #if($column.required)
-                                    rules: [{required: true, message: '${comment}不能为空', trigger: 'change'}],
+                                    rules: [{required: true, message: '${comment}不能为空', trigger: 'blur'}],
                                 #else
                                 #end
-                                options: {
-                                    labelKey: '${treeName}',
-                                    valueKey: '${treeParentCode}',
-                                    children: 'children'
-                                },
-                                placeholder: '请选择${comment}'
+                                compOptions: {
+                                    elTagName: 'tree-select',
+                                    enum: ${businessName}Options.value,
+                                    valueKey: '${pkColumn.javaField}',
+                                    checkStrictly: true,
+                                    props: {
+                                        value: '${pkColumn.javaField}',
+                                        label: '${treeName}'
+                                    },
+                                    placeholder: '请选择${comment}'
+                                }
                             },
                         #elseif($column.htmlType == "input")
                             {
                                 label: '${comment}',
-                                field: '${field}',
+                                prop: '${field}',
+                                #if($column.required)
+                                    rules: [{required: true, message: '${comment}不能为空', trigger: 'blur'}],
+                                #else
+                                #end
+                                compOptions: {
+                                    placeholder: '请输入${comment}'
+                                }
+                            },
+                        #elseif($column.htmlType == "input-number")
+                            {
+                                label: '${comment}',
+                                prop: '${field}',
                                 #if($column.required)
                                     rules: [{required: true, message: '${comment}不能为空', trigger: 'blur'}],
                                 #else
                                 #end
-                                placeholder: '请输入${comment}'
+                                compOptions: {
+                                    elTagName: 'input-number',
+                                }
                             },
                         #elseif($column.htmlType == "select" && "" != $dictType)
                             {
                                 label: '${comment}',
-                                field: '${field}',
-                                enum: () => getDictsApi('$dictType'),
-                                type: 'select',
+                                prop: '${field}',
                                 #if($column.required)
                                     rules: [{required: true, message: '${comment}不能为空', trigger: 'change'}],
                                 #else
                                 #end
-                                options: {
-                                    labelKey: 'dictLabel',
-                                    valueKey: 'dictValue'
-                                },
-                                placeholder: '请选择${comment}'
+                                compOptions: {
+                                    elTagName: 'select',
+                                    enum: ${column.dictType}.value,
+                                    placeholder: '请选择${comment}'
+                                }
                             },
                         #elseif($column.htmlType == "checkbox" && "" != $dictType)
                             {
                                 label: '${comment}',
-                                field: '${field}',
-                                enum: () => getDictsApi('$dictType'),
-                                type: 'checkbox',
+                                prop: '${field}',
                                 #if($column.required)
                                     rules: [{required: true, message: '${comment}不能为空', trigger: 'change'}],
                                 #else
                                 #end
-                                options: {
-                                    labelKey: 'dictLabel',
-                                    valueKey: 'dictValue'
-                                },
-                                placeholder: '请选择${comment}'
+                                compOptions: {
+                                    elTagName: 'checkbox-group',
+                                    enum: ${column.dictType}.value,
+                                    placeholder: '请选择${comment}'
+                                }
                             },
                         #elseif($column.htmlType == "radio" && "" != $dictType)
                             {
                                 label: '${comment}',
-                                field: '${field}',
-                                enum: () => getDictsApi('$dictType'),
-                                type: 'radio',
+                                prop: '${field}',
                                 #if($column.required)
                                     rules: [{required: true, message: '${comment}不能为空', trigger: 'change'}],
                                 #else
                                 #end
-                                options: {
-                                    labelKey: 'dictLabel',
-                                    valueKey: 'dictValue'
-                                },
-                                placeholder: '请选择${comment}'
+                                compOptions: {
+                                    elTagName: 'radio-group',
+                                    enum: ${column.dictType}.value,
+                                    placeholder: '请选择${comment}'
+                                }
                             },
                         #elseif($column.htmlType == "datetime")
                             {
                                 label: '${comment}',
-                                field: '${field}',
-                                type: 'date-picker',
+                                prop: '${field}',
                                 #if($column.required)
                                     rules: [{required: true, message: '${comment}不能为空', trigger: 'change'}],
                                 #else
                                 #end
-                                placeholder: '请选择${comment}'
+                                compOptions: {
+                                    elTagName: 'date-picker',
+                                    type: 'date',
+                                    placeholder: '请选择${comment}'
+                                }
                             },
                         #elseif($column.htmlType == "textarea")
                             {
                                 label: '${comment}',
-                                field: '${field}',
-                                type: 'textarea',
+                                prop: '${field}',
                                 #if($column.required)
                                     rules: [{required: true, message: '${comment}不能为空', trigger: 'blur'}],
                                 #else
                                 #end
-                                placeholder: '请输入内容'
+                                compOptions: {
+                                    type: 'textarea',
+                                    clearable: true,
+                                    placeholder: '请输入内容'
+                                }
                             },
                         #else
                             {
                                 label: '${comment}',
-                                field: '${field}',
+                                prop: '${field}',
                                 #if($column.required)
                                     rules: [{required: true, message: '${comment}不能为空', trigger: 'blur'}],
                                 #else
                                 #end
-                                placeholder: '请输入${comment}'
+                                compOptions: {
+                                    placeholder: '请输入${comment}'
+                                }
                             },
                         #end
                     #end

+ 9 - 6
eco-modules/generator/src/main/resources/vm/vue/index.vue.vm

@@ -50,14 +50,15 @@
   </ProTable>
   <FormDialog ref="formDialogRef" :items-options="itemsOptions" :model="model"/>
   <ImportExcel ref="dialogRef" />
+  <TaskDialog ref="taskDialogRef" />
 </div>
 </template>
 
 <script setup lang="tsx" name="${BusinessName}">
 import { useHandleData } from '@/hooks/useHandleData'
-import { useDownload } from '@/hooks/useDownload'
 import { ElMessageBox } from 'element-plus'
 import ImportExcel from '@/components/ImportExcel/index.vue'
+import TaskDialog from '@/components/TaskDialog/index.vue'
 import FormDialog from '@/components/FormDialog/index.vue'
 import { ProTableInstance, ColumnProps } from '@/components/ProTable/interface'
 import {
@@ -93,11 +94,13 @@ const batchDelete = async (ids: string[]) => {
   proTable.value?.getTableList()
 }
 
+const taskDialogRef = ref<InstanceType<typeof TaskDialog> | null>(null)
 // 导出${functionName}列表
 const downloadFile = async () => {
-  ElMessageBox.confirm('确认导出${functionName}数据?', '温馨提示', { type: 'warning' }).then(() =>
-    useDownload(export${BusinessName}Api, '${functionName}列表', proTable.value?.searchParam)
-  )
+  ElMessageBox.confirm('确认导出${functionName}数据?', '温馨提示', { type: 'warning' }).then(async () => {
+    export${BusinessName}Api(proTable.value?.searchParam)
+    taskDialogRef.value?.openExportDialog()
+  })
 }
 
 // 批量添加${functionName}
@@ -158,7 +161,7 @@ const columns = reactive<ColumnProps<any>[]>([
     #end
     width: 120
   },
-        #elseif($column.list && "" != $column.dictType)
+        #elseif($column.list && $column.dictType && "" != $column.dictType)
   {
     prop: '${javaField}',
     label: '${comment}',
@@ -166,7 +169,7 @@ const columns = reactive<ColumnProps<any>[]>([
     enum: ${column.dictType},
     #if($column.query)
     search: {
-      el: 'tree-select'
+      el: 'select'
     },
     #else
     #end

+ 2 - 2
eco-modules/system/src/main/java/org/eco/system/domain/vo/ImportExportVo.java

@@ -1,8 +1,8 @@
 package org.eco.system.domain.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.phm.common.mapper.annotation.FieldMapper;
-import com.phm.common.mapper.constant.MapperConstant;
+import com.eco.common.mapper.annotation.FieldMapper;
+import com.eco.common.mapper.constant.MapperConstant;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import org.eco.system.domain.ImportExport;

+ 3 - 2
eco-modules/system/src/main/java/org/eco/system/service/IImportExportService.java

@@ -1,5 +1,6 @@
 package org.eco.system.service;
 
+import org.eco.common.core.core.domain.model.LoginUser;
 import org.eco.common.core.core.page.PageResult;
 import org.eco.common.excel.entity.ExcelResultRes;
 import org.eco.common.orm.core.service.IBaseService;
@@ -51,10 +52,10 @@ public interface IImportExportService extends IBaseService<ImportExport> {
     /**
      * 新增导入导出日志
      *
-     * @param resultRes 导入导出日志
+     * @param result 导入导出日志
      * @param type      导入导出类型
      * @return 结果:true 操作成功,false 操作失败
      */
-    boolean saveInfo(ExcelResultRes resultRes, String type);
+    boolean saveInfo(ExcelResultRes result, LoginUser loginUser, String type);
 
 }

+ 9 - 11
eco-modules/system/src/main/java/org/eco/system/service/impl/ImportExportServiceImpl.java

@@ -2,8 +2,10 @@ package org.eco.system.service.impl;
 
 import com.mybatisflex.core.paginate.Page;
 import com.mybatisflex.core.query.QueryWrapper;
+import org.eco.common.core.core.domain.model.LoginUser;
 import org.eco.common.core.core.page.PageResult;
 import org.eco.common.core.utils.MapstructUtils;
+import org.eco.common.core.utils.bean.BeanUtils;
 import org.eco.common.excel.entity.ExcelResultRes;
 import org.eco.common.orm.core.page.PageQuery;
 import org.eco.common.orm.core.service.impl.BaseServiceImpl;
@@ -13,7 +15,6 @@ import org.eco.system.domain.vo.ImportExportVo;
 import org.eco.system.mapper.ImportExportMapper;
 import org.eco.system.service.IImportExportService;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -93,16 +94,13 @@ public class ImportExportServiceImpl extends BaseServiceImpl<ImportExportMapper,
     }
 
     @Override
-    @Transactional
-    public boolean saveInfo(ExcelResultRes resultRes, String type) {
-        ImportExportBo importExportBo = new ImportExportBo();
-        importExportBo.setOssId(resultRes.getOssId());
-        importExportBo.setUrl(resultRes.getUrl());
-        importExportBo.setType(type); // 导入
-        importExportBo.setStatus(resultRes.getStatus());
-        importExportBo.setName(resultRes.getName());
-        importExportBo.setLogInfo(resultRes.getLogInfo());
-        ImportExport importExport = MapstructUtils.convert(importExportBo, ImportExport.class);
+    public boolean saveInfo(ExcelResultRes result, LoginUser loginUser, String type) {
+        ImportExportBo bo = new ImportExportBo();
+        BeanUtils.copyProperties(result, bo);
+        bo.setUpdateBy(loginUser.getUserId());
+        bo.setCreateBy(loginUser.getUserId());
+        bo.setType(type);
+        ImportExport importExport = MapstructUtils.convert(bo, ImportExport.class);
         return this.save(importExport);//使用全局配置的雪花算法主键生成器生成ID值
     }
 

+ 8 - 19
eco-modules/system/src/main/java/org/eco/system/service/impl/SysUserServiceImpl.java

@@ -17,7 +17,6 @@ import org.eco.common.core.service.UserService;
 import org.eco.common.core.utils.MapstructUtils;
 import org.eco.common.core.utils.SpringUtils;
 import org.eco.common.core.utils.StringUtils;
-import org.eco.common.core.utils.bean.BeanUtils;
 import org.eco.common.excel.entity.ExcelResultRes;
 import org.eco.common.excel.service.IExcelService;
 import org.eco.common.orm.core.page.PageQuery;
@@ -26,7 +25,6 @@ import org.eco.common.security.utils.LoginHelper;
 import org.eco.common.tenant.helper.TenantHelper;
 import org.eco.system.domain.SysUser;
 import org.eco.system.domain.SysUserPost;
-import org.eco.system.domain.bo.ImportExportBo;
 import org.eco.system.domain.bo.SysUserBo;
 import org.eco.system.domain.vo.SysPostVo;
 import org.eco.system.domain.vo.SysRoleVo;
@@ -345,11 +343,11 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserMapper, SysUser>
      */
     @Override
     public boolean checkUserNameUnique(SysUserBo userBo) {
-        Long userId = ObjectUtil.isNull(userBo.getUserId()) ? -1L : userBo.getUserId();
+        long userId = ObjectUtil.isNull(userBo.getUserId()) ? -1L : userBo.getUserId();
         QueryWrapper queryWrapper = query().where(SYS_USER.USER_NAME.eq(userBo.getUserName()))
             .and(SYS_USER.DEL_FLAG.eq(0));
         SysUser info = this.getOne(queryWrapper);
-        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
+        if (StringUtils.isNotNull(info) && info.getUserId() != userId) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -363,11 +361,11 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserMapper, SysUser>
      */
     @Override
     public boolean checkPhoneUnique(SysUserBo user) {
-        Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
+        long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
         QueryWrapper queryWrapper = query().where(SYS_USER.PHONENUMBER.eq(user.getPhonenumber()))
             .and(SYS_USER.DEL_FLAG.eq(0));
         SysUser info = this.getOne(queryWrapper);
-        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
+        if (StringUtils.isNotNull(info) && info.getUserId() != userId) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -454,6 +452,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserMapper, SysUser>
     public boolean insertUser(SysUserBo userBo) {
         SysUser user = MapstructUtils.convert(userBo, SysUser.class);
         boolean saved;
+        assert user != null;
         if (ObjectUtil.isNotNull(user.getTenantId())) {
             // 不会覆盖租户
             saved = TenantHelper.ignore(() -> this.save(user));
@@ -650,7 +649,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserMapper, SysUser>
 
     @Override
     public String selectNicknameById(Long userId) {
-        SysUserVo sysUser = userMapper.selectOneWithRelationsByQueryAs(query().where(SYS_USER.NICK_NAME.eq(userId)),SysUserVo.class);
+        SysUserVo sysUser = userMapper.selectOneWithRelationsByQueryAs(query().where(SYS_USER.NICK_NAME.eq(userId)), SysUserVo.class);
         return ObjectUtil.isNull(sysUser) ? null : sysUser.getNickName();
     }
 
@@ -687,12 +686,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserMapper, SysUser>
         } catch (IOException e) {
             throw new RuntimeException(e);
         }
-        ImportExportBo bo = new ImportExportBo();
-        BeanUtils.copyProperties(result, bo);
-        bo.setUpdateBy(loginUser.getUserId());
-        bo.setCreateBy(loginUser.getUserId());
-        bo.setType("0");
-        boolean flag = importExportService.insert(bo);
+        boolean flag = importExportService.saveInfo(result, loginUser, "0");
         if (flag) {
             log.info("异步导入日志写入成功");
         }
@@ -701,12 +695,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserMapper, SysUser>
     @Override
     public void asyncExport(List<SysUserExportVo> listVo, String sheetName, LoginUser loginUser) {
         ExcelResultRes result = excelService.exportExcel(listVo, sheetName, SysUserExportVo.class);
-        ImportExportBo bo = new ImportExportBo();
-        BeanUtils.copyProperties(result, bo);
-        bo.setUpdateBy(loginUser.getUserId());
-        bo.setCreateBy(loginUser.getUserId());
-        bo.setType("1");
-        boolean flag = importExportService.insert(bo);
+        boolean flag = importExportService.saveInfo(result, loginUser, "1");
         if (flag) {
             log.info("异步导出日志写入成功");
         }

+ 0 - 1
eco-start/src/main/java/org/eco/web/service/impl/PasswordAuthStrategy.java

@@ -123,5 +123,4 @@ public class PasswordAuthStrategy implements IAuthStrategy {
         }
         return user;
     }
-
 }

+ 11 - 11
eco-start/src/main/resources/db/dm/V1_0_0_0__sys-init-ddl.sql → eco-start/src/main/resources/db/dm/V1_0_0_1__sys-init-ddl.sql

@@ -101,7 +101,7 @@ CREATE TABLE "eco"."sys_client"
                 NULL,
     "version" INT DEFAULT 0
                 NULL,
-    "del_flag" SMALLINT DEFAULT 1
+    "del_flag" SMALLINT DEFAULT 0
                 NULL,
     "create_by" BIGINT NULL,
     "create_time" TIMESTAMP(6) NULL,
@@ -153,7 +153,7 @@ CREATE TABLE "eco"."sys_dept"
                      NULL,
     "version" INT DEFAULT 0
                      NULL,
-    "del_flag" SMALLINT DEFAULT 1
+    "del_flag" SMALLINT DEFAULT 0
                      NULL,
     "create_by" BIGINT NULL,
     "create_time" TIMESTAMP(6) NULL,
@@ -437,7 +437,7 @@ CREATE TABLE "eco"."sys_role"
     "status" CHAR(1) NULL,
     "version" INT DEFAULT 0
         NULL,
-    "del_flag" BIT DEFAULT 1
+    "del_flag" BIT DEFAULT 0
         NULL,
     "create_by" BIGINT NULL,
     "create_time" TIMESTAMP(6) NULL,
@@ -505,7 +505,7 @@ CREATE TABLE "eco"."sys_tenant_package"
                         NULL,
     "version" INT DEFAULT 0
                         NULL,
-    "del_flag" BIT DEFAULT 1
+    "del_flag" BIT DEFAULT 0
                         NULL,
     "create_by" BIGINT NULL,
     "create_time" TIMESTAMP(6) NULL,
@@ -534,7 +534,7 @@ CREATE TABLE "eco"."sys_user"
         NULL,
     "version" INT DEFAULT 0
         NULL,
-    "del_flag" BIT DEFAULT 1
+    "del_flag" BIT DEFAULT 0
         NULL,
     "login_ip" VARCHAR(128) DEFAULT ''
         NULL,
@@ -737,7 +737,7 @@ COMMENT ON COLUMN "eco"."sys_client"."status" IS '状态(1正常 0停用)';
 
 COMMENT ON COLUMN "eco"."sys_client"."version" IS '乐观锁';
 
-COMMENT ON COLUMN "eco"."sys_client"."del_flag" IS '删除标志(1代表存在 0代表删除)';
+COMMENT ON COLUMN "eco"."sys_client"."del_flag" IS '删除标志(1代表已删除 0代表存在)';
 
 COMMENT ON COLUMN "eco"."sys_client"."create_by" IS '创建者';
 
@@ -797,7 +797,7 @@ COMMENT ON COLUMN "eco"."sys_dept"."status" IS '部门状态(1正常 0停用
 
 COMMENT ON COLUMN "eco"."sys_dept"."version" IS '乐观锁';
 
-COMMENT ON COLUMN "eco"."sys_dept"."del_flag" IS '删除标志(1代表存在 0代表删除)';
+COMMENT ON COLUMN "eco"."sys_dept"."del_flag" IS '删除标志(1代表已删除 0代表存在)';
 
 COMMENT ON COLUMN "eco"."sys_dept"."create_by" IS '创建者';
 
@@ -1133,7 +1133,7 @@ COMMENT ON COLUMN "eco"."sys_role"."status" IS '角色状态(1正常 0停用
 
 COMMENT ON COLUMN "eco"."sys_role"."version" IS '乐观锁';
 
-COMMENT ON COLUMN "eco"."sys_role"."del_flag" IS '删除标志(1代表存在 0代表删除)';
+COMMENT ON COLUMN "eco"."sys_role"."del_flag" IS '删除标志(1代表已删除 0代表存在)';
 
 COMMENT ON COLUMN "eco"."sys_role"."create_by" IS '创建者';
 
@@ -1187,7 +1187,7 @@ COMMENT ON COLUMN "eco"."sys_tenant"."status" IS '租户状态(1正常 0停用
 
 COMMENT ON COLUMN "eco"."sys_tenant"."version" IS '乐观锁';
 
-COMMENT ON COLUMN "eco"."sys_tenant"."del_flag" IS '删除标志(1代表存在 0代表删除)';
+COMMENT ON COLUMN "eco"."sys_tenant"."del_flag" IS '删除标志(1代表已删除 0代表存在)';
 
 COMMENT ON COLUMN "eco"."sys_tenant"."create_by" IS '创建者';
 
@@ -1211,7 +1211,7 @@ COMMENT ON COLUMN "eco"."sys_tenant_package"."status" IS '状态(0正常 1停
 
 COMMENT ON COLUMN "eco"."sys_tenant_package"."version" IS '乐观锁';
 
-COMMENT ON COLUMN "eco"."sys_tenant_package"."del_flag" IS '删除标志(1代表存在 0代表删除)';
+COMMENT ON COLUMN "eco"."sys_tenant_package"."del_flag" IS '删除标志(1代表已删除 0代表存在)';
 
 COMMENT ON COLUMN "eco"."sys_tenant_package"."create_by" IS '创建者';
 
@@ -1249,7 +1249,7 @@ COMMENT ON COLUMN "eco"."sys_user"."status" IS '帐号状态(1正常 0停用
 
 COMMENT ON COLUMN "eco"."sys_user"."version" IS '乐观锁';
 
-COMMENT ON COLUMN "eco"."sys_user"."del_flag" IS '删除标志(1代表存在 0代表删除)';
+COMMENT ON COLUMN "eco"."sys_user"."del_flag" IS '删除标志(1代表已删除 0代表存在)';
 
 COMMENT ON COLUMN "eco"."sys_user"."login_ip" IS '最后登陆IP';
 

+ 158 - 158
eco-start/src/main/resources/db/dm/V1_0_0_1__sys-init-dml.sql → eco-start/src/main/resources/db/dm/V1_0_0_2__sys-init-dml.sql

@@ -1,171 +1,171 @@
 
-INSERT INTO "eco"."sys_client"("id","client_id","client_key","client_secret","grant_type","device_type","active_timeout","timeout","status","version","del_flag","create_by","create_time","update_by","update_time") VALUES(1,'e5cd7e4891bf95d1d19206ce24a7b32e','pc','pc123','password,social','pc',1800,604800,'1',0,1,1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'));
-INSERT INTO "eco"."sys_client"("id","client_id","client_key","client_secret","grant_type","device_type","active_timeout","timeout","status","version","del_flag","create_by","create_time","update_by","update_time") VALUES(2,'428a8310cd442757ae699df5d894f051','app','app123','password,sms,social','android',1800,604800,'1',0,1,1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'));
+INSERT INTO "als"."sys_client"("id","client_id","client_key","client_secret","grant_type","device_type","active_timeout","timeout","status","version","del_flag","create_by","create_time","update_by","update_time") VALUES(1,'e5cd7e4891bf95d1d19206ce24a7b32e','pc','pc123','password,social','pc',1800,604800,'1',0,0,1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'));
+INSERT INTO "als"."sys_client"("id","client_id","client_key","client_secret","grant_type","device_type","active_timeout","timeout","status","version","del_flag","create_by","create_time","update_by","update_time") VALUES(2,'428a8310cd442757ae699df5d894f051','app','app123','password,sms,social','android',1800,604800,'1',0,0,1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'));
 
-INSERT INTO "eco"."sys_config"("config_id","tenant_id","config_name","config_key","config_value","config_type","version","create_by","create_time","update_by","update_time","remark") VALUES(1,0,'主框架页-默认皮肤样式名称','sys.index.skinName','skin-blue','Y',0,1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow');
-INSERT INTO "eco"."sys_config"("config_id","tenant_id","config_name","config_key","config_value","config_type","version","create_by","create_time","update_by","update_time","remark") VALUES(2,0,'用户管理-账号初始密码','sys.user.initPassword','123456','Y',0,1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'初始化密码 123456');
-INSERT INTO "eco"."sys_config"("config_id","tenant_id","config_name","config_key","config_value","config_type","version","create_by","create_time","update_by","update_time","remark") VALUES(3,0,'主框架页-侧边栏主题','sys.index.sideTheme','theme-dark','Y',0,1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'深色主题theme-dark,浅色主题theme-light');
-INSERT INTO "eco"."sys_config"("config_id","tenant_id","config_name","config_key","config_value","config_type","version","create_by","create_time","update_by","update_time","remark") VALUES(5,0,'账号自助-是否开启用户注册功能','sys.account.registerUser','false','Y',0,1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'是否开启注册用户功能(true开启,false关闭)');
-INSERT INTO "eco"."sys_config"("config_id","tenant_id","config_name","config_key","config_value","config_type","version","create_by","create_time","update_by","update_time","remark") VALUES(6,0,'OSS预览列表资源开关','sys.oss.previewListResource','true','Y',0,1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'true:开启, false:关闭');
+INSERT INTO "als"."sys_config"("config_id","tenant_id","config_name","config_key","config_value","config_type","version","create_by","create_time","update_by","update_time","remark") VALUES(1,0,'主框架页-默认皮肤样式名称','sys.index.skinName','skin-blue','Y',0,1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow');
+INSERT INTO "als"."sys_config"("config_id","tenant_id","config_name","config_key","config_value","config_type","version","create_by","create_time","update_by","update_time","remark") VALUES(2,0,'用户管理-账号初始密码','sys.user.initPassword','123456','Y',0,1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'初始化密码 123456');
+INSERT INTO "als"."sys_config"("config_id","tenant_id","config_name","config_key","config_value","config_type","version","create_by","create_time","update_by","update_time","remark") VALUES(3,0,'主框架页-侧边栏主题','sys.index.sideTheme','theme-dark','Y',0,1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'深色主题theme-dark,浅色主题theme-light');
+INSERT INTO "als"."sys_config"("config_id","tenant_id","config_name","config_key","config_value","config_type","version","create_by","create_time","update_by","update_time","remark") VALUES(5,0,'账号自助-是否开启用户注册功能','sys.account.registerUser','false','Y',0,1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'是否开启注册用户功能(true开启,false关闭)');
+INSERT INTO "als"."sys_config"("config_id","tenant_id","config_name","config_key","config_value","config_type","version","create_by","create_time","update_by","update_time","remark") VALUES(6,0,'OSS预览列表资源开关','sys.oss.previewListResource','true','Y',0,1,TO_DATE('2024-01-22 11:09:12.997334','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'true:开启, false:关闭');
 
-INSERT INTO "eco"."sys_dept"("dept_id","tenant_id","parent_id","ancestors","dept_name","order_num","leader","phone","email","status","version","del_flag","create_by","create_time","update_by","update_time") VALUES(108150551736287232,0,1,'0,1','XX组',2,'eco','',null,'1',3,1,1,TO_DATE('2024-01-25 23:32:40.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-21 15:15:03.381000','YYYY-MM-DD HH24:MI:SS.FF'));
-INSERT INTO "eco"."sys_dept"("dept_id","tenant_id","parent_id","ancestors","dept_name","order_num","leader","phone","email","status","version","del_flag","create_by","create_time","update_by","update_time") VALUES(1,0,0,'0','XX部门',0,'eco-admin','18888888888','ecoadmin@wo.cn','1',7,1,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-21 15:15:03.534000','YYYY-MM-DD HH24:MI:SS.FF'));
+INSERT INTO "als"."sys_dept"("dept_id","tenant_id","parent_id","ancestors","dept_name","order_num","leader","phone","email","status","version","del_flag","create_by","create_time","update_by","update_time") VALUES(108150551736287232,0,1,'0,1','XX组',2,'eco','',null,'1',3,0,1,TO_DATE('2024-01-25 23:32:40.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-21 15:15:03.381000','YYYY-MM-DD HH24:MI:SS.FF'));
+INSERT INTO "als"."sys_dept"("dept_id","tenant_id","parent_id","ancestors","dept_name","order_num","leader","phone","email","status","version","del_flag","create_by","create_time","update_by","update_time") VALUES(1,0,0,'0','XX部门',0,'eco-admin','18888888888','ecoadmin@wo.cn','1',7,0,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-21 15:15:03.534000','YYYY-MM-DD HH24:MI:SS.FF'));
 
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(1,0,1,'男','0','sys_user_gender','','','Y',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-09-20 09:53:27.000000','YYYY-MM-DD HH24:MI:SS.FF'),'性别男');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(2,0,2,'女','1','sys_user_gender','','','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-09-20 09:53:27.000000','YYYY-MM-DD HH24:MI:SS.FF'),'性别女');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(3,0,3,'未知','2','sys_user_gender','','','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-09-20 09:53:27.000000','YYYY-MM-DD HH24:MI:SS.FF'),'性别未知');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(4,0,1,'显示','1','sys_show_hide','','primary','Y',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'显示菜单');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(5,0,2,'隐藏','0','sys_show_hide','','danger','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'隐藏菜单');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(6,0,1,'正常','1','sys_normal_disable','','primary','Y',1,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 16:17:22.739000','YYYY-MM-DD HH24:MI:SS.FF'),'正常状态');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(7,0,2,'停用','0','sys_normal_disable','','danger','N',1,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 16:17:28.453000','YYYY-MM-DD HH24:MI:SS.FF'),'停用状态');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(8,0,1,'正常','1','sys_job_status','','primary','Y',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'正常状态');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(9,0,2,'暂停','0','sys_job_status','','danger','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'停用状态');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(10,0,1,'默认','DEFAULT','sys_job_group','','','Y',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'默认分组');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(11,0,2,'系统','SYSTEM','sys_job_group','','','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'系统分组');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(12,0,1,'是','1','sys_yes_no','','primary','Y',1,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 17:03:06.185000','YYYY-MM-DD HH24:MI:SS.FF'),'系统默认是');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(13,0,2,'否','0','sys_yes_no','','danger','N',1,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 17:03:13.399000','YYYY-MM-DD HH24:MI:SS.FF'),'系统默认否');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(14,0,1,'通知','1','sys_notice_type','','warning','Y',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'通知');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(15,0,2,'公告','2','sys_notice_type','','success','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'公告');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(16,0,1,'正常','1','sys_notice_status','','primary','Y',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'正常状态');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(17,0,2,'关闭','0','sys_notice_status','','danger','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'关闭状态');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(18,0,99,'其他','0','sys_oper_type','','info','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'其他操作');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(19,0,1,'新增','1','sys_oper_type','','info','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'新增操作');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(20,0,2,'修改','2','sys_oper_type','','info','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'修改操作');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(21,0,3,'删除','3','sys_oper_type','','danger','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'删除操作');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(22,0,4,'授权','4','sys_oper_type','','primary','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'授权操作');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(23,0,5,'导出','5','sys_oper_type','','warning','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'导出操作');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(24,0,6,'导入','6','sys_oper_type','','warning','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'导入操作');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(25,0,7,'强退','7','sys_oper_type','','danger','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'强退操作');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(26,0,8,'生成代码','8','sys_oper_type','','warning','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'生成操作');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(27,0,9,'清空数据','9','sys_oper_type','','danger','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'清空操作');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(28,0,1,'成功','1','sys_common_status','','primary','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'正常状态');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(29,0,2,'失败','0','sys_common_status','','danger','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'停用状态');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(30,0,1,'密码认证','password','sys_grant_type','el-check-tag','default','N',0,1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),'密码认证');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(31,0,2,'短信认证','sms','sys_grant_type','el-check-tag','default','N',0,1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),'短信认证');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(32,0,3,'邮件认证','email','sys_grant_type','el-check-tag','default','N',0,1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),'邮件认证');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(33,0,4,'小程序认证','xcx','sys_grant_type','el-check-tag','default','N',0,1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),'小程序认证');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(34,0,5,'三方登录认证','social','sys_grant_type','el-check-tag','default','N',0,1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),'三方登录认证');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(35,0,1,'PC','pc','sys_device_type','','default','N',0,1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),'PC');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(36,0,2,'安卓','android','sys_device_type','','default','N',0,1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),'安卓');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(37,0,3,'iOS','ios','sys_device_type','','default','N',0,1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),'iOS');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(38,0,4,'小程序','xcx','sys_device_type','','default','N',0,1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),'小程序');
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(105,0,0,'计算机','1','sys_goods_type',null,'primary','N',0,1,TO_DATE('2023-06-05 07:23:48.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,null);
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(106,0,0,'打印设备','2','sys_goods_type',null,'success','N',0,1,TO_DATE('2023-06-05 07:24:14.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,null);
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(107,0,3,'衣服','3','sys_goods_type',null,'info','N',0,1,TO_DATE('2023-06-05 07:24:35.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,null);
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(111,0,4,'网络设备','4','sys_goods_type',null,'default',null,0,1,TO_DATE('2023-09-19 17:31:46.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-09-19 17:31:46.000000','YYYY-MM-DD HH24:MI:SS.FF'),null);
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(65923231885905920,0,1,'桌面微机','PC','sys_app_type',null,'default','N',0,1,TO_DATE('2023-10-01 10:56:23.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-01 10:56:23.000000','YYYY-MM-DD HH24:MI:SS.FF'),null);
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(65923379802230784,0,2,'平板','pad','sys_app_type',null,'default','N',0,1,TO_DATE('2023-10-01 10:56:59.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-01 10:56:59.000000','YYYY-MM-DD HH24:MI:SS.FF'),null);
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(65923470604718080,0,3,'手机','phone','sys_app_type',null,'default','N',0,1,TO_DATE('2023-10-01 10:57:20.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-01 10:57:20.000000','YYYY-MM-DD HH24:MI:SS.FF'),null);
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(163136166100500480,0,1,'是','Y','sys_y_n',null,'primary','N',0,1,TO_DATE('2024-06-25 17:05:52.922000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 17:05:52.922000','YYYY-MM-DD HH24:MI:SS.FF'),null);
-INSERT INTO "eco"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(163136226775302144,0,2,'否','N','sys_y_n',null,'primary','N',0,1,TO_DATE('2024-06-25 17:06:07.389000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 17:06:07.389000','YYYY-MM-DD HH24:MI:SS.FF'),null);
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(1,0,1,'男','0','sys_user_gender','','','Y',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-09-20 09:53:27.000000','YYYY-MM-DD HH24:MI:SS.FF'),'性别男');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(2,0,2,'女','1','sys_user_gender','','','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-09-20 09:53:27.000000','YYYY-MM-DD HH24:MI:SS.FF'),'性别女');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(3,0,3,'未知','2','sys_user_gender','','','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-09-20 09:53:27.000000','YYYY-MM-DD HH24:MI:SS.FF'),'性别未知');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(4,0,1,'显示','1','sys_show_hide','','primary','Y',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'显示菜单');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(5,0,2,'隐藏','0','sys_show_hide','','danger','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'隐藏菜单');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(6,0,1,'正常','1','sys_normal_disable','','primary','Y',1,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 16:17:22.739000','YYYY-MM-DD HH24:MI:SS.FF'),'正常状态');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(7,0,2,'停用','0','sys_normal_disable','','danger','N',1,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 16:17:28.453000','YYYY-MM-DD HH24:MI:SS.FF'),'停用状态');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(8,0,1,'正常','1','sys_job_status','','primary','Y',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'正常状态');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(9,0,2,'暂停','0','sys_job_status','','danger','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'停用状态');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(10,0,1,'默认','DEFAULT','sys_job_group','','','Y',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'默认分组');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(11,0,2,'系统','SYSTEM','sys_job_group','','','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'系统分组');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(12,0,1,'是','1','sys_yes_no','','primary','Y',1,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 17:03:06.185000','YYYY-MM-DD HH24:MI:SS.FF'),'系统默认是');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(13,0,2,'否','0','sys_yes_no','','danger','N',1,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 17:03:13.399000','YYYY-MM-DD HH24:MI:SS.FF'),'系统默认否');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(14,0,1,'通知','1','sys_notice_type','','warning','Y',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'通知');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(15,0,2,'公告','2','sys_notice_type','','success','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'公告');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(16,0,1,'正常','1','sys_notice_status','','primary','Y',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'正常状态');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(17,0,2,'关闭','0','sys_notice_status','','danger','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'关闭状态');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(18,0,99,'其他','0','sys_oper_type','','info','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'其他操作');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(19,0,1,'新增','1','sys_oper_type','','info','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'新增操作');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(20,0,2,'修改','2','sys_oper_type','','info','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'修改操作');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(21,0,3,'删除','3','sys_oper_type','','danger','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'删除操作');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(22,0,4,'授权','4','sys_oper_type','','primary','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'授权操作');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(23,0,5,'导出','5','sys_oper_type','','warning','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'导出操作');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(24,0,6,'导入','6','sys_oper_type','','warning','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'导入操作');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(25,0,7,'强退','7','sys_oper_type','','danger','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'强退操作');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(26,0,8,'生成代码','8','sys_oper_type','','warning','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'生成操作');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(27,0,9,'清空数据','9','sys_oper_type','','danger','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'清空操作');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(28,0,1,'成功','1','sys_common_status','','primary','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'正常状态');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(29,0,2,'失败','0','sys_common_status','','danger','N',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'停用状态');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(30,0,1,'密码认证','password','sys_grant_type','el-check-tag','default','N',0,1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),'密码认证');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(31,0,2,'短信认证','sms','sys_grant_type','el-check-tag','default','N',0,1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),'短信认证');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(32,0,3,'邮件认证','email','sys_grant_type','el-check-tag','default','N',0,1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),'邮件认证');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(33,0,4,'小程序认证','xcx','sys_grant_type','el-check-tag','default','N',0,1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),'小程序认证');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(34,0,5,'三方登录认证','social','sys_grant_type','el-check-tag','default','N',0,1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:10:51.000000','YYYY-MM-DD HH24:MI:SS.FF'),'三方登录认证');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(35,0,1,'PC','pc','sys_device_type','','default','N',0,1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),'PC');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(36,0,2,'安卓','android','sys_device_type','','default','N',0,1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),'安卓');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(37,0,3,'iOS','ios','sys_device_type','','default','N',0,1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),'iOS');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(38,0,4,'小程序','xcx','sys_device_type','','default','N',0,1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:41:10.000000','YYYY-MM-DD HH24:MI:SS.FF'),'小程序');
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(105,0,0,'计算机','1','sys_goods_type',null,'primary','N',0,1,TO_DATE('2023-06-05 07:23:48.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,null);
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(106,0,0,'打印设备','2','sys_goods_type',null,'success','N',0,1,TO_DATE('2023-06-05 07:24:14.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,null);
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(107,0,3,'衣服','3','sys_goods_type',null,'info','N',0,1,TO_DATE('2023-06-05 07:24:35.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,null);
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(111,0,4,'网络设备','4','sys_goods_type',null,'default',null,0,1,TO_DATE('2023-09-19 17:31:46.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-09-19 17:31:46.000000','YYYY-MM-DD HH24:MI:SS.FF'),null);
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(65923231885905920,0,1,'桌面微机','PC','sys_app_type',null,'default','N',0,1,TO_DATE('2023-10-01 10:56:23.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-01 10:56:23.000000','YYYY-MM-DD HH24:MI:SS.FF'),null);
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(65923379802230784,0,2,'平板','pad','sys_app_type',null,'default','N',0,1,TO_DATE('2023-10-01 10:56:59.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-01 10:56:59.000000','YYYY-MM-DD HH24:MI:SS.FF'),null);
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(65923470604718080,0,3,'手机','phone','sys_app_type',null,'default','N',0,1,TO_DATE('2023-10-01 10:57:20.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-01 10:57:20.000000','YYYY-MM-DD HH24:MI:SS.FF'),null);
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(163136166100500480,0,1,'是','Y','sys_y_n',null,'primary','N',0,1,TO_DATE('2024-06-25 17:05:52.922000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 17:05:52.922000','YYYY-MM-DD HH24:MI:SS.FF'),null);
+INSERT INTO "als"."sys_dict_data"("dict_code","tenant_id","dict_sort","dict_label","dict_value","dict_type","css_class","list_class","is_default","version","create_by","create_time","update_by","update_time","remark") VALUES(163136226775302144,0,2,'否','N','sys_y_n',null,'primary','N',0,1,TO_DATE('2024-06-25 17:06:07.389000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 17:06:07.389000','YYYY-MM-DD HH24:MI:SS.FF'),null);
 
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(1,0,'用户性别','sys_user_gender',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-09-20 09:53:27.000000','YYYY-MM-DD HH24:MI:SS.FF'),'用户性别列表');
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(2,0,'菜单状态','sys_show_hide',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'菜单状态列表');
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(3,0,'系统开关','sys_normal_disable',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'系统开关列表');
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(4,0,'任务状态','sys_job_status',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'任务状态列表');
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(5,0,'任务分组','sys_job_group',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'任务分组列表');
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(6,0,'系统是否','sys_yes_no',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'系统是否列表');
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(7,0,'通知类型','sys_notice_type',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'通知类型列表');
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(8,0,'通知状态','sys_notice_status',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'通知状态列表');
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(9,0,'操作类型','sys_oper_type',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'操作类型列表');
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(10,0,'系统状态','sys_common_status',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'登录状态列表');
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(11,0,'授权类型','sys_grant_type',0,1,TO_DATE('2023-10-21 11:06:33.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:06:33.000000','YYYY-MM-DD HH24:MI:SS.FF'),'认证授权类型');
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(12,0,'设备类型','sys_device_type',0,1,TO_DATE('2023-10-21 11:38:41.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:38:41.000000','YYYY-MM-DD HH24:MI:SS.FF'),'客户端设备类型');
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(102,0,'商品种类','sys_goods_type',0,1,TO_DATE('2023-06-05 07:23:20.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,null);
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(65922863223361536,0,'系统类型','sys_app_type',0,1,TO_DATE('2023-10-01 10:54:55.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-01 10:54:55.000000','YYYY-MM-DD HH24:MI:SS.FF'),'系统类型列表');
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(118192295228071936,0,'是否缓存','sys_cache',0,1,TO_DATE('2024-02-22 16:34:59.090000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-02-22 16:34:59.090000','YYYY-MM-DD HH24:MI:SS.FF'),null);
-INSERT INTO "eco"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(163135360617971712,0,'系统是否YN','sys_y_n',0,1,TO_DATE('2024-06-25 17:02:40.880000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 17:02:40.880000','YYYY-MM-DD HH24:MI:SS.FF'),'对应值为Y N');
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(1,0,'用户性别','sys_user_gender',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-09-20 09:53:27.000000','YYYY-MM-DD HH24:MI:SS.FF'),'用户性别列表');
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(2,0,'菜单状态','sys_show_hide',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'菜单状态列表');
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(3,0,'系统开关','sys_normal_disable',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'系统开关列表');
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(4,0,'任务状态','sys_job_status',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'任务状态列表');
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(5,0,'任务分组','sys_job_group',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'任务分组列表');
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(6,0,'系统是否','sys_yes_no',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'系统是否列表');
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(7,0,'通知类型','sys_notice_type',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'通知类型列表');
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(8,0,'通知状态','sys_notice_status',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'通知状态列表');
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(9,0,'操作类型','sys_oper_type',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'操作类型列表');
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(10,0,'系统状态','sys_common_status',0,1,TO_DATE('2023-06-03 21:32:30.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'登录状态列表');
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(11,0,'授权类型','sys_grant_type',0,1,TO_DATE('2023-10-21 11:06:33.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:06:33.000000','YYYY-MM-DD HH24:MI:SS.FF'),'认证授权类型');
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(12,0,'设备类型','sys_device_type',0,1,TO_DATE('2023-10-21 11:38:41.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-21 11:38:41.000000','YYYY-MM-DD HH24:MI:SS.FF'),'客户端设备类型');
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(102,0,'商品种类','sys_goods_type',0,1,TO_DATE('2023-06-05 07:23:20.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,null);
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(65922863223361536,0,'系统类型','sys_app_type',0,1,TO_DATE('2023-10-01 10:54:55.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-01 10:54:55.000000','YYYY-MM-DD HH24:MI:SS.FF'),'系统类型列表');
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(118192295228071936,0,'是否缓存','sys_cache',0,1,TO_DATE('2024-02-22 16:34:59.090000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-02-22 16:34:59.090000','YYYY-MM-DD HH24:MI:SS.FF'),null);
+INSERT INTO "als"."sys_dict_type"("dict_id","tenant_id","dict_name","dict_type","version","create_by","create_time","update_by","update_time","remark") VALUES(163135360617971712,0,'系统是否YN','sys_y_n',0,1,TO_DATE('2024-06-25 17:02:40.880000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 17:02:40.880000','YYYY-MM-DD HH24:MI:SS.FF'),'对应值为Y N');
 
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1011,'角色导出',101,5,'','',null,'','0','1','F','1','1','system:role:export','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1022,'岗位修改',104,3,'','',null,'','0','1','F','1','1','system:post:edit','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1016,'部门查询',103,1,'','',null,'','0','1','F','1','1','system:dept:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1018,'部门修改',103,3,'','',null,'','0','1','F','1','1','system:dept:edit','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1020,'岗位查询',104,1,'','',null,'','0','1','F','1','1','system:post:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1010,'角色删除',101,4,'','',null,'','0','1','F','1','1','system:role:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1007,'角色查询',101,1,'','',null,'','0','1','F','1','1','system:role:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1029,'字典导出',105,5,'','',null,'','0','1','F','1','1','system:dict:export','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1015,'菜单删除',102,4,'','',null,'','0','1','F','1','1','system:menu:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1014,'菜单修改',102,3,'','',null,'','0','1','F','1','1','system:menu:edit','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1013,'菜单新增',102,2,'','',null,'','0','1','F','1','1','system:menu:add','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1023,'岗位删除',104,4,'','',null,'','0','1','F','1','1','system:post:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1012,'菜单查询',102,1,'','',null,'','0','1','F','1','1','system:menu:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1024,'岗位导出',104,5,'','',null,'','0','1','F','1','1','system:post:export','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1059,'预览代码',116,5,'','',null,'','0','1','F','1','1','tool:gen:preview','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1060,'生成代码',116,6,'','',null,'','0','1','F','1','1','tool:gen:code','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1008,'角色新增',101,2,'','',null,'','0','1','F','1','1','system:role:add','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1600,'文件查询',118,1,'','',null,'','0','1','F','1','1','system:oss:query','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1601,'文件上传',118,2,'','',null,'','0','1','F','1','1','system:oss:upload','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1602,'文件下载',118,3,'','',null,'','0','1','F','1','1','system:oss:download','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1017,'部门新增',103,2,'','',null,'','0','1','F','1','1','system:dept:add','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1021,'岗位新增',104,2,'','',null,'','0','1','F','1','1','system:post:add','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1019,'部门删除',103,4,'','',null,'','0','1','F','1','1','system:dept:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1009,'角色修改',101,3,'','',null,'','0','1','F','1','1','system:role:edit','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1025,'字典查询',105,1,'','',null,'','0','1','F','1','1','system:dict:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1026,'字典新增',105,2,'','',null,'','0','1','F','1','1','system:dict:add','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1027,'字典修改',105,3,'','',null,'','0','1','F','1','1','system:dict:edit','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1028,'字典删除',105,4,'','',null,'','0','1','F','1','1','system:dict:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1039,'操作查询',500,1,'','',null,'','0','1','F','1','1','monitor:operlog:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1040,'操作删除',500,2,'','',null,'','0','1','F','1','1','monitor:operlog:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1041,'日志导出',500,3,'','',null,'','0','1','F','1','1','monitor:operlog:export','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1042,'登录查询',501,1,'','',null,'','0','1','F','1','1','monitor:logininfor:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1043,'登录删除',501,2,'','',null,'','0','1','F','1','1','monitor:logininfor:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1044,'日志导出',501,3,'','',null,'','0','1','F','1','1','monitor:logininfor:export','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1045,'账户解锁',501,4,'','',null,'','0','1','F','1','1','monitor:logininfor:unlock','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1000,'用户查询',100,1,'','',null,'','0','1','F','1','1','system:user:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1055,'生成查询',116,1,'','',null,'','0','1','F','1','1','tool:gen:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1056,'生成修改',116,2,'','',null,'','0','1','F','1','1','tool:gen:edit','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1057,'生成删除',116,3,'','',null,'','0','1','F','1','1','tool:gen:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1001,'用户新增',100,2,'','',null,'','0','1','F','1','1','system:user:add','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1002,'用户修改',100,3,'','',null,'','0','1','F','1','1','system:user:edit','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1603,'文件删除',118,4,'','',null,'','0','1','F','1','1','system:oss:remove','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1620,'配置列表',118,5,'','',null,'','0','1','F','1','1','system:ossConfig:list','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1621,'配置添加',118,6,'','',null,'','0','1','F','1','1','system:ossConfig:add','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1622,'配置编辑',118,6,'','',null,'','0','1','F','1','1','system:ossConfig:edit','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1623,'配置删除',118,6,'','',null,'','0','1','F','1','1','system:ossConfig:remove','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1003,'用户删除',100,4,'','',null,'','0','1','F','1','1','system:user:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1004,'用户导出',100,5,'','',null,'','0','1','F','1','1','system:user:export','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1005,'用户导入',100,6,'','',null,'','0','1','F','1','1','system:user:import','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1006,'重置密码',100,7,'','',null,'','0','1','F','1','1','system:user:resetPwd','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1058,'导入代码',116,4,'','',null,'','0','1','F','1','1','tool:gen:import','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(103,'部门管理',1,4,'/system/dept','system/dept/index',null,'','0','1','C','1','1','system:dept:list','user',1,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:09:12.860000','YYYY-MM-DD HH24:MI:SS.FF'),'部门管理菜单');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(3,'系统工具',0,4,'tool',null,null,'','0','1','M','1','1','','Setting',3,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:10:27.874000','YYYY-MM-DD HH24:MI:SS.FF'),'系统工具目录');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(100,'用户管理',1,1,'/system/user','system/user/index','User','','0','1','C','1','1','system:user:list','User',10,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:06:29.359000','YYYY-MM-DD HH24:MI:SS.FF'),'用户管理菜单');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(101,'角色管理',1,2,'/system/role','system/role/index',null,'','0','1','C','1','1','system:role:list','peoples',5,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-26 00:02:56.851000','YYYY-MM-DD HH24:MI:SS.FF'),'角色管理菜单');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(102,'菜单管理',1,3,'/system/menu','system/menu/index',null,'','0','1','C','1','1','system:menu:list','Menu',3,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-26 00:03:41.324000','YYYY-MM-DD HH24:MI:SS.FF'),'菜单管理菜单');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1,'系统管理',0,1,'system',null,null,'','0','1','M','1','1','','system',10,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:14:23.227000','YYYY-MM-DD HH24:MI:SS.FF'),'系统管理目录');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(116,'代码生成',3,0,'/tool/gen','tool/gen/index','gen','','0','1','C','1','1','tool:gen:list','code',3,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:10:40.608000','YYYY-MM-DD HH24:MI:SS.FF'),'代码生成菜单');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(105,'字典管理',1,6,'/system/dict','system/dict/index',null,'','0','1','C','1','1','system:dict:list','dict',1,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:09:49.770000','YYYY-MM-DD HH24:MI:SS.FF'),'字典管理菜单');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(500,'操作日志',108,1,'/monitor/operlog','monitor/operlog/index',null,'','0','1','C','1','1','monitor:operlog:list','logininfor',1,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:10:59.271000','YYYY-MM-DD HH24:MI:SS.FF'),'操作日志菜单');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(104,'岗位管理',1,5,'/system/post','system/post/index',null,'','0','1','C','1','1','system:post:list','Connection',1,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:09:27.490000','YYYY-MM-DD HH24:MI:SS.FF'),'岗位管理菜单');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(108,'日志管理',1,9,'log','',null,'','0','1','M','1','1','','log',1,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:09:58.829000','YYYY-MM-DD HH24:MI:SS.FF'),'日志管理菜单');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(501,'登录日志',108,2,'/monitor/logininfor','monitor/logininfor/index',null,'','0','1','C','1','1','monitor:logininfor:list','logininfor',1,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:11:12.076000','YYYY-MM-DD HH24:MI:SS.FF'),'登录日志菜单');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(118,'文件管理',1,10,'/system/oss','system/oss/index',null,'','0','1','C','1','1','system:oss:list','Files',1,1,TO_DATE('2023-12-03 08:46:11.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:10:13.192000','YYYY-MM-DD HH24:MI:SS.FF'),'文件管理菜单');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(2024062414053900,'系统配置',1,11,'/system/config','system/config/index','config',null,'0','1','C','1','1','system:config:list','system',5,1,TO_DATE('2024-06-24 14:06:29.531000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 22:46:45.372000','YYYY-MM-DD HH24:MI:SS.FF'),'参数配置菜单');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(2024062414053901,'系统配置查询',2024062414053900,1,'','',null,null,'0','1','F','1','1','system:config:query','',0,1,TO_DATE('2024-06-24 14:06:29.547000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(2024062414053902,'系统配置新增',2024062414053900,2,'','',null,null,'0','1','F','1','1','system:config:add','',0,1,TO_DATE('2024-06-24 14:06:29.563000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(2024062414053903,'系统配置修改',2024062414053900,3,'','',null,null,'0','1','F','1','1','system:config:edit','',0,1,TO_DATE('2024-06-24 14:06:29.579000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(2024062414053904,'系统配置删除',2024062414053900,4,'','',null,null,'0','1','F','1','1','system:config:remove','',0,1,TO_DATE('2024-06-24 14:06:29.594000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(2024062414053905,'系统配置导出',2024062414053900,5,'','',null,null,'0','1','F','1','1','system:config:export','',0,1,TO_DATE('2024-06-24 14:06:29.610000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1011,'角色导出',101,5,'','',null,'','0','1','F','1','1','system:role:export','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1022,'岗位修改',104,3,'','',null,'','0','1','F','1','1','system:post:edit','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1016,'部门查询',103,1,'','',null,'','0','1','F','1','1','system:dept:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1018,'部门修改',103,3,'','',null,'','0','1','F','1','1','system:dept:edit','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1020,'岗位查询',104,1,'','',null,'','0','1','F','1','1','system:post:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1010,'角色删除',101,4,'','',null,'','0','1','F','1','1','system:role:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1007,'角色查询',101,1,'','',null,'','0','1','F','1','1','system:role:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1029,'字典导出',105,5,'','',null,'','0','1','F','1','1','system:dict:export','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1015,'菜单删除',102,4,'','',null,'','0','1','F','1','1','system:menu:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1014,'菜单修改',102,3,'','',null,'','0','1','F','1','1','system:menu:edit','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1013,'菜单新增',102,2,'','',null,'','0','1','F','1','1','system:menu:add','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1023,'岗位删除',104,4,'','',null,'','0','1','F','1','1','system:post:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1012,'菜单查询',102,1,'','',null,'','0','1','F','1','1','system:menu:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1024,'岗位导出',104,5,'','',null,'','0','1','F','1','1','system:post:export','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1059,'预览代码',116,5,'','',null,'','0','1','F','1','1','tool:gen:preview','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1060,'生成代码',116,6,'','',null,'','0','1','F','1','1','tool:gen:code','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1008,'角色新增',101,2,'','',null,'','0','1','F','1','1','system:role:add','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1600,'文件查询',118,1,'','',null,'','0','1','F','1','1','system:oss:query','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1601,'文件上传',118,2,'','',null,'','0','1','F','1','1','system:oss:upload','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1602,'文件下载',118,3,'','',null,'','0','1','F','1','1','system:oss:download','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1017,'部门新增',103,2,'','',null,'','0','1','F','1','1','system:dept:add','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1021,'岗位新增',104,2,'','',null,'','0','1','F','1','1','system:post:add','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1019,'部门删除',103,4,'','',null,'','0','1','F','1','1','system:dept:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1009,'角色修改',101,3,'','',null,'','0','1','F','1','1','system:role:edit','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1025,'字典查询',105,1,'','',null,'','0','1','F','1','1','system:dict:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1026,'字典新增',105,2,'','',null,'','0','1','F','1','1','system:dict:add','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1027,'字典修改',105,3,'','',null,'','0','1','F','1','1','system:dict:edit','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1028,'字典删除',105,4,'','',null,'','0','1','F','1','1','system:dict:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1039,'操作查询',500,1,'','',null,'','0','1','F','1','1','monitor:operlog:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1040,'操作删除',500,2,'','',null,'','0','1','F','1','1','monitor:operlog:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1041,'日志导出',500,3,'','',null,'','0','1','F','1','1','monitor:operlog:export','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1042,'登录查询',501,1,'','',null,'','0','1','F','1','1','monitor:logininfor:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1043,'登录删除',501,2,'','',null,'','0','1','F','1','1','monitor:logininfor:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1044,'日志导出',501,3,'','',null,'','0','1','F','1','1','monitor:logininfor:export','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1045,'账户解锁',501,4,'','',null,'','0','1','F','1','1','monitor:logininfor:unlock','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1000,'用户查询',100,1,'','',null,'','0','1','F','1','1','system:user:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1055,'生成查询',116,1,'','',null,'','0','1','F','1','1','tool:gen:query','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1056,'生成修改',116,2,'','',null,'','0','1','F','1','1','tool:gen:edit','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1057,'生成删除',116,3,'','',null,'','0','1','F','1','1','tool:gen:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1001,'用户新增',100,2,'','',null,'','0','1','F','1','1','system:user:add','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1002,'用户修改',100,3,'','',null,'','0','1','F','1','1','system:user:edit','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1603,'文件删除',118,4,'','',null,'','0','1','F','1','1','system:oss:remove','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1620,'配置列表',118,5,'','',null,'','0','1','F','1','1','system:ossConfig:list','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1621,'配置添加',118,6,'','',null,'','0','1','F','1','1','system:ossConfig:add','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1622,'配置编辑',118,6,'','',null,'','0','1','F','1','1','system:ossConfig:edit','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1623,'配置删除',118,6,'','',null,'','0','1','F','1','1','system:ossConfig:remove','',0,1,TO_DATE('2023-12-25 15:09:14.342224','YYYY-MM-DD HH24:MI:SS.FF'),null,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1003,'用户删除',100,4,'','',null,'','0','1','F','1','1','system:user:remove','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1004,'用户导出',100,5,'','',null,'','0','1','F','1','1','system:user:export','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1005,'用户导入',100,6,'','',null,'','0','1','F','1','1','system:user:import','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1006,'重置密码',100,7,'','',null,'','0','1','F','1','1','system:user:resetPwd','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1058,'导入代码',116,4,'','',null,'','0','1','F','1','1','tool:gen:import','',0,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(103,'部门管理',1,4,'/system/dept','system/dept/index',null,'','0','1','C','1','1','system:dept:list','user',1,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:09:12.860000','YYYY-MM-DD HH24:MI:SS.FF'),'部门管理菜单');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(3,'系统工具',0,4,'tool',null,null,'','0','1','M','1','1','','Setting',3,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:10:27.874000','YYYY-MM-DD HH24:MI:SS.FF'),'系统工具目录');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(100,'用户管理',1,1,'/system/user','system/user/index','User','','0','1','C','1','1','system:user:list','User',10,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:06:29.359000','YYYY-MM-DD HH24:MI:SS.FF'),'用户管理菜单');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(101,'角色管理',1,2,'/system/role','system/role/index',null,'','0','1','C','1','1','system:role:list','peoples',5,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-26 00:02:56.851000','YYYY-MM-DD HH24:MI:SS.FF'),'角色管理菜单');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(102,'菜单管理',1,3,'/system/menu','system/menu/index',null,'','0','1','C','1','1','system:menu:list','Menu',3,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-26 00:03:41.324000','YYYY-MM-DD HH24:MI:SS.FF'),'菜单管理菜单');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(1,'系统管理',0,1,'system',null,null,'','0','1','M','1','1','','system',10,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:14:23.227000','YYYY-MM-DD HH24:MI:SS.FF'),'系统管理目录');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(116,'代码生成',3,0,'/tool/gen','tool/gen/index','gen','','0','1','C','1','1','tool:gen:list','code',3,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:10:40.608000','YYYY-MM-DD HH24:MI:SS.FF'),'代码生成菜单');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(105,'字典管理',1,6,'/system/dict','system/dict/index',null,'','0','1','C','1','1','system:dict:list','dict',1,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:09:49.770000','YYYY-MM-DD HH24:MI:SS.FF'),'字典管理菜单');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(500,'操作日志',108,1,'/monitor/operlog','monitor/operlog/index',null,'','0','1','C','1','1','monitor:operlog:list','logininfor',1,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:10:59.271000','YYYY-MM-DD HH24:MI:SS.FF'),'操作日志菜单');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(104,'岗位管理',1,5,'/system/post','system/post/index',null,'','0','1','C','1','1','system:post:list','Connection',1,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:09:27.490000','YYYY-MM-DD HH24:MI:SS.FF'),'岗位管理菜单');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(108,'日志管理',1,9,'log','',null,'','0','1','M','1','1','','log',1,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:09:58.829000','YYYY-MM-DD HH24:MI:SS.FF'),'日志管理菜单');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(501,'登录日志',108,2,'/monitor/logininfor','monitor/logininfor/index',null,'','0','1','C','1','1','monitor:logininfor:list','logininfor',1,1,TO_DATE('2023-06-03 21:32:29.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:11:12.076000','YYYY-MM-DD HH24:MI:SS.FF'),'登录日志菜单');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(118,'文件管理',1,10,'/system/oss','system/oss/index',null,'','0','1','C','1','1','system:oss:list','Files',1,1,TO_DATE('2023-12-03 08:46:11.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-20 23:10:13.192000','YYYY-MM-DD HH24:MI:SS.FF'),'文件管理菜单');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(2024062414053900,'系统配置',1,11,'/system/config','system/config/index','config',null,'0','1','C','1','1','system:config:list','system',5,1,TO_DATE('2024-06-24 14:06:29.531000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 22:46:45.372000','YYYY-MM-DD HH24:MI:SS.FF'),'参数配置菜单');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(2024062414053901,'系统配置查询',2024062414053900,1,'','',null,null,'0','1','F','1','1','system:config:query','',0,1,TO_DATE('2024-06-24 14:06:29.547000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(2024062414053902,'系统配置新增',2024062414053900,2,'','',null,null,'0','1','F','1','1','system:config:add','',0,1,TO_DATE('2024-06-24 14:06:29.563000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(2024062414053903,'系统配置修改',2024062414053900,3,'','',null,null,'0','1','F','1','1','system:config:edit','',0,1,TO_DATE('2024-06-24 14:06:29.579000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(2024062414053904,'系统配置删除',2024062414053900,4,'','',null,null,'0','1','F','1','1','system:config:remove','',0,1,TO_DATE('2024-06-24 14:06:29.594000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_menu"("menu_id","menu_name","parent_id","order_num","path","component","component_name","query_param","is_frame","is_cache","menu_type","visible","status","perms","icon","version","create_by","create_time","update_by","update_time","remark") VALUES(2024062414053905,'系统配置导出',2024062414053900,5,'','',null,null,'0','1','F','1','1','system:config:export','',0,1,TO_DATE('2024-06-24 14:06:29.610000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
 
-INSERT INTO "eco"."sys_oss"("oss_id","tenant_id","file_name","original_name","file_suffix","url","service","version","create_by","create_time","update_by","update_time") VALUES(163169678664970240,0,'2024/06/25/a76e13cfa29d49aca6a5f2c95ccda4b5.jpg','wallhaven-m3mmq9.jpg','.jpg','http://127.0.0.1:9000/eco-bucket/2024/06/25/a76e13cfa29d49aca6a5f2c95ccda4b5.jpg','minio',0,1,TO_DATE('2024-06-25 19:19:02.944000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 19:19:02.944000','YYYY-MM-DD HH24:MI:SS.FF'));
+INSERT INTO "als"."sys_oss"("oss_id","tenant_id","file_name","original_name","file_suffix","url","service","version","create_by","create_time","update_by","update_time") VALUES(163169678664970240,0,'2024/06/25/a76e13cfa29d49aca6a5f2c95ccda4b5.jpg','wallhaven-m3mmq9.jpg','.jpg','http://127.0.0.1:9000/eco-bucket/2024/06/25/a76e13cfa29d49aca6a5f2c95ccda4b5.jpg','minio',0,1,TO_DATE('2024-06-25 19:19:02.944000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 19:19:02.944000','YYYY-MM-DD HH24:MI:SS.FF'));
 
-INSERT INTO "eco"."sys_oss_config"("oss_config_id","tenant_id","config_key","access_key","secret_key","bucket_name","prefix","endpoint","domain_name","is_https","region","access_policy","status","ext1","version","create_by","create_time","update_by","update_time","remark") VALUES(1,0,'minio','rzbRpmQLtD49FRwDU0kW','3EcOTTxS9btVQlt9pXFAsM3p7E557B5kqn0aNKbx','eco-bucket','','127.0.0.1:9000','','N','','1','1','',3,1,TO_DATE('2023-11-30 11:54:13.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 18:53:12.414000','YYYY-MM-DD HH24:MI:SS.FF'),null);
-INSERT INTO "eco"."sys_oss_config"("oss_config_id","tenant_id","config_key","access_key","secret_key","bucket_name","prefix","endpoint","domain_name","is_https","region","access_policy","status","ext1","version","create_by","create_time","update_by","update_time","remark") VALUES(2,0,'qiniu','eco-qiniu','eco-qiniu','eco-bucket','','s3-cn-north-1.qiniucs.com','','N','','1','0','',4,1,TO_DATE('2023-11-30 11:54:13.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 17:17:19.858000','YYYY-MM-DD HH24:MI:SS.FF'),null);
-INSERT INTO "eco"."sys_oss_config"("oss_config_id","tenant_id","config_key","access_key","secret_key","bucket_name","prefix","endpoint","domain_name","is_https","region","access_policy","status","ext1","version","create_by","create_time","update_by","update_time","remark") VALUES(3,0,'aliyun','eco-aliyun','eco-aliyun','eco-bucket','','oss-cn-beijing.aliyuncs.com','','N','','1','0','',2,1,TO_DATE('2023-11-30 11:54:13.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-24 17:56:15.621000','YYYY-MM-DD HH24:MI:SS.FF'),null);
-INSERT INTO "eco"."sys_oss_config"("oss_config_id","tenant_id","config_key","access_key","secret_key","bucket_name","prefix","endpoint","domain_name","is_https","region","access_policy","status","ext1","version","create_by","create_time","update_by","update_time","remark") VALUES(4,0,'qcloud','eco-qcloud','eco-qcloud','eco-bucket','','cos.ap-beijing.myqcloud.com','','N','','1','0','',2,1,TO_DATE('2023-11-30 11:54:13.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-24 17:56:28.199000','YYYY-MM-DD HH24:MI:SS.FF'),null);
-INSERT INTO "eco"."sys_oss_config"("oss_config_id","tenant_id","config_key","access_key","secret_key","bucket_name","prefix","endpoint","domain_name","is_https","region","access_policy","status","ext1","version","create_by","create_time","update_by","update_time","remark") VALUES(5,0,'local','eco-local','eco-local','eco-bucket','','localhost','','N','','1','0','',8,1,TO_DATE('2024-06-25 15:35:13.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-26 11:07:04.099000','YYYY-MM-DD HH24:MI:SS.FF'),'');
+INSERT INTO "als"."sys_oss_config"("oss_config_id","tenant_id","config_key","access_key","secret_key","bucket_name","prefix","endpoint","domain_name","is_https","region","access_policy","status","ext1","version","create_by","create_time","update_by","update_time","remark") VALUES(1,0,'minio','rzbRpmQLtD49FRwDU0kW','3EcOTTxS9btVQlt9pXFAsM3p7E557B5kqn0aNKbx','eco-bucket','','127.0.0.1:9000','','N','','1','1','',3,1,TO_DATE('2023-11-30 11:54:13.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 18:53:12.414000','YYYY-MM-DD HH24:MI:SS.FF'),null);
+INSERT INTO "als"."sys_oss_config"("oss_config_id","tenant_id","config_key","access_key","secret_key","bucket_name","prefix","endpoint","domain_name","is_https","region","access_policy","status","ext1","version","create_by","create_time","update_by","update_time","remark") VALUES(2,0,'qiniu','eco-qiniu','eco-qiniu','eco-bucket','','s3-cn-north-1.qiniucs.com','','N','','1','0','',4,1,TO_DATE('2023-11-30 11:54:13.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 17:17:19.858000','YYYY-MM-DD HH24:MI:SS.FF'),null);
+INSERT INTO "als"."sys_oss_config"("oss_config_id","tenant_id","config_key","access_key","secret_key","bucket_name","prefix","endpoint","domain_name","is_https","region","access_policy","status","ext1","version","create_by","create_time","update_by","update_time","remark") VALUES(3,0,'aliyun','eco-aliyun','eco-aliyun','eco-bucket','','oss-cn-beijing.aliyuncs.com','','N','','1','0','',2,1,TO_DATE('2023-11-30 11:54:13.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-24 17:56:15.621000','YYYY-MM-DD HH24:MI:SS.FF'),null);
+INSERT INTO "als"."sys_oss_config"("oss_config_id","tenant_id","config_key","access_key","secret_key","bucket_name","prefix","endpoint","domain_name","is_https","region","access_policy","status","ext1","version","create_by","create_time","update_by","update_time","remark") VALUES(4,0,'qcloud','eco-qcloud','eco-qcloud','eco-bucket','','cos.ap-beijing.myqcloud.com','','N','','1','0','',2,1,TO_DATE('2023-11-30 11:54:13.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-24 17:56:28.199000','YYYY-MM-DD HH24:MI:SS.FF'),null);
+INSERT INTO "als"."sys_oss_config"("oss_config_id","tenant_id","config_key","access_key","secret_key","bucket_name","prefix","endpoint","domain_name","is_https","region","access_policy","status","ext1","version","create_by","create_time","update_by","update_time","remark") VALUES(5,0,'local','eco-local','eco-local','eco-bucket','','localhost','','N','','1','0','',8,1,TO_DATE('2024-06-25 15:35:13.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-26 11:07:04.099000','YYYY-MM-DD HH24:MI:SS.FF'),'');
 
-INSERT INTO "eco"."sys_post"("post_id","tenant_id","post_code","post_name","post_sort","status","version","create_by","create_time","update_by","update_time","remark") VALUES(1,0,'ceo','董事长',1,'1',0,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-09-02 15:43:55.000000','YYYY-MM-DD HH24:MI:SS.FF'),'');
-INSERT INTO "eco"."sys_post"("post_id","tenant_id","post_code","post_name","post_sort","status","version","create_by","create_time","update_by","update_time","remark") VALUES(2,0,'se','项目经理',2,'1',0,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_post"("post_id","tenant_id","post_code","post_name","post_sort","status","version","create_by","create_time","update_by","update_time","remark") VALUES(3,0,'hr','人力资源',3,'1',0,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
-INSERT INTO "eco"."sys_post"("post_id","tenant_id","post_code","post_name","post_sort","status","version","create_by","create_time","update_by","update_time","remark") VALUES(4,0,'users','普通员工',4,'1',0,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-07-13 21:30:24.000000','YYYY-MM-DD HH24:MI:SS.FF'),'');
-INSERT INTO "eco"."sys_post"("post_id","tenant_id","post_code","post_name","post_sort","status","version","create_by","create_time","update_by","update_time","remark") VALUES(5,0,'deptLeader','部门管理岗',5,'1',0,1,TO_DATE('2023-10-01 10:33:39.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-01 10:33:39.000000','YYYY-MM-DD HH24:MI:SS.FF'),'部门负责人岗位');
+INSERT INTO "als"."sys_post"("post_id","tenant_id","post_code","post_name","post_sort","status","version","create_by","create_time","update_by","update_time","remark") VALUES(1,0,'ceo','董事长',1,'1',0,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-09-02 15:43:55.000000','YYYY-MM-DD HH24:MI:SS.FF'),'');
+INSERT INTO "als"."sys_post"("post_id","tenant_id","post_code","post_name","post_sort","status","version","create_by","create_time","update_by","update_time","remark") VALUES(2,0,'se','项目经理',2,'1',0,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_post"("post_id","tenant_id","post_code","post_name","post_sort","status","version","create_by","create_time","update_by","update_time","remark") VALUES(3,0,'hr','人力资源',3,'1',0,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'');
+INSERT INTO "als"."sys_post"("post_id","tenant_id","post_code","post_name","post_sort","status","version","create_by","create_time","update_by","update_time","remark") VALUES(4,0,'users','普通员工',4,'1',0,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-07-13 21:30:24.000000','YYYY-MM-DD HH24:MI:SS.FF'),'');
+INSERT INTO "als"."sys_post"("post_id","tenant_id","post_code","post_name","post_sort","status","version","create_by","create_time","update_by","update_time","remark") VALUES(5,0,'deptLeader','部门管理岗',5,'1',0,1,TO_DATE('2023-10-01 10:33:39.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-10-01 10:33:39.000000','YYYY-MM-DD HH24:MI:SS.FF'),'部门负责人岗位');
 
-INSERT INTO "eco"."sys_role"("role_id","tenant_id","role_name","role_key","role_sort","data_scope","menu_check_strictly","dept_check_strictly","status","version","del_flag","create_by","create_time","update_by","update_time","remark") VALUES(1,0,'超级管理员角色','superAdmin',1,'1',1,1,'1',0,1,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'超级管理员');
+INSERT INTO "als"."sys_role"("role_id","tenant_id","role_name","role_key","role_sort","data_scope","menu_check_strictly","dept_check_strictly","status","version","del_flag","create_by","create_time","update_by","update_time","remark") VALUES(1,0,'超级管理员角色','superAdmin',1,'1',1,1,'1',0,0,1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,null,'超级管理员');
 
-INSERT INTO "eco"."sys_tenant"("tenant_id","contact_user_name","contact_phone","company_name","license_number","address","intro","domain_name","remark","package_id","expire_time","account_count","status","version","del_flag","create_by","create_time","update_by","update_time") VALUES(0,'联系人','18888888888','eco',null,null,'多租户通用后台管理管理系统',null,null,null,null,-1,'1',0,1,1,TO_DATE('2023-08-13 08:08:08.000000','YYYY-MM-DD HH24:MI:SS.FF'),null,null);
+INSERT INTO "als"."sys_tenant"("tenant_id","contact_user_name","contact_phone","company_name","license_number","address","intro","domain_name","remark","package_id","expire_time","account_count","status","version","del_flag","create_by","create_time","update_by","update_time") VALUES(0,'联系人','18888888888','eco',null,null,'多租户通用后台管理管理系统',null,null,null,null,-1,'1',0,0,1,TO_DATE('2023-08-13 08:08:08.000000','YYYY-MM-DD HH24:MI:SS.FF'),null,null);
 
-INSERT INTO "eco"."sys_user"("user_id","tenant_id","dept_id","user_name","nick_name","user_type","email","phonenumber","gender","avatar","password","status","version","del_flag","login_ip","login_date","create_by","create_time","update_by","update_time","remark") VALUES(1,0,1,'superadmin','超级管理员','sys_user','eco@eco.com','15888888888',1,163169678664970240,'$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2','1',126,1,'0:0:0:0:0:0:0:1',TO_DATE('2024-06-26 09:30:03.943000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-26 09:30:03.950000','YYYY-MM-DD HH24:MI:SS.FF'),'管理员');
-INSERT INTO "eco"."sys_user"("user_id","tenant_id","dept_id","user_name","nick_name","user_type","email","phonenumber","gender","avatar","password","status","version","del_flag","login_ip","login_date","create_by","create_time","update_by","update_time","remark") VALUES(163042315792855040,0,1,'wanggaokun','wanggaokun','sys_user','','',0,null,'$2a$10$hDZjISygrEz.pzIYymHHsO5CmV02qj/ae5anSaympYxj3XreQSV0u','1',4,1,'0:0:0:0:0:0:0:1',TO_DATE('2024-06-25 10:55:29.659000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 10:52:57.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 16:47:43.159000','YYYY-MM-DD HH24:MI:SS.FF'),null);
+INSERT INTO "als"."sys_user"("user_id","tenant_id","dept_id","user_name","nick_name","user_type","email","phonenumber","gender","avatar","password","status","version","del_flag","login_ip","login_date","create_by","create_time","update_by","update_time","remark") VALUES(1,0,1,'superadmin','超级管理员','sys_user','eco@eco.com','15888888888',1,163169678664970240,'$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2','1',126,0,'0:0:0:0:0:0:0:1',TO_DATE('2024-06-26 09:30:03.943000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2023-06-03 21:32:28.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-26 09:30:03.950000','YYYY-MM-DD HH24:MI:SS.FF'),'管理员');
+INSERT INTO "als"."sys_user"("user_id","tenant_id","dept_id","user_name","nick_name","user_type","email","phonenumber","gender","avatar","password","status","version","del_flag","login_ip","login_date","create_by","create_time","update_by","update_time","remark") VALUES(163042315792855040,0,1,'wanggaokun','wanggaokun','sys_user','','',0,null,'$2a$10$hDZjISygrEz.pzIYymHHsO5CmV02qj/ae5anSaympYxj3XreQSV0u','1',4,0,'0:0:0:0:0:0:0:1',TO_DATE('2024-06-25 10:55:29.659000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 10:52:57.000000','YYYY-MM-DD HH24:MI:SS.FF'),1,TO_DATE('2024-06-25 16:47:43.159000','YYYY-MM-DD HH24:MI:SS.FF'),null);
 
-INSERT INTO "eco"."sys_user_post"("user_id","post_id") VALUES(163042315792855040,4);
+INSERT INTO "als"."sys_user_post"("user_id","post_id") VALUES(163042315792855040,4);

+ 1 - 1
eco-start/src/main/resources/db/mysql/V1_0_0_1__sys-init-ddl.sql

@@ -174,7 +174,7 @@ CREATE TABLE `sys_import_export_t`  (
     `url` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '文件地址',
     `oss_id` bigint NULL DEFAULT NULL COMMENT '文件Id',
     `log_info` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '日志信息',
-    `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '1' COMMENT '状态(1正常  0异常 99部分正常)',
+    `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '1' COMMENT '状态(1正常  0异常 2部分正常)',
     `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户号',
     `version` int NULL DEFAULT 0 COMMENT '乐观锁',
     `create_by` bigint NULL DEFAULT NULL COMMENT '创建人',

+ 1150 - 0
eco-start/src/main/resources/db/pgsql/V1_0_0_1__sys-init-ddl.sql

@@ -0,0 +1,1150 @@
+create table gen_table
+(
+    table_id          bigint                            not null,
+    table_name        varchar(200)  default ''::character varying,
+    table_comment     varchar(500)  default ''::character varying,
+    sub_table_name    varchar(64)   default ''::character varying,
+    sub_table_fk_name varchar(64)   default ''::character varying,
+    class_name        varchar(100)  default ''::character varying,
+    tpl_category      varchar(200)  default 'crud'::character varying,
+    package_name      varchar(100)  default NULL::character varying,
+    module_name       varchar(30)   default NULL::character varying,
+    business_name     varchar(30)   default NULL::character varying,
+    function_name     varchar(50)   default NULL::character varying,
+    function_author   varchar(50)   default NULL::character varying,
+    gen_type          char          default '0'::bpchar not null,
+    gen_path          varchar(200)  default '/'::character varying,
+    options           varchar(1000) default NULL::character varying,
+    version           integer       default 0,
+    create_by         bigint,
+    create_time       timestamp,
+    update_by         bigint,
+    update_time       timestamp,
+    remark            varchar(500)  default NULL::character varying,
+    constraint gen_table_pk
+        primary key (table_id)
+);
+
+comment on table gen_table is '代码生成业务表';
+
+comment on column gen_table.table_id is '编号';
+
+comment on column gen_table.table_name is '表名称';
+
+comment on column gen_table.table_comment is '表描述';
+
+comment on column gen_table.sub_table_name is '关联子表的表名';
+
+comment on column gen_table.sub_table_fk_name is '子表关联的外键名';
+
+comment on column gen_table.class_name is '实体类名称';
+
+comment on column gen_table.tpl_category is '使用的模板(CRUD单表操作 TREE树表操作)';
+
+comment on column gen_table.package_name is '生成包路径';
+
+comment on column gen_table.module_name is '生成模块名';
+
+comment on column gen_table.business_name is '生成业务名';
+
+comment on column gen_table.function_name is '生成功能名';
+
+comment on column gen_table.function_author is '生成功能作者';
+
+comment on column gen_table.gen_type is '生成代码方式(0zip压缩包 1自定义路径)';
+
+comment on column gen_table.gen_path is '生成路径(不填默认项目路径)';
+
+comment on column gen_table.options is '其它生成选项';
+
+comment on column gen_table.version is '乐观锁';
+
+comment on column gen_table.create_by is '创建者';
+
+comment on column gen_table.create_time is '创建时间';
+
+comment on column gen_table.update_by is '更新者';
+
+comment on column gen_table.update_time is '更新时间';
+
+comment on column gen_table.remark is '备注';
+
+create table gen_table_column
+(
+    column_id      bigint not null,
+    table_id       bigint,
+    column_name    varchar(200) default NULL::character varying,
+    column_comment varchar(500) default NULL::character varying,
+    column_type    varchar(100) default NULL::character varying,
+    java_type      varchar(500) default NULL::character varying,
+    java_field     varchar(200) default NULL::character varying,
+    is_pk          char         default NULL::bpchar,
+    is_increment   char         default NULL::bpchar,
+    is_required    char         default NULL::bpchar,
+    is_insert      char         default NULL::bpchar,
+    is_edit        char         default NULL::bpchar,
+    is_list        char         default NULL::bpchar,
+    is_query       char         default NULL::bpchar,
+    query_type     varchar(200) default 'EQ'::character varying,
+    html_type      varchar(200) default NULL::character varying,
+    dict_type      varchar(200) default ''::character varying,
+    sort           integer,
+    version        integer      default 0,
+    create_by      bigint,
+    create_time    timestamp,
+    update_by      bigint,
+    update_time    timestamp,
+    constraint gen_table_column_pk
+        primary key (column_id)
+);
+
+comment on table gen_table_column is '代码生成业务表字段';
+
+comment on column gen_table_column.column_id is '编号';
+
+comment on column gen_table_column.table_id is '归属表编号';
+
+comment on column gen_table_column.column_name is '列名称';
+
+comment on column gen_table_column.column_comment is '列描述';
+
+comment on column gen_table_column.column_type is '列类型';
+
+comment on column gen_table_column.java_type is 'JAVA类型';
+
+comment on column gen_table_column.java_field is 'JAVA字段名';
+
+comment on column gen_table_column.is_pk is '是否主键(1是)';
+
+comment on column gen_table_column.is_increment is '是否自增(1是)';
+
+comment on column gen_table_column.is_required is '是否必填(1是)';
+
+comment on column gen_table_column.is_insert is '是否为插入字段(1是)';
+
+comment on column gen_table_column.is_edit is '是否编辑字段(1是)';
+
+comment on column gen_table_column.is_list is '是否列表字段(1是)';
+
+comment on column gen_table_column.is_query is '是否查询字段(1是)';
+
+comment on column gen_table_column.query_type is '查询方式(等于、不等于、大于、小于、范围)';
+
+comment on column gen_table_column.html_type is '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)';
+
+comment on column gen_table_column.dict_type is '字典类型';
+
+comment on column gen_table_column.sort is '排序';
+
+comment on column gen_table_column.version is '乐观锁';
+
+comment on column gen_table_column.create_by is '创建者';
+
+comment on column gen_table_column.create_time is '创建时间';
+
+comment on column gen_table_column.update_by is '更新者';
+
+comment on column gen_table_column.update_time is '更新时间';
+
+create table sys_client
+(
+    id             bigint not null,
+    client_id      varchar(64)  default ''::character varying,
+    client_key     varchar(32)  default ''::character varying,
+    client_secret  varchar(255) default ''::character varying,
+    grant_type     varchar(255) default ''::character varying,
+    device_type    varchar(32)  default ''::character varying,
+    active_timeout integer      default 1800,
+    timeout        integer      default 604800,
+    status         char         default '0'::bpchar,
+    version        integer      default 0,
+    del_flag       smallint     default 0,
+    create_by      bigint,
+    create_time    timestamp,
+    update_by      bigint,
+    update_time    timestamp,
+    constraint sys_client_pk
+        primary key (id)
+);
+
+comment on table sys_client is '系统授权表';
+
+comment on column sys_client.id is '主建';
+
+comment on column sys_client.client_id is '客户端id';
+
+comment on column sys_client.client_key is '客户端key';
+
+comment on column sys_client.client_secret is '客户端秘钥';
+
+comment on column sys_client.grant_type is '授权类型';
+
+comment on column sys_client.device_type is '设备类型';
+
+comment on column sys_client.active_timeout is 'token活跃超时时间';
+
+comment on column sys_client.timeout is 'token固定超时';
+
+comment on column sys_client.status is '状态(1正常 0停用)';
+
+comment on column sys_client.version is '乐观锁';
+
+comment on column sys_client.del_flag is '删除标志(0代表存在 1代表删除)';
+
+comment on column sys_client.create_by is '创建者';
+
+comment on column sys_client.create_time is '创建时间';
+
+comment on column sys_client.update_by is '更新者';
+
+comment on column sys_client.update_time is '更新时间';
+
+create table sys_config
+(
+    config_id    bigint                           not null,
+    tenant_id    bigint       default '0'::bigint not null,
+    config_name  varchar(100) default ''::character varying,
+    config_key   varchar(100) default ''::character varying,
+    config_value varchar(500) default ''::character varying,
+    config_type  char         default 'N'::bpchar,
+    version      integer      default 0,
+    create_by    bigint,
+    create_time  timestamp,
+    update_by    bigint,
+    update_time  timestamp,
+    remark       varchar(500) default NULL::character varying,
+    constraint sys_config_pk
+        primary key (config_id)
+);
+
+comment on table sys_config is '参数配置表';
+
+comment on column sys_config.config_id is '参数主键';
+
+comment on column sys_config.tenant_id is '租户编号';
+
+comment on column sys_config.config_name is '参数名称';
+
+comment on column sys_config.config_key is '参数键名';
+
+comment on column sys_config.config_value is '参数键值';
+
+comment on column sys_config.config_type is '系统内置(Y是 N否)';
+
+comment on column sys_config.version is '乐观锁';
+
+comment on column sys_config.create_by is '创建者';
+
+comment on column sys_config.create_time is '创建时间';
+
+comment on column sys_config.update_by is '更新者';
+
+comment on column sys_config.update_time is '更新时间';
+
+comment on column sys_config.remark is '备注';
+
+create table sys_dept
+(
+    dept_id     bigint not null,
+    tenant_id   bigint       default 0,
+    parent_id   bigint       default 0,
+    ancestors   varchar(760) default ''::character varying,
+    dept_name   varchar(30)  default ''::character varying,
+    order_num   integer      default 0,
+    leader      varchar(20)  default ''::character varying,
+    phone       varchar(11)  default NULL::character varying,
+    email       varchar(50)  default NULL::character varying,
+    status      char         default '0'::bpchar,
+    version     integer      default 0,
+    del_flag    smallint     default 0,
+    create_by   bigint,
+    create_time timestamp,
+    update_by   bigint,
+    update_time timestamp,
+    constraint sys_dept_pk
+        primary key (dept_id)
+);
+
+comment on table sys_dept is '部门表';
+
+comment on column sys_dept.dept_id is '部门ID';
+
+comment on column sys_dept.tenant_id is '租户编号';
+
+comment on column sys_dept.parent_id is '父部门ID';
+
+comment on column sys_dept.ancestors is '祖级列表';
+
+comment on column sys_dept.dept_name is '部门名称';
+
+comment on column sys_dept.order_num is '显示顺序';
+
+comment on column sys_dept.leader is '负责人';
+
+comment on column sys_dept.phone is '联系电话';
+
+comment on column sys_dept.email is '邮箱';
+
+comment on column sys_dept.status is '部门状态(1正常 0停用)';
+
+comment on column sys_dept.version is '乐观锁';
+
+comment on column sys_dept.del_flag is '删除标志(0代表存在 1代表删除)';
+
+comment on column sys_dept.create_by is '创建者';
+
+comment on column sys_dept.create_time is '创建时间';
+
+comment on column sys_dept.update_by is '更新者';
+
+comment on column sys_dept.update_time is '更新时间';
+
+create table sys_dict_data
+(
+    dict_code   bigint                           not null,
+    tenant_id   bigint       default '0'::bigint not null,
+    dict_sort   integer      default 0,
+    dict_label  varchar(100) default ''::character varying,
+    dict_value  varchar(100) default ''::character varying,
+    dict_type   varchar(100) default ''::character varying,
+    css_class   varchar(100) default NULL::character varying,
+    list_class  varchar(100) default NULL::character varying,
+    is_default  char         default 'N'::bpchar,
+    version     integer      default 0,
+    create_by   bigint,
+    create_time timestamp,
+    update_by   bigint,
+    update_time timestamp,
+    remark      varchar(500) default NULL::character varying,
+    constraint sys_dict_data_pk
+        primary key (dict_code)
+);
+
+comment on table sys_dict_data is '字典数据表';
+
+comment on column sys_dict_data.dict_code is '字典编码';
+
+comment on column sys_dict_data.tenant_id is '租户编号';
+
+comment on column sys_dict_data.dict_sort is '字典排序';
+
+comment on column sys_dict_data.dict_label is '字典标签';
+
+comment on column sys_dict_data.dict_value is '字典键值';
+
+comment on column sys_dict_data.dict_type is '字典类型';
+
+comment on column sys_dict_data.css_class is '样式属性(其他样式扩展)';
+
+comment on column sys_dict_data.list_class is '表格回显样式';
+
+comment on column sys_dict_data.is_default is '是否默认(Y是 N否)';
+
+comment on column sys_dict_data.version is '乐观锁';
+
+comment on column sys_dict_data.create_by is '创建者';
+
+comment on column sys_dict_data.create_time is '创建时间';
+
+comment on column sys_dict_data.update_by is '更新者';
+
+comment on column sys_dict_data.update_time is '更新时间';
+
+comment on column sys_dict_data.remark is '备注';
+
+create table sys_dict_type
+(
+    dict_id     bigint                           not null,
+    tenant_id   bigint       default '0'::bigint not null,
+    dict_name   varchar(100) default ''::character varying,
+    dict_type   varchar(100) default ''::character varying,
+    version     integer      default 0,
+    create_by   bigint,
+    create_time timestamp,
+    update_by   bigint,
+    update_time timestamp,
+    remark      varchar(500) default NULL::character varying,
+    constraint sys_dict_type_pk
+        primary key (dict_id)
+);
+
+comment on table sys_dict_type is '字典类型表';
+
+comment on column sys_dict_type.dict_id is '字典主键';
+
+comment on column sys_dict_type.tenant_id is '租户编号';
+
+comment on column sys_dict_type.dict_name is '字典名称';
+
+comment on column sys_dict_type.dict_type is '字典类型';
+
+comment on column sys_dict_type.version is '乐观锁';
+
+comment on column sys_dict_type.create_by is '创建者';
+
+comment on column sys_dict_type.create_time is '创建时间';
+
+comment on column sys_dict_type.update_by is '更新者';
+
+comment on column sys_dict_type.update_time is '更新时间';
+
+comment on column sys_dict_type.remark is '备注';
+
+create unique index sys_dict_type_index1
+    on sys_dict_type (tenant_id, dict_type);
+
+
+create table sys_import_export_t
+(
+    id          bigint                      not null,
+    name        varchar(255),
+    url         varchar(500),
+    oss_id      bigint,
+    log_info    text,
+    status      char    default '1'::bpchar not null,
+    tenant_id   bigint  default '0'::bigint not null,
+    version     integer default 0           not null,
+    create_by   bigint,
+    create_time timestamp,
+    update_by   bigint,
+    update_time timestamp,
+    constraint sys_import_export_pk
+        primary key (id)
+);
+
+comment on table sys_import_export_t is '导入导出记录';
+
+comment on column sys_import_export_t.id is '唯一编码';
+
+comment on column sys_import_export_t.name is '文件名称';
+
+comment on column sys_import_export_t.url is '文件地址';
+
+comment on column sys_import_export_t.oss_id is '文件Id';
+
+comment on column sys_import_export_t.log_info is '日志信息';
+
+comment on column sys_import_export_t.status is '状态(1正常  0异常 2部分正常)';
+
+comment on column sys_import_export_t.tenant_id is '租户id';
+
+comment on column sys_import_export_t.version is '乐观锁';
+
+comment on column sys_import_export_t.create_by is '创建人';
+
+comment on column sys_import_export_t.create_time is '创建时间';
+
+comment on column sys_import_export_t.update_by is '更新人';
+
+comment on column sys_import_export_t.update_time is '更新时间';
+
+
+
+create table sys_logininfor
+(
+    info_id        bigint                           not null,
+    tenant_id      bigint       default '0'::bigint not null,
+    user_name      varchar(50)  default ''::character varying,
+    client_key     varchar(32)  default ''::character varying,
+    device_type    varchar(32)  default ''::character varying,
+    ipaddr         varchar(128) default ''::character varying,
+    login_location varchar(255) default ''::character varying,
+    browser        varchar(50)  default ''::character varying,
+    os             varchar(50)  default ''::character varying,
+    status         char         default '1'::bpchar,
+    msg            varchar(255) default ''::character varying,
+    login_time     timestamp,
+    constraint sys_logininfor_pk
+        primary key (info_id)
+);
+
+comment on table sys_logininfor is '系统访问记录';
+
+comment on column sys_logininfor.info_id is '访问ID';
+
+comment on column sys_logininfor.tenant_id is '租户编号';
+
+comment on column sys_logininfor.user_name is '用户账号';
+
+comment on column sys_logininfor.client_key is '客户端';
+
+comment on column sys_logininfor.device_type is '设备类型';
+
+comment on column sys_logininfor.ipaddr is '登录IP地址';
+
+comment on column sys_logininfor.login_location is '登录地点';
+
+comment on column sys_logininfor.browser is '浏览器类型';
+
+comment on column sys_logininfor.os is '操作系统';
+
+comment on column sys_logininfor.status is '登录状态(1成功 0失败)';
+
+comment on column sys_logininfor.msg is '提示消息';
+
+comment on column sys_logininfor.login_time is '访问时间';
+
+create index idx_sys_logininfor_lt
+    on sys_logininfor (login_time);
+
+create index idx_sys_logininfor_s
+    on sys_logininfor (status);
+
+create table sys_menu
+(
+    menu_id        bigint      not null,
+    menu_name      varchar(50) not null,
+    parent_id      bigint       default 0,
+    order_num      integer      default 0,
+    path           varchar(200) default ''::character varying,
+    component      varchar(255) default NULL::character varying,
+    query_param    varchar(255) default NULL::character varying,
+    is_frame       char         default '0'::bpchar,
+    is_cache       char         default '1'::bpchar,
+    menu_type      char         default ''::bpchar,
+    visible        char         default '1'::bpchar,
+    status         char         default '1'::bpchar,
+    perms          varchar(100) default NULL::character varying,
+    icon           varchar(100) default ''::character varying,
+    version        integer      default 0,
+    create_by      bigint,
+    create_time    timestamp,
+    update_by      bigint,
+    update_time    timestamp,
+    remark         varchar(500) default ''::character varying,
+    component_name varchar(255) default NULL::character varying,
+    constraint sys_menu_pk
+        primary key (menu_id)
+);
+
+comment on table sys_menu is '菜单权限表';
+
+comment on column sys_menu.menu_id is '菜单ID';
+
+comment on column sys_menu.menu_name is '菜单名称';
+
+comment on column sys_menu.parent_id is '父菜单ID';
+
+comment on column sys_menu.order_num is '显示顺序';
+
+comment on column sys_menu.path is '路由地址';
+
+comment on column sys_menu.component is '组件路径';
+
+comment on column sys_menu.query_param is '路由参数';
+
+comment on column sys_menu.is_frame is '是否为外链(1是 0否)';
+
+comment on column sys_menu.is_cache is '是否缓存(1缓存 0不缓存)';
+
+comment on column sys_menu.menu_type is '菜单类型(M目录 C菜单 F按钮)';
+
+comment on column sys_menu.visible is '显示状态(1显示 0隐藏)';
+
+comment on column sys_menu.status is '菜单状态(1正常 0停用)';
+
+comment on column sys_menu.perms is '权限标识';
+
+comment on column sys_menu.icon is '菜单图标';
+
+comment on column sys_menu.version is '乐观锁';
+
+comment on column sys_menu.create_by is '创建者';
+
+comment on column sys_menu.create_time is '创建时间';
+
+comment on column sys_menu.update_by is '更新者';
+
+comment on column sys_menu.update_time is '更新时间';
+
+comment on column sys_menu.remark is '备注';
+
+comment on column sys_menu.component_name is '组件名称';
+
+create table sys_notice
+(
+    notice_id      bigint                           not null,
+    tenant_id      bigint       default '0'::bigint not null,
+    notice_title   varchar(50)                      not null,
+    notice_type    char                             not null,
+    notice_content text,
+    status         char         default '1'::bpchar,
+    version        integer      default 0,
+    create_by      bigint,
+    create_time    timestamp,
+    update_by      bigint,
+    update_time    timestamp,
+    remark         varchar(255) default NULL::character varying,
+    constraint sys_notice_pk
+        primary key (notice_id)
+);
+
+comment on table sys_notice is '通知公告表';
+
+comment on column sys_notice.notice_id is '公告ID';
+
+comment on column sys_notice.tenant_id is '租户编号';
+
+comment on column sys_notice.notice_title is '公告标题';
+
+comment on column sys_notice.notice_type is '公告类型(1通知 2公告)';
+
+comment on column sys_notice.notice_content is '公告内容';
+
+comment on column sys_notice.status is '公告状态(1正常 0关闭)';
+
+comment on column sys_notice.version is '乐观锁';
+
+comment on column sys_notice.create_by is '创建者';
+
+comment on column sys_notice.create_time is '创建时间';
+
+comment on column sys_notice.update_by is '更新者';
+
+comment on column sys_notice.update_time is '更新时间';
+
+comment on column sys_notice.remark is '备注';
+
+create table sys_oper_log
+(
+    oper_id        bigint                            not null,
+    tenant_id      bigint        default '0'::bigint not null,
+    title          varchar(50)   default ''::character varying,
+    business_type  integer       default 0,
+    method         varchar(100)  default ''::character varying,
+    request_method varchar(10)   default ''::character varying,
+    operator_type  integer       default 0,
+    oper_name      varchar(50)   default ''::character varying,
+    dept_name      varchar(50)   default ''::character varying,
+    oper_url       varchar(255)  default ''::character varying,
+    oper_ip        varchar(128)  default ''::character varying,
+    oper_location  varchar(255)  default ''::character varying,
+    oper_param     varchar(2000) default ''::character varying,
+    json_result    varchar(2000) default ''::character varying,
+    status         integer       default 1,
+    error_msg      varchar(2000) default ''::character varying,
+    oper_time      timestamp,
+    cost_time      bigint        default 0,
+    constraint sys_oper_log_pk
+        primary key (oper_id)
+);
+
+comment on table sys_oper_log is '操作日志记录';
+
+comment on column sys_oper_log.oper_id is '日志主键';
+
+comment on column sys_oper_log.tenant_id is '租户编号';
+
+comment on column sys_oper_log.title is '模块标题';
+
+comment on column sys_oper_log.business_type is '业务类型(0其它 1新增 2修改 3删除)';
+
+comment on column sys_oper_log.method is '方法名称';
+
+comment on column sys_oper_log.request_method is '请求方式';
+
+comment on column sys_oper_log.operator_type is '操作类别(0其它 1后台用户 2手机端用户)';
+
+comment on column sys_oper_log.oper_name is '操作人员';
+
+comment on column sys_oper_log.dept_name is '部门名称';
+
+comment on column sys_oper_log.oper_url is '请求URL';
+
+comment on column sys_oper_log.oper_ip is '主机地址';
+
+comment on column sys_oper_log.oper_location is '操作地点';
+
+comment on column sys_oper_log.oper_param is '请求参数';
+
+comment on column sys_oper_log.json_result is '返回参数';
+
+comment on column sys_oper_log.status is '操作状态(1正常 0异常)';
+
+comment on column sys_oper_log.error_msg is '错误消息';
+
+comment on column sys_oper_log.oper_time is '操作时间';
+
+comment on column sys_oper_log.cost_time is '消耗时间';
+
+create index idx_sys_oper_log_bt
+    on sys_oper_log (business_type);
+
+create index idx_sys_oper_log_ot
+    on sys_oper_log (oper_time);
+
+create index idx_sys_oper_log_s
+    on sys_oper_log (status);
+
+create table sys_oss
+(
+    oss_id        bigint                                     not null,
+    tenant_id     bigint       default '0'::bigint           not null,
+    file_name     varchar(255) default ''::character varying not null,
+    original_name varchar(255) default ''::character varying not null,
+    file_suffix   varchar(10)  default ''::character varying not null,
+    url           varchar(500) default ''::character varying not null,
+    service       varchar(20)  default 'minio'::character varying,
+    version       integer      default 0,
+    create_by     bigint,
+    create_time   timestamp,
+    update_by     bigint,
+    update_time   timestamp,
+    constraint sys_oss_pk
+        primary key (oss_id)
+);
+
+comment on table sys_oss is 'OSS对象存储表';
+
+comment on column sys_oss.oss_id is '对象存储主键';
+
+comment on column sys_oss.tenant_id is '租户编码';
+
+comment on column sys_oss.file_name is '文件名';
+
+comment on column sys_oss.original_name is '原名';
+
+comment on column sys_oss.file_suffix is '文件后缀名';
+
+comment on column sys_oss.url is 'URL地址';
+
+comment on column sys_oss.service is '服务商';
+
+comment on column sys_oss.version is '乐观锁';
+
+comment on column sys_oss.create_by is '上传人';
+
+comment on column sys_oss.create_time is '创建时间';
+
+comment on column sys_oss.update_by is '更新者';
+
+comment on column sys_oss.update_time is '更新时间';
+
+create table sys_oss_config
+(
+    oss_config_id bigint                                     not null,
+    tenant_id     bigint       default '0'::bigint           not null,
+    config_key    varchar(20)  default ''::character varying not null,
+    access_key    varchar(255) default ''::character varying,
+    secret_key    varchar(255) default ''::character varying,
+    bucket_name   varchar(255) default ''::character varying,
+    prefix        varchar(255) default ''::character varying,
+    endpoint      varchar(255) default ''::character varying,
+    domain_name   varchar(255) default ''::character varying,
+    is_https      char         default 'N'::bpchar,
+    region        varchar(255) default ''::character varying,
+    access_policy char         default '1'::bpchar           not null,
+    status        char         default '1'::bpchar,
+    ext1          varchar(255) default ''::character varying,
+    version       integer      default 0,
+    create_by     bigint,
+    create_time   timestamp,
+    update_by     bigint,
+    update_time   timestamp,
+    remark        varchar(500) default ''::character varying,
+    constraint sys_oss_config_pk
+        primary key (oss_config_id)
+);
+
+comment on table sys_oss_config is '对象存储配置表';
+
+comment on column sys_oss_config.oss_config_id is '主建';
+
+comment on column sys_oss_config.tenant_id is '租户编码';
+
+comment on column sys_oss_config.config_key is '配置key';
+
+comment on column sys_oss_config.access_key is 'accessKey';
+
+comment on column sys_oss_config.secret_key is '秘钥';
+
+comment on column sys_oss_config.bucket_name is '桶名称';
+
+comment on column sys_oss_config.prefix is '前缀';
+
+comment on column sys_oss_config.endpoint is '访问站点';
+
+comment on column sys_oss_config.domain_name is '自定义域名';
+
+comment on column sys_oss_config.is_https is '是否https(Y=是,N=否)';
+
+comment on column sys_oss_config.region is '域';
+
+comment on column sys_oss_config.access_policy is '桶权限类型(0=private 1=public 2=custom)';
+
+comment on column sys_oss_config.status is '是否默认(1=是,0=否)';
+
+comment on column sys_oss_config.ext1 is '扩展字段';
+
+comment on column sys_oss_config.version is '乐观锁';
+
+comment on column sys_oss_config.create_by is '创建者';
+
+comment on column sys_oss_config.create_time is '创建时间';
+
+comment on column sys_oss_config.update_by is '更新者';
+
+comment on column sys_oss_config.update_time is '更新时间';
+
+comment on column sys_oss_config.remark is '备注';
+
+create table sys_post
+(
+    post_id     bigint                           not null,
+    tenant_id   bigint       default '0'::bigint not null,
+    post_code   varchar(64)                      not null,
+    post_name   varchar(50)                      not null,
+    post_sort   integer                          not null,
+    status      char                             not null,
+    version     integer      default 0,
+    create_by   bigint,
+    create_time timestamp,
+    update_by   bigint,
+    update_time timestamp,
+    remark      varchar(500) default NULL::character varying,
+    constraint sys_post_pk
+        primary key (post_id)
+);
+
+comment on table sys_post is '岗位信息表';
+
+comment on column sys_post.post_id is '岗位ID';
+
+comment on column sys_post.tenant_id is '租户编号';
+
+comment on column sys_post.post_code is '岗位编码';
+
+comment on column sys_post.post_name is '岗位名称';
+
+comment on column sys_post.post_sort is '显示顺序';
+
+comment on column sys_post.status is '状态(0正常 1停用)';
+
+comment on column sys_post.version is '乐观锁';
+
+comment on column sys_post.create_by is '创建者';
+
+comment on column sys_post.create_time is '创建时间';
+
+comment on column sys_post.update_by is '更新者';
+
+comment on column sys_post.update_time is '更新时间';
+
+comment on column sys_post.remark is '备注';
+
+create table sys_role
+(
+    role_id             bigint                           not null,
+    tenant_id           bigint       default 0,
+    role_name           varchar(30)                      not null,
+    role_key            varchar(100)                     not null,
+    role_sort           integer                          not null,
+    data_scope          char         default '1'::bpchar,
+    menu_check_strictly boolean      default true,
+    dept_check_strictly boolean      default true,
+    status              char         default '1'::bpchar not null,
+    version             integer      default 0,
+    del_flag            smallint     default 0,
+    create_by           bigint,
+    create_time         timestamp,
+    update_by           bigint,
+    update_time         timestamp,
+    remark              varchar(500) default NULL::character varying,
+    constraint sys_role_pk
+        primary key (role_id)
+);
+
+comment on table sys_role is '角色信息表';
+
+comment on column sys_role.role_id is '角色ID';
+
+comment on column sys_role.tenant_id is '租户编号';
+
+comment on column sys_role.role_name is '角色名称';
+
+comment on column sys_role.role_key is '角色权限字符串';
+
+comment on column sys_role.role_sort is '显示顺序';
+
+comment on column sys_role.data_scope is '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)';
+
+comment on column sys_role.menu_check_strictly is '菜单树选择项是否关联显示';
+
+comment on column sys_role.dept_check_strictly is '部门树选择项是否关联显示';
+
+comment on column sys_role.status is '角色状态(1正常 0停用)';
+
+comment on column sys_role.version is '乐观锁';
+
+comment on column sys_role.del_flag is '删除标志(0代表存在 1代表删除)';
+
+comment on column sys_role.create_by is '创建者';
+
+comment on column sys_role.create_time is '创建时间';
+
+comment on column sys_role.update_by is '更新者';
+
+comment on column sys_role.update_time is '更新时间';
+
+comment on column sys_role.remark is '备注';
+
+create table sys_role_dept
+(
+    role_id bigint not null,
+    dept_id bigint not null,
+    constraint sys_role_dept_pk
+        primary key (role_id, dept_id)
+);
+
+comment on table sys_role_dept is '角色和部门关联表';
+
+comment on column sys_role_dept.role_id is '角色ID';
+
+comment on column sys_role_dept.dept_id is '部门ID';
+
+create table sys_role_menu
+(
+    role_id bigint not null,
+    menu_id bigint not null,
+    constraint sys_role_menu_pk
+        primary key (role_id, menu_id)
+);
+
+comment on table sys_role_menu is '角色和菜单关联表';
+
+comment on column sys_role_menu.role_id is '角色ID';
+
+comment on column sys_role_menu.menu_id is '菜单ID';
+
+create table sys_tenant_package
+(
+    package_id          bigint not null,
+    package_name        varchar(20)   default ''::character varying,
+    menu_ids            varchar(3000) default ''::character varying,
+    remark              varchar(200)  default ''::character varying,
+    menu_check_strictly boolean       default true,
+    status              char          default '1'::bpchar,
+    version             integer       default 0,
+    del_flag            smallint      default 0,
+    create_by           bigint,
+    create_time         timestamp,
+    update_by           bigint,
+    update_time         timestamp,
+    primary key (package_id)
+);
+
+comment on table sys_tenant_package is '租户套餐表';
+
+comment on column sys_tenant_package.package_id is '租户套餐id';
+
+comment on column sys_tenant_package.package_name is '套餐名称';
+
+comment on column sys_tenant_package.menu_ids is '关联菜单id';
+
+comment on column sys_tenant_package.remark is '备注';
+
+comment on column sys_tenant_package.status is '状态(1正常 0停用)';
+
+comment on column sys_tenant_package.version is '乐观锁';
+
+comment on column sys_tenant_package.del_flag is '删除标志(0代表存在 1代表删除)';
+
+comment on column sys_tenant_package.create_by is '创建者';
+
+comment on column sys_tenant_package.create_time is '创建时间';
+
+comment on column sys_tenant_package.update_by is '更新者';
+
+comment on column sys_tenant_package.update_time is '更新时间';
+
+create table sys_tenant
+(
+    tenant_id         bigint not null,
+    contact_user_name varchar(20)  default NULL::character varying,
+    contact_phone     varchar(20)  default NULL::character varying,
+    company_name      varchar(50)  default NULL::character varying,
+    license_number    varchar(30)  default NULL::character varying,
+    address           varchar(200) default NULL::character varying,
+    intro             varchar(200) default NULL::character varying,
+    domain            varchar(200) default NULL::character varying,
+    remark            varchar(200) default NULL::character varying,
+    package_id        bigint,
+    expire_time       timestamp,
+    account_count     integer      default '-1'::integer,
+    status            char         default '1'::bpchar,
+    version           integer      default 0,
+    del_flag          smallint     default 0,
+    create_by         bigint,
+    create_time       timestamp,
+    update_by         bigint,
+    update_time       timestamp,
+    constraint pk_sys_tenant
+        primary key (tenant_id)
+);
+
+comment on table sys_tenant is '租户表';
+
+comment on column sys_tenant.tenant_id is '租户编号';
+
+comment on column sys_tenant.contact_user_name is '联系人';
+
+comment on column sys_tenant.contact_phone is '联系电话';
+
+comment on column sys_tenant.company_name is '企业名称';
+
+comment on column sys_tenant.license_number is '统一社会信用代码';
+
+comment on column sys_tenant.address is '地址';
+
+comment on column sys_tenant.intro is '企业简介';
+
+comment on column sys_tenant.domain is '域名';
+
+comment on column sys_tenant.remark is '备注';
+
+comment on column sys_tenant.package_id is '租户套餐编号';
+
+comment on column sys_tenant.expire_time is '过期时间';
+
+comment on column sys_tenant.account_count is '用户数量(-1不限制)';
+
+comment on column sys_tenant.status is '租户状态(1正常 0停用)';
+
+comment on column sys_tenant.version is '乐观锁';
+
+comment on column sys_tenant.del_flag is '删除标志(0代表存在 1代表删除)';
+
+comment on column sys_tenant.create_by is '创建者';
+
+comment on column sys_tenant.create_time is '创建时间';
+
+comment on column sys_tenant.update_by is '更新者';
+
+comment on column sys_tenant.update_time is '更新时间';
+
+create table sys_user
+(
+    user_id     bigint                                     not null,
+    tenant_id   bigint,
+    dept_id     bigint,
+    user_name   varchar(30)                                not null,
+    nick_name   varchar(30)                                not null,
+    user_type   varchar(10)  default 'sys_user'::character varying,
+    email       varchar(50)  default ''::character varying not null,
+    phonenumber varchar(11)  default ''::character varying,
+    gender      char         default '0'::bpchar,
+    avatar      bigint,
+    password    varchar(100) default ''::character varying,
+    status      char         default '1'::bpchar,
+    version     integer      default 0,
+    del_flag    smallint     default 0,
+    login_ip    varchar(128) default ''::character varying,
+    login_date  timestamp,
+    create_by   bigint,
+    create_time timestamp,
+    update_by   bigint,
+    update_time timestamp,
+    remark      varchar(500) default NULL::character varying,
+    constraint sys_user_pk
+        primary key (user_id)
+);
+
+comment on table sys_user is '用户信息表';
+
+comment on column sys_user.user_id is '用户ID';
+
+comment on column sys_user.tenant_id is '租户编号';
+
+comment on column sys_user.dept_id is '部门ID';
+
+comment on column sys_user.user_name is '用户账号';
+
+comment on column sys_user.nick_name is '用户昵称';
+
+comment on column sys_user.user_type is '用户类型(sys_user系统用户)';
+
+comment on column sys_user.email is '用户邮箱';
+
+comment on column sys_user.phonenumber is '手机号码';
+
+comment on column sys_user.gender is '用户性别(0男 1女 2未知)';
+
+comment on column sys_user.avatar is '头像地址';
+
+comment on column sys_user.password is '密码';
+
+comment on column sys_user.status is '帐号状态(1正常 0停用)';
+
+comment on column sys_user.version is '乐观锁';
+
+comment on column sys_user.del_flag is '删除标志(0代表存在 1代表删除)';
+
+comment on column sys_user.login_ip is '最后登陆IP';
+
+comment on column sys_user.login_date is '最后登陆时间';
+
+comment on column sys_user.create_by is '创建者';
+
+comment on column sys_user.create_time is '创建时间';
+
+comment on column sys_user.update_by is '更新者';
+
+comment on column sys_user.update_time is '更新时间';
+
+comment on column sys_user.remark is '备注';
+
+create unique index sys_user_unqindex_tenant_username
+    on sys_user (tenant_id, user_name);
+
+create table sys_user_post
+(
+    user_id bigint not null,
+    post_id bigint not null,
+    constraint sys_user_post_pk
+        primary key (user_id, post_id)
+);
+
+comment on table sys_user_post is '用户与岗位关联表';
+
+comment on column sys_user_post.user_id is '用户ID';
+
+comment on column sys_user_post.post_id is '岗位ID';
+
+create table sys_user_role
+(
+    user_id bigint not null,
+    role_id bigint not null,
+    constraint sys_user_role_pk
+        primary key (user_id, role_id)
+);
+
+comment on table sys_user_role is '用户和角色关联表';
+
+comment on column sys_user_role.user_id is '用户ID';
+
+comment on column sys_user_role.role_id is '角色ID';
+
+create function cast_varchar_to_timestamp(character varying) returns timestamp with time zone
+    strict
+    language sql
+as
+$$
+select to_timestamp($1, 'yyyy-mm-dd hh24:mi:ss');
+$$;
+
+create function find_in_set(value anyelement, string_list text) returns integer
+    language plpgsql
+as
+$$
+DECLARE
+    position INTEGER;
+BEGIN
+    IF string_list = '' THEN
+        RETURN 0;
+    ELSE
+        position := array_position(string_to_array(string_list, ','), value::TEXT);
+        RETURN position;
+    END IF;
+END;
+$$;
+

+ 731 - 0
eco-start/src/main/resources/db/pgsql/V1_0_0_2__sys-init-dml.sql

@@ -0,0 +1,731 @@
+INSERT INTO sys_client (id, client_id, client_key, client_secret, grant_type, device_type, active_timeout, timeout,
+                        status, version, del_flag, create_by, create_time, update_by, update_time)
+VALUES (1, 'e5cd7e4891bf95d1d19206ce24a7b32e', 'pc', 'pc123', 'password,social', 'pc', 1800, 604800, '1', 0, 0, 1,
+        '2024-07-02 19:10:38.589172', 1, '2024-07-02 19:10:38.589172');
+INSERT INTO sys_client (id, client_id, client_key, client_secret, grant_type, device_type, active_timeout, timeout,
+                        status, version, del_flag, create_by, create_time, update_by, update_time)
+VALUES (2, '428a8310cd442757ae699df5d894f051', 'app', 'app123', 'password,sms,social', 'android', 1800, 604800, '1', 0,
+        0, 1, '2024-07-02 19:10:38.595159', 1, '2024-07-02 19:10:38.595159');
+
+
+INSERT INTO sys_config (config_id, tenant_id, config_name, config_key, config_value, config_type, version, create_by,
+                        create_time, update_by, update_time, remark)
+VALUES (1, 0, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 0, 1, '2024-07-02 19:10:38.696767',
+        NULL, NULL, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow');
+INSERT INTO sys_config (config_id, tenant_id, config_name, config_key, config_value, config_type, version, create_by,
+                        create_time, update_by, update_time, remark)
+VALUES (2, 0, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 0, 1, '2024-07-02 19:10:38.704711', NULL,
+        NULL, '初始化密码 123456');
+INSERT INTO sys_config (config_id, tenant_id, config_name, config_key, config_value, config_type, version, create_by,
+                        create_time, update_by, update_time, remark)
+VALUES (3, 0, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', 'Y', 0, 1, '2024-07-02 19:10:38.711564', NULL,
+        NULL, '深色主题theme-dark,浅色主题theme-light');
+INSERT INTO sys_config (config_id, tenant_id, config_name, config_key, config_value, config_type, version, create_by,
+                        create_time, update_by, update_time, remark)
+VALUES (5, 0, '账号自助-是否开启用户注册功能', 'sys.account.registerUser', 'false', 'Y', 0, 1,
+        '2024-07-02 19:10:38.719764', NULL, NULL, '是否开启注册用户功能(true开启,false关闭)');
+INSERT INTO sys_config (config_id, tenant_id, config_name, config_key, config_value, config_type, version, create_by,
+                        create_time, update_by, update_time, remark)
+VALUES (6, 0, 'OSS预览列表资源开关', 'sys.oss.previewListResource', 'true', 'Y', 0, 1, '2024-07-02 19:10:38.729447',
+        NULL, NULL, 'true:开启, false:关闭');
+
+
+INSERT INTO sys_dept (dept_id, tenant_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status,
+                      version, del_flag, create_by, create_time, update_by, update_time)
+VALUES (108150551736287232, 0, 1, '0,1', 'XX组', 2, 'eco', '', NULL, '1', 3, 0, 1, '2024-01-25 23:32:40', 1,
+        '2024-06-21 15:15:03.381');
+INSERT INTO sys_dept (dept_id, tenant_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status,
+                      version, del_flag, create_by, create_time, update_by, update_time)
+VALUES (1, 0, 0, '0', 'XX部门', 0, 'eco-admin', '18888888888', 'ecoadmin@wo.cn', '1', 7, 0, 1, '2023-06-03 21:32:28', 1,
+        '2024-06-21 15:15:03.534');
+
+
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (1, 0, 1, '男', '0', 'sys_user_gender', '', '', 'Y', 0, 1, '2023-06-03 21:32:30', 1, '2023-09-20 09:53:27',
+        '性别男');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (2, 0, 2, '女', '1', 'sys_user_gender', '', '', 'N', 0, 1, '2023-06-03 21:32:30', 1, '2023-09-20 09:53:27',
+        '性别女');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (3, 0, 3, '未知', '2', 'sys_user_gender', '', '', 'N', 0, 1, '2023-06-03 21:32:30', 1, '2023-09-20 09:53:27',
+        '性别未知');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (4, 0, 1, '显示', '1', 'sys_show_hide', '', 'primary', 'Y', 0, 1, '2023-06-03 21:32:30', 1, NULL, '显示菜单');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (5, 0, 2, '隐藏', '0', 'sys_show_hide', '', 'danger', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL, '隐藏菜单');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (6, 0, 1, '正常', '1', 'sys_normal_disable', '', 'primary', 'Y', 1, 1, '2023-06-03 21:32:30', 1,
+        '2024-06-25 16:17:22.739', '正常状态');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (7, 0, 2, '停用', '0', 'sys_normal_disable', '', 'danger', 'N', 1, 1, '2023-06-03 21:32:30', 1,
+        '2024-06-25 16:17:28.453', '停用状态');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (8, 0, 1, '正常', '1', 'sys_job_status', '', 'primary', 'Y', 0, 1, '2023-06-03 21:32:30', 1, NULL, '正常状态');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (9, 0, 2, '暂停', '0', 'sys_job_status', '', 'danger', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL, '停用状态');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (10, 0, 1, '默认', 'DEFAULT', 'sys_job_group', '', '', 'Y', 0, 1, '2023-06-03 21:32:30', 1, NULL, '默认分组');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (11, 0, 2, '系统', 'SYSTEM', 'sys_job_group', '', '', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL, '系统分组');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (12, 0, 1, '是', '1', 'sys_yes_no', '', 'primary', 'Y', 1, 1, '2023-06-03 21:32:30', 1,
+        '2024-06-25 17:03:06.185', '系统默认是');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (13, 0, 2, '否', '0', 'sys_yes_no', '', 'danger', 'N', 1, 1, '2023-06-03 21:32:30', 1, '2024-06-25 17:03:13.399',
+        '系统默认否');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (14, 0, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', 0, 1, '2023-06-03 21:32:30', 1, NULL, '通知');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (15, 0, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL, '公告');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (16, 0, 1, '正常', '1', 'sys_notice_status', '', 'primary', 'Y', 0, 1, '2023-06-03 21:32:30', 1, NULL,
+        '正常状态');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (17, 0, 2, '关闭', '0', 'sys_notice_status', '', 'danger', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL,
+        '关闭状态');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (18, 0, 99, '其他', '0', 'sys_oper_type', '', 'info', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL, '其他操作');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (19, 0, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL, '新增操作');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (20, 0, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL, '修改操作');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (21, 0, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL, '删除操作');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (22, 0, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL, '授权操作');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (23, 0, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL, '导出操作');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (24, 0, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL, '导入操作');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (25, 0, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL, '强退操作');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (26, 0, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL,
+        '生成操作');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (27, 0, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL,
+        '清空操作');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (28, 0, 1, '成功', '1', 'sys_common_status', '', 'primary', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL,
+        '正常状态');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (29, 0, 2, '失败', '0', 'sys_common_status', '', 'danger', 'N', 0, 1, '2023-06-03 21:32:30', 1, NULL,
+        '停用状态');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (30, 0, 1, '密码认证', 'password', 'sys_grant_type', 'el-check-tag', 'default', 'N', 0, 1, '2023-10-21 11:10:51',
+        1, '2023-10-21 11:10:51', '密码认证');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (31, 0, 2, '短信认证', 'sms', 'sys_grant_type', 'el-check-tag', 'default', 'N', 0, 1, '2023-10-21 11:10:51', 1,
+        '2023-10-21 11:10:51', '短信认证');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (32, 0, 3, '邮件认证', 'email', 'sys_grant_type', 'el-check-tag', 'default', 'N', 0, 1, '2023-10-21 11:10:51', 1,
+        '2023-10-21 11:10:51', '邮件认证');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (33, 0, 4, '小程序认证', 'xcx', 'sys_grant_type', 'el-check-tag', 'default', 'N', 0, 1, '2023-10-21 11:10:51', 1,
+        '2023-10-21 11:10:51', '小程序认证');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (34, 0, 5, '三方登录认证', 'social', 'sys_grant_type', 'el-check-tag', 'default', 'N', 0, 1,
+        '2023-10-21 11:10:51', 1, '2023-10-21 11:10:51', '三方登录认证');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (35, 0, 1, 'PC', 'pc', 'sys_device_type', '', 'default', 'N', 0, 1, '2023-10-21 11:41:10', 1,
+        '2023-10-21 11:41:10', 'PC');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (36, 0, 2, '安卓', 'android', 'sys_device_type', '', 'default', 'N', 0, 1, '2023-10-21 11:41:10', 1,
+        '2023-10-21 11:41:10', '安卓');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (37, 0, 3, 'iOS', 'ios', 'sys_device_type', '', 'default', 'N', 0, 1, '2023-10-21 11:41:10', 1,
+        '2023-10-21 11:41:10', 'iOS');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (38, 0, 4, '小程序', 'xcx', 'sys_device_type', '', 'default', 'N', 0, 1, '2023-10-21 11:41:10', 1,
+        '2023-10-21 11:41:10', '小程序');
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (105, 0, 0, '计算机', '1', 'sys_goods_type', NULL, 'primary', 'N', 0, 1, '2023-06-05 07:23:48', 1, NULL, NULL);
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (106, 0, 0, '打印设备', '2', 'sys_goods_type', NULL, 'success', 'N', 0, 1, '2023-06-05 07:24:14', 1, NULL, NULL);
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (107, 0, 3, '衣服', '3', 'sys_goods_type', NULL, 'info', 'N', 0, 1, '2023-06-05 07:24:35', 1, NULL, NULL);
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (111, 0, 4, '网络设备', '4', 'sys_goods_type', NULL, 'default', NULL, 0, 1, '2023-09-19 17:31:46', 1,
+        '2023-09-19 17:31:46', NULL);
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (65923231885905920, 0, 1, '桌面微机', 'PC', 'sys_app_type', NULL, 'default', 'N', 0, 1, '2023-10-01 10:56:23', 1,
+        '2023-10-01 10:56:23', NULL);
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (65923379802230784, 0, 2, '平板', 'pad', 'sys_app_type', NULL, 'default', 'N', 0, 1, '2023-10-01 10:56:59', 1,
+        '2023-10-01 10:56:59', NULL);
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (65923470604718080, 0, 3, '手机', 'phone', 'sys_app_type', NULL, 'default', 'N', 0, 1, '2023-10-01 10:57:20', 1,
+        '2023-10-01 10:57:20', NULL);
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (163136166100500480, 0, 1, '是', 'Y', 'sys_y_n', NULL, 'primary', 'N', 0, 1, '2024-06-25 17:05:52.922', 1,
+        '2024-06-25 17:05:52.922', NULL);
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (163136226775302144, 0, 2, '否', 'N', 'sys_y_n', NULL, 'primary', 'N', 0, 1, '2024-06-25 17:06:07.389', 1,
+        '2024-06-25 17:06:07.389', NULL);
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (164977316852162560, 0, 0, '导入', '0', 'excel_type', NULL, NULL, 'N', 0, 1, '2024-06-30 19:01:57.469', 1,
+        '2024-06-30 19:01:57.469', NULL);
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (164977361886404608, 0, 1, '导出', '1', 'excel_type', NULL, NULL, 'N', 0, 1, '2024-06-30 19:02:08.205', 1,
+        '2024-06-30 19:02:08.205', NULL);
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (164977834731266048, 0, 1, '失败', '0', 'excel_status', NULL, 'danger', 'N', 1, 1, '2024-06-30 19:04:00', 1,
+        '2024-06-30 19:04:07.843', NULL);
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (164977927396024320, 0, 0, '成功', '1', 'excel_status', NULL, 'primary', 'N', 0, 1, '2024-06-30 19:04:23.032', 1,
+        '2024-06-30 19:04:23.032', NULL);
+INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class,
+                           is_default, version, create_by, create_time, update_by, update_time, remark)
+VALUES (164977999110234112, 0, 2, '部分成功', '2', 'excel_status', NULL, 'warning', 'N', 1, 1, '2024-06-30 19:04:40', 1,
+        '2024-06-30 19:11:35.009', NULL);
+
+
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (1, 0, '用户性别', 'sys_user_gender', 0, 1, '2023-06-03 21:32:30', 1, '2023-09-20 09:53:27', '用户性别列表');
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (2, 0, '菜单状态', 'sys_show_hide', 0, 1, '2023-06-03 21:32:30', 1, NULL, '菜单状态列表');
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (3, 0, '系统开关', 'sys_normal_disable', 0, 1, '2023-06-03 21:32:30', 1, NULL, '系统开关列表');
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (4, 0, '任务状态', 'sys_job_status', 0, 1, '2023-06-03 21:32:30', 1, NULL, '任务状态列表');
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (5, 0, '任务分组', 'sys_job_group', 0, 1, '2023-06-03 21:32:30', 1, NULL, '任务分组列表');
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (6, 0, '系统是否', 'sys_yes_no', 0, 1, '2023-06-03 21:32:30', 1, NULL, '系统是否列表');
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (7, 0, '通知类型', 'sys_notice_type', 0, 1, '2023-06-03 21:32:30', 1, NULL, '通知类型列表');
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (8, 0, '通知状态', 'sys_notice_status', 0, 1, '2023-06-03 21:32:30', 1, NULL, '通知状态列表');
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (9, 0, '操作类型', 'sys_oper_type', 0, 1, '2023-06-03 21:32:30', 1, NULL, '操作类型列表');
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (10, 0, '系统状态', 'sys_common_status', 0, 1, '2023-06-03 21:32:30', 1, NULL, '登录状态列表');
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (11, 0, '授权类型', 'sys_grant_type', 0, 1, '2023-10-21 11:06:33', 1, '2023-10-21 11:06:33', '认证授权类型');
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (12, 0, '设备类型', 'sys_device_type', 0, 1, '2023-10-21 11:38:41', 1, '2023-10-21 11:38:41', '客户端设备类型');
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (102, 0, '商品种类', 'sys_goods_type', 0, 1, '2023-06-05 07:23:20', 1, NULL, NULL);
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (65922863223361536, 0, '系统类型', 'sys_app_type', 0, 1, '2023-10-01 10:54:55', 1, '2023-10-01 10:54:55',
+        '系统类型列表');
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (118192295228071936, 0, '是否缓存', 'sys_cache', 0, 1, '2024-02-22 16:34:59.09', 1, '2024-02-22 16:34:59.09',
+        NULL);
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (163135360617971712, 0, '系统是否YN', 'sys_y_n', 0, 1, '2024-06-25 17:02:40.88', 1, '2024-06-25 17:02:40.88',
+        '对应值为Y N');
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (164977231074451456, 0, 'Excel类型', 'excel_type', 0, 1, '2024-06-30 19:01:37.018', 1, '2024-06-30 19:01:37.018',
+        NULL);
+INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, version, create_by, create_time, update_by,
+                           update_time, remark)
+VALUES (164977592506015744, 0, 'Excel状态', 'excel_status', 0, 1, '2024-06-30 19:03:03.189', 1,
+        '2024-06-30 19:03:03.189', 'Excel状态');
+
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1011, '角色导出', 101, 5, '', '', '', '0', '1', 'F', '1', '1', 'system:role:export', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1022, '岗位修改', 104, 3, '', '', '', '0', '1', 'F', '1', '1', 'system:post:edit', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1016, '部门查询', 103, 1, '', '', '', '0', '1', 'F', '1', '1', 'system:dept:query', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1018, '部门修改', 103, 3, '', '', '', '0', '1', 'F', '1', '1', 'system:dept:edit', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1020, '岗位查询', 104, 1, '', '', '', '0', '1', 'F', '1', '1', 'system:post:query', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1010, '角色删除', 101, 4, '', '', '', '0', '1', 'F', '1', '1', 'system:role:remove', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1007, '角色查询', 101, 1, '', '', '', '0', '1', 'F', '1', '1', 'system:role:query', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1029, '字典导出', 105, 5, '', '', '', '0', '1', 'F', '1', '1', 'system:dict:export', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1015, '菜单删除', 102, 4, '', '', '', '0', '1', 'F', '1', '1', 'system:menu:remove', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1014, '菜单修改', 102, 3, '', '', '', '0', '1', 'F', '1', '1', 'system:menu:edit', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1013, '菜单新增', 102, 2, '', '', '', '0', '1', 'F', '1', '1', 'system:menu:add', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1023, '岗位删除', 104, 4, '', '', '', '0', '1', 'F', '1', '1', 'system:post:remove', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1012, '菜单查询', 102, 1, '', '', '', '0', '1', 'F', '1', '1', 'system:menu:query', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1024, '岗位导出', 104, 5, '', '', '', '0', '1', 'F', '1', '1', 'system:post:export', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1059, '预览代码', 116, 5, '', '', '', '0', '1', 'F', '1', '1', 'tool:gen:preview', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1060, '生成代码', 116, 6, '', '', '', '0', '1', 'F', '1', '1', 'tool:gen:code', '', 0, 1, '2023-06-03 21:32:29',
+        1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1008, '角色新增', 101, 2, '', '', '', '0', '1', 'F', '1', '1', 'system:role:add', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1600, '文件查询', 118, 1, '', '', '', '0', '1', 'F', '1', '1', 'system:oss:query', '', 0, 1,
+        '2023-12-25 15:09:14.342224', NULL, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1601, '文件上传', 118, 2, '', '', '', '0', '1', 'F', '1', '1', 'system:oss:upload', '', 0, 1,
+        '2023-12-25 15:09:14.342224', NULL, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1602, '文件下载', 118, 3, '', '', '', '0', '1', 'F', '1', '1', 'system:oss:download', '', 0, 1,
+        '2023-12-25 15:09:14.342224', NULL, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1017, '部门新增', 103, 2, '', '', '', '0', '1', 'F', '1', '1', 'system:dept:add', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1021, '岗位新增', 104, 2, '', '', '', '0', '1', 'F', '1', '1', 'system:post:add', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1019, '部门删除', 103, 4, '', '', '', '0', '1', 'F', '1', '1', 'system:dept:remove', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1009, '角色修改', 101, 3, '', '', '', '0', '1', 'F', '1', '1', 'system:role:edit', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1025, '字典查询', 105, 1, '', '', '', '0', '1', 'F', '1', '1', 'system:dict:query', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1026, '字典新增', 105, 2, '', '', '', '0', '1', 'F', '1', '1', 'system:dict:add', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1027, '字典修改', 105, 3, '', '', '', '0', '1', 'F', '1', '1', 'system:dict:edit', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1028, '字典删除', 105, 4, '', '', '', '0', '1', 'F', '1', '1', 'system:dict:remove', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1039, '操作查询', 500, 1, '', '', '', '0', '1', 'F', '1', '1', 'monitor:operlog:query', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1040, '操作删除', 500, 2, '', '', '', '0', '1', 'F', '1', '1', 'monitor:operlog:remove', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1041, '日志导出', 500, 3, '', '', '', '0', '1', 'F', '1', '1', 'monitor:operlog:export', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1042, '登录查询', 501, 1, '', '', '', '0', '1', 'F', '1', '1', 'monitor:logininfor:query', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1043, '登录删除', 501, 2, '', '', '', '0', '1', 'F', '1', '1', 'monitor:logininfor:remove', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1044, '日志导出', 501, 3, '', '', '', '0', '1', 'F', '1', '1', 'monitor:logininfor:export', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1045, '账户解锁', 501, 4, '', '', '', '0', '1', 'F', '1', '1', 'monitor:logininfor:unlock', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1000, '用户查询', 100, 1, '', '', '', '0', '1', 'F', '1', '1', 'system:user:query', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1055, '生成查询', 116, 1, '', '', '', '0', '1', 'F', '1', '1', 'tool:gen:query', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1056, '生成修改', 116, 2, '', '', '', '0', '1', 'F', '1', '1', 'tool:gen:edit', '', 0, 1, '2023-06-03 21:32:29',
+        1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1057, '生成删除', 116, 3, '', '', '', '0', '1', 'F', '1', '1', 'tool:gen:remove', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1001, '用户新增', 100, 2, '', '', '', '0', '1', 'F', '1', '1', 'system:user:add', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1002, '用户修改', 100, 3, '', '', '', '0', '1', 'F', '1', '1', 'system:user:edit', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1603, '文件删除', 118, 4, '', '', '', '0', '1', 'F', '1', '1', 'system:oss:remove', '', 0, 1,
+        '2023-12-25 15:09:14.342224', NULL, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1620, '配置列表', 118, 5, '', '', '', '0', '1', 'F', '1', '1', 'system:ossConfig:list', '', 0, 1,
+        '2023-12-25 15:09:14.342224', NULL, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1621, '配置添加', 118, 6, '', '', '', '0', '1', 'F', '1', '1', 'system:ossConfig:add', '', 0, 1,
+        '2023-12-25 15:09:14.342224', NULL, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1622, '配置编辑', 118, 6, '', '', '', '0', '1', 'F', '1', '1', 'system:ossConfig:edit', '', 0, 1,
+        '2023-12-25 15:09:14.342224', NULL, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1623, '配置删除', 118, 6, '', '', '', '0', '1', 'F', '1', '1', 'system:ossConfig:remove', '', 0, 1,
+        '2023-12-25 15:09:14.342224', NULL, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1003, '用户删除', 100, 4, '', '', '', '0', '1', 'F', '1', '1', 'system:user:remove', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1004, '用户导出', 100, 5, '', '', '', '0', '1', 'F', '1', '1', 'system:user:export', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1005, '用户导入', 100, 6, '', '', '', '0', '1', 'F', '1', '1', 'system:user:import', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1006, '重置密码', 100, 7, '', '', '', '0', '1', 'F', '1', '1', 'system:user:resetPwd', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1058, '导入代码', 116, 4, '', '', '', '0', '1', 'F', '1', '1', 'tool:gen:import', '', 0, 1,
+        '2023-06-03 21:32:29', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (103, '部门管理', 1, 4, '/system/dept', 'system/dept/index', '', '0', '1', 'C', '1', '1', 'system:dept:list',
+        'user', 1, 1, '2023-06-03 21:32:28', 1, '2024-06-20 23:09:12.86', '部门管理菜单', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (3, '系统工具', 0, 40, 'tool', NULL, '', '0', '1', 'M', '1', '1', '', 'Setting', 4, 1, '2023-06-03 21:32:28', 1,
+        '2024-07-02 11:13:23.957', '系统工具目录', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (100, '用户管理', 1, 1, '/system/user', 'system/user/index', '', '0', '1', 'C', '1', '1', 'system:user:list',
+        'User', 10, 1, '2023-06-03 21:32:28', 1, '2024-06-20 23:06:29.359', '用户管理菜单', 'User');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (101, '角色管理', 1, 2, '/system/role', 'system/role/index', '', '0', '1', 'C', '1', '1', 'system:role:list',
+        'peoples', 5, 1, '2023-06-03 21:32:28', 1, '2024-06-26 00:02:56.851', '角色管理菜单', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (102, '菜单管理', 1, 3, '/system/menu', 'system/menu/index', '', '0', '1', 'C', '1', '1', 'system:menu:list',
+        'Menu', 3, 1, '2023-06-03 21:32:28', 1, '2024-06-26 00:03:41.324', '菜单管理菜单', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (1, '系统管理', 0, 10, 'system', NULL, '', '0', '1', 'M', '1', '1', '', 'system', 11, 1, '2023-06-03 21:32:28',
+        1, '2024-07-02 11:13:16.88', '系统管理目录', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (116, '代码生成', 3, 0, '/tool/gen', 'tool/gen/index', '', '0', '1', 'C', '1', '1', 'tool:gen:list', 'code', 3,
+        1, '2023-06-03 21:32:28', 1, '2024-06-20 23:10:40.608', '代码生成菜单', 'gen');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (105, '字典管理', 1, 6, '/system/dict', 'system/dict/index', '', '0', '1', 'C', '1', '1', 'system:dict:list',
+        'dict', 1, 1, '2023-06-03 21:32:28', 1, '2024-06-20 23:09:49.77', '字典管理菜单', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (500, '操作日志', 108, 1, '/monitor/operlog', 'monitor/operlog/index', '', '0', '1', 'C', '1', '1',
+        'monitor:operlog:list', 'logininfor', 1, 1, '2023-06-03 21:32:29', 1, '2024-06-20 23:10:59.271', '操作日志菜单',
+        NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (104, '岗位管理', 1, 5, '/system/post', 'system/post/index', '', '0', '1', 'C', '1', '1', 'system:post:list',
+        'Connection', 1, 1, '2023-06-03 21:32:28', 1, '2024-06-20 23:09:27.49', '岗位管理菜单', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (108, '日志管理', 1, 9, 'log', '', '', '0', '1', 'M', '1', '1', '', 'log', 1, 1, '2023-06-03 21:32:28', 1,
+        '2024-06-20 23:09:58.829', '日志管理菜单', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (501, '登录日志', 108, 2, '/monitor/logininfor', 'monitor/logininfor/index', '', '0', '1', 'C', '1', '1',
+        'monitor:logininfor:list', 'logininfor', 1, 1, '2023-06-03 21:32:29', 1, '2024-06-20 23:11:12.076',
+        '登录日志菜单', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (118, '文件管理', 1, 10, '/system/oss', 'system/oss/index', '', '0', '1', 'C', '1', '1', 'system:oss:list',
+        'Files', 1, 1, '2023-12-03 08:46:11', 1, '2024-06-20 23:10:13.192', '文件管理菜单', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (2024062414053900, '系统配置', 1, 11, '/system/config', 'system/config/index', NULL, '0', '1', 'C', '1', '1',
+        'system:config:list', 'system', 5, 1, '2024-06-24 14:06:29.531', 1, '2024-06-25 22:46:45.372', '参数配置菜单',
+        'config');
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (2024062414053901, '系统配置查询', 2024062414053900, 1, '', '', NULL, '0', '1', 'F', '1', '1',
+        'system:config:query', '', 0, 1, '2024-06-24 14:06:29.547', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (2024062414053902, '系统配置新增', 2024062414053900, 2, '', '', NULL, '0', '1', 'F', '1', '1',
+        'system:config:add', '', 0, 1, '2024-06-24 14:06:29.563', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (2024062414053903, '系统配置修改', 2024062414053900, 3, '', '', NULL, '0', '1', 'F', '1', '1',
+        'system:config:edit', '', 0, 1, '2024-06-24 14:06:29.579', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (2024062414053904, '系统配置删除', 2024062414053900, 4, '', '', NULL, '0', '1', 'F', '1', '1',
+        'system:config:remove', '', 0, 1, '2024-06-24 14:06:29.594', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (2024062414053905, '系统配置导出', 2024062414053900, 5, '', '', NULL, '0', '1', 'F', '1', '1',
+        'system:config:export', '', 0, 1, '2024-06-24 14:06:29.61', 1, NULL, '', NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (165584491999055872, '系统监控', 0, 30, 'monitor', NULL, NULL, '0', NULL, 'M', '1', '1', NULL, 'monitor', 0, 1,
+        '2024-07-02 11:14:39.303', 1, '2024-07-02 11:14:39.303', NULL, NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (165640125234753536, '任务调度', 165584491999055872, 10, '/monitor/powerjob', 'monitor/powerjob/index', NULL,
+        '0', '1', 'C', '1', '1', NULL, 'job', 0, 1, '2024-07-02 14:55:43.3', 1, '2024-07-02 14:55:43.3', NULL, NULL);
+INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache,
+                      menu_type, visible, status, perms, icon, version, create_by, create_time, update_by, update_time,
+                      remark, component_name)
+VALUES (165640396031602688, '服务监控', 165584491999055872, 20, '/monitor/admin', 'monitor/admin/index', NULL, '0', '1',
+        'C', '1', '1', NULL, 'server', 0, 1, '2024-07-02 14:56:47.863', 1, '2024-07-02 14:56:47.863', NULL, NULL);
+
+
+INSERT INTO sys_oss_config (oss_config_id, tenant_id, config_key, access_key, secret_key, bucket_name, prefix, endpoint,
+                            domain_name, is_https, region, access_policy, status, ext1, version, create_by, create_time,
+                            update_by, update_time, remark)
+VALUES (1, 0, 'minio', 'rzbRpmQLtD49FRwDU0kW', '3EcOTTxS9btVQlt9pXFAsM3p7E557B5kqn0aNKbx', 'eco-bucket', '',
+        '127.0.0.1:9000', '', 'N', '', '1', '1', '', 3, 1, '2023-11-30 11:54:13', 1, '2024-06-25 18:53:12.414', NULL);
+INSERT INTO sys_oss_config (oss_config_id, tenant_id, config_key, access_key, secret_key, bucket_name, prefix, endpoint,
+                            domain_name, is_https, region, access_policy, status, ext1, version, create_by, create_time,
+                            update_by, update_time, remark)
+VALUES (2, 0, 'qiniu', 'eco-qiniu', 'eco-qiniu', 'eco-bucket', '', 's3-cn-north-1.qiniucs.com', '', 'N', '', '1', '0',
+        '', 6, 1, '2023-11-30 11:54:13', 1, '2024-06-28 15:43:47.324', NULL);
+INSERT INTO sys_oss_config (oss_config_id, tenant_id, config_key, access_key, secret_key, bucket_name, prefix, endpoint,
+                            domain_name, is_https, region, access_policy, status, ext1, version, create_by, create_time,
+                            update_by, update_time, remark)
+VALUES (3, 0, 'aliyun', 'eco-aliyun', 'eco-aliyun', 'eco-bucket', '', 'oss-cn-beijing.aliyuncs.com', '', 'N', '', '1',
+        '0', '', 2, 1, '2023-11-30 11:54:13', 1, '2024-06-24 17:56:15.621', NULL);
+INSERT INTO sys_oss_config (oss_config_id, tenant_id, config_key, access_key, secret_key, bucket_name, prefix, endpoint,
+                            domain_name, is_https, region, access_policy, status, ext1, version, create_by, create_time,
+                            update_by, update_time, remark)
+VALUES (4, 0, 'qcloud', 'eco-qcloud', 'eco-qcloud', 'eco-bucket', '', 'cos.ap-beijing.myqcloud.com', '', 'N', '', '1',
+        '0', '', 2, 1, '2023-11-30 11:54:13', 1, '2024-06-24 17:56:28.199', NULL);
+INSERT INTO sys_oss_config (oss_config_id, tenant_id, config_key, access_key, secret_key, bucket_name, prefix, endpoint,
+                            domain_name, is_https, region, access_policy, status, ext1, version, create_by, create_time,
+                            update_by, update_time, remark)
+VALUES (5, 0, 'local', 'eco-local', 'eco-local', 'eco-bucket', '', 'localhost', '', 'N', '', '1', '0', '', 8, 1,
+        '2024-06-25 15:35:13', 1, '2024-06-26 11:07:04.099', '');
+
+INSERT INTO sys_post (post_id, tenant_id, post_code, post_name, post_sort, status, version, create_by, create_time,
+                      update_by, update_time, remark)
+VALUES (1, 0, 'ceo', '董事长', 1, '1', 0, 1, '2023-06-03 21:32:28', 1, '2023-09-02 15:43:55', '');
+INSERT INTO sys_post (post_id, tenant_id, post_code, post_name, post_sort, status, version, create_by, create_time,
+                      update_by, update_time, remark)
+VALUES (2, 0, 'se', '项目经理', 2, '1', 0, 1, '2023-06-03 21:32:28', 1, NULL, '');
+INSERT INTO sys_post (post_id, tenant_id, post_code, post_name, post_sort, status, version, create_by, create_time,
+                      update_by, update_time, remark)
+VALUES (3, 0, 'hr', '人力资源', 3, '1', 0, 1, '2023-06-03 21:32:28', 1, NULL, '');
+INSERT INTO sys_post (post_id, tenant_id, post_code, post_name, post_sort, status, version, create_by, create_time,
+                      update_by, update_time, remark)
+VALUES (4, 0, 'users', '普通员工', 4, '1', 0, 1, '2023-06-03 21:32:28', 1, '2023-07-13 21:30:24', '');
+INSERT INTO sys_post (post_id, tenant_id, post_code, post_name, post_sort, status, version, create_by, create_time,
+                      update_by, update_time, remark)
+VALUES (5, 0, 'deptLeader', '部门管理岗', 5, '1', 0, 1, '2023-10-01 10:33:39', 1, '2023-10-01 10:33:39',
+        '部门负责人岗位');
+
+INSERT INTO sys_role (role_id, tenant_id, role_name, role_key, role_sort, data_scope, menu_check_strictly,
+                      dept_check_strictly, status, version, del_flag, create_by, create_time, update_by, update_time,
+                      remark)
+VALUES (1, 0, '超级管理员角色', 'superAdmin', 1, '1', true, true, '1', 0, 0, 1, '2023-06-03 21:32:28', 1, NULL,
+        '超级管理员');
+INSERT INTO sys_role (role_id, tenant_id, role_name, role_key, role_sort, data_scope, menu_check_strictly,
+                      dept_check_strictly, status, version, del_flag, create_by, create_time, update_by, update_time,
+                      remark)
+VALUES (165323792564117504, 0, 'redst', 'erer', 1, '1', true, true, '1', 3, 0, 1, '2024-07-01 17:58:43.716', 1,
+        '2024-07-01 18:07:56.137', NULL);
+
+INSERT INTO sys_tenant (tenant_id, contact_user_name, contact_phone, company_name, license_number, address, intro,
+                        domain, remark, package_id, expire_time, account_count, status, version, del_flag, create_by,
+                        create_time, update_by, update_time)
+VALUES (0, '联系人', '18888888888', 'eco', NULL, NULL, '多租户通用后台管理管理系统', NULL, NULL, NULL, NULL, -1, '1', 0,
+        0, 1, '2023-08-13 08:08:08', NULL, NULL);
+
+
+INSERT INTO sys_user (user_id, tenant_id, dept_id, user_name, nick_name, user_type, email, phonenumber, gender, avatar,
+                      password, status, version, del_flag, login_ip, login_date, create_by, create_time, update_by,
+                      update_time, remark)
+VALUES (1, 0, 1, 'superadmin', '超级管理员', 'sys_user', 'eco@eco.com', '15888888888', '1', NULL,
+        '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '1', 0, 0, '0:0:0:0:0:0:0:1',
+        '2023-12-18 10:57:01', 1, '2023-06-03 21:32:28', 1, '2023-12-18 10:57:01', '管理员');
+