From 816022de986f97869923dc8024e4985242a9068e Mon Sep 17 00:00:00 2001
From: liufan9527 <937359084@qq.com>
Date: 星期三, 27 十一月 2024 09:39:49 +0800
Subject: [PATCH] Merge branch 'master' of http://103.135.160.14:9034/r/se-cloud

---
 se-modules/se-system/src/main/resources/mapper/system/SysJobLogMapper.xml                     |    2 
 se-modules/se-system/src/main/java/com/se/system/mapper/SysJobMapper.java                     |    5 
 .gitignore                                                                                    |    1 
 se-modules/se-system/src/main/java/com/se/system/mapper/SysJobLogMapper.java                  |    5 
 se-modules/se-system/src/main/java/com/se/system/service/inte/ISysJobLogService.java          |    5 
 se-modules/se-system/src/main/java/com/se/system/controller/SysJobController.java             |   31 +-
 se-modules/se-system/src/main/java/com/se/system/service/inte/IGenTableService.java           |    5 
 se-modules/se-system/src/main/java/com/se/system/domain/GenTableColumn.java                   |    6 
 se-modules/se-system/src/main/java/com/se/system/mapper/GenTableMapper.java                   |    5 
 se-modules/se-system/src/main/java/com/se/system/utils/VelocityInitializer.java               |    7 
 se-modules/se-system/src/main/java/com/se/system/service/inte/IGenTableColumnService.java     |    5 
 pom.xml                                                                                       |    2 
 se-modules/se-system/src/main/java/com/se/system/utils/RyTask.java                            |    4 
 se-modules/se-system/src/main/java/com/se/system/utils/JobInvokeUtil.java                     |    9 
 se-modules/se-system/src/main/java/com/se/system/controller/GenController.java                |   41 +--
 se-modules/se-system/src/main/java/com/se/system/domain/GenTable.java                         |   11 
 se-modules/se-system/src/main/java/com/se/system/mapper/GenTableColumnMapper.java             |    5 
 se-modules/se-system/src/main/java/com/se/system/utils/QuartzDisallowConcurrentExecution.java |    4 
 se-modules/se-system/src/main/java/com/se/system/domain/SysJob.java                           |   15 
 se-modules/se-system/src/main/resources/mapper/system/GenTableColumnMapper.xml                |    2 
 se-modules/se-system/src/main/resources/mapper/system/GenTableMapper.xml                      |    2 
 se-modules/se-system/src/main/java/com/se/system/config/ScheduleConfig.java                   |    2 
 se-modules/se-system/src/main/java/com/se/system/service/impl/GenTableServiceImpl.java        |   59 ++--
 se-modules/pom.xml                                                                            |    4 
 se-modules/se-system/src/main/java/com/se/system/service/inte/ISysJobService.java             |    9 
 se-modules/se-system/src/main/java/com/se/system/utils/VelocityUtils.java                     |   18 
 se-modules/se-system/src/main/java/com/se/system/controller/SysJobLogController.java          |   23 -
 se-modules/se-system/src/main/java/com/se/system/config/GenConfig.java                        |    2 
 se-modules/se-system/src/main/java/com/se/system/controller/IndexController.java              |   95 ++++++++
 se-modules/se-system/src/main/java/com/se/system/service/impl/GenTableColumnServiceImpl.java  |   19 
 se-modules/se-system/src/main/java/com/se/system/utils/QuartzJobExecution.java                |    4 
 说明.txt                                                                                        |   31 ++
 se-modules/se-system/src/main/java/com/se/system/utils/ScheduleUtils.java                     |    4 
 se-modules/se-system/src/main/resources/mapper/system/SysJobMapper.xml                        |    2 
 se-modules/se-system/src/main/java/com/se/system/service/impl/SysJobServiceImpl.java          |   25 +-
 /dev/null                                                                                     |   74 ------
 se-modules/se-system/pom.xml                                                                  |   36 ++
 se-modules/se-system/src/main/java/com/se/system/utils/CronUtils.java                         |    5 
 se-modules/se-system/src/main/java/com/se/system/domain/SysJobLog.java                        |    9 
 se-modules/se-system/src/main/java/com/se/system/utils/GenUtils.java                          |   14 
 se-modules/se-system/src/main/java/com/se/system/service/impl/SysJobLogServiceImpl.java       |   14 
 se-modules/se-system/src/main/java/com/se/system/utils/AbstractQuartzJob.java                 |   22 +-
 42 files changed, 355 insertions(+), 288 deletions(-)

diff --git a/.gitignore b/.gitignore
index 08a2bba..c350549 100644
--- a/.gitignore
+++ b/.gitignore
@@ -50,3 +50,4 @@
 /docker-compose/mysql/data
 /docker-compose/nacos/logs/nacos_gc.log.0.current
 /docker-compose/redis/data/dump.rdb
