diff --git a/buildpackage/pom.xml b/buildpackage/pom.xml
index 5c949541..fea721b7 100644
--- a/buildpackage/pom.xml
+++ b/buildpackage/pom.xml
@@ -69,6 +69,12 @@
                 <profile.active>llg</profile.active>
             </properties>
         </profile>
+        <profile>
+            <id>zqtlocal</id> <!--曾庆拓-->
+            <properties>
+                <profile.active>zqtlocal</profile.active>
+            </properties>
+        </profile>
         <profile>
             <id>yuqh</id> <!--于群辉-->
             <properties>
diff --git a/buildpackage/src/main/resources/application-dev.yml b/buildpackage/src/main/resources/application-dev.yml
index 9156fac5..8dffa2d4 100644
--- a/buildpackage/src/main/resources/application-dev.yml
+++ b/buildpackage/src/main/resources/application-dev.yml
@@ -19,6 +19,8 @@ spring:
 savefile:
   #    文件保存路径
   path: /home/webservice/zt/file
+  pluginpath: D:/local/plugin/
+  tomcatpath: E:\apache-tomcat-9.0.27\webapps\kangarooDataCenterV3\WEB-INF\classes\
 cbs8:
   appId: 1P4AGrpz
   appSecret: 2c2369ae5dc04382844bbe3a5abf39e1bea9cd3a
diff --git a/buildpackage/src/main/resources/application-hclocal.yml b/buildpackage/src/main/resources/application-hclocal.yml
index 3e44c377..1ec327da 100644
--- a/buildpackage/src/main/resources/application-hclocal.yml
+++ b/buildpackage/src/main/resources/application-hclocal.yml
@@ -12,11 +12,11 @@ spring:
     dynamic:
       datasource:
         master:
-#          url: jdbc:mysql://hzya.ufyct.com:9096/businesscenternew?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
+#          url: jdbc:mysql://ufidahz.com.cn:9096/businesscenternew?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
 #          username: root
 #          password: bd993088e8a7c3dc5f44441617f9b4bf
 #          driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
-           url: jdbc:mysql://hzya.ufyct.com:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
+           url: jdbc:mysql://ufidahz.com.cn:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
            username: root
            password: 62e4295b615a30dbf3b8ee96f41c820b
            driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
@@ -24,4 +24,4 @@ savefile:
     #    文件保存路径
   path: D:\yongansystem\kangarooDataCenter\v3\logs
 zt:
-  url: http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface
\ No newline at end of file
+  url: http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface
diff --git a/buildpackage/src/main/resources/application-llg.yml b/buildpackage/src/main/resources/application-llg.yml
index 3b1faf81..0a16527c 100644
--- a/buildpackage/src/main/resources/application-llg.yml
+++ b/buildpackage/src/main/resources/application-llg.yml
@@ -10,10 +10,10 @@ logging:
 spring:
   data:
     mongodb:
-      host: 192.168.2.237
-      port: 27017
-      database: businesscenter
-      auto-index-creation: true
+#      host: 192.168.2.237
+#      port: 27017
+#      database: businesscenter
+#      auto-index-creation: true
 #      password: hzya1314
 #      username: hzya
   flyway:
diff --git a/buildpackage/src/main/resources/application-local.yml b/buildpackage/src/main/resources/application-local.yml
index 4fc3208a..66d151f2 100644
--- a/buildpackage/src/main/resources/application-local.yml
+++ b/buildpackage/src/main/resources/application-local.yml
@@ -12,7 +12,7 @@ spring:
     dynamic:
       datasource:
         master:
-          url: jdbc:mysql://hzya.ufyct.com:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
+          url: jdbc:mysql://ufidahz.com.cn:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
           username: root
           password: 62e4295b615a30dbf3b8ee96f41c820b
           driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
@@ -20,4 +20,4 @@ savefile:
     #    文件保存路径
   path: /Users/apple/Desktop/log/local
 zt:
-  url: http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface
\ No newline at end of file
+  url: http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface
diff --git a/buildpackage/src/main/resources/application-xel.yml b/buildpackage/src/main/resources/application-xel.yml
index 13b3782c..4802ae21 100644
--- a/buildpackage/src/main/resources/application-xel.yml
+++ b/buildpackage/src/main/resources/application-xel.yml
@@ -12,7 +12,7 @@ spring:
     dynamic:
       datasource:
         master:
-          url: jdbc:mysql://hzya.ufyct.com:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
+          url: jdbc:mysql://ufidahz.com.cn:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
           username: root
           password: 62e4295b615a30dbf3b8ee96f41c820b
           driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
@@ -32,4 +32,4 @@ cbs8:
   #电子回单下载临时存放位置
   elec_path: /Users/xiangerlin/Downloads/
 OA:
-  data_source_code: yc-test
\ No newline at end of file
+  data_source_code: yc-test
diff --git a/buildpackage/src/main/resources/application-yc.yml b/buildpackage/src/main/resources/application-yc.yml
index 5560efe8..b2e3e2cf 100644
--- a/buildpackage/src/main/resources/application-yc.yml
+++ b/buildpackage/src/main/resources/application-yc.yml
@@ -39,7 +39,7 @@
 #    dynamic:
 #      datasource:
 #        master:
-#          url: jdbc:mysql://hzya.ufyct.com:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
+#          url: jdbc:mysql://ufidahz.com.cn:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
 #          username: root
 #          password: 62e4295b615a30dbf3b8ee96f41c820b
 #          driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
@@ -67,7 +67,7 @@ spring:
         filters: stat,log4j2
       datasource:
         master:
-          url: jdbc:dm://hzya.ufyct.com:9040?schema=businesscenter&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&compatibleMode=oracle
+          url: jdbc:dm://ufidahz.com.cn:9040?schema=businesscenter&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&compatibleMode=oracle
           username: hzyazt
           password: 62e4295b615a30dbf3b8ee96f41c820b
           driver-class-name: dm.jdbc.driver.DmDriver
@@ -87,4 +87,4 @@ cbs8:
   #电子回单下载临时存放位置
   elec_path: /zt/elecfile
 OA:
-  data_source_code: yc_oa
\ No newline at end of file
+  data_source_code: yc_oa
diff --git a/buildpackage/src/main/resources/application-ydc.yml b/buildpackage/src/main/resources/application-ydc.yml
index 17399204..3038dda0 100644
--- a/buildpackage/src/main/resources/application-ydc.yml
+++ b/buildpackage/src/main/resources/application-ydc.yml
@@ -12,7 +12,7 @@ spring:
     dynamic:
       datasource:
         master:
-          url: jdbc:mysql://hzya.ufyct.com:9096/businesscenternew?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
+          url: jdbc:mysql://ufidahz.com.cn:9096/businesscenternew?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
           username: root
           password: bd993088e8a7c3dc5f44441617f9b4bf
           driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
diff --git a/buildpackage/src/main/resources/application-yuecheng.yml b/buildpackage/src/main/resources/application-yuecheng.yml
index c0c6c6d4..7e081ecb 100644
--- a/buildpackage/src/main/resources/application-yuecheng.yml
+++ b/buildpackage/src/main/resources/application-yuecheng.yml
@@ -12,7 +12,7 @@ spring:
     dynamic:
       datasource:
         master:
-          url: jdbc:mysql://hzya.ufyct.com:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
+          url: jdbc:mysql://ufidahz.com.cn:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
           username: root
           password: 62e4295b615a30dbf3b8ee96f41c820b
           driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
@@ -28,4 +28,4 @@ cbs8:
   # 这个私钥到时候上传到cbs,和下面到是同一对
   #ya_private_key: e1eacfdee9b8d4184437d5a2071e17ce31befc3d93395f9f05709ed562e8dc46
   ya_public_key: 044fa399d2223760f17b81b863cb482b009294c4516f8a605dea1475ec09e720eaa98468715e5ad509a592a0b426061551c5a3df236966c23253a7d894eac0dcde
-  cbs_public_key: 0469146F06BF3B01236E84632441E826F3067A6B93BC3839C836A06007869CD351FBBE388B51F742859388BBC1DE089923AAFBC69E448F15141DDF30EE6CE90185
\ No newline at end of file
+  cbs_public_key: 0469146F06BF3B01236E84632441E826F3067A6B93BC3839C836A06007869CD351FBBE388B51F742859388BBC1DE089923AAFBC69E448F15141DDF30EE6CE90185
diff --git a/buildpackage/src/main/resources/application-yuqh.yml b/buildpackage/src/main/resources/application-yuqh.yml
index b5209253..d114d224 100644
--- a/buildpackage/src/main/resources/application-yuqh.yml
+++ b/buildpackage/src/main/resources/application-yuqh.yml
@@ -12,7 +12,7 @@ spring:
     dynamic:
       datasource:
         master:
-          url: jdbc:mysql://hzya.ufyct.com:9096/businesscenternew?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
+          url: jdbc:mysql://ufidahz.com.cn:9096/businesscenternew?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
           username: root
           password: bd993088e8a7c3dc5f44441617f9b4bf
           driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
@@ -20,4 +20,4 @@ savefile:
     #    文件保存路径
   path: E:\yongansystem\log
 zt:
-  url: http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface
\ No newline at end of file
+  url: http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface
diff --git a/buildpackage/src/main/resources/application-zqtlocal.yml b/buildpackage/src/main/resources/application-zqtlocal.yml
new file mode 100644
index 00000000..a656bd59
--- /dev/null
+++ b/buildpackage/src/main/resources/application-zqtlocal.yml
@@ -0,0 +1,39 @@
+#######################zqtlocal环境#######################
+logging:
+  #日志级别 指定目录级别
+  level:
+    root: warn
+  encodings: UTF-8
+  file:
+    #    日志保存路径
+    path: D:/local/logs/
+spring:
+  datasource:
+    dynamic:
+      datasource:
+        master:
+          url: jdbc:mysql://ufidahz.com.cn:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
+          username: root
+          password: 62e4295b615a30dbf3b8ee96f41c820b
+          driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
+savefile:
+  #    文件保存路径
+  path: D:/local/upload/
+  pluginpath : D:/local/plugin/
+  tomcatpath: E:\apache-tomcat-9.0.27\webapps\kangarooDataCenterV3\WEB-INF\classes\
+cbs8:
+  appId: 1P4AGrpz
+  appSecret: 2c2369ae5dc04382844bbe3a5abf39e1bea9cd3a
+  url: https://cbs8-openapi-reprd.csuat.cmburl.cn
+  # 测试用这个 这个是银行给的,和下面的公钥不是一对密钥
+  ya_private_key: 83BA7EC821D35F4CB31FF9A51C1EFA520FC52AF828C2337F88E91CF119B07F44
+  # 这个私钥到时候上传到cbs,和下面到是同一对
+  #ya_private_key: e1eacfdee9b8d4184437d5a2071e17ce31befc3d93395f9f05709ed562e8dc46
+  ya_public_key: 044fa399d2223760f17b81b863cb482b009294c4516f8a605dea1475ec09e720eaa98468715e5ad509a592a0b426061551c5a3df236966c23253a7d894eac0dcde
+  cbs_public_key: 0469146F06BF3B01236E84632441E826
+  #电子回单下载临时存放位置
+  elec_path: /Users/xiangerlin/Downloads/
+OA:
+  data_source_code: yc_oa
+zt:
+  url: http://127.0.0.1:9082/kangarooDataCenterV3/entranceController/externalCallInterface
\ No newline at end of file
diff --git a/buildpackage/src/main/resources/application.yml b/buildpackage/src/main/resources/application.yml
index 19b59c47..7b481a9d 100644
--- a/buildpackage/src/main/resources/application.yml
+++ b/buildpackage/src/main/resources/application.yml
@@ -6,6 +6,8 @@ server:
   tomcat:
     uri-encoding: utf-8
 spring:
+  autoconfigure:
+    exclude: org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
   flyway:
     # 启动flyway migration, 默认为true
     enabled: true
@@ -123,4 +125,4 @@ jeecg :
     minio_pass: ??
     bucketName: ??
 data:
-  use: true
\ No newline at end of file
+  use: true
diff --git a/buildpackage/src/main/resources/dbSql/dj/V3.0.13__init_app_djzyOA.sql b/buildpackage/src/main/resources/dbSql/dj/V3.0.13__init_app_djzyOA.sql
index a7f5289d..34c80780 100644
--- a/buildpackage/src/main/resources/dbSql/dj/V3.0.13__init_app_djzyOA.sql
+++ b/buildpackage/src/main/resources/dbSql/dj/V3.0.13__init_app_djzyOA.sql
@@ -1,4 +1,4 @@
-INSERT INTO sys_application (id, app_logo, app_status, name, version_number, access_mode, affiliation_field, manufacturer, app_introduction, client_path, app_id, system_address, web_path, program_path, public_key, secret_key, interface_address, interface_status, app_type, db_status, sorts, org_id, sts, create_time, create_user_id, modify_time, modify_user_id) VALUES ('53936623a8bd451fb7f5fed09cb36fab', NULL, '1', '东进致远OA', '8.2', '[\"1\"]', '11', '致远', '越城区发展集团致远OA', 'http://hzya.ufyct.com:9955/', 800034, NULL, 'http://hzya.ufyct.com:9955/', 'http://hzya.ufyct.com:9955/', 'ZJYATW/MfYZX7zF0eAh4DJXbyTLwUtwSoSz5Y/o1ksAaN/dCe7eDIk+3zDUT+v578prj', '+5BUkLQh3iX3VHgEt5bE2IPh+ZeebGvDaEspsvVu739Ar6sFnwg+fpPod4t6XhoTj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=', 'http://115.239.174.22:9999', '1', '1', '1', 17, NULL, 'Y', '2024-07-16 10:15:14', '1', '2024-07-16 10:17:56', '1');
+INSERT INTO sys_application (id, app_logo, app_status, name, version_number, access_mode, affiliation_field, manufacturer, app_introduction, client_path, app_id, system_address, web_path, program_path, public_key, secret_key, interface_address, interface_status, app_type, db_status, sorts, org_id, sts, create_time, create_user_id, modify_time, modify_user_id) VALUES ('53936623a8bd451fb7f5fed09cb36fab', NULL, '1', '东进致远OA', '8.2', '[\"1\"]', '11', '致远', '越城区发展集团致远OA', 'http://ufidahz.com.cn:9955/', 800034, NULL, 'http://ufidahz.com.cn:9955/', 'http://ufidahz.com.cn:9955/', 'ZJYATW/MfYZX7zF0eAh4DJXbyTLwUtwSoSz5Y/o1ksAaN/dCe7eDIk+3zDUT+v578prj', '+5BUkLQh3iX3VHgEt5bE2IPh+ZeebGvDaEspsvVu739Ar6sFnwg+fpPod4t6XhoTj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=', 'http://115.239.174.22:9999', '1', '1', '1', 17, NULL, 'Y', '2024-07-16 10:15:14', '1', '2024-07-16 10:17:56', '1');
 
 INSERT INTO sys_application_api (id, api_code, api_path, api_status, app_id, catalogue_id, api_name, api_remark, need_Login, authentication_port, parameter_passing_mode, destination_address, request_coding, request_method, timeout_period, current_limiting, header_in, query_in, body_in_type, body_in, body_out, sorts, create_user_id, create_time, modify_user_id, modify_time, sts, org_id, bean_name, fun_name, extension_api, return_success_field, return_success_value, return_msg) VALUES ('23499f05d50b495d989208e124469eff', 8000340004, NULL, '1', '53936623a8bd451fb7f5fed09cb36fab', '33406ee83887421bb1cdeb728606dcbf', '按登录名取人员信息', '按登录名取人员信息', '2', NULL, '1', '/seeyon/rest/orgMember', '1', '2', '10000', '100', '[]', '[]', '1', '[{\"id\":\"c8620cd3-7ee3-47a9-8b1d-88d26f7c21d8\",\"parameterName\":\"body\",\"first\":true}]', '[]', 228, '1', '2024-07-16 10:15:14', '1', '2024-07-16 10:15:14', 'Y', NULL, NULL, NULL, '2', 'enabled', 'true', 'enabled');
 INSERT INTO sys_application_api (id, api_code, api_path, api_status, app_id, catalogue_id, api_name, api_remark, need_Login, authentication_port, parameter_passing_mode, destination_address, request_coding, request_method, timeout_period, current_limiting, header_in, query_in, body_in_type, body_in, body_out, sorts, create_user_id, create_time, modify_user_id, modify_time, sts, org_id, bean_name, fun_name, extension_api, return_success_field, return_success_value, return_msg) VALUES ('539a319b80224ce6a39106324bb68ef9', 8000340005, NULL, '1', '53936623a8bd451fb7f5fed09cb36fab', '81333abd92ac40d7b15b080d6d3750a9', '附件上传', '假的', '2', NULL, '1', '/seeyon/rest/attachment', '1', '1', '10000', '100', '[]', '[]', '1', '[{\"id\":\"03521015-0cf3-4b9f-b0d6-41d13b5578e4\",\"parameterName\":\"body\",\"first\":true}]', '[]', 235, '1', '2024-07-16 10:15:14', '1', '2024-07-16 10:15:14', 'Y', NULL, NULL, NULL, '1', '1', '1', '1');