+/bak
diff --git "a/504/\345\212\237\350\203\275\345\210\227\350\241\250.xlsx" "b/504/\345\212\237\350\203\275\345\210\227\350\241\250.xlsx"
deleted file mode 100644
index 03dd8c2..0000000
--- "a/504/\345\212\237\350\203\275\345\210\227\350\241\250.xlsx"
+++ /dev/null
Binary files differ
diff --git a/docker/copy.sh b/docker/copy.sh
deleted file mode 100644
index 16a6645..0000000
--- a/docker/copy.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh
-
-# 澶嶅埗椤圭洰鐨勬枃浠跺埌瀵瑰簲docker璺緞锛屼究浜庝竴閿敓鎴愰暅鍍忋��
-usage() {
-	echo "Usage: sh copy.sh"
-	exit 1
-}
-
-
-# copy sql
-echo "begin copy sql "
-cp ../sql/ry_20231130.sql ./mysql/db
-cp ../sql/ry_config_20231204.sql ./mysql/db
-
-# copy html
-echo "begin copy html "
-cp -r ../se-ui/dist/** ./nginx/html/dist
-
-
-# copy jar
-echo "begin copy se-gateway "
-cp ../se-gateway/target/se-gateway.jar ./se/gateway/jar
-
-echo "begin copy se-auth "
-cp ../se-auth/target/se-auth.jar ./se/auth/jar
-
-echo "begin copy se-visual "
-cp ../se-visual/se-monitor/target/se-visual-monitor.jar  ./se/visual/monitor/jar
-
-echo "begin copy se-modules-system "
-cp ../se-modules/se-system/target/se-modules-system.jar ./se/modules/system/jar
-
-echo "begin copy se-modules-file "
-cp ../se-modules/se-file/target/se-modules-file.jar ./se/modules/file/jar
-
-echo "begin copy se-modules-job "
-cp ../se-modules/se-job/target/se-modules-job.jar ./se/modules/job/jar
-
-echo "begin copy se-modules-gen "
-cp ../se-modules/se-gen/target/se-modules-gen.jar ./se/modules/gen/jar
-
diff --git a/docker/deploy.sh b/docker/deploy.sh
deleted file mode 100644
index 4ede910..0000000
--- a/docker/deploy.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/sh
-
-# 浣跨敤璇存槑锛岀敤鏉ユ彁绀鸿緭鍏ュ弬鏁�
-usage() {
-	echo "Usage: sh 鎵ц鑴氭湰.sh [port|base|modules|stop|rm]"
-	exit 1
-}
-
-# 寮�鍚墍闇�绔彛
-port(){
-	firewall-cmd --add-port=80/tcp --permanent
-	firewall-cmd --add-port=8080/tcp --permanent
-	firewall-cmd --add-port=8848/tcp --permanent
-	firewall-cmd --add-port=9848/tcp --permanent
-	firewall-cmd --add-port=9849/tcp --permanent
-	firewall-cmd --add-port=6379/tcp --permanent
-	firewall-cmd --add-port=3306/tcp --permanent
-	firewall-cmd --add-port=9100/tcp --permanent
-	firewall-cmd --add-port=9200/tcp --permanent
-	firewall-cmd --add-port=9201/tcp --permanent
-	firewall-cmd --add-port=9202/tcp --permanent
-	firewall-cmd --add-port=9203/tcp --permanent
-	firewall-cmd --add-port=9300/tcp --permanent
-	service firewalld restart
-}
-
-# 鍚姩鍩虹鐜锛堝繀椤伙級
-base(){
-	docker-compose up -d se-mysql se-redis se-nacos
-}
-
-# 鍚姩绋嬪簭妯″潡锛堝繀椤伙級
-modules(){
-	docker-compose up -d se-nginx se-gateway se-auth se-modules-system
-}
-
-# 鍏抽棴鎵�鏈夌幆澧�/妯″潡
-stop(){
-	docker-compose stop
-}
-
-# 鍒犻櫎鎵�鏈夌幆澧�/妯″潡
-rm(){
-	docker-compose rm
-}
-
-# 鏍规嵁杈撳叆鍙傛暟锛岄�夋嫨鎵ц瀵瑰簲鏂规硶锛屼笉杈撳叆鍒欐墽琛屼娇鐢ㄨ鏄�
-case "$1" in
-"port")
-	port
-;;
-"base")
-	base
-;;
-"modules")
-	modules
-;;
-"stop")
-	stop
-;;
-"rm")
-	rm
-;;
-*)
-	usage
-;;
-esac
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
deleted file mode 100644
index c79f239..0000000
--- a/docker/docker-compose.yml
+++ /dev/null
@@ -1,140 +0,0 @@
-version : '3.8'
-services:
-  se-nacos:
-    container_name: se-nacos
-    image: nacos/nacos-server:2.3.2
-    build:
-      context: ./nacos
-    environment:
-      - MODE=standalone
-    volumes:
-      - ./nacos/logs/:/home/nacos/logs
-      - ./nacos/conf/application.properties:/home/nacos/conf/application.properties
-    ports:
-      - "8848:8848"
-      - "9848:9848"
-      - "9849:9849"
-    depends_on:
-      - se-mysql
-  se-mysql:
-    container_name: se-mysql
-    image: mysql:5.7
-    build:
-      context: ./mysql
-    ports:
-      - "3306:3306"
-    volumes:
-      - ./mysql/conf:/etc/mysql/conf.d
-      - ./mysql/logs:/logs
-      - ./mysql/data:/var/lib/mysql
-    command: [
-          'mysqld',
-          '--innodb-buffer-pool-size=80M',
-          '--character-set-server=utf8mb4',
-          '--collation-server=utf8mb4_unicode_ci',
-          '--default-time-zone=+8:00',
-          '--lower-case-table-names=1'
-        ]
-    environment:
-      MYSQL_DATABASE: 'ry-cloud'
-      MYSQL_ROOT_PASSWORD: password
-  se-redis:
-    container_name: se-redis
-    image: redis:latest
-    build:
-      context: ./redis
-    ports:
-      - "6379:6379"
-    volumes:
-      - ./redis/conf/redis.conf:/home/se/redis/redis.conf
-      - ./redis/data:/data
-    command: redis-server /home/se/redis/redis.conf
-  se-nginx:
-    container_name: se-nginx
-    image: nginx:latest
-    build:
-      context: ./nginx
-    ports:
-      - "80:80"
-    volumes:
-      - ./nginx/html/dist:/home/se/projects/se-ui
-      - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-      - ./nginx/logs:/var/log/nginx
-      - ./nginx/conf.d:/etc/nginx/conf.d
-    depends_on:
-      - se-gateway
-    links:
-      - se-gateway
-  se-gateway:
-    container_name: se-gateway
-    build:
-      context: ./se/gateway
-      dockerfile: dockerfile
-    ports:
-      - "8080:8080"
-    depends_on:
-      - se-redis
-    links:
-      - se-redis
-  se-auth:
-    container_name: se-auth
-    build:
-      context: ./se/auth
-      dockerfile: dockerfile
-    ports:
-      - "9200:9200"
-    depends_on:
-      - se-redis
-    links:
-      - se-redis
-  se-modules-system:
-    container_name: se-modules-system
-    build:
-      context: ./se/modules/system
-      dockerfile: dockerfile
-    ports:
-      - "9201:9201"
-    depends_on:
-      - se-redis
-      - se-mysql
-    links:
-      - se-redis
-      - se-mysql
-  se-modules-gen:
-    container_name: se-modules-gen
-    build:
-      context: ./se/modules/gen
-      dockerfile: dockerfile
-    ports:
-      - "9202:9202"
-    depends_on:
-      - se-mysql
-    links:
-      - se-mysql
-  se-modules-job:
-    container_name: se-modules-job
-    build:
-      context: ./se/modules/job
-      dockerfile: dockerfile
-    ports:
-      - "9203:9203"
-    depends_on:
-      - se-mysql
-    links:
-      - se-mysql
-  se-modules-file:
-    container_name: se-modules-file
-    build:
-      context: ./se/modules/file
-      dockerfile: dockerfile
-    ports:
-      - "9300:9300"
-    volumes:
-    - ./se/uploadPath:/home/se/uploadPath
-  se-visual-monitor:
-    container_name: se-visual-monitor
-    build:
-      context: ./se/visual/monitor
-      dockerfile: dockerfile
-    ports:
-      - "9100:9100"
diff --git a/docker/mysql/db/readme.txt b/docker/mysql/db/readme.txt
deleted file mode 100644
index 0b22f3f..0000000
--- a/docker/mysql/db/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-存放sql目录下的所有脚本,用于docker自动执行。
\ No newline at end of file
diff --git a/docker/mysql/dockerfile b/docker/mysql/dockerfile
deleted file mode 100644
index 942fa02..0000000
--- a/docker/mysql/dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-# 鍩虹闀滃儚
-FROM mysql:5.7
-# author
-MAINTAINER se
-
-# 鎵цsql鑴氭湰
-ADD ./db/*.sql /docker-entrypoint-initdb.d/
diff --git a/docker/nacos/conf/application.properties b/docker/nacos/conf/application.properties
deleted file mode 100644
index 3be2b39..0000000
--- a/docker/nacos/conf/application.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-spring.datasource.platform=mysql
-db.num=1
-db.url.0=jdbc:mysql://se-mysql:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
-db.user=root
-db.password=password
-
-nacos.naming.empty-service.auto-clean=true
-nacos.naming.empty-service.clean.initial-delay-ms=50000
-nacos.naming.empty-service.clean.period-time-ms=30000
-
-management.endpoints.web.exposure.include=*
-
-management.metrics.export.elastic.enabled=false
-management.metrics.export.influx.enabled=false
-
-server.tomcat.accesslog.enabled=true
-server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
-
-server.tomcat.basedir=/home/se/nacos/tomcat/logs
-
-nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**
-
-nacos.core.auth.system.type=nacos
-nacos.core.auth.enabled=false
-nacos.core.auth.default.token.expire.seconds=18000
-nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
-nacos.core.auth.caching.enabled=true
-nacos.core.auth.enable.userAgentAuthWhite=false
-nacos.core.auth.server.identity.key=serverIdentity
-nacos.core.auth.server.identity.value=security
-
-nacos.istio.mcp.server.enabled=false
diff --git a/docker/nacos/dockerfile b/docker/nacos/dockerfile
deleted file mode 100644
index 6262eca..0000000
--- a/docker/nacos/dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-# 鍩虹闀滃儚
-FROM nacos/nacos-server:2.3.2
-# author
-MAINTAINER se
-
-# 澶嶅埗conf鏂囦欢鍒拌矾寰�
-COPY ./conf/application.properties /home/nacos/conf/application.properties
diff --git a/docker/nginx/conf/nginx.conf b/docker/nginx/conf/nginx.conf
deleted file mode 100644
index 2e46854..0000000
--- a/docker/nginx/conf/nginx.conf
+++ /dev/null
@@ -1,41 +0,0 @@
-worker_processes  1;
-
-events {
-    worker_connections  1024;
-}
-
-http {
-    include       mime.types;
-    default_type  application/octet-stream;
-    sendfile        on;
-    keepalive_timeout  65;
-
-    server {
-        listen       80;
-        server_name  localhost;
-
-        location / {
-            root   /home/se/projects/se-ui;
-            try_files $uri $uri/ /index.html;
-            index  index.html index.htm;
-        }
-
-        location /prod-api/{
-            proxy_set_header Host $http_host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header REMOTE-HOST $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_pass http://se-gateway:8080/;
-        }
-
-        # 閬垮厤actuator鏆撮湶
-        if ($request_uri ~ "/actuator") {
-            return 403;
-        }
-
-        error_page   500 502 503 504  /50x.html;
-        location = /50x.html {
-            root   html;
-        }
-    }
-}
\ No newline at end of file
diff --git a/docker/nginx/dockerfile b/docker/nginx/dockerfile
deleted file mode 100644
index 1e730cc..0000000
--- a/docker/nginx/dockerfile
+++ /dev/null
@@ -1,15 +0,0 @@
-# 鍩虹闀滃儚
-FROM nginx:latest
-# author
-MAINTAINER se
-
-# 鎸傝浇鐩綍
-VOLUME /home/se/projects/se-ui
-# 鍒涘缓鐩綍
-RUN mkdir -p /home/se/projects/se-ui
-# 鎸囧畾璺緞
-WORKDIR /home/se/projects/se-ui
-# 澶嶅埗conf鏂囦欢鍒拌矾寰�
-COPY ./conf/nginx.conf /etc/nginx/nginx.conf
-# 澶嶅埗html鏂囦欢鍒拌矾寰�
-COPY ./html/dist /home/se/projects/se-ui
diff --git a/docker/nginx/html/dist/readme.txt b/docker/nginx/html/dist/readme.txt
deleted file mode 100644
index 2538ab0..0000000
--- a/docker/nginx/html/dist/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-瀛樻斁鍓嶇se-ui鏋勫缓濂界殑闈欐�佹枃浠讹紝鐢ㄤ簬nginx璇锋眰璁块棶銆�
\ No newline at end of file
diff --git a/docker/redis/conf/redis.conf b/docker/redis/conf/redis.conf
deleted file mode 100644
index d762d65..0000000
--- a/docker/redis/conf/redis.conf
+++ /dev/null
@@ -1 +0,0 @@
-# requirepass 123456
\ No newline at end of file
diff --git a/docker/redis/dockerfile b/docker/redis/dockerfile
deleted file mode 100644
index 1e4ac70..0000000
--- a/docker/redis/dockerfile
+++ /dev/null
@@ -1,13 +0,0 @@
-# 鍩虹闀滃儚
-FROM redis:latest
-# author
-MAINTAINER se
-
-# 鎸傝浇鐩綍
-VOLUME /home/se/redis
-# 鍒涘缓鐩綍
-RUN mkdir -p /home/se/redis
-# 鎸囧畾璺緞
-WORKDIR /home/se/redis
-# 澶嶅埗conf鏂囦欢鍒拌矾寰�
-COPY ./conf/redis.conf /home/se/redis/redis.conf
diff --git a/docker/se/auth/dockerfile b/docker/se/auth/dockerfile
deleted file mode 100644
index 6ef216b..0000000
--- a/docker/se/auth/dockerfile
+++ /dev/null
@@ -1,15 +0,0 @@
-# 鍩虹闀滃儚
-FROM  openjdk:8-jre
-# author
-MAINTAINER se
-
-# 鎸傝浇鐩綍
-VOLUME /home/se
-# 鍒涘缓鐩綍
-RUN mkdir -p /home/se
-# 鎸囧畾璺緞
-WORKDIR /home/se
-# 澶嶅埗jar鏂囦欢鍒拌矾寰�
-COPY ./jar/se-auth.jar /home/se/se-auth.jar
-# 鍚姩璁よ瘉鏈嶅姟
-ENTRYPOINT ["java","-jar","se-auth.jar"]
\ No newline at end of file
diff --git a/docker/se/auth/jar/readme.txt b/docker/se/auth/jar/readme.txt
deleted file mode 100644
index c35ba27..0000000
--- a/docker/se/auth/jar/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-存放认证中心打包好的jar文件,用于docker启动应用。
\ No newline at end of file
diff --git a/docker/se/gateway/dockerfile b/docker/se/gateway/dockerfile
deleted file mode 100644
index a6a0b17..0000000
--- a/docker/se/gateway/dockerfile
+++ /dev/null
@@ -1,15 +0,0 @@
-# 鍩虹闀滃儚
-FROM  openjdk:8-jre
-# author
-MAINTAINER se
-
-# 鎸傝浇鐩綍
-VOLUME /home/se
-# 鍒涘缓鐩綍
-RUN mkdir -p /home/se
-# 鎸囧畾璺緞
-WORKDIR /home/se
-# 澶嶅埗jar鏂囦欢鍒拌矾寰�
-COPY ./jar/se-gateway.jar /home/se/se-gateway.jar
-# 鍚姩缃戝叧鏈嶅姟
-ENTRYPOINT ["java","-jar","se-gateway.jar"]
\ No newline at end of file
diff --git a/docker/se/gateway/jar/readme.txt b/docker/se/gateway/jar/readme.txt
deleted file mode 100644
index 5dfbec7..0000000
--- a/docker/se/gateway/jar/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-存放网关模块打包好的jar文件,用于docker启动应用。
\ No newline at end of file
diff --git a/docker/se/modules/file/dockerfile b/docker/se/modules/file/dockerfile
deleted file mode 100644
index 6a69566..0000000
--- a/docker/se/modules/file/dockerfile
+++ /dev/null
@@ -1,15 +0,0 @@
-# 鍩虹闀滃儚
-FROM  openjdk:8-jre
-# author
-MAINTAINER se
-
-# 鎸傝浇鐩綍
-VOLUME /home/se
-# 鍒涘缓鐩綍
-RUN mkdir -p /home/se
-# 鎸囧畾璺緞
-WORKDIR /home/se
-# 澶嶅埗jar鏂囦欢鍒拌矾寰�
-COPY ./jar/se-modules-file.jar /home/se/se-modules-file.jar
-# 鍚姩鏂囦欢鏈嶅姟
-ENTRYPOINT ["java","-jar","se-modules-file.jar"]
\ No newline at end of file
diff --git a/docker/se/modules/file/jar/readme.txt b/docker/se/modules/file/jar/readme.txt
deleted file mode 100644
index bf2b2a7..0000000
--- a/docker/se/modules/file/jar/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-存放文件服务打包好的jar文件,用于docker启动应用。
\ No newline at end of file
diff --git a/docker/se/modules/gen/dockerfile b/docker/se/modules/gen/dockerfile
deleted file mode 100644
index 49e3119..0000000
--- a/docker/se/modules/gen/dockerfile
+++ /dev/null
@@ -1,15 +0,0 @@
-# 鍩虹闀滃儚
-FROM  openjdk:8-jre
-# author
-MAINTAINER se
-
-# 鎸傝浇鐩綍
-VOLUME /home/se
-# 鍒涘缓鐩綍
-RUN mkdir -p /home/se
-# 鎸囧畾璺緞
-WORKDIR /home/se
-# 澶嶅埗jar鏂囦欢鍒拌矾寰�
-COPY ./jar/se-modules-gen.jar /home/se/se-modules-gen.jar
-# 鍚姩浠g爜鐢熸垚鏈嶅姟
-ENTRYPOINT ["java","-jar","se-modules-gen.jar"]
\ No newline at end of file
diff --git a/docker/se/modules/gen/jar/readme.txt b/docker/se/modules/gen/jar/readme.txt
deleted file mode 100644
index 2f25c0a..0000000
--- a/docker/se/modules/gen/jar/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-存放代码生成打包好的jar文件,用于docker启动应用。
\ No newline at end of file
diff --git a/docker/se/modules/job/dockerfile b/docker/se/modules/job/dockerfile
deleted file mode 100644
index fe59bbb..0000000
--- a/docker/se/modules/job/dockerfile
+++ /dev/null
@@ -1,15 +0,0 @@
-# 鍩虹闀滃儚
-FROM  openjdk:8-jre
-# author
-MAINTAINER se
-
-# 鎸傝浇鐩綍
-VOLUME /home/se
-# 鍒涘缓鐩綍
-RUN mkdir -p /home/se
-# 鎸囧畾璺緞
-WORKDIR /home/se
-# 澶嶅埗jar鏂囦欢鍒拌矾寰�
-COPY ./jar/se-modules-job.jar /home/se/se-modules-job.jar
-# 鍚姩瀹氭椂浠诲姟鏈嶅姟
-ENTRYPOINT ["java","-jar","se-modules-job.jar"]
\ No newline at end of file
diff --git a/docker/se/modules/job/jar/readme.txt b/docker/se/modules/job/jar/readme.txt
deleted file mode 100644
index 58aea0b..0000000
--- a/docker/se/modules/job/jar/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-存放定时任务打包好的jar文件,用于docker启动应用。
\ No newline at end of file
diff --git a/docker/se/modules/system/dockerfile b/docker/se/modules/system/dockerfile
deleted file mode 100644
index 49a44da..0000000
--- a/docker/se/modules/system/dockerfile
+++ /dev/null
@@ -1,15 +0,0 @@
-# 鍩虹闀滃儚
-FROM  openjdk:8-jre
-# author
-MAINTAINER se
-
-# 鎸傝浇鐩綍
-VOLUME /home/se
-# 鍒涘缓鐩綍
-RUN mkdir -p /home/se
-# 鎸囧畾璺緞
-WORKDIR /home/se
-# 澶嶅埗jar鏂囦欢鍒拌矾寰�
-COPY ./jar/se-modules-system.jar /home/se/se-modules-system.jar
-# 鍚姩绯荤粺鏈嶅姟
-ENTRYPOINT ["java","-jar","se-modules-system.jar"]
\ No newline at end of file
diff --git a/docker/se/modules/system/jar/readme.txt b/docker/se/modules/system/jar/readme.txt
deleted file mode 100644
index cfc2a92..0000000
--- a/docker/se/modules/system/jar/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-存放系统模块打包好的jar文件,用于docker启动应用。
\ No newline at end of file
diff --git a/docker/se/visual/monitor/dockerfile b/docker/se/visual/monitor/dockerfile
deleted file mode 100644
index 37494ea..0000000
--- a/docker/se/visual/monitor/dockerfile
+++ /dev/null
@@ -1,15 +0,0 @@
-# 鍩虹闀滃儚
-FROM  openjdk:8-jre
-# author
-MAINTAINER se
-
-# 鎸傝浇鐩綍
-VOLUME /home/se
-# 鍒涘缓鐩綍
-RUN mkdir -p /home/se
-# 鎸囧畾璺緞
-WORKDIR /home/se
-# 澶嶅埗jar鏂囦欢鍒拌矾寰�
-COPY ./jar/se-visual-monitor.jar /home/se/se-visual-monitor.jar
-# 鍚姩绯荤粺鏈嶅姟
-ENTRYPOINT ["java","-jar","se-visual-monitor.jar"]
\ No newline at end of file
diff --git a/docker/se/visual/monitor/jar/readme.txt b/docker/se/visual/monitor/jar/readme.txt
deleted file mode 100644
index 62b2841..0000000
--- a/docker/se/visual/monitor/jar/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-存放监控中心打包好的jar文件,用于docker启动应用。
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 28981e0..66c72bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -226,7 +226,7 @@
     </dependencyManagement>
 
     <modules>
-        <module>se-auth</module>
+        <!--<module>se-auth</module>-->
         <module>se-gateway</module>
         <module>se-visual</module>
         <module>se-modules</module>
diff --git a/se-auth/pom.xml b/se-auth/pom.xml
deleted file mode 100644
index 6dad247..0000000
--- a/se-auth/pom.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>com.se</groupId>
-        <artifactId>se</artifactId>
-        <version>3.6.4</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    
-    <artifactId>se-auth</artifactId>
-	
-    <description>
-        se-auth璁よ瘉鎺堟潈涓績
-    </description>
-    
-    <dependencies>
-        
-        <!-- SpringCloud Alibaba Nacos -->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
-        </dependency>
-        
-        <!-- SpringCloud Alibaba Nacos Config -->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
-        </dependency>
-        
-        <!-- SpringCloud Alibaba Sentinel -->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
-        </dependency>
-		
-        <!-- SpringBoot Web -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-        
-        <!-- SpringBoot Actuator -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-actuator</artifactId>
-        </dependency>
-		
-        <!-- SE Common Security-->
-        <dependency>
-            <groupId>com.se</groupId>
-            <artifactId>se-common-security</artifactId>
-        </dependency>
-    </dependencies>
-	
-    <build>
-        <finalName>${project.artifactId}</finalName>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-   
-</project>
diff --git a/se-auth/se-auth.iml b/se-auth/se-auth.iml
deleted file mode 100644
index 489f425..0000000
--- a/se-auth/se-auth.iml
+++ /dev/null
@@ -1,173 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
-  <component name="FacetManager">
-    <facet type="Spring" name="Spring">
-      <configuration />
-    </facet>
-    <facet type="web" name="Web">
-      <configuration>
-        <webroots />
-      </configuration>
-    </facet>
-  </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
-    <output url="file://$MODULE_DIR$/target/classes" />
-    <output-test url="file://$MODULE_DIR$/target/test-classes" />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="jdk" jdkName="jdk-1.8" jdkType="JavaSDK" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2021.0.5.0" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-alibaba-commons:2021.0.5.0" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:2.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-auth-plugin:2.2.0" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-encryption-plugin:2.2.0" level="project" />
-    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.15" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.13.5" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.13.5" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.13.5" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpasyncclient:4.1.5" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.16" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore-nio:4.4.16" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.14" level="project" />
-    <orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.15.0" level="project" />
-    <orderEntry type="library" name="Maven: io.prometheus:simpleclient_tracer_otel:0.15.0" level="project" />
-    <orderEntry type="library" name="Maven: io.prometheus:simpleclient_tracer_common:0.15.0" level="project" />
-    <orderEntry type="library" name="Maven: io.prometheus:simpleclient_tracer_otel_agent:0.15.0" level="project" />
-    <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.30" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.spring:spring-context-support:1.0.11" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-commons:3.1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:5.7.11" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-context:3.1.7" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config:2021.0.5.0" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.36" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-sentinel:2021.0.5.0" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-transport-simple-http:1.8.6" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-transport-common:1.8.6" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-datasource-extension:1.8.6" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.83_noneautotype" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-annotation-aspectj:1.8.6" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-core:1.8.6" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.7" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-circuitbreaker-sentinel:2021.0.5.0" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-reactor-adapter:1.8.6" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-spring-webflux-adapter:1.8.6" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-spring-webmvc-adapter:1.8.6" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-parameter-flow-control:1.8.6" level="project" />
-    <orderEntry type="library" name="Maven: com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:1.4.2" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-cluster-server-default:1.8.6" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-cluster-common-default:1.8.6" level="project" />
-    <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.101.Final" level="project" />
-    <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.101.Final" level="project" />
-    <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.101.Final" level="project" />
-    <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.101.Final" level="project" />
-    <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.101.Final" level="project" />
-    <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.101.Final" level="project" />
-    <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.101.Final" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-cluster-client-default:1.8.6" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-alibaba-sentinel-datasource:2021.0.5.0" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.12" level="project" />
-    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.12" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.2" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.36" level="project" />
-    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.33" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.33" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.5" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.5" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.5" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.83" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.83" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.83" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.33" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.33" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.33" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.33" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.33" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.33" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-actuator:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: io.micrometer:micrometer-core:1.9.17" level="project" />
-    <orderEntry type="library" name="Maven: org.hdrhistogram:HdrHistogram:2.1.12" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: org.latencyutils:LatencyUtils:2.0.3" level="project" />
-    <orderEntry type="module" module-name="se-common-security" />
-    <orderEntry type="module" module-name="se-api-system" />
-    <orderEntry type="module" module-name="se-common-core" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-openfeign:3.1.8" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-openfeign-core:3.1.8" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form-spring:3.8.0" level="project" />
-    <orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form:3.8.0" level="project" />
-    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.5" level="project" />
-    <orderEntry type="library" name="Maven: io.github.openfeign:feign-core:11.10" level="project" />
-    <orderEntry type="library" name="Maven: io.github.openfeign:feign-slf4j:11.10" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-loadbalancer:3.1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-loadbalancer:3.1.7" level="project" />
-    <orderEntry type="library" name="Maven: io.projectreactor.addons:reactor-extra:3.4.10" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-cache:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: com.stoyanr:evictor:1.0.0" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.3.33" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:transmittable-thread-local:2.14.4" level="project" />
-    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:2.0.0" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:4.0.3" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.3.33" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.13" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.1.1" level="project" />
-    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:2.0.0" level="project" />
-    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:6.0.0" level="project" />
-    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.5" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.2.5.Final" level="project" />
-    <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.3.Final" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2:2.0.43" level="project" />
-    <orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt:0.9.1" level="project" />
-    <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
-    <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
-    <orderEntry type="library" name="Maven: commons-io:commons-io:2.13.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.poi:poi:4.1.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
-    <orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.19" level="project" />
-    <orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.06" level="project" />
-    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:4.0.1" level="project" />
-    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.6.2" level="project" />
-    <orderEntry type="module" module-name="se-common-redis" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.7.18" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.3.33" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.3.33" level="project" />
-    <orderEntry type="library" name="Maven: io.lettuce:lettuce-core:6.1.10.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.4.34" level="project" />
-    <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.4" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-bootstrap:3.1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:3.1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.11.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.69" level="project" />
-    <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.69" level="project" />
-    <orderEntry type="library" name="Maven: org.bouncycastle:bcutil-jdk15on:1.69" level="project" />
-  </component>
-</module>
\ No newline at end of file
diff --git a/se-auth/src/main/java/com/se/auth/SeAuthApplication.java b/se-auth/src/main/java/com/se/auth/SeAuthApplication.java
deleted file mode 100644
index a584b9f..0000000
--- a/se-auth/src/main/java/com/se/auth/SeAuthApplication.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.se.auth;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
-import com.se.common.security.annotation.EnableRyFeignClients;
-
-/**
- * 璁よ瘉鎺堟潈涓績
- * 
- * @author admin
- */
-@EnableRyFeignClients
-@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class })
-public class SeAuthApplication
-{
-    public static void main(String[] args)
-    {
-        SpringApplication.run(SeAuthApplication.class, args);
-        System.out.println("    鎺堟潈涓績鍚姩鎴愬姛    ");
-    }
-}
diff --git a/se-auth/src/main/java/com/se/auth/controller/HealthController.java b/se-auth/src/main/java/com/se/auth/controller/HealthController.java
deleted file mode 100644
index d032018..0000000
--- a/se-auth/src/main/java/com/se/auth/controller/HealthController.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.se.auth.controller;
-
-import com.se.common.core.web.controller.BaseController;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-@SuppressWarnings("ALL")
-public class HealthController extends BaseController {
-    @GetMapping("/health")
-    public long test() {
-        return System.currentTimeMillis();
-    }
-}
diff --git a/se-auth/src/main/java/com/se/auth/controller/TokenController.java b/se-auth/src/main/java/com/se/auth/controller/TokenController.java
deleted file mode 100644
index 3f34d1f..0000000
--- a/se-auth/src/main/java/com/se/auth/controller/TokenController.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package com.se.auth.controller;
-
-import javax.servlet.http.HttpServletRequest;
-
-import com.se.auth.form.LoginBody;
-import com.se.auth.form.RegisterBody;
-import com.se.auth.service.SysLoginService;
-import com.se.common.core.utils.AesUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.web.bind.annotation.*;
-import com.se.common.core.domain.R;
-import com.se.common.core.utils.JwtUtils;
-import com.se.common.core.utils.StringUtils;
-import com.se.common.security.auth.AuthUtil;
-import com.se.common.security.service.TokenService;
-import com.se.common.security.utils.SecurityUtils;
-import com.se.system.api.model.LoginUser;
-
-/**
- * token 鎺у埗
- * 
- * @author admin
- */
-@RestController
-public class TokenController {
-    @Autowired
-    private TokenService tokenService;
-
-    @Autowired
-    private SysLoginService sysLoginService;
-
-    @Value("${enableEncrypt}")
-    boolean enableEncrypt;
-
-    @PostMapping("login")
-    public R<?> login(@RequestBody LoginBody form) throws Exception {
-        if (enableEncrypt && !StringUtils.isEmpty(form.getPassword())) {
-            form.setPassword(AesUtils.decrypt(form.getPassword()));
-        }
-        // 鐢ㄦ埛鐧诲綍
-        LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword());
-        // 鑾峰彇鐧诲綍token
-        return R.ok(tokenService.createToken(userInfo));
-    }
-
-    @GetMapping("validate")
-    @PostMapping("validate")
-    public R<Object> validate(HttpServletRequest request) {
-        try {
-            boolean flag = false;
-            String token = SecurityUtils.getToken(request);
-            if (!StringUtils.isNotEmpty(token)) {
-                String userName = JwtUtils.getUserName(token);
-                flag = !StringUtils.isEmpty(userName);
-            }
-
-            return R.ok(flag);
-        } catch (Exception ex) {
-            return R.fail(ex.getMessage());
-        }
-    }
-
-    @DeleteMapping("logout")
-    public R<?> logout(HttpServletRequest request) {
-        String token = SecurityUtils.getToken(request);
-        if (StringUtils.isNotEmpty(token)) {
-            String username = JwtUtils.getUserName(token);
-            // 鍒犻櫎鐢ㄦ埛缂撳瓨璁板綍
-            AuthUtil.logoutByToken(token);
-            // 璁板綍鐢ㄦ埛閫�鍑烘棩蹇�
-            sysLoginService.logout(username);
-        }
-        return R.ok();
-    }
-
-    @PostMapping("refresh")
-    public R<?> refresh(HttpServletRequest request) {
-        LoginUser loginUser = tokenService.getLoginUser(request);
-        if (StringUtils.isNotNull(loginUser)) {
-            // 鍒锋柊浠ょ墝鏈夋晥鏈�
-            tokenService.refreshToken(loginUser);
-            return R.ok();
-        }
-        return R.ok();
-    }
-
-    /*@PostMapping("register")
-    public R<?> register(@RequestBody RegisterBody registerBody)
-    {
-        // 鐢ㄦ埛娉ㄥ唽
-        sysLoginService.register(registerBody.getUsername(), registerBody.getPassword());
-        return R.ok();
-    }*/
-}
diff --git a/se-auth/src/main/java/com/se/auth/form/LoginBody.java b/se-auth/src/main/java/com/se/auth/form/LoginBody.java
deleted file mode 100644
index e94dd82..0000000
--- a/se-auth/src/main/java/com/se/auth/form/LoginBody.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.se.auth.form;
-
-/**
- * 鐢ㄦ埛鐧诲綍瀵硅薄
- * 
- * @author admin
- */
-public class LoginBody
-{
-    /**
-     * 鐢ㄦ埛鍚�
-     */
-    private String username;
-
-    /**
-     * 鐢ㄦ埛瀵嗙爜
-     */
-    private String password;
-
-    public String getUsername()
-    {
-        return username;
-    }
-
-    public void setUsername(String username)
-    {
-        this.username = username;
-    }
-
-    public String getPassword()
-    {
-        return password;
-    }
-
-    public void setPassword(String password)
-    {
-        this.password = password;
-    }
-}
diff --git a/se-auth/src/main/java/com/se/auth/form/RegisterBody.java b/se-auth/src/main/java/com/se/auth/form/RegisterBody.java
deleted file mode 100644
index b0cdbe1..0000000
--- a/se-auth/src/main/java/com/se/auth/form/RegisterBody.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.se.auth.form;
-
-/**
- * 鐢ㄦ埛娉ㄥ唽瀵硅薄
- * 
- * @author admin
- */
-public class RegisterBody extends LoginBody
-{
-
-}
diff --git a/se-auth/src/main/java/com/se/auth/service/SysLoginService.java b/se-auth/src/main/java/com/se/auth/service/SysLoginService.java
deleted file mode 100644
index e053531..0000000
--- a/se-auth/src/main/java/com/se/auth/service/SysLoginService.java
+++ /dev/null
@@ -1,161 +0,0 @@
-package com.se.auth.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import com.se.common.core.constant.CacheConstants;
-import com.se.common.core.constant.Constants;
-import com.se.common.core.constant.SecurityConstants;
-import com.se.common.core.constant.UserConstants;
-import com.se.common.core.domain.R;
-import com.se.common.core.enums.UserStatus;
-import com.se.common.core.exception.ServiceException;
-import com.se.common.core.text.Convert;
-import com.se.common.core.utils.DateUtils;
-import com.se.common.core.utils.StringUtils;
-import com.se.common.core.utils.ip.IpUtils;
-import com.se.common.redis.service.RedisService;
-import com.se.common.security.utils.SecurityUtils;
-import com.se.system.api.RemoteUserService;
-import com.se.system.api.domain.SysUser;
-import com.se.system.api.model.LoginUser;
-
-/**
- * 鐧诲綍鏍¢獙鏂规硶
- * 
- * @author admin
- */
-@Component
-public class SysLoginService
-{
-    @Autowired
-    private RemoteUserService remoteUserService;
-
-    @Autowired
-    private SysPasswordService passwordService;
-
-    @Autowired
-    private SysRecordLogService recordLogService;
-
-    @Autowired
-    private RedisService redisService;
-
-    /**
-     * 鐧诲綍
-     */
-    public LoginUser login(String username, String password)
-    {
-        // 鐢ㄦ埛鍚嶆垨瀵嗙爜涓虹┖ 閿欒
-        if (StringUtils.isAnyBlank(username, password))
-        {
-            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "鐢ㄦ埛/瀵嗙爜蹇呴』濉啓");
-            throw new ServiceException("鐢ㄦ埛/瀵嗙爜蹇呴』濉啓");
-        }
-        // 瀵嗙爜濡傛灉涓嶅湪鎸囧畾鑼冨洿鍐� 閿欒
-        if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
-                || password.length() > UserConstants.PASSWORD_MAX_LENGTH)
-        {
-            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "鐢ㄦ埛瀵嗙爜涓嶅湪鎸囧畾鑼冨洿");
-            throw new ServiceException("鐢ㄦ埛瀵嗙爜涓嶅湪鎸囧畾鑼冨洿");
-        }
-        // 鐢ㄦ埛鍚嶄笉鍦ㄦ寚瀹氳寖鍥村唴 閿欒
-        if (username.length() < UserConstants.USERNAME_MIN_LENGTH
-                || username.length() > UserConstants.USERNAME_MAX_LENGTH)
-        {
-            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "鐢ㄦ埛鍚嶄笉鍦ㄦ寚瀹氳寖鍥�");
-            throw new ServiceException("鐢ㄦ埛鍚嶄笉鍦ㄦ寚瀹氳寖鍥�");
-        }
-        // IP榛戝悕鍗曟牎楠�
-        String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST));
-        if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr()))
-        {
-            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "寰堥仐鎲撅紝璁块棶IP宸茶鍒楀叆绯荤粺榛戝悕鍗�");
-            throw new ServiceException("寰堥仐鎲撅紝璁块棶IP宸茶鍒楀叆绯荤粺榛戝悕鍗�");
-        }
-        // 鏌ヨ鐢ㄦ埛淇℃伅
-        R<LoginUser> userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
-
-        if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData()))
-        {
-            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "鐧诲綍鐢ㄦ埛涓嶅瓨鍦�");
-            throw new ServiceException("鐧诲綍鐢ㄦ埛锛�" + username + " 涓嶅瓨鍦�");
-        }
-
-        if (R.FAIL == userResult.getCode())
-        {
-            throw new ServiceException(userResult.getMsg());
-        }
-        
-        LoginUser userInfo = userResult.getData();
-        SysUser user = userResult.getData().getSysUser();
-        if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
-        {
-            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "瀵逛笉璧凤紝鎮ㄧ殑璐﹀彿宸茶鍒犻櫎");
-            throw new ServiceException("瀵逛笉璧凤紝鎮ㄧ殑璐﹀彿锛�" + username + " 宸茶鍒犻櫎");
-        }
-        if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
-        {
-            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "鐢ㄦ埛宸插仠鐢紝璇疯仈绯荤鐞嗗憳");
-            throw new ServiceException("瀵逛笉璧凤紝鎮ㄧ殑璐﹀彿锛�" + username + " 宸插仠鐢�");
-        }
-        passwordService.validate(user, password);
-        recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "鐧诲綍鎴愬姛");
-        recordLoginInfo(user.getUserId());
-        return userInfo;
-    }
-
-    /**
-     * 璁板綍鐧诲綍淇℃伅
-     *
-     * @param userId 鐢ㄦ埛ID
-     */
-    public void recordLoginInfo(Long userId)
-    {
-        SysUser sysUser = new SysUser();
-        sysUser.setUserId(userId);
-        // 鏇存柊鐢ㄦ埛鐧诲綍IP
-        sysUser.setLoginIp(IpUtils.getIpAddr());
-        // 鏇存柊鐢ㄦ埛鐧诲綍鏃堕棿
-        sysUser.setLoginDate(DateUtils.getNowDate());
-        remoteUserService.recordUserLogin(sysUser, SecurityConstants.INNER);
-    }
-
-    public void logout(String loginName)
-    {
-        recordLogService.recordLogininfor(loginName, Constants.LOGOUT, "閫�鍑烘垚鍔�");
-    }
-
-    /**
-     * 娉ㄥ唽
-     */
-    public void register(String username, String password)
-    {
-        // 鐢ㄦ埛鍚嶆垨瀵嗙爜涓虹┖ 閿欒
-        if (StringUtils.isAnyBlank(username, password))
-        {
-            throw new ServiceException("鐢ㄦ埛/瀵嗙爜蹇呴』濉啓");
-        }
-        if (username.length() < UserConstants.USERNAME_MIN_LENGTH
-                || username.length() > UserConstants.USERNAME_MAX_LENGTH)
-        {
-            throw new ServiceException("璐︽埛闀垮害蹇呴』鍦�2鍒�20涓瓧绗︿箣闂�");
-        }
-        if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
-                || password.length() > UserConstants.PASSWORD_MAX_LENGTH)
-        {
-            throw new ServiceException("瀵嗙爜闀垮害蹇呴』鍦�5鍒�20涓瓧绗︿箣闂�");
-        }
-
-        // 娉ㄥ唽鐢ㄦ埛淇℃伅
-        SysUser sysUser = new SysUser();
-        sysUser.setUserName(username);
-        sysUser.setNickName(username);
-        sysUser.setPassword(SecurityUtils.encryptPassword(password));
-        R<?> registerResult = remoteUserService.registerUserInfo(sysUser, SecurityConstants.INNER);
-
-        if (R.FAIL == registerResult.getCode())
-        {
-            throw new ServiceException(registerResult.getMsg());
-        }
-        recordLogService.recordLogininfor(username, Constants.REGISTER, "娉ㄥ唽鎴愬姛");
-    }
-}
diff --git a/se-auth/src/main/java/com/se/auth/service/SysPasswordService.java b/se-auth/src/main/java/com/se/auth/service/SysPasswordService.java
deleted file mode 100644
index 8efc6ab..0000000
--- a/se-auth/src/main/java/com/se/auth/service/SysPasswordService.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.se.auth.service;
-
-import java.util.concurrent.TimeUnit;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import com.se.common.core.constant.CacheConstants;
-import com.se.common.core.constant.Constants;
-import com.se.common.core.exception.ServiceException;
-import com.se.common.redis.service.RedisService;
-import com.se.common.security.utils.SecurityUtils;
-import com.se.system.api.domain.SysUser;
-
-/**
- * 鐧诲綍瀵嗙爜鏂规硶
- * 
- * @author admin
- */
-@Component
-@SuppressWarnings("ALL")
-public class SysPasswordService
-{
-    @Autowired
-    private RedisService redisService;
-
-    private int maxRetryCount = CacheConstants.PASSWORD_MAX_RETRY_COUNT;
-
-    private Long lockTime = CacheConstants.PASSWORD_LOCK_TIME;
-
-    @Autowired
-    private SysRecordLogService recordLogService;
-
-    /**
-     * 鐧诲綍璐︽埛瀵嗙爜閿欒娆℃暟缂撳瓨閿悕
-     * 
-     * @param username 鐢ㄦ埛鍚�
-     * @return 缂撳瓨閿甼ey
-     */
-    private String getCacheKey(String username)
-    {
-        return CacheConstants.PWD_ERR_CNT_KEY + username;
-    }
-
-    public void validate(SysUser user, String password)
-    {
-        String username = user.getUserName();
-
-        Integer retryCount = redisService.getCacheObject(getCacheKey(username));
-
-        if (retryCount == null)
-        {
-            retryCount = 0;
-        }
-
-        /*if (retryCount >= Integer.valueOf(maxRetryCount).intValue())
-        {
-            String errMsg = String.format("瀵嗙爜杈撳叆閿欒%s娆★紝甯愭埛閿佸畾%s鍒嗛挓", maxRetryCount, lockTime);
-            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL,errMsg);
-            throw new ServiceException(errMsg);
-        }*/
-
-        if (!matches(user, password))
-        {
-            retryCount = retryCount + 1;
-            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, String.format("瀵嗙爜杈撳叆閿欒%s娆�", retryCount));
-            redisService.setCacheObject(getCacheKey(username), retryCount, lockTime, TimeUnit.MINUTES);
-            throw new ServiceException("鐢ㄦ埛涓嶅瓨鍦�/瀵嗙爜閿欒");
-        }
-        else
-        {
-            clearLoginRecordCache(username);
-        }
-    }
-
-    public boolean matches(SysUser user, String rawPassword)
-    {
-        return SecurityUtils.matchesPassword(rawPassword, user.getPassword());
-    }
-
-    public void clearLoginRecordCache(String loginName)
-    {
-        if (redisService.hasKey(getCacheKey(loginName)))
-        {
-            redisService.deleteObject(getCacheKey(loginName));
-        }
-    }
-}
diff --git a/se-auth/src/main/java/com/se/auth/service/SysRecordLogService.java b/se-auth/src/main/java/com/se/auth/service/SysRecordLogService.java
deleted file mode 100644
index 51c1893..0000000
--- a/se-auth/src/main/java/com/se/auth/service/SysRecordLogService.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.se.auth.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import com.se.common.core.constant.Constants;
-import com.se.common.core.constant.SecurityConstants;
-import com.se.common.core.utils.StringUtils;
-import com.se.common.core.utils.ip.IpUtils;
-import com.se.system.api.RemoteLogService;
-import com.se.system.api.domain.SysLogininfor;
-
-/**
- * 璁板綍鏃ュ織鏂规硶
- * 
- * @author admin
- */
-@Component
-public class SysRecordLogService
-{
-    @Autowired
-    private RemoteLogService remoteLogService;
-
-    /**
-     * 璁板綍鐧诲綍淇℃伅
-     * 
-     * @param username 鐢ㄦ埛鍚�
-     * @param status 鐘舵��
-     * @param message 娑堟伅鍐呭
-     * @return
-     */
-    public void recordLogininfor(String username, String status, String message)
-    {
-        SysLogininfor logininfor = new SysLogininfor();
-        logininfor.setUserName(username);
-        logininfor.setIpaddr(IpUtils.getIpAddr());
-        logininfor.setMsg(message);
-        // 鏃ュ織鐘舵��
-        if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER))
-        {
-            logininfor.setStatus(Constants.LOGIN_SUCCESS_STATUS);
-        }
-        else if (Constants.LOGIN_FAIL.equals(status))
-        {
-            logininfor.setStatus(Constants.LOGIN_FAIL_STATUS);
-        }
-        remoteLogService.saveLogininfor(logininfor, SecurityConstants.INNER);
-    }
-}
diff --git a/se-auth/src/main/resources/banner.txt b/se-auth/src/main/resources/banner.txt
deleted file mode 100644
index 269848e..0000000
--- a/se-auth/src/main/resources/banner.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Spring Boot Version: ${spring-boot.version}
-Spring Application Name: ${spring.application.name}
-SeAuthApplication锛屽凡缁忓惎鍔�
\ No newline at end of file
diff --git a/se-auth/src/main/resources/bootstrap.yml b/se-auth/src/main/resources/bootstrap.yml
deleted file mode 100644
index 71d5269..0000000
--- a/se-auth/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-# Tomcat
-server: 
-  port: 9200
-
-# Spring
-spring: 
-  application:
-    # 搴旂敤鍚嶇О
-    name: se-auth
-  profiles:
-    # 鐜閰嶇疆
-    active: dev
-  cloud:
-    nacos:
-      username: nacos
-      password: nAcos_!9#_admIn
-      discovery:
-        # 鏈嶅姟娉ㄥ唽鍦板潃
-        server-addr: 127.0.0.1:8848
-      config:
-        # 閰嶇疆涓績鍦板潃
-        server-addr: 127.0.0.1:8848
-        # 閰嶇疆鏂囦欢鏍煎紡
-        file-extension: yml
-        # 鍏变韩閰嶇疆
-        shared-configs:
-          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
-enableEncrypt: true
\ No newline at end of file
diff --git a/se-auth/src/main/resources/logback.xml b/se-auth/src/main/resources/logback.xml
deleted file mode 100644
index f1b8cf8..0000000
--- a/se-auth/src/main/resources/logback.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration scan="true" scanPeriod="60 seconds" debug="false">
-    <!-- 鏃ュ織瀛樻斁璺緞 -->
-	<property name="log.path" value="logs/se-auth" />
-   <!-- 鏃ュ織杈撳嚭鏍煎紡 -->
-	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
-
-    <!-- 鎺у埗鍙拌緭鍑� -->
-	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
-		<encoder>
-			<pattern>${log.pattern}</pattern>
-		</encoder>
-	</appender>
-
-    <!-- 绯荤粺鏃ュ織杈撳嚭 -->
-	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/info.log</file>
-        <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 鏃ュ織鏂囦欢鍚嶆牸寮� -->
-			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
-			<!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
-			<maxHistory>60</maxHistory>
-		</rollingPolicy>
-		<encoder>
-			<pattern>${log.pattern}</pattern>
-		</encoder>
-		<filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!-- 杩囨护鐨勭骇鍒� -->
-            <level>INFO</level>
-            <!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
-            <onMatch>ACCEPT</onMatch>
-            <!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
-            <onMismatch>DENY</onMismatch>
-        </filter>
-	</appender>
-
-    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/error.log</file>
-        <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 鏃ュ織鏂囦欢鍚嶆牸寮� -->
-            <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
-			<!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
-			<maxHistory>60</maxHistory>
-        </rollingPolicy>
-        <encoder>
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!-- 杩囨护鐨勭骇鍒� -->
-            <level>ERROR</level>
-			<!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
-            <onMatch>ACCEPT</onMatch>
-			<!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 绯荤粺妯″潡鏃ュ織绾у埆鎺у埗  -->
-	<logger name="com.se" level="info" />
-	<!-- Spring鏃ュ織绾у埆鎺у埗  -->
-	<logger name="org.springframework" level="warn" />
-
-	<root level="info">
-		<appender-ref ref="console" />
-	</root>
-	
-	<!--绯荤粺鎿嶄綔鏃ュ織-->
-    <root level="info">
-        <appender-ref ref="file_info" />
-        <appender-ref ref="file_error" />
-    </root>
-</configuration>
\ No newline at end of file
diff --git a/se-modules/pom.xml b/se-modules/pom.xml
index 09ae2ca..c39c8ee 100644
--- a/se-modules/pom.xml
+++ b/se-modules/pom.xml
@@ -10,9 +10,9 @@
 
     <modules>
         <module>se-system</module>
-        <module>se-gen</module>
+        <!--<module>se-gen</module>
         <module>se-job</module>
-        <module>se-file</module>
+        <module>se-file</module>-->
     </modules>
 
     <artifactId>se-modules</artifactId>