diff --git a/buildpackage/src/main/resources/dbSql/sys/V3.0.8__init_app_szzt.sql b/buildpackage/src/main/resources/dbSql/sys/V3.0.8__init_app_szzt.sql
index 627a2751..2e264188 100644
--- a/buildpackage/src/main/resources/dbSql/sys/V3.0.8__init_app_szzt.sql
+++ b/buildpackage/src/main/resources/dbSql/sys/V3.0.8__init_app_szzt.sql
@@ -1,4 +1,4 @@
-INSERT INTO sys_application (id, app_logo, app_status, name, version_number, access_mode, affiliation_field, manufacturer, app_introduction, client_path, app_id, system_address, web_path, program_path, public_key, secret_key, interface_address, interface_status, app_type, db_status, sorts, org_id, sts, create_time, create_user_id, modify_time, modify_user_id) VALUES ('82bd4293fda94d6896217509f11b6c4c', '-7421991978796695038', '1', '数智中台', '1.0', '[\"1\"]', '1', '用安', '默认应用', NULL, 800004, NULL, NULL, NULL, 'ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj', 'fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=', 'http://hzya.ufyct.com:9067/', '1', '', '2', 6, NULL, 'Y', '2023-10-20 11:49:23', 'c796fd9ba4c9f5ff3cc2fa41a040e443', '2024-06-21 10:35:03', '1');
+INSERT INTO sys_application (id, app_logo, app_status, name, version_number, access_mode, affiliation_field, manufacturer, app_introduction, client_path, app_id, system_address, web_path, program_path, public_key, secret_key, interface_address, interface_status, app_type, db_status, sorts, org_id, sts, create_time, create_user_id, modify_time, modify_user_id) VALUES ('82bd4293fda94d6896217509f11b6c4c', '-7421991978796695038', '1', '数智中台', '1.0', '[\"1\"]', '1', '用安', '默认应用', NULL, 800004, NULL, NULL, NULL, 'ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj', 'fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=', 'http://ufidahz.com.cn:9067/', '1', '', '2', 6, NULL, 'Y', '2023-10-20 11:49:23', 'c796fd9ba4c9f5ff3cc2fa41a040e443', '2024-06-21 10:35:03', '1');
 
 INSERT INTO sys_application_api (id, api_code, api_path, api_status, app_id, catalogue_id, api_name, api_remark, need_Login, authentication_port, parameter_passing_mode, destination_address, request_coding, request_method, timeout_period, current_limiting, header_in, query_in, body_in_type, body_in, body_out, sorts, create_user_id, create_time, modify_user_id, modify_time, sts, org_id, bean_name, fun_name, extension_api, return_success_field, return_success_value, return_msg) VALUES ('01b8d8e2bc724e22a511afda7c12a610', 8000040010, NULL, '1', '82bd4293fda94d6896217509f11b6c4c', '56c766d53d9f4de2846a16b1383c5374', '客商删除', NULL, '2', NULL, '1', 'kangarooDataCenterV3/entranceController/platformInterface', '1', '1', '10000', '100', '[]', '[]', '1', '[{\"id\":\"a7be5a9e-62eb-47f2-ab86-72bcf75b0396\",\"parameterName\":\"body\",\"first\":true}]', '[]', 181, '1', '2024-04-26 10:20:30', '1', '2024-04-26 10:20:30', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO sys_application_api (id, api_code, api_path, api_status, app_id, catalogue_id, api_name, api_remark, need_Login, authentication_port, parameter_passing_mode, destination_address, request_coding, request_method, timeout_period, current_limiting, header_in, query_in, body_in_type, body_in, body_out, sorts, create_user_id, create_time, modify_user_id, modify_time, sts, org_id, bean_name, fun_name, extension_api, return_success_field, return_success_value, return_msg) VALUES ('0bddf53ab22c48d288384f3fa1b06c22', 8000040015, NULL, '1', '82bd4293fda94d6896217509f11b6c4c', '56c766d53d9f4de2846a16b1383c5374', '存货分类修改', NULL, '2', NULL, '1', 'kangarooDataCenterV3/entranceController/platformInterface', '1', '1', '10000', '100', '[]', '[]', '1', '[{\"id\":\"41255cc5-66cd-4d43-a21d-8d0f504e5e60\",\"parameterName\":\"body\",\"first\":true}]', '[]', 186, '1', '2024-04-28 13:56:06', '1', '2024-04-28 13:56:06', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
@@ -35,7 +35,7 @@ INSERT INTO sys_application_api_type (id, app_id, name, sorts, org_id, sts, crea
 INSERT INTO sys_application_api_type (id, app_id, name, sorts, org_id, sts, create_time, create_user_id, modify_time, modify_user_id) VALUES ('a15437331f7a4cb4895545742547d192', '82bd4293fda94d6896217509f11b6c4c', '档案对照', 52, NULL, 'Y', '2024-05-08 09:22:13', '1', '2024-05-08 09:22:13', '1');
 
 
-INSERT INTO sys_application_database (id, app_id, source_code, source_name, source_type, source_ip, source_port, login_name, password, db_name, service_name, db_status, sorts, create_user_id, create_time, modify_user_id, modify_time, sts, org_id) VALUES ('c11bfa04c7384bd98d3e08566130fc4b', '82bd4293fda94d6896217509f11b6c4c', 'oldData', 'V2数据源', '3', 'hzya.ufyct.com', '9096', 'root', 'bd993088e8a7c3dc5f44441617f9b4bf', 'businesscenter', NULL, '2', 1, '1', '2024-05-13 13:54:12', '1', '2024-06-21 10:35:03', 'Y', NULL);
+INSERT INTO sys_application_database (id, app_id, source_code, source_name, source_type, source_ip, source_port, login_name, password, db_name, service_name, db_status, sorts, create_user_id, create_time, modify_user_id, modify_time, sts, org_id) VALUES ('c11bfa04c7384bd98d3e08566130fc4b', '82bd4293fda94d6896217509f11b6c4c', 'oldData', 'V2数据源', '3', 'ufidahz.com.cn', '9096', 'root', 'bd993088e8a7c3dc5f44441617f9b4bf', 'businesscenter', NULL, '2', 1, '1', '2024-05-13 13:54:12', '1', '2024-06-21 10:35:03', 'Y', NULL);
 
 INSERT INTO sys_application_plugin (id, app_id, plugin_name, plugin_code, plugin_version, plugin_remark, release_date, plugin_status, sorts, create_user_id, create_time, modify_user_id, modify_time, sts, org_id) VALUES ('11fb9d8434c04660a88527cf097c579b', '82bd4293fda94d6896217509f11b6c4c', '测试定时任务', 'SysMessageManageLogPlugin', '1.0', '测试定时任务', '2024-05-01 00:00:00', '1', 3, '1', '2024-05-07 14:32:57', '1', '2024-05-07 14:32:57', 'Y', NULL);
 INSERT INTO sys_application_plugin (id, app_id, plugin_name, plugin_code, plugin_version, plugin_remark, release_date, plugin_status, sorts, create_user_id, create_time, modify_user_id, modify_time, sts, org_id) VALUES ('b7e0020d9ff7435196862bfa62d9ff40', '82bd4293fda94d6896217509f11b6c4c', '主数据抽取', 'MdmCustomerPlugin', '1', NULL, '2024-06-25 00:00:00', '1', 15, '1', '2024-06-25 14:45:47', '1', '2024-06-25 14:45:47', 'Y', NULL);
diff --git a/service/src/main/java/com/hzya/frame/excel/template/dao/IExcelTemplateDao.java b/service/src/main/java/com/hzya/frame/excel/template/dao/IExcelTemplateDao.java
new file mode 100644
index 00000000..0ba1ac03
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/template/dao/IExcelTemplateDao.java
@@ -0,0 +1,15 @@
+package com.hzya.frame.excel.template.dao;
+
+import com.hzya.frame.excel.template.entity.ExcelTemplateEntity;
+import com.hzya.frame.basedao.dao.IBaseDao; 
+
+/**
+ * excel模版表(excel_template: table)表数据库访问层
+ *
+ * @author makejava
+ * @since 2024-08-12 16:42:49
+ */
+public interface IExcelTemplateDao extends IBaseDao<ExcelTemplateEntity, String> {
+
+}
+
diff --git a/service/src/main/java/com/hzya/frame/excel/template/dao/impl/ExcelTemplateDaoImpl.java b/service/src/main/java/com/hzya/frame/excel/template/dao/impl/ExcelTemplateDaoImpl.java
new file mode 100644
index 00000000..2427d9cc
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/template/dao/impl/ExcelTemplateDaoImpl.java
@@ -0,0 +1,17 @@
+package com.hzya.frame.excel.template.dao.impl;
+
+import com.hzya.frame.excel.template.entity.ExcelTemplateEntity;
+import com.hzya.frame.excel.template.dao.IExcelTemplateDao;
+import org.springframework.stereotype.Repository;
+import com.hzya.frame.basedao.dao.MybatisGenericDao;
+/**
+ * excel模版表(ExcelTemplate)表数据库访问层
+ *
+ * @author makejava
+ * @since 2024-08-12 16:42:50
+ */
+@Repository(value = "ExcelTemplateDaoImpl")
+public class ExcelTemplateDaoImpl extends MybatisGenericDao<ExcelTemplateEntity, String> implements IExcelTemplateDao{
+ 
+}
+
diff --git a/service/src/main/java/com/hzya/frame/excel/template/entity/ExcelTemplateEntity.java b/service/src/main/java/com/hzya/frame/excel/template/entity/ExcelTemplateEntity.java
new file mode 100644
index 00000000..015df9bb
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/template/entity/ExcelTemplateEntity.java
@@ -0,0 +1,76 @@
+package com.hzya.frame.excel.template.entity;
+
+import java.util.Date;
+import com.hzya.frame.web.entity.BaseEntity;
+/**
+ * excel模版表(ExcelTemplate)实体类
+ *
+ * @author makejava
+ * @since 2024-08-12 16:42:50
+ */
+public class ExcelTemplateEntity extends BaseEntity {
+ 
+  /**  模版名称 */
+   private String templateName;
+  /**  应用id */
+   private String appId;
+  /**  模版编码 */
+   private String templateCode;
+  /**  绑定菜单 */
+   private String menuBind;
+  /**  菜单按钮 */
+   private String menuButton;
+  /**  公司id */
+   private String companyId;
+
+
+    public String getTemplateName() {
+        return templateName;
+    }
+
+    public void setTemplateName(String templateName) {
+        this.templateName = templateName;
+    }
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        this.appId = appId;
+    }
+
+    public String getTemplateCode() {
+        return templateCode;
+    }
+
+    public void setTemplateCode(String templateCode) {
+        this.templateCode = templateCode;
+    }
+
+    public String getMenuBind() {
+        return menuBind;
+    }
+
+    public void setMenuBind(String menuBind) {
+        this.menuBind = menuBind;
+    }
+
+    public String getMenuButton() {
+        return menuButton;
+    }
+
+    public void setMenuButton(String menuButton) {
+        this.menuButton = menuButton;
+    }
+
+    public String getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(String companyId) {
+        this.companyId = companyId;
+    }
+
+}
+
diff --git a/service/src/main/java/com/hzya/frame/excel/template/entity/ExcelTemplateEntity.xml b/service/src/main/java/com/hzya/frame/excel/template/entity/ExcelTemplateEntity.xml
new file mode 100644
index 00000000..91ab557a
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/template/entity/ExcelTemplateEntity.xml
@@ -0,0 +1,261 @@
+<?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="com.hzya.frame.excel.template.dao.impl.ExcelTemplateDaoImpl">
+
+    <resultMap id="get-ExcelTemplateEntity-result" type="com.hzya.frame.excel.template.entity.ExcelTemplateEntity" >
+       <result property="templateName" column="template_name" jdbcType="VARCHAR"/>
+           <result property="appId" column="app_id" jdbcType="VARCHAR"/>
+           <result property="templateCode" column="template_code" jdbcType="VARCHAR"/>
+           <result property="menuBind" column="menu_bind" jdbcType="VARCHAR"/>
+           <result property="menuButton" column="menu_button" jdbcType="VARCHAR"/>
+           <result property="sorts" column="sorts" jdbcType="INTEGER"/>
+           <result property="id" column="id" jdbcType="VARCHAR"/>
+           <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/>
+           <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+           <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/>
+           <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/>
+           <result property="org_id" column="org_id" jdbcType="VARCHAR"/>
+           <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+           <result property="sts" column="sts" jdbcType="VARCHAR"/>
+        </resultMap>
+    <!-- 查询的字段-->
+    <sql id = "ExcelTemplateEntity_Base_Column_List">
+        template_name
+       ,app_id 
+        ,template_code 
+        ,menu_bind 
+        ,menu_button 
+        ,sorts 
+        ,id 
+        ,create_user_id 
+        ,create_time 
+        ,modify_time 
+        ,modify_user_id 
+        ,org_id 
+        ,company_id 
+        ,sts 
+     </sql>
+
+    <!--通过ID获取数据 -->
+    <select id="entity_get" resultMap="get-ExcelTemplateEntity-result">
+        select
+        <include refid="ExcelTemplateEntity_Base_Column_List" />
+        from excel_template where sts = 'Y' and  id = #{id}
+    </select>
+ <!-- 查询 采用==查询 -->
+ <select id="entity_list_base" resultMap="get-ExcelTemplateEntity-result" parameterType = "com.hzya.frame.excel.template.entity.ExcelTemplateEntity">
+    select
+    <include refid="ExcelTemplateEntity_Base_Column_List" />
+    from excel_template
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="templateName != null and templateName != ''"> and template_name = #{templateName} </if>
+            <if test="appId != null and appId != ''"> and app_id = #{appId} </if>
+            <if test="templateCode != null and templateCode != ''"> and template_code = #{templateCode} </if>
+            <if test="menuBind != null and menuBind != ''"> and menu_bind = #{menuBind} </if>
+            <if test="menuButton != null and menuButton != ''"> and menu_button = #{menuButton} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if>
+            <if test="create_time != null"> and create_time = #{create_time} </if>
+            <if test="modify_time != null"> and modify_time = #{modify_time} </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if>
+            <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if>
+            <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+    
+<!-- 查询符合条件的数量 -->
+<select id="entity_count" resultType="Integer" parameterType = "com.hzya.frame.excel.template.entity.ExcelTemplateEntity">
+        select  count(1)   from excel_template
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="templateName != null and templateName != ''"> and template_name = #{templateName} </if>
+            <if test="appId != null and appId != ''"> and app_id = #{appId} </if>
+            <if test="templateCode != null and templateCode != ''"> and template_code = #{templateCode} </if>
+            <if test="menuBind != null and menuBind != ''"> and menu_bind = #{menuBind} </if>
+            <if test="menuButton != null and menuButton != ''"> and menu_button = #{menuButton} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if>
+            <if test="create_time != null"> and create_time = #{create_time} </if>
+            <if test="modify_time != null"> and modify_time = #{modify_time} </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if>
+            <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if>
+            <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if>
+    </select>
+
+    <!-- 分页查询列表 采用like格式 -->
+<select id="entity_list_like" resultMap="get-ExcelTemplateEntity-result" parameterType = "com.hzya.frame.excel.template.entity.ExcelTemplateEntity">
+    select
+    <include refid="ExcelTemplateEntity_Base_Column_List" />
+    from excel_template
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="templateName != null and templateName != ''"> and template_name like concat('%',#{templateName},'%') </if>
+            <if test="appId != null and appId != ''"> and app_id like concat('%',#{appId},'%') </if>
+            <if test="templateCode != null and templateCode != ''"> and template_code like concat('%',#{templateCode},'%') </if>
+            <if test="menuBind != null and menuBind != ''"> and menu_bind like concat('%',#{menuBind},'%') </if>
+            <if test="menuButton != null and menuButton != ''"> and menu_button like concat('%',#{menuButton},'%') </if>
+            <if test="sorts != null"> and sorts like concat('%',#{sorts},'%') </if>
+            <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if>
+            <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if>
+            <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if>
+            <if test="org_id != null and org_id != ''"> and org_id like concat('%',#{org_id},'%') </if>
+            <if test="companyId != null and companyId != ''"> and company_id like concat('%',#{companyId},'%') </if>
+            <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+
+<!-- 查询列表 字段采用or格式 -->
+<select id="ExcelTemplateentity_list_or" resultMap="get-ExcelTemplateEntity-result" parameterType = "com.hzya.frame.excel.template.entity.ExcelTemplateEntity">
+    select
+    <include refid="ExcelTemplateEntity_Base_Column_List" />
+    from excel_template
+    <trim prefix="where" prefixOverrides="and"> 
+         <if test="templateName != null and templateName != ''"> or template_name = #{templateName} </if>
+             <if test="appId != null and appId != ''"> or app_id = #{appId} </if>
+             <if test="templateCode != null and templateCode != ''"> or template_code = #{templateCode} </if>
+             <if test="menuBind != null and menuBind != ''"> or menu_bind = #{menuBind} </if>
+             <if test="menuButton != null and menuButton != ''"> or menu_button = #{menuButton} </if>
+             <if test="sorts != null"> or sorts = #{sorts} </if>
+             <if test="id != null and id != ''"> or id = #{id} </if>
+             <if test="create_user_id != null and create_user_id != ''"> or create_user_id = #{create_user_id} </if>
+              <if test="create_time != null"> or create_time = #{create_time} </if>
+              <if test="modify_time != null"> or modify_time = #{modify_time} </if>
+              <if test="modify_user_id != null and modify_user_id != ''"> or modify_user_id = #{modify_user_id} </if>
+              <if test="org_id != null and org_id != ''"> or org_id = #{org_id} </if>
+              <if test="companyId != null and companyId != ''"> or company_id = #{companyId} </if>
+             <if test="sts != null and sts != ''"> or sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString()  "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+
+<!--新增所有列-->
+<insert id="entity_insert" parameterType = "com.hzya.frame.excel.template.entity.ExcelTemplateEntity" keyProperty="sorts" useGeneratedKeys="true">
+    insert into excel_template(
+  <trim suffix="" suffixOverrides=",">
+       <if test="templateName != null and templateName != ''"> template_name , </if>
+            <if test="appId != null and appId != ''"> app_id , </if>
+            <if test="templateCode != null and templateCode != ''"> template_code , </if>
+            <if test="menuBind != null and menuBind != ''"> menu_bind , </if>
+            <if test="menuButton != null and menuButton != ''"> menu_button , </if>
+            <if test="sorts != null"> sorts , </if>
+            <if test="id != null and id != ''"> id , </if>
+            <if test="create_user_id != null and create_user_id != ''"> create_user_id , </if>
+            <if test="create_time != null"> create_time , </if>
+            <if test="modify_time != null"> modify_time , </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id , </if>
+            <if test="org_id != null and org_id != ''"> org_id , </if>
+            <if test="companyId != null and companyId != ''"> company_id , </if>
+            <if test="sts != null and sts != ''"> sts , </if>
+    <if test="sts == null ">sts,</if>
+  </trim>
+  )values(
+ <trim suffix="" suffixOverrides=",">
+       <if test="templateName != null and templateName != ''"> #{templateName} ,</if>
+            <if test="appId != null and appId != ''"> #{appId} ,</if>
+            <if test="templateCode != null and templateCode != ''"> #{templateCode} ,</if>
+            <if test="menuBind != null and menuBind != ''"> #{menuBind} ,</if>
+            <if test="menuButton != null and menuButton != ''"> #{menuButton} ,</if>
+            <if test="sorts != null"> #{sorts} ,</if>
+            <if test="id != null and id != ''"> #{id} ,</if>
+            <if test="create_user_id != null and create_user_id != ''"> #{create_user_id} ,</if>
+            <if test="create_time != null"> #{create_time} ,</if>
+            <if test="modify_time != null"> #{modify_time} ,</if>
+            <if test="modify_user_id != null and modify_user_id != ''"> #{modify_user_id} ,</if>
+            <if test="org_id != null and org_id != ''"> #{org_id} ,</if>
+            <if test="companyId != null and companyId != ''"> #{companyId} ,</if>
+            <if test="sts != null and sts != ''"> #{sts} ,</if>
+    <if test="sts == null ">'Y',</if>
+  </trim>
+  )  
+</insert>
+<!-- 批量新增 -->
+<insert id="entityInsertBatch" keyProperty="sorts" useGeneratedKeys="true">
+  insert into excel_template(template_name, app_id, template_code, menu_bind, menu_button, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts,  sts) 
+    values
+    <foreach collection="entities" item="entity" separator=",">
+    (#{entity.templateName},#{entity.appId},#{entity.templateCode},#{entity.menuBind},#{entity.menuButton},#{entity.create_user_id},#{entity.create_time},#{entity.modify_time},#{entity.modify_user_id},#{entity.org_id},#{entity.companyId},#{entity.sts}, 'Y')
+    </foreach>
+</insert>
+<!-- 批量新增或者修改-->
+<insert id="entityInsertOrUpdateBatch" keyProperty="sorts" useGeneratedKeys="true">
+    insert into excel_template(template_name, app_id, template_code, menu_bind, menu_button, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts)
+    values
+    <foreach collection="entities" item="entity" separator=",">
+    (#{entity.templateName},#{entity.appId},#{entity.templateCode},#{entity.menuBind},#{entity.menuButton},#{entity.create_user_id},#{entity.create_time},#{entity.modify_time},#{entity.modify_user_id},#{entity.org_id},#{entity.companyId},#{entity.sts})
+    </foreach>
+    on duplicate key update
+    template_name = values(template_name),
+    app_id = values(app_id),
+    template_code = values(template_code),
+    menu_bind = values(menu_bind),
+    menu_button = values(menu_button),
+    create_user_id = values(create_user_id),
+    create_time = values(create_time),
+    modify_time = values(modify_time),
+    modify_user_id = values(modify_user_id),
+    org_id = values(org_id),
+    company_id = values(company_id),
+    sts = values(sts)</insert>
+<!--通过主键修改方法-->
+<update id="entity_update" parameterType = "com.hzya.frame.excel.template.entity.ExcelTemplateEntity" >
+update excel_template  set
+<trim suffix="" suffixOverrides=",">
+  <if test="templateName != null and templateName != ''"> template_name = #{templateName},</if>
+  <if test="appId != null and appId != ''"> app_id = #{appId},</if>
+  <if test="templateCode != null and templateCode != ''"> template_code = #{templateCode},</if>
+  <if test="menuBind != null and menuBind != ''"> menu_bind = #{menuBind},</if>
+  <if test="menuButton != null and menuButton != ''"> menu_button = #{menuButton},</if>
+  <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if>
+    <if test="create_time != null"> create_time = #{create_time},</if>
+    <if test="modify_time != null"> modify_time = #{modify_time},</if>
+    <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if>
+    <if test="org_id != null and org_id != ''"> org_id = #{org_id},</if>
+    <if test="companyId != null and companyId != ''"> company_id = #{companyId},</if>
+  <if test="sts != null and sts != ''"> sts = #{sts},</if>
+</trim>
+where sorts = #{sorts}
+</update>
+<!-- 逻辑删除 -->
+<update id="entity_logicDelete" parameterType = "com.hzya.frame.excel.template.entity.ExcelTemplateEntity" >
+update excel_template  set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id}
+where sorts = #{sorts}
+</update>
+<!-- 多条件逻辑删除 -->
+<update id="entity_logicDelete_Multi_Condition" parameterType = "com.hzya.frame.excel.template.entity.ExcelTemplateEntity" >
+update excel_template  set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id}
+ <trim prefix="where" prefixOverrides="and"> 
+        <if test="templateName != null and templateName != ''"> and template_name = #{templateName} </if>
+            <if test="appId != null and appId != ''"> and app_id = #{appId} </if>
+            <if test="templateCode != null and templateCode != ''"> and template_code = #{templateCode} </if>
+            <if test="menuBind != null and menuBind != ''"> and menu_bind = #{menuBind} </if>
+            <if test="menuButton != null and menuButton != ''"> and menu_button = #{menuButton} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+                                                                             <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+</update>
+<!--通过主键删除-->
+<delete id="entity_delete">
+    delete from excel_template where sorts = #{sorts}
+</delete>
+
+</mapper>
+
diff --git a/service/src/main/java/com/hzya/frame/excel/template/service/IExcelTemplateService.java b/service/src/main/java/com/hzya/frame/excel/template/service/IExcelTemplateService.java
new file mode 100644
index 00000000..ad8671d1
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/template/service/IExcelTemplateService.java
@@ -0,0 +1,12 @@
+package com.hzya.frame.excel.template.service;
+
+import com.hzya.frame.excel.template.entity.ExcelTemplateEntity;
+import com.hzya.frame.basedao.service.IBaseService;
+/**
+ * excel模版表(ExcelTemplate)表服务接口
+ *
+ * @author makejava
+ * @since 2024-08-12 16:42:50
+ */
+public interface IExcelTemplateService extends IBaseService<ExcelTemplateEntity, String>{
+}
diff --git a/service/src/main/java/com/hzya/frame/excel/template/service/impl/ExcelTemplateServiceImpl.java b/service/src/main/java/com/hzya/frame/excel/template/service/impl/ExcelTemplateServiceImpl.java
new file mode 100644
index 00000000..f73a486c
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/template/service/impl/ExcelTemplateServiceImpl.java
@@ -0,0 +1,26 @@
+package com.hzya.frame.excel.template.service.impl;
+
+import com.hzya.frame.excel.template.entity.ExcelTemplateEntity;
+import com.hzya.frame.excel.template.dao.IExcelTemplateDao;
+import com.hzya.frame.excel.template.service.IExcelTemplateService;
+import org.springframework.stereotype.Service; 
+import org.springframework.beans.factory.annotation.Autowired;
+import javax.annotation.Resource;
+import com.hzya.frame.basedao.service.impl.BaseService;
+/**
+ * excel模版表(ExcelTemplate)表服务实现类
+ *
+ * @author makejava
+ * @since 2024-08-12 16:42:50
+ */
+@Service(value = "excelTemplateService")
+public class ExcelTemplateServiceImpl extends BaseService<ExcelTemplateEntity, String> implements IExcelTemplateService {
+     
+    private IExcelTemplateDao excelTemplateDao;
+    
+    @Autowired
+	public void setExcelTemplateDao(IExcelTemplateDao dao) {
+		this.excelTemplateDao = dao;
+		this.dao = dao;
+	}
+}
diff --git a/service/src/main/java/com/hzya/frame/excel/templateConfig/dao/IExcelTemplateConfigDao.java b/service/src/main/java/com/hzya/frame/excel/templateConfig/dao/IExcelTemplateConfigDao.java
new file mode 100644
index 00000000..ef72b230
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/templateConfig/dao/IExcelTemplateConfigDao.java
@@ -0,0 +1,15 @@
+package com.hzya.frame.excel.templateConfig.dao;
+
+import com.hzya.frame.excel.templateConfig.entity.ExcelTemplateConfigEntity;
+import com.hzya.frame.basedao.dao.IBaseDao; 
+
+/**
+ * excel模版配置表(excel_template_config: table)表数据库访问层
+ *
+ * @author makejava
+ * @since 2024-08-12 16:43:38
+ */
+public interface IExcelTemplateConfigDao extends IBaseDao<ExcelTemplateConfigEntity, String> {
+
+}
+
diff --git a/service/src/main/java/com/hzya/frame/excel/templateConfig/dao/impl/ExcelTemplateConfigDaoImpl.java b/service/src/main/java/com/hzya/frame/excel/templateConfig/dao/impl/ExcelTemplateConfigDaoImpl.java
new file mode 100644
index 00000000..ea9afd4e
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/templateConfig/dao/impl/ExcelTemplateConfigDaoImpl.java
@@ -0,0 +1,17 @@
+package com.hzya.frame.excel.templateConfig.dao.impl;
+
+import com.hzya.frame.excel.templateConfig.entity.ExcelTemplateConfigEntity;
+import com.hzya.frame.excel.templateConfig.dao.IExcelTemplateConfigDao;
+import org.springframework.stereotype.Repository;
+import com.hzya.frame.basedao.dao.MybatisGenericDao;
+/**
+ * excel模版配置表(ExcelTemplateConfig)表数据库访问层
+ *
+ * @author makejava
+ * @since 2024-08-12 16:43:38
+ */
+@Repository(value = "ExcelTemplateConfigDaoImpl")
+public class ExcelTemplateConfigDaoImpl extends MybatisGenericDao<ExcelTemplateConfigEntity, String> implements IExcelTemplateConfigDao{
+ 
+}
+
diff --git a/service/src/main/java/com/hzya/frame/excel/templateConfig/entity/ExcelTemplateConfigEntity.java b/service/src/main/java/com/hzya/frame/excel/templateConfig/entity/ExcelTemplateConfigEntity.java
new file mode 100644
index 00000000..f75acdab
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/templateConfig/entity/ExcelTemplateConfigEntity.java
@@ -0,0 +1,66 @@
+package com.hzya.frame.excel.templateConfig.entity;
+
+import java.util.Date;
+import com.hzya.frame.web.entity.BaseEntity;
+/**
+ * excel模版配置表(ExcelTemplateConfig)实体类
+ *
+ * @author makejava
+ * @since 2024-08-12 16:43:38
+ */
+public class ExcelTemplateConfigEntity extends BaseEntity {
+ 
+  /**  模版id */
+   private String templateId;
+  /**  类型(数据库表/语句) */
+   private String type;
+  /**  表类型(主表/明细) */
+   private String tableType;
+  /**  数据字典id */
+   private String dataDictionaryId;
+  /**  公司id */
+   private String companyId;
+
+
+    public String getTemplateId() {
+        return templateId;
+    }
+
+    public void setTemplateId(String templateId) {
+        this.templateId = templateId;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getTableType() {
+        return tableType;
+    }
+
+    public void setTableType(String tableType) {
+        this.tableType = tableType;
+    }
+
+    public String getDataDictionaryId() {
+        return dataDictionaryId;
+    }
+
+    public void setDataDictionaryId(String dataDictionaryId) {
+        this.dataDictionaryId = dataDictionaryId;
+    }
+
+    public String getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(String companyId) {
+        this.companyId = companyId;
+    }
+
+}
+
diff --git a/service/src/main/java/com/hzya/frame/excel/templateConfig/entity/ExcelTemplateConfigEntity.xml b/service/src/main/java/com/hzya/frame/excel/templateConfig/entity/ExcelTemplateConfigEntity.xml
new file mode 100644
index 00000000..40f7605f
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/templateConfig/entity/ExcelTemplateConfigEntity.xml
@@ -0,0 +1,243 @@
+<?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="com.hzya.frame.excel.templateConfig.dao.impl.ExcelTemplateConfigDaoImpl">
+
+    <resultMap id="get-ExcelTemplateConfigEntity-result" type="com.hzya.frame.excel.templateConfig.entity.ExcelTemplateConfigEntity" >
+       <result property="templateId" column="template_id" jdbcType="VARCHAR"/>
+           <result property="type" column="type" jdbcType="VARCHAR"/>
+           <result property="tableType" column="table_type" jdbcType="VARCHAR"/>
+           <result property="dataDictionaryId" column="data_dictionary_id" jdbcType="VARCHAR"/>
+           <result property="sorts" column="sorts" jdbcType="INTEGER"/>
+           <result property="id" column="id" jdbcType="VARCHAR"/>
+           <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/>
+           <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+           <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/>
+           <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/>
+           <result property="org_id" column="org_id" jdbcType="VARCHAR"/>
+           <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+           <result property="sts" column="sts" jdbcType="VARCHAR"/>
+        </resultMap>
+    <!-- 查询的字段-->
+    <sql id = "ExcelTemplateConfigEntity_Base_Column_List">
+        template_id
+       ,type 
+        ,table_type 
+        ,data_dictionary_id 
+        ,sorts 
+        ,id 
+        ,create_user_id 
+        ,create_time 
+        ,modify_time 
+        ,modify_user_id 
+        ,org_id 
+        ,company_id 
+        ,sts 
+     </sql>
+ <!-- 查询 采用==查询 -->
+ <select id="entity_list_base" resultMap="get-ExcelTemplateConfigEntity-result" parameterType = "com.hzya.frame.excel.templateConfig.entity.ExcelTemplateConfigEntity">
+    select
+    <include refid="ExcelTemplateConfigEntity_Base_Column_List" />
+    from excel_template_config
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="templateId != null and templateId != ''"> and template_id = #{templateId} </if>
+            <if test="type != null and type != ''"> and type = #{type} </if>
+            <if test="tableType != null and tableType != ''"> and table_type = #{tableType} </if>
+            <if test="dataDictionaryId != null and dataDictionaryId != ''"> and data_dictionary_id = #{dataDictionaryId} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if>
+            <if test="create_time != null"> and create_time = #{create_time} </if>
+            <if test="modify_time != null"> and modify_time = #{modify_time} </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if>
+            <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if>
+            <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+    
+<!-- 查询符合条件的数量 -->
+<select id="entity_count" resultType="Integer" parameterType = "com.hzya.frame.excel.templateConfig.entity.ExcelTemplateConfigEntity">
+        select  count(1)   from excel_template_config
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="templateId != null and templateId != ''"> and template_id = #{templateId} </if>
+            <if test="type != null and type != ''"> and type = #{type} </if>
+            <if test="tableType != null and tableType != ''"> and table_type = #{tableType} </if>
+            <if test="dataDictionaryId != null and dataDictionaryId != ''"> and data_dictionary_id = #{dataDictionaryId} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if>
+            <if test="create_time != null"> and create_time = #{create_time} </if>
+            <if test="modify_time != null"> and modify_time = #{modify_time} </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if>
+            <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if>
+            <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if>
+    </select>
+
+    <!-- 分页查询列表 采用like格式 -->
+<select id="entity_list_like" resultMap="get-ExcelTemplateConfigEntity-result" parameterType = "com.hzya.frame.excel.templateConfig.entity.ExcelTemplateConfigEntity">
+    select
+    <include refid="ExcelTemplateConfigEntity_Base_Column_List" />
+    from excel_template_config
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="templateId != null and templateId != ''"> and template_id like concat('%',#{templateId},'%') </if>
+            <if test="type != null and type != ''"> and type like concat('%',#{type},'%') </if>
+            <if test="tableType != null and tableType != ''"> and table_type like concat('%',#{tableType},'%') </if>
+            <if test="dataDictionaryId != null and dataDictionaryId != ''"> and data_dictionary_id like concat('%',#{dataDictionaryId},'%') </if>
+            <if test="sorts != null"> and sorts like concat('%',#{sorts},'%') </if>
+            <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if>
+            <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if>
+            <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if>
+            <if test="org_id != null and org_id != ''"> and org_id like concat('%',#{org_id},'%') </if>
+            <if test="companyId != null and companyId != ''"> and company_id like concat('%',#{companyId},'%') </if>
+            <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+
+<!-- 查询列表 字段采用or格式 -->
+<select id="ExcelTemplateConfigentity_list_or" resultMap="get-ExcelTemplateConfigEntity-result" parameterType = "com.hzya.frame.excel.templateConfig.entity.ExcelTemplateConfigEntity">
+    select
+    <include refid="ExcelTemplateConfigEntity_Base_Column_List" />
+    from excel_template_config
+    <trim prefix="where" prefixOverrides="and"> 
+         <if test="templateId != null and templateId != ''"> or template_id = #{templateId} </if>
+             <if test="type != null and type != ''"> or type = #{type} </if>
+             <if test="tableType != null and tableType != ''"> or table_type = #{tableType} </if>
+             <if test="dataDictionaryId != null and dataDictionaryId != ''"> or data_dictionary_id = #{dataDictionaryId} </if>
+             <if test="sorts != null"> or sorts = #{sorts} </if>
+             <if test="id != null and id != ''"> or id = #{id} </if>
+             <if test="create_user_id != null and create_user_id != ''"> or create_user_id = #{create_user_id} </if>
+              <if test="create_time != null"> or create_time = #{create_time} </if>
+              <if test="modify_time != null"> or modify_time = #{modify_time} </if>
+              <if test="modify_user_id != null and modify_user_id != ''"> or modify_user_id = #{modify_user_id} </if>
+              <if test="org_id != null and org_id != ''"> or org_id = #{org_id} </if>
+              <if test="companyId != null and companyId != ''"> or company_id = #{companyId} </if>
+             <if test="sts != null and sts != ''"> or sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString()  "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+
+<!--新增所有列-->
+<insert id="entity_insert" parameterType = "com.hzya.frame.excel.templateConfig.entity.ExcelTemplateConfigEntity" keyProperty="sorts" useGeneratedKeys="true">
+    insert into excel_template_config(
+  <trim suffix="" suffixOverrides=",">
+       <if test="templateId != null and templateId != ''"> template_id , </if>
+            <if test="type != null and type != ''"> type , </if>
+            <if test="tableType != null and tableType != ''"> table_type , </if>
+            <if test="dataDictionaryId != null and dataDictionaryId != ''"> data_dictionary_id , </if>
+            <if test="sorts != null"> sorts , </if>
+            <if test="id != null and id != ''"> id , </if>
+            <if test="create_user_id != null and create_user_id != ''"> create_user_id , </if>
+            <if test="create_time != null"> create_time , </if>
+            <if test="modify_time != null"> modify_time , </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id , </if>
+            <if test="org_id != null and org_id != ''"> org_id , </if>
+            <if test="companyId != null and companyId != ''"> company_id , </if>
+            <if test="sts != null and sts != ''"> sts , </if>
+    <if test="sts == null ">sts,</if>
+  </trim>
+  )values(
+ <trim suffix="" suffixOverrides=",">
+       <if test="templateId != null and templateId != ''"> #{templateId} ,</if>
+            <if test="type != null and type != ''"> #{type} ,</if>
+            <if test="tableType != null and tableType != ''"> #{tableType} ,</if>
+            <if test="dataDictionaryId != null and dataDictionaryId != ''"> #{dataDictionaryId} ,</if>
+            <if test="sorts != null"> #{sorts} ,</if>
+            <if test="id != null and id != ''"> #{id} ,</if>
+            <if test="create_user_id != null and create_user_id != ''"> #{create_user_id} ,</if>
+            <if test="create_time != null"> #{create_time} ,</if>
+            <if test="modify_time != null"> #{modify_time} ,</if>
+            <if test="modify_user_id != null and modify_user_id != ''"> #{modify_user_id} ,</if>
+            <if test="org_id != null and org_id != ''"> #{org_id} ,</if>
+            <if test="companyId != null and companyId != ''"> #{companyId} ,</if>
+            <if test="sts != null and sts != ''"> #{sts} ,</if>
+    <if test="sts == null ">'Y',</if>
+  </trim>
+  )  
+</insert>
+<!-- 批量新增 -->
+<insert id="entityInsertBatch" keyProperty="sorts" useGeneratedKeys="true">
+  insert into excel_template_config(template_id, type, table_type, data_dictionary_id, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts,  sts) 
+    values
+    <foreach collection="entities" item="entity" separator=",">
+    (#{entity.templateId},#{entity.type},#{entity.tableType},#{entity.dataDictionaryId},#{entity.create_user_id},#{entity.create_time},#{entity.modify_time},#{entity.modify_user_id},#{entity.org_id},#{entity.companyId},#{entity.sts}, 'Y')
+    </foreach>
+</insert>
+<!-- 批量新增或者修改-->
+<insert id="entityInsertOrUpdateBatch" keyProperty="sorts" useGeneratedKeys="true">
+    insert into excel_template_config(template_id, type, table_type, data_dictionary_id, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts)
+    values
+    <foreach collection="entities" item="entity" separator=",">
+    (#{entity.templateId},#{entity.type},#{entity.tableType},#{entity.dataDictionaryId},#{entity.create_user_id},#{entity.create_time},#{entity.modify_time},#{entity.modify_user_id},#{entity.org_id},#{entity.companyId},#{entity.sts})
+    </foreach>
+    on duplicate key update
+    template_id = values(template_id),
+    type = values(type),
+    table_type = values(table_type),
+    data_dictionary_id = values(data_dictionary_id),
+    create_user_id = values(create_user_id),
+    create_time = values(create_time),
+    modify_time = values(modify_time),
+    modify_user_id = values(modify_user_id),
+    org_id = values(org_id),
+    company_id = values(company_id),
+    sts = values(sts)</insert>
+<!--通过主键修改方法-->
+<update id="entity_update" parameterType = "com.hzya.frame.excel.templateConfig.entity.ExcelTemplateConfigEntity" >
+update excel_template_config  set
+<trim suffix="" suffixOverrides=",">
+  <if test="templateId != null and templateId != ''"> template_id = #{templateId},</if>
+  <if test="type != null and type != ''"> type = #{type},</if>
+  <if test="tableType != null and tableType != ''"> table_type = #{tableType},</if>
+  <if test="dataDictionaryId != null and dataDictionaryId != ''"> data_dictionary_id = #{dataDictionaryId},</if>
+  <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if>
+    <if test="create_time != null"> create_time = #{create_time},</if>
+    <if test="modify_time != null"> modify_time = #{modify_time},</if>
+    <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if>
+    <if test="org_id != null and org_id != ''"> org_id = #{org_id},</if>
+    <if test="companyId != null and companyId != ''"> company_id = #{companyId},</if>
+  <if test="sts != null and sts != ''"> sts = #{sts},</if>
+</trim>
+where sorts = #{sorts}
+</update>
+<!-- 逻辑删除 -->
+<update id="entity_logicDelete" parameterType = "com.hzya.frame.excel.templateConfig.entity.ExcelTemplateConfigEntity" >
+update excel_template_config  set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id}
+where sorts = #{sorts}
+</update>
+<!-- 多条件逻辑删除 -->
+<update id="entity_logicDelete_Multi_Condition" parameterType = "com.hzya.frame.excel.templateConfig.entity.ExcelTemplateConfigEntity" >
+update excel_template_config  set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id}
+ <trim prefix="where" prefixOverrides="and"> 
+        <if test="templateId != null and templateId != ''"> and template_id = #{templateId} </if>
+            <if test="type != null and type != ''"> and type = #{type} </if>
+            <if test="tableType != null and tableType != ''"> and table_type = #{tableType} </if>
+            <if test="dataDictionaryId != null and dataDictionaryId != ''"> and data_dictionary_id = #{dataDictionaryId} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+                                                                             <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+</update>
+<!--通过主键删除-->
+<delete id="entity_delete">
+    delete from excel_template_config where sorts = #{sorts}
+</delete>
+
+</mapper>
+
diff --git a/service/src/main/java/com/hzya/frame/excel/templateConfig/service/IExcelTemplateConfigService.java b/service/src/main/java/com/hzya/frame/excel/templateConfig/service/IExcelTemplateConfigService.java
new file mode 100644
index 00000000..2f690a33
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/templateConfig/service/IExcelTemplateConfigService.java
@@ -0,0 +1,12 @@
+package com.hzya.frame.excel.templateConfig.service;
+
+import com.hzya.frame.excel.templateConfig.entity.ExcelTemplateConfigEntity;
+import com.hzya.frame.basedao.service.IBaseService;
+/**
+ * excel模版配置表(ExcelTemplateConfig)表服务接口
+ *
+ * @author makejava
+ * @since 2024-08-12 16:43:38
+ */
+public interface IExcelTemplateConfigService extends IBaseService<ExcelTemplateConfigEntity, String>{
+}
diff --git a/service/src/main/java/com/hzya/frame/excel/templateConfig/service/impl/ExcelTemplateConfigServiceImpl.java b/service/src/main/java/com/hzya/frame/excel/templateConfig/service/impl/ExcelTemplateConfigServiceImpl.java
new file mode 100644
index 00000000..72147b38
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/templateConfig/service/impl/ExcelTemplateConfigServiceImpl.java
@@ -0,0 +1,26 @@
+package com.hzya.frame.excel.templateConfig.service.impl;
+
+import com.hzya.frame.excel.templateConfig.entity.ExcelTemplateConfigEntity;
+import com.hzya.frame.excel.templateConfig.dao.IExcelTemplateConfigDao;
+import com.hzya.frame.excel.templateConfig.service.IExcelTemplateConfigService;
+import org.springframework.stereotype.Service; 
+import org.springframework.beans.factory.annotation.Autowired;
+import javax.annotation.Resource;
+import com.hzya.frame.basedao.service.impl.BaseService;
+/**
+ * excel模版配置表(ExcelTemplateConfig)表服务实现类
+ *
+ * @author makejava
+ * @since 2024-08-12 16:43:38
+ */
+@Service(value = "excelTemplateConfigService")
+public class ExcelTemplateConfigServiceImpl extends BaseService<ExcelTemplateConfigEntity, String> implements IExcelTemplateConfigService {
+     
+    private IExcelTemplateConfigDao excelTemplateConfigDao;
+    
+    @Autowired
+	public void setExcelTemplateConfigDao(IExcelTemplateConfigDao dao) {
+		this.excelTemplateConfigDao = dao;
+		this.dao = dao;
+	}
+}
diff --git a/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/dao/IExcelTemplateConfigDetailDao.java b/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/dao/IExcelTemplateConfigDetailDao.java
new file mode 100644
index 00000000..ade61d52
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/dao/IExcelTemplateConfigDetailDao.java
@@ -0,0 +1,15 @@
+package com.hzya.frame.excel.templateConfigDetial.dao;
+
+import com.hzya.frame.excel.templateConfigDetial.entity.ExcelTemplateConfigDetailEntity;
+import com.hzya.frame.basedao.dao.IBaseDao; 
+
+/**
+ * excel模版配置明细表(excel_template_config_detail: table)表数据库访问层
+ *
+ * @author makejava
+ * @since 2024-08-13 08:39:02
+ */
+public interface IExcelTemplateConfigDetailDao extends IBaseDao<ExcelTemplateConfigDetailEntity, String> {
+
+}
+
diff --git a/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/dao/impl/ExcelTemplateConfigDetailDaoImpl.java b/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/dao/impl/ExcelTemplateConfigDetailDaoImpl.java
new file mode 100644
index 00000000..60b4ff82
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/dao/impl/ExcelTemplateConfigDetailDaoImpl.java
@@ -0,0 +1,17 @@
+package com.hzya.frame.excel.templateConfigDetial.dao.impl;
+
+import com.hzya.frame.excel.templateConfigDetial.entity.ExcelTemplateConfigDetailEntity;
+import com.hzya.frame.excel.templateConfigDetial.dao.IExcelTemplateConfigDetailDao;
+import org.springframework.stereotype.Repository;
+import com.hzya.frame.basedao.dao.MybatisGenericDao;
+/**
+ * excel模版配置明细表(ExcelTemplateConfigDetail)表数据库访问层
+ *
+ * @author makejava
+ * @since 2024-08-13 08:39:02
+ */
+@Repository(value = "ExcelTemplateConfigDetailDaoImpl")
+public class ExcelTemplateConfigDetailDaoImpl extends MybatisGenericDao<ExcelTemplateConfigDetailEntity, String> implements IExcelTemplateConfigDetailDao{
+ 
+}
+
diff --git a/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/entity/ExcelTemplateConfigDetailEntity.java b/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/entity/ExcelTemplateConfigDetailEntity.java
new file mode 100644
index 00000000..0119a934
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/entity/ExcelTemplateConfigDetailEntity.java
@@ -0,0 +1,96 @@
+package com.hzya.frame.excel.templateConfigDetial.entity;
+
+import java.util.Date;
+import com.hzya.frame.web.entity.BaseEntity;
+/**
+ * excel模版配置明细表(ExcelTemplateConfigDetail)实体类
+ *
+ * @author makejava
+ * @since 2024-08-13 08:39:02
+ */
+public class ExcelTemplateConfigDetailEntity extends BaseEntity {
+ 
+  /**  字段名称 */
+   private String fieldName;
+  /**  字段编码 */
+   private String fieldCode;
+  /**  字段类型 */
+   private String fieldType;
+  /**  应用数据字典明细表id */
+   private String dictionaryDetailId;
+  /**  显示名称 */
+   private String showName;
+  /**  序号 */
+   private Long templateSort;
+  /**  开关 */
+   private String templateSwitch;
+  /**  公司id */
+   private String companyId;
+
+
+    public String getFieldName() {
+        return fieldName;
+    }
+
+    public void setFieldName(String fieldName) {
+        this.fieldName = fieldName;
+    }
+
+    public String getFieldCode() {
+        return fieldCode;
+    }
+
+    public void setFieldCode(String fieldCode) {
+        this.fieldCode = fieldCode;
+    }
+
+    public String getFieldType() {
+        return fieldType;
+    }
+
+    public void setFieldType(String fieldType) {
+        this.fieldType = fieldType;
+    }
+
+    public String getDictionaryDetailId() {
+        return dictionaryDetailId;
+    }
+
+    public void setDictionaryDetailId(String dictionaryDetailId) {
+        this.dictionaryDetailId = dictionaryDetailId;
+    }
+
+    public String getShowName() {
+        return showName;
+    }
+
+    public void setShowName(String showName) {
+        this.showName = showName;
+    }
+
+    public Long getTemplateSort() {
+        return templateSort;
+    }
+
+    public void setTemplateSort(Long templateSort) {
+        this.templateSort = templateSort;
+    }
+
+    public String getTemplateSwitch() {
+        return templateSwitch;
+    }
+
+    public void setTemplateSwitch(String templateSwitch) {
+        this.templateSwitch = templateSwitch;
+    }
+
+    public String getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(String companyId) {
+        this.companyId = companyId;
+    }
+
+}
+
diff --git a/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/entity/ExcelTemplateConfigDetailEntity.xml b/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/entity/ExcelTemplateConfigDetailEntity.xml
new file mode 100644
index 00000000..abcd07b0
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/entity/ExcelTemplateConfigDetailEntity.xml
@@ -0,0 +1,278 @@
+<?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="com.hzya.frame.excel.templateConfigDetial.dao.impl.ExcelTemplateConfigDetailDaoImpl">
+
+    <resultMap id="get-ExcelTemplateConfigDetailEntity-result" type="com.hzya.frame.excel.templateConfigDetial.entity.ExcelTemplateConfigDetailEntity" >
+       <result property="fieldName" column="field_name" jdbcType="VARCHAR"/>
+           <result property="fieldCode" column="field_code" jdbcType="VARCHAR"/>
+           <result property="fieldType" column="field_type" jdbcType="VARCHAR"/>
+           <result property="dictionaryDetailId" column="dictionary_detail_id" jdbcType="VARCHAR"/>
+           <result property="showName" column="show_name" jdbcType="VARCHAR"/>
+           <result property="templateSort" column="template_sort" jdbcType="INTEGER"/>
+           <result property="templateSwitch" column="template_switch" jdbcType="VARCHAR"/>
+           <result property="sorts" column="sorts" jdbcType="INTEGER"/>
+           <result property="id" column="id" jdbcType="VARCHAR"/>
+           <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/>
+           <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+           <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/>
+           <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/>
+           <result property="org_id" column="org_id" jdbcType="VARCHAR"/>
+           <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+           <result property="sts" column="sts" jdbcType="VARCHAR"/>
+        </resultMap>
+    <!-- 查询的字段-->
+    <sql id = "ExcelTemplateConfigDetailEntity_Base_Column_List">
+        field_name
+       ,field_code 
+        ,field_type 
+        ,dictionary_detail_id 
+        ,show_name 
+        ,template_sort 
+        ,template_switch 
+        ,sorts 
+        ,id 
+        ,create_user_id 
+        ,create_time 
+        ,modify_time 
+        ,modify_user_id 
+        ,org_id 
+        ,company_id 
+        ,sts 
+     </sql>
+ <!-- 查询 采用==查询 -->
+ <select id="entity_list_base" resultMap="get-ExcelTemplateConfigDetailEntity-result" parameterType = "com.hzya.frame.excel.templateConfigDetial.entity.ExcelTemplateConfigDetailEntity">
+    select
+    <include refid="ExcelTemplateConfigDetailEntity_Base_Column_List" />
+    from excel_template_config_detail
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="fieldName != null and fieldName != ''"> and field_name = #{fieldName} </if>
+            <if test="fieldCode != null and fieldCode != ''"> and field_code = #{fieldCode} </if>
+            <if test="fieldType != null and fieldType != ''"> and field_type = #{fieldType} </if>
+            <if test="dictionaryDetailId != null and dictionaryDetailId != ''"> and dictionary_detail_id = #{dictionaryDetailId} </if>
+            <if test="showName != null and showName != ''"> and show_name = #{showName} </if>
+            <if test="templateSort != null"> and template_sort = #{templateSort} </if>
+            <if test="templateSwitch != null and templateSwitch != ''"> and template_switch = #{templateSwitch} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if>
+            <if test="create_time != null"> and create_time = #{create_time} </if>
+            <if test="modify_time != null"> and modify_time = #{modify_time} </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if>
+            <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if>
+            <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+    
+<!-- 查询符合条件的数量 -->
+<select id="entity_count" resultType="Integer" parameterType = "com.hzya.frame.excel.templateConfigDetial.entity.ExcelTemplateConfigDetailEntity">
+        select  count(1)   from excel_template_config_detail
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="fieldName != null and fieldName != ''"> and field_name = #{fieldName} </if>
+            <if test="fieldCode != null and fieldCode != ''"> and field_code = #{fieldCode} </if>
+            <if test="fieldType != null and fieldType != ''"> and field_type = #{fieldType} </if>
+            <if test="dictionaryDetailId != null and dictionaryDetailId != ''"> and dictionary_detail_id = #{dictionaryDetailId} </if>
+            <if test="showName != null and showName != ''"> and show_name = #{showName} </if>
+            <if test="templateSort != null"> and template_sort = #{templateSort} </if>
+            <if test="templateSwitch != null and templateSwitch != ''"> and template_switch = #{templateSwitch} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if>
+            <if test="create_time != null"> and create_time = #{create_time} </if>
+            <if test="modify_time != null"> and modify_time = #{modify_time} </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if>
+            <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if>
+            <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if>
+    </select>
+
+    <!-- 分页查询列表 采用like格式 -->
+<select id="entity_list_like" resultMap="get-ExcelTemplateConfigDetailEntity-result" parameterType = "com.hzya.frame.excel.templateConfigDetial.entity.ExcelTemplateConfigDetailEntity">
+    select
+    <include refid="ExcelTemplateConfigDetailEntity_Base_Column_List" />
+    from excel_template_config_detail
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="fieldName != null and fieldName != ''"> and field_name like concat('%',#{fieldName},'%') </if>
+            <if test="fieldCode != null and fieldCode != ''"> and field_code like concat('%',#{fieldCode},'%') </if>
+            <if test="fieldType != null and fieldType != ''"> and field_type like concat('%',#{fieldType},'%') </if>
+            <if test="dictionaryDetailId != null and dictionaryDetailId != ''"> and dictionary_detail_id like concat('%',#{dictionaryDetailId},'%') </if>
+            <if test="showName != null and showName != ''"> and show_name like concat('%',#{showName},'%') </if>
+            <if test="templateSort != null"> and template_sort like concat('%',#{templateSort},'%') </if>
+            <if test="templateSwitch != null and templateSwitch != ''"> and template_switch like concat('%',#{templateSwitch},'%') </if>
+            <if test="sorts != null"> and sorts like concat('%',#{sorts},'%') </if>
+            <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if>
+            <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if>
+            <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if>
+            <if test="org_id != null and org_id != ''"> and org_id like concat('%',#{org_id},'%') </if>
+            <if test="companyId != null and companyId != ''"> and company_id like concat('%',#{companyId},'%') </if>
+            <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+
+<!-- 查询列表 字段采用or格式 -->
+<select id="ExcelTemplateConfigDetailentity_list_or" resultMap="get-ExcelTemplateConfigDetailEntity-result" parameterType = "com.hzya.frame.excel.templateConfigDetial.entity.ExcelTemplateConfigDetailEntity">
+    select
+    <include refid="ExcelTemplateConfigDetailEntity_Base_Column_List" />
+    from excel_template_config_detail
+    <trim prefix="where" prefixOverrides="and"> 
+         <if test="fieldName != null and fieldName != ''"> or field_name = #{fieldName} </if>
+             <if test="fieldCode != null and fieldCode != ''"> or field_code = #{fieldCode} </if>
+             <if test="fieldType != null and fieldType != ''"> or field_type = #{fieldType} </if>
+             <if test="dictionaryDetailId != null and dictionaryDetailId != ''"> or dictionary_detail_id = #{dictionaryDetailId} </if>
+             <if test="showName != null and showName != ''"> or show_name = #{showName} </if>
+             <if test="templateSort != null"> or template_sort = #{templateSort} </if>
+             <if test="templateSwitch != null and templateSwitch != ''"> or template_switch = #{templateSwitch} </if>
+             <if test="sorts != null"> or sorts = #{sorts} </if>
+             <if test="id != null and id != ''"> or id = #{id} </if>
+             <if test="create_user_id != null and create_user_id != ''"> or create_user_id = #{create_user_id} </if>
+              <if test="create_time != null"> or create_time = #{create_time} </if>
+              <if test="modify_time != null"> or modify_time = #{modify_time} </if>
+              <if test="modify_user_id != null and modify_user_id != ''"> or modify_user_id = #{modify_user_id} </if>
+              <if test="org_id != null and org_id != ''"> or org_id = #{org_id} </if>
+              <if test="companyId != null and companyId != ''"> or company_id = #{companyId} </if>
+             <if test="sts != null and sts != ''"> or sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString()  "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+
+<!--新增所有列-->
+<insert id="entity_insert" parameterType = "com.hzya.frame.excel.templateConfigDetial.entity.ExcelTemplateConfigDetailEntity" keyProperty="sorts" useGeneratedKeys="true">
+    insert into excel_template_config_detail(
+  <trim suffix="" suffixOverrides=",">
+       <if test="fieldName != null and fieldName != ''"> field_name , </if>
+            <if test="fieldCode != null and fieldCode != ''"> field_code , </if>
+            <if test="fieldType != null and fieldType != ''"> field_type , </if>
+            <if test="dictionaryDetailId != null and dictionaryDetailId != ''"> dictionary_detail_id , </if>
+            <if test="showName != null and showName != ''"> show_name , </if>
+            <if test="templateSort != null"> template_sort , </if>
+            <if test="templateSwitch != null and templateSwitch != ''"> template_switch , </if>
+            <if test="sorts != null"> sorts , </if>
+            <if test="id != null and id != ''"> id , </if>
+            <if test="create_user_id != null and create_user_id != ''"> create_user_id , </if>
+            <if test="create_time != null"> create_time , </if>
+            <if test="modify_time != null"> modify_time , </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id , </if>
+            <if test="org_id != null and org_id != ''"> org_id , </if>
+            <if test="companyId != null and companyId != ''"> company_id , </if>
+            <if test="sts != null and sts != ''"> sts , </if>
+            <if test="sorts == null ">sorts,</if>
+    <if test="sts == null ">sts,</if>
+  </trim>
+  )values(
+ <trim suffix="" suffixOverrides=",">
+       <if test="fieldName != null and fieldName != ''"> #{fieldName} ,</if>
+            <if test="fieldCode != null and fieldCode != ''"> #{fieldCode} ,</if>
+            <if test="fieldType != null and fieldType != ''"> #{fieldType} ,</if>
+            <if test="dictionaryDetailId != null and dictionaryDetailId != ''"> #{dictionaryDetailId} ,</if>
+            <if test="showName != null and showName != ''"> #{showName} ,</if>
+            <if test="templateSort != null"> #{templateSort} ,</if>
+            <if test="templateSwitch != null and templateSwitch != ''"> #{templateSwitch} ,</if>
+            <if test="sorts != null"> #{sorts} ,</if>
+            <if test="id != null and id != ''"> #{id} ,</if>
+            <if test="create_user_id != null and create_user_id != ''"> #{create_user_id} ,</if>
+            <if test="create_time != null"> #{create_time} ,</if>
+            <if test="modify_time != null"> #{modify_time} ,</if>
+            <if test="modify_user_id != null and modify_user_id != ''"> #{modify_user_id} ,</if>
+            <if test="org_id != null and org_id != ''"> #{org_id} ,</if>
+            <if test="companyId != null and companyId != ''"> #{companyId} ,</if>
+            <if test="sts != null and sts != ''"> #{sts} ,</if>
+            <if test="sorts == null ">(select (max(IFNULL( a.sorts, 0 )) + 1) as sort from excel_template_config_detail a WHERE a.sts = 'Y' ),</if>
+    <if test="sts == null ">'Y',</if>
+  </trim>
+  )  
+</insert>
+<!-- 批量新增 -->
+<insert id="entityInsertBatch" keyProperty="sorts" useGeneratedKeys="true">
+  insert into excel_template_config_detail(field_name, field_code, field_type, dictionary_detail_id, show_name, template_sort, template_switch, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts,  sts) 
+    values
+    <foreach collection="entities" item="entity" separator=",">
+    (#{entity.fieldName},#{entity.fieldCode},#{entity.fieldType},#{entity.dictionaryDetailId},#{entity.showName},#{entity.templateSort},#{entity.templateSwitch},#{entity.create_user_id},#{entity.create_time},#{entity.modify_time},#{entity.modify_user_id},#{entity.org_id},#{entity.companyId},#{entity.sts}, 'Y')
+    </foreach>
+</insert>
+<!-- 批量新增或者修改-->
+<insert id="entityInsertOrUpdateBatch" keyProperty="sorts" useGeneratedKeys="true">
+    insert into excel_template_config_detail(field_name, field_code, field_type, dictionary_detail_id, show_name, template_sort, template_switch, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts)
+    values
+    <foreach collection="entities" item="entity" separator=",">
+    (#{entity.fieldName},#{entity.fieldCode},#{entity.fieldType},#{entity.dictionaryDetailId},#{entity.showName},#{entity.templateSort},#{entity.templateSwitch},#{entity.create_user_id},#{entity.create_time},#{entity.modify_time},#{entity.modify_user_id},#{entity.org_id},#{entity.companyId},#{entity.sts})
+    </foreach>
+    on duplicate key update
+    field_name = values(field_name),
+    field_code = values(field_code),
+    field_type = values(field_type),
+    dictionary_detail_id = values(dictionary_detail_id),
+    show_name = values(show_name),
+    template_sort = values(template_sort),
+    template_switch = values(template_switch),
+    create_user_id = values(create_user_id),
+    create_time = values(create_time),
+    modify_time = values(modify_time),
+    modify_user_id = values(modify_user_id),
+    org_id = values(org_id),
+    company_id = values(company_id),
+    sts = values(sts)</insert>
+<!--通过主键修改方法-->
+<update id="entity_update" parameterType = "com.hzya.frame.excel.templateConfigDetial.entity.ExcelTemplateConfigDetailEntity" >
+update excel_template_config_detail  set
+<trim suffix="" suffixOverrides=",">
+  <if test="fieldName != null and fieldName != ''"> field_name = #{fieldName},</if>
+  <if test="fieldCode != null and fieldCode != ''"> field_code = #{fieldCode},</if>
+  <if test="fieldType != null and fieldType != ''"> field_type = #{fieldType},</if>
+  <if test="dictionaryDetailId != null and dictionaryDetailId != ''"> dictionary_detail_id = #{dictionaryDetailId},</if>
+  <if test="showName != null and showName != ''"> show_name = #{showName},</if>
+  <if test="templateSort != null"> template_sort = #{templateSort},</if>
+  <if test="templateSwitch != null and templateSwitch != ''"> template_switch = #{templateSwitch},</if>
+  <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if>
+    <if test="create_time != null"> create_time = #{create_time},</if>
+    <if test="modify_time != null"> modify_time = #{modify_time},</if>
+    <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if>
+    <if test="org_id != null and org_id != ''"> org_id = #{org_id},</if>
+    <if test="companyId != null and companyId != ''"> company_id = #{companyId},</if>
+  <if test="sts != null and sts != ''"> sts = #{sts},</if>
+</trim>
+where sorts = #{sorts}
+</update>
+<!-- 逻辑删除 -->
+<update id="entity_logicDelete" parameterType = "com.hzya.frame.excel.templateConfigDetial.entity.ExcelTemplateConfigDetailEntity" >
+update excel_template_config_detail  set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id}
+where sorts = #{sorts}
+</update>
+<!-- 多条件逻辑删除 -->
+<update id="entity_logicDelete_Multi_Condition" parameterType = "com.hzya.frame.excel.templateConfigDetial.entity.ExcelTemplateConfigDetailEntity" >
+update excel_template_config_detail  set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id}
+ <trim prefix="where" prefixOverrides="and"> 
+        <if test="fieldName != null and fieldName != ''"> and field_name = #{fieldName} </if>
+            <if test="fieldCode != null and fieldCode != ''"> and field_code = #{fieldCode} </if>
+            <if test="fieldType != null and fieldType != ''"> and field_type = #{fieldType} </if>
+            <if test="dictionaryDetailId != null and dictionaryDetailId != ''"> and dictionary_detail_id = #{dictionaryDetailId} </if>
+            <if test="showName != null and showName != ''"> and show_name = #{showName} </if>
+            <if test="templateSort != null"> and template_sort = #{templateSort} </if>
+            <if test="templateSwitch != null and templateSwitch != ''"> and template_switch = #{templateSwitch} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+                                                                             <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+</update>
+<!--通过主键删除-->
+<delete id="entity_delete">
+    delete from excel_template_config_detail where sorts = #{sorts}
+</delete>
+
+</mapper>
+
diff --git a/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/service/IExcelTemplateConfigDetailService.java b/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/service/IExcelTemplateConfigDetailService.java
new file mode 100644
index 00000000..746ee7fc
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/service/IExcelTemplateConfigDetailService.java
@@ -0,0 +1,12 @@
+package com.hzya.frame.excel.templateConfigDetial.service;
+
+import com.hzya.frame.excel.templateConfigDetial.entity.ExcelTemplateConfigDetailEntity;
+import com.hzya.frame.basedao.service.IBaseService;
+/**
+ * excel模版配置明细表(ExcelTemplateConfigDetail)表服务接口
+ *
+ * @author makejava
+ * @since 2024-08-13 08:39:02
+ */
+public interface IExcelTemplateConfigDetailService extends IBaseService<ExcelTemplateConfigDetailEntity, String>{
+}
diff --git a/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/service/impl/ExcelTemplateConfigDetailServiceImpl.java b/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/service/impl/ExcelTemplateConfigDetailServiceImpl.java
new file mode 100644
index 00000000..51e02292
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/excel/templateConfigDetial/service/impl/ExcelTemplateConfigDetailServiceImpl.java
@@ -0,0 +1,26 @@
+package com.hzya.frame.excel.templateConfigDetial.service.impl;
+
+import com.hzya.frame.excel.templateConfigDetial.entity.ExcelTemplateConfigDetailEntity;
+import com.hzya.frame.excel.templateConfigDetial.dao.IExcelTemplateConfigDetailDao;
+import com.hzya.frame.excel.templateConfigDetial.service.IExcelTemplateConfigDetailService;
+import org.springframework.stereotype.Service; 
+import org.springframework.beans.factory.annotation.Autowired;
+import javax.annotation.Resource;
+import com.hzya.frame.basedao.service.impl.BaseService;
+/**
+ * excel模版配置明细表(ExcelTemplateConfigDetail)表服务实现类
+ *
+ * @author makejava
+ * @since 2024-08-13 08:39:02
+ */
+@Service(value = "excelTemplateConfigDetailService")
+public class ExcelTemplateConfigDetailServiceImpl extends BaseService<ExcelTemplateConfigDetailEntity, String> implements IExcelTemplateConfigDetailService {
+     
+    private IExcelTemplateConfigDetailDao excelTemplateConfigDetailDao;
+    
+    @Autowired
+	public void setExcelTemplateConfigDetailDao(IExcelTemplateConfigDetailDao dao) {
+		this.excelTemplateConfigDetailDao = dao;
+		this.dao = dao;
+	}
+}
diff --git a/service/src/main/java/com/hzya/frame/sys/file/download/entity/FileDownloadEntity.java b/service/src/main/java/com/hzya/frame/sys/file/download/entity/FileDownloadEntity.java
index 34dae4ad..928a687d 100644
--- a/service/src/main/java/com/hzya/frame/sys/file/download/entity/FileDownloadEntity.java
+++ b/service/src/main/java/com/hzya/frame/sys/file/download/entity/FileDownloadEntity.java
@@ -25,6 +25,18 @@ public class  FileDownloadEntity extends BaseEntity {
 	private String filepath;
 	/** 文件*/
 	private File file;
+	/** 文件类型
+	 * 1:普通文件
+	 * 2:插件附件*/
+	private String fileType;
+
+	public String getFileType() {
+		return fileType;
+	}
+
+	public void setFileType(String fileType) {
+		this.fileType = fileType;
+	}
 
 	/** 文件名称 */
 	public void setFilename(String filename) {
diff --git a/service/src/main/java/com/hzya/frame/sys/file/download/entity/FileDownloadEntity.xml b/service/src/main/java/com/hzya/frame/sys/file/download/entity/FileDownloadEntity.xml
index f9065b2b..892b4f23 100644
--- a/service/src/main/java/com/hzya/frame/sys/file/download/entity/FileDownloadEntity.xml
+++ b/service/src/main/java/com/hzya/frame/sys/file/download/entity/FileDownloadEntity.xml
@@ -26,6 +26,8 @@
 		<result property="modify_time" column="modify_time" />
 		<!--状态Y正常N删除 -->
 		<result property="sts" column="sts" />
+		<!--文件类型 -->
+		<result property="fileType" column="file_type" />
 	</resultMap>
 
 	<sql id="FileDownloadEntity_Base_Column_List">
@@ -40,7 +42,8 @@
 		create_time,
 		modify_user_id,
 		modify_time,
-		sts
+		sts,
+		file_type
 	</sql>
 
 	<!--通过ID获取数据 -->
@@ -60,6 +63,7 @@
 			<if test="filename != null and filename !='' "> and filename = #{filename}</if>
 			<if test="filesavename != null and filesavename !='' "> and filesavename = #{filesavename}</if>
 			<if test="type != null and type !='' "> and type = #{type}</if>
+			<if test="fileType != null and fileType !='' "> and file_type = #{fileType}</if>
 			<if test="file_size != null "> and file_size = #{file_size}</if>
 			<if test="description != null and description !='' "> and description = #{description}</if>
 			<if test="filepath != null and filepath !='' "> and filepath = #{filepath}</if>
@@ -82,6 +86,7 @@
 			<if test="filename != null and filename !='' "> and filename = #{filename} </if>
 			<if test="filesavename != null and filesavename !='' "> and filesavename = #{filesavename} </if>
 			<if test="type != null and type !='' "> and type = #{type} </if>
+			<if test="fileType != null and fileType !='' "> and file_type = #{fileType} </if>
 			<if test="file_size != null "> and file_size = #{file_size}  </if>
 			<if test="description != null and description !='' "> and description = #{description} </if>
 			<if test="filepath != null and filepath !='' "> and filepath = #{filepath} </if>
@@ -106,6 +111,7 @@
 			<if test="filename != null and filename !='' "> and filename like concat('%',#{filename},'%') </if>
 			<if test="filesavename != null and filesavename !='' "> and filesavename like concat('%',#{filesavename},'%') </if>
 			<if test="type != null and type !='' "> and type like concat('%',#{type},'%') </if>
+		    <if test="fileType != null and fileType !='' "> and file_type like concat('%',#{fileType},'%') </if>
 			<if test="file_size != null "> and file_size = #{file_size}</if>
 			<if test="description != null and description !='' "> and description like concat('%',#{description},'%') </if>
 			<if test="filepath != null and filepath !='' "> and filepath like concat('%',#{filepath},'%') </if>
@@ -130,6 +136,7 @@
 			<if test="filename != null and filename !='' "> or filename = #{filename} </if>
 			<if test="filesavename != null and filesavename !='' "> or filesavename = #{filesavename} </if>
 			<if test="type != null and type !='' "> or type = #{type} </if>
+		    <if test="fileType != null and fileType !='' "> or file_type = #{fileType} </if>
 			<if test="file_size != null "> or file_size = #{file_size}</if>
 			<if test="description != null and description !='' "> or description = #{description} </if>
 			<if test="filepath != null and filepath !='' "> or filepath = #{filepath} </if>
@@ -151,6 +158,7 @@
 			<if test="filename != null and filename !='' "> filename, </if>
 			<if test="filesavename != null and filesavename !='' "> filesavename, </if>
 			<if test="type != null and type !='' "> type, </if>
+		    <if test="fileType != null and fileType !='' "> file_type, </if>
 			<if test="file_size != null ">file_size,</if>
 			<if test="description != null and description !='' "> description, </if>
 			<if test="filepath != null and filepath !='' "> filepath, </if>
@@ -167,6 +175,7 @@
 			<if test="filename != null and filename !='' "> #{filename}, </if>
 			<if test="filesavename != null and filesavename !='' "> #{filesavename}, </if>
 			<if test="type != null and type !='' "> #{type}, </if>
+		    <if test="fileType != null and fileType !='' "> #{fileType}, </if>
 			<if test="file_size != null ">#{file_size},</if>
 			<if test="description != null and description !='' "> #{description}, </if>
 			<if test="filepath != null and filepath !='' "> #{filepath}, </if>
@@ -192,6 +201,7 @@
 			<if test="filename != null and filename !='' "> filename = #{filename},</if>
 			<if test="filesavename != null and filesavename !='' "> filesavename = #{filesavename},</if>
 			<if test="type != null and type !='' "> type = #{type},</if>
+			<if test="fileType != null and fileType !='' "> file_type = #{fileType},</if>
 			<if test="file_size != null ">file_size = #{file_size},</if>
 			<if test="description != null and description !='' "> description = #{description},</if>
 			<if test="filepath != null and filepath !='' "> filepath = #{filepath},</if>
@@ -219,6 +229,7 @@
 			<if test="filename != null and filename !='' "> and filename = #{filename}</if>
 			<if test="filesavename != null and filesavename !='' "> and filesavename = #{filesavename}</if>
 			<if test="type != null and type !='' "> and type = #{type}</if>
+		    <if test="fileType != null and fileType !='' "> and file_type = #{fileType}</if>
 			<if test="file_size != null "> and file_size = #{file_size}</if>
 			<if test="description != null and description !='' "> and description = #{description}</if>
 			<if test="filepath != null and filepath !='' "> and filepath = #{filepath}</if>
diff --git a/service/src/main/java/com/hzya/frame/sys/file/download/service/IFileDownloadService.java b/service/src/main/java/com/hzya/frame/sys/file/download/service/IFileDownloadService.java
index 36efcf95..ff8358f1 100644
--- a/service/src/main/java/com/hzya/frame/sys/file/download/service/IFileDownloadService.java
+++ b/service/src/main/java/com/hzya/frame/sys/file/download/service/IFileDownloadService.java
@@ -28,4 +28,6 @@ public interface IFileDownloadService extends IBaseService<FileDownloadEntity,Lo
      * @throws Exception
      */
     FileDownloadEntity fileDownload(FileUploadDto fileUploadDto) ;
+
+    FileDownloadEntity pluginZipUpate(FileUploadDto fileUploadDto)throws Exception;
 }
diff --git a/service/src/main/java/com/hzya/frame/sys/file/download/service/impl/FileDownloadServiceImpl.java b/service/src/main/java/com/hzya/frame/sys/file/download/service/impl/FileDownloadServiceImpl.java
index 76621ad4..ccdd9f4e 100644
--- a/service/src/main/java/com/hzya/frame/sys/file/download/service/impl/FileDownloadServiceImpl.java
+++ b/service/src/main/java/com/hzya/frame/sys/file/download/service/impl/FileDownloadServiceImpl.java
@@ -11,6 +11,13 @@ import com.hzya.frame.sys.file.download.service.IFileDownloadService;
 import com.hzya.frame.sys.file.download.dao.IFileDownloadDao;
 
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.util.Enumeration;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+import java.util.zip.ZipInputStream;
 
 /**
  * @description: 系统文件下载  service
@@ -25,6 +32,12 @@ public class  FileDownloadServiceImpl extends BaseService< FileDownloadEntity,Lo
 	protected IFileDownloadDao  filedownloadDao;
 	@Value("${savefile.path}")
 	public String DSK;
+
+	@Value("${savefile.pluginpath}")
+	public String PLUGINPATH;
+
+	@Value("${savefile.tomcatpath}")
+	public String TOMCATPATH;
 	@Autowired
 	public void setFileDownloadDao(IFileDownloadDao dao) {
 
@@ -76,11 +89,154 @@ public class  FileDownloadServiceImpl extends BaseService< FileDownloadEntity,Lo
             throw new BaseSystemException("文件不存在!");
 		}
 		/** 拼接文件路径*/
-		String filePath = DSK + fileDownloadEntity.getFilepath().replace("/",File.separator).replace("\\",File.separator);
+		String filePath = "";
+		if(fileDownloadEntity.getFileType().equals("2")){
+			filePath = PLUGINPATH + fileDownloadEntity.getFilepath().replace("/",File.separator).replace("\\",File.separator);
+		}else{
+			filePath = DSK + fileDownloadEntity.getFilepath().replace("/",File.separator).replace("\\",File.separator);
+		}
+
 		/** 获取file文件*/
 		File file = new File(filePath);
 		/** 设置file*/
 		fileDownloadEntity.setFile(file);
 		return fileDownloadEntity;
 	}
+
+//	@Override
+//	public FileDownloadEntity pluginZipUpate(FileUploadDto fileUploadDto) throws Exception {
+//		/** 如果fileUploadDto的id直接为空,或者null直接抛出异常*/
+//		if(fileUploadDto == null || fileUploadDto.getId() == null || "".equals(fileUploadDto.getId())){
+//			throw new BaseSystemException("请传入参数!");
+//		}
+//		/** 根据唯一名称获取文件信息*/
+//		FileDownloadEntity queryEntity = new FileDownloadEntity();
+//		queryEntity.setId(fileUploadDto.getId());
+//		queryEntity.setSts("Y");
+//		FileDownloadEntity fileDownloadEntity =filedownloadDao.queryOne(queryEntity);
+//		String filePath = fileDownloadEntity.getFilepath();
+//		//插件附件路径
+//		String inputFile = PLUGINPATH + filePath;
+//
+//		File srcFile = new File(inputFile);//获取当前压缩文件
+//		// 判断源文件是否存在
+//		if (!srcFile.exists()) {
+//			throw new Exception(srcFile.getPath() + "所指文件不存在");
+//		}
+//		ZipFile zipFile = new ZipFile(srcFile);//创建压缩文件对象
+//		//开始解压
+//		Enumeration<?> entries = zipFile.entries();
+//		boolean isFirst = true;
+//		String firstName = "";
+//		while (entries.hasMoreElements()) {
+//			ZipEntry entry = (ZipEntry) entries.nextElement();
+//			// 构造解压后的文件路径,去掉压缩包的名字
+//			String unzipPath = entry.getName().replace(firstName,"");
+//			String classPath = "com\\hzya\\frame\\plugin";
+//			String xmlPath = "cfgHome\\plugin";
+//
+//			String dirPath = "";
+//			if(unzipPath.contains("classfile/")){
+//				dirPath = TOMCATPATH + "/" + classPath + unzipPath.replace("classfile","");
+//			}
+//			if(unzipPath.contains("xmlfile/")){
+//				dirPath = 	TOMCATPATH + "/" + xmlPath + unzipPath.replace("xmlfile","");
+//			}
+//
+//			// 如果是文件夹,就创建个文件夹
+//			if (entry.isDirectory()) {
+//				if(isFirst == false){
+//					File dir = new File(dirPath);
+//					dir.mkdirs();
+//				}else{
+//					firstName = entry.getName();
+//					isFirst = false;
+//				}
+//			} else {
+//				// 如果是文件,就先创建一个文件,然后用io流把内容copy过去
+//				File targetFile = new File(dirPath);
+//				// 保证这个文件的父文件夹必须要存在
+//				if (!targetFile.getParentFile().exists()) {
+//					targetFile.getParentFile().mkdirs();
+//				}
+//				targetFile.createNewFile();
+//				// 将压缩文件内容写入到这个文件中
+//				InputStream is = zipFile.getInputStream(entry);
+//				FileOutputStream fos = new FileOutputStream(targetFile);
+//				int len;
+//				byte[] buf = new byte[1024];
+//				while ((len = is.read(buf)) != -1) {
+//					fos.write(buf, 0, len);
+//				}
+//				// 关流顺序,先打开的后关闭
+//				fos.close();
+//				is.close();
+//			}
+//		}
+//
+//
+//
+//		return fileDownloadEntity;
+//	}
+
+	@Override
+	public FileDownloadEntity pluginZipUpate(FileUploadDto fileUploadDto) throws Exception {
+		/** 如果fileUploadDto的id直接为空,或者null直接抛出异常*/
+		if(fileUploadDto == null || fileUploadDto.getId() == null || "".equals(fileUploadDto.getId())){
+			throw new BaseSystemException("请传入参数!");
+		}
+		/** 根据唯一名称获取文件信息*/
+		FileDownloadEntity queryEntity = new FileDownloadEntity();
+		queryEntity.setId(fileUploadDto.getId());
+		queryEntity.setSts("Y");
+		FileDownloadEntity fileDownloadEntity =filedownloadDao.queryOne(queryEntity);
+		String filePath = fileDownloadEntity.getFilepath();
+		//插件附件路径
+		String inputFile = PLUGINPATH + filePath;
+
+		File srcFile = new File(inputFile);//获取当前压缩文件
+		// 判断源文件是否存在
+		if (!srcFile.exists()) {
+			throw new Exception(srcFile.getPath() + "所指文件不存在");
+		}
+		ZipFile zipFile = new ZipFile(srcFile);//创建压缩文件对象
+		//开始解压
+		Enumeration<?> entries = zipFile.entries();
+
+		while (entries.hasMoreElements()) {
+			ZipEntry entry = (ZipEntry) entries.nextElement();
+			String unzipPath = entry.getName();
+
+			String dirPath = TOMCATPATH + unzipPath;
+
+			// 如果是文件夹,就创建个文件夹
+			if (entry.isDirectory()) {
+					File dir = new File(dirPath);
+					dir.mkdirs();
+			} else {
+				// 如果是文件,就先创建一个文件,然后用io流把内容copy过去
+				File targetFile = new File(dirPath);
+				// 保证这个文件的父文件夹必须要存在
+				if (!targetFile.getParentFile().exists()) {
+					targetFile.getParentFile().mkdirs();
+				}
+				targetFile.createNewFile();
+				// 将压缩文件内容写入到这个文件中
+				InputStream is = zipFile.getInputStream(entry);
+				FileOutputStream fos = new FileOutputStream(targetFile);
+				int len;
+				byte[] buf = new byte[1024];
+				while ((len = is.read(buf)) != -1) {
+					fos.write(buf, 0, len);
+				}
+				// 关流顺序,先打开的后关闭
+				fos.close();
+				is.close();
+			}
+		}
+
+		return fileDownloadEntity;
+	}
+
+
 }
diff --git a/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileResultEntity.java b/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileResultEntity.java
index 4e2bd287..0ae3765f 100644
--- a/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileResultEntity.java
+++ b/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileResultEntity.java
@@ -28,7 +28,9 @@ private Long business_id;
      *
      * */
 private String business_type;
+    /** 1:上传普通文件 2:上传插件*/
     /** 是否是业务附件  true 是(是业务附件的时候,请传入相对应的业务ID,) false 不是,*/
+
 private boolean fileFlag;
     /** 上传文件的ID*/
     private String fileID;
diff --git a/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileUploadDto.java b/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileUploadDto.java
index 049adf4c..ee752549 100644
--- a/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileUploadDto.java
+++ b/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileUploadDto.java
@@ -21,12 +21,26 @@ public class FileUploadDto {
      * 业务类型
      */
     private String businessType;
+    /**
+     * 文件类型
+     * 1:普通文件
+     * 2:插件附件
+     */
+    private String fileType = "1";
 
     /**
      * 是否是业务类型
      */
     private boolean fileFlag;
 
+    public String getFileType() {
+        return fileType;
+    }
+
+    public void setFileType(String fileType) {
+        this.fileType = fileType;
+    }
+
     public String getBusinessType() {
         return businessType;
     }
diff --git a/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileUploadEntity.java b/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileUploadEntity.java
index 3aabaa19..0a920b89 100644
--- a/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileUploadEntity.java
+++ b/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileUploadEntity.java
@@ -26,6 +26,12 @@ public class FileUploadEntity extends BaseEntity {
      * 文件类型
      */
     private String type;
+    /**
+     * 文件类型
+     * 1:普通文件
+     * 2:插件附件
+     */
+    private String fileType;
     /**
      * 文件大小(kb)
      */
@@ -48,6 +54,14 @@ public class FileUploadEntity extends BaseEntity {
     private File[] multiFile;
     private String[] multiFileFileName;
 
+    public String getFileType() {
+        return fileType;
+    }
+
+    public void setFileType(String fileType) {
+        this.fileType = fileType;
+    }
+
     /**
      * 文件名称
      */
diff --git a/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileUploadEntity.xml b/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileUploadEntity.xml
index 71f2a604..81374007 100644
--- a/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileUploadEntity.xml
+++ b/service/src/main/java/com/hzya/frame/sys/file/upload/entity/FileUploadEntity.xml
@@ -10,6 +10,8 @@
 		<result property="filesavename" column="filesavename" />
 		<!--文件类型 -->
 		<result property="type" column="type" />
+		<!--文件类型  1:普通文件 2:插件附件-->
+		<result property="fileType" column="file_type" />
 		<!--文件大小(kb) -->
 		<result property="file_size" column="file_size" />
 		<!--描述 -->
@@ -33,6 +35,7 @@
 		filename,
 		filesavename,
 		type,
+		file_type,
 		file_size,
 		description,
 		filepath,
@@ -60,6 +63,7 @@
 			<if test="filename != null and filename !='' "> and filename = #{filename}</if>
 			<if test="filesavename != null and filesavename !='' "> and filesavename = #{filesavename}</if>
 			<if test="type != null and type !='' "> and type = #{type}</if>
+			<if test="fileType != null and fileType !='' "> and file_type = #{fileType}</if>
 			<if test="file_size != null "> and file_size = #{file_size}</if>
 			<if test="description != null and description !='' "> and description = #{description}</if>
 			<if test="filepath != null and filepath !='' "> and filepath = #{filepath}</if>
@@ -82,6 +86,7 @@
 			<if test="filename != null and filename !='' "> and filename = #{filename} </if>
 			<if test="filesavename != null and filesavename !='' "> and filesavename = #{filesavename} </if>
 			<if test="type != null and type !='' "> and type = #{type} </if>
+		    <if test="fileType != null and fileType !='' "> and file_type = #{fileType} </if>
 			<if test="file_size != null "> and file_size = #{file_size}  </if>
 			<if test="description != null and description !='' "> and description = #{description} </if>
 			<if test="filepath != null and filepath !='' "> and filepath = #{filepath} </if>
@@ -106,6 +111,7 @@
 			<if test="filename != null and filename !='' "> and filename like concat('%',#{filename},'%') </if>
 			<if test="filesavename != null and filesavename !='' "> and filesavename like concat('%',#{filesavename},'%') </if>
 			<if test="type != null and type !='' "> and type like concat('%',#{type},'%') </if>
+		    	<if test="fileType != null and fileType !='' "> and file_type like concat('%',#{fileType},'%') </if>
 			<if test="file_size != null "> and file_size = #{file_size}</if>
 			<if test="description != null and description !='' "> and description like concat('%',#{description},'%') </if>
 			<if test="filepath != null and filepath !='' "> and filepath like concat('%',#{filepath},'%') </if>
@@ -130,6 +136,7 @@
 			<if test="filename != null and filename !='' "> or filename = #{filename} </if>
 			<if test="filesavename != null and filesavename !='' "> or filesavename = #{filesavename} </if>
 			<if test="type != null and type !='' "> or type = #{type} </if>
+		    	<if test="fileType != null and fileType !='' "> or file_type = #{fileType} </if>
 			<if test="file_size != null "> or file_size = #{file_size}</if>
 			<if test="description != null and description !='' "> or description = #{description} </if>
 			<if test="filepath != null and filepath !='' "> or filepath = #{filepath} </if>
@@ -151,6 +158,7 @@
 			<if test="filename != null and filename !='' "> filename, </if>
 			<if test="filesavename != null and filesavename !='' "> filesavename, </if>
 			<if test="type != null and type !='' "> type, </if>
+		    <if test="fileType != null and fileType !='' "> file_type, </if>
 			<if test="file_size != null ">file_size,</if>
 			<if test="description != null and description !='' "> description, </if>
 			<if test="filepath != null and filepath !='' "> filepath, </if>
@@ -167,6 +175,7 @@
 			<if test="filename != null and filename !='' "> #{filename}, </if>
 			<if test="filesavename != null and filesavename !='' "> #{filesavename}, </if>
 			<if test="type != null and type !='' "> #{type}, </if>
+		    <if test="fileType != null and fileType !='' "> #{fileType}, </if>
 			<if test="file_size != null ">#{file_size},</if>
 			<if test="description != null and description !='' "> #{description}, </if>
 			<if test="filepath != null and filepath !='' "> #{filepath}, </if>
@@ -189,6 +198,7 @@
 			<if test="filename != null and filename !='' "> filename = #{filename},</if>
 			<if test="filesavename != null and filesavename !='' "> filesavename = #{filesavename},</if>
 			<if test="type != null and type !='' "> type = #{type},</if>
+			<if test="fileType != null and fileType !='' "> file_type = #{fileType},</if>
 			<if test="file_size != null ">file_size = #{file_size},</if>
 			<if test="description != null and description !='' "> description = #{description},</if>
 			<if test="filepath != null and filepath !='' "> filepath = #{filepath},</if>
@@ -206,6 +216,7 @@
 		<trim suffix="" suffixOverrides=",">
 			<if test="filename != null and filename !='' "> filename = #{filename},</if>
 			<if test="type != null and type !='' "> type = #{type},</if>
+			<if test="fileType != null and fileType !='' "> file_type = #{fileType},</if>
 			<if test="file_size != null ">file_size = #{file_size},</if>
 			<if test="description != null and description !='' "> description = #{description},</if>
 			<if test="filepath != null and filepath !='' "> filepath = #{filepath},</if>
@@ -233,6 +244,7 @@
 			<if test="filename != null and filename !='' "> and filename = #{filename}</if>
 			<if test="filesavename != null and filesavename !='' "> and filesavename = #{filesavename}</if>
 			<if test="type != null and type !='' "> and type = #{type}</if>
+		    <if test="fileType != null and fileType !='' "> and file_type = #{fileType}</if>
 			<if test="file_size != null "> and file_size = #{file_size}</if>
 			<if test="description != null and description !='' "> and description = #{description}</if>
 			<if test="filepath != null and filepath !='' "> and filepath = #{filepath}</if>
diff --git a/service/src/main/java/com/hzya/frame/sys/file/upload/service/IFileUploadService.java b/service/src/main/java/com/hzya/frame/sys/file/upload/service/IFileUploadService.java
index 24d47a77..41ad6ebc 100644
--- a/service/src/main/java/com/hzya/frame/sys/file/upload/service/IFileUploadService.java
+++ b/service/src/main/java/com/hzya/frame/sys/file/upload/service/IFileUploadService.java
@@ -25,6 +25,8 @@ public interface IFileUploadService extends IBaseService<FileUploadEntity, Long>
      * @throws IOException
      */
     FileUploadEntity fileUpload(MultipartFile files, FileUploadDto entity) throws Exception;
+
+    FileUploadEntity pluginfileUpload(MultipartFile files, FileUploadDto entity,String pluginPackageName) throws Exception;
     /**
      * 文件上传方法
      *
diff --git a/service/src/main/java/com/hzya/frame/sys/file/upload/service/impl/FileUploadServiceImpl.java b/service/src/main/java/com/hzya/frame/sys/file/upload/service/impl/FileUploadServiceImpl.java
index 8060899b..b2ccda26 100644
--- a/service/src/main/java/com/hzya/frame/sys/file/upload/service/impl/FileUploadServiceImpl.java
+++ b/service/src/main/java/com/hzya/frame/sys/file/upload/service/impl/FileUploadServiceImpl.java
@@ -23,9 +23,13 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.util.Date;
+import java.util.Enumeration;
 import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
 
 /**
  * @description: 系统文件上传  service
@@ -39,6 +43,9 @@ public class FileUploadServiceImpl extends BaseService<FileUploadEntity, Long> i
     @Value("${savefile.path}")
     public String DSK;
 
+    @Value("${savefile.pluginpath}")
+    public String PLUGINPATH;
+
     protected IFileUploadDao fileUploadDao;
 
     @Autowired
@@ -76,8 +83,92 @@ public class FileUploadServiceImpl extends BaseService<FileUploadEntity, Long> i
         /** 获取到拼接完成的文件属性*/
         String path = stringBuffer.toString();
         /** 保存到file表信息*/
-        FileUploadEntity fileUploadEntity = saveFile(file, path, "附件备注");
-        path = DSK + fileUploadEntity.getFilepath();
+        FileUploadEntity fileUploadEntity = saveFile(file, path, "附件备注",entity.getFileType());
+        /**当fileType为2时,存储的是插件附件*/
+        if(entity.getFileType().equals("2")){
+            path = PLUGINPATH + fileUploadEntity.getFilepath();
+        }else{
+            path = DSK + fileUploadEntity.getFilepath();
+        }
+
+        /** 创建文件夹*/
+        FileUtils.createDir(path);
+        File uploadFile = new File(path);
+        file.transferTo(uploadFile);
+        return fileUploadEntity;
+    }
+
+    @Override
+    public FileUploadEntity pluginfileUpload(MultipartFile file, FileUploadDto entity,String pluginPackageName) throws Exception {
+
+        // 创建一个临时文件
+        File fileT = new File(file.getOriginalFilename());
+        // 将 MultipartFile 的内容写入文件
+        try (FileOutputStream fos = new FileOutputStream(fileT)) {
+            // 获取文件内容的字节数组
+            byte[] bytes = file.getBytes();
+            fos.write(bytes);
+        }
+
+        ZipFile zipFile = new ZipFile(fileT);//创建压缩文件对象
+        //开始解压
+        Enumeration<?> entries = zipFile.entries();
+        boolean xmlflag = false;
+        boolean classflag = false;
+        while (entries.hasMoreElements()) {
+            ZipEntry entry = (ZipEntry) entries.nextElement();
+            if(xmlflag == false){
+                if(entry.getName().contains("cfgHome/plugin/"+pluginPackageName) && entry.isDirectory()){
+                    xmlflag = true;
+                }
+            }
+            if(classflag == false){
+                if(entry.getName().contains("com/hzya/frame/plugin/"+pluginPackageName) && entry.isDirectory()){
+                    classflag = true;
+                }
+            }
+            if(xmlflag && classflag){
+                break;
+            }
+        }
+        if(xmlflag == false || classflag == false){
+            throw new BaseSystemException("插件附件不符合规范或插件包名填写错误,请检查!");
+        }
+        fileT.delete();
+        zipFile.close();
+
+
+        /** 获取系统设置文件存放的盘符*/
+        StringBuffer stringBuffer = new StringBuffer();
+        /** 获取根目录*/
+        //stringBuffer.append(DSK);
+        /** 根据当前日期创建文件目录*/
+        String nowDateString = DateUtil.dateToString(new Date(), "yyyy-MM-dd");
+
+        /** 判断传入的文件是否是属于业务的文件数据,如果是则根据业务单据去生成文件夹,否则,按照日期生成*/
+        if (entity.isFileFlag() && entity.getBusinessType() != null && !"".equals(entity.getBusinessType())) {
+            /** 没有单票ID临时把文件放在default目录下面*/
+            /** 创建默认文件夹*/
+            stringBuffer.append(File.separator+entity.getBusinessType());
+            /** 根据当前日期生成文件夹*/
+            stringBuffer.append(File.separator + nowDateString);
+        } else {
+            /** 创建默认文件夹*/
+            stringBuffer.append(File.separator+"default");
+            /** 拼接上当前日期*/
+            stringBuffer.append(File.separator + nowDateString);
+        }
+        /** 获取到拼接完成的文件属性*/
+        String path = stringBuffer.toString();
+        /** 保存到file表信息*/
+        FileUploadEntity fileUploadEntity = saveFile(file, path, "附件备注",entity.getFileType());
+        /**当fileType为2时,存储的是插件附件*/
+        if(entity.getFileType().equals("2")){
+            path = PLUGINPATH + fileUploadEntity.getFilepath();
+        }else{
+            path = DSK + fileUploadEntity.getFilepath();
+        }
+
         /** 创建文件夹*/
         FileUtils.createDir(path);
         File uploadFile = new File(path);
@@ -91,7 +182,9 @@ public class FileUploadServiceImpl extends BaseService<FileUploadEntity, Long> i
         /** 获取系统设置文件存放的盘符*/
         StringBuffer stringBuffer = new StringBuffer();
         /** 获取根目录*/
-        stringBuffer.append(DSK);
+            stringBuffer.append(DSK);
+
+
         /** 获取当前人所在的公司,用ID和公司名称拼接*/
 //        stringBuffer.append("/" + userEntity.getOrg_name() + "_" + userEntity.getOrg_id());
         /** 根据当前日期创建文件目录*/
@@ -278,7 +371,7 @@ public class FileUploadServiceImpl extends BaseService<FileUploadEntity, Long> i
      * @param description
      * @return
      */
-    private FileUploadEntity saveFile(MultipartFile file, String filepath, String description) {
+    private FileUploadEntity saveFile(MultipartFile file, String filepath, String description,String fileType) {
         /*** UUID生成File的新名称*/
         Long id = UUIDLong.longUUID();
         Long fileNewName = UUIDLong.longUUID();
@@ -291,6 +384,7 @@ public class FileUploadServiceImpl extends BaseService<FileUploadEntity, Long> i
         fileUploadEntity.setFilename(fileName);
         fileUploadEntity.setFilesavename(String.valueOf(fileNewName));
         fileUploadEntity.setType(type);
+        fileUploadEntity.setFileType(fileType);
         fileUploadEntity.setFile_size(file.getSize());
         fileUploadEntity.setDescription(description);
         fileUploadEntity.setFilepath(filepath+ File.separator +fileUploadEntity.getFilesavename());
diff --git a/service/src/main/java/com/hzya/frame/sys/org/entity/Org.java b/service/src/main/java/com/hzya/frame/sys/org/entity/Org.java
index 71f5bb48..c1478753 100644
--- a/service/src/main/java/com/hzya/frame/sys/org/entity/Org.java
+++ b/service/src/main/java/com/hzya/frame/sys/org/entity/Org.java
@@ -20,6 +20,8 @@ import java.util.List;
  */
 public class  Org  extends BaseEntity {
 
+
+
 	/** 唯一标识码 */
 	private String id;
 	/** 组织机构编码 */
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/dao/ISysApplicationDictionaryDao.java b/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/dao/ISysApplicationDictionaryDao.java
new file mode 100644
index 00000000..cfa3dc0c
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/dao/ISysApplicationDictionaryDao.java
@@ -0,0 +1,15 @@
+package com.hzya.frame.sysnew.application.dictionary.dao;
+
+import com.hzya.frame.sysnew.application.dictionary.entity.SysApplicationDictionaryEntity;
+import com.hzya.frame.basedao.dao.IBaseDao; 
+
+/**
+ * 应用数据字典表(sys_application_dictionary: table)表数据库访问层
+ *
+ * @author makejava
+ * @since 2024-08-12 16:40:53
+ */
+public interface ISysApplicationDictionaryDao extends IBaseDao<SysApplicationDictionaryEntity, String> {
+
+}
+
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/dao/impl/SysApplicationDictionaryDaoImpl.java b/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/dao/impl/SysApplicationDictionaryDaoImpl.java
new file mode 100644
index 00000000..6d955f8b
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/dao/impl/SysApplicationDictionaryDaoImpl.java
@@ -0,0 +1,17 @@
+package com.hzya.frame.sysnew.application.dictionary.dao.impl;
+
+import com.hzya.frame.sysnew.application.dictionary.entity.SysApplicationDictionaryEntity;
+import com.hzya.frame.sysnew.application.dictionary.dao.ISysApplicationDictionaryDao;
+import org.springframework.stereotype.Repository;
+import com.hzya.frame.basedao.dao.MybatisGenericDao;
+/**
+ * 应用数据字典表(SysApplicationDictionary)表数据库访问层
+ *
+ * @author makejava
+ * @since 2024-08-12 16:41:07
+ */
+@Repository(value = "SysApplicationDictionaryDaoImpl")
+public class SysApplicationDictionaryDaoImpl extends MybatisGenericDao<SysApplicationDictionaryEntity, String> implements ISysApplicationDictionaryDao{
+ 
+}
+
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/entity/SysApplicationDictionaryEntity.java b/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/entity/SysApplicationDictionaryEntity.java
new file mode 100644
index 00000000..fb52744c
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/entity/SysApplicationDictionaryEntity.java
@@ -0,0 +1,76 @@
+package com.hzya.frame.sysnew.application.dictionary.entity;
+
+import java.util.Date;
+import com.hzya.frame.web.entity.BaseEntity;
+/**
+ * 应用数据字典表(SysApplicationDictionary)实体类
+ *
+ * @author makejava
+ * @since 2024-08-12 16:41:20
+ */
+public class SysApplicationDictionaryEntity extends BaseEntity {
+ 
+  /**  应用id */
+   private String appId;
+  /**  名称 */
+   private String name;
+  /**  类型 */
+   private String dictionaryType;
+  /**  表 */
+   private String dictionaryTable;
+  /**  语句 */
+   private String dictionarySql;
+  /**  公司id */
+   private String companyId;
+
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        this.appId = appId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getDictionaryType() {
+        return dictionaryType;
+    }
+
+    public void setDictionaryType(String dictionaryType) {
+        this.dictionaryType = dictionaryType;
+    }
+
+    public String getDictionaryTable() {
+        return dictionaryTable;
+    }
+
+    public void setDictionaryTable(String dictionaryTable) {
+        this.dictionaryTable = dictionaryTable;
+    }
+
+    public String getDictionarySql() {
+        return dictionarySql;
+    }
+
+    public void setDictionarySql(String dictionarySql) {
+        this.dictionarySql = dictionarySql;
+    }
+
+    public String getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(String companyId) {
+        this.companyId = companyId;
+    }
+
+}
+
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/entity/SysApplicationDictionaryEntity.xml b/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/entity/SysApplicationDictionaryEntity.xml
new file mode 100644
index 00000000..6c3be854
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/entity/SysApplicationDictionaryEntity.xml
@@ -0,0 +1,256 @@
+<?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="com.hzya.frame.sysnew.application.dictionary.dao.impl.SysApplicationDictionaryDaoImpl">
+
+    <resultMap id="get-SysApplicationDictionaryEntity-result" type="com.hzya.frame.sysnew.application.dictionary.entity.SysApplicationDictionaryEntity" >
+       <result property="appId" column="app_id" jdbcType="VARCHAR"/>
+           <result property="name" column="name" jdbcType="VARCHAR"/>
+           <result property="dictionaryType" column="dictionary_type" jdbcType="VARCHAR"/>
+           <result property="dictionaryTable" column="dictionary_table" jdbcType="VARCHAR"/>
+           <result property="dictionarySql" column="dictionary_sql" jdbcType="VARCHAR"/>
+           <result property="sorts" column="sorts" jdbcType="INTEGER"/>
+           <result property="id" column="id" jdbcType="VARCHAR"/>
+           <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/>
+           <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+           <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/>
+           <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/>
+           <result property="org_id" column="org_id" jdbcType="VARCHAR"/>
+           <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+           <result property="sts" column="sts" jdbcType="VARCHAR"/>
+        </resultMap>
+    <!-- 查询的字段-->
+    <sql id = "SysApplicationDictionaryEntity_Base_Column_List">
+        app_id
+       ,name 
+        ,dictionary_type 
+        ,dictionary_table 
+        ,dictionary_sql 
+        ,sorts 
+        ,id 
+        ,create_user_id 
+        ,create_time 
+        ,modify_time 
+        ,modify_user_id 
+        ,org_id 
+        ,company_id 
+        ,sts 
+     </sql>
+ <!-- 查询 采用==查询 -->
+ <select id="entity_list_base" resultMap="get-SysApplicationDictionaryEntity-result" parameterType = "com.hzya.frame.sysnew.application.dictionary.entity.SysApplicationDictionaryEntity">
+    select
+    <include refid="SysApplicationDictionaryEntity_Base_Column_List" />
+    from sys_application_dictionary
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="appId != null and appId != ''"> and app_id = #{appId} </if>
+            <if test="name != null and name != ''"> and name = #{name} </if>
+            <if test="dictionaryType != null and dictionaryType != ''"> and dictionary_type = #{dictionaryType} </if>
+            <if test="dictionaryTable != null and dictionaryTable != ''"> and dictionary_table = #{dictionaryTable} </if>
+            <if test="dictionarySql != null and dictionarySql != ''"> and dictionary_sql = #{dictionarySql} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if>
+            <if test="create_time != null"> and create_time = #{create_time} </if>
+            <if test="modify_time != null"> and modify_time = #{modify_time} </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if>
+            <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if>
+            <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+    
+<!-- 查询符合条件的数量 -->
+<select id="entity_count" resultType="Integer" parameterType = "com.hzya.frame.sysnew.application.dictionary.entity.SysApplicationDictionaryEntity">
+        select  count(1)   from sys_application_dictionary
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="appId != null and appId != ''"> and app_id = #{appId} </if>
+            <if test="name != null and name != ''"> and name = #{name} </if>
+            <if test="dictionaryType != null and dictionaryType != ''"> and dictionary_type = #{dictionaryType} </if>
+            <if test="dictionaryTable != null and dictionaryTable != ''"> and dictionary_table = #{dictionaryTable} </if>
+            <if test="dictionarySql != null and dictionarySql != ''"> and dictionary_sql = #{dictionarySql} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if>
+            <if test="create_time != null"> and create_time = #{create_time} </if>
+            <if test="modify_time != null"> and modify_time = #{modify_time} </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if>
+            <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if>
+            <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if>
+    </select>
+
+    <!-- 分页查询列表 采用like格式 -->
+<select id="entity_list_like" resultMap="get-SysApplicationDictionaryEntity-result" parameterType = "com.hzya.frame.sysnew.application.dictionary.entity.SysApplicationDictionaryEntity">
+    select
+    <include refid="SysApplicationDictionaryEntity_Base_Column_List" />
+    from sys_application_dictionary
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="appId != null and appId != ''"> and app_id like concat('%',#{appId},'%') </if>
+            <if test="name != null and name != ''"> and name like concat('%',#{name},'%') </if>
+            <if test="dictionaryType != null and dictionaryType != ''"> and dictionary_type like concat('%',#{dictionaryType},'%') </if>
+            <if test="dictionaryTable != null and dictionaryTable != ''"> and dictionary_table like concat('%',#{dictionaryTable},'%') </if>
+            <if test="dictionarySql != null and dictionarySql != ''"> and dictionary_sql like concat('%',#{dictionarySql},'%') </if>
+            <if test="sorts != null"> and sorts like concat('%',#{sorts},'%') </if>
+            <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if>
+            <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if>
+            <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if>
+            <if test="org_id != null and org_id != ''"> and org_id like concat('%',#{org_id},'%') </if>
+            <if test="companyId != null and companyId != ''"> and company_id like concat('%',#{companyId},'%') </if>
+            <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+
+<!-- 查询列表 字段采用or格式 -->
+<select id="SysApplicationDictionaryentity_list_or" resultMap="get-SysApplicationDictionaryEntity-result" parameterType = "com.hzya.frame.sysnew.application.dictionary.entity.SysApplicationDictionaryEntity">
+    select
+    <include refid="SysApplicationDictionaryEntity_Base_Column_List" />
+    from sys_application_dictionary
+    <trim prefix="where" prefixOverrides="and"> 
+         <if test="appId != null and appId != ''"> or app_id = #{appId} </if>
+             <if test="name != null and name != ''"> or name = #{name} </if>
+             <if test="dictionaryType != null and dictionaryType != ''"> or dictionary_type = #{dictionaryType} </if>
+             <if test="dictionaryTable != null and dictionaryTable != ''"> or dictionary_table = #{dictionaryTable} </if>
+             <if test="dictionarySql != null and dictionarySql != ''"> or dictionary_sql = #{dictionarySql} </if>
+             <if test="sorts != null"> or sorts = #{sorts} </if>
+             <if test="id != null and id != ''"> or id = #{id} </if>
+             <if test="create_user_id != null and create_user_id != ''"> or create_user_id = #{create_user_id} </if>
+              <if test="create_time != null"> or create_time = #{create_time} </if>
+              <if test="modify_time != null"> or modify_time = #{modify_time} </if>
+              <if test="modify_user_id != null and modify_user_id != ''"> or modify_user_id = #{modify_user_id} </if>
+              <if test="org_id != null and org_id != ''"> or org_id = #{org_id} </if>
+              <if test="companyId != null and companyId != ''"> or company_id = #{companyId} </if>
+             <if test="sts != null and sts != ''"> or sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString()  "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+
+<!--新增所有列-->
+<insert id="entity_insert" parameterType = "com.hzya.frame.sysnew.application.dictionary.entity.SysApplicationDictionaryEntity" keyProperty="sorts" useGeneratedKeys="true">
+    insert into sys_application_dictionary(
+  <trim suffix="" suffixOverrides=",">
+       <if test="appId != null and appId != ''"> app_id , </if>
+            <if test="name != null and name != ''"> name , </if>
+            <if test="dictionaryType != null and dictionaryType != ''"> dictionary_type , </if>
+            <if test="dictionaryTable != null and dictionaryTable != ''"> dictionary_table , </if>
+            <if test="dictionarySql != null and dictionarySql != ''"> dictionary_sql , </if>
+            <if test="sorts != null"> sorts , </if>
+            <if test="id != null and id != ''"> id , </if>
+            <if test="create_user_id != null and create_user_id != ''"> create_user_id , </if>
+            <if test="create_time != null"> create_time , </if>
+            <if test="modify_time != null"> modify_time , </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id , </if>
+            <if test="org_id != null and org_id != ''"> org_id , </if>
+            <if test="companyId != null and companyId != ''"> company_id , </if>
+            <if test="sts != null and sts != ''"> sts , </if>
+            <if test="sorts == null ">sorts,</if>
+    <if test="sts == null ">sts,</if>
+  </trim>
+  )values(
+ <trim suffix="" suffixOverrides=",">
+       <if test="appId != null and appId != ''"> #{appId} ,</if>
+            <if test="name != null and name != ''"> #{name} ,</if>
+            <if test="dictionaryType != null and dictionaryType != ''"> #{dictionaryType} ,</if>
+            <if test="dictionaryTable != null and dictionaryTable != ''"> #{dictionaryTable} ,</if>
+            <if test="dictionarySql != null and dictionarySql != ''"> #{dictionarySql} ,</if>
+            <if test="sorts != null"> #{sorts} ,</if>
+            <if test="id != null and id != ''"> #{id} ,</if>
+            <if test="create_user_id != null and create_user_id != ''"> #{create_user_id} ,</if>
+            <if test="create_time != null"> #{create_time} ,</if>
+            <if test="modify_time != null"> #{modify_time} ,</if>
+            <if test="modify_user_id != null and modify_user_id != ''"> #{modify_user_id} ,</if>
+            <if test="org_id != null and org_id != ''"> #{org_id} ,</if>
+            <if test="companyId != null and companyId != ''"> #{companyId} ,</if>
+            <if test="sts != null and sts != ''"> #{sts} ,</if>
+            <if test="sorts == null ">(select (max(IFNULL( a.sorts, 0 )) + 1) as sort from sys_application_dictionary a WHERE a.sts = 'Y' ),</if>
+    <if test="sts == null ">'Y',</if>
+  </trim>
+  )  
+</insert>
+<!-- 批量新增 -->
+<insert id="entityInsertBatch" keyProperty="sorts" useGeneratedKeys="true">
+  insert into sys_application_dictionary(app_id, name, dictionary_type, dictionary_table, dictionary_sql, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts,  sts) 
+    values
+    <foreach collection="entities" item="entity" separator=",">
+    (#{entity.appId},#{entity.name},#{entity.dictionaryType},#{entity.dictionaryTable},#{entity.dictionarySql},#{entity.create_user_id},#{entity.create_time},#{entity.modify_time},#{entity.modify_user_id},#{entity.org_id},#{entity.companyId},#{entity.sts}, 'Y')
+    </foreach>
+</insert>
+<!-- 批量新增或者修改-->
+<insert id="entityInsertOrUpdateBatch" keyProperty="sorts" useGeneratedKeys="true">
+    insert into sys_application_dictionary(app_id, name, dictionary_type, dictionary_table, dictionary_sql, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts)
+    values
+    <foreach collection="entities" item="entity" separator=",">
+    (#{entity.appId},#{entity.name},#{entity.dictionaryType},#{entity.dictionaryTable},#{entity.dictionarySql},#{entity.create_user_id},#{entity.create_time},#{entity.modify_time},#{entity.modify_user_id},#{entity.org_id},#{entity.companyId},#{entity.sts})
+    </foreach>
+    on duplicate key update
+    app_id = values(app_id),
+    name = values(name),
+    dictionary_type = values(dictionary_type),
+    dictionary_table = values(dictionary_table),
+    dictionary_sql = values(dictionary_sql),
+    create_user_id = values(create_user_id),
+    create_time = values(create_time),
+    modify_time = values(modify_time),
+    modify_user_id = values(modify_user_id),
+    org_id = values(org_id),
+    company_id = values(company_id),
+    sts = values(sts)</insert>
+<!--通过主键修改方法-->
+<update id="entity_update" parameterType = "com.hzya.frame.sysnew.application.dictionary.entity.SysApplicationDictionaryEntity" >
+update sys_application_dictionary  set
+<trim suffix="" suffixOverrides=",">
+  <if test="appId != null and appId != ''"> app_id = #{appId},</if>
+  <if test="name != null and name != ''"> name = #{name},</if>
+  <if test="dictionaryType != null and dictionaryType != ''"> dictionary_type = #{dictionaryType},</if>
+  <if test="dictionaryTable != null and dictionaryTable != ''"> dictionary_table = #{dictionaryTable},</if>
+  <if test="dictionarySql != null and dictionarySql != ''"> dictionary_sql = #{dictionarySql},</if>
+  <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if>
+    <if test="create_time != null"> create_time = #{create_time},</if>
+    <if test="modify_time != null"> modify_time = #{modify_time},</if>
+    <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if>
+    <if test="org_id != null and org_id != ''"> org_id = #{org_id},</if>
+    <if test="companyId != null and companyId != ''"> company_id = #{companyId},</if>
+  <if test="sts != null and sts != ''"> sts = #{sts},</if>
+</trim>
+where sorts = #{sorts}
+</update>
+<!-- 逻辑删除 -->
+<update id="entity_logicDelete" parameterType = "com.hzya.frame.sysnew.application.dictionary.entity.SysApplicationDictionaryEntity" >
+update sys_application_dictionary  set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id}
+where sorts = #{sorts}
+</update>
+<!-- 多条件逻辑删除 -->
+<update id="entity_logicDelete_Multi_Condition" parameterType = "com.hzya.frame.sysnew.application.dictionary.entity.SysApplicationDictionaryEntity" >
+update sys_application_dictionary  set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id}
+ <trim prefix="where" prefixOverrides="and"> 
+        <if test="appId != null and appId != ''"> and app_id = #{appId} </if>
+            <if test="name != null and name != ''"> and name = #{name} </if>
+            <if test="dictionaryType != null and dictionaryType != ''"> and dictionary_type = #{dictionaryType} </if>
+            <if test="dictionaryTable != null and dictionaryTable != ''"> and dictionary_table = #{dictionaryTable} </if>
+            <if test="dictionarySql != null and dictionarySql != ''"> and dictionary_sql = #{dictionarySql} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+                                                                             <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+</update>
+<!--通过主键删除-->
+<delete id="entity_delete">
+    delete from sys_application_dictionary where sorts = #{sorts}
+</delete>
+
+</mapper>
+
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/service/ISysApplicationDictionaryService.java b/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/service/ISysApplicationDictionaryService.java
new file mode 100644
index 00000000..08d06dd5
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/service/ISysApplicationDictionaryService.java
@@ -0,0 +1,12 @@
+package com.hzya.frame.sysnew.application.dictionary.service;
+
+import com.hzya.frame.sysnew.application.dictionary.entity.SysApplicationDictionaryEntity;
+import com.hzya.frame.basedao.service.IBaseService;
+/**
+ * 应用数据字典表(SysApplicationDictionary)表服务接口
+ *
+ * @author makejava
+ * @since 2024-08-12 16:41:22
+ */
+public interface ISysApplicationDictionaryService extends IBaseService<SysApplicationDictionaryEntity, String>{
+}
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/service/impl/SysApplicationDictionaryServiceImpl.java b/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/service/impl/SysApplicationDictionaryServiceImpl.java
new file mode 100644
index 00000000..cee72fe9
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/dictionary/service/impl/SysApplicationDictionaryServiceImpl.java
@@ -0,0 +1,26 @@
+package com.hzya.frame.sysnew.application.dictionary.service.impl;
+
+import com.hzya.frame.sysnew.application.dictionary.entity.SysApplicationDictionaryEntity;
+import com.hzya.frame.sysnew.application.dictionary.dao.ISysApplicationDictionaryDao;
+import com.hzya.frame.sysnew.application.dictionary.service.ISysApplicationDictionaryService;
+import org.springframework.stereotype.Service; 
+import org.springframework.beans.factory.annotation.Autowired;
+import javax.annotation.Resource;
+import com.hzya.frame.basedao.service.impl.BaseService;
+/**
+ * 应用数据字典表(SysApplicationDictionary)表服务实现类
+ *
+ * @author makejava
+ * @since 2024-08-12 16:41:25
+ */
+@Service(value = "sysApplicationDictionaryService")
+public class SysApplicationDictionaryServiceImpl extends BaseService<SysApplicationDictionaryEntity, String> implements ISysApplicationDictionaryService {
+     
+    private ISysApplicationDictionaryDao sysApplicationDictionaryDao;
+    
+    @Autowired
+	public void setSysApplicationDictionaryDao(ISysApplicationDictionaryDao dao) {
+		this.sysApplicationDictionaryDao = dao;
+		this.dao = dao;
+	}
+}
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/dao/ISysApplicationDictionaryDetailDao.java b/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/dao/ISysApplicationDictionaryDetailDao.java
new file mode 100644
index 00000000..485ee68f
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/dao/ISysApplicationDictionaryDetailDao.java
@@ -0,0 +1,15 @@
+package com.hzya.frame.sysnew.application.dictionaryDetail.dao;
+
+import com.hzya.frame.sysnew.application.dictionaryDetail.entity.SysApplicationDictionaryDetailEntity;
+import com.hzya.frame.basedao.dao.IBaseDao; 
+
+/**
+ * 应用数据字典明细表(sys_application_dictionary_detail: table)表数据库访问层
+ *
+ * @author makejava
+ * @since 2024-08-12 16:52:14
+ */
+public interface ISysApplicationDictionaryDetailDao extends IBaseDao<SysApplicationDictionaryDetailEntity, String> {
+
+}
+
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/dao/impl/SysApplicationDictionaryDetailDaoImpl.java b/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/dao/impl/SysApplicationDictionaryDetailDaoImpl.java
new file mode 100644
index 00000000..6b61f3af
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/dao/impl/SysApplicationDictionaryDetailDaoImpl.java
@@ -0,0 +1,17 @@
+package com.hzya.frame.sysnew.application.dictionaryDetail.dao.impl;
+
+import com.hzya.frame.sysnew.application.dictionaryDetail.entity.SysApplicationDictionaryDetailEntity;
+import com.hzya.frame.sysnew.application.dictionaryDetail.dao.ISysApplicationDictionaryDetailDao;
+import org.springframework.stereotype.Repository;
+import com.hzya.frame.basedao.dao.MybatisGenericDao;
+/**
+ * 应用数据字典明细表(SysApplicationDictionaryDetail)表数据库访问层
+ *
+ * @author makejava
+ * @since 2024-08-12 16:52:14
+ */
+@Repository(value = "SysApplicationDictionaryDetailDaoImpl")
+public class SysApplicationDictionaryDetailDaoImpl extends MybatisGenericDao<SysApplicationDictionaryDetailEntity, String> implements ISysApplicationDictionaryDetailDao{
+ 
+}
+
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/entity/SysApplicationDictionaryDetailEntity.java b/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/entity/SysApplicationDictionaryDetailEntity.java
new file mode 100644
index 00000000..0cfdbf6d
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/entity/SysApplicationDictionaryDetailEntity.java
@@ -0,0 +1,76 @@
+package com.hzya.frame.sysnew.application.dictionaryDetail.entity;
+
+import java.util.Date;
+import com.hzya.frame.web.entity.BaseEntity;
+/**
+ * 应用数据字典明细表(SysApplicationDictionaryDetail)实体类
+ *
+ * @author makejava
+ * @since 2024-08-12 16:52:14
+ */
+public class SysApplicationDictionaryDetailEntity extends BaseEntity {
+ 
+  /**  应用id */
+   private String appId;
+  /**  应用数据字典主表id */
+   private String dictionaryId;
+  /**  字段名称 */
+   private String fieldName;
+  /**  字段编码 */
+   private String fieldCode;
+  /**  字段类型 */
+   private String fieldType;
+  /**  公司id */
+   private String companyId;
+
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        this.appId = appId;
+    }
+
+    public String getDictionaryId() {
+        return dictionaryId;
+    }
+
+    public void setDictionaryId(String dictionaryId) {
+        this.dictionaryId = dictionaryId;
+    }
+
+    public String getFieldName() {
+        return fieldName;
+    }
+
+    public void setFieldName(String fieldName) {
+        this.fieldName = fieldName;
+    }
+
+    public String getFieldCode() {
+        return fieldCode;
+    }
+
+    public void setFieldCode(String fieldCode) {
+        this.fieldCode = fieldCode;
+    }
+
+    public String getFieldType() {
+        return fieldType;
+    }
+
+    public void setFieldType(String fieldType) {
+        this.fieldType = fieldType;
+    }
+
+    public String getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(String companyId) {
+        this.companyId = companyId;
+    }
+
+}
+
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/entity/SysApplicationDictionaryDetailEntity.xml b/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/entity/SysApplicationDictionaryDetailEntity.xml
new file mode 100644
index 00000000..427734b1
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/entity/SysApplicationDictionaryDetailEntity.xml
@@ -0,0 +1,256 @@
+<?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="com.hzya.frame.sysnew.application.dictionaryDetail.dao.impl.SysApplicationDictionaryDetailDaoImpl">
+
+    <resultMap id="get-SysApplicationDictionaryDetailEntity-result" type="com.hzya.frame.sysnew.application.dictionaryDetail.entity.SysApplicationDictionaryDetailEntity" >
+       <result property="appId" column="app_id" jdbcType="VARCHAR"/>
+           <result property="dictionaryId" column="dictionary_id" jdbcType="VARCHAR"/>
+           <result property="fieldName" column="field_name" jdbcType="VARCHAR"/>
+           <result property="fieldCode" column="field_code" jdbcType="VARCHAR"/>
+           <result property="fieldType" column="field_type" jdbcType="VARCHAR"/>
+           <result property="sorts" column="sorts" jdbcType="INTEGER"/>
+           <result property="id" column="id" jdbcType="VARCHAR"/>
+           <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/>
+           <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+           <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/>
+           <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/>
+           <result property="org_id" column="org_id" jdbcType="VARCHAR"/>
+           <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+           <result property="sts" column="sts" jdbcType="VARCHAR"/>
+        </resultMap>
+    <!-- 查询的字段-->
+    <sql id = "SysApplicationDictionaryDetailEntity_Base_Column_List">
+        app_id
+       ,dictionary_id 
+        ,field_name 
+        ,field_code 
+        ,field_type 
+        ,sorts 
+        ,id 
+        ,create_user_id 
+        ,create_time 
+        ,modify_time 
+        ,modify_user_id 
+        ,org_id 
+        ,company_id 
+        ,sts 
+     </sql>
+ <!-- 查询 采用==查询 -->
+ <select id="entity_list_base" resultMap="get-SysApplicationDictionaryDetailEntity-result" parameterType = "com.hzya.frame.sysnew.application.dictionaryDetail.entity.SysApplicationDictionaryDetailEntity">
+    select
+    <include refid="SysApplicationDictionaryDetailEntity_Base_Column_List" />
+    from sys_application_dictionary_detail
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="appId != null and appId != ''"> and app_id = #{appId} </if>
+            <if test="dictionaryId != null and dictionaryId != ''"> and dictionary_id = #{dictionaryId} </if>
+            <if test="fieldName != null and fieldName != ''"> and field_name = #{fieldName} </if>
+            <if test="fieldCode != null and fieldCode != ''"> and field_code = #{fieldCode} </if>
+            <if test="fieldType != null and fieldType != ''"> and field_type = #{fieldType} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if>
+            <if test="create_time != null"> and create_time = #{create_time} </if>
+            <if test="modify_time != null"> and modify_time = #{modify_time} </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if>
+            <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if>
+            <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+    
+<!-- 查询符合条件的数量 -->
+<select id="entity_count" resultType="Integer" parameterType = "com.hzya.frame.sysnew.application.dictionaryDetail.entity.SysApplicationDictionaryDetailEntity">
+        select  count(1)   from sys_application_dictionary_detail
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="appId != null and appId != ''"> and app_id = #{appId} </if>
+            <if test="dictionaryId != null and dictionaryId != ''"> and dictionary_id = #{dictionaryId} </if>
+            <if test="fieldName != null and fieldName != ''"> and field_name = #{fieldName} </if>
+            <if test="fieldCode != null and fieldCode != ''"> and field_code = #{fieldCode} </if>
+            <if test="fieldType != null and fieldType != ''"> and field_type = #{fieldType} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id = #{create_user_id} </if>
+            <if test="create_time != null"> and create_time = #{create_time} </if>
+            <if test="modify_time != null"> and modify_time = #{modify_time} </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id = #{modify_user_id} </if>
+            <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if>
+            <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null "> order by ${sort} ${order}</if>
+    </select>
+
+    <!-- 分页查询列表 采用like格式 -->
+<select id="entity_list_like" resultMap="get-SysApplicationDictionaryDetailEntity-result" parameterType = "com.hzya.frame.sysnew.application.dictionaryDetail.entity.SysApplicationDictionaryDetailEntity">
+    select
+    <include refid="SysApplicationDictionaryDetailEntity_Base_Column_List" />
+    from sys_application_dictionary_detail
+    <trim prefix="where" prefixOverrides="and"> 
+        <if test="appId != null and appId != ''"> and app_id like concat('%',#{appId},'%') </if>
+            <if test="dictionaryId != null and dictionaryId != ''"> and dictionary_id like concat('%',#{dictionaryId},'%') </if>
+            <if test="fieldName != null and fieldName != ''"> and field_name like concat('%',#{fieldName},'%') </if>
+            <if test="fieldCode != null and fieldCode != ''"> and field_code like concat('%',#{fieldCode},'%') </if>
+            <if test="fieldType != null and fieldType != ''"> and field_type like concat('%',#{fieldType},'%') </if>
+            <if test="sorts != null"> and sorts like concat('%',#{sorts},'%') </if>
+            <if test="id != null and id != ''"> and id like concat('%',#{id},'%') </if>
+            <if test="create_user_id != null and create_user_id != ''"> and create_user_id like concat('%',#{create_user_id},'%') </if>
+            <if test="create_time != null"> and create_time like concat('%',#{create_time},'%') </if>
+            <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> and modify_user_id like concat('%',#{modify_user_id},'%') </if>
+            <if test="org_id != null and org_id != ''"> and org_id like concat('%',#{org_id},'%') </if>
+            <if test="companyId != null and companyId != ''"> and company_id like concat('%',#{companyId},'%') </if>
+            <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+
+<!-- 查询列表 字段采用or格式 -->
+<select id="SysApplicationDictionaryDetailentity_list_or" resultMap="get-SysApplicationDictionaryDetailEntity-result" parameterType = "com.hzya.frame.sysnew.application.dictionaryDetail.entity.SysApplicationDictionaryDetailEntity">
+    select
+    <include refid="SysApplicationDictionaryDetailEntity_Base_Column_List" />
+    from sys_application_dictionary_detail
+    <trim prefix="where" prefixOverrides="and"> 
+         <if test="appId != null and appId != ''"> or app_id = #{appId} </if>
+             <if test="dictionaryId != null and dictionaryId != ''"> or dictionary_id = #{dictionaryId} </if>
+             <if test="fieldName != null and fieldName != ''"> or field_name = #{fieldName} </if>
+             <if test="fieldCode != null and fieldCode != ''"> or field_code = #{fieldCode} </if>
+             <if test="fieldType != null and fieldType != ''"> or field_type = #{fieldType} </if>
+             <if test="sorts != null"> or sorts = #{sorts} </if>
+             <if test="id != null and id != ''"> or id = #{id} </if>
+             <if test="create_user_id != null and create_user_id != ''"> or create_user_id = #{create_user_id} </if>
+              <if test="create_time != null"> or create_time = #{create_time} </if>
+              <if test="modify_time != null"> or modify_time = #{modify_time} </if>
+              <if test="modify_user_id != null and modify_user_id != ''"> or modify_user_id = #{modify_user_id} </if>
+              <if test="org_id != null and org_id != ''"> or org_id = #{org_id} </if>
+              <if test="companyId != null and companyId != ''"> or company_id = #{companyId} </if>
+             <if test="sts != null and sts != ''"> or sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+    <if test=" sort == null or sort == ''.toString()  "> order by sorts asc</if>
+    <if test=" sort !='' and sort!=null and order !='' and order!=null ">order by ${sort} ${order}</if>
+</select>
+
+<!--新增所有列-->
+<insert id="entity_insert" parameterType = "com.hzya.frame.sysnew.application.dictionaryDetail.entity.SysApplicationDictionaryDetailEntity" keyProperty="sorts" useGeneratedKeys="true">
+    insert into sys_application_dictionary_detail(
+  <trim suffix="" suffixOverrides=",">
+       <if test="appId != null and appId != ''"> app_id , </if>
+            <if test="dictionaryId != null and dictionaryId != ''"> dictionary_id , </if>
+            <if test="fieldName != null and fieldName != ''"> field_name , </if>
+            <if test="fieldCode != null and fieldCode != ''"> field_code , </if>
+            <if test="fieldType != null and fieldType != ''"> field_type , </if>
+            <if test="sorts != null"> sorts , </if>
+            <if test="id != null and id != ''"> id , </if>
+            <if test="create_user_id != null and create_user_id != ''"> create_user_id , </if>
+            <if test="create_time != null"> create_time , </if>
+            <if test="modify_time != null"> modify_time , </if>
+            <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id , </if>
+            <if test="org_id != null and org_id != ''"> org_id , </if>
+            <if test="companyId != null and companyId != ''"> company_id , </if>
+            <if test="sts != null and sts != ''"> sts , </if>
+            <if test="sorts == null ">sorts,</if>
+    <if test="sts == null ">sts,</if>
+  </trim>
+  )values(
+ <trim suffix="" suffixOverrides=",">
+       <if test="appId != null and appId != ''"> #{appId} ,</if>
+            <if test="dictionaryId != null and dictionaryId != ''"> #{dictionaryId} ,</if>
+            <if test="fieldName != null and fieldName != ''"> #{fieldName} ,</if>
+            <if test="fieldCode != null and fieldCode != ''"> #{fieldCode} ,</if>
+            <if test="fieldType != null and fieldType != ''"> #{fieldType} ,</if>
+            <if test="sorts != null"> #{sorts} ,</if>
+            <if test="id != null and id != ''"> #{id} ,</if>
+            <if test="create_user_id != null and create_user_id != ''"> #{create_user_id} ,</if>
+            <if test="create_time != null"> #{create_time} ,</if>
+            <if test="modify_time != null"> #{modify_time} ,</if>
+            <if test="modify_user_id != null and modify_user_id != ''"> #{modify_user_id} ,</if>
+            <if test="org_id != null and org_id != ''"> #{org_id} ,</if>
+            <if test="companyId != null and companyId != ''"> #{companyId} ,</if>
+            <if test="sts != null and sts != ''"> #{sts} ,</if>
+            <if test="sorts == null ">(select (max(IFNULL( a.sorts, 0 )) + 1) as sort from sys_application_dictionary_detail a WHERE a.sts = 'Y' ),</if>
+    <if test="sts == null ">'Y',</if>
+  </trim>
+  )  
+</insert>
+<!-- 批量新增 -->
+<insert id="entityInsertBatch" keyProperty="sorts" useGeneratedKeys="true">
+  insert into sys_application_dictionary_detail(app_id, dictionary_id, field_name, field_code, field_type, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts,  sts) 
+    values
+    <foreach collection="entities" item="entity" separator=",">
+    (#{entity.appId},#{entity.dictionaryId},#{entity.fieldName},#{entity.fieldCode},#{entity.fieldType},#{entity.create_user_id},#{entity.create_time},#{entity.modify_time},#{entity.modify_user_id},#{entity.org_id},#{entity.companyId},#{entity.sts}, 'Y')
+    </foreach>
+</insert>
+<!-- 批量新增或者修改-->
+<insert id="entityInsertOrUpdateBatch" keyProperty="sorts" useGeneratedKeys="true">
+    insert into sys_application_dictionary_detail(app_id, dictionary_id, field_name, field_code, field_type, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts)
+    values
+    <foreach collection="entities" item="entity" separator=",">
+    (#{entity.appId},#{entity.dictionaryId},#{entity.fieldName},#{entity.fieldCode},#{entity.fieldType},#{entity.create_user_id},#{entity.create_time},#{entity.modify_time},#{entity.modify_user_id},#{entity.org_id},#{entity.companyId},#{entity.sts})
+    </foreach>
+    on duplicate key update
+    app_id = values(app_id),
+    dictionary_id = values(dictionary_id),
+    field_name = values(field_name),
+    field_code = values(field_code),
+    field_type = values(field_type),
+    create_user_id = values(create_user_id),
+    create_time = values(create_time),
+    modify_time = values(modify_time),
+    modify_user_id = values(modify_user_id),
+    org_id = values(org_id),
+    company_id = values(company_id),
+    sts = values(sts)</insert>
+<!--通过主键修改方法-->
+<update id="entity_update" parameterType = "com.hzya.frame.sysnew.application.dictionaryDetail.entity.SysApplicationDictionaryDetailEntity" >
+update sys_application_dictionary_detail  set
+<trim suffix="" suffixOverrides=",">
+  <if test="appId != null and appId != ''"> app_id = #{appId},</if>
+  <if test="dictionaryId != null and dictionaryId != ''"> dictionary_id = #{dictionaryId},</if>
+  <if test="fieldName != null and fieldName != ''"> field_name = #{fieldName},</if>
+  <if test="fieldCode != null and fieldCode != ''"> field_code = #{fieldCode},</if>
+  <if test="fieldType != null and fieldType != ''"> field_type = #{fieldType},</if>
+  <if test="create_user_id != null and create_user_id != ''"> create_user_id = #{create_user_id},</if>
+    <if test="create_time != null"> create_time = #{create_time},</if>
+    <if test="modify_time != null"> modify_time = #{modify_time},</if>
+    <if test="modify_user_id != null and modify_user_id != ''"> modify_user_id = #{modify_user_id},</if>
+    <if test="org_id != null and org_id != ''"> org_id = #{org_id},</if>
+    <if test="companyId != null and companyId != ''"> company_id = #{companyId},</if>
+  <if test="sts != null and sts != ''"> sts = #{sts},</if>
+</trim>
+where sorts = #{sorts}
+</update>
+<!-- 逻辑删除 -->
+<update id="entity_logicDelete" parameterType = "com.hzya.frame.sysnew.application.dictionaryDetail.entity.SysApplicationDictionaryDetailEntity" >
+update sys_application_dictionary_detail  set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id}
+where sorts = #{sorts}
+</update>
+<!-- 多条件逻辑删除 -->
+<update id="entity_logicDelete_Multi_Condition" parameterType = "com.hzya.frame.sysnew.application.dictionaryDetail.entity.SysApplicationDictionaryDetailEntity" >
+update sys_application_dictionary_detail  set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id}
+ <trim prefix="where" prefixOverrides="and"> 
+        <if test="appId != null and appId != ''"> and app_id = #{appId} </if>
+            <if test="dictionaryId != null and dictionaryId != ''"> and dictionary_id = #{dictionaryId} </if>
+            <if test="fieldName != null and fieldName != ''"> and field_name = #{fieldName} </if>
+            <if test="fieldCode != null and fieldCode != ''"> and field_code = #{fieldCode} </if>
+            <if test="fieldType != null and fieldType != ''"> and field_type = #{fieldType} </if>
+            <if test="sorts != null"> and sorts = #{sorts} </if>
+            <if test="id != null and id != ''"> and id = #{id} </if>
+                                                                             <if test="companyId != null and companyId != ''"> and company_id = #{companyId} </if>
+            <if test="sts != null and sts != ''"> and sts = #{sts} </if>
+            and sts='Y'
+    </trim>
+</update>
+<!--通过主键删除-->
+<delete id="entity_delete">
+    delete from sys_application_dictionary_detail where sorts = #{sorts}
+</delete>
+
+</mapper>
+
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/service/ISysApplicationDictionaryDetailService.java b/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/service/ISysApplicationDictionaryDetailService.java
new file mode 100644
index 00000000..5b40d55d
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/service/ISysApplicationDictionaryDetailService.java
@@ -0,0 +1,12 @@
+package com.hzya.frame.sysnew.application.dictionaryDetail.service;
+
+import com.hzya.frame.sysnew.application.dictionaryDetail.entity.SysApplicationDictionaryDetailEntity;
+import com.hzya.frame.basedao.service.IBaseService;
+/**
+ * 应用数据字典明细表(SysApplicationDictionaryDetail)表服务接口
+ *
+ * @author makejava
+ * @since 2024-08-12 16:52:14
+ */
+public interface ISysApplicationDictionaryDetailService extends IBaseService<SysApplicationDictionaryDetailEntity, String>{
+}
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/service/impl/SysApplicationDictionaryDetailServiceImpl.java b/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/service/impl/SysApplicationDictionaryDetailServiceImpl.java
new file mode 100644
index 00000000..1294c8ea
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/dictionaryDetail/service/impl/SysApplicationDictionaryDetailServiceImpl.java
@@ -0,0 +1,26 @@
+package com.hzya.frame.sysnew.application.dictionaryDetail.service.impl;
+
+import com.hzya.frame.sysnew.application.dictionaryDetail.entity.SysApplicationDictionaryDetailEntity;
+import com.hzya.frame.sysnew.application.dictionaryDetail.dao.ISysApplicationDictionaryDetailDao;
+import com.hzya.frame.sysnew.application.dictionaryDetail.service.ISysApplicationDictionaryDetailService;
+import org.springframework.stereotype.Service; 
+import org.springframework.beans.factory.annotation.Autowired;
+import javax.annotation.Resource;
+import com.hzya.frame.basedao.service.impl.BaseService;
+/**
+ * 应用数据字典明细表(SysApplicationDictionaryDetail)表服务实现类
+ *
+ * @author makejava
+ * @since 2024-08-12 16:52:14
+ */
+@Service(value = "sysApplicationDictionaryDetailService")
+public class SysApplicationDictionaryDetailServiceImpl extends BaseService<SysApplicationDictionaryDetailEntity, String> implements ISysApplicationDictionaryDetailService {
+     
+    private ISysApplicationDictionaryDetailDao sysApplicationDictionaryDetailDao;
+    
+    @Autowired
+	public void setSysApplicationDictionaryDetailDao(ISysApplicationDictionaryDetailDao dao) {
+		this.sysApplicationDictionaryDetailDao = dao;
+		this.dao = dao;
+	}
+}
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.java b/service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.java
index 7aa5471a..5929e14b 100644
--- a/service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.java
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.java
@@ -16,6 +16,8 @@ public class SysApplicationPluginEntity extends BaseEntity {
    private String pluginName;
   /**  插件编号 */
    private String pluginCode;
+  /**  插件包名 */
+   private String pluginPackageName;
   /**  插件版本 */
    private String pluginVersion;
   /**  描述 */
@@ -25,6 +27,23 @@ public class SysApplicationPluginEntity extends BaseEntity {
   /**  启用停用(1启用2停用) */
    private String pluginStatus;
 
+   private String attachmentId;
+
+    public String getPluginPackageName() {
+        return pluginPackageName;
+    }
+
+    public void setPluginPackageName(String pluginPackageName) {
+        this.pluginPackageName = pluginPackageName;
+    }
+
+    public String getAttachmentId() {
+        return attachmentId;
+    }
+
+    public void setAttachmentId(String attachmentId) {
+        this.attachmentId = attachmentId;
+    }
 
     public String getAppId() {
         return appId;
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.xml b/service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.xml
index bfcebf0d..90b5444d 100644
--- a/service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.xml
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/plugin/entity/SysApplicationPluginEntity.xml
@@ -18,6 +18,8 @@
            <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/>
            <result property="sts" column="sts" jdbcType="VARCHAR"/>
            <result property="org_id" column="org_id" jdbcType="VARCHAR"/>
+           <result property="attachmentId" column="attachment_id" jdbcType="VARCHAR"/>
+           <result property="pluginPackageName" column="plugin_package_name" jdbcType="VARCHAR"/>
         </resultMap>
     <!-- 查询的字段-->
     <sql id = "SysApplicationPluginEntity_Base_Column_List">
@@ -35,7 +37,9 @@
         ,modify_user_id 
         ,modify_time 
         ,sts 
-        ,org_id 
+        ,org_id
+        ,attachment_id
+        ,plugin_package_name
      </sql>
     <!--通过ID获取数据 -->
     <select id="entity_get" resultMap="get-SysApplicationPluginEntity-result">
@@ -64,6 +68,8 @@
             <if test="modify_time != null"> and modify_time = #{modify_time} </if>
             <if test="sts != null and sts != ''"> and sts = #{sts} </if>
             <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if>
+            <if test="attachmentId != null and attachmentId != ''"> and attachment_id = #{attachmentId} </if>
+            <if test="pluginPackageName != null and pluginPackageName != ''"> and plugin_package_name = #{pluginPackageName} </if>
             and sts='Y'
     </trim>
     <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
@@ -89,6 +95,8 @@
             <if test="modify_time != null"> and modify_time = #{modify_time} </if>
             <if test="sts != null and sts != ''"> and sts = #{sts} </if>
             <if test="org_id != null and org_id != ''"> and org_id = #{org_id} </if>
+            <if test="attachmentId != null and attachmentId != ''"> and attachment_id = #{attachmentId} </if>
+            <if test="pluginPackageName != null and pluginPackageName != ''"> and plugin_package_name = #{pluginPackageName} </if>
             and sts='Y'
     </trim>
     <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
@@ -116,6 +124,8 @@
             <if test="modify_time != null"> and modify_time like concat('%',#{modify_time},'%') </if>
             <if test="sts != null and sts != ''"> and sts like concat('%',#{sts},'%') </if>
             <if test="org_id != null and org_id != ''"> and org_id like concat('%',#{org_id},'%') </if>
+            <if test="attachmentId != null and attachmentId != ''"> and attachment_id like concat('%',#{attachmentId},'%') </if>
+            <if test="pluginPackageName != null and pluginPackageName != ''"> and plugin_package_name like concat('%',#{pluginPackageName},'%') </if>
             and sts='Y'
     </trim>
     <if test=" sort == null or sort == ''.toString() "> order by sorts asc</if>
@@ -143,6 +153,8 @@
               <if test="modify_time != null"> or modify_time = #{modify_time} </if>
               <if test="sts != null and sts != ''"> or sts = #{sts} </if>
              <if test="org_id != null and org_id != ''"> or org_id = #{org_id} </if>
+             <if test="attachmentId != null and attachmentId != ''"> or attachment_id = #{attachmentId} </if>
+             <if test="pluginPackageName != null and pluginPackageName != ''"> or plugin_package_name = #{pluginPackageName} </if>
              and sts='Y'
     </trim>
     <if test=" sort == null or sort == ''.toString()  "> order by sorts asc</if>
@@ -168,6 +180,8 @@
             <if test="modify_time != null"> modify_time , </if>
             <if test="sts != null and sts != ''"> sts , </if>
             <if test="org_id != null and org_id != ''"> org_id , </if>
+            <if test="attachmentId != null and attachmentId != ''"> attachment_id , </if>
+            <if test="pluginPackageName != null and pluginPackageName != ''"> plugin_package_name , </if>
     <if test="sts == null ">sts,</if>
   </trim>
   )values(
@@ -187,6 +201,8 @@
             <if test="modify_time != null"> #{modify_time} ,</if>
             <if test="sts != null and sts != ''"> #{sts} ,</if>
             <if test="org_id != null and org_id != ''"> #{org_id} ,</if>
+            <if test="attachmentId != null and attachmentId != ''"> #{attachmentId} ,</if>
+            <if test="pluginPackageName != null and pluginPackageName != ''"> #{pluginPackageName} ,</if>
     <if test="sts == null ">'Y',</if>
   </trim>
   )  
@@ -239,6 +255,8 @@ update sys_application_plugin  set
     <if test="modify_time != null"> modify_time = #{modify_time},</if>
     <if test="sts != null and sts != ''"> sts = #{sts},</if>
   <if test="org_id != null and org_id != ''"> org_id = #{org_id},</if>
+    <if test="attachmentId != null and attachmentId != ''"> attachment_id = #{attachmentId},</if>
+    <if test="pluginPackageName != null and pluginPackageName != ''"> plugin_package_name = #{pluginPackageName},</if>
   </trim>
 where id = #{id}
 </update>
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/service/ISysApplicationService.java b/service/src/main/java/com/hzya/frame/sysnew/application/service/ISysApplicationService.java
index e1f3290a..c468ffe1 100644
--- a/service/src/main/java/com/hzya/frame/sysnew/application/service/ISysApplicationService.java
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/service/ISysApplicationService.java
@@ -253,6 +253,8 @@ public interface ISysApplicationService extends IBaseService<SysApplicationEntit
      **/
     JsonResultEntity saveAppPlugin(JSONObject jsonObject);
 
+    JsonResultEntity deleteAppPluginPackage(JSONObject jsonObject);
+
     /**
      * @Author lvleigang
      * @Description  插件修改接口
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/service/impl/ApplicationCache.java b/service/src/main/java/com/hzya/frame/sysnew/application/service/impl/ApplicationCache.java
index dc0747d0..16daadce 100644
--- a/service/src/main/java/com/hzya/frame/sysnew/application/service/impl/ApplicationCache.java
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/service/impl/ApplicationCache.java
@@ -104,7 +104,7 @@ public class ApplicationCache {
                 SysApplicationApiAuthEntity sysApplicationApiAuthEntity = new SysApplicationApiAuthEntity();
                 sysApplicationApiAuthEntity.setSts("Y");
                 sysApplicationApiAuthEntity.setSystemStatus("1");
-                List<SysApplicationApiAuthEntity> sysApplicationApiAuthEntities = sysApplicationApiAuthDao.queryByLike(sysApplicationApiAuthEntity);
+                List<SysApplicationApiAuthEntity> sysApplicationApiAuthEntities = sysApplicationApiAuthDao.queryBase(sysApplicationApiAuthEntity);
                 if(sysApplicationApiAuthEntities != null && sysApplicationApiAuthEntities.size() > 0){
                     for (int i = 0; i < sysApplicationApiAuthEntities.size(); i++) {
                         applicationApiAuthMap.put("name"+sysApplicationApiAuthEntities.get(i).getName()+"appId"+sysApplicationApiAuthEntities.get(i).getAppId(), sysApplicationApiAuthEntities.get(i));
diff --git a/service/src/main/java/com/hzya/frame/sysnew/application/service/impl/SysApplicationServiceImpl.java b/service/src/main/java/com/hzya/frame/sysnew/application/service/impl/SysApplicationServiceImpl.java
index 81bfb6c3..1e60cfa4 100644
--- a/service/src/main/java/com/hzya/frame/sysnew/application/service/impl/SysApplicationServiceImpl.java
+++ b/service/src/main/java/com/hzya/frame/sysnew/application/service/impl/SysApplicationServiceImpl.java
@@ -61,6 +61,7 @@ import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.util.EntityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Service;
 
@@ -70,6 +71,9 @@ import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
 import java.lang.reflect.Method;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.*;
 
 /**
@@ -116,6 +120,8 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity,
     @Resource
     private com.hzya.frame.sysnew.application.service.impl.ApplicationCache applicationCache;
 
+    @Value("${savefile.tomcatpath}")
+    public String TOMCATPATH;
     //多线程请求加锁 HttpRequest 构造方法是静态的
     private final Object lock = new Object();
 
@@ -1352,6 +1358,31 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity,
         return BaseResult.getSuccessMessageEntity("保存插件成功", entity.getId());
     }
 
+    @Override
+    public JsonResultEntity deleteAppPluginPackage(JSONObject object){
+        SysApplicationPluginEntity entity = getData("jsonStr", object, SysApplicationPluginEntity.class);
+        if (entity == null) {
+            return BaseResult.getFailureMessageEntity("参数不允许为空");
+        }
+        if (entity.getId() == null || "".equals(entity.getId())) {
+            return BaseResult.getFailureMessageEntity("系统错误");
+        }
+        String pluginPackageName = entity.getPluginPackageName();
+
+        String classPath = TOMCATPATH + "com\\hzya\\frame\\plugin\\" + pluginPackageName;
+
+        String xmlPath = TOMCATPATH + "cfgHome\\plugin\\" + pluginPackageName;
+
+        try{
+            deleteDirectory(classPath);
+            deleteDirectory(xmlPath);
+            System.out.println("Directory deleted successfully.");
+        }catch (Exception e){
+            return BaseResult.getFailureMessageEntity("删除插件包失败"+e.getMessage());
+        }
+        return BaseResult.getSuccessMessageEntity("删除插件包成功");
+    }
+
     /**
      * @param object
      * @return
@@ -2023,6 +2054,23 @@ public class SysApplicationServiceImpl extends BaseService<SysApplicationEntity,
         return null;
     }
 
+    public static void deleteDirectory(String directoryPath) throws IOException {
+        Path path = Paths.get(directoryPath);
+
+        if (Files.exists(path) && Files.isDirectory(path)) {
+            Files.walk(path)
+                    .sorted((p1, p2) -> -1) // 从子目录到父目录排序,确保先删除子目录
+                    .forEach(p -> {
+                        try {
+                            Files.delete(p);
+                        } catch (IOException e) {
+                            System.err.println("Error when deleting file: " + p.toString());
+                            e.printStackTrace();
+                        }
+                    });
+        }
+    }
+
     private SysApplicationApiAuthEntity getApiAuthByNameAppId(String name, String appId) {
         String str = "name" + name + "appId" + appId;
         Object o = applicationCache.get("3", str);
diff --git a/service/src/main/java/com/hzya/frame/sysnew/popedomInterface/service/impl/InterfaceCache.java b/service/src/main/java/com/hzya/frame/sysnew/popedomInterface/service/impl/InterfaceCache.java
index 913fb44f..5c2b56ed 100644
--- a/service/src/main/java/com/hzya/frame/sysnew/popedomInterface/service/impl/InterfaceCache.java
+++ b/service/src/main/java/com/hzya/frame/sysnew/popedomInterface/service/impl/InterfaceCache.java
@@ -153,7 +153,7 @@ public class InterfaceCache {
                 userRoleMap.clear();
                 SysUserRolesEntity sysUserRolesEntity = new SysUserRolesEntity();
                 sysUserRolesEntity.setSts("Y");
-                List<SysUserRolesEntity> sysUserRolesEntities = sysUserRolesDao.queryByLike(sysUserRolesEntity);
+                List<SysUserRolesEntity> sysUserRolesEntities = sysUserRolesDao.queryBase(sysUserRolesEntity);
                 if(sysUserRolesEntities != null && sysUserRolesEntities.size() > 0){
                     userRoleMap.addAll(sysUserRolesEntities);
                 }
diff --git a/service/src/main/resources/mapper/ExcelTemplateConfigDetailDao.xml b/service/src/main/resources/mapper/ExcelTemplateConfigDetailDao.xml
new file mode 100644
index 00000000..c305ed3c
--- /dev/null
+++ b/service/src/main/resources/mapper/ExcelTemplateConfigDetailDao.xml
@@ -0,0 +1,239 @@
+<?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="com.hzya.frame.excel.templateConfigDetial.dao.ExcelTemplateConfigDetailDao">
+
+    <resultMap type="com.hzya.frame.excel.templateConfigDetial.entity.ExcelTemplateConfigDetail" id="ExcelTemplateConfigDetailMap">
+        <result property="fieldName" column="field_name" jdbcType="VARCHAR"/>
+        <result property="fieldCode" column="field_code" jdbcType="VARCHAR"/>
+        <result property="fieldType" column="field_type" jdbcType="VARCHAR"/>
+        <result property="dictionaryDetailId" column="dictionary_detail_id" jdbcType="VARCHAR"/>
+        <result property="showName" column="show_name" jdbcType="VARCHAR"/>
+        <result property="sort" column="sort" jdbcType="INTEGER"/>
+        <result property="switch" column="switch" jdbcType="VARCHAR"/>
+        <result property="sorts" column="sorts" jdbcType="INTEGER"/>
+        <result property="id" column="id" jdbcType="VARCHAR"/>
+        <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
+        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+        <result property="modifyTime" column="modify_time" jdbcType="TIMESTAMP"/>
+        <result property="modifyUserId" column="modify_user_id" jdbcType="VARCHAR"/>
+        <result property="orgId" column="org_id" jdbcType="VARCHAR"/>
+        <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+        <result property="sts" column="sts" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultMap="ExcelTemplateConfigDetailMap">
+        select
+          field_name, field_code, field_type, dictionary_detail_id, show_name, sort, switch, sorts, id, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts
+        from excel_template_config_detail
+        where sorts = #{sorts}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultMap="ExcelTemplateConfigDetailMap">
+        select
+          field_name, field_code, field_type, dictionary_detail_id, show_name, sort, switch, sorts, id, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts
+        from excel_template_config_detail
+        <where>
+            <if test="fieldName != null and fieldName != ''">
+                and field_name = #{fieldName}
+            </if>
+            <if test="fieldCode != null and fieldCode != ''">
+                and field_code = #{fieldCode}
+            </if>
+            <if test="fieldType != null and fieldType != ''">
+                and field_type = #{fieldType}
+            </if>
+            <if test="dictionaryDetailId != null and dictionaryDetailId != ''">
+                and dictionary_detail_id = #{dictionaryDetailId}
+            </if>
+            <if test="showName != null and showName != ''">
+                and show_name = #{showName}
+            </if>
+            <if test="sort != null">
+                and sort = #{sort}
+            </if>
+            <if test="switch != null and switch != ''">
+                and switch = #{switch}
+            </if>
+            <if test="sorts != null">
+                and sorts = #{sorts}
+            </if>
+            <if test="id != null and id != ''">
+                and id = #{id}
+            </if>
+            <if test="createUserId != null and createUserId != ''">
+                and create_user_id = #{createUserId}
+            </if>
+            <if test="createTime != null">
+                and create_time = #{createTime}
+            </if>
+            <if test="modifyTime != null">
+                and modify_time = #{modifyTime}
+            </if>
+            <if test="modifyUserId != null and modifyUserId != ''">
+                and modify_user_id = #{modifyUserId}
+            </if>
+            <if test="orgId != null and orgId != ''">
+                and org_id = #{orgId}
+            </if>
+            <if test="companyId != null and companyId != ''">
+                and company_id = #{companyId}
+            </if>
+            <if test="sts != null and sts != ''">
+                and sts = #{sts}
+            </if>
+        </where>
+        limit #{pageable.offset}, #{pageable.pageSize}
+    </select>
+
+    <!--统计总行数-->
+    <select id="count" resultType="java.lang.Long">
+        select count(1)
+        from excel_template_config_detail
+        <where>
+            <if test="fieldName != null and fieldName != ''">
+                and field_name = #{fieldName}
+            </if>
+            <if test="fieldCode != null and fieldCode != ''">
+                and field_code = #{fieldCode}
+            </if>
+            <if test="fieldType != null and fieldType != ''">
+                and field_type = #{fieldType}
+            </if>
+            <if test="dictionaryDetailId != null and dictionaryDetailId != ''">
+                and dictionary_detail_id = #{dictionaryDetailId}
+            </if>
+            <if test="showName != null and showName != ''">
+                and show_name = #{showName}
+            </if>
+            <if test="sort != null">
+                and sort = #{sort}
+            </if>
+            <if test="switch != null and switch != ''">
+                and switch = #{switch}
+            </if>
+            <if test="sorts != null">
+                and sorts = #{sorts}
+            </if>
+            <if test="id != null and id != ''">
+                and id = #{id}
+            </if>
+            <if test="createUserId != null and createUserId != ''">
+                and create_user_id = #{createUserId}
+            </if>
+            <if test="createTime != null">
+                and create_time = #{createTime}
+            </if>
+            <if test="modifyTime != null">
+                and modify_time = #{modifyTime}
+            </if>
+            <if test="modifyUserId != null and modifyUserId != ''">
+                and modify_user_id = #{modifyUserId}
+            </if>
+            <if test="orgId != null and orgId != ''">
+                and org_id = #{orgId}
+            </if>
+            <if test="companyId != null and companyId != ''">
+                and company_id = #{companyId}
+            </if>
+            <if test="sts != null and sts != ''">
+                and sts = #{sts}
+            </if>
+        </where>
+    </select>
+
+    <!--新增所有列-->
+    <insert id="insert" keyProperty="sorts" useGeneratedKeys="true">
+        insert into excel_template_config_detail(field_name, field_code, field_type, dictionary_detail_id, show_name, sort, switch, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts)
+        values (#{fieldName}, #{fieldCode}, #{fieldType}, #{dictionaryDetailId}, #{showName}, #{sort}, #{switch}, #{createUserId}, #{createTime}, #{modifyTime}, #{modifyUserId}, #{orgId}, #{companyId}, #{sts})
+    </insert>
+
+    <insert id="insertBatch" keyProperty="sorts" useGeneratedKeys="true">
+        insert into excel_template_config_detail(field_name, field_code, field_type, dictionary_detail_id, show_name, sort, switch, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+        (#{entity.fieldName}, #{entity.fieldCode}, #{entity.fieldType}, #{entity.dictionaryDetailId}, #{entity.showName}, #{entity.sort}, #{entity.switch}, #{entity.createUserId}, #{entity.createTime}, #{entity.modifyTime}, #{entity.modifyUserId}, #{entity.orgId}, #{entity.companyId}, #{entity.sts})
+        </foreach>
+    </insert>
+
+    <insert id="insertOrUpdateBatch" keyProperty="sorts" useGeneratedKeys="true">
+        insert into excel_template_config_detail(field_name, field_code, field_type, dictionary_detail_id, show_name, sort, switch, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.fieldName}, #{entity.fieldCode}, #{entity.fieldType}, #{entity.dictionaryDetailId}, #{entity.showName}, #{entity.sort}, #{entity.switch}, #{entity.createUserId}, #{entity.createTime}, #{entity.modifyTime}, #{entity.modifyUserId}, #{entity.orgId}, #{entity.companyId}, #{entity.sts})
+        </foreach>
+        on duplicate key update
+        field_name = values(field_name),
+        field_code = values(field_code),
+        field_type = values(field_type),
+        dictionary_detail_id = values(dictionary_detail_id),
+        show_name = values(show_name),
+        sort = values(sort),
+        switch = values(switch),
+        create_user_id = values(create_user_id),
+        create_time = values(create_time),
+        modify_time = values(modify_time),
+        modify_user_id = values(modify_user_id),
+        org_id = values(org_id),
+        company_id = values(company_id),
+        sts = values(sts)
+    </insert>
+
+    <!--通过主键修改数据-->
+    <update id="update">
+        update excel_template_config_detail
+        <set>
+            <if test="fieldName != null and fieldName != ''">
+                field_name = #{fieldName},
+            </if>
+            <if test="fieldCode != null and fieldCode != ''">
+                field_code = #{fieldCode},
+            </if>
+            <if test="fieldType != null and fieldType != ''">
+                field_type = #{fieldType},
+            </if>
+            <if test="dictionaryDetailId != null and dictionaryDetailId != ''">
+                dictionary_detail_id = #{dictionaryDetailId},
+            </if>
+            <if test="showName != null and showName != ''">
+                show_name = #{showName},
+            </if>
+            <if test="sort != null">
+                sort = #{sort},
+            </if>
+            <if test="switch != null and switch != ''">
+                switch = #{switch},
+            </if>
+            <if test="createUserId != null and createUserId != ''">
+                create_user_id = #{createUserId},
+            </if>
+            <if test="createTime != null">
+                create_time = #{createTime},
+            </if>
+            <if test="modifyTime != null">
+                modify_time = #{modifyTime},
+            </if>
+            <if test="modifyUserId != null and modifyUserId != ''">
+                modify_user_id = #{modifyUserId},
+            </if>
+            <if test="orgId != null and orgId != ''">
+                org_id = #{orgId},
+            </if>
+            <if test="companyId != null and companyId != ''">
+                company_id = #{companyId},
+            </if>
+            <if test="sts != null and sts != ''">
+                sts = #{sts},
+            </if>
+        </set>
+        where sorts = #{sorts}
+    </update>
+
+    <!--通过主键删除-->
+    <delete id="deleteById">
+        delete from excel_template_config_detail where sorts = #{sorts}
+    </delete>
+
+</mapper>
+
diff --git a/service/src/main/resources/mapper/SysApplicationDictionaryDetailDao.xml b/service/src/main/resources/mapper/SysApplicationDictionaryDetailDao.xml
new file mode 100644
index 00000000..eac1c08e
--- /dev/null
+++ b/service/src/main/resources/mapper/SysApplicationDictionaryDetailDao.xml
@@ -0,0 +1,217 @@
+<?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="com.hzya.frame.sysnew.application.dictionaryDetail.dao.SysApplicationDictionaryDetailDao">
+
+    <resultMap type="com.hzya.frame.sysnew.application.dictionaryDetail.entity.SysApplicationDictionaryDetail" id="SysApplicationDictionaryDetailMap">
+        <result property="appId" column="app_id" jdbcType="VARCHAR"/>
+        <result property="dictionaryId" column="dictionary_id" jdbcType="VARCHAR"/>
+        <result property="fieldName" column="field_name" jdbcType="VARCHAR"/>
+        <result property="fieldCode" column="field_code" jdbcType="VARCHAR"/>
+        <result property="fieldType" column="field_type" jdbcType="VARCHAR"/>
+        <result property="sorts" column="sorts" jdbcType="INTEGER"/>
+        <result property="id" column="id" jdbcType="VARCHAR"/>
+        <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
+        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+        <result property="modifyTime" column="modify_time" jdbcType="TIMESTAMP"/>
+        <result property="modifyUserId" column="modify_user_id" jdbcType="VARCHAR"/>
+        <result property="orgId" column="org_id" jdbcType="VARCHAR"/>
+        <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+        <result property="sts" column="sts" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultMap="SysApplicationDictionaryDetailMap">
+        select
+          app_id, dictionary_id, field_name, field_code, field_type, sorts, id, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts
+        from sys_application_dictionary_detail
+        where sorts = #{sorts}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultMap="SysApplicationDictionaryDetailMap">
+        select
+          app_id, dictionary_id, field_name, field_code, field_type, sorts, id, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts
+        from sys_application_dictionary_detail
+        <where>
+            <if test="appId != null and appId != ''">
+                and app_id = #{appId}
+            </if>
+            <if test="dictionaryId != null and dictionaryId != ''">
+                and dictionary_id = #{dictionaryId}
+            </if>
+            <if test="fieldName != null and fieldName != ''">
+                and field_name = #{fieldName}
+            </if>
+            <if test="fieldCode != null and fieldCode != ''">
+                and field_code = #{fieldCode}
+            </if>
+            <if test="fieldType != null and fieldType != ''">
+                and field_type = #{fieldType}
+            </if>
+            <if test="sorts != null">
+                and sorts = #{sorts}
+            </if>
+            <if test="id != null and id != ''">
+                and id = #{id}
+            </if>
+            <if test="createUserId != null and createUserId != ''">
+                and create_user_id = #{createUserId}
+            </if>
+            <if test="createTime != null">
+                and create_time = #{createTime}
+            </if>
+            <if test="modifyTime != null">
+                and modify_time = #{modifyTime}
+            </if>
+            <if test="modifyUserId != null and modifyUserId != ''">
+                and modify_user_id = #{modifyUserId}
+            </if>
+            <if test="orgId != null and orgId != ''">
+                and org_id = #{orgId}
+            </if>
+            <if test="companyId != null and companyId != ''">
+                and company_id = #{companyId}
+            </if>
+            <if test="sts != null and sts != ''">
+                and sts = #{sts}
+            </if>
+        </where>
+        limit #{pageable.offset}, #{pageable.pageSize}
+    </select>
+
+    <!--统计总行数-->
+    <select id="count" resultType="java.lang.Long">
+        select count(1)
+        from sys_application_dictionary_detail
+        <where>
+            <if test="appId != null and appId != ''">
+                and app_id = #{appId}
+            </if>
+            <if test="dictionaryId != null and dictionaryId != ''">
+                and dictionary_id = #{dictionaryId}
+            </if>
+            <if test="fieldName != null and fieldName != ''">
+                and field_name = #{fieldName}
+            </if>
+            <if test="fieldCode != null and fieldCode != ''">
+                and field_code = #{fieldCode}
+            </if>
+            <if test="fieldType != null and fieldType != ''">
+                and field_type = #{fieldType}
+            </if>
+            <if test="sorts != null">
+                and sorts = #{sorts}
+            </if>
+            <if test="id != null and id != ''">
+                and id = #{id}
+            </if>
+            <if test="createUserId != null and createUserId != ''">
+                and create_user_id = #{createUserId}
+            </if>
+            <if test="createTime != null">
+                and create_time = #{createTime}
+            </if>
+            <if test="modifyTime != null">
+                and modify_time = #{modifyTime}
+            </if>
+            <if test="modifyUserId != null and modifyUserId != ''">
+                and modify_user_id = #{modifyUserId}
+            </if>
+            <if test="orgId != null and orgId != ''">
+                and org_id = #{orgId}
+            </if>
+            <if test="companyId != null and companyId != ''">
+                and company_id = #{companyId}
+            </if>
+            <if test="sts != null and sts != ''">
+                and sts = #{sts}
+            </if>
+        </where>
+    </select>
+
+    <!--新增所有列-->
+    <insert id="insert" keyProperty="sorts" useGeneratedKeys="true">
+        insert into sys_application_dictionary_detail(app_id, dictionary_id, field_name, field_code, field_type, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts)
+        values (#{appId}, #{dictionaryId}, #{fieldName}, #{fieldCode}, #{fieldType}, #{createUserId}, #{createTime}, #{modifyTime}, #{modifyUserId}, #{orgId}, #{companyId}, #{sts})
+    </insert>
+
+    <insert id="insertBatch" keyProperty="sorts" useGeneratedKeys="true">
+        insert into sys_application_dictionary_detail(app_id, dictionary_id, field_name, field_code, field_type, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+        (#{entity.appId}, #{entity.dictionaryId}, #{entity.fieldName}, #{entity.fieldCode}, #{entity.fieldType}, #{entity.createUserId}, #{entity.createTime}, #{entity.modifyTime}, #{entity.modifyUserId}, #{entity.orgId}, #{entity.companyId}, #{entity.sts})
+        </foreach>
+    </insert>
+
+    <insert id="insertOrUpdateBatch" keyProperty="sorts" useGeneratedKeys="true">
+        insert into sys_application_dictionary_detail(app_id, dictionary_id, field_name, field_code, field_type, create_user_id, create_time, modify_time, modify_user_id, org_id, company_id, sts)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.appId}, #{entity.dictionaryId}, #{entity.fieldName}, #{entity.fieldCode}, #{entity.fieldType}, #{entity.createUserId}, #{entity.createTime}, #{entity.modifyTime}, #{entity.modifyUserId}, #{entity.orgId}, #{entity.companyId}, #{entity.sts})
+        </foreach>
+        on duplicate key update
+        app_id = values(app_id),
+        dictionary_id = values(dictionary_id),
+        field_name = values(field_name),
+        field_code = values(field_code),
+        field_type = values(field_type),
+        create_user_id = values(create_user_id),
+        create_time = values(create_time),
+        modify_time = values(modify_time),
+        modify_user_id = values(modify_user_id),
+        org_id = values(org_id),
+        company_id = values(company_id),
+        sts = values(sts)
+    </insert>
+
+    <!--通过主键修改数据-->
+    <update id="update">
+        update sys_application_dictionary_detail
+        <set>
+            <if test="appId != null and appId != ''">
+                app_id = #{appId},
+            </if>
+            <if test="dictionaryId != null and dictionaryId != ''">
+                dictionary_id = #{dictionaryId},
+            </if>
+            <if test="fieldName != null and fieldName != ''">
+                field_name = #{fieldName},
+            </if>
+            <if test="fieldCode != null and fieldCode != ''">
+                field_code = #{fieldCode},
+            </if>
+            <if test="fieldType != null and fieldType != ''">
+                field_type = #{fieldType},
+            </if>
+            <if test="createUserId != null and createUserId != ''">
+                create_user_id = #{createUserId},
+            </if>
+            <if test="createTime != null">
+                create_time = #{createTime},
+            </if>
+            <if test="modifyTime != null">
+                modify_time = #{modifyTime},
+            </if>
+            <if test="modifyUserId != null and modifyUserId != ''">
+                modify_user_id = #{modifyUserId},
+            </if>
+            <if test="orgId != null and orgId != ''">
+                org_id = #{orgId},
+            </if>
+            <if test="companyId != null and companyId != ''">
+                company_id = #{companyId},
+            </if>
+            <if test="sts != null and sts != ''">
+                sts = #{sts},
+            </if>
+        </set>
+        where sorts = #{sorts}
+    </update>
+
+    <!--通过主键删除-->
+    <delete id="deleteById">
+        delete from sys_application_dictionary_detail where sorts = #{sorts}
+    </delete>
+
+</mapper>
+
diff --git a/webapp/src/main/java/com/hzya/frame/web/init/MyApplicationListener.java b/webapp/src/main/java/com/hzya/frame/web/init/MyApplicationListener.java
index 566736e8..71279458 100644
--- a/webapp/src/main/java/com/hzya/frame/web/init/MyApplicationListener.java
+++ b/webapp/src/main/java/com/hzya/frame/web/init/MyApplicationListener.java
@@ -51,7 +51,7 @@ public class MyApplicationListener implements ApplicationListener<ApplicationRea
         //任务状态1、启用
         queryEntity.setTaskStatus("1");
         queryEntity.setSts("Y");
-        List<IntegrationTaskEntity> integrationTaskEntities = integrationTaskDao.queryByLike(queryEntity);
+        List<IntegrationTaskEntity> integrationTaskEntities = integrationTaskDao.queryBase(queryEntity);
         //没有任务直接返回
         if (integrationTaskEntities == null || integrationTaskEntities.size() == 0) {
             return;
diff --git a/webapp/src/main/java/com/hzya/frame/webapp/entrance/controler/EntranceController.java b/webapp/src/main/java/com/hzya/frame/webapp/entrance/controler/EntranceController.java
index 42d5247c..01b03ce5 100644
--- a/webapp/src/main/java/com/hzya/frame/webapp/entrance/controler/EntranceController.java
+++ b/webapp/src/main/java/com/hzya/frame/webapp/entrance/controler/EntranceController.java
@@ -33,8 +33,18 @@ import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
+import java.util.Enumeration;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
 
 /**
  * @Content程序唯一入口controller
@@ -110,12 +120,43 @@ public class EntranceController {
         logger.info("-------------------结束调用上传文件upload接口-------------------");
         return jsonResultEntity;
     }
-    /**
-     * 根据文件保存的新名称下载文件
-     *
-     * @param fileSaveName
-     * @return
-     */
+
+    @RequestMapping(value = "/pluginfileUpload", method = RequestMethod.POST)
+    @ResponseBody
+    public JsonResultEntity pluginfileUpload(MultipartFile file, FileUploadDto entity,String pluginPackageName, ServletRequest servletRequest, ServletResponse servletResponse) {
+        JsonResultEntity jsonResultEntity = null;
+        logger.info("-------------------开始调用上传插件附件upload接口-------------------");
+        try {
+            jsonResultEntity = entranceService.pluginfileUpload(file, entity,pluginPackageName,servletRequest,servletResponse);
+        } catch (Exception e) {
+            jsonResultEntity = BaseResult.getFailureMessageEntity(e.getMessage());
+        }
+        logger.info("-------------------结束调用上传插件附件upload接口-------------------");
+        return jsonResultEntity;
+    }
+
+    @ResponseBody
+    @RequestMapping(value = "/pluginZipUpdate")
+    public JsonResultEntity pluginZipUpate(FileUploadDto fileUploadDto){
+        JsonResultEntity jsonResultEntity = null;
+        logger.info("-------------------开始调用插件更新接口-------------------");
+        try{
+            jsonResultEntity = entranceService.pluginZipUpate(fileUploadDto);
+        } catch (Exception e) {
+            jsonResultEntity = BaseResult.getFailureMessageEntity(e.getMessage());
+        }
+        logger.info("-------------------结束调用插件更新接口------------------");
+        return jsonResultEntity;
+    }
+
+
+
+            /**
+             * 根据文件保存的新名称下载文件
+             *
+             * @param fileSaveName
+             * @return
+             */
     @RequestMapping(value = "/option/fileDownload")
     public ResponseEntity<byte[]> fileDownload(String fileSaveName) {
         ResponseEntity<byte[]> responseEntity = null;
diff --git a/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/IEntranceService.java b/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/IEntranceService.java
index 0665cb93..54eda1a6 100644
--- a/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/IEntranceService.java
+++ b/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/IEntranceService.java
@@ -32,6 +32,9 @@ public interface IEntranceService {
      * @return com.hzya.frame.web.entity.JsonResultEntity
      **/
     JsonResultEntity fileUpload(MultipartFile file, FileUploadDto entity, ServletRequest servletRequest, ServletResponse servletResponse) throws Exception;
+
+    JsonResultEntity pluginfileUpload(MultipartFile file, FileUploadDto entity,String pluginPackageName, ServletRequest servletRequest, ServletResponse servletResponse) throws Exception;
+    JsonResultEntity pluginZipUpate(FileUploadDto fileUploadDto) throws Exception;
     /***
      * 系统框架附件上传接口
      * @content:
diff --git a/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/impl/EntranceServiceImpl.java b/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/impl/EntranceServiceImpl.java
index 86d047b0..46af2a3c 100644
--- a/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/impl/EntranceServiceImpl.java
+++ b/webapp/src/main/java/com/hzya/frame/webapp/entrance/service/impl/EntranceServiceImpl.java
@@ -6,6 +6,8 @@ import cn.hutool.extra.servlet.ServletUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.hzya.frame.sys.entity.EsbReturnEntity;
+import com.hzya.frame.sys.file.download.entity.FileDownloadEntity;
+import com.hzya.frame.sys.file.download.service.IFileDownloadService;
 import com.hzya.frame.sys.file.upload.entity.FileResultEntity;
 import com.hzya.frame.sys.file.upload.entity.FileUploadDto;
 import com.hzya.frame.sys.file.upload.entity.FileUploadEntity;
@@ -54,6 +56,9 @@ public class EntranceServiceImpl implements IEntranceService {
     @Autowired
     private IFileUploadService fileUploadService;
 
+    @Autowired
+    private IFileDownloadService fileDownloadService;
+
     @Override
     @DSTransactional()
     public JsonResultEntity doBusiness(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception {
@@ -225,6 +230,19 @@ public class EntranceServiceImpl implements IEntranceService {
         FileUploadEntity fileUploadEntity = fileUploadService.fileUpload(file,entity);
         return  BaseResult.getSuccessMessageEntity("附件上传成功",fileUploadEntity);
     }
+
+    @Override
+    public JsonResultEntity pluginfileUpload(MultipartFile file, FileUploadDto entity,String pluginPackageName, ServletRequest servletRequest, ServletResponse servletResponse) throws Exception {
+        StpUtil.checkLogin();
+        FileUploadEntity fileUploadEntity = fileUploadService.pluginfileUpload(file,entity,pluginPackageName);
+        return  BaseResult.getSuccessMessageEntity("附件上传成功",fileUploadEntity);
+    }
+
+    public JsonResultEntity pluginZipUpate(FileUploadDto fileUploadDto) throws Exception{
+        StpUtil.checkLogin();
+        FileDownloadEntity fileDownloadEntity = fileDownloadService.pluginZipUpate(fileUploadDto);
+        return  BaseResult.getSuccessMessageEntity("插件更新成功",fileDownloadEntity);
+    }
     @Override
     public JsonResultEntity fileUpload(MultipartFile file, FileResultEntity entity, ServletRequest servletRequest, ServletResponse servletResponse) throws Exception {
         entity = fileUploadService.fileUpload(file,entity);
diff --git a/webapp/src/main/java/com/hzya/frame/webapp/web/init/FlywayConfig.java b/webapp/src/main/java/com/hzya/frame/webapp/web/init/FlywayConfig.java
index 598e4032..8630f562 100644
--- a/webapp/src/main/java/com/hzya/frame/webapp/web/init/FlywayConfig.java
+++ b/webapp/src/main/java/com/hzya/frame/webapp/web/init/FlywayConfig.java
@@ -48,29 +48,31 @@ public class FlywayConfig {
 
     @PostConstruct
     public void migrateOrder() {
-        String pwd = AESUtil.decrypt(password);
-        DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource;
-        DataSource dsDatasource = null;
+        if("false".equals(enabled)){
+            String pwd = AESUtil.decrypt(password);
+            DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource;
+            DataSource dsDatasource = null;
 
             dsDatasource = ds.getDataSource("master");
-        // 将路径转换
-        Flyway flyway = Flyway.configure()
-                //.dataSource(url,username,pwd)
-                .dataSource(dsDatasource)
-                .cleanDisabled(cleanDisabled)
-                .locations(locations)
-                .table(table)
-                .encoding("utf-8")
-                .outOfOrder(true)
-                .baselineOnMigrate(true)
-                .validateOnMigrate(baselineOnMigrate)
-                .validateOnMigrate(validateOnMigrat)
-                .sqlMigrationPrefix(sqlMigrationPrefix)
-                .sqlMigrationSeparator(sqlMigrationSeparator)
-                .sqlMigrationSuffixes(sqlMigrationSuffixes)
-                .placeholderReplacement(placeholderReplacement)
-                .load();
-        flyway.migrate();
+            // 将路径转换
+            Flyway flyway = Flyway.configure()
+                    //.dataSource(url,username,pwd)
+                    .dataSource(dsDatasource)
+                    .cleanDisabled(cleanDisabled)
+                    .locations(locations)
+                    .table(table)
+                    .encoding("utf-8")
+                    .outOfOrder(true)
+                    .baselineOnMigrate(true)
+                    .validateOnMigrate(baselineOnMigrate)
+                    .validateOnMigrate(validateOnMigrat)
+                    .sqlMigrationPrefix(sqlMigrationPrefix)
+                    .sqlMigrationSeparator(sqlMigrationSeparator)
+                    .sqlMigrationSuffixes(sqlMigrationSuffixes)
+                    .placeholderReplacement(placeholderReplacement)
+                    .load();
+            flyway.migrate();
+        }
     }
 
 }