diff --git a/se-modules/se-file/pom.xml b/se-modules/se-file/pom.xml
deleted file mode 100644
index 9e3c363..0000000
--- a/se-modules/se-file/pom.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>com.se</groupId>
-        <artifactId>se-modules</artifactId>
-        <version>3.6.4</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>se-modules-file</artifactId>
-
-    <description>
-        se-modules-file鏂囦欢鏈嶅姟
-    </description>
-
-    <dependencies>
-    	
-    	<!-- SpringCloud Alibaba Nacos -->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
-        </dependency>
-        
-        <!-- SpringCloud Alibaba Nacos Config -->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
-        </dependency>
-        
-        <!-- SpringCloud Alibaba Sentinel -->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
-        </dependency>
-        
-        <!-- SpringBoot Actuator -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-actuator</artifactId>
-        </dependency>
-		
-        <!-- FastDFS -->
-        <dependency>
-            <groupId>com.github.tobato</groupId>
-            <artifactId>fastdfs-client</artifactId>
-        </dependency>
-        
-        <!-- Minio -->
-        <dependency>
-            <groupId>io.minio</groupId>
-            <artifactId>minio</artifactId>
-            <version>8.2.2</version>
-<!--            <version>${minio.version}</version>-->
-        </dependency>
-        
-        <!-- SE Api System -->
-        <dependency>
-            <groupId>com.se</groupId>
-            <artifactId>se-api-system</artifactId>
-        </dependency>
-        
-        <!-- SE Common Swagger -->
-        <dependency>
-            <groupId>com.se</groupId>
-            <artifactId>se-common-swagger</artifactId>
-        </dependency>
-        
-    </dependencies>
-
-    <build>
-        <finalName>${project.artifactId}</finalName>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-   
-</project>
\ No newline at end of file
diff --git a/se-modules/se-file/src/main/java/com/se/file/SeFileApplication.java b/se-modules/se-file/src/main/java/com/se/file/SeFileApplication.java
deleted file mode 100644
index d853e56..0000000
--- a/se-modules/se-file/src/main/java/com/se/file/SeFileApplication.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.se.file;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
-import com.se.common.swagger.annotation.EnableCustomSwagger2;
-
-/**
- * 鏂囦欢鏈嶅姟
- * 
- * @author admin
- */
-@EnableCustomSwagger2
-@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class })
-public class SeFileApplication
-{
-    public static void main(String[] args)
-    {
-        SpringApplication.run(SeFileApplication.class, args);
-        System.out.println("    鏂囦欢妯″潡鍚姩鎴愬姛    ");
-    }
-}
diff --git a/se-modules/se-file/src/main/java/com/se/file/config/MinioConfig.java b/se-modules/se-file/src/main/java/com/se/file/config/MinioConfig.java
deleted file mode 100644
index bb02876..0000000
--- a/se-modules/se-file/src/main/java/com/se/file/config/MinioConfig.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.se.file.config;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import io.minio.MinioClient;
-
-/**
- * Minio 閰嶇疆淇℃伅
- *
- * @author admin
- */
-@Configuration
-@ConfigurationProperties(prefix = "minio")
-public class MinioConfig
-{
-    /**
-     * 鏈嶅姟鍦板潃
-     */
-    private String url;
-
-    /**
-     * 鐢ㄦ埛鍚�
-     */
-    private String accessKey;
-
-    /**
-     * 瀵嗙爜
-     */
-    private String secretKey;
-
-    /**
-     * 瀛樺偍妗跺悕绉�
-     */
-    private String bucketName;
-
-    public String getUrl()
-    {
-        return url;
-    }
-
-    public void setUrl(String url)
-    {
-        this.url = url;
-    }
-
-    public String getAccessKey()
-    {
-        return accessKey;
-    }
-
-    public void setAccessKey(String accessKey)
-    {
-        this.accessKey = accessKey;
-    }
-
-    public String getSecretKey()
-    {
-        return secretKey;
-    }
-
-    public void setSecretKey(String secretKey)
-    {
-        this.secretKey = secretKey;
-    }
-
-    public String getBucketName()
-    {
-        return bucketName;
-    }
-
-    public void setBucketName(String bucketName)
-    {
-        this.bucketName = bucketName;
-    }
-
-    @Bean
-    public MinioClient getMinioClient()
-    {
-        return MinioClient.builder().endpoint(url).credentials(accessKey, secretKey).build();
-    }
-}
diff --git a/se-modules/se-file/src/main/java/com/se/file/config/ResourcesConfig.java b/se-modules/se-file/src/main/java/com/se/file/config/ResourcesConfig.java
deleted file mode 100644
index bb0eebe..0000000
--- a/se-modules/se-file/src/main/java/com/se/file/config/ResourcesConfig.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.se.file.config;
-
-import java.io.File;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.config.annotation.CorsRegistry;
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-/**
- * 閫氱敤鏄犲皠閰嶇疆
- * 
- * @author admin
- */
-@Configuration
-public class ResourcesConfig implements WebMvcConfigurer
-{
-    /**
-     * 涓婁紶鏂囦欢瀛樺偍鍦ㄦ湰鍦扮殑鏍硅矾寰�
-     */
-    @Value("${file.path}")
-    private String localFilePath;
-
-    /**
-     * 璧勬簮鏄犲皠璺緞 鍓嶇紑
-     */
-    @Value("${file.prefix}")
-    public String localFilePrefix;
-
-    @Override
-    public void addResourceHandlers(ResourceHandlerRegistry registry)
-    {
-        /** 鏈湴鏂囦欢涓婁紶璺緞 */
-        registry.addResourceHandler(localFilePrefix + "/**")
-                .addResourceLocations("file:" + localFilePath + File.separator);
-    }
-    
-    /**
-     * 寮�鍚法鍩�
-     */
-    @Override
-    public void addCorsMappings(CorsRegistry registry) {
-        // 璁剧疆鍏佽璺ㄥ煙鐨勮矾鐢�
-        registry.addMapping(localFilePrefix  + "/**")
-                // 璁剧疆鍏佽璺ㄥ煙璇锋眰鐨勫煙鍚�
-                .allowedOrigins("*")
-                // 璁剧疆鍏佽鐨勬柟娉�
-                .allowedMethods("GET");
-    }
-}
\ No newline at end of file
diff --git a/se-modules/se-file/src/main/java/com/se/file/controller/SysFileController.java b/se-modules/se-file/src/main/java/com/se/file/controller/SysFileController.java
deleted file mode 100644
index e87c238..0000000
--- a/se-modules/se-file/src/main/java/com/se/file/controller/SysFileController.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.se.file.controller;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
-import com.se.common.core.domain.R;
-import com.se.common.core.utils.file.FileUtils;
-import com.se.file.service.ISysFileService;
-import com.se.system.api.domain.SysFile;
-
-/**
- * 鏂囦欢璇锋眰澶勭悊
- * 
- * @author admin
- */
-@RestController
-public class SysFileController
-{
-    private static final Logger log = LoggerFactory.getLogger(SysFileController.class);
-
-    @Autowired
-    private ISysFileService sysFileService;
-
-    /**
-     * 鏂囦欢涓婁紶璇锋眰
-     */
-    @PostMapping("upload")
-    public R<SysFile> upload(MultipartFile file)
-    {
-        try
-        {
-            // 涓婁紶骞惰繑鍥炶闂湴鍧�
-            String url = sysFileService.uploadFile(file);
-            SysFile sysFile = new SysFile();
-            sysFile.setName(FileUtils.getName(url));
-            sysFile.setUrl(url);
-            return R.ok(sysFile);
-        }
-        catch (Exception e)
-        {
-            log.error("涓婁紶鏂囦欢澶辫触", e);
-            return R.fail(e.getMessage());
-        }
-    }
-}
\ No newline at end of file
diff --git a/se-modules/se-file/src/main/java/com/se/file/service/FastDfsSysFileServiceImpl.java b/se-modules/se-file/src/main/java/com/se/file/service/FastDfsSysFileServiceImpl.java
deleted file mode 100644
index fa25b7b..0000000
--- a/se-modules/se-file/src/main/java/com/se/file/service/FastDfsSysFileServiceImpl.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.se.file.service;
-
-import java.io.InputStream;
-import com.alibaba.nacos.common.utils.IoUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-import com.github.tobato.fastdfs.domain.fdfs.StorePath;
-import com.github.tobato.fastdfs.service.FastFileStorageClient;
-import com.se.common.core.utils.file.FileTypeUtils;
-
-/**
- * FastDFS 鏂囦欢瀛樺偍
- *
- * @author admin
- */
-@Service
-public class FastDfsSysFileServiceImpl implements ISysFileService
-{
-    /**
-     * 鍩熷悕鎴栨湰鏈鸿闂湴鍧�
-     */
-    @Value("${fdfs.domain}")
-    public String domain;
-
-    @Autowired
-    private FastFileStorageClient storageClient;
-
-    /**
-     * FastDfs鏂囦欢涓婁紶鎺ュ彛
-     *
-     * @param file 涓婁紶鐨勬枃浠�
-     * @return 璁块棶鍦板潃
-     * @throws Exception
-     */
-    @Override
-    public String uploadFile(MultipartFile file) throws Exception
-    {
-        InputStream inputStream = file.getInputStream();
-        StorePath storePath = storageClient.uploadFile(inputStream, file.getSize(),
-                FileTypeUtils.getExtension(file), null);
-        IoUtils.closeQuietly(inputStream);
-        return domain + "/" + storePath.getFullPath();
-    }
-}
diff --git a/se-modules/se-file/src/main/java/com/se/file/service/ISysFileService.java b/se-modules/se-file/src/main/java/com/se/file/service/ISysFileService.java
deleted file mode 100644
index 9d4215e..0000000
--- a/se-modules/se-file/src/main/java/com/se/file/service/ISysFileService.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.se.file.service;
-
-import org.springframework.web.multipart.MultipartFile;
-
-/**
- * 鏂囦欢涓婁紶鎺ュ彛
- * 
- * @author admin
- */
-public interface ISysFileService
-{
-    /**
-     * 鏂囦欢涓婁紶鎺ュ彛
-     * 
-     * @param file 涓婁紶鐨勬枃浠�
-     * @return 璁块棶鍦板潃
-     * @throws Exception
-     */
-    public String uploadFile(MultipartFile file) throws Exception;
-}
diff --git a/se-modules/se-file/src/main/java/com/se/file/service/LocalSysFileServiceImpl.java b/se-modules/se-file/src/main/java/com/se/file/service/LocalSysFileServiceImpl.java
deleted file mode 100644
index 0ffaf52..0000000
--- a/se-modules/se-file/src/main/java/com/se/file/service/LocalSysFileServiceImpl.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.se.file.service;
-
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Primary;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-import com.se.file.utils.FileUploadUtils;
-
-/**
- * 鏈湴鏂囦欢瀛樺偍
- * 
- * @author admin
- */
-@Primary
-@Service
-public class LocalSysFileServiceImpl implements ISysFileService
-{
-    /**
-     * 璧勬簮鏄犲皠璺緞 鍓嶇紑
-     */
-    @Value("${file.prefix}")
-    public String localFilePrefix;
-
-    /**
-     * 鍩熷悕鎴栨湰鏈鸿闂湴鍧�
-     */
-    @Value("${file.domain}")
-    public String domain;
-    
-    /**
-     * 涓婁紶鏂囦欢瀛樺偍鍦ㄦ湰鍦扮殑鏍硅矾寰�
-     */
-    @Value("${file.path}")
-    private String localFilePath;
-
-    /**
-     * 鏈湴鏂囦欢涓婁紶鎺ュ彛
-     * 
-     * @param file 涓婁紶鐨勬枃浠�
-     * @return 璁块棶鍦板潃
-     * @throws Exception
-     */
-    @Override
-    public String uploadFile(MultipartFile file) throws Exception
-    {
-        String name = FileUploadUtils.upload(localFilePath, file);
-        String url = domain + localFilePrefix + name;
-        return url;
-    }
-}
diff --git a/se-modules/se-file/src/main/java/com/se/file/service/MinioSysFileServiceImpl.java b/se-modules/se-file/src/main/java/com/se/file/service/MinioSysFileServiceImpl.java
deleted file mode 100644
index cf7c1a1..0000000
--- a/se-modules/se-file/src/main/java/com/se/file/service/MinioSysFileServiceImpl.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.se.file.service;
-
-import java.io.InputStream;
-
-import com.se.file.config.MinioConfig;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-import com.alibaba.nacos.common.utils.IoUtils;
-import com.se.file.utils.FileUploadUtils;
-import io.minio.MinioClient;
-import io.minio.PutObjectArgs;
-
-/**
- * Minio 鏂囦欢瀛樺偍
- *
- * @author admin
- */
-@Service
-public class MinioSysFileServiceImpl implements ISysFileService
-{
-    @Autowired
-    private MinioConfig minioConfig;
-
-    @Autowired
-    private MinioClient client;
-
-    /**
-     * Minio鏂囦欢涓婁紶鎺ュ彛
-     *
-     * @param file 涓婁紶鐨勬枃浠�
-     * @return 璁块棶鍦板潃
-     * @throws Exception
-     */
-    @Override
-    public String uploadFile(MultipartFile file) throws Exception
-    {
-        String fileName = FileUploadUtils.extractFilename(file);
-        InputStream inputStream = file.getInputStream();
-        PutObjectArgs args = PutObjectArgs.builder()
-                .bucket(minioConfig.getBucketName())
-                .object(fileName)
-                .stream(inputStream, file.getSize(), -1)
-                .contentType(file.getContentType())
-                .build();
-        client.putObject(args);
-        IoUtils.closeQuietly(inputStream);
-        return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
-    }
-}
diff --git a/se-modules/se-file/src/main/java/com/se/file/utils/FileUploadUtils.java b/se-modules/se-file/src/main/java/com/se/file/utils/FileUploadUtils.java
deleted file mode 100644
index c51548d..0000000
--- a/se-modules/se-file/src/main/java/com/se/file/utils/FileUploadUtils.java
+++ /dev/null
@@ -1,185 +0,0 @@
-package com.se.file.utils;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Paths;
-import java.util.Objects;
-import org.apache.commons.io.FilenameUtils;
-import org.springframework.web.multipart.MultipartFile;
-import com.se.common.core.exception.file.FileException;
-import com.se.common.core.exception.file.FileNameLengthLimitExceededException;
-import com.se.common.core.exception.file.FileSizeLimitExceededException;
-import com.se.common.core.exception.file.InvalidExtensionException;
-import com.se.common.core.utils.DateUtils;
-import com.se.common.core.utils.StringUtils;
-import com.se.common.core.utils.file.FileTypeUtils;
-import com.se.common.core.utils.file.MimeTypeUtils;
-import com.se.common.core.utils.uuid.Seq;
-
-/**
- * 鏂囦欢涓婁紶宸ュ叿绫�
- * 
- * @author admin
- */
-public class FileUploadUtils
-{
-    /**
-     * 榛樿澶у皬 50M
-     */
-    public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024L;
-
-    /**
-     * 榛樿鐨勬枃浠跺悕鏈�澶ч暱搴� 100
-     */
-    public static final int DEFAULT_FILE_NAME_LENGTH = 100;
-
-    /**
-     * 鏍规嵁鏂囦欢璺緞涓婁紶
-     *
-     * @param baseDir 鐩稿搴旂敤鐨勫熀鐩綍
-     * @param file 涓婁紶鐨勬枃浠�
-     * @return 鏂囦欢鍚嶇О
-     * @throws IOException
-     */
-    public static final String upload(String baseDir, MultipartFile file) throws IOException
-    {
-        try
-        {
-            return upload(baseDir, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
-        }
-        catch (FileException fe)
-        {
-            throw new IOException(fe.getDefaultMessage(), fe);
-        }
-        catch (Exception e)
-        {
-            throw new IOException(e.getMessage(), e);
-        }
-    }
-
-    /**
-     * 鏂囦欢涓婁紶
-     *
-     * @param baseDir 鐩稿搴旂敤鐨勫熀鐩綍
-     * @param file 涓婁紶鐨勬枃浠�
-     * @param allowedExtension 涓婁紶鏂囦欢绫诲瀷
-     * @return 杩斿洖涓婁紶鎴愬姛鐨勬枃浠跺悕
-     * @throws FileSizeLimitExceededException 濡傛灉瓒呭嚭鏈�澶уぇ灏�
-     * @throws FileNameLengthLimitExceededException 鏂囦欢鍚嶅お闀�
-     * @throws IOException 姣斿璇诲啓鏂囦欢鍑洪敊鏃�
-     * @throws InvalidExtensionException 鏂囦欢鏍¢獙寮傚父
-     */
-    public static final String upload(String baseDir, MultipartFile file, String[] allowedExtension)
-            throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException,
-            InvalidExtensionException
-    {
-        int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length();
-        if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH)
-        {
-            throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH);
-        }
-
-        assertAllowed(file, allowedExtension);
-
-        String fileName = extractFilename(file);
-
-        String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath();
-        file.transferTo(Paths.get(absPath));
-        return getPathFileName(fileName);
-    }
-
-    /**
-     * 缂栫爜鏂囦欢鍚�
-     */
-    public static final String extractFilename(MultipartFile file)
-    {
-        return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(),
-                FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), FileTypeUtils.getExtension(file));
-    }
-
-    private static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException
-    {
-        File desc = new File(uploadDir + File.separator + fileName);
-
-        if (!desc.exists())
-        {
-            if (!desc.getParentFile().exists())
-            {
-                desc.getParentFile().mkdirs();
-            }
-        }
-        return desc.isAbsolute() ? desc : desc.getAbsoluteFile();
-    }
-
-    private static final String getPathFileName(String fileName) throws IOException
-    {
-        String pathFileName = "/" + fileName;
-        return pathFileName;
-    }
-
-    /**
-     * 鏂囦欢澶у皬鏍¢獙
-     *
-     * @param file 涓婁紶鐨勬枃浠�
-     * @throws FileSizeLimitExceededException 濡傛灉瓒呭嚭鏈�澶уぇ灏�
-     * @throws InvalidExtensionException 鏂囦欢鏍¢獙寮傚父
-     */
-    public static final void assertAllowed(MultipartFile file, String[] allowedExtension)
-            throws FileSizeLimitExceededException, InvalidExtensionException
-    {
-        long size = file.getSize();
-        if (size > DEFAULT_MAX_SIZE)
-        {
-            throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024);
-        }
-
-        String fileName = file.getOriginalFilename();
-        String extension = FileTypeUtils.getExtension(file);
-        if (allowedExtension != null && !isAllowedExtension(extension, allowedExtension))
-        {
-            if (allowedExtension == MimeTypeUtils.IMAGE_EXTENSION)
-            {
-                throw new InvalidExtensionException.InvalidImageExtensionException(allowedExtension, extension,
-                        fileName);
-            }
-            else if (allowedExtension == MimeTypeUtils.FLASH_EXTENSION)
-            {
-                throw new InvalidExtensionException.InvalidFlashExtensionException(allowedExtension, extension,
-                        fileName);
-            }
-            else if (allowedExtension == MimeTypeUtils.MEDIA_EXTENSION)
-            {
-                throw new InvalidExtensionException.InvalidMediaExtensionException(allowedExtension, extension,
-                        fileName);
-            }
-            else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION)
-            {
-                throw new InvalidExtensionException.InvalidVideoExtensionException(allowedExtension, extension,
-                        fileName);
-            }
-            else
-            {
-                throw new InvalidExtensionException(allowedExtension, extension, fileName);
-            }
-        }
-    }
-
-    /**
-     * 鍒ゆ柇MIME绫诲瀷鏄惁鏄厑璁哥殑MIME绫诲瀷
-     *
-     * @param extension 涓婁紶鏂囦欢绫诲瀷
-     * @param allowedExtension 鍏佽涓婁紶鏂囦欢绫诲瀷
-     * @return true/false
-     */
-    public static final boolean isAllowedExtension(String extension, String[] allowedExtension)
-    {
-        for (String str : allowedExtension)
-        {
-            if (str.equalsIgnoreCase(extension))
-            {
-                return true;
-            }
-        }
-        return false;
-    }
-}
\ No newline at end of file
diff --git a/se-modules/se-file/src/main/resources/banner.txt b/se-modules/se-file/src/main/resources/banner.txt
deleted file mode 100644
index 9504136..0000000
--- a/se-modules/se-file/src/main/resources/banner.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Spring Boot Version: ${spring-boot.version}
-Spring Application Name: ${spring.application.name}
-SeFileApplication锛屽凡缁忓惎鍔�
\ No newline at end of file
diff --git a/se-modules/se-file/src/main/resources/bootstrap.yml b/se-modules/se-file/src/main/resources/bootstrap.yml
deleted file mode 100644
index 3204f87..0000000
--- a/se-modules/se-file/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-# Tomcat
-server:
-  port: 9300
-
-# Spring
-spring: 
-  application:
-    # 搴旂敤鍚嶇О
-    name: se-file
-  profiles:
-    # 鐜閰嶇疆
-    active: dev
-  cloud:
-    nacos:
-      username: nacos
-      password: nAcos_!9#_admIn
-      discovery:
-        # 鏈嶅姟娉ㄥ唽鍦板潃
-        server-addr: 127.0.0.1:8848
-      config:
-        # 閰嶇疆涓績鍦板潃
-        server-addr: 127.0.0.1:8848
-        # 閰嶇疆鏂囦欢鏍煎紡
-        file-extension: yml
-        # 鍏变韩閰嶇疆
-        shared-configs:
-          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
diff --git a/se-modules/se-file/src/main/resources/logback.xml b/se-modules/se-file/src/main/resources/logback.xml
deleted file mode 100644
index 46941d6..0000000
--- a/se-modules/se-file/src/main/resources/logback.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration scan="true" scanPeriod="60 seconds" debug="false">
-    <!-- 鏃ュ織瀛樻斁璺緞 -->
-	<property name="log.path" value="logs/se-file" />
-   <!-- 鏃ュ織杈撳嚭鏍煎紡 -->
-	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
-
-    <!-- 鎺у埗鍙拌緭鍑� -->
-	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
-		<encoder>
-			<pattern>${log.pattern}</pattern>
-		</encoder>
-	</appender>
-
-    <!-- 绯荤粺鏃ュ織杈撳嚭 -->
-	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/info.log</file>
-        <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 鏃ュ織鏂囦欢鍚嶆牸寮� -->
-			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
-			<!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
-			<maxHistory>60</maxHistory>
-		</rollingPolicy>
-		<encoder>
-			<pattern>${log.pattern}</pattern>
-		</encoder>
-		<filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!-- 杩囨护鐨勭骇鍒� -->
-            <level>INFO</level>
-            <!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
-            <onMatch>ACCEPT</onMatch>
-            <!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
-            <onMismatch>DENY</onMismatch>
-        </filter>
-	</appender>
-
-    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/error.log</file>
-        <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 鏃ュ織鏂囦欢鍚嶆牸寮� -->
-            <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
-			<!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
-			<maxHistory>60</maxHistory>
-        </rollingPolicy>
-        <encoder>
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!-- 杩囨护鐨勭骇鍒� -->
-            <level>ERROR</level>
-			<!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
-            <onMatch>ACCEPT</onMatch>
-			<!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 绯荤粺妯″潡鏃ュ織绾у埆鎺у埗  -->
-	<logger name="com.se" level="info" />
-	<!-- Spring鏃ュ織绾у埆鎺у埗  -->
-	<logger name="org.springframework" level="warn" />
-
-	<root level="info">
-		<appender-ref ref="console" />
-	</root>
-	
-	<!--绯荤粺鎿嶄綔鏃ュ織-->
-    <root level="info">
-        <appender-ref ref="file_info" />
-        <appender-ref ref="file_error" />
-    </root>
-</configuration>
\ No newline at end of file
diff --git a/se-modules/se-gen/pom.xml b/se-modules/se-gen/pom.xml
deleted file mode 100644
index bf25817..0000000
--- a/se-modules/se-gen/pom.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>com.se</groupId>
-        <artifactId>se-modules</artifactId>
-        <version>3.6.4</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>se-modules-gen</artifactId>
-
-    <description>
-        se-modules-gen浠g爜鐢熸垚
-    </description>
-
-    <dependencies>
-    	
-    	<!-- SpringCloud Alibaba Nacos -->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
-        </dependency>
-        
-        <!-- SpringCloud Alibaba Nacos Config -->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
-        </dependency>
-        
-        <!-- SpringCloud Alibaba Sentinel -->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
-        </dependency>
-        
-        <!-- SpringBoot Actuator -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-actuator</artifactId>
-        </dependency>
-		
-        <!-- Swagger UI -->
-        <dependency>
-            <groupId>io.springfox</groupId>
-            <artifactId>springfox-swagger-ui</artifactId>
-            <version>${swagger.fox.version}</version>
-        </dependency>
-        
-        <!-- Apache Velocity -->
-        <dependency>
-            <groupId>org.apache.velocity</groupId>
-            <artifactId>velocity-engine-core</artifactId>
-        </dependency>
-        
-        <!-- Mysql Connector -->
-        <dependency>
-            <groupId>com.mysql</groupId>
-            <artifactId>mysql-connector-j</artifactId>
-        </dependency>
-        
-        <!-- SE Common Log -->
-        <dependency>
-            <groupId>com.se</groupId>
-            <artifactId>se-common-log</artifactId>
-        </dependency>
-        
-        <!-- SE Common Swagger -->
-        <dependency>
-            <groupId>com.se</groupId>
-            <artifactId>se-common-swagger</artifactId>
-        </dependency>
-
-    </dependencies>
-
-    <build>
-        <finalName>${project.artifactId}</finalName>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-   
-</project>
\ No newline at end of file
diff --git a/se-modules/se-gen/src/main/java/com/se/gen/SeGenApplication.java b/se-modules/se-gen/src/main/java/com/se/gen/SeGenApplication.java
deleted file mode 100644
index 8094ee0..0000000
--- a/se-modules/se-gen/src/main/java/com/se/gen/SeGenApplication.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.se.gen;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import com.se.common.security.annotation.EnableCustomConfig;
-import com.se.common.security.annotation.EnableRyFeignClients;
-import com.se.common.swagger.annotation.EnableCustomSwagger2;
-
-/**
- * 浠g爜鐢熸垚
- * 
- * @author admin
- */
-@EnableCustomConfig
-@EnableCustomSwagger2
-@EnableRyFeignClients
-@SpringBootApplication
-public class SeGenApplication
-{
-    public static void main(String[] args)
-    {
-        SpringApplication.run(SeGenApplication.class, args);
-        System.out.println("    浠g爜鐢熸垚妯″潡鍚姩鎴愬姛    ");
-    }
-}
diff --git a/se-modules/se-gen/src/main/resources/banner.txt b/se-modules/se-gen/src/main/resources/banner.txt
deleted file mode 100644
index b951c98..0000000
--- a/se-modules/se-gen/src/main/resources/banner.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Spring Boot Version: ${spring-boot.version}
-Spring Application Name: ${spring.application.name}
-SeGenApplication锛屽凡缁忓惎鍔�
\ No newline at end of file
diff --git a/se-modules/se-gen/src/main/resources/bootstrap.yml b/se-modules/se-gen/src/main/resources/bootstrap.yml
deleted file mode 100644
index d041ebe..0000000
--- a/se-modules/se-gen/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-# Tomcat
-server:
-  port: 9202
-
-# Spring
-spring: 
-  application:
-    # 搴旂敤鍚嶇О
-    name: se-gen
-  profiles:
-    # 鐜閰嶇疆
-    active: dev
-  cloud:
-    nacos:
-      username: nacos
-      password: nAcos_!9#_admIn
-      discovery:
-        # 鏈嶅姟娉ㄥ唽鍦板潃
-        server-addr: 127.0.0.1:8848
-      config:
-        # 閰嶇疆涓績鍦板潃
-        server-addr: 127.0.0.1:8848
-        # 閰嶇疆鏂囦欢鏍煎紡
-        file-extension: yml
-        # 鍏变韩閰嶇疆
-        shared-configs:
-          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
diff --git a/se-modules/se-gen/src/main/resources/logback.xml b/se-modules/se-gen/src/main/resources/logback.xml
deleted file mode 100644
index eeb9a55..0000000
--- a/se-modules/se-gen/src/main/resources/logback.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration scan="true" scanPeriod="60 seconds" debug="false">
-    <!-- 鏃ュ織瀛樻斁璺緞 -->
-	<property name="log.path" value="logs/se-gen" />
-   <!-- 鏃ュ織杈撳嚭鏍煎紡 -->
-	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
-
-    <!-- 鎺у埗鍙拌緭鍑� -->
-	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
-		<encoder>
-			<pattern>${log.pattern}</pattern>
-		</encoder>
-	</appender>
-
-    <!-- 绯荤粺鏃ュ織杈撳嚭 -->
-	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/info.log</file>
-        <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 鏃ュ織鏂囦欢鍚嶆牸寮� -->
-			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
-			<!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
-			<maxHistory>60</maxHistory>
-		</rollingPolicy>
-		<encoder>
-			<pattern>${log.pattern}</pattern>
-		</encoder>
-		<filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!-- 杩囨护鐨勭骇鍒� -->
-            <level>INFO</level>
-            <!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
-            <onMatch>ACCEPT</onMatch>
-            <!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
-            <onMismatch>DENY</onMismatch>
-        </filter>
-	</appender>
-
-    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/error.log</file>
-        <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 鏃ュ織鏂囦欢鍚嶆牸寮� -->
-            <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
-			<!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
-			<maxHistory>60</maxHistory>
-        </rollingPolicy>
-        <encoder>
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!-- 杩囨护鐨勭骇鍒� -->
-            <level>ERROR</level>
-			<!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
-            <onMatch>ACCEPT</onMatch>
-			<!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 绯荤粺妯″潡鏃ュ織绾у埆鎺у埗  -->
-	<logger name="com.se" level="info" />
-	<!-- Spring鏃ュ織绾у埆鎺у埗  -->
-	<logger name="org.springframework" level="warn" />
-
-	<root level="info">
-		<appender-ref ref="console" />
-	</root>
-	
-	<!--绯荤粺鎿嶄綔鏃ュ織-->
-    <root level="info">
-        <appender-ref ref="file_info" />
-        <appender-ref ref="file_error" />
-    </root>
-</configuration>
\ No newline at end of file
diff --git a/se-modules/se-gen/src/main/resources/vm/java/controller.java.vm b/se-modules/se-gen/src/main/resources/vm/java/controller.java.vm
deleted file mode 100644
index 86e7eaf..0000000
--- a/se-modules/se-gen/src/main/resources/vm/java/controller.java.vm
+++ /dev/null
@@ -1,115 +0,0 @@
-package ${packageName}.controller;
-
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.se.common.log.annotation.Log;
-import com.se.common.log.enums.BusinessType;
-import com.se.common.security.annotation.RequiresPermissions;
-import ${packageName}.domain.${ClassName};
-import ${packageName}.service.I${ClassName}Service;
-import com.se.common.core.web.controller.BaseController;
-import com.se.common.core.web.domain.AjaxResult;
-import com.se.common.core.utils.poi.ExcelUtil;
-#if($table.crud || $table.sub)
-import com.se.common.core.web.page.TableDataInfo;
-#elseif($table.tree)
-#end
-
-/**
- * ${functionName}Controller
- * 
- * @author ${author}
- * @date ${datetime}
- */
-@RestController
-@RequestMapping("/${businessName}")
-public class ${ClassName}Controller extends BaseController
-{
-    @Autowired
-    private I${ClassName}Service ${className}Service;
-
-    /**
-     * 鏌ヨ${functionName}鍒楄〃
-     */
-    @RequiresPermissions("${permissionPrefix}:list")
-    @GetMapping("/list")
-#if($table.crud || $table.sub)
-    public TableDataInfo list(${ClassName} ${className})
-    {
-        startPage();
-        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
-        return getDataTable(list);
-    }
-#elseif($table.tree)
-    public AjaxResult list(${ClassName} ${className})
-    {
-        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
-        return success(list);
-    }
-#end
-
-    /**
-     * 瀵煎嚭${functionName}鍒楄〃
-     */
-    @RequiresPermissions("${permissionPrefix}:export")
-    @Log(title = "${functionName}", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, ${ClassName} ${className})
-    {
-        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
-        ExcelUtil<${ClassName}> util = new ExcelUtil<${ClassName}>(${ClassName}.class);
-        util.exportExcel(response, list, "${functionName}鏁版嵁");
-    }
-
-    /**
-     * 鑾峰彇${functionName}璇︾粏淇℃伅
-     */
-    @RequiresPermissions("${permissionPrefix}:query")
-    @GetMapping(value = "/{${pkColumn.javaField}}")
-    public AjaxResult getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField})
-    {
-        return success(${className}Service.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}));
-    }
-
-    /**
-     * 鏂板${functionName}
-     */
-    @RequiresPermissions("${permissionPrefix}:add")
-    @Log(title = "${functionName}", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody ${ClassName} ${className})
-    {
-        return toAjax(${className}Service.insert${ClassName}(${className}));
-    }
-
-    /**
-     * 淇敼${functionName}
-     */
-    @RequiresPermissions("${permissionPrefix}:edit")
-    @Log(title = "${functionName}", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody ${ClassName} ${className})
-    {
-        return toAjax(${className}Service.update${ClassName}(${className}));
-    }
-
-    /**
-     * 鍒犻櫎${functionName}
-     */
-    @RequiresPermissions("${permissionPrefix}:remove")
-    @Log(title = "${functionName}", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{${pkColumn.javaField}s}")
-    public AjaxResult remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s)
-    {
-        return toAjax(${className}Service.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s));
-    }
-}
diff --git a/se-modules/se-gen/src/main/resources/vm/java/domain.java.vm b/se-modules/se-gen/src/main/resources/vm/java/domain.java.vm
deleted file mode 100644
index bb2fa06..0000000
--- a/se-modules/se-gen/src/main/resources/vm/java/domain.java.vm
+++ /dev/null
@@ -1,101 +0,0 @@
-package ${packageName}.domain;
-
-#foreach ($import in $importList)
-import ${import};
-#end
-import com.se.common.core.annotation.Excel;
-#if($table.crud || $table.sub)
-#elseif($table.tree)
-#end
-
-/**
- * ${functionName}瀵硅薄 ${tableName}
- * 
- * @author ${author}
- * @date ${datetime}
- */
-#if($table.crud || $table.sub)
-#set($Entity="BaseEntity")
-#elseif($table.tree)
-#set($Entity="TreeEntity")
-#end
-public class ${ClassName} extends ${Entity}
-{
-    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($parentheseIndex != -1)
-    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
-#elseif($column.javaType == 'Date')
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
-#else
-    @Excel(name = "${comment}")
-#end
-#end
-    private $column.javaType $column.javaField;
-
-#end
-#end
-#if($table.sub)
-    /** $table.subTable.functionName淇℃伅 */
-    private List<${subClassName}> ${subclassName}List;
-
-#end
-#foreach ($column in $columns)
-#if(!$table.isSuperColumn($column.javaField))
-#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
-#set($AttrName=$column.javaField)
-#else
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#end
-    public void set${AttrName}($column.javaType $column.javaField) 
-    {
-        this.$column.javaField = $column.javaField;
-    }
-
-    public $column.javaType get${AttrName}() 
-    {
-        return $column.javaField;
-    }
-#end
-#end
-
-#if($table.sub)
-    public List<${subClassName}> get${subClassName}List()
-    {
-        return ${subclassName}List;
-    }
-
-    public void set${subClassName}List(List<${subClassName}> ${subclassName}List)
-    {
-        this.${subclassName}List = ${subclassName}List;
-    }
-
-#end
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-#foreach ($column in $columns)
-#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
-#set($AttrName=$column.javaField)
-#else
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#end
-            .append("${column.javaField}", get${AttrName}())
-#end
-#if($table.sub)
-            .append("${subclassName}List", get${subClassName}List())
-#end
-            .toString();
-    }
-}
diff --git a/se-modules/se-gen/src/main/resources/vm/java/mapper.java.vm b/se-modules/se-gen/src/main/resources/vm/java/mapper.java.vm
deleted file mode 100644
index 7e7d7c2..0000000
--- a/se-modules/se-gen/src/main/resources/vm/java/mapper.java.vm
+++ /dev/null
@@ -1,91 +0,0 @@
-package ${packageName}.mapper;
-
-import java.util.List;
-import ${packageName}.domain.${ClassName};
-#if($table.sub)
-import ${packageName}.domain.${subClassName};
-#end
-
-/**
- * ${functionName}Mapper鎺ュ彛
- * 
- * @author ${author}
- * @date ${datetime}
- */
-public interface ${ClassName}Mapper 
-{
-    /**
-     * 鏌ヨ${functionName}
-     * 
-     * @param ${pkColumn.javaField} ${functionName}涓婚敭
-     * @return ${functionName}
-     */
-    public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
-
-    /**
-     * 鏌ヨ${functionName}鍒楄〃
-     * 
-     * @param ${className} ${functionName}
-     * @return ${functionName}闆嗗悎
-     */
-    public List<${ClassName}> select${ClassName}List(${ClassName} ${className});
-
-    /**
-     * 鏂板${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 缁撴灉
-     */
-    public int insert${ClassName}(${ClassName} ${className});
-
-    /**
-     * 淇敼${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 缁撴灉
-     */
-    public int update${ClassName}(${ClassName} ${className});
-
-    /**
-     * 鍒犻櫎${functionName}
-     * 
-     * @param ${pkColumn.javaField} ${functionName}涓婚敭
-     * @return 缁撴灉
-     */
-    public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
-
-    /**
-     * 鎵归噺鍒犻櫎${functionName}
-     * 
-     * @param ${pkColumn.javaField}s 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
-#if($table.sub)
-
-    /**
-     * 鎵归噺鍒犻櫎${subTable.functionName}
-     * 
-     * @param ${pkColumn.javaField}s 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
-    
-    /**
-     * 鎵归噺鏂板${subTable.functionName}
-     * 
-     * @param ${subclassName}List ${subTable.functionName}鍒楄〃
-     * @return 缁撴灉
-     */
-    public int batch${subClassName}(List<${subClassName}> ${subclassName}List);
-    
-
-    /**
-     * 閫氳繃${functionName}涓婚敭鍒犻櫎${subTable.functionName}淇℃伅
-     * 
-     * @param ${pkColumn.javaField} ${functionName}ID
-     * @return 缁撴灉
-     */
-    public int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField});
-#end
-}
diff --git a/se-modules/se-gen/src/main/resources/vm/java/service.java.vm b/se-modules/se-gen/src/main/resources/vm/java/service.java.vm
deleted file mode 100644
index 264882b..0000000
--- a/se-modules/se-gen/src/main/resources/vm/java/service.java.vm
+++ /dev/null
@@ -1,61 +0,0 @@
-package ${packageName}.service;
-
-import java.util.List;
-import ${packageName}.domain.${ClassName};
-
-/**
- * ${functionName}Service鎺ュ彛
- * 
- * @author ${author}
- * @date ${datetime}
- */
-public interface I${ClassName}Service 
-{
-    /**
-     * 鏌ヨ${functionName}
-     * 
-     * @param ${pkColumn.javaField} ${functionName}涓婚敭
-     * @return ${functionName}
-     */
-    public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
-
-    /**
-     * 鏌ヨ${functionName}鍒楄〃
-     * 
-     * @param ${className} ${functionName}
-     * @return ${functionName}闆嗗悎
-     */
-    public List<${ClassName}> select${ClassName}List(${ClassName} ${className});
-
-    /**
-     * 鏂板${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 缁撴灉
-     */
-    public int insert${ClassName}(${ClassName} ${className});
-
-    /**
-     * 淇敼${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 缁撴灉
-     */
-    public int update${ClassName}(${ClassName} ${className});
-
-    /**
-     * 鎵归噺鍒犻櫎${functionName}
-     * 
-     * @param ${pkColumn.javaField}s 闇�瑕佸垹闄ょ殑${functionName}涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
-
-    /**
-     * 鍒犻櫎${functionName}淇℃伅
-     * 
-     * @param ${pkColumn.javaField} ${functionName}涓婚敭
-     * @return 缁撴灉
-     */
-    public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
-}
diff --git a/se-modules/se-gen/src/main/resources/vm/java/serviceImpl.java.vm b/se-modules/se-gen/src/main/resources/vm/java/serviceImpl.java.vm
deleted file mode 100644
index 81d3764..0000000
--- a/se-modules/se-gen/src/main/resources/vm/java/serviceImpl.java.vm
+++ /dev/null
@@ -1,169 +0,0 @@
-package ${packageName}.service.impl;
-
-import java.util.List;
-#foreach ($column in $columns)
-#if($column.javaField == 'createTime' || $column.javaField == 'updateTime')
-import com.se.common.core.utils.DateUtils;
-#break
-#end
-#end
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-#if($table.sub)
-import java.util.ArrayList;
-import com.se.common.core.utils.StringUtils;
-import org.springframework.transaction.annotation.Transactional;
-import ${packageName}.domain.${subClassName};
-#end
-import ${packageName}.mapper.${ClassName}Mapper;
-import ${packageName}.domain.${ClassName};
-import ${packageName}.service.I${ClassName}Service;
-
-/**
- * ${functionName}Service涓氬姟灞傚鐞�
- * 
- * @author ${author}
- * @date ${datetime}
- */
-@Service
-public class ${ClassName}ServiceImpl implements I${ClassName}Service 
-{
-    @Autowired
-    private ${ClassName}Mapper ${className}Mapper;
-
-    /**
-     * 鏌ヨ${functionName}
-     * 
-     * @param ${pkColumn.javaField} ${functionName}涓婚敭
-     * @return ${functionName}
-     */
-    @Override
-    public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField})
-    {
-        return ${className}Mapper.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField});
-    }
-
-    /**
-     * 鏌ヨ${functionName}鍒楄〃
-     * 
-     * @param ${className} ${functionName}
-     * @return ${functionName}
-     */
-    @Override
-    public List<${ClassName}> select${ClassName}List(${ClassName} ${className})
-    {
-        return ${className}Mapper.select${ClassName}List(${className});
-    }
-
-    /**
-     * 鏂板${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 缁撴灉
-     */
-#if($table.sub)
-    @Transactional
-#end
-    @Override
-    public int insert${ClassName}(${ClassName} ${className})
-    {
-#foreach ($column in $columns)
-#if($column.javaField == 'createTime')
-        ${className}.setCreateTime(DateUtils.getNowDate());
-#end
-#end
-#if($table.sub)
-        int rows = ${className}Mapper.insert${ClassName}(${className});
-        insert${subClassName}(${className});
-        return rows;
-#else
-        return ${className}Mapper.insert${ClassName}(${className});
-#end
-    }
-
-    /**
-     * 淇敼${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 缁撴灉
-     */
-#if($table.sub)
-    @Transactional
-#end
-    @Override
-    public int update${ClassName}(${ClassName} ${className})
-    {
-#foreach ($column in $columns)
-#if($column.javaField == 'updateTime')
-        ${className}.setUpdateTime(DateUtils.getNowDate());
-#end
-#end
-#if($table.sub)
-        ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}());
-        insert${subClassName}(${className});
-#end
-        return ${className}Mapper.update${ClassName}(${className});
-    }
-
-    /**
-     * 鎵归噺鍒犻櫎${functionName}
-     * 
-     * @param ${pkColumn.javaField}s 闇�瑕佸垹闄ょ殑${functionName}涓婚敭
-     * @return 缁撴灉
-     */
-#if($table.sub)
-    @Transactional
-#end
-    @Override
-    public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s)
-    {
-#if($table.sub)
-        ${className}Mapper.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s);
-#end
-        return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s);
-    }
-
-    /**
-     * 鍒犻櫎${functionName}淇℃伅
-     * 
-     * @param ${pkColumn.javaField} ${functionName}涓婚敭
-     * @return 缁撴灉
-     */
-#if($table.sub)
-    @Transactional
-#end
-    @Override
-    public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField})
-    {
-#if($table.sub)
-        ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField});
-#end
-        return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField});
-    }
-#if($table.sub)
-
-    /**
-     * 鏂板${subTable.functionName}淇℃伅
-     * 
-     * @param ${className} ${functionName}瀵硅薄
-     */
-    public void 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<${subClassName}>();
-            for (${subClassName} ${subclassName} : ${subclassName}List)
-            {
-                ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField});
-                list.add(${subclassName});
-            }
-            if (list.size() > 0)
-            {
-                ${className}Mapper.batch${subClassName}(list);
-            }
-        }
-    }
-#end
-}
diff --git a/se-modules/se-gen/src/main/resources/vm/java/sub-domain.java.vm b/se-modules/se-gen/src/main/resources/vm/java/sub-domain.java.vm
deleted file mode 100644
index a517964..0000000
--- a/se-modules/se-gen/src/main/resources/vm/java/sub-domain.java.vm
+++ /dev/null
@@ -1,73 +0,0 @@
-package ${packageName}.domain;
-
-#foreach ($import in $subImportList)
-import ${import};
-#end
-import com.se.common.core.annotation.Excel;
-
-/**
- * ${subTable.functionName}瀵硅薄 ${subTableName}
- * 
- * @author ${author}
- * @date ${datetime}
- */
-public class ${subClassName} extends BaseEntity
-{
-    private static final long serialVersionUID = 1L;
-
-#foreach ($column in $subTable.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($parentheseIndex != -1)
-    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
-#elseif($column.javaType == 'Date')
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
-#else
-    @Excel(name = "${comment}")
-#end
-#end
-    private $column.javaType $column.javaField;
-
-#end
-#end
-#foreach ($column in $subTable.columns)
-#if(!$table.isSuperColumn($column.javaField))
-#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
-#set($AttrName=$column.javaField)
-#else
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#end
-    public void set${AttrName}($column.javaType $column.javaField) 
-    {
-        this.$column.javaField = $column.javaField;
-    }
-
-    public $column.javaType get${AttrName}() 
-    {
-        return $column.javaField;
-    }
-#end
-#end
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-#foreach ($column in $subTable.columns)
-#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
-#set($AttrName=$column.javaField)
-#else
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#end
-            .append("${column.javaField}", get${AttrName}())
-#end
-            .toString();
-    }
-}
diff --git a/se-modules/se-gen/src/main/resources/vm/js/api.js.vm b/se-modules/se-gen/src/main/resources/vm/js/api.js.vm
deleted file mode 100644
index 9295524..0000000
--- a/se-modules/se-gen/src/main/resources/vm/js/api.js.vm
+++ /dev/null
@@ -1,44 +0,0 @@
-import request from '@/utils/request'
-
-// 鏌ヨ${functionName}鍒楄〃
-export function list${BusinessName}(query) {
-  return request({
-    url: '/${moduleName}/${businessName}/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 鏌ヨ${functionName}璇︾粏
-export function get${BusinessName}(${pkColumn.javaField}) {
-  return request({
-    url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField},
-    method: 'get'
-  })
-}
-
-// 鏂板${functionName}
-export function add${BusinessName}(data) {
-  return request({
-    url: '/${moduleName}/${businessName}',
-    method: 'post',
-    data: data
-  })
-}
-
-// 淇敼${functionName}
-export function update${BusinessName}(data) {
-  return request({
-    url: '/${moduleName}/${businessName}',
-    method: 'put',
-    data: data
-  })
-}
-
-// 鍒犻櫎${functionName}
-export function del${BusinessName}(${pkColumn.javaField}) {
-  return request({
-    url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField},
-    method: 'delete'
-  })
-}
diff --git a/se-modules/se-gen/src/main/resources/vm/sql/sql.vm b/se-modules/se-gen/src/main/resources/vm/sql/sql.vm
deleted file mode 100644
index 0575583..0000000
--- a/se-modules/se-gen/src/main/resources/vm/sql/sql.vm
+++ /dev/null
@@ -1,22 +0,0 @@
--- 鑿滃崟 SQL
-insert into sys_menu (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('${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 'admin', sysdate(), '', null, '${functionName}鑿滃崟');
-
--- 鎸夐挳鐖惰彍鍗旾D
-SELECT @parentId := LAST_INSERT_ID();
-
--- 鎸夐挳 SQL
-insert into sys_menu (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('${functionName}鏌ヨ', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query',        '#', 'admin', sysdate(), '', null, '');
-
-insert into sys_menu (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('${functionName}鏂板', @parentId, '2',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add',          '#', 'admin', sysdate(), '', null, '');
-
-insert into sys_menu (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('${functionName}淇敼', @parentId, '3',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit',         '#', 'admin', sysdate(), '', null, '');
-
-insert into sys_menu (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('${functionName}鍒犻櫎', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove',       '#', 'admin', sysdate(), '', null, '');
-
-insert into sys_menu (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('${functionName}瀵煎嚭', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export',       '#', 'admin', sysdate(), '', null, '');
\ No newline at end of file
diff --git a/se-modules/se-gen/src/main/resources/vm/vue/index-tree.vue.vm b/se-modules/se-gen/src/main/resources/vm/vue/index-tree.vue.vm
deleted file mode 100644
index a4c64a0..0000000
--- a/se-modules/se-gen/src/main/resources/vm/vue/index-tree.vue.vm
+++ /dev/null
@@ -1,505 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-#foreach($column in $columns)
-#if($column.query)
-#set($dictType=$column.dictType)
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.htmlType == "input")
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-input
-          v-model="queryParams.${column.javaField}"
-          placeholder="璇疯緭鍏�${comment}"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-#elseif(($column.htmlType == "select" || $column.htmlType == "radio") && "" != $dictType)
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-select v-model="queryParams.${column.javaField}" placeholder="璇烽�夋嫨${comment}" clearable>
-          <el-option
-            v-for="dict in dict.type.${dictType}"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-#elseif(($column.htmlType == "select" || $column.htmlType == "radio") && $dictType)
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-select v-model="queryParams.${column.javaField}" placeholder="璇烽�夋嫨${comment}" clearable>
-          <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
-        </el-select>
-      </el-form-item>
-#elseif($column.htmlType == "datetime" && $column.queryType != "BETWEEN")
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-date-picker clearable
-          v-model="queryParams.${column.javaField}"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="閫夋嫨${comment}">
-        </el-date-picker>
-      </el-form-item>
-#elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-      <el-form-item label="${comment}">
-        <el-date-picker
-          v-model="daterange${AttrName}"
-          style="width: 240px"
-          value-format="yyyy-MM-dd"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="寮�濮嬫棩鏈�"
-          end-placeholder="缁撴潫鏃ユ湡"
-        ></el-date-picker>
-      </el-form-item>
-#end
-#end
-#end
-      <el-form-item>
-	    <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['${moduleName}:${businessName}:add']"
-        >鏂板</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="info"
-          plain
-          icon="el-icon-sort"
-          size="mini"
-          @click="toggleExpandAll"
-        >灞曞紑/鎶樺彔</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table
-      v-if="refreshTable"
-      v-loading="loading"
-      :data="${businessName}List"
-      row-key="${treeCode}"
-      :default-expand-all="isExpandAll"
-      :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
-    >
-#foreach($column in $columns)
-#set($javaField=$column.javaField)
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.pk)
-#elseif($column.list && $column.htmlType == "datetime")
-      <el-table-column label="${comment}" align="center" prop="${javaField}" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.${javaField}, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-#elseif($column.list && $column.htmlType == "imageUpload")
-      <el-table-column label="${comment}" align="center" prop="${javaField}" width="100">
-        <template slot-scope="scope">
-          <image-preview :src="scope.row.${javaField}" :width="50" :height="50"/>
-        </template>
-      </el-table-column>
-#elseif($column.list && "" != $column.dictType)
-      <el-table-column label="${comment}" align="center" prop="${javaField}">
-        <template slot-scope="scope">
-#if($column.htmlType == "checkbox")
-          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.${javaField} ? scope.row.${javaField}.split(',') : []"/>
-#else
-          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.${javaField}"/>
-#end
-        </template>
-      </el-table-column>
-#elseif($column.list && "" != $javaField)
-#if(${foreach.index} == 1)
-      <el-table-column label="${comment}" prop="${javaField}" />
-#else
-      <el-table-column label="${comment}" align="center" prop="${javaField}" />
-#end
-#end
-#end
-      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['${moduleName}:${businessName}:edit']"
-          >淇敼</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-plus"
-            @click="handleAdd(scope.row)"
-            v-hasPermi="['${moduleName}:${businessName}:add']"
-          >鏂板</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['${moduleName}:${businessName}:remove']"
-          >鍒犻櫎</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <!-- 娣诲姞鎴栦慨鏀�${functionName}瀵硅瘽妗� -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-#foreach($column in $columns)
-#set($field=$column.javaField)
-#if($column.insert && !$column.pk)
-#if(($column.usableColumn) || (!$column.superColumn))
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#set($dictType=$column.dictType)
-#if("" != $treeParentCode && $column.javaField == $treeParentCode)
-        <el-form-item label="${comment}" prop="${treeParentCode}">
-          <treeselect v-model="form.${treeParentCode}" :options="${businessName}Options" :normalizer="normalizer" placeholder="璇烽�夋嫨${comment}" />
-        </el-form-item>
-#elseif($column.htmlType == "input")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-input v-model="form.${field}" placeholder="璇疯緭鍏�${comment}" />
-        </el-form-item>
-#elseif($column.htmlType == "imageUpload")
-        <el-form-item label="${comment}" prop="${field}">
-          <image-upload v-model="form.${field}"/>
-        </el-form-item>
-#elseif($column.htmlType == "fileUpload")
-        <el-form-item label="${comment}" prop="${field}">
-          <file-upload v-model="form.${field}"/>
-        </el-form-item>
-#elseif($column.htmlType == "editor")
-        <el-form-item label="${comment}">
-          <editor v-model="form.${field}" :min-height="192"/>
-        </el-form-item>
-#elseif($column.htmlType == "select" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-select v-model="form.${field}" placeholder="璇烽�夋嫨${comment}">
-            <el-option
-              v-for="dict in dict.type.${dictType}"
-              :key="dict.value"
-              :label="dict.label"
-#if($column.javaType == "Integer" || $column.javaType == "Long")
-              :value="parseInt(dict.value)"
-#else
-              :value="dict.value"
-#end
-            ></el-option>
-          </el-select>
-        </el-form-item>
-#elseif($column.htmlType == "select" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-select v-model="form.${field}" placeholder="璇烽�夋嫨${comment}">
-            <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
-          </el-select>
-        </el-form-item>
-#elseif($column.htmlType == "checkbox" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-checkbox-group v-model="form.${field}">
-            <el-checkbox
-              v-for="dict in dict.type.${dictType}"
-              :key="dict.value"
-              :label="dict.value">
-              {{dict.label}}
-            </el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
-#elseif($column.htmlType == "checkbox" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-checkbox-group v-model="form.${field}">
-            <el-checkbox>璇烽�夋嫨瀛楀吀鐢熸垚</el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
-#elseif($column.htmlType == "radio" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-radio-group v-model="form.${field}">
-            <el-radio
-              v-for="dict in dict.type.${dictType}"
-              :key="dict.value"
-#if($column.javaType == "Integer" || $column.javaType == "Long")
-              :label="parseInt(dict.value)"
-#else
-              :label="dict.value"
-#end
-            >{{dict.label}}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-#elseif($column.htmlType == "radio" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-radio-group v-model="form.${field}">
-            <el-radio label="1">璇烽�夋嫨瀛楀吀鐢熸垚</el-radio>
-          </el-radio-group>
-        </el-form-item>
-#elseif($column.htmlType == "datetime")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-date-picker clearable
-            v-model="form.${field}"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="閫夋嫨${comment}">
-          </el-date-picker>
-        </el-form-item>
-#elseif($column.htmlType == "textarea")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-input v-model="form.${field}" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
-        </el-form-item>
-#end
-#end
-#end
-#end
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
-        <el-button @click="cancel">鍙� 娑�</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}";
-import Treeselect from "@riophae/vue-treeselect";
-import "@riophae/vue-treeselect/dist/vue-treeselect.css";
-
-export default {
-  name: "${BusinessName}",
-#if(${dicts} != '')
-  dicts: [${dicts}],
-#end
-  components: {
-    Treeselect
-  },
-  data() {
-    return {
-      // 閬僵灞�
-      loading: true,
-      // 鏄剧ず鎼滅储鏉′欢
-      showSearch: true,
-      // ${functionName}琛ㄦ牸鏁版嵁
-      ${businessName}List: [],
-      // ${functionName}鏍戦�夐」
-      ${businessName}Options: [],
-      // 寮瑰嚭灞傛爣棰�
-      title: "",
-      // 鏄惁鏄剧ず寮瑰嚭灞�
-      open: false,
-      // 鏄惁灞曞紑锛岄粯璁ゅ叏閮ㄥ睍寮�
-      isExpandAll: true,
-      // 閲嶆柊娓叉煋琛ㄦ牸鐘舵��
-      refreshTable: true,
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-      // $comment鏃堕棿鑼冨洿
-      daterange${AttrName}: [],
-#end
-#end
-      // 鏌ヨ鍙傛暟
-      queryParams: {
-#foreach ($column in $columns)
-#if($column.query)
-        $column.javaField: null#if($foreach.count != $columns.size()),#end
-#end
-#end
-      },
-      // 琛ㄥ崟鍙傛暟
-      form: {},
-      // 琛ㄥ崟鏍¢獙
-      rules: {
-#foreach ($column in $columns)
-#if($column.required)
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-        $column.javaField: [
-          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: #if($column.htmlType == "select" || $column.htmlType == "radio")"change"#else"blur"#end }
-        ]#if($foreach.count != $columns.size()),#end
-#end
-#end
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 鏌ヨ${functionName}鍒楄〃 */
-    getList() {
-      this.loading = true;
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-      this.queryParams.params = {};
-#break
-#end
-#end
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-      if (null != this.daterange${AttrName} && '' != this.daterange${AttrName}) {
-        this.queryParams.params["begin${AttrName}"] = this.daterange${AttrName}[0];
-        this.queryParams.params["end${AttrName}"] = this.daterange${AttrName}[1];
-      }
-#end
-#end
-      list${BusinessName}(this.queryParams).then(response => {
-        this.${businessName}List = this.handleTree(response.data, "${treeCode}", "${treeParentCode}");
-        this.loading = false;
-      });
-    },
-    /** 杞崲${functionName}鏁版嵁缁撴瀯 */
-    normalizer(node) {
-      if (node.children && !node.children.length) {
-        delete node.children;
-      }
-      return {
-        id: node.${treeCode},
-        label: node.${treeName},
-        children: node.children
-      };
-    },
-	/** 鏌ヨ${functionName}涓嬫媺鏍戠粨鏋� */
-    getTreeselect() {
-      list${BusinessName}().then(response => {
-        this.${businessName}Options = [];
-        const data = { ${treeCode}: 0, ${treeName}: '椤剁骇鑺傜偣', children: [] };
-        data.children = this.handleTree(response.data, "${treeCode}", "${treeParentCode}");
-        this.${businessName}Options.push(data);
-      });
-    },
-    // 鍙栨秷鎸夐挳
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 琛ㄥ崟閲嶇疆
-    reset() {
-      this.form = {
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-        $column.javaField: []#if($foreach.count != $columns.size()),#end
-#else
-        $column.javaField: null#if($foreach.count != $columns.size()),#end
-#end
-#end
-      };
-      this.resetForm("form");
-    },
-    /** 鎼滅储鎸夐挳鎿嶄綔 */
-    handleQuery() {
-      this.getList();
-    },
-    /** 閲嶇疆鎸夐挳鎿嶄綔 */
-    resetQuery() {
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-      this.daterange${AttrName} = [];
-#end
-#end
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 鏂板鎸夐挳鎿嶄綔 */
-    handleAdd(row) {
-      this.reset();
-      this.getTreeselect();
-      if (row != null && row.${treeCode}) {
-        this.form.${treeParentCode} = row.${treeCode};
-      } else {
-        this.form.${treeParentCode} = 0;
-      }
-      this.open = true;
-      this.title = "娣诲姞${functionName}";
-    },
-    /** 灞曞紑/鎶樺彔鎿嶄綔 */
-    toggleExpandAll() {
-      this.refreshTable = false;
-      this.isExpandAll = !this.isExpandAll;
-      this.$nextTick(() => {
-        this.refreshTable = true;
-      });
-    },
-    /** 淇敼鎸夐挳鎿嶄綔 */
-    handleUpdate(row) {
-      this.reset();
-      this.getTreeselect();
-      if (row != null) {
-        this.form.${treeParentCode} = row.${treeCode};
-      }
-      get${BusinessName}(row.${pkColumn.javaField}).then(response => {
-        this.form = response.data;
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-        this.form.$column.javaField = this.form.${column.javaField}.split(",");
-#end
-#end
-        this.open = true;
-        this.title = "淇敼${functionName}";
-      });
-    },
-    /** 鎻愪氦鎸夐挳 */
-    submitForm() {
-      this.#[[$]]#refs["form"].validate(valid => {
-        if (valid) {
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-          this.form.$column.javaField = this.form.${column.javaField}.join(",");
-#end
-#end
-          if (this.form.${pkColumn.javaField} != null) {
-            update${BusinessName}(this.form).then(response => {
-              this.#[[$modal]]#.msgSuccess("淇敼鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            add${BusinessName}(this.form).then(response => {
-              this.#[[$modal]]#.msgSuccess("鏂板鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete(row) {
-      this.#[[$modal]]#.confirm('鏄惁纭鍒犻櫎${functionName}缂栧彿涓�"' + row.${pkColumn.javaField} + '"鐨勬暟鎹」锛�').then(function() {
-        return del${BusinessName}(row.${pkColumn.javaField});
-      }).then(() => {
-        this.getList();
-        this.#[[$modal]]#.msgSuccess("鍒犻櫎鎴愬姛");
-      }).catch(() => {});
-    }
-  }
-};
-</script>
diff --git a/se-modules/se-gen/src/main/resources/vm/vue/index.vue.vm b/se-modules/se-gen/src/main/resources/vm/vue/index.vue.vm
deleted file mode 100644
index 6296014..0000000
--- a/se-modules/se-gen/src/main/resources/vm/vue/index.vue.vm
+++ /dev/null
@@ -1,602 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-#foreach($column in $columns)
-#if($column.query)
-#set($dictType=$column.dictType)
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.htmlType == "input")
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-input
-          v-model="queryParams.${column.javaField}"
-          placeholder="璇疯緭鍏�${comment}"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-#elseif(($column.htmlType == "select" || $column.htmlType == "radio") && "" != $dictType)
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-select v-model="queryParams.${column.javaField}" placeholder="璇烽�夋嫨${comment}" clearable>
-          <el-option
-            v-for="dict in dict.type.${dictType}"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-#elseif(($column.htmlType == "select" || $column.htmlType == "radio") && $dictType)
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-select v-model="queryParams.${column.javaField}" placeholder="璇烽�夋嫨${comment}" clearable>
-          <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
-        </el-select>
-      </el-form-item>
-#elseif($column.htmlType == "datetime" && $column.queryType != "BETWEEN")
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-date-picker clearable
-          v-model="queryParams.${column.javaField}"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="璇烽�夋嫨${comment}">
-        </el-date-picker>
-      </el-form-item>
-#elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-      <el-form-item label="${comment}">
-        <el-date-picker
-          v-model="daterange${AttrName}"
-          style="width: 240px"
-          value-format="yyyy-MM-dd"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="寮�濮嬫棩鏈�"
-          end-placeholder="缁撴潫鏃ユ湡"
-        ></el-date-picker>
-      </el-form-item>
-#end
-#end
-#end
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['${moduleName}:${businessName}:add']"
-        >鏂板</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['${moduleName}:${businessName}:edit']"
-        >淇敼</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['${moduleName}:${businessName}:remove']"
-        >鍒犻櫎</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['${moduleName}:${businessName}:export']"
-        >瀵煎嚭</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="${businessName}List" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-#foreach($column in $columns)
-#set($javaField=$column.javaField)
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.pk)
-      <el-table-column label="${comment}" align="center" prop="${javaField}" />
-#elseif($column.list && $column.htmlType == "datetime")
-      <el-table-column label="${comment}" align="center" prop="${javaField}" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.${javaField}, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-#elseif($column.list && $column.htmlType == "imageUpload")
-      <el-table-column label="${comment}" align="center" prop="${javaField}" width="100">
-        <template slot-scope="scope">
-          <image-preview :src="scope.row.${javaField}" :width="50" :height="50"/>
-        </template>
-      </el-table-column>
-#elseif($column.list && "" != $column.dictType)
-      <el-table-column label="${comment}" align="center" prop="${javaField}">
-        <template slot-scope="scope">
-#if($column.htmlType == "checkbox")
-          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.${javaField} ? scope.row.${javaField}.split(',') : []"/>
-#else
-          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.${javaField}"/>
-#end
-        </template>
-      </el-table-column>
-#elseif($column.list && "" != $javaField)
-      <el-table-column label="${comment}" align="center" prop="${javaField}" />
-#end
-#end
-      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['${moduleName}:${businessName}:edit']"
-          >淇敼</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['${moduleName}:${businessName}:remove']"
-          >鍒犻櫎</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 娣诲姞鎴栦慨鏀�${functionName}瀵硅瘽妗� -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-#foreach($column in $columns)
-#set($field=$column.javaField)
-#if($column.insert && !$column.pk)
-#if(($column.usableColumn) || (!$column.superColumn))
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#set($dictType=$column.dictType)
-#if($column.htmlType == "input")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-input v-model="form.${field}" placeholder="璇疯緭鍏�${comment}" />
-        </el-form-item>
-#elseif($column.htmlType == "imageUpload")
-        <el-form-item label="${comment}" prop="${field}">
-          <image-upload v-model="form.${field}"/>
-        </el-form-item>
-#elseif($column.htmlType == "fileUpload")
-        <el-form-item label="${comment}" prop="${field}">
-          <file-upload v-model="form.${field}"/>
-        </el-form-item>
-#elseif($column.htmlType == "editor")
-        <el-form-item label="${comment}">
-          <editor v-model="form.${field}" :min-height="192"/>
-        </el-form-item>
-#elseif($column.htmlType == "select" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-select v-model="form.${field}" placeholder="璇烽�夋嫨${comment}">
-            <el-option
-              v-for="dict in dict.type.${dictType}"
-              :key="dict.value"
-              :label="dict.label"
-#if($column.javaType == "Integer" || $column.javaType == "Long")
-              :value="parseInt(dict.value)"
-#else
-              :value="dict.value"
-#end
-            ></el-option>
-          </el-select>
-        </el-form-item>
-#elseif($column.htmlType == "select" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-select v-model="form.${field}" placeholder="璇烽�夋嫨${comment}">
-            <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
-          </el-select>
-        </el-form-item>
-#elseif($column.htmlType == "checkbox" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-checkbox-group v-model="form.${field}">
-            <el-checkbox
-              v-for="dict in dict.type.${dictType}"
-              :key="dict.value"
-              :label="dict.value">
-              {{dict.label}}
-            </el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
-#elseif($column.htmlType == "checkbox" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-checkbox-group v-model="form.${field}">
-            <el-checkbox>璇烽�夋嫨瀛楀吀鐢熸垚</el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
-#elseif($column.htmlType == "radio" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-radio-group v-model="form.${field}">
-            <el-radio
-              v-for="dict in dict.type.${dictType}"
-              :key="dict.value"
-#if($column.javaType == "Integer" || $column.javaType == "Long")
-              :label="parseInt(dict.value)"
-#else
-              :label="dict.value"
-#end
-            >{{dict.label}}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-#elseif($column.htmlType == "radio" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-radio-group v-model="form.${field}">
-            <el-radio label="1">璇烽�夋嫨瀛楀吀鐢熸垚</el-radio>
-          </el-radio-group>
-        </el-form-item>
-#elseif($column.htmlType == "datetime")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-date-picker clearable
-            v-model="form.${field}"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="璇烽�夋嫨${comment}">
-          </el-date-picker>
-        </el-form-item>
-#elseif($column.htmlType == "textarea")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-input v-model="form.${field}" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
-        </el-form-item>
-#end
-#end
-#end
-#end
-#if($table.sub)
-        <el-divider content-position="center">${subTable.functionName}淇℃伅</el-divider>
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd${subClassName}">娣诲姞</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDelete${subClassName}">鍒犻櫎</el-button>
-          </el-col>
-        </el-row>
-        <el-table :data="${subclassName}List" :row-class-name="row${subClassName}Index" @selection-change="handle${subClassName}SelectionChange" ref="${subclassName}">
-          <el-table-column type="selection" width="50" align="center" />
-          <el-table-column label="搴忓彿" align="center" prop="index" width="50"/>
-#foreach($column in $subTable.columns)
-#set($javaField=$column.javaField)
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.pk || $javaField == ${subTableFkclassName})
-#elseif($column.list && $column.htmlType == "input")
-          <el-table-column label="$comment" prop="${javaField}" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.$javaField" placeholder="璇疯緭鍏�$comment" />
-            </template>
-          </el-table-column>
-#elseif($column.list && $column.htmlType == "datetime")
-          <el-table-column label="$comment" prop="${javaField}" width="240">
-            <template slot-scope="scope">
-              <el-date-picker clearable v-model="scope.row.$javaField" type="date" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨$comment" />
-            </template>
-          </el-table-column>
-#elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" != $column.dictType)
-          <el-table-column label="$comment" prop="${javaField}" width="150">
-            <template slot-scope="scope">
-              <el-select v-model="scope.row.$javaField" placeholder="璇烽�夋嫨$comment">
-                <el-option
-                  v-for="dict in dict.type.$column.dictType"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
-              </el-select>
-            </template>
-          </el-table-column>
-#elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" == $column.dictType)
-          <el-table-column label="$comment" prop="${javaField}" width="150">
-            <template slot-scope="scope">
-              <el-select v-model="scope.row.$javaField" placeholder="璇烽�夋嫨$comment">
-                <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
-              </el-select>
-            </template>
-          </el-table-column>
-#end
-#end
-        </el-table>
-#end
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
-        <el-button @click="cancel">鍙� 娑�</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}";
-
-export default {
-  name: "${BusinessName}",
-#if(${dicts} != '')
-  dicts: [${dicts}],
-#end
-  data() {
-    return {
-      // 閬僵灞�
-      loading: true,
-      // 閫変腑鏁扮粍
-      ids: [],
-#if($table.sub)
-      // 瀛愯〃閫変腑鏁版嵁
-      checked${subClassName}: [],
-#end
-      // 闈炲崟涓鐢�
-      single: true,
-      // 闈炲涓鐢�
-      multiple: true,
-      // 鏄剧ず鎼滅储鏉′欢
-      showSearch: true,
-      // 鎬绘潯鏁�
-      total: 0,
-      // ${functionName}琛ㄦ牸鏁版嵁
-      ${businessName}List: [],
-#if($table.sub)
-      // ${subTable.functionName}琛ㄦ牸鏁版嵁
-      ${subclassName}List: [],
-#end
-      // 寮瑰嚭灞傛爣棰�
-      title: "",
-      // 鏄惁鏄剧ず寮瑰嚭灞�
-      open: false,
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-      // $comment鏃堕棿鑼冨洿
-      daterange${AttrName}: [],
-#end
-#end
-      // 鏌ヨ鍙傛暟
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-#foreach ($column in $columns)
-#if($column.query)
-        $column.javaField: null#if($foreach.count != $columns.size()),#end
-#end
-#end
-      },
-      // 琛ㄥ崟鍙傛暟
-      form: {},
-      // 琛ㄥ崟鏍¢獙
-      rules: {
-#foreach ($column in $columns)
-#if($column.required)
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-        $column.javaField: [
-          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: #if($column.htmlType == "select" || $column.htmlType == "radio")"change"#else"blur"#end }
-        ]#if($foreach.count != $columns.size()),#end
-#end
-#end
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 鏌ヨ${functionName}鍒楄〃 */
-    getList() {
-      this.loading = true;
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-      this.queryParams.params = {};
-#break
-#end
-#end
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-      if (null != this.daterange${AttrName} && '' != this.daterange${AttrName}) {
-        this.queryParams.params["begin${AttrName}"] = this.daterange${AttrName}[0];
-        this.queryParams.params["end${AttrName}"] = this.daterange${AttrName}[1];
-      }
-#end
-#end
-      list${BusinessName}(this.queryParams).then(response => {
-        this.${businessName}List = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 鍙栨秷鎸夐挳
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 琛ㄥ崟閲嶇疆
-    reset() {
-      this.form = {
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-        $column.javaField: []#if($foreach.count != $columns.size()),#end
-#else
-        $column.javaField: null#if($foreach.count != $columns.size()),#end
-#end
-#end
-      };
-#if($table.sub)
-      this.${subclassName}List = [];
-#end
-      this.resetForm("form");
-    },
-    /** 鎼滅储鎸夐挳鎿嶄綔 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 閲嶇疆鎸夐挳鎿嶄綔 */
-    resetQuery() {
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-      this.daterange${AttrName} = [];
-#end
-#end
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 澶氶�夋閫変腑鏁版嵁
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.${pkColumn.javaField})
-      this.single = selection.length!==1
-      this.multiple = !selection.length
-    },
-    /** 鏂板鎸夐挳鎿嶄綔 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "娣诲姞${functionName}";
-    },
-    /** 淇敼鎸夐挳鎿嶄綔 */
-    handleUpdate(row) {
-      this.reset();
-      const ${pkColumn.javaField} = row.${pkColumn.javaField} || this.ids
-      get${BusinessName}(${pkColumn.javaField}).then(response => {
-        this.form = response.data;
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-        this.form.$column.javaField = this.form.${column.javaField}.split(",");
-#end
-#end
-#if($table.sub)
-        this.${subclassName}List = response.data.${subclassName}List;
-#end
-        this.open = true;
-        this.title = "淇敼${functionName}";
-      });
-    },
-    /** 鎻愪氦鎸夐挳 */
-    submitForm() {
-      this.#[[$]]#refs["form"].validate(valid => {
-        if (valid) {
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-          this.form.$column.javaField = this.form.${column.javaField}.join(",");
-#end
-#end
-#if($table.sub)
-          this.form.${subclassName}List = this.${subclassName}List;
-#end
-          if (this.form.${pkColumn.javaField} != null) {
-            update${BusinessName}(this.form).then(response => {
-              this.#[[$modal]]#.msgSuccess("淇敼鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            add${BusinessName}(this.form).then(response => {
-              this.#[[$modal]]#.msgSuccess("鏂板鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete(row) {
-      const ${pkColumn.javaField}s = row.${pkColumn.javaField} || this.ids;
-      this.#[[$modal]]#.confirm('鏄惁纭鍒犻櫎${functionName}缂栧彿涓�"' + ${pkColumn.javaField}s + '"鐨勬暟鎹」锛�').then(function() {
-        return del${BusinessName}(${pkColumn.javaField}s);
-      }).then(() => {
-        this.getList();
-        this.#[[$modal]]#.msgSuccess("鍒犻櫎鎴愬姛");
-      }).catch(() => {});
-    },
-#if($table.sub)
-	/** ${subTable.functionName}搴忓彿 */
-    row${subClassName}Index({ row, rowIndex }) {
-      row.index = rowIndex + 1;
-    },
-    /** ${subTable.functionName}娣诲姞鎸夐挳鎿嶄綔 */
-    handleAdd${subClassName}() {
-      let obj = {};
-#foreach($column in $subTable.columns)
-#if($column.pk || $column.javaField == ${subTableFkclassName})
-#elseif($column.list && "" != $javaField)
-      obj.$column.javaField = "";
-#end
-#end
-      this.${subclassName}List.push(obj);
-    },
-    /** ${subTable.functionName}鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete${subClassName}() {
-      if (this.checked${subClassName}.length == 0) {
-        this.#[[$modal]]#.msgError("璇峰厛閫夋嫨瑕佸垹闄ょ殑${subTable.functionName}鏁版嵁");
-      } else {
-        const ${subclassName}List = this.${subclassName}List;
-        const checked${subClassName} = this.checked${subClassName};
-        this.${subclassName}List = ${subclassName}List.filter(function(item) {
-          return checked${subClassName}.indexOf(item.index) == -1
-        });
-      }
-    },
-    /** 澶嶉�夋閫変腑鏁版嵁 */
-    handle${subClassName}SelectionChange(selection) {
-      this.checked${subClassName} = selection.map(item => item.index)
-    },
-#end
-    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
-    handleExport() {
-      this.download('${moduleName}/${businessName}/export', {
-        ...this.queryParams
-      }, `${businessName}_#[[${new Date().getTime()}]]#.xlsx`)
-    }
-  }
-};
-</script>
diff --git a/se-modules/se-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm b/se-modules/se-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm
deleted file mode 100644
index 7bbd2fc..0000000
--- a/se-modules/se-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm
+++ /dev/null
@@ -1,474 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
-#foreach($column in $columns)
-#if($column.query)
-#set($dictType=$column.dictType)
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.htmlType == "input")
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-input
-          v-model="queryParams.${column.javaField}"
-          placeholder="璇疯緭鍏�${comment}"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-#elseif(($column.htmlType == "select" || $column.htmlType == "radio") && "" != $dictType)
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-select v-model="queryParams.${column.javaField}" placeholder="璇烽�夋嫨${comment}" clearable>
-          <el-option
-            v-for="dict in ${dictType}"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-#elseif(($column.htmlType == "select" || $column.htmlType == "radio") && $dictType)
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-select v-model="queryParams.${column.javaField}" placeholder="璇烽�夋嫨${comment}" clearable>
-          <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
-        </el-select>
-      </el-form-item>
-#elseif($column.htmlType == "datetime" && $column.queryType != "BETWEEN")
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-date-picker clearable
-          v-model="queryParams.${column.javaField}"
-          type="date"
-          value-format="YYYY-MM-DD"
-          placeholder="閫夋嫨${comment}">
-        </el-date-picker>
-      </el-form-item>
-#elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-      <el-form-item label="${comment}" style="width: 308px">
-        <el-date-picker
-          v-model="daterange${AttrName}"
-          value-format="YYYY-MM-DD"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="寮�濮嬫棩鏈�"
-          end-placeholder="缁撴潫鏃ユ湡"
-        ></el-date-picker>
-      </el-form-item>
-#end
-#end
-#end
-      <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
-        <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="Plus"
-          @click="handleAdd"
-          v-hasPermi="['${moduleName}:${businessName}:add']"
-        >鏂板</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="info"
-          plain
-          icon="Sort"
-          @click="toggleExpandAll"
-        >灞曞紑/鎶樺彔</el-button>
-      </el-col>
-      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table
-      v-if="refreshTable"
-      v-loading="loading"
-      :data="${businessName}List"
-      row-key="${treeCode}"
-      :default-expand-all="isExpandAll"
-      :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
-    >
-#foreach($column in $columns)
-#set($javaField=$column.javaField)
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.pk)
-#elseif($column.list && $column.htmlType == "datetime")
-      <el-table-column label="${comment}" align="center" prop="${javaField}" width="180">
-        <template #default="scope">
-          <span>{{ parseTime(scope.row.${javaField}, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-#elseif($column.list && $column.htmlType == "imageUpload")
-      <el-table-column label="${comment}" align="center" prop="${javaField}" width="100">
-        <template #default="scope">
-          <image-preview :src="scope.row.${javaField}" :width="50" :height="50"/>
-        </template>
-      </el-table-column>
-#elseif($column.list && "" != $column.dictType)
-      <el-table-column label="${comment}" align="center" prop="${javaField}">
-        <template #default="scope">
-#if($column.htmlType == "checkbox")
-          <dict-tag :options="${column.dictType}" :value="scope.row.${javaField} ? scope.row.${javaField}.split(',') : []"/>
-#else
-          <dict-tag :options="${column.dictType}" :value="scope.row.${javaField}"/>
-#end
-        </template>
-      </el-table-column>
-#elseif($column.list && "" != $javaField)
-#if(${foreach.index} == 1)
-      <el-table-column label="${comment}" prop="${javaField}" />
-#else
-      <el-table-column label="${comment}" align="center" prop="${javaField}" />
-#end
-#end
-#end
-      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
-        <template #default="scope">
-          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['${moduleName}:${businessName}:edit']">淇敼</el-button>
-          <el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)" v-hasPermi="['${moduleName}:${businessName}:add']">鏂板</el-button>
-          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['${moduleName}:${businessName}:remove']">鍒犻櫎</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <!-- 娣诲姞鎴栦慨鏀�${functionName}瀵硅瘽妗� -->
-    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
-      <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="80px">
-#foreach($column in $columns)
-#set($field=$column.javaField)
-#if($column.insert && !$column.pk)
-#if(($column.usableColumn) || (!$column.superColumn))
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#set($dictType=$column.dictType)
-#if("" != $treeParentCode && $column.javaField == $treeParentCode)
-        <el-form-item label="${comment}" prop="${treeParentCode}">
-          <el-tree-select
-            v-model="form.${treeParentCode}"
-            :data="${businessName}Options"
-            :props="{ value: '${treeCode}', label: '${treeName}', children: 'children' }"
-            value-key="${treeCode}"
-            placeholder="璇烽�夋嫨${comment}"
-            check-strictly
-          />
-        </el-form-item>
-#elseif($column.htmlType == "input")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-input v-model="form.${field}" placeholder="璇疯緭鍏�${comment}" />
-        </el-form-item>
-#elseif($column.htmlType == "imageUpload")
-        <el-form-item label="${comment}" prop="${field}">
-          <image-upload v-model="form.${field}"/>
-        </el-form-item>
-#elseif($column.htmlType == "fileUpload")
-        <el-form-item label="${comment}" prop="${field}">
-          <file-upload v-model="form.${field}"/>
-        </el-form-item>
-#elseif($column.htmlType == "editor")
-        <el-form-item label="${comment}">
-          <editor v-model="form.${field}" :min-height="192"/>
-        </el-form-item>
-#elseif($column.htmlType == "select" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-select v-model="form.${field}" placeholder="璇烽�夋嫨${comment}">
-            <el-option
-              v-for="dict in ${dictType}"
-              :key="dict.value"
-              :label="dict.label"
-#if($column.javaType == "Integer" || $column.javaType == "Long")
-              :value="parseInt(dict.value)"
-#else
-              :value="dict.value"
-#end
-            ></el-option>
-          </el-select>
-        </el-form-item>
-#elseif($column.htmlType == "select" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-select v-model="form.${field}" placeholder="璇烽�夋嫨${comment}">
-            <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
-          </el-select>
-        </el-form-item>
-#elseif($column.htmlType == "checkbox" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-checkbox-group v-model="form.${field}">
-            <el-checkbox
-              v-for="dict in ${dictType}"
-              :key="dict.value"
-              :label="dict.value">
-              {{dict.label}}
-            </el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
-#elseif($column.htmlType == "checkbox" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-checkbox-group v-model="form.${field}">
-            <el-checkbox>璇烽�夋嫨瀛楀吀鐢熸垚</el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
-#elseif($column.htmlType == "radio" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-radio-group v-model="form.${field}">
-            <el-radio
-              v-for="dict in ${dictType}"
-              :key="dict.value"
-#if($column.javaType == "Integer" || $column.javaType == "Long")
-              :label="parseInt(dict.value)"
-#else
-              :label="dict.value"
-#end
-            >{{dict.label}}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-#elseif($column.htmlType == "radio" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-radio-group v-model="form.${field}">
-            <el-radio label="1">璇烽�夋嫨瀛楀吀鐢熸垚</el-radio>
-          </el-radio-group>
-        </el-form-item>
-#elseif($column.htmlType == "datetime")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-date-picker clearable
-            v-model="form.${field}"
-            type="date"
-            value-format="YYYY-MM-DD"
-            placeholder="閫夋嫨${comment}">
-          </el-date-picker>
-        </el-form-item>
-#elseif($column.htmlType == "textarea")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-input v-model="form.${field}" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
-        </el-form-item>
-#end
-#end
-#end
-#end
-      </el-form>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
-          <el-button @click="cancel">鍙� 娑�</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup name="${BusinessName}">
-import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}";
-
-const { proxy } = getCurrentInstance();
-#if(${dicts} != '')
-#set($dictsNoSymbol=$dicts.replace("'", ""))
-const { ${dictsNoSymbol} } = proxy.useDict(${dicts});
-#end
-
-const ${businessName}List = ref([]);
-const ${businessName}Options = ref([]);
-const open = ref(false);
-const loading = ref(true);
-const showSearch = ref(true);
-const title = ref("");
-const isExpandAll = ref(true);
-const refreshTable = ref(true);
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-const daterange${AttrName} = ref([]);
-#end
-#end
-
-const data = reactive({
-  form: {},
-  queryParams: {
-    #foreach ($column in $columns)
-#if($column.query)
-    $column.javaField: null#if($foreach.count != $columns.size()),#end
-#end
-#end
-  },
-  rules: {
-    #foreach ($column in $columns)
-#if($column.required)
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-    $column.javaField: [
-      { required: true, message: "$comment涓嶈兘涓虹┖", trigger: #if($column.htmlType == "select" || $column.htmlType == "radio")"change"#else"blur"#end }
-    ]#if($foreach.count != $columns.size()),#end
-#end
-#end
-  }
-});
-
-const { queryParams, form, rules } = toRefs(data);
-
-/** 鏌ヨ${functionName}鍒楄〃 */
-function getList() {
-  loading.value = true;
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-  queryParams.value.params = {};
-#break
-#end
-#end
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-  if (null != daterange${AttrName} && '' != daterange${AttrName}) {
-    queryParams.value.params["begin${AttrName}"] = daterange${AttrName}.value[0];
-    queryParams.value.params["end${AttrName}"] = daterange${AttrName}.value[1];
-  }
-#end
-#end
-  list${BusinessName}(queryParams.value).then(response => {
-    ${businessName}List.value = proxy.handleTree(response.data, "${treeCode}", "${treeParentCode}");
-    loading.value = false;
-  });
-}
-
-/** 鏌ヨ${functionName}涓嬫媺鏍戠粨鏋� */
-function getTreeselect() {
-  list${BusinessName}().then(response => {
-    ${businessName}Options.value = [];
-    const data = { ${treeCode}: 0, ${treeName}: '椤剁骇鑺傜偣', children: [] };
-    data.children = proxy.handleTree(response.data, "${treeCode}", "${treeParentCode}");
-    ${businessName}Options.value.push(data);
-  });
-}
-	
-// 鍙栨秷鎸夐挳
-function cancel() {
-  open.value = false;
-  reset();
-}
-
-// 琛ㄥ崟閲嶇疆
-function reset() {
-  form.value = {
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-    $column.javaField: []#if($foreach.count != $columns.size()),#end
-#else
-    $column.javaField: null#if($foreach.count != $columns.size()),#end
-#end
-#end
-  };
-  proxy.resetForm("${businessName}Ref");
-}
-
-/** 鎼滅储鎸夐挳鎿嶄綔 */
-function handleQuery() {
-  getList();
-}
-
-/** 閲嶇疆鎸夐挳鎿嶄綔 */
-function resetQuery() {
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-  daterange${AttrName}.value = [];
-#end
-#end
-  proxy.resetForm("queryRef");
-  handleQuery();
-}
-
-/** 鏂板鎸夐挳鎿嶄綔 */
-function handleAdd(row) {
-  reset();
-  getTreeselect();
-  if (row != null && row.${treeCode}) {
-    form.value.${treeParentCode} = row.${treeCode};
-  } else {
-    form.value.${treeParentCode} = 0;
-  }
-  open.value = true;
-  title.value = "娣诲姞${functionName}";
-}
-
-/** 灞曞紑/鎶樺彔鎿嶄綔 */
-function toggleExpandAll() {
-  refreshTable.value = false;
-  isExpandAll.value = !isExpandAll.value;
-  nextTick(() => {
-    refreshTable.value = true;
-  });
-}
-
-/** 淇敼鎸夐挳鎿嶄綔 */
-async function handleUpdate(row) {
-  reset();
-  await getTreeselect();
-  if (row != null) {
-    form.value.${treeParentCode} = row.${treeCode};
-  }
-  get${BusinessName}(row.${pkColumn.javaField}).then(response => {
-    form.value = response.data;
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-    form.value.$column.javaField = form.value.${column.javaField}.split(",");
-#end
-#end
-    open.value = true;
-    title.value = "淇敼${functionName}";
-  });
-}
-
-/** 鎻愪氦鎸夐挳 */
-function submitForm() {
-  proxy.#[[$]]#refs["${businessName}Ref"].validate(valid => {
-    if (valid) {
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-      form.value.$column.javaField = form.value.${column.javaField}.join(",");
-#end
-#end
-      if (form.value.${pkColumn.javaField} != null) {
-        update${BusinessName}(form.value).then(response => {
-          proxy.#[[$modal]]#.msgSuccess("淇敼鎴愬姛");
-          open.value = false;
-          getList();
-        });
-      } else {
-        add${BusinessName}(form.value).then(response => {
-          proxy.#[[$modal]]#.msgSuccess("鏂板鎴愬姛");
-          open.value = false;
-          getList();
-        });
-      }
-    }
-  });
-}
-
-/** 鍒犻櫎鎸夐挳鎿嶄綔 */
-function handleDelete(row) {
-  proxy.#[[$modal]]#.confirm('鏄惁纭鍒犻櫎${functionName}缂栧彿涓�"' + row.${pkColumn.javaField} + '"鐨勬暟鎹」锛�').then(function() {
-    return del${BusinessName}(row.${pkColumn.javaField});
-  }).then(() => {
-    getList();
-    proxy.#[[$modal]]#.msgSuccess("鍒犻櫎鎴愬姛");
-  }).catch(() => {});
-}
-
-getList();
-</script>
diff --git a/se-modules/se-gen/src/main/resources/vm/vue/v3/index.vue.vm b/se-modules/se-gen/src/main/resources/vm/vue/v3/index.vue.vm
deleted file mode 100644
index 8b25665..0000000
--- a/se-modules/se-gen/src/main/resources/vm/vue/v3/index.vue.vm
+++ /dev/null
@@ -1,590 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
-#foreach($column in $columns)
-#if($column.query)
-#set($dictType=$column.dictType)
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.htmlType == "input")
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-input
-          v-model="queryParams.${column.javaField}"
-          placeholder="璇疯緭鍏�${comment}"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-#elseif(($column.htmlType == "select" || $column.htmlType == "radio") && "" != $dictType)
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-select v-model="queryParams.${column.javaField}" placeholder="璇烽�夋嫨${comment}" clearable>
-          <el-option
-            v-for="dict in ${dictType}"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-#elseif(($column.htmlType == "select" || $column.htmlType == "radio") && $dictType)
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-select v-model="queryParams.${column.javaField}" placeholder="璇烽�夋嫨${comment}" clearable>
-          <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
-        </el-select>
-      </el-form-item>
-#elseif($column.htmlType == "datetime" && $column.queryType != "BETWEEN")
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-date-picker clearable
-          v-model="queryParams.${column.javaField}"
-          type="date"
-          value-format="YYYY-MM-DD"
-          placeholder="璇烽�夋嫨${comment}">
-        </el-date-picker>
-      </el-form-item>
-#elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-      <el-form-item label="${comment}" style="width: 308px">
-        <el-date-picker
-          v-model="daterange${AttrName}"
-          value-format="YYYY-MM-DD"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="寮�濮嬫棩鏈�"
-          end-placeholder="缁撴潫鏃ユ湡"
-        ></el-date-picker>
-      </el-form-item>
-#end
-#end
-#end
-      <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
-        <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="Plus"
-          @click="handleAdd"
-          v-hasPermi="['${moduleName}:${businessName}:add']"
-        >鏂板</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="Edit"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['${moduleName}:${businessName}:edit']"
-        >淇敼</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="Delete"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['${moduleName}:${businessName}:remove']"
-        >鍒犻櫎</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="Download"
-          @click="handleExport"
-          v-hasPermi="['${moduleName}:${businessName}:export']"
-        >瀵煎嚭</el-button>
-      </el-col>
-      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="${businessName}List" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-#foreach($column in $columns)
-#set($javaField=$column.javaField)
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.pk)
-      <el-table-column label="${comment}" align="center" prop="${javaField}" />
-#elseif($column.list && $column.htmlType == "datetime")
-      <el-table-column label="${comment}" align="center" prop="${javaField}" width="180">
-        <template #default="scope">
-          <span>{{ parseTime(scope.row.${javaField}, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-#elseif($column.list && $column.htmlType == "imageUpload")
-      <el-table-column label="${comment}" align="center" prop="${javaField}" width="100">
-        <template #default="scope">
-          <image-preview :src="scope.row.${javaField}" :width="50" :height="50"/>
-        </template>
-      </el-table-column>
-#elseif($column.list && "" != $column.dictType)
-      <el-table-column label="${comment}" align="center" prop="${javaField}">
-        <template #default="scope">
-#if($column.htmlType == "checkbox")
-          <dict-tag :options="${column.dictType}" :value="scope.row.${javaField} ? scope.row.${javaField}.split(',') : []"/>
-#else
-          <dict-tag :options="${column.dictType}" :value="scope.row.${javaField}"/>
-#end
-        </template>
-      </el-table-column>
-#elseif($column.list && "" != $javaField)
-      <el-table-column label="${comment}" align="center" prop="${javaField}" />
-#end
-#end
-      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
-        <template #default="scope">
-          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['${moduleName}:${businessName}:edit']">淇敼</el-button>
-          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['${moduleName}:${businessName}:remove']">鍒犻櫎</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    
-    <pagination
-      v-show="total>0"
-      :total="total"
-      v-model:page="queryParams.pageNum"
-      v-model:limit="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 娣诲姞鎴栦慨鏀�${functionName}瀵硅瘽妗� -->
-    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
-      <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="80px">
-#foreach($column in $columns)
-#set($field=$column.javaField)
-#if($column.insert && !$column.pk)
-#if(($column.usableColumn) || (!$column.superColumn))
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#set($dictType=$column.dictType)
-#if($column.htmlType == "input")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-input v-model="form.${field}" placeholder="璇疯緭鍏�${comment}" />
-        </el-form-item>
-#elseif($column.htmlType == "imageUpload")
-        <el-form-item label="${comment}" prop="${field}">
-          <image-upload v-model="form.${field}"/>
-        </el-form-item>
-#elseif($column.htmlType == "fileUpload")
-        <el-form-item label="${comment}" prop="${field}">
-          <file-upload v-model="form.${field}"/>
-        </el-form-item>
-#elseif($column.htmlType == "editor")
-        <el-form-item label="${comment}">
-          <editor v-model="form.${field}" :min-height="192"/>
-        </el-form-item>
-#elseif($column.htmlType == "select" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-select v-model="form.${field}" placeholder="璇烽�夋嫨${comment}">
-            <el-option
-              v-for="dict in ${dictType}"
-              :key="dict.value"
-              :label="dict.label"
-#if($column.javaType == "Integer" || $column.javaType == "Long")
-              :value="parseInt(dict.value)"
-#else
-              :value="dict.value"
-#end
-            ></el-option>
-          </el-select>
-        </el-form-item>
-#elseif($column.htmlType == "select" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-select v-model="form.${field}" placeholder="璇烽�夋嫨${comment}">
-            <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
-          </el-select>
-        </el-form-item>
-#elseif($column.htmlType == "checkbox" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-checkbox-group v-model="form.${field}">
-            <el-checkbox
-              v-for="dict in ${dictType}"
-              :key="dict.value"
-              :label="dict.value">
-              {{dict.label}}
-            </el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
-#elseif($column.htmlType == "checkbox" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-checkbox-group v-model="form.${field}">
-            <el-checkbox>璇烽�夋嫨瀛楀吀鐢熸垚</el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
-#elseif($column.htmlType == "radio" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-radio-group v-model="form.${field}">
-            <el-radio
-              v-for="dict in ${dictType}"
-              :key="dict.value"
-#if($column.javaType == "Integer" || $column.javaType == "Long")
-              :label="parseInt(dict.value)"
-#else
-              :label="dict.value"
-#end
-            >{{dict.label}}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-#elseif($column.htmlType == "radio" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-radio-group v-model="form.${field}">
-            <el-radio label="1">璇烽�夋嫨瀛楀吀鐢熸垚</el-radio>
-          </el-radio-group>
-        </el-form-item>
-#elseif($column.htmlType == "datetime")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-date-picker clearable
-            v-model="form.${field}"
-            type="date"
-            value-format="YYYY-MM-DD"
-            placeholder="璇烽�夋嫨${comment}">
-          </el-date-picker>
-        </el-form-item>
-#elseif($column.htmlType == "textarea")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-input v-model="form.${field}" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
-        </el-form-item>
-#end
-#end
-#end
-#end
-#if($table.sub)
-        <el-divider content-position="center">${subTable.functionName}淇℃伅</el-divider>
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <el-button type="primary" icon="Plus" @click="handleAdd${subClassName}">娣诲姞</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="danger" icon="Delete" @click="handleDelete${subClassName}">鍒犻櫎</el-button>
-          </el-col>
-        </el-row>
-        <el-table :data="${subclassName}List" :row-class-name="row${subClassName}Index" @selection-change="handle${subClassName}SelectionChange" ref="${subclassName}">
-          <el-table-column type="selection" width="50" align="center" />
-          <el-table-column label="搴忓彿" align="center" prop="index" width="50"/>
-#foreach($column in $subTable.columns)
-#set($javaField=$column.javaField)
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.pk || $javaField == ${subTableFkclassName})
-#elseif($column.list && $column.htmlType == "input")
-          <el-table-column label="$comment" prop="${javaField}" width="150">
-            <template #default="scope">
-              <el-input v-model="scope.row.$javaField" placeholder="璇疯緭鍏�$comment" />
-            </template>
-          </el-table-column>
-#elseif($column.list && $column.htmlType == "datetime")
-          <el-table-column label="$comment" prop="${javaField}" width="240">
-            <template #default="scope">
-              <el-date-picker clearable
-                v-model="scope.row.$javaField"
-                type="date"
-                value-format="YYYY-MM-DD"
-                placeholder="璇烽�夋嫨$comment">
-              </el-date-picker>
-            </template>
-          </el-table-column>
-#elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" != $column.dictType)
-          <el-table-column label="$comment" prop="${javaField}" width="150">
-            <template #default="scope">
-              <el-select v-model="scope.row.$javaField" placeholder="璇烽�夋嫨$comment">
-                <el-option
-                  v-for="dict in $column.dictType"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
-              </el-select>
-            </template>
-          </el-table-column>
-#elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" == $column.dictType)
-          <el-table-column label="$comment" prop="${javaField}" width="150">
-            <template #default="scope">
-              <el-select v-model="scope.row.$javaField" placeholder="璇烽�夋嫨$comment">
-                <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
-              </el-select>
-            </template>
-          </el-table-column>
-#end
-#end
-        </el-table>
-#end
-      </el-form>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
-          <el-button @click="cancel">鍙� 娑�</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup name="${BusinessName}">
-import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}";
-
-const { proxy } = getCurrentInstance();
-#if(${dicts} != '')
-#set($dictsNoSymbol=$dicts.replace("'", ""))
-const { ${dictsNoSymbol} } = proxy.useDict(${dicts});
-#end
-
-const ${businessName}List = ref([]);
-#if($table.sub)
-const ${subclassName}List = ref([]);
-#end
-const open = ref(false);
-const loading = ref(true);
-const showSearch = ref(true);
-const ids = ref([]);
-#if($table.sub)
-const checked${subClassName} = ref([]);
-#end
-const single = ref(true);
-const multiple = ref(true);
-const total = ref(0);
-const title = ref("");
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-const daterange${AttrName} = ref([]);
-#end
-#end
-
-const data = reactive({
-  form: {},
-  queryParams: {
-    pageNum: 1,
-    pageSize: 10,
-    #foreach ($column in $columns)
-#if($column.query)
-    $column.javaField: null#if($foreach.count != $columns.size()),#end
-#end
-#end
-  },
-  rules: {
-    #foreach ($column in $columns)
-#if($column.required)
-#set($parentheseIndex=$column.columnComment.indexOf("锛�"))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-    $column.javaField: [
-      { required: true, message: "$comment涓嶈兘涓虹┖", trigger: #if($column.htmlType == "select" || $column.htmlType == "radio")"change"#else"blur"#end }
-    ]#if($foreach.count != $columns.size()),#end
-#end
-#end
-  }
-});
-
-const { queryParams, form, rules } = toRefs(data);
-
-/** 鏌ヨ${functionName}鍒楄〃 */
-function getList() {
-  loading.value = true;
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-  queryParams.value.params = {};
-#break
-#end
-#end
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-  if (null != daterange${AttrName} && '' != daterange${AttrName}) {
-    queryParams.value.params["begin${AttrName}"] = daterange${AttrName}.value[0];
-    queryParams.value.params["end${AttrName}"] = daterange${AttrName}.value[1];
-  }
-#end
-#end
-  list${BusinessName}(queryParams.value).then(response => {
-    ${businessName}List.value = response.rows;
-    total.value = response.total;
-    loading.value = false;
-  });
-}
-
-// 鍙栨秷鎸夐挳
-function cancel() {
-  open.value = false;
-  reset();
-}
-
-// 琛ㄥ崟閲嶇疆
-function reset() {
-  form.value = {
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-    $column.javaField: []#if($foreach.count != $columns.size()),#end
-#else
-    $column.javaField: null#if($foreach.count != $columns.size()),#end
-#end
-#end
-  };
-#if($table.sub)
-  ${subclassName}List.value = [];
-#end
-  proxy.resetForm("${businessName}Ref");
-}
-
-/** 鎼滅储鎸夐挳鎿嶄綔 */
-function handleQuery() {
-  queryParams.value.pageNum = 1;
-  getList();
-}
-
-/** 閲嶇疆鎸夐挳鎿嶄綔 */
-function resetQuery() {
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-  daterange${AttrName}.value = [];
-#end
-#end
-  proxy.resetForm("queryRef");
-  handleQuery();
-}
-
-// 澶氶�夋閫変腑鏁版嵁
-function handleSelectionChange(selection) {
-  ids.value = selection.map(item => item.${pkColumn.javaField});
-  single.value = selection.length != 1;
-  multiple.value = !selection.length;
-}
-
-/** 鏂板鎸夐挳鎿嶄綔 */
-function handleAdd() {
-  reset();
-  open.value = true;
-  title.value = "娣诲姞${functionName}";
-}
-
-/** 淇敼鎸夐挳鎿嶄綔 */
-function handleUpdate(row) {
-  reset();
-  const _${pkColumn.javaField} = row.${pkColumn.javaField} || ids.value
-  get${BusinessName}(_${pkColumn.javaField}).then(response => {
-    form.value = response.data;
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-    form.value.$column.javaField = form.value.${column.javaField}.split(",");
-#end
-#end
-#if($table.sub)
-    ${subclassName}List.value = response.data.${subclassName}List;
-#end
-    open.value = true;
-    title.value = "淇敼${functionName}";
-  });
-}
-
-/** 鎻愪氦鎸夐挳 */
-function submitForm() {
-  proxy.#[[$]]#refs["${businessName}Ref"].validate(valid => {
-    if (valid) {
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-      form.value.$column.javaField = form.value.${column.javaField}.join(",");
-#end
-#end
-#if($table.sub)
-      form.value.${subclassName}List = ${subclassName}List.value;
-#end
-      if (form.value.${pkColumn.javaField} != null) {
-        update${BusinessName}(form.value).then(response => {
-          proxy.#[[$modal]]#.msgSuccess("淇敼鎴愬姛");
-          open.value = false;
-          getList();
-        });
-      } else {
-        add${BusinessName}(form.value).then(response => {
-          proxy.#[[$modal]]#.msgSuccess("鏂板鎴愬姛");
-          open.value = false;
-          getList();
-        });
-      }
-    }
-  });
-}
-
-/** 鍒犻櫎鎸夐挳鎿嶄綔 */
-function handleDelete(row) {
-  const _${pkColumn.javaField}s = row.${pkColumn.javaField} || ids.value;
-  proxy.#[[$modal]]#.confirm('鏄惁纭鍒犻櫎${functionName}缂栧彿涓�"' + _${pkColumn.javaField}s + '"鐨勬暟鎹」锛�').then(function() {
-    return del${BusinessName}(_${pkColumn.javaField}s);
-  }).then(() => {
-    getList();
-    proxy.#[[$modal]]#.msgSuccess("鍒犻櫎鎴愬姛");
-  }).catch(() => {});
-}
-
-#if($table.sub)
-/** ${subTable.functionName}搴忓彿 */
-function row${subClassName}Index({ row, rowIndex }) {
-  row.index = rowIndex + 1;
-}
-
-/** ${subTable.functionName}娣诲姞鎸夐挳鎿嶄綔 */
-function handleAdd${subClassName}() {
-  let obj = {};
-#foreach($column in $subTable.columns)
-#if($column.pk || $column.javaField == ${subTableFkclassName})
-#elseif($column.list && "" != $javaField)
-  obj.$column.javaField = "";
-#end
-#end
-  ${subclassName}List.value.push(obj);
-}
-
-/** ${subTable.functionName}鍒犻櫎鎸夐挳鎿嶄綔 */
-function handleDelete${subClassName}() {
-  if (checked${subClassName}.value.length == 0) {
-    proxy.#[[$modal]]#.msgError("璇峰厛閫夋嫨瑕佸垹闄ょ殑${subTable.functionName}鏁版嵁");
-  } else {
-    const ${subclassName}s = ${subclassName}List.value;
-    const checked${subClassName}s = checked${subClassName}.value;
-    ${subclassName}List.value = ${subclassName}s.filter(function(item) {
-      return checked${subClassName}s.indexOf(item.index) == -1
-    });
-  }
-}
-
-/** 澶嶉�夋閫変腑鏁版嵁 */
-function handle${subClassName}SelectionChange(selection) {
-  checked${subClassName}.value = selection.map(item => item.index)
-}
-
-#end
-/** 瀵煎嚭鎸夐挳鎿嶄綔 */
-function handleExport() {
-  proxy.download('${moduleName}/${businessName}/export', {
-    ...queryParams.value
-  }, `${businessName}_#[[${new Date().getTime()}]]#.xlsx`)
-}
-
-getList();
-</script>
diff --git a/se-modules/se-gen/src/main/resources/vm/xml/mapper.xml.vm b/se-modules/se-gen/src/main/resources/vm/xml/mapper.xml.vm
deleted file mode 100644
index 456755b..0000000
--- a/se-modules/se-gen/src/main/resources/vm/xml/mapper.xml.vm
+++ /dev/null
@@ -1,140 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="${packageName}.mapper.${ClassName}Mapper">
-    
-    <resultMap type="${ClassName}" id="${ClassName}Result">
-#foreach ($column in $columns)
-        <result property="${column.javaField}"    column="${column.columnName}"    />
-#end
-    </resultMap>
-#if($table.sub)
-
-    <resultMap id="${ClassName}${subClassName}Result" type="${ClassName}" extends="${ClassName}Result">
-        <collection property="${subclassName}List" ofType="${subClassName}" column="${pkColumn.columnName}" select="select${subClassName}List" />
-    </resultMap>
-
-    <resultMap type="${subClassName}" id="${subClassName}Result">
-#foreach ($column in $subTable.columns)
-        <result property="${column.javaField}"    column="${column.columnName}"    />
-#end
-    </resultMap>
-#end
-
-    <sql id="select${ClassName}Vo">
-        select#foreach($column in $columns) $column.columnName#if($foreach.count != $columns.size()),#end#end from ${tableName}
-    </sql>
-
-    <select id="select${ClassName}List" parameterType="${ClassName}" resultMap="${ClassName}Result">
-        <include refid="select${ClassName}Vo"/>
-        <where>  
-#foreach($column in $columns)
-#set($queryType=$column.queryType)
-#set($javaField=$column.javaField)
-#set($javaType=$column.javaType)
-#set($columnName=$column.columnName)
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#if($column.query)
-#if($column.queryType == "EQ")
-            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName = #{$javaField}</if>
-#elseif($queryType == "NE")
-            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName != #{$javaField}</if>
-#elseif($queryType == "GT")
-            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &gt; #{$javaField}</if>
-#elseif($queryType == "GTE")
-            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &gt;= #{$javaField}</if>
-#elseif($queryType == "LT")
-            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &lt; #{$javaField}</if>
-#elseif($queryType == "LTE")
-            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &lt;= #{$javaField}</if>
-#elseif($queryType == "LIKE")
-            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName like concat('%', #{$javaField}, '%')</if>
-#elseif($queryType == "BETWEEN")
-            <if test="params.begin$AttrName != null and params.begin$AttrName != '' and params.end$AttrName != null and params.end$AttrName != ''"> and $columnName between #{params.begin$AttrName} and #{params.end$AttrName}</if>
-#end
-#end
-#end
-        </where>
-    </select>
-    
-    <select id="select${ClassName}By${pkColumn.capJavaField}" parameterType="${pkColumn.javaType}" resultMap="#if($table.sub)${ClassName}${subClassName}Result#else${ClassName}Result#end">
-#if($table.crud || $table.tree)
-        <include refid="select${ClassName}Vo"/>
-        where ${pkColumn.columnName} = #{${pkColumn.javaField}}
-#elseif($table.sub)
-        select#foreach($column in $columns) $column.columnName#if($foreach.count != $columns.size()),#end#end
-        from ${tableName}
-        where ${pkColumn.columnName} = #{${pkColumn.javaField}}
-#end
-    </select>
-#if($table.sub)
-
-    <select id="select${subClassName}List" resultMap="${subClassName}Result">
-        select#foreach ($column in $subTable.columns) $column.columnName#if($foreach.count != $subTable.columns.size()),#end#end
-        from ${subTableName}
-        where ${subTableFkName} = #{${subTableFkName}}
-    </select>
-#end
-
-    <insert id="insert${ClassName}" parameterType="${ClassName}"#if($pkColumn.increment) useGeneratedKeys="true" keyProperty="$pkColumn.javaField"#end>
-        insert into ${tableName}
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-#foreach($column in $columns)
-#if($column.columnName != $pkColumn.columnName || !$pkColumn.increment)
-            <if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">$column.columnName,</if>
-#end
-#end
-         </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-#foreach($column in $columns)
-#if($column.columnName != $pkColumn.columnName || !$pkColumn.increment)
-            <if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">#{$column.javaField},</if>
-#end
-#end
-         </trim>
-    </insert>
-
-    <update id="update${ClassName}" parameterType="${ClassName}">
-        update ${tableName}
-        <trim prefix="SET" suffixOverrides=",">
-#foreach($column in $columns)
-#if($column.columnName != $pkColumn.columnName)
-            <if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">$column.columnName = #{$column.javaField},</if>
-#end
-#end
-        </trim>
-        where ${pkColumn.columnName} = #{${pkColumn.javaField}}
-    </update>
-
-    <delete id="delete${ClassName}By${pkColumn.capJavaField}" parameterType="${pkColumn.javaType}">
-        delete from ${tableName} where ${pkColumn.columnName} = #{${pkColumn.javaField}}
-    </delete>
-
-    <delete id="delete${ClassName}By${pkColumn.capJavaField}s" parameterType="String">
-        delete from ${tableName} where ${pkColumn.columnName} in 
-        <foreach item="${pkColumn.javaField}" collection="array" open="(" separator="," close=")">
-            #{${pkColumn.javaField}}
-        </foreach>
-    </delete>
-#if($table.sub)
-    
-    <delete id="delete${subClassName}By${subTableFkClassName}s" parameterType="String">
-        delete from ${subTableName} where ${subTableFkName} in 
-        <foreach item="${subTableFkclassName}" collection="array" open="(" separator="," close=")">
-            #{${subTableFkclassName}}
-        </foreach>
-    </delete>
-
-    <delete id="delete${subClassName}By${subTableFkClassName}" parameterType="${pkColumn.javaType}">
-        delete from ${subTableName} where ${subTableFkName} = #{${subTableFkclassName}}
-    </delete>
-
-    <insert id="batch${subClassName}">
-        insert into ${subTableName}(#foreach($column in $subTable.columns) $column.columnName#if($foreach.count != $subTable.columns.size()),#end#end) values
-        <foreach item="item" index="index" collection="list" separator=",">
-            (#foreach($column in $subTable.columns) #{item.$column.javaField}#if($foreach.count != $subTable.columns.size()),#end#end)
-        </foreach>
-    </insert>
-#end
-</mapper>
\ No newline at end of file
diff --git a/se-modules/se-job/pom.xml b/se-modules/se-job/pom.xml
deleted file mode 100644
index 64f6209..0000000
--- a/se-modules/se-job/pom.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>com.se</groupId>
-        <artifactId>se-modules</artifactId>
-        <version>3.6.4</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>se-modules-job</artifactId>
-
-    <description>
-        se-modules-job瀹氭椂浠诲姟
-    </description>
-
-    <dependencies>
-    	
-    	<!-- SpringCloud Alibaba Nacos -->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
-        </dependency>
-        
-        <!-- SpringCloud Alibaba Nacos Config -->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
-        </dependency>
-        
-        <!-- SpringCloud Alibaba Sentinel -->
-        <dependency>
-            <groupId>com.alibaba.cloud</groupId>
-            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
-        </dependency>
-        
-        <!-- SpringBoot Actuator -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-actuator</artifactId>
-        </dependency>
-		
-        <!-- Swagger UI -->
-        <dependency>
-            <groupId>io.springfox</groupId>
-            <artifactId>springfox-swagger-ui</artifactId>
-<!--            <version>${swagger.fox.version}</version>-->
-            <version>3.0.0</version>
-        </dependency>
-		
-        <!-- Quartz -->
-        <dependency>
-            <groupId>org.quartz-scheduler</groupId>
-            <artifactId>quartz</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.mchange</groupId>
-                    <artifactId>c3p0</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        
-        <!-- Mysql Connector -->
-        <dependency>
-            <groupId>com.mysql</groupId>
-            <artifactId>mysql-connector-j</artifactId>
-        </dependency>
-        
-        <!-- SE Common Log -->
-        <dependency>
-            <groupId>com.se</groupId>
-            <artifactId>se-common-log</artifactId>
-        </dependency>
-        
-        <!-- SE Common Swagger -->
-        <dependency>
-            <groupId>com.se</groupId>
-            <artifactId>se-common-swagger</artifactId>
-        </dependency>
-        
-    </dependencies>
-
-    <build>
-        <finalName>${project.artifactId}</finalName>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-   
-</project>
\ No newline at end of file
diff --git a/se-modules/se-job/src/main/java/com/se/job/SeJobApplication.java b/se-modules/se-job/src/main/java/com/se/job/SeJobApplication.java
deleted file mode 100644
index f5e3d07..0000000
--- a/se-modules/se-job/src/main/java/com/se/job/SeJobApplication.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.se.job;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import com.se.common.security.annotation.EnableCustomConfig;
-import com.se.common.security.annotation.EnableRyFeignClients;
-import com.se.common.swagger.annotation.EnableCustomSwagger2;
-
-/**
- * 瀹氭椂浠诲姟
- * 
- * @author admin
- */
-@EnableCustomConfig
-@EnableCustomSwagger2
-@EnableRyFeignClients   
-@SpringBootApplication
-public class SeJobApplication
-{
-    public static void main(String[] args)
-    {
-        SpringApplication.run(SeJobApplication.class, args);
-        System.out.println("    瀹氭椂浠诲姟妯″潡鍚姩鎴愬姛    ");
-    }
-}
diff --git a/se-modules/se-job/src/main/resources/banner.txt b/se-modules/se-job/src/main/resources/banner.txt
deleted file mode 100644
index 286d7fe..0000000
--- a/se-modules/se-job/src/main/resources/banner.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Spring Boot Version: ${spring-boot.version}
-Spring Application Name: ${spring.application.name}
-SeJobApplication锛屽凡缁忓惎鍔�
\ No newline at end of file
diff --git a/se-modules/se-job/src/main/resources/bootstrap.yml b/se-modules/se-job/src/main/resources/bootstrap.yml
deleted file mode 100644
index 94beb34..0000000
--- a/se-modules/se-job/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-# Tomcat
-server:
-  port: 9203
-
-# Spring
-spring: 
-  application:
-    # 搴旂敤鍚嶇О
-    name: se-job
-  profiles:
-    # 鐜閰嶇疆
-    active: dev
-  cloud:
-    nacos:
-      username: nacos
-      password: nAcos_!9#_admIn
-      discovery:
-        # 鏈嶅姟娉ㄥ唽鍦板潃
-        server-addr: 127.0.0.1:8848
-      config:
-        # 閰嶇疆涓績鍦板潃
-        server-addr: 127.0.0.1:8848
-        # 閰嶇疆鏂囦欢鏍煎紡
-        file-extension: yml
-        # 鍏变韩閰嶇疆
-        shared-configs:
-          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
diff --git a/se-modules/se-job/src/main/resources/logback.xml b/se-modules/se-job/src/main/resources/logback.xml
deleted file mode 100644
index 5eeb32b..0000000
--- a/se-modules/se-job/src/main/resources/logback.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration scan="true" scanPeriod="60 seconds" debug="false">
-    <!-- 鏃ュ織瀛樻斁璺緞 -->
-	<property name="log.path" value="logs/se-job" />
-   <!-- 鏃ュ織杈撳嚭鏍煎紡 -->
-	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
-
-    <!-- 鎺у埗鍙拌緭鍑� -->
-	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
-		<encoder>
-			<pattern>${log.pattern}</pattern>
-		</encoder>
-	</appender>
-
-    <!-- 绯荤粺鏃ュ織杈撳嚭 -->
-	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/info.log</file>
-        <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 鏃ュ織鏂囦欢鍚嶆牸寮� -->
-			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
-			<!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
-			<maxHistory>60</maxHistory>
-		</rollingPolicy>
-		<encoder>
-			<pattern>${log.pattern}</pattern>
-		</encoder>
-		<filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!-- 杩囨护鐨勭骇鍒� -->
-            <level>INFO</level>
-            <!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
-            <onMatch>ACCEPT</onMatch>
-            <!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
-            <onMismatch>DENY</onMismatch>
-        </filter>
-	</appender>
-
-    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/error.log</file>
-        <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 鏃ュ織鏂囦欢鍚嶆牸寮� -->
-            <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
-			<!-- 鏃ュ織鏈�澶х殑鍘嗗彶 60澶� -->
-			<maxHistory>60</maxHistory>
-        </rollingPolicy>
-        <encoder>
-            <pattern>${log.pattern}</pattern>
-        </encoder>
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <!-- 杩囨护鐨勭骇鍒� -->
-            <level>ERROR</level>
-			<!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
-            <onMatch>ACCEPT</onMatch>
-			<!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 绯荤粺妯″潡鏃ュ織绾у埆鎺у埗  -->
-	<logger name="com.se" level="info" />
-	<!-- Spring鏃ュ織绾у埆鎺у埗  -->
-	<logger name="org.springframework" level="warn" />
-
-	<root level="info">
-		<appender-ref ref="console" />
-	</root>
-	
-	<!--绯荤粺鎿嶄綔鏃ュ織-->
-    <root level="info">
-        <appender-ref ref="file_info" />
-        <appender-ref ref="file_error" />
-    </root>
-</configuration>
\ No newline at end of file
diff --git a/se-modules/se-system/pom.xml b/se-modules/se-system/pom.xml
index d80a606..5a727b5 100644
--- a/se-modules/se-system/pom.xml
+++ b/se-modules/se-system/pom.xml
@@ -40,14 +40,7 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-actuator</artifactId>
         </dependency>
-		
-        <!-- Swagger UI -->
-        <dependency>
-            <groupId>io.springfox</groupId>
-            <artifactId>springfox-swagger-ui</artifactId>
-            <version>${swagger.fox.version}</version>
-        </dependency>
-		
+
         <!-- Mysql Connector -->
         <dependency>
             <groupId>com.mysql</groupId>
@@ -71,7 +64,14 @@
             <groupId>com.se</groupId>
             <artifactId>se-common-log</artifactId>
         </dependency>
-        
+
+        <!-- Swagger UI -->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>${swagger.fox.version}</version>
+        </dependency>
+
         <!-- SE Common Swagger -->
         <dependency>
             <groupId>com.se</groupId>
@@ -105,6 +105,24 @@
             <groupId>com.se</groupId>
             <artifactId>se-api-system</artifactId>
         </dependency>
+
+        <!-- Apache Velocity -->
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity-engine-core</artifactId>
+        </dependency>
+
+        <!-- Quartz -->
+        <dependency>
+            <groupId>org.quartz-scheduler</groupId>
+            <artifactId>quartz</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.mchange</groupId>
+                    <artifactId>c3p0</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/se-modules/se-gen/src/main/java/com/se/gen/config/GenConfig.java b/se-modules/se-system/src/main/java/com/se/system/config/GenConfig.java
similarity index 97%
rename from se-modules/se-gen/src/main/java/com/se/gen/config/GenConfig.java
rename to se-modules/se-system/src/main/java/com/se/system/config/GenConfig.java
index 28143c1..2cc4260 100644
--- a/se-modules/se-gen/src/main/java/com/se/gen/config/GenConfig.java
+++ b/se-modules/se-system/src/main/java/com/se/system/config/GenConfig.java
@@ -1,4 +1,4 @@
-package com.se.gen.config;
+package com.se.system.config;
 
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
diff --git a/se-modules/se-job/src/main/java/com/se/job/config/ScheduleConfig.java b/se-modules/se-system/src/main/java/com/se/system/config/ScheduleConfig.java
similarity index 97%
rename from se-modules/se-job/src/main/java/com/se/job/config/ScheduleConfig.java
rename to se-modules/se-system/src/main/java/com/se/system/config/ScheduleConfig.java
index b92a30e..fbe1839 100644
--- a/se-modules/se-job/src/main/java/com/se/job/config/ScheduleConfig.java
+++ b/se-modules/se-system/src/main/java/com/se/system/config/ScheduleConfig.java
@@ -1,4 +1,4 @@
-//package com.se.job.config;
+package com.se.system.config;//package com.se.job.config;
 //
 //import java.util.Properties;
 //import javax.sql.DataSource;
diff --git a/se-modules/se-gen/src/main/java/com/se/gen/controller/GenController.java b/se-modules/se-system/src/main/java/com/se/system/controller/GenController.java
similarity index 88%
rename from se-modules/se-gen/src/main/java/com/se/gen/controller/GenController.java
rename to se-modules/se-system/src/main/java/com/se/system/controller/GenController.java
index 7a5dc12..48eea6e 100644
--- a/se-modules/se-gen/src/main/java/com/se/gen/controller/GenController.java
+++ b/se-modules/se-system/src/main/java/com/se/system/controller/GenController.java
@@ -1,23 +1,5 @@
-package com.se.gen.controller;
+package com.se.system.controller;
 
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import javax.servlet.http.HttpServletResponse;
-
-import com.se.gen.domain.GenTableColumn;
-import org.apache.commons.io.IOUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
 import com.se.common.core.text.Convert;
 import com.se.common.core.web.controller.BaseController;
 import com.se.common.core.web.domain.AjaxResult;
@@ -25,9 +7,20 @@
 import com.se.common.log.annotation.Log;
 import com.se.common.log.enums.BusinessType;
 import com.se.common.security.annotation.RequiresPermissions;
-import com.se.gen.domain.GenTable;
-import com.se.gen.service.IGenTableColumnService;
-import com.se.gen.service.IGenTableService;
+import com.se.system.domain.GenTable;
+import com.se.system.domain.GenTableColumn;
+import com.se.system.service.inte.IGenTableColumnService;
+import com.se.system.service.inte.IGenTableService;
+import org.apache.commons.io.IOUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 浠g爜鐢熸垚 鎿嶄綔澶勭悊
@@ -38,10 +31,10 @@
 @RestController
 public class GenController extends BaseController
 {
-    @Autowired
+    @Resource
     private IGenTableService genTableService;
 
-    @Autowired
+    @Resource
     private IGenTableColumnService genTableColumnService;
 
     /**
diff --git a/se-modules/se-system/src/main/java/com/se/system/controller/IndexController.java b/se-modules/se-system/src/main/java/com/se/system/controller/IndexController.java
new file mode 100644
index 0000000..541c9b4
--- /dev/null
+++ b/se-modules/se-system/src/main/java/com/se/system/controller/IndexController.java
@@ -0,0 +1,95 @@
+package com.se.system.controller;
+
+import com.alibaba.fastjson2.JSON;
+import com.se.common.core.utils.ServletUtils;
+import com.se.common.core.utils.StringUtils;
+import com.se.common.core.utils.ip.IpUtils;
+import com.se.common.core.web.controller.BaseController;
+import com.se.common.core.web.domain.AjaxResult;
+import com.se.common.log.annotation.Log;
+import com.se.common.log.enums.BusinessType;
+import com.se.common.security.utils.SecurityUtils;
+import com.se.system.api.domain.SysOperLog;
+import com.se.system.api.model.LoginUser;
+import com.se.system.service.inte.ISysOperLogService;
+import org.springframework.http.HttpMethod;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/index")
+@SuppressWarnings("ALL")
+public class IndexController extends BaseController {
+    @Resource
+    ISysOperLogService operLogService;
+
+    @GetMapping("/monitor")
+    public Map<String, Object> monitor() {
+        Map<String, Object> map = new HashMap<>();
+
+        return map;
+    }
+
+    @GetMapping("/userList")
+    public Map<String, Object> userList() {
+        Map<String, Object> map = new HashMap<>();
+
+        return map;
+    }
+
+    @GetMapping("/uvCount")
+    public Map<String, Object> uvCount() {
+        Map<String, Object> map = new HashMap<>();
+
+        return map;
+    }
+
+    @GetMapping("/pvCount")
+    public Map<String, Object> pvCount() {
+        Map<String, Object> map = new HashMap<>();
+
+        return map;
+    }
+
+    //@Log(title = "瑙掕壊绠$悊", businessType = BusinessType.INSERT)
+    @GetMapping("/addAccessLog")
+    public AjaxResult addAccessLog(String title, int status) {
+        long start = System.currentTimeMillis();
+
+        SysOperLog log = new SysOperLog();
+        log.setTitle(title);
+        // 0=鍏跺畠,1=鏂板,2=淇敼,3=鍒犻櫎,4=鎺堟潈,5=瀵煎嚭,6=瀵煎叆,7=寮洪��,8=鐢熸垚浠g爜,9=娓呯┖鏁版嵁
+        log.setBusinessType(0);
+        // ServletUtils.getRequest().getMethod()
+        log.setMethod("com.se.system.controller.IndexController.addAccessLog()");
+        log.setRequestMethod("GET");
+        log.setOperatorType(1);
+
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        if (null != loginUser) {
+            log.setOperName(loginUser.getUsername());
+            log.setDeptName(loginUser.getSysUser().getDept().getDeptName());
+        }
+        // StringUtils.substring(ServletUtils.getRequest().getRequestURI(), 0, 255)
+        log.setOperUrl("/index/addAccessLog");
+        log.setOperIp(IpUtils.getIpAddr());
+        log.setOperParam("{\"title\":\"" + title + "\"}");
+
+        log.setJsonResult(String.format("{\"msg\":\"%s\",\"code\":%d}", 0 == status ? "鎴愬姛" : "澶辫触", 0 == status ? 200 : 400));
+        log.setStatus(status);
+        log.setOperTime(new Date());
+        log.setCostTime(System.currentTimeMillis() - start + 10);
+
+        int rows = operLogService.insertOperlog(log);
+
+        return toAjax(rows);
+    }
+}
+
+
diff --git a/se-modules/se-job/src/main/java/com/se/job/controller/SysJobController.java b/se-modules/se-system/src/main/java/com/se/system/controller/SysJobController.java
similarity index 89%
rename from se-modules/se-job/src/main/java/com/se/job/controller/SysJobController.java
rename to se-modules/se-system/src/main/java/com/se/system/controller/SysJobController.java
index 0cddec9..1705a01 100644
--- a/se-modules/se-job/src/main/java/com/se/job/controller/SysJobController.java
+++ b/se-modules/se-system/src/main/java/com/se/system/controller/SysJobController.java
@@ -1,21 +1,5 @@
-package com.se.job.controller;
+package com.se.system.controller;
 
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-
-import com.se.job.domain.SysJob;
-import com.se.job.service.ISysJobService;
-import com.se.job.util.ScheduleUtils;
-import org.quartz.SchedulerException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
 import com.se.common.core.constant.Constants;
 import com.se.common.core.exception.job.TaskException;
 import com.se.common.core.utils.StringUtils;
@@ -27,7 +11,16 @@
 import com.se.common.log.enums.BusinessType;
 import com.se.common.security.annotation.RequiresPermissions;
 import com.se.common.security.utils.SecurityUtils;
-import com.se.job.util.CronUtils;
+import com.se.system.domain.SysJob;
+import com.se.system.service.inte.ISysJobService;
+import com.se.system.utils.CronUtils;
+import com.se.system.utils.ScheduleUtils;
+import org.quartz.SchedulerException;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * 璋冨害浠诲姟淇℃伅鎿嶄綔澶勭悊
@@ -38,7 +31,7 @@
 @RequestMapping("/job")
 public class SysJobController extends BaseController
 {
-    @Autowired
+    @Resource
     private ISysJobService jobService;
 
     /**
diff --git a/se-modules/se-job/src/main/java/com/se/job/controller/SysJobLogController.java b/se-modules/se-system/src/main/java/com/se/system/controller/SysJobLogController.java
similarity index 80%
rename from se-modules/se-job/src/main/java/com/se/job/controller/SysJobLogController.java
rename to se-modules/se-system/src/main/java/com/se/system/controller/SysJobLogController.java
index 3ba97de..73224ef 100644
--- a/se-modules/se-job/src/main/java/com/se/job/controller/SysJobLogController.java
+++ b/se-modules/se-system/src/main/java/com/se/system/controller/SysJobLogController.java
@@ -1,17 +1,5 @@
-package com.se.job.controller;
+package com.se.system.controller;
 
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-
-import com.se.job.domain.SysJobLog;
-import com.se.job.service.ISysJobLogService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
 import com.se.common.core.utils.poi.ExcelUtil;
 import com.se.common.core.web.controller.BaseController;
 import com.se.common.core.web.domain.AjaxResult;
@@ -19,6 +7,13 @@
 import com.se.common.log.annotation.Log;
 import com.se.common.log.enums.BusinessType;
 import com.se.common.security.annotation.RequiresPermissions;
+import com.se.system.domain.SysJobLog;
+import com.se.system.service.inte.ISysJobLogService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * 璋冨害鏃ュ織鎿嶄綔澶勭悊
@@ -29,7 +24,7 @@
 @RequestMapping("/job/log")
 public class SysJobLogController extends BaseController
 {
-    @Autowired
+    @Resource
     private ISysJobLogService jobLogService;
 
     /**
diff --git a/se-modules/se-gen/src/main/java/com/se/gen/domain/GenTable.java b/se-modules/se-system/src/main/java/com/se/system/domain/GenTable.java
similarity index 99%
rename from se-modules/se-gen/src/main/java/com/se/gen/domain/GenTable.java
rename to se-modules/se-system/src/main/java/com/se/system/domain/GenTable.java
index 7878289..dd372b4 100644
--- a/se-modules/se-gen/src/main/java/com/se/gen/domain/GenTable.java
+++ b/se-modules/se-system/src/main/java/com/se/system/domain/GenTable.java
@@ -1,12 +1,13 @@
-package com.se.gen.domain;
+package com.se.system.domain;
 
-import java.util.List;
-import javax.validation.Valid;
-import javax.validation.constraints.NotBlank;
-import org.apache.commons.lang3.ArrayUtils;
 import com.se.common.core.constant.GenConstants;
 import com.se.common.core.utils.StringUtils;
 import com.se.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.ArrayUtils;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import java.util.List;
 
 /**
  * 涓氬姟琛� gen_table
diff --git a/se-modules/se-gen/src/main/java/com/se/gen/domain/GenTableColumn.java b/se-modules/se-system/src/main/java/com/se/system/domain/GenTableColumn.java
similarity index 99%
rename from se-modules/se-gen/src/main/java/com/se/gen/domain/GenTableColumn.java
rename to se-modules/se-system/src/main/java/com/se/system/domain/GenTableColumn.java
index 36200be..2454b75 100644
--- a/se-modules/se-gen/src/main/java/com/se/gen/domain/GenTableColumn.java
+++ b/se-modules/se-system/src/main/java/com/se/system/domain/GenTableColumn.java
@@ -1,10 +1,10 @@
-package com.se.gen.domain;
-
-import javax.validation.constraints.NotBlank;
+package com.se.system.domain;
 
 import com.se.common.core.utils.StringUtils;
 import com.se.common.core.web.domain.BaseEntity;
 
+import javax.validation.constraints.NotBlank;
+
 /**
  * 浠g爜鐢熸垚涓氬姟瀛楁琛� gen_table_column
  * 
diff --git a/se-modules/se-job/src/main/java/com/se/job/domain/SysJob.java b/se-modules/se-system/src/main/java/com/se/system/domain/SysJob.java
similarity index 98%
rename from se-modules/se-job/src/main/java/com/se/job/domain/SysJob.java
rename to se-modules/se-system/src/main/java/com/se/system/domain/SysJob.java
index 9fe5163..ce10907 100644
--- a/se-modules/se-job/src/main/java/com/se/job/domain/SysJob.java
+++ b/se-modules/se-system/src/main/java/com/se/system/domain/SysJob.java
@@ -1,17 +1,18 @@
-package com.se.job.domain;
+package com.se.system.domain;
 
-import java.util.Date;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.Size;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.se.common.core.annotation.Excel;
 import com.se.common.core.annotation.Excel.ColumnType;
 import com.se.common.core.constant.ScheduleConstants;
 import com.se.common.core.utils.StringUtils;
 import com.se.common.core.web.domain.BaseEntity;
-import com.se.job.util.CronUtils;
+import com.se.system.utils.CronUtils;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.util.Date;
 
 /**
  * 瀹氭椂浠诲姟璋冨害琛� sys_job
diff --git a/se-modules/se-job/src/main/java/com/se/job/domain/SysJobLog.java b/se-modules/se-system/src/main/java/com/se/system/domain/SysJobLog.java
similarity index 98%
rename from se-modules/se-job/src/main/java/com/se/job/domain/SysJobLog.java
rename to se-modules/se-system/src/main/java/com/se/system/domain/SysJobLog.java
index b08cf99..531b469 100644
--- a/se-modules/se-job/src/main/java/com/se/job/domain/SysJobLog.java
+++ b/se-modules/se-system/src/main/java/com/se/system/domain/SysJobLog.java
@@ -1,10 +1,11 @@
-package com.se.job.domain;
+package com.se.system.domain;
 
-import java.util.Date;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.se.common.core.annotation.Excel;
 import com.se.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
 
 /**
  * 瀹氭椂浠诲姟璋冨害鏃ュ織琛� sys_job_log
diff --git a/se-modules/se-gen/src/main/java/com/se/gen/mapper/GenTableColumnMapper.java b/se-modules/se-system/src/main/java/com/se/system/mapper/GenTableColumnMapper.java
similarity index 94%
rename from se-modules/se-gen/src/main/java/com/se/gen/mapper/GenTableColumnMapper.java
rename to se-modules/se-system/src/main/java/com/se/system/mapper/GenTableColumnMapper.java
index 9e8aca2..d095ce8 100644
--- a/se-modules/se-gen/src/main/java/com/se/gen/mapper/GenTableColumnMapper.java
+++ b/se-modules/se-system/src/main/java/com/se/system/mapper/GenTableColumnMapper.java
@@ -1,7 +1,8 @@
-package com.se.gen.mapper;
+package com.se.system.mapper;
+
+import com.se.system.domain.GenTableColumn;
 
 import java.util.List;
-import com.se.gen.domain.GenTableColumn;
 
 /**
  * 涓氬姟瀛楁 鏁版嵁灞�
diff --git a/se-modules/se-gen/src/main/java/com/se/gen/mapper/GenTableMapper.java b/se-modules/se-system/src/main/java/com/se/system/mapper/GenTableMapper.java
similarity index 95%
rename from se-modules/se-gen/src/main/java/com/se/gen/mapper/GenTableMapper.java
rename to se-modules/se-system/src/main/java/com/se/system/mapper/GenTableMapper.java
index 0f781b4..80d2250 100644
--- a/se-modules/se-gen/src/main/java/com/se/gen/mapper/GenTableMapper.java
+++ b/se-modules/se-system/src/main/java/com/se/system/mapper/GenTableMapper.java
@@ -1,7 +1,8 @@
-package com.se.gen.mapper;
+package com.se.system.mapper;
+
+import com.se.system.domain.GenTable;
 
 import java.util.List;
-import com.se.gen.domain.GenTable;
 
 /**
  * 涓氬姟 鏁版嵁灞�
diff --git a/se-modules/se-job/src/main/java/com/se/job/mapper/SysJobLogMapper.java b/se-modules/se-system/src/main/java/com/se/system/mapper/SysJobLogMapper.java
similarity index 94%
rename from se-modules/se-job/src/main/java/com/se/job/mapper/SysJobLogMapper.java
rename to se-modules/se-system/src/main/java/com/se/system/mapper/SysJobLogMapper.java
index 82cb623..01b5c7e 100644
--- a/se-modules/se-job/src/main/java/com/se/job/mapper/SysJobLogMapper.java
+++ b/se-modules/se-system/src/main/java/com/se/system/mapper/SysJobLogMapper.java
@@ -1,7 +1,8 @@
-package com.se.job.mapper;
+package com.se.system.mapper;
+
+import com.se.system.domain.SysJobLog;
 
 import java.util.List;
-import com.se.job.domain.SysJobLog;
 
 /**
  * 璋冨害浠诲姟鏃ュ織淇℃伅 鏁版嵁灞�
diff --git a/se-modules/se-job/src/main/java/com/se/job/mapper/SysJobMapper.java b/se-modules/se-system/src/main/java/com/se/system/mapper/SysJobMapper.java
similarity index 94%
rename from se-modules/se-job/src/main/java/com/se/job/mapper/SysJobMapper.java
rename to se-modules/se-system/src/main/java/com/se/system/mapper/SysJobMapper.java
index 0f99ed6..af20fb8 100644
--- a/se-modules/se-job/src/main/java/com/se/job/mapper/SysJobMapper.java
+++ b/se-modules/se-system/src/main/java/com/se/system/mapper/SysJobMapper.java
@@ -1,7 +1,8 @@
-package com.se.job.mapper;
+package com.se.system.mapper;
+
+import com.se.system.domain.SysJob;
 
 import java.util.List;
-import com.se.job.domain.SysJob;
 
 /**
  * 璋冨害浠诲姟淇℃伅 鏁版嵁灞�
diff --git a/se-modules/se-gen/src/main/java/com/se/gen/service/GenTableColumnServiceImpl.java b/se-modules/se-system/src/main/java/com/se/system/service/impl/GenTableColumnServiceImpl.java
similarity index 85%
rename from se-modules/se-gen/src/main/java/com/se/gen/service/GenTableColumnServiceImpl.java
rename to se-modules/se-system/src/main/java/com/se/system/service/impl/GenTableColumnServiceImpl.java
index 9eb75e4..ab49f43 100644
--- a/se-modules/se-gen/src/main/java/com/se/gen/service/GenTableColumnServiceImpl.java
+++ b/se-modules/se-system/src/main/java/com/se/system/service/impl/GenTableColumnServiceImpl.java
@@ -1,12 +1,13 @@
-package com.se.gen.service;
+package com.se.system.service.impl;
 
-import java.util.List;
-
-import com.se.gen.domain.GenTableColumn;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
 import com.se.common.core.text.Convert;
-import com.se.gen.mapper.GenTableColumnMapper;
+import com.se.system.domain.GenTableColumn;
+import com.se.system.mapper.GenTableColumnMapper;
+import com.se.system.service.inte.IGenTableColumnService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * 涓氬姟瀛楁 鏈嶅姟灞傚疄鐜�
@@ -14,9 +15,9 @@
  * @author admin
  */
 @Service
-public class GenTableColumnServiceImpl implements IGenTableColumnService 
+public class GenTableColumnServiceImpl implements IGenTableColumnService
 {
-	@Autowired
+	@Resource
 	private GenTableColumnMapper genTableColumnMapper;
 
 	/**
diff --git a/se-modules/se-gen/src/main/java/com/se/gen/service/GenTableServiceImpl.java b/se-modules/se-system/src/main/java/com/se/system/service/impl/GenTableServiceImpl.java
similarity index 96%
rename from se-modules/se-gen/src/main/java/com/se/gen/service/GenTableServiceImpl.java
rename to se-modules/se-system/src/main/java/com/se/system/service/impl/GenTableServiceImpl.java
index e636ad8..9e8d1e4 100644
--- a/se-modules/se-gen/src/main/java/com/se/gen/service/GenTableServiceImpl.java
+++ b/se-modules/se-system/src/main/java/com/se/system/service/impl/GenTableServiceImpl.java
@@ -1,5 +1,32 @@
-package com.se.gen.service;
+package com.se.system.service.impl;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.se.common.core.constant.Constants;
+import com.se.common.core.constant.GenConstants;
+import com.se.common.core.exception.ServiceException;
+import com.se.common.core.text.CharsetKit;
+import com.se.common.core.utils.StringUtils;
+import com.se.common.security.utils.SecurityUtils;
+import com.se.system.domain.GenTable;
+import com.se.system.domain.GenTableColumn;
+import com.se.system.mapper.GenTableColumnMapper;
+import com.se.system.mapper.GenTableMapper;
+import com.se.system.service.inte.IGenTableService;
+import com.se.system.utils.GenUtils;
+import com.se.system.utils.VelocityInitializer;
+import com.se.system.utils.VelocityUtils;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.velocity.Template;
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.Velocity;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
@@ -12,32 +39,6 @@
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
-import com.se.gen.domain.GenTableColumn;
-import com.se.gen.util.GenUtils;
-import com.se.gen.util.VelocityInitializer;
-import com.se.gen.util.VelocityUtils;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.velocity.Template;
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.Velocity;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONObject;
-import com.se.common.core.constant.Constants;
-import com.se.common.core.constant.GenConstants;
-import com.se.common.core.exception.ServiceException;
-import com.se.common.core.text.CharsetKit;
-import com.se.common.core.utils.StringUtils;
-import com.se.common.security.utils.SecurityUtils;
-import com.se.gen.domain.GenTable;
-import com.se.gen.mapper.GenTableColumnMapper;
-import com.se.gen.mapper.GenTableMapper;
-
 /**
  * 涓氬姟 鏈嶅姟灞傚疄鐜�
  * 
@@ -48,10 +49,10 @@
 {
     private static final Logger log = LoggerFactory.getLogger(GenTableServiceImpl.class);
 
-    @Autowired
+    @Resource
     private GenTableMapper genTableMapper;
 
-    @Autowired
+    @Resource
     private GenTableColumnMapper genTableColumnMapper;
 
     /**
diff --git a/se-modules/se-job/src/main/java/com/se/job/service/SysJobLogServiceImpl.java b/se-modules/se-system/src/main/java/com/se/system/service/impl/SysJobLogServiceImpl.java
similarity index 87%
rename from se-modules/se-job/src/main/java/com/se/job/service/SysJobLogServiceImpl.java
rename to se-modules/se-system/src/main/java/com/se/system/service/impl/SysJobLogServiceImpl.java
index 1dcbd38..d713e1f 100644
--- a/se-modules/se-job/src/main/java/com/se/job/service/SysJobLogServiceImpl.java
+++ b/se-modules/se-system/src/main/java/com/se/system/service/impl/SysJobLogServiceImpl.java
@@ -1,10 +1,12 @@
-package com.se.job.service;
+package com.se.system.service.impl;
 
-import java.util.List;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.se.system.domain.SysJobLog;
+import com.se.system.mapper.SysJobLogMapper;
+import com.se.system.service.inte.ISysJobLogService;
 import org.springframework.stereotype.Service;
-import com.se.job.domain.SysJobLog;
-import com.se.job.mapper.SysJobLogMapper;
+
+import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * 瀹氭椂浠诲姟璋冨害鏃ュ織淇℃伅 鏈嶅姟灞�
@@ -14,7 +16,7 @@
 @Service
 public class SysJobLogServiceImpl implements ISysJobLogService
 {
-    @Autowired
+    @Resource
     private SysJobLogMapper jobLogMapper;
 
     /**
diff --git a/se-modules/se-job/src/main/java/com/se/job/service/SysJobServiceImpl.java b/se-modules/se-system/src/main/java/com/se/system/service/impl/SysJobServiceImpl.java
similarity index 95%
rename from se-modules/se-job/src/main/java/com/se/job/service/SysJobServiceImpl.java
rename to se-modules/se-system/src/main/java/com/se/system/service/impl/SysJobServiceImpl.java
index 0e303b4..d9ff60c 100644
--- a/se-modules/se-job/src/main/java/com/se/job/service/SysJobServiceImpl.java
+++ b/se-modules/se-system/src/main/java/com/se/system/service/impl/SysJobServiceImpl.java
@@ -1,7 +1,12 @@
-package com.se.job.service;
+package com.se.system.service.impl;
 
-import java.util.List;
-import javax.annotation.PostConstruct;
+import com.se.common.core.constant.ScheduleConstants;
+import com.se.common.core.exception.job.TaskException;
+import com.se.system.domain.SysJob;
+import com.se.system.mapper.SysJobMapper;
+import com.se.system.service.inte.ISysJobService;
+import com.se.system.utils.CronUtils;
+import com.se.system.utils.ScheduleUtils;
 import org.quartz.JobDataMap;
 import org.quartz.JobKey;
 import org.quartz.Scheduler;
@@ -9,12 +14,10 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import com.se.common.core.constant.ScheduleConstants;
-import com.se.common.core.exception.job.TaskException;
-import com.se.job.domain.SysJob;
-import com.se.job.mapper.SysJobMapper;
-import com.se.job.util.CronUtils;
-import com.se.job.util.ScheduleUtils;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * 瀹氭椂浠诲姟璋冨害淇℃伅 鏈嶅姟灞�
@@ -24,10 +27,10 @@
 @Service
 public class SysJobServiceImpl implements ISysJobService
 {
-    @Autowired
+    @Resource
     private Scheduler scheduler;
 
-    @Autowired
+    @Resource
     private SysJobMapper jobMapper;
 
     /**
diff --git a/se-modules/se-gen/src/main/java/com/se/gen/service/IGenTableColumnService.java b/se-modules/se-system/src/main/java/com/se/system/service/inte/IGenTableColumnService.java
similarity index 91%
rename from se-modules/se-gen/src/main/java/com/se/gen/service/IGenTableColumnService.java
rename to se-modules/se-system/src/main/java/com/se/system/service/inte/IGenTableColumnService.java
index 0a0c6af..729cd7e 100644
--- a/se-modules/se-gen/src/main/java/com/se/gen/service/IGenTableColumnService.java
+++ b/se-modules/se-system/src/main/java/com/se/system/service/inte/IGenTableColumnService.java
@@ -1,7 +1,8 @@
-package com.se.gen.service;
+package com.se.system.service.inte;
+
+import com.se.system.domain.GenTableColumn;
 
 import java.util.List;
-import com.se.gen.domain.GenTableColumn;
 
 /**
  * 涓氬姟瀛楁 鏈嶅姟灞�
diff --git a/se-modules/se-gen/src/main/java/com/se/gen/service/IGenTableService.java b/se-modules/se-system/src/main/java/com/se/system/service/inte/IGenTableService.java
similarity index 96%
rename from se-modules/se-gen/src/main/java/com/se/gen/service/IGenTableService.java
rename to se-modules/se-system/src/main/java/com/se/system/service/inte/IGenTableService.java
index ff8cd09..6c5131d 100644
--- a/se-modules/se-gen/src/main/java/com/se/gen/service/IGenTableService.java
+++ b/se-modules/se-system/src/main/java/com/se/system/service/inte/IGenTableService.java
@@ -1,8 +1,9 @@
-package com.se.gen.service;
+package com.se.system.service.inte;
+
+import com.se.system.domain.GenTable;
 
 import java.util.List;
 import java.util.Map;
-import com.se.gen.domain.GenTable;
 
 /**
  * 涓氬姟 鏈嶅姟灞�
diff --git a/se-modules/se-job/src/main/java/com/se/job/service/ISysJobLogService.java b/se-modules/se-system/src/main/java/com/se/system/service/inte/ISysJobLogService.java
similarity index 93%
rename from se-modules/se-job/src/main/java/com/se/job/service/ISysJobLogService.java
rename to se-modules/se-system/src/main/java/com/se/system/service/inte/ISysJobLogService.java
index 0cb8913..8543a91 100644
--- a/se-modules/se-job/src/main/java/com/se/job/service/ISysJobLogService.java
+++ b/se-modules/se-system/src/main/java/com/se/system/service/inte/ISysJobLogService.java
@@ -1,7 +1,8 @@
-package com.se.job.service;
+package com.se.system.service.inte;
+
+import com.se.system.domain.SysJobLog;
 
 import java.util.List;
-import com.se.job.domain.SysJobLog;
 
 /**
  * 瀹氭椂浠诲姟璋冨害鏃ュ織淇℃伅淇℃伅 鏈嶅姟灞�
diff --git a/se-modules/se-job/src/main/java/com/se/job/service/ISysJobService.java b/se-modules/se-system/src/main/java/com/se/system/service/inte/ISysJobService.java
similarity index 96%
rename from se-modules/se-job/src/main/java/com/se/job/service/ISysJobService.java
rename to se-modules/se-system/src/main/java/com/se/system/service/inte/ISysJobService.java
index 1a5afa9..15447ce 100644
--- a/se-modules/se-job/src/main/java/com/se/job/service/ISysJobService.java
+++ b/se-modules/se-system/src/main/java/com/se/system/service/inte/ISysJobService.java
@@ -1,9 +1,10 @@
-package com.se.job.service;
+package com.se.system.service.inte;
+
+import com.se.common.core.exception.job.TaskException;
+import com.se.system.domain.SysJob;
+import org.quartz.SchedulerException;
 
 import java.util.List;
-import org.quartz.SchedulerException;
-import com.se.common.core.exception.job.TaskException;
-import com.se.job.domain.SysJob;
 
 /**
  * 瀹氭椂浠诲姟璋冨害淇℃伅淇℃伅 鏈嶅姟灞�
diff --git a/se-modules/se-job/src/main/java/com/se/job/util/AbstractQuartzJob.java b/se-modules/se-system/src/main/java/com/se/system/utils/AbstractQuartzJob.java
similarity index 94%
rename from se-modules/se-job/src/main/java/com/se/job/util/AbstractQuartzJob.java
rename to se-modules/se-system/src/main/java/com/se/system/utils/AbstractQuartzJob.java
index 39be601..c009ab5 100644
--- a/se-modules/se-job/src/main/java/com/se/job/util/AbstractQuartzJob.java
+++ b/se-modules/se-system/src/main/java/com/se/system/utils/AbstractQuartzJob.java
@@ -1,20 +1,20 @@
-package com.se.job.util;
+package com.se.system.utils;
 
-import java.util.Date;
-
-import com.se.job.domain.SysJob;
-import com.se.job.domain.SysJobLog;
-import com.se.job.service.ISysJobLogService;
-import org.quartz.Job;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import com.se.common.core.constant.ScheduleConstants;
 import com.se.common.core.utils.ExceptionUtil;
 import com.se.common.core.utils.SpringUtils;
 import com.se.common.core.utils.StringUtils;
 import com.se.common.core.utils.bean.BeanUtils;
+import com.se.system.domain.SysJob;
+import com.se.system.domain.SysJobLog;
+import com.se.system.service.inte.ISysJobLogService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Date;
 
 /**
  * 鎶借薄quartz璋冪敤
diff --git a/se-modules/se-job/src/main/java/com/se/job/util/CronUtils.java b/se-modules/se-system/src/main/java/com/se/system/utils/CronUtils.java
similarity index 97%
rename from se-modules/se-job/src/main/java/com/se/job/util/CronUtils.java
rename to se-modules/se-system/src/main/java/com/se/system/utils/CronUtils.java
index 4590e21..1e23cd6 100644
--- a/se-modules/se-job/src/main/java/com/se/job/util/CronUtils.java
+++ b/se-modules/se-system/src/main/java/com/se/system/utils/CronUtils.java
@@ -1,8 +1,9 @@
-package com.se.job.util;
+package com.se.system.utils;
+
+import org.quartz.CronExpression;
 
 import java.text.ParseException;
 import java.util.Date;
-import org.quartz.CronExpression;
 
 /**
  * cron琛ㄨ揪寮忓伐鍏风被
diff --git a/se-modules/se-gen/src/main/java/com/se/gen/util/GenUtils.java b/se-modules/se-system/src/main/java/com/se/system/utils/GenUtils.java
similarity index 97%
rename from se-modules/se-gen/src/main/java/com/se/gen/util/GenUtils.java
rename to se-modules/se-system/src/main/java/com/se/system/utils/GenUtils.java
index 7dd5d14..fb8e954 100644
--- a/se-modules/se-gen/src/main/java/com/se/gen/util/GenUtils.java
+++ b/se-modules/se-system/src/main/java/com/se/system/utils/GenUtils.java
@@ -1,13 +1,13 @@
-package com.se.gen.util;
+package com.se.system.utils;
 
-import java.util.Arrays;
-
-import com.se.gen.config.GenConfig;
-import com.se.gen.domain.GenTableColumn;
-import org.apache.commons.lang3.RegExUtils;
 import com.se.common.core.constant.GenConstants;
 import com.se.common.core.utils.StringUtils;
-import com.se.gen.domain.GenTable;
+import com.se.system.config.GenConfig;
+import com.se.system.domain.GenTable;
+import com.se.system.domain.GenTableColumn;
+import org.apache.commons.lang3.RegExUtils;
+
+import java.util.Arrays;
 
 /**
  * 浠g爜鐢熸垚鍣� 宸ュ叿绫�
diff --git a/se-modules/se-job/src/main/java/com/se/job/util/JobInvokeUtil.java b/se-modules/se-system/src/main/java/com/se/system/utils/JobInvokeUtil.java
similarity index 98%
rename from se-modules/se-job/src/main/java/com/se/job/util/JobInvokeUtil.java
rename to se-modules/se-system/src/main/java/com/se/system/utils/JobInvokeUtil.java
index 6aaab12..1881cd2 100644
--- a/se-modules/se-job/src/main/java/com/se/job/util/JobInvokeUtil.java
+++ b/se-modules/se-system/src/main/java/com/se/system/utils/JobInvokeUtil.java
@@ -1,12 +1,13 @@
-package com.se.job.util;
+package com.se.system.utils;
+
+import com.se.common.core.utils.SpringUtils;
+import com.se.common.core.utils.StringUtils;
+import com.se.system.domain.SysJob;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.LinkedList;
 import java.util.List;
-import com.se.common.core.utils.SpringUtils;
-import com.se.common.core.utils.StringUtils;
-import com.se.job.domain.SysJob;
 
 /**
  * 浠诲姟鎵ц宸ュ叿
diff --git a/se-modules/se-job/src/main/java/com/se/job/util/QuartzDisallowConcurrentExecution.java b/se-modules/se-system/src/main/java/com/se/system/utils/QuartzDisallowConcurrentExecution.java
similarity index 86%
rename from se-modules/se-job/src/main/java/com/se/job/util/QuartzDisallowConcurrentExecution.java
rename to se-modules/se-system/src/main/java/com/se/system/utils/QuartzDisallowConcurrentExecution.java
index 8901480..eadbf93 100644
--- a/se-modules/se-job/src/main/java/com/se/job/util/QuartzDisallowConcurrentExecution.java
+++ b/se-modules/se-system/src/main/java/com/se/system/utils/QuartzDisallowConcurrentExecution.java
@@ -1,6 +1,6 @@
-package com.se.job.util;
+package com.se.system.utils;
 
-import com.se.job.domain.SysJob;
+import com.se.system.domain.SysJob;
 import org.quartz.DisallowConcurrentExecution;
 import org.quartz.JobExecutionContext;
 
diff --git a/se-modules/se-job/src/main/java/com/se/job/util/QuartzJobExecution.java b/se-modules/se-system/src/main/java/com/se/system/utils/QuartzJobExecution.java
similarity index 83%
rename from se-modules/se-job/src/main/java/com/se/job/util/QuartzJobExecution.java
rename to se-modules/se-system/src/main/java/com/se/system/utils/QuartzJobExecution.java
index 7529ef2..eea20e0 100644
--- a/se-modules/se-job/src/main/java/com/se/job/util/QuartzJobExecution.java
+++ b/se-modules/se-system/src/main/java/com/se/system/utils/QuartzJobExecution.java
@@ -1,6 +1,6 @@
-package com.se.job.util;
+package com.se.system.utils;
 
-import com.se.job.domain.SysJob;
+import com.se.system.domain.SysJob;
 import org.quartz.JobExecutionContext;
 
 /**
diff --git a/se-modules/se-job/src/main/java/com/se/job/task/RyTask.java b/se-modules/se-system/src/main/java/com/se/system/utils/RyTask.java
similarity index 95%
rename from se-modules/se-job/src/main/java/com/se/job/task/RyTask.java
rename to se-modules/se-system/src/main/java/com/se/system/utils/RyTask.java
index 5293b57..8181c6e 100644
--- a/se-modules/se-job/src/main/java/com/se/job/task/RyTask.java
+++ b/se-modules/se-system/src/main/java/com/se/system/utils/RyTask.java
@@ -1,7 +1,7 @@
-package com.se.job.task;
+package com.se.system.utils;
 
-import org.springframework.stereotype.Component;
 import com.se.common.core.utils.StringUtils;
+import org.springframework.stereotype.Component;
 
 /**
  * 瀹氭椂浠诲姟璋冨害娴嬭瘯
diff --git a/se-modules/se-job/src/main/java/com/se/job/util/ScheduleUtils.java b/se-modules/se-system/src/main/java/com/se/system/utils/ScheduleUtils.java
similarity index 98%
rename from se-modules/se-job/src/main/java/com/se/job/util/ScheduleUtils.java
rename to se-modules/se-system/src/main/java/com/se/system/utils/ScheduleUtils.java
index 6a50822..3429718 100644
--- a/se-modules/se-job/src/main/java/com/se/job/util/ScheduleUtils.java
+++ b/se-modules/se-system/src/main/java/com/se/system/utils/ScheduleUtils.java
@@ -1,6 +1,6 @@
-package com.se.job.util;
+package com.se.system.utils;
 
-import com.se.job.domain.SysJob;
+import com.se.system.domain.SysJob;
 import org.quartz.CronScheduleBuilder;
 import org.quartz.CronTrigger;
 import org.quartz.Job;
diff --git a/se-modules/se-gen/src/main/java/com/se/gen/util/VelocityInitializer.java b/se-modules/se-system/src/main/java/com/se/system/utils/VelocityInitializer.java
similarity index 96%
rename from se-modules/se-gen/src/main/java/com/se/gen/util/VelocityInitializer.java
rename to se-modules/se-system/src/main/java/com/se/system/utils/VelocityInitializer.java
index 5301486..e03c0f7 100644
--- a/se-modules/se-gen/src/main/java/com/se/gen/util/VelocityInitializer.java
+++ b/se-modules/se-system/src/main/java/com/se/system/utils/VelocityInitializer.java
@@ -1,8 +1,9 @@
-package com.se.gen.util;
+package com.se.system.utils;
+
+import com.se.common.core.constant.Constants;
+import org.apache.velocity.app.Velocity;
 
 import java.util.Properties;
-import org.apache.velocity.app.Velocity;
-import com.se.common.core.constant.Constants;
 
 /**
  * VelocityEngine宸ュ巶
diff --git a/se-modules/se-gen/src/main/java/com/se/gen/util/VelocityUtils.java b/se-modules/se-system/src/main/java/com/se/system/utils/VelocityUtils.java
similarity index 98%
rename from se-modules/se-gen/src/main/java/com/se/gen/util/VelocityUtils.java
rename to se-modules/se-system/src/main/java/com/se/system/utils/VelocityUtils.java
index f9de77c..86dd7f0 100644
--- a/se-modules/se-gen/src/main/java/com/se/gen/util/VelocityUtils.java
+++ b/se-modules/se-system/src/main/java/com/se/system/utils/VelocityUtils.java
@@ -1,18 +1,18 @@
-package com.se.gen.util;
+package com.se.system.utils;
 
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import com.se.gen.domain.GenTableColumn;
-import org.apache.velocity.VelocityContext;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.se.common.core.constant.GenConstants;
 import com.se.common.core.utils.DateUtils;
 import com.se.common.core.utils.StringUtils;
-import com.se.gen.domain.GenTable;
+import com.se.system.domain.GenTable;
+import com.se.system.domain.GenTableColumn;
+import org.apache.velocity.VelocityContext;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 /**
  * 妯℃澘宸ュ叿绫�
diff --git a/se-modules/se-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml b/se-modules/se-system/src/main/resources/mapper/system/GenTableColumnMapper.xml
similarity index 98%
rename from se-modules/se-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml
rename to se-modules/se-system/src/main/resources/mapper/system/GenTableColumnMapper.xml
index 57726e8..3e62ea2 100644
--- a/se-modules/se-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml
+++ b/se-modules/se-system/src/main/resources/mapper/system/GenTableColumnMapper.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.se.gen.mapper.GenTableColumnMapper">
+<mapper namespace="com.se.system.mapper.GenTableColumnMapper">
 
     <resultMap type="GenTableColumn" id="GenTableColumnResult">
         <id     property="columnId"       column="column_id"      />
diff --git a/se-modules/se-gen/src/main/resources/mapper/generator/GenTableMapper.xml b/se-modules/se-system/src/main/resources/mapper/system/GenTableMapper.xml
similarity index 99%
rename from se-modules/se-gen/src/main/resources/mapper/generator/GenTableMapper.xml
rename to se-modules/se-system/src/main/resources/mapper/system/GenTableMapper.xml
index 074d782..648733a 100644
--- a/se-modules/se-gen/src/main/resources/mapper/generator/GenTableMapper.xml
+++ b/se-modules/se-system/src/main/resources/mapper/system/GenTableMapper.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.se.gen.mapper.GenTableMapper">
+<mapper namespace="com.se.system.mapper.GenTableMapper">
 
 	<resultMap type="GenTable" id="GenTableResult">
 	    <id     property="tableId"        column="table_id"          />
diff --git a/se-modules/se-job/src/main/resources/mapper/job/SysJobLogMapper.xml b/se-modules/se-system/src/main/resources/mapper/system/SysJobLogMapper.xml
similarity index 98%
rename from se-modules/se-job/src/main/resources/mapper/job/SysJobLogMapper.xml
rename to se-modules/se-system/src/main/resources/mapper/system/SysJobLogMapper.xml
index 41a7d06..47f4989 100644
--- a/se-modules/se-job/src/main/resources/mapper/job/SysJobLogMapper.xml
+++ b/se-modules/se-system/src/main/resources/mapper/system/SysJobLogMapper.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.se.job.mapper.SysJobLogMapper">
+<mapper namespace="com.se.system.mapper.SysJobLogMapper">
 
 	<resultMap type="SysJobLog" id="SysJobLogResult">
 		<id     property="jobLogId"       column="job_log_id"      />
diff --git a/se-modules/se-job/src/main/resources/mapper/job/SysJobMapper.xml b/se-modules/se-system/src/main/resources/mapper/system/SysJobMapper.xml
similarity index 98%
rename from se-modules/se-job/src/main/resources/mapper/job/SysJobMapper.xml
rename to se-modules/se-system/src/main/resources/mapper/system/SysJobMapper.xml
index 09f8fc6..74e78ba 100644
--- a/se-modules/se-job/src/main/resources/mapper/job/SysJobMapper.xml
+++ b/se-modules/se-system/src/main/resources/mapper/system/SysJobMapper.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.se.job.mapper.SysJobMapper">
+<mapper namespace="com.se.system.mapper.SysJobMapper">
 
 	<resultMap type="SysJob" id="SysJobResult">
 		<id     property="jobId"          column="job_id"          />
diff --git "a/\350\257\264\346\230\216.txt" "b/\350\257\264\346\230\216.txt"
index 7d79468..510fd39 100644
--- "a/\350\257\264\346\230\216.txt"
+++ "b/\350\257\264\346\230\216.txt"
@@ -1,15 +1,28 @@
-http://192.168.11.203:8090/sso/login
+
+--------------------------------------------------------
+http://192.168.11.203:8090/sso/login锛宎dmin锛宎dmin123
 http://192.168.11.203:8848/nacos锛宯Acos_!9#_admIn
 
+http://103.135.160.14:9029/prod-api/
+103.135.160.14:9029锛屾槧灏勫埌 192.168.11.206:8090
 
-
+--------------------------------------------------------
 docker-compose logs -f -n 50 se-system
 
 se-gateway-dev.yml锛屼慨鏀�
 --------------------------------------------------------
 uri: lb://se-auth 鈫� uri: lb://se-system
 
-uri: lb://se-file   鈫� uri: lb://se-system
+uri: lb://se-file 鈫� uri: lb://se-system
+
+uri: lb://se-gen  鈫� uri: lb://se-system
+
+uri: lb://se-job  鈫� uri: lb://se-system
+
+  # 涓嶆牎楠岀櫧鍚嶅崟
+  ignore:
+    whites:
+      - /system/index/*
 
 --------------------------------------------------------
 
@@ -34,4 +47,16 @@
   accessKey: minioadmin
   secretKey: minioadmin
   bucketName: test
+
+# 浠g爜鐢熸垚
+gen:
+  # 浣滆��
+  author: se
+  # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
+  packageName: com.se.system
+  # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸false
+  autoRemovePre: false
+  # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
+  tablePrefix: sys_
+
 --------------------------------------------------------

--
Gitblit v1.9.3