From 64fa2c33cd645e86d4e2a8c34c7881ea4aa678cf Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 17 六月 2025 18:33:37 +0800
Subject: [PATCH] 代码初始化

---
 server/src/main/java/com/doumee/service/system/SystemDictService.java                        |    3 
 .idea/libraries/Maven__io_netty_netty_resolver_4_1_118_Final.xml                             |    8 
 .idea/libraries/Maven__io_netty_netty_codec_4_1_118_Final.xml                                |   13 
 .idea/libraries/Maven__io_netty_netty_buffer_4_1_118_Final.xml                               |   13 
 .idea/libraries/Maven__com_azure_azure_storage_blob_12_30_0.xml                              |   13 
 server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxConstant.java                      |    2 
 .idea/libraries/Maven__io_netty_netty_handler_4_1_118_Final.xml                              |   13 
 startsh/admin_start.sh                                                                       |   15 
 .idea/libraries/Maven__com_azure_azure_storage_common_12_29_0.xml                            |    8 
 .idea/libraries/Maven__net_minidev_accessors_smart_2_5_2.xml                                 |   13 
 admin/package-lock.json                                                                      |    5 
 .idea/libraries/Maven__io_netty_netty_common_4_1_118_Final.xml                               |   13 
 server/src/main/java/com/doumee/config/mybatis/MyBatisInterceptor.java                       |   23 
 .idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_118_Final.xml |   13 
 server/src/main/java/com/doumee/core/constants/Constants.java                                |    4 
 .idea/libraries/Maven__com_microsoft_azure_msal4j_persistence_extension_1_3_0.xml            |   13 
 .idea/libraries/Maven__io_netty_netty_transport_classes_kqueue_4_1_118_Final.xml             |   13 
 server/src/main/java/com/doumee/dao/system/vo/SystemQrcodeListVO.java                        |   24 +
 .idea/libraries/Maven__com_azure_azure_core_http_netty_1_15_11.xml                           |   13 
 server/src/main/java/com/doumee/service/common/EmailService.java                             |   15 
 admin/lianhelihua_admin/index.html                                                           |    2 
 .idea/libraries/Maven__io_netty_netty_codec_http2_4_1_118_Final.xml                          |   13 
 .idea/libraries/Maven__com_nimbusds_nimbus_jose_jwt_10_0_1.xml                               |   13 
 admin/src/components/common/RichEditor.vue                                                   |   11 
 admin/src/views/business/qrcodes.vue                                                         |  124 +++++
 .idea/libraries/Maven__io_netty_netty_codec_socks_4_1_118_Final.xml                          |   13 
 server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java                 |    2 
 .idea/libraries/Maven__com_nimbusds_lang_tag_1_7.xml                                         |    8 
 .idea/libraries/Maven__io_projectreactor_netty_reactor_netty_core_1_0_48.xml                 |   13 
 server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java              |    1 
 .idea/libraries/Maven__com_azure_azure_xml_1_2_0.xml                                         |    8 
 admin/package.json                                                                           |    3 
 server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java                          |   58 ++
 server/src/main/java/com/doumee/dao/business/model/Managers.java                             |    3 
 server/src/main/resources/application-test.yml                                               |   15 
 admin/src/views/business/workorderDbh.vue                                                    |    2 
 server/src/main/java/com/doumee/dao/system/model/SystemDictData.java                         |    2 
 admin/.env.test                                                                              |    2 
 .idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_118_Final.xml                         |   13 
 .idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_118_Final.xml         |   13 
 server/src/main/resources/application.yml                                                    |    2 
 .idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_118_Final.xml  |   13 
 server/src/main/resources/logback-spring.xml                                                 |    2 
 .idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_118_Final.xml   |   13 
 .idea/libraries/Maven__com_azure_azure_security_keyvault_secrets_4_9_4.xml                   |   13 
 .idea/libraries/Maven__com_nimbusds_content_type_2_3.xml                                     |   13 
 .idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_118_Final.xml                        |   13 
 admin/src/components/business/OperaManagersWindow.vue                                        |   36 +
 server/src/main/resources/application-dev.yml                                                |   10 
 server/src/main/java/com/doumee/api/system/SystemDictController.java                         |    7 
 server/src/main/java/com/doumee/core/utils/HttpsUtil.java                                    |   31 +
 .idea/libraries/Maven__com_microsoft_azure_msal4j_1_19_1.xml                                 |   13 
 .idea/libraries/Maven__io_netty_netty_codec_dns_4_1_118_Final.xml                            |    8 
 server/src/main/java/com/doumee/config/quartz/JobInitializer.java                            |   13 
 admin/src/views/business/workorderDcaChild.vue                                               |    4 
 server/src/main/resources/application-pro.yml                                                |    6 
 .idea/libraries/Maven__com_azure_azure_core_1_55_3.xml                                       |   13 
 .idea/libraries/Maven__io_netty_netty_codec_http_4_1_118_Final.xml                           |    8 
 .idea/libraries/Maven__com_github_stephenc_jcip_jcip_annotations_1_0_1.xml                   |   13 
 .idea/libraries/Maven__io_netty_netty_resolver_dns_classes_macos_4_1_118_Final.xml           |   13 
 server/src/main/java/com/doumee/dao/business/model/Company.java                              |    3 
 server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java               |   10 
 .idea/libraries/Maven__com_azure_azure_json_1_5_0.xml                                        |   13 
 .idea/libraries/Maven__com_nimbusds_oauth2_oidc_sdk_11_23.xml                                |   13 
 .idea/libraries/Maven__org_ow2_asm_asm_9_7_1.xml                                             |   13 
 server/src/main/java/com/doumee/biz/system/impl/SystemJobTriggerBizImpl.java                 |    2 
 server/src/main/java/com/doumee/core/utils/azure/AzureBlobUtil.java                          |  146 ++++++
 .idea/libraries/Maven__io_projectreactor_netty_reactor_netty_http_1_0_48.xml                 |   13 
 server/src/main/java/com/doumee/api/common/PublicCloudController.java                        |   35 +
 /dev/null                                                                                    |   13 
 .idea/libraries/Maven__io_netty_netty_transport_4_1_118_Final.xml                            |    8 
 server/src/main/java/com/doumee/dao/business/vo/CompanyTree.java                             |   17 
 .idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_118_Final.xml              |   13 
 admin/src/api/system/dict.js                                                                 |    3 
 .idea/libraries/Maven__com_azure_azure_identity_1_15_4.xml                                   |   13 
 server/pom.xml                                                                               |   61 ++
 .idea/libraries/Maven__net_minidev_json_smart_2_5_2.xml                                      |   13 
 .idea/libraries/Maven__com_azure_azure_storage_internal_avro_12_15_0.xml                     |   13 
 server/src/main/java/com/doumee/service/system/impl/SystemDictServiceImpl.java               |   34 +
 79 files changed, 1,095 insertions(+), 141 deletions(-)

diff --git a/.idea/libraries/Maven__com_azure_azure_core_1_49_0.xml b/.idea/libraries/Maven__com_azure_azure_core_1_49_0.xml
deleted file mode 100644
index a3a55bc..0000000
--- a/.idea/libraries/Maven__com_azure_azure_core_1_49_0.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: com.azure:azure-core:1.49.0">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-core/1.49.0/azure-core-1.49.0.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-core/1.49.0/azure-core-1.49.0-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-core/1.49.0/azure-core-1.49.0-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_azure_azure_core_1_55_3.xml b/.idea/libraries/Maven__com_azure_azure_core_1_55_3.xml
new file mode 100644
index 0000000..c6ba0f7
--- /dev/null
+++ b/.idea/libraries/Maven__com_azure_azure_core_1_55_3.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.azure:azure-core:1.55.3">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-core/1.55.3/azure-core-1.55.3.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-core/1.55.3/azure-core-1.55.3-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-core/1.55.3/azure-core-1.55.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_azure_azure_core_http_netty_1_15_11.xml b/.idea/libraries/Maven__com_azure_azure_core_http_netty_1_15_11.xml
new file mode 100644
index 0000000..af95be4
--- /dev/null
+++ b/.idea/libraries/Maven__com_azure_azure_core_http_netty_1_15_11.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.azure:azure-core-http-netty:1.15.11">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-core-http-netty/1.15.11/azure-core-http-netty-1.15.11.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-core-http-netty/1.15.11/azure-core-http-netty-1.15.11-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-core-http-netty/1.15.11/azure-core-http-netty-1.15.11-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_azure_azure_identity_1_15_4.xml b/.idea/libraries/Maven__com_azure_azure_identity_1_15_4.xml
new file mode 100644
index 0000000..137056b
--- /dev/null
+++ b/.idea/libraries/Maven__com_azure_azure_identity_1_15_4.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.azure:azure-identity:1.15.4">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-identity/1.15.4/azure-identity-1.15.4.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-identity/1.15.4/azure-identity-1.15.4-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-identity/1.15.4/azure-identity-1.15.4-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_azure_azure_json_1_1_0.xml b/.idea/libraries/Maven__com_azure_azure_json_1_1_0.xml
deleted file mode 100644
index 8cdd4c1..0000000
--- a/.idea/libraries/Maven__com_azure_azure_json_1_1_0.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: com.azure:azure-json:1.1.0">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-json/1.1.0/azure-json-1.1.0.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-json/1.1.0/azure-json-1.1.0-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-json/1.1.0/azure-json-1.1.0-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_azure_azure_json_1_5_0.xml b/.idea/libraries/Maven__com_azure_azure_json_1_5_0.xml
new file mode 100644
index 0000000..3ac6d62
--- /dev/null
+++ b/.idea/libraries/Maven__com_azure_azure_json_1_5_0.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.azure:azure-json:1.5.0">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-json/1.5.0/azure-json-1.5.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-json/1.5.0/azure-json-1.5.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-json/1.5.0/azure-json-1.5.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_azure_azure_security_keyvault_secrets_4_9_4.xml b/.idea/libraries/Maven__com_azure_azure_security_keyvault_secrets_4_9_4.xml
new file mode 100644
index 0000000..abb4311
--- /dev/null
+++ b/.idea/libraries/Maven__com_azure_azure_security_keyvault_secrets_4_9_4.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.azure:azure-security-keyvault-secrets:4.9.4">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-security-keyvault-secrets/4.9.4/azure-security-keyvault-secrets-4.9.4.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-security-keyvault-secrets/4.9.4/azure-security-keyvault-secrets-4.9.4-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-security-keyvault-secrets/4.9.4/azure-security-keyvault-secrets-4.9.4-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_azure_azure_storage_blob_12_14_1.xml b/.idea/libraries/Maven__com_azure_azure_storage_blob_12_14_1.xml
deleted file mode 100644
index 6f74588..0000000
--- a/.idea/libraries/Maven__com_azure_azure_storage_blob_12_14_1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: com.azure:azure-storage-blob:12.14.1">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-blob/12.14.1/azure-storage-blob-12.14.1.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-blob/12.14.1/azure-storage-blob-12.14.1-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-blob/12.14.1/azure-storage-blob-12.14.1-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_azure_azure_storage_blob_12_30_0.xml b/.idea/libraries/Maven__com_azure_azure_storage_blob_12_30_0.xml
new file mode 100644
index 0000000..82a857e
--- /dev/null
+++ b/.idea/libraries/Maven__com_azure_azure_storage_blob_12_30_0.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.azure:azure-storage-blob:12.30.0">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-blob/12.30.0/azure-storage-blob-12.30.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-blob/12.30.0/azure-storage-blob-12.30.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-blob/12.30.0/azure-storage-blob-12.30.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_azure_azure_storage_common_12_25_0.xml b/.idea/libraries/Maven__com_azure_azure_storage_common_12_25_0.xml
deleted file mode 100644
index 1fbae1a..0000000
--- a/.idea/libraries/Maven__com_azure_azure_storage_common_12_25_0.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: com.azure:azure-storage-common:12.25.0">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-common/12.25.0/azure-storage-common-12.25.0.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-common/12.25.0/azure-storage-common-12.25.0-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-common/12.25.0/azure-storage-common-12.25.0-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_azure_azure_core_http_netty_1_15_0.xml b/.idea/libraries/Maven__com_azure_azure_storage_common_12_29_0.xml
similarity index 60%
rename from .idea/libraries/Maven__com_azure_azure_core_http_netty_1_15_0.xml
rename to .idea/libraries/Maven__com_azure_azure_storage_common_12_29_0.xml
index e555cb9..911fb60 100644
--- a/.idea/libraries/Maven__com_azure_azure_core_http_netty_1_15_0.xml
+++ b/.idea/libraries/Maven__com_azure_azure_storage_common_12_29_0.xml
@@ -1,13 +1,13 @@
 <component name="libraryTable">
-  <library name="Maven: com.azure:azure-core-http-netty:1.15.0">
+  <library name="Maven: com.azure:azure-storage-common:12.29.0">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-core-http-netty/1.15.0/azure-core-http-netty-1.15.0.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-common/12.29.0/azure-storage-common-12.29.0.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-core-http-netty/1.15.0/azure-core-http-netty-1.15.0-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-common/12.29.0/azure-storage-common-12.29.0-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-core-http-netty/1.15.0/azure-core-http-netty-1.15.0-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-common/12.29.0/azure-storage-common-12.29.0-sources.jar!/" />
     </SOURCES>
   </library>
 </component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_azure_azure_storage_internal_avro_12_11_0.xml b/.idea/libraries/Maven__com_azure_azure_storage_internal_avro_12_11_0.xml
deleted file mode 100644
index b9691ea..0000000
--- a/.idea/libraries/Maven__com_azure_azure_storage_internal_avro_12_11_0.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: com.azure:azure-storage-internal-avro:12.11.0">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-internal-avro/12.11.0/azure-storage-internal-avro-12.11.0.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-internal-avro/12.11.0/azure-storage-internal-avro-12.11.0-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-internal-avro/12.11.0/azure-storage-internal-avro-12.11.0-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_azure_azure_storage_internal_avro_12_15_0.xml b/.idea/libraries/Maven__com_azure_azure_storage_internal_avro_12_15_0.xml
new file mode 100644
index 0000000..59f5308
--- /dev/null
+++ b/.idea/libraries/Maven__com_azure_azure_storage_internal_avro_12_15_0.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.azure:azure-storage-internal-avro:12.15.0">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-internal-avro/12.15.0/azure-storage-internal-avro-12.15.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-internal-avro/12.15.0/azure-storage-internal-avro-12.15.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-storage-internal-avro/12.15.0/azure-storage-internal-avro-12.15.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_azure_azure_xml_1_0_0.xml b/.idea/libraries/Maven__com_azure_azure_xml_1_2_0.xml
similarity index 60%
rename from .idea/libraries/Maven__com_azure_azure_xml_1_0_0.xml
rename to .idea/libraries/Maven__com_azure_azure_xml_1_2_0.xml
index fcae0fc..b0a65a5 100644
--- a/.idea/libraries/Maven__com_azure_azure_xml_1_0_0.xml
+++ b/.idea/libraries/Maven__com_azure_azure_xml_1_2_0.xml
@@ -1,13 +1,13 @@
 <component name="libraryTable">
-  <library name="Maven: com.azure:azure-xml:1.0.0">
+  <library name="Maven: com.azure:azure-xml:1.2.0">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-xml/1.0.0/azure-xml-1.0.0.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-xml/1.2.0/azure-xml-1.2.0.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-xml/1.0.0/azure-xml-1.0.0-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-xml/1.2.0/azure-xml-1.2.0-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-xml/1.0.0/azure-xml-1.0.0-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-xml/1.2.0/azure-xml-1.2.0-sources.jar!/" />
     </SOURCES>
   </library>
 </component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_xml_2_10_2.xml b/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_xml_2_10_2.xml
deleted file mode 100644
index 2225e4f..0000000
--- a/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_xml_2_10_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.10.2">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.10.2/jackson-dataformat-xml-2.10.2.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.10.2/jackson-dataformat-xml-2.10.2-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.10.2/jackson-dataformat-xml-2.10.2-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_jaxb_annotations_2_10_2.xml b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_jaxb_annotations_2_10_2.xml
deleted file mode 100644
index a3127f7..0000000
--- a/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_jaxb_annotations_2_10_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.10.2">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.10.2/jackson-module-jaxb-annotations-2.10.2.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.10.2/jackson-module-jaxb-annotations-2.10.2-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.10.2/jackson-module-jaxb-annotations-2.10.2-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_stephenc_jcip_jcip_annotations_1_0_1.xml b/.idea/libraries/Maven__com_github_stephenc_jcip_jcip_annotations_1_0_1.xml
new file mode 100644
index 0000000..c3ac1e3
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_stephenc_jcip_jcip_annotations_1_0_1.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.github.stephenc.jcip:jcip-annotations:1.0-1">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/stephenc/jcip/jcip-annotations/1.0-1/jcip-annotations-1.0-1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/stephenc/jcip/jcip-annotations/1.0-1/jcip-annotations-1.0-1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/github/stephenc/jcip/jcip-annotations/1.0-1/jcip-annotations-1.0-1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_microsoft_azure_msal4j_1_19_1.xml b/.idea/libraries/Maven__com_microsoft_azure_msal4j_1_19_1.xml
new file mode 100644
index 0000000..3337042
--- /dev/null
+++ b/.idea/libraries/Maven__com_microsoft_azure_msal4j_1_19_1.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.microsoft.azure:msal4j:1.19.1">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/microsoft/azure/msal4j/1.19.1/msal4j-1.19.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/microsoft/azure/msal4j/1.19.1/msal4j-1.19.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/microsoft/azure/msal4j/1.19.1/msal4j-1.19.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_microsoft_azure_msal4j_persistence_extension_1_3_0.xml b/.idea/libraries/Maven__com_microsoft_azure_msal4j_persistence_extension_1_3_0.xml
new file mode 100644
index 0000000..7123d61
--- /dev/null
+++ b/.idea/libraries/Maven__com_microsoft_azure_msal4j_persistence_extension_1_3_0.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.microsoft.azure:msal4j-persistence-extension:1.3.0">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/microsoft/azure/msal4j-persistence-extension/1.3.0/msal4j-persistence-extension-1.3.0.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/microsoft/azure/msal4j-persistence-extension/1.3.0/msal4j-persistence-extension-1.3.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/microsoft/azure/msal4j-persistence-extension/1.3.0/msal4j-persistence-extension-1.3.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_nimbusds_content_type_2_3.xml b/.idea/libraries/Maven__com_nimbusds_content_type_2_3.xml
new file mode 100644
index 0000000..fb32012
--- /dev/null
+++ b/.idea/libraries/Maven__com_nimbusds_content_type_2_3.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.nimbusds:content-type:2.3">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/nimbusds/content-type/2.3/content-type-2.3.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/nimbusds/content-type/2.3/content-type-2.3-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/nimbusds/content-type/2.3/content-type-2.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_azure_azure_xml_1_0_0.xml b/.idea/libraries/Maven__com_nimbusds_lang_tag_1_7.xml
similarity index 60%
copy from .idea/libraries/Maven__com_azure_azure_xml_1_0_0.xml
copy to .idea/libraries/Maven__com_nimbusds_lang_tag_1_7.xml
index fcae0fc..eb8e845 100644
--- a/.idea/libraries/Maven__com_azure_azure_xml_1_0_0.xml
+++ b/.idea/libraries/Maven__com_nimbusds_lang_tag_1_7.xml
@@ -1,13 +1,13 @@
 <component name="libraryTable">
-  <library name="Maven: com.azure:azure-xml:1.0.0">
+  <library name="Maven: com.nimbusds:lang-tag:1.7">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-xml/1.0.0/azure-xml-1.0.0.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/nimbusds/lang-tag/1.7/lang-tag-1.7.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-xml/1.0.0/azure-xml-1.0.0-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/nimbusds/lang-tag/1.7/lang-tag-1.7-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/azure/azure-xml/1.0.0/azure-xml-1.0.0-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/nimbusds/lang-tag/1.7/lang-tag-1.7-sources.jar!/" />
     </SOURCES>
   </library>
 </component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_nimbusds_nimbus_jose_jwt_10_0_1.xml b/.idea/libraries/Maven__com_nimbusds_nimbus_jose_jwt_10_0_1.xml
new file mode 100644
index 0000000..4ed6dce
--- /dev/null
+++ b/.idea/libraries/Maven__com_nimbusds_nimbus_jose_jwt_10_0_1.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.nimbusds:nimbus-jose-jwt:10.0.1">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/nimbusds/nimbus-jose-jwt/10.0.1/nimbus-jose-jwt-10.0.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/nimbusds/nimbus-jose-jwt/10.0.1/nimbus-jose-jwt-10.0.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/nimbusds/nimbus-jose-jwt/10.0.1/nimbus-jose-jwt-10.0.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_nimbusds_oauth2_oidc_sdk_11_23.xml b/.idea/libraries/Maven__com_nimbusds_oauth2_oidc_sdk_11_23.xml
new file mode 100644
index 0000000..48e8503
--- /dev/null
+++ b/.idea/libraries/Maven__com_nimbusds_oauth2_oidc_sdk_11_23.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: com.nimbusds:oauth2-oidc-sdk:11.23">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/nimbusds/oauth2-oidc-sdk/11.23/oauth2-oidc-sdk-11.23.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/nimbusds/oauth2-oidc-sdk/11.23/oauth2-oidc-sdk-11.23-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/com/nimbusds/oauth2-oidc-sdk/11.23/oauth2-oidc-sdk-11.23-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_buffer_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_118_Final.xml
new file mode 100644
index 0000000..75a9da8
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-buffer:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-buffer/4.1.118.Final/netty-buffer-4.1.118.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-buffer/4.1.118.Final/netty-buffer-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-buffer/4.1.118.Final/netty-buffer-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_buffer_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_45_Final.xml
deleted file mode 100644
index 9b206b4..0000000
--- a/.idea/libraries/Maven__io_netty_netty_buffer_4_1_45_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.netty:netty-buffer:4.1.45.Final">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-buffer/4.1.45.Final/netty-buffer-4.1.45.Final.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-buffer/4.1.45.Final/netty-buffer-4.1.45.Final-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-buffer/4.1.45.Final/netty-buffer-4.1.45.Final-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_codec_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_4_1_118_Final.xml
new file mode 100644
index 0000000..ec257a4
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_codec_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-codec:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec/4.1.118.Final/netty-codec-4.1.118.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec/4.1.118.Final/netty-codec-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec/4.1.118.Final/netty-codec-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_codec_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_4_1_45_Final.xml
deleted file mode 100644
index 043d686..0000000
--- a/.idea/libraries/Maven__io_netty_netty_codec_4_1_45_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.netty:netty-codec:4.1.45.Final">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec/4.1.45.Final/netty-codec-4.1.45.Final.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec/4.1.45.Final/netty-codec-4.1.45.Final-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec/4.1.45.Final/netty-codec-4.1.45.Final-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_dns_4_1_118_Final.xml
similarity index 60%
rename from .idea/libraries/Maven__io_netty_netty_codec_http_4_1_45_Final.xml
rename to .idea/libraries/Maven__io_netty_netty_codec_dns_4_1_118_Final.xml
index 9645728..2d6c889 100644
--- a/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_45_Final.xml
+++ b/.idea/libraries/Maven__io_netty_netty_codec_dns_4_1_118_Final.xml
@@ -1,13 +1,13 @@
 <component name="libraryTable">
-  <library name="Maven: io.netty:netty-codec-http:4.1.45.Final">
+  <library name="Maven: io.netty:netty-codec-dns:4.1.118.Final">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http/4.1.45.Final/netty-codec-http-4.1.45.Final.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-dns/4.1.118.Final/netty-codec-dns-4.1.118.Final.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http/4.1.45.Final/netty-codec-http-4.1.45.Final-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-dns/4.1.118.Final/netty-codec-dns-4.1.118.Final-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http/4.1.45.Final/netty-codec-http-4.1.45.Final-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-dns/4.1.118.Final/netty-codec-dns-4.1.118.Final-sources.jar!/" />
     </SOURCES>
   </library>
 </component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_118_Final.xml
new file mode 100644
index 0000000..4e25154
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-codec-http2:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http2/4.1.118.Final/netty-codec-http2-4.1.118.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http2/4.1.118.Final/netty-codec-http2-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http2/4.1.118.Final/netty-codec-http2-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_118_Final.xml
similarity index 61%
rename from .idea/libraries/Maven__io_netty_netty_codec_http2_4_1_45_Final.xml
rename to .idea/libraries/Maven__io_netty_netty_codec_http_4_1_118_Final.xml
index 60c908c..1bfc1e1 100644
--- a/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_45_Final.xml
+++ b/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_118_Final.xml
@@ -1,13 +1,13 @@
 <component name="libraryTable">
-  <library name="Maven: io.netty:netty-codec-http2:4.1.45.Final">
+  <library name="Maven: io.netty:netty-codec-http:4.1.118.Final">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http2/4.1.45.Final/netty-codec-http2-4.1.45.Final.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http/4.1.118.Final/netty-codec-http-4.1.118.Final.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http2/4.1.45.Final/netty-codec-http2-4.1.45.Final-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http/4.1.118.Final/netty-codec-http-4.1.118.Final-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http2/4.1.45.Final/netty-codec-http2-4.1.45.Final-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http/4.1.118.Final/netty-codec-http-4.1.118.Final-sources.jar!/" />
     </SOURCES>
   </library>
 </component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_118_Final.xml
new file mode 100644
index 0000000..51457f4
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-codec-socks:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-socks/4.1.118.Final/netty-codec-socks-4.1.118.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-socks/4.1.118.Final/netty-codec-socks-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-socks/4.1.118.Final/netty-codec-socks-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_45_Final.xml
deleted file mode 100644
index 1a43fb6..0000000
--- a/.idea/libraries/Maven__io_netty_netty_codec_socks_4_1_45_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.netty:netty-codec-socks:4.1.45.Final">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-socks/4.1.45.Final/netty-codec-socks-4.1.45.Final.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-socks/4.1.45.Final/netty-codec-socks-4.1.45.Final-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-socks/4.1.45.Final/netty-codec-socks-4.1.45.Final-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_common_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_common_4_1_118_Final.xml
new file mode 100644
index 0000000..03ab793
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_common_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-common:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-common/4.1.118.Final/netty-common-4.1.118.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-common/4.1.118.Final/netty-common-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-common/4.1.118.Final/netty-common-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_common_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_common_4_1_45_Final.xml
deleted file mode 100644
index fb1c680..0000000
--- a/.idea/libraries/Maven__io_netty_netty_common_4_1_45_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.netty:netty-common:4.1.45.Final">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-common/4.1.45.Final/netty-common-4.1.45.Final.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-common/4.1.45.Final/netty-common-4.1.45.Final-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-common/4.1.45.Final/netty-common-4.1.45.Final-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_handler_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_handler_4_1_118_Final.xml
new file mode 100644
index 0000000..c2fcb3c
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_handler_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-handler:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-handler/4.1.118.Final/netty-handler-4.1.118.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-handler/4.1.118.Final/netty-handler-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-handler/4.1.118.Final/netty-handler-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_handler_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_handler_4_1_45_Final.xml
deleted file mode 100644
index a9c7fcd..0000000
--- a/.idea/libraries/Maven__io_netty_netty_handler_4_1_45_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.netty:netty-handler:4.1.45.Final">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-handler/4.1.45.Final/netty-handler-4.1.45.Final.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-handler/4.1.45.Final/netty-handler-4.1.45.Final-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-handler/4.1.45.Final/netty-handler-4.1.45.Final-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_118_Final.xml
new file mode 100644
index 0000000..8613a9f
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-handler-proxy:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-handler-proxy/4.1.118.Final/netty-handler-proxy-4.1.118.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-handler-proxy/4.1.118.Final/netty-handler-proxy-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-handler-proxy/4.1.118.Final/netty-handler-proxy-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_45_Final.xml
deleted file mode 100644
index 58053be..0000000
--- a/.idea/libraries/Maven__io_netty_netty_handler_proxy_4_1_45_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.netty:netty-handler-proxy:4.1.45.Final">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-handler-proxy/4.1.45.Final/netty-handler-proxy-4.1.45.Final.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-handler-proxy/4.1.45.Final/netty-handler-proxy-4.1.45.Final-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-handler-proxy/4.1.45.Final/netty-handler-proxy-4.1.45.Final-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_codec_dns_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_118_Final.xml
similarity index 60%
rename from .idea/libraries/Maven__io_netty_netty_codec_dns_4_1_45_Final.xml
rename to .idea/libraries/Maven__io_netty_netty_resolver_4_1_118_Final.xml
index e536992..95c8a4b 100644
--- a/.idea/libraries/Maven__io_netty_netty_codec_dns_4_1_45_Final.xml
+++ b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_118_Final.xml
@@ -1,13 +1,13 @@
 <component name="libraryTable">
-  <library name="Maven: io.netty:netty-codec-dns:4.1.45.Final">
+  <library name="Maven: io.netty:netty-resolver:4.1.118.Final">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-dns/4.1.45.Final/netty-codec-dns-4.1.45.Final.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver/4.1.118.Final/netty-resolver-4.1.118.Final.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-dns/4.1.45.Final/netty-codec-dns-4.1.45.Final-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver/4.1.118.Final/netty-resolver-4.1.118.Final-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-dns/4.1.45.Final/netty-codec-dns-4.1.45.Final-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver/4.1.118.Final/netty-resolver-4.1.118.Final-sources.jar!/" />
     </SOURCES>
   </library>
 </component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_45_Final.xml
deleted file mode 100644
index 647e79a..0000000
--- a/.idea/libraries/Maven__io_netty_netty_resolver_4_1_45_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.netty:netty-resolver:4.1.45.Final">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver/4.1.45.Final/netty-resolver-4.1.45.Final.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver/4.1.45.Final/netty-resolver-4.1.45.Final-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver/4.1.45.Final/netty-resolver-4.1.45.Final-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_118_Final.xml
new file mode 100644
index 0000000..9c26dc0
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-resolver-dns:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns/4.1.118.Final/netty-resolver-dns-4.1.118.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns/4.1.118.Final/netty-resolver-dns-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns/4.1.118.Final/netty-resolver-dns-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_45_Final.xml
deleted file mode 100644
index 6b552ce..0000000
--- a/.idea/libraries/Maven__io_netty_netty_resolver_dns_4_1_45_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.netty:netty-resolver-dns:4.1.45.Final">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns/4.1.45.Final/netty-resolver-dns-4.1.45.Final.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns/4.1.45.Final/netty-resolver-dns-4.1.45.Final-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns/4.1.45.Final/netty-resolver-dns-4.1.45.Final-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_dns_classes_macos_4_1_107_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_dns_classes_macos_4_1_107_Final.xml
deleted file mode 100644
index bbef449..0000000
--- a/.idea/libraries/Maven__io_netty_netty_resolver_dns_classes_macos_4_1_107_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.netty:netty-resolver-dns-classes-macos:4.1.107.Final">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns-classes-macos/4.1.107.Final/netty-resolver-dns-classes-macos-4.1.107.Final.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns-classes-macos/4.1.107.Final/netty-resolver-dns-classes-macos-4.1.107.Final-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns-classes-macos/4.1.107.Final/netty-resolver-dns-classes-macos-4.1.107.Final-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_dns_classes_macos_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_dns_classes_macos_4_1_118_Final.xml
new file mode 100644
index 0000000..51c6641
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_resolver_dns_classes_macos_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-resolver-dns-classes-macos:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns-classes-macos/4.1.118.Final/netty-resolver-dns-classes-macos-4.1.118.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns-classes-macos/4.1.118.Final/netty-resolver-dns-classes-macos-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns-classes-macos/4.1.118.Final/netty-resolver-dns-classes-macos-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_107_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_107_Final.xml
deleted file mode 100644
index 644395b..0000000
--- a/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_107_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.netty:netty-resolver-dns-native-macos:osx-x86_64:4.1.107.Final">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns-native-macos/4.1.107.Final/netty-resolver-dns-native-macos-4.1.107.Final-osx-x86_64.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns-native-macos/4.1.107.Final/netty-resolver-dns-native-macos-4.1.107.Final-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns-native-macos/4.1.107.Final/netty-resolver-dns-native-macos-4.1.107.Final-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_118_Final.xml
new file mode 100644
index 0000000..189dad2
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_resolver_dns_native_macos_osx_x86_64_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-resolver-dns-native-macos:osx-x86_64:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns-native-macos/4.1.118.Final/netty-resolver-dns-native-macos-4.1.118.Final-osx-x86_64.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns-native-macos/4.1.118.Final/netty-resolver-dns-native-macos-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-resolver-dns-native-macos/4.1.118.Final/netty-resolver-dns-native-macos-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_4_1_118_Final.xml
similarity index 60%
copy from .idea/libraries/Maven__io_netty_netty_codec_http_4_1_45_Final.xml
copy to .idea/libraries/Maven__io_netty_netty_transport_4_1_118_Final.xml
index 9645728..275736f 100644
--- a/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_45_Final.xml
+++ b/.idea/libraries/Maven__io_netty_netty_transport_4_1_118_Final.xml
@@ -1,13 +1,13 @@
 <component name="libraryTable">
-  <library name="Maven: io.netty:netty-codec-http:4.1.45.Final">
+  <library name="Maven: io.netty:netty-transport:4.1.118.Final">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http/4.1.45.Final/netty-codec-http-4.1.45.Final.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport/4.1.118.Final/netty-transport-4.1.118.Final.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http/4.1.45.Final/netty-codec-http-4.1.45.Final-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport/4.1.118.Final/netty-transport-4.1.118.Final-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-codec-http/4.1.45.Final/netty-codec-http-4.1.45.Final-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport/4.1.118.Final/netty-transport-4.1.118.Final-sources.jar!/" />
     </SOURCES>
   </library>
 </component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_4_1_45_Final.xml
deleted file mode 100644
index f2b814b..0000000
--- a/.idea/libraries/Maven__io_netty_netty_transport_4_1_45_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.netty:netty-transport:4.1.45.Final">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport/4.1.45.Final/netty-transport-4.1.45.Final.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport/4.1.45.Final/netty-transport-4.1.45.Final-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport/4.1.45.Final/netty-transport-4.1.45.Final-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_118_Final.xml
new file mode 100644
index 0000000..dc6167b
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-transport-classes-epoll:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-classes-epoll/4.1.118.Final/netty-transport-classes-epoll-4.1.118.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-classes-epoll/4.1.118.Final/netty-transport-classes-epoll-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-classes-epoll/4.1.118.Final/netty-transport-classes-epoll-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_classes_kqueue_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_classes_kqueue_4_1_118_Final.xml
new file mode 100644
index 0000000..fd19bb6
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_classes_kqueue_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-transport-classes-kqueue:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-classes-kqueue/4.1.118.Final/netty-transport-classes-kqueue-4.1.118.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-classes-kqueue/4.1.118.Final/netty-transport-classes-kqueue-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-classes-kqueue/4.1.118.Final/netty-transport-classes-kqueue-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_118_Final.xml
new file mode 100644
index 0000000..bd7c1ec
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-transport-native-epoll:linux-x86_64:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-epoll/4.1.118.Final/netty-transport-native-epoll-4.1.118.Final-linux-x86_64.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-epoll/4.1.118.Final/netty-transport-native-epoll-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-epoll/4.1.118.Final/netty-transport-native-epoll-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_45_Final.xml
deleted file mode 100644
index b662f80..0000000
--- a/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_linux_x86_64_4_1_45_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.netty:netty-transport-native-epoll:linux-x86_64:4.1.45.Final">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-epoll/4.1.45.Final/netty-transport-native-epoll-4.1.45.Final-linux-x86_64.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-epoll/4.1.45.Final/netty-transport-native-epoll-4.1.45.Final-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-epoll/4.1.45.Final/netty-transport-native-epoll-4.1.45.Final-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_118_Final.xml
new file mode 100644
index 0000000..25e5648
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-transport-native-kqueue:osx-x86_64:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-kqueue/4.1.118.Final/netty-transport-native-kqueue-4.1.118.Final-osx-x86_64.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-kqueue/4.1.118.Final/netty-transport-native-kqueue-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-kqueue/4.1.118.Final/netty-transport-native-kqueue-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_45_Final.xml
deleted file mode 100644
index d48839c..0000000
--- a/.idea/libraries/Maven__io_netty_netty_transport_native_kqueue_osx_x86_64_4_1_45_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.netty:netty-transport-native-kqueue:osx-x86_64:4.1.45.Final">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-kqueue/4.1.45.Final/netty-transport-native-kqueue-4.1.45.Final-osx-x86_64.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-kqueue/4.1.45.Final/netty-transport-native-kqueue-4.1.45.Final-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-kqueue/4.1.45.Final/netty-transport-native-kqueue-4.1.45.Final-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_118_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_118_Final.xml
new file mode 100644
index 0000000..a0a58fc
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_118_Final.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.netty:netty-transport-native-unix-common:4.1.118.Final">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-unix-common/4.1.118.Final/netty-transport-native-unix-common-4.1.118.Final.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-unix-common/4.1.118.Final/netty-transport-native-unix-common-4.1.118.Final-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-unix-common/4.1.118.Final/netty-transport-native-unix-common-4.1.118.Final-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_45_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_45_Final.xml
deleted file mode 100644
index bb62039..0000000
--- a/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_45_Final.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.netty:netty-transport-native-unix-common:4.1.45.Final">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-unix-common/4.1.45.Final/netty-transport-native-unix-common-4.1.45.Final.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-unix-common/4.1.45.Final/netty-transport-native-unix-common-4.1.45.Final-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/netty/netty-transport-native-unix-common/4.1.45.Final/netty-transport-native-unix-common-4.1.45.Final-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_projectreactor_netty_reactor_netty_core_1_0_43.xml b/.idea/libraries/Maven__io_projectreactor_netty_reactor_netty_core_1_0_43.xml
deleted file mode 100644
index d8c9423..0000000
--- a/.idea/libraries/Maven__io_projectreactor_netty_reactor_netty_core_1_0_43.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.projectreactor.netty:reactor-netty-core:1.0.43">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/netty/reactor-netty-core/1.0.43/reactor-netty-core-1.0.43.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/netty/reactor-netty-core/1.0.43/reactor-netty-core-1.0.43-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/netty/reactor-netty-core/1.0.43/reactor-netty-core-1.0.43-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_projectreactor_netty_reactor_netty_core_1_0_48.xml b/.idea/libraries/Maven__io_projectreactor_netty_reactor_netty_core_1_0_48.xml
new file mode 100644
index 0000000..30494a4
--- /dev/null
+++ b/.idea/libraries/Maven__io_projectreactor_netty_reactor_netty_core_1_0_48.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.projectreactor.netty:reactor-netty-core:1.0.48">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/netty/reactor-netty-core/1.0.48/reactor-netty-core-1.0.48.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/netty/reactor-netty-core/1.0.48/reactor-netty-core-1.0.48-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/netty/reactor-netty-core/1.0.48/reactor-netty-core-1.0.48-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_projectreactor_netty_reactor_netty_http_1_0_43.xml b/.idea/libraries/Maven__io_projectreactor_netty_reactor_netty_http_1_0_43.xml
deleted file mode 100644
index a44c017..0000000
--- a/.idea/libraries/Maven__io_projectreactor_netty_reactor_netty_http_1_0_43.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.projectreactor.netty:reactor-netty-http:1.0.43">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/netty/reactor-netty-http/1.0.43/reactor-netty-http-1.0.43.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/netty/reactor-netty-http/1.0.43/reactor-netty-http-1.0.43-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/netty/reactor-netty-http/1.0.43/reactor-netty-http-1.0.43-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_projectreactor_netty_reactor_netty_http_1_0_48.xml b/.idea/libraries/Maven__io_projectreactor_netty_reactor_netty_http_1_0_48.xml
new file mode 100644
index 0000000..49c435a
--- /dev/null
+++ b/.idea/libraries/Maven__io_projectreactor_netty_reactor_netty_http_1_0_48.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: io.projectreactor.netty:reactor-netty-http:1.0.48">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/netty/reactor-netty-http/1.0.48/reactor-netty-http-1.0.48.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/netty/reactor-netty-http/1.0.48/reactor-netty-http-1.0.48-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/netty/reactor-netty-http/1.0.48/reactor-netty-http-1.0.48-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_projectreactor_reactor_core_3_3_3_RELEASE.xml b/.idea/libraries/Maven__io_projectreactor_reactor_core_3_3_3_RELEASE.xml
deleted file mode 100644
index aeeeadb..0000000
--- a/.idea/libraries/Maven__io_projectreactor_reactor_core_3_3_3_RELEASE.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: io.projectreactor:reactor-core:3.3.3.RELEASE">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/reactor-core/3.3.3.RELEASE/reactor-core-3.3.3.RELEASE.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/reactor-core/3.3.3.RELEASE/reactor-core-3.3.3.RELEASE-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/io/projectreactor/reactor-core/3.3.3.RELEASE/reactor-core-3.3.3.RELEASE-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml b/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml
deleted file mode 100644
index 2b2eccd..0000000
--- a/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: jakarta.activation:jakarta.activation-api:1.2.2">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_2.xml b/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_2.xml
deleted file mode 100644
index 4ab6c36..0000000
--- a/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<component name="libraryTable">
-  <library name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.2">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/jakarta/xml/bind/jakarta.xml.bind-api/2.3.2/jakarta.xml.bind-api-2.3.2.jar!/" />
-    </CLASSES>
-    <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/jakarta/xml/bind/jakarta.xml.bind-api/2.3.2/jakarta.xml.bind-api-2.3.2-javadoc.jar!/" />
-    </JAVADOC>
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../maven/repository/jakarta/xml/bind/jakarta.xml.bind-api/2.3.2/jakarta.xml.bind-api-2.3.2-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_minidev_accessors_smart_2_5_2.xml b/.idea/libraries/Maven__net_minidev_accessors_smart_2_5_2.xml
new file mode 100644
index 0000000..6ea14f3
--- /dev/null
+++ b/.idea/libraries/Maven__net_minidev_accessors_smart_2_5_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: net.minidev:accessors-smart:2.5.2">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/net/minidev/accessors-smart/2.5.2/accessors-smart-2.5.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/net/minidev/accessors-smart/2.5.2/accessors-smart-2.5.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/net/minidev/accessors-smart/2.5.2/accessors-smart-2.5.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_minidev_json_smart_2_5_2.xml b/.idea/libraries/Maven__net_minidev_json_smart_2_5_2.xml
new file mode 100644
index 0000000..2ebc879
--- /dev/null
+++ b/.idea/libraries/Maven__net_minidev_json_smart_2_5_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: net.minidev:json-smart:2.5.2">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/net/minidev/json-smart/2.5.2/json-smart-2.5.2.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/net/minidev/json-smart/2.5.2/json-smart-2.5.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/net/minidev/json-smart/2.5.2/json-smart-2.5.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_ow2_asm_asm_9_7_1.xml b/.idea/libraries/Maven__org_ow2_asm_asm_9_7_1.xml
new file mode 100644
index 0000000..78624ad
--- /dev/null
+++ b/.idea/libraries/Maven__org_ow2_asm_asm_9_7_1.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.ow2.asm:asm:9.7.1">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/ow2/asm/asm/9.7.1/asm-9.7.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/ow2/asm/asm/9.7.1/asm-9.7.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/ow2/asm/asm/9.7.1/asm-9.7.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/admin/.env.test b/admin/.env.test
index 4ffc032..052d4bf 100644
--- a/admin/.env.test
+++ b/admin/.env.test
@@ -4,4 +4,4 @@
 # 鍏抽棴DEBUG
 VUE_APP_DEBUG = 'off'
 
-VUE_APP_API_URL  = 'https://test.doumee.cn/lianhelihua_interface'
+VUE_APP_API_URL  = 'https://lkshereporting-dev.unilever-china.com/lianhelihua_interface'
diff --git a/admin/lianhelihua_admin/index.html b/admin/lianhelihua_admin/index.html
index 6bfc6fa..4054258 100644
--- a/admin/lianhelihua_admin/index.html
+++ b/admin/lianhelihua_admin/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/lianhelihua_admin/icon.png"><title>鑱斿悎鍒╁崕浜嬩欢涓婃姤绯荤粺</title><link href="/lianhelihua_admin/static/css/app.39e777cc.css" rel="preload" as="style"><link href="/lianhelihua_admin/static/css/chunk-vendors.d9e68312.css" rel="preload" as="style"><link href="/lianhelihua_admin/static/js/app.27efc902.js" rel="preload" as="script"><link href="/lianhelihua_admin/static/js/chunk-vendors.fd387514.js" rel="preload" as="script"><link href="/lianhelihua_admin/static/css/chunk-vendors.d9e68312.css" rel="stylesheet"><link href="/lianhelihua_admin/static/css/app.39e777cc.css" rel="stylesheet"></head><body><div id="app"></div><script src="/lianhelihua_admin/static/js/chunk-vendors.fd387514.js"></script><script src="/lianhelihua_admin/static/js/app.27efc902.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/lianhelihua_admin/icon.png"><title>鑱斿悎鍒╁崕浜嬩欢涓婃姤绯荤粺</title><link href="/lianhelihua_admin/static/css/app.39e777cc.css" rel="preload" as="style"><link href="/lianhelihua_admin/static/css/chunk-vendors.d9e68312.css" rel="preload" as="style"><link href="/lianhelihua_admin/static/js/app.94e81d49.js" rel="preload" as="script"><link href="/lianhelihua_admin/static/js/chunk-vendors.52ca84c8.js" rel="preload" as="script"><link href="/lianhelihua_admin/static/css/chunk-vendors.d9e68312.css" rel="stylesheet"><link href="/lianhelihua_admin/static/css/app.39e777cc.css" rel="stylesheet"></head><body><div id="app"></div><script src="/lianhelihua_admin/static/js/chunk-vendors.52ca84c8.js"></script><script src="/lianhelihua_admin/static/js/app.94e81d49.js"></script></body></html>
\ No newline at end of file
diff --git a/admin/package-lock.json b/admin/package-lock.json
index 17aa7e2..0d3f45b 100644
--- a/admin/package-lock.json
+++ b/admin/package-lock.json
@@ -11037,6 +11037,11 @@
       "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
       "dev": true
     },
+    "qrcodejs2": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmmirror.com/qrcodejs2/-/qrcodejs2-0.0.2.tgz",
+      "integrity": "sha512-+Y4HA+cb6qUzdgvI3KML8GYpMFwB24dFwzMkS/yXq6hwtUGNUnZQdUnksrV1XGMc2mid5ROw5SAuY9XhI3ValA=="
+    },
     "qs": {
       "version": "6.5.2",
       "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz?cache=0&sync_timestamp=1616385328325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz",
diff --git a/admin/package.json b/admin/package.json
index 92b3c5a..c312022 100644
--- a/admin/package.json
+++ b/admin/package.json
@@ -4,7 +4,7 @@
   "private": true,
   "scripts": {
     "serve": "vue-cli-service serve",
-    "serve:test": "vue-cli-service serve --mode test",
+    "servetest": "vue-cli-service serve --mode test",
     "build:test": "vue-cli-service build --mode test",
     "build": "vue-cli-service build",
     "lint": "vue-cli-service lint",
@@ -17,6 +17,7 @@
     "axios": "^0.21.1",
     "core-js": "^3.6.5",
     "crypto-js": "^4.1.1",
+    "qrcodejs2": "0.0.2",
     "dayjs": "^1.11.0",
     "echarts": "^5.6.0",
     "element-ui": "^2.3.6",
diff --git a/admin/src/api/system/dict.js b/admin/src/api/system/dict.js
index 02a45f3..0c95070 100644
--- a/admin/src/api/system/dict.js
+++ b/admin/src/api/system/dict.js
@@ -5,6 +5,9 @@
 export function fetchList (data) {
   return request.post('/system/dict/page', data)
 }
+export function qrcodeList (data) {
+  return request.post('/system/dict/qrcodeList', data)
+}
 
 // 鏂板缓
 export function create (data) {
diff --git a/admin/src/components/business/OperaManagersWindow.vue b/admin/src/components/business/OperaManagersWindow.vue
index e2a169c..2180c04 100644
--- a/admin/src/components/business/OperaManagersWindow.vue
+++ b/admin/src/components/business/OperaManagersWindow.vue
@@ -8,13 +8,13 @@
     <el-form :model="form" ref="form" :rules="rules">
       <el-form-item label="璁剧疆鑼冨洿" prop="isMember" :required="true">
         <el-radio-group v-model="form.isMember">
-          <el-radio :label="0">鐩村睘閮ㄩ棬鍛樺伐</el-radio>
-          <el-radio :label="1">閮ㄩ棬鍙婂叾涓嬬骇閮ㄩ棬鍛樺伐</el-radio>
+          <el-radio :label="0">閫夋嫨閮ㄩ棬</el-radio>
+<!--          <el-radio :label="1">閮ㄩ棬鍙婂叾涓嬬骇閮ㄩ棬鍛樺伐</el-radio>-->
           <el-radio :label="2">鎸囧畾浜哄憳</el-radio>
         </el-radio-group>
       </el-form-item>
-      <el-form-item label="鎵�灞炵粍缁�" prop="companyId" v-if="form.isMember==0 || form.isMember==1"  :required="true">
-        <treeselect
+      <el-form-item label="鎵�灞炵粍缁�" prop="companyIds" v-if="form.isMember==0 || form.isMember==1"  :required="true">
+<!--        <treeselect
             v-model="form.companyId"
             placeholder="璇烽�夋嫨"
             :options="companyTree"
@@ -22,7 +22,18 @@
             :default-expand-level="1"
             noChildrenText="娌℃湁瀛愰�夐」"
             noOptionsText="娌℃湁鍙�夐」"
-            noResultsText="娌℃湁鍖归厤鐨勭粨鏋�" />
+            noResultsText="娌℃湁鍖归厤鐨勭粨鏋�" />-->
+        <el-tree
+            ref="tree"
+            :data="companyTree"
+            show-checkbox
+            node-key="id"
+            default-expand-all
+            @check-change="changeTree" 
+            :expand-on-click-node="false"
+            :check-on-click-node="true"
+            :props="{children: 'childList',label: 'name'}">
+        </el-tree>
       </el-form-item>
       <el-form-item  label="閫夋嫨璐熻矗浜猴細" prop="memberIds" v-if="form.isMember==2" :required="true">
         <el-select v-model="form.memberIds" filterable :multiple="true" :loading="loading"  placeholder="鍙緭鍏ュ鍚� | 鎵嬫満鍙� | 閮ㄩ棬鍚嶇О杩涜鎼滅储">
@@ -54,6 +65,8 @@
 import GlobalWindow from '@/components/common/GlobalWindow'
 import { allList } from '@/api/business/member'
 import { treeList } from '@/api/business/company'
+import { createRoleMenu } from '@/api/system/role'
+import { create } from '@/api/business/managers'
 
 export default {
   name: 'OperaManagersWindow',
@@ -67,6 +80,7 @@
         companyId: null,
         memberId: '',
         memberIds: [],
+        companyIds: [],
         remark: '',
         isQw: 0,
         isEmail: 0,
@@ -78,9 +92,9 @@
       // 楠岃瘉瑙勫垯
       rules: {
         memberIds: [
-          { required: true ,message: '璇烽�夋嫨璐熻矗浜�' }
+          { required: true, message: '璇烽�夋嫨璐熻矗浜�' }
         ],
-        companyId: [
+        companyIds: [
           { required: true, message: '璇烽�夋嫨閮ㄩ棬' }
         ],
         isMember: [
@@ -96,12 +110,20 @@
     })
   },
   methods: {
+    changeTree(){
+      const selectedMenus = this.$refs.tree.getCheckedNodes(false, true)
+      this.form.companyIds = selectedMenus.map(menu => menu.id)
+      console.log(this.form.companyIds)
+    },
     getfindCompanyTreePage () {
       treeList({})
         .then(res => {
           if (res && res.length > 0) {
             res[0].fsStatus = 1
             this.companyTree = res
+            // 鎵惧嚭鍙惰妭鐐�
+            this.companyTree = this.companyTree.filter(menu => this.companyTree .findIndex(m => m.parentId === menu.id) === -1)
+            console.log(res)
             // this.searchForm.erpOrgId = res[0].erpId
           }
         })
diff --git a/admin/src/components/common/RichEditor.vue b/admin/src/components/common/RichEditor.vue
index b1d27af..a312cc2 100644
--- a/admin/src/components/common/RichEditor.vue
+++ b/admin/src/components/common/RichEditor.vue
@@ -147,7 +147,7 @@
             // 璺ㄥ煙鏄惁浼犻�� cookie 锛岄粯璁や负 false
             withCredentials: true,
             // 瓒呮椂鏃堕棿锛岄粯璁や负 10 绉�
-            timeout: 10 * 1000, // 10 绉�
+            timeout: 10 * 10000, // 10 绉�
             // 涓婁紶鍓�
             onBeforeUpload (files) {
               loadingInstance = Loading.service({
@@ -178,9 +178,10 @@
                 //     message: `${res.data.originalName} 涓婁紶澶辫触锛岃閲嶆柊灏濊瘯`
                 // });
               }
-              insertFn(res.data.url, res.data.originname, res.data.imgname)
+              if(res.data && res.data.url){
+                insertFn(res.data.url, res.data.originname, res.data.imgname)
+              }
             },
-
             // 鍗曚釜鏂囦欢涓婁紶鎴愬姛涔嬪悗
             onSuccess (file, res) {
               console.log(`${file.originalFilename} 涓婁紶鎴愬姛`, res)
@@ -246,7 +247,9 @@
                 //     message: `${res.data.originalName} 涓婁紶澶辫触锛岃閲嶆柊灏濊瘯`
                 // });
               }
-              insertFn(res.data.url, res.data.url)
+              if(res.data && res.data.url){
+                insertFn(res.data.url, res.data.url)
+              }
             },
             // 涓婁紶杩涘害鐨勫洖璋冨嚱鏁�
             onProgress (progress) {
diff --git a/admin/src/views/business/qrcodes.vue b/admin/src/views/business/qrcodes.vue
new file mode 100644
index 0000000..5c0aeeb
--- /dev/null
+++ b/admin/src/views/business/qrcodes.vue
@@ -0,0 +1,124 @@
+<template>
+  <TableLayout >
+    <!-- 琛ㄦ牸鍜屽垎椤� -->
+    <template v-slot:table-wrap>
+      <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']">
+        <li><el-button type="primary" @click="handlePageChange">鍒锋柊</el-button></li>
+      </ul>
+        <el-table
+          v-loading="isWorking.search"
+          :data="tableData.list"
+          stripe
+          @selection-change="handleSelectionChange"
+        >
+        <el-table-column prop="name" label="琛ㄥ崟鍏ュ彛鍚嶇О" min-width="100px"></el-table-column>
+        <el-table-column prop="url" label="浜岀淮鐮�" min-width="100px">
+          <template slot-scope="{ row }">
+            <div :id="`qrcode${row.id}`" :ref="`qrcode${row.id}`"></div>
+          </template>
+        </el-table-column>
+          <el-table-column
+              label="鎿嶄綔"
+              min-width="120"  >
+            <template slot-scope="{row}">
+              <el-button type="text" @click="download(row)"  >涓嬭浇</el-button>
+            </template>
+          </el-table-column>
+      </el-table>
+      <canvas id="QRCode_header" ref="canvas" title="鎵弿浜岀淮鐮�"></canvas>
+    </template>
+    <!-- 鏂板缓/淇敼 -->
+  </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import QRCode from 'qrcodejs2'
+export default {
+  name: 'Category',
+  extends: BaseTable,
+  components: { TableLayout },
+  data () {
+    return {
+      // 鎼滅储
+      searchForm: {
+        id: '',
+        creator: '',
+        createDate: '',
+        editor: '',
+        editDate: '',
+        isdeleted: '',
+        name: '',
+        remark: '',
+        status: '',
+        sortnum: '',
+        imgurl: '',
+        type: '',
+        parentId: null,
+        namePath: '',
+        idPath: ''
+      }
+    }
+  },
+  created () {
+    this.config({
+      module: '浜岀淮鐮佺鐞�',
+      api: '/system/dict'
+    })
+    this.handlePageChange()
+  },
+  methods: {
+    handlePageChange () {
+      this.isWorking.search = true
+      var that = this
+      this.api.qrcodeList({})
+        .then(data => {
+          that.tableData.list = data
+          setTimeout(function () {
+            that.tableData.list.forEach(row => {
+              that.$refs['qrcode' + row.id].innerHTML = ''
+              row.qrcodeImg = that.crateQrcodeShow('qrcode' + row.id, row.url)
+            })
+          }, 1000)
+        })
+        .catch(e => {
+          this.$tip.apiFailed(e)
+        })
+        .finally(() => {
+          this.isWorking.search = false
+        })
+    },
+    download (row) {
+      const nodeList = Array.prototype.slice.call(row.qrcodeImg._el.children)
+      const img = nodeList.find((item) => item.nodeName.toUpperCase() === 'IMG')// 閫夊嚭鍥剧墖绫诲瀷
+      // 鏋勫缓鐢诲竷
+      const canvas = document.createElement('canvas')
+      canvas.width = 220
+      canvas.height = 220
+      const ctx = canvas.getContext('2d')
+      ctx.fillStyle = 'white'
+      ctx.fillRect(0, 0, canvas.width, canvas.height) // 濉厖鏁翠釜鐢诲竷鍖哄煙锛岀‘淇濊儗鏅壊瑕嗙洊鏁翠釜鐢诲竷
+      ctx.drawImage(img, 10,10,200,200)
+      // 鏋勯�爑rl
+      const url = canvas.toDataURL('image/png')
+
+      const a = document.createElement('a')
+      a.href = url
+      a.download = `${row.name}-浜岀淮鐮�.png`
+      a.click()
+      a.remove()
+    },
+    crateQrcodeShow (div, qrcode1) {
+      if (qrcode1 == null || qrcode1 == '') {
+        return
+      }
+      return new QRCode(div, {
+        width: 120,
+        height: 120,
+        text: qrcode1
+      })
+    }
+  }
+}
+</script>
diff --git a/admin/src/views/business/workorderDbh.vue b/admin/src/views/business/workorderDbh.vue
index 15c8cea..c0d231c 100644
--- a/admin/src/views/business/workorderDbh.vue
+++ b/admin/src/views/business/workorderDbh.vue
@@ -24,7 +24,7 @@
           <el-input v-model="searchForm.code" clearable placeholder="璇疯緭鍏ュ伐鍗曞彿" @keypress.enter.native="search"></el-input>
         </el-form-item>
         <el-form-item label="鐘舵�佹弿杩�" prop="status">
-          <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
+          <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" clearable  @change="search" >
             <el-option label="寰呭垎閰峎TS" value="0"></el-option>
             <el-option label="寰呭垎閰嶅伐绋嬪笀" value="1"></el-option>
             <el-option label="SHE鍏抽棴" value="2"></el-option>
diff --git a/admin/src/views/business/workorderDcaChild.vue b/admin/src/views/business/workorderDcaChild.vue
index 6da6a13..2d0cbbe 100644
--- a/admin/src/views/business/workorderDcaChild.vue
+++ b/admin/src/views/business/workorderDcaChild.vue
@@ -24,13 +24,13 @@
           </el-select>
         </el-form-item>
         <el-form-item label="涓婃姤浜哄憳" prop="memberName">
-          <el-input v-model="searchForm.memberName" style="width: 120px"  clearable placeholder="浜哄憳濮撳悕鎴栨墜鏈哄彿" @keypress.enter.native="search"></el-input>
+          <el-input v-model="searchForm.memberName" style="width: 150px"  clearable placeholder="濮撳悕鎴栨墜鏈哄彿" @keypress.enter.native="search"></el-input>
         </el-form-item>
         <el-form-item label="宸ュ崟鍙�" prop="code">
           <el-input v-model="searchForm.code" style="width: 120px"  clearable placeholder="宸ュ崟鍙�" @keypress.enter.native="search"></el-input>
         </el-form-item>
         <el-form-item label="鐘舵�佹弿杩�" prop="status">
-          <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
+          <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" clearable  @change="search" >
             <el-option label="寰呭垎閰峎TS" value="0"></el-option>
             <el-option label="寰呭垎閰嶅伐绋嬪笀" value="1"></el-option>
             <el-option label="SHE鍏抽棴" value="2"></el-option>
diff --git a/server/pom.xml b/server/pom.xml
index f62159e..aad545b 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -15,7 +15,6 @@
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.2.5.RELEASE</version>
   </parent>
-
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@@ -28,15 +27,24 @@
     <apache.shiro.version>1.7.0</apache.shiro.version>
     <oshi.version>5.7.0</oshi.version>
     <jna.version>5.7.0</jna.version>
+    <netty-version>4.1.118.Final</netty-version>
     <poi.version>5.0.0</poi.version>
     <jjwt.version>0.9.1</jjwt.version>
   </properties>
   <dependencyManagement>
     <dependencies>
       <dependency>
-        <groupId>com.azure.spring</groupId>
-        <artifactId>spring-cloud-azure-dependencies</artifactId>
-        <version>4.19.0</version>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-bom</artifactId>
+        <version>${netty-version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+
+      <dependency>
+        <groupId>com.azure</groupId>
+        <artifactId>azure-sdk-bom</artifactId>
+        <version>1.2.34</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
@@ -52,6 +60,16 @@
     <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-data-redis</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>io.netty</groupId>
+          <artifactId>netty-bom</artifactId>
+        </exclusion>
+        <exclusion>
+          <artifactId>reactor-core</artifactId>
+          <groupId>io.projectreactor</groupId>
+        </exclusion>
+      </exclusions>
     </dependency>
     <!-- Shiro -->
     <dependency>
@@ -204,14 +222,39 @@
       <artifactId>bcprov-jdk15on</artifactId>
       <version>1.60</version>
     </dependency>
- <!--   <dependency>
-      <groupId>com.azure.spring</groupId>
-      <artifactId>spring-cloud-azure-starter-storage-blob</artifactId>
-    </dependency>-->
     <dependency>
       <groupId>com.azure</groupId>
       <artifactId>azure-storage-blob</artifactId>
-      <version>12.14.1</version>
+      <exclusions>
+        <exclusion>
+          <artifactId>reactor-core</artifactId>
+          <groupId>io.projectreactor</groupId>
+        </exclusion>
+      </exclusions>
+      <!--  <exclusions>
+          <exclusion>
+            <artifactId>reactor-core</artifactId>
+            <groupId>io.projectreactor</groupId>
+          </exclusion>
+        </exclusions>-->
+    </dependency>
+    <dependency>
+      <groupId>com.azure</groupId>
+      <artifactId>azure-security-keyvault-secrets</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.azure</groupId>
+      <artifactId>azure-identity</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.azure</groupId>
+      <artifactId>azure-storage-common</artifactId>
+    </dependency>
+    <!-- https://mvnrepository.com/artifact/io.projectreactor/reactor-core -->
+    <dependency>
+      <groupId>io.projectreactor</groupId>
+      <artifactId>reactor-core</artifactId>
+      <version>3.4.41</version>
     </dependency>
   </dependencies>
 
diff --git a/server/src/main/java/com/doumee/api/common/PublicCloudController.java b/server/src/main/java/com/doumee/api/common/PublicCloudController.java
index 197c8d1..9c2bea6 100644
--- a/server/src/main/java/com/doumee/api/common/PublicCloudController.java
+++ b/server/src/main/java/com/doumee/api/common/PublicCloudController.java
@@ -53,13 +53,23 @@
     private SystemDictDataBiz systemDictDataBiz;
     @Autowired
     private EmailService emailService;
-    @Value("${upload.type")
+    @Value("${upload.type}")
     private String  uploadType;
 
 
     public static FtpUtil ftp  = null;
     public static AzureBlobUtil azureBlobUtil  = null;
-
+    @GetMapping("/image/{folder}/{date}/{name}")
+    public void getImage(@PathVariable String folder,@PathVariable String date,@PathVariable String name, HttpServletResponse response) throws IOException {
+       try {
+           initUploadTool();
+           response.setContentType("image/jpeg"); // 鏍规嵁浣犵殑鍥剧墖绫诲瀷璁剧疆姝g‘鐨凪IME绫诲瀷
+           log.info("===================鍥剧墖blob鍚嶇О"+folder+"/"+date+"/"+name);
+           azureBlobUtil.downloadBlobToStream(folder+"/"+date+"/"+name,response.getOutputStream());
+       }catch (Exception e) {
+           e.printStackTrace();
+       }
+    }
     @ApiOperation(value = "娴嬭瘯浼佷笟绱犳潗涓婁紶涓嬭浇")
     @RequestMapping(method= RequestMethod.POST,value="/testQwImg")
     @ResponseBody
@@ -90,7 +100,7 @@
                         String fileName = folder + fName;
                         boolean r1 =false;
                         if(StringUtils.equals(Constants.uploadType.blob,uploadType)){
-                            r1 = azureBlobUtil.uploadFileWithResponse( fileName,is);//涓婁紶
+                            r1 = azureBlobUtil.uploadFileWithResponseAndSize( fileName,is,null);//涓婁紶
                         }else{
                             r1 = ftp.uploadInputstreamBatch(is, fileName, true,index);
                         }
@@ -180,7 +190,7 @@
                     String fileName = folder + fName;
                     boolean r =false;
                     if(StringUtils.equals(Constants.uploadType.blob,uploadType)){
-                        r = azureBlobUtil.uploadFileWithResponse( fileName,is);//涓婁紶
+                        r = azureBlobUtil.uploadFileWithResponseAndSize( fileName,is,null);//涓婁紶
                     }else{
                         r = ftp.uploadInputstreamBatch(is, fileName, Constants.equalsInteger(index ,fileList.size()),index);
                     }
@@ -236,8 +246,8 @@
                         //鑾峰緱姣忎竴涓枃浠�
                         String endType = ".jpg";
                         String originname = UUID.randomUUID().toString()+endType;
-                        InputStream is = QywxUtil.getMediaInputstream(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(),media);
-                        if(is == null){
+                        Map<String,Object> map = QywxUtil.getMediaInputstreamMap(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(),media);
+                        if(map == null || map.get("data") == null){
                             log.error("浼佷笟寰俊绱犳潗涓嬭浇澶辫触锛�========="+media);
                             continue;
                         }
@@ -247,9 +257,9 @@
                         String fileName = folder + fName;
                         boolean r =false;
                         if(StringUtils.equals(Constants.uploadType.blob,uploadType)){
-                            r = azureBlobUtil.uploadFileWithResponse( fileName,is);//涓婁紶
+                            r = azureBlobUtil.uploadFileWithResponseAndSize( fileName, (InputStream) map.get("data"),(Integer)map.get("size"));//涓婁紶
                         }else{
-                            r = ftp.uploadInputstreamBatch(is, fileName, Constants.equalsInteger(index ,param.getMediaIds().size()),index);
+                            r = ftp.uploadInputstreamBatch( (InputStream) map.get("data"), fileName, Constants.equalsInteger(index ,param.getMediaIds().size()),index);
                         }
                         if (r) {
                             JSONObject fileJSON = new JSONObject();
@@ -317,7 +327,7 @@
                         String fileName = folder + fName;
                         boolean r =false;
                         if(StringUtils.equals(Constants.uploadType.blob,uploadType)){
-                            r = azureBlobUtil.uploadFileWithResponse( fileName,is);//涓婁紶
+                            r = azureBlobUtil.uploadFileWithResponseAndSize( fileName,is,null);//涓婁紶
                         }else{
                             r = ftp.uploadInputstreamBatch(is, fileName, Constants.equalsInteger(index ,fileList.size()),index);
                         }
@@ -350,10 +360,13 @@
     private void initUploadTool() throws Exception{
         if(StringUtils.equals(Constants.uploadType.blob,uploadType)){
             if(azureBlobUtil == null){
-                azureBlobUtil = new AzureBlobUtil(systemDictDataBiz.queryByCode(Constants.AZURE_BLOB,Constants.AZURE_BLOB_ACCESSNAME).getCode(),
+                azureBlobUtil = new AzureBlobUtil(
+                        systemDictDataBiz.queryByCode(Constants.AZURE_BLOB,Constants.AZURE_BLOB_ACCESSNAME).getCode(),
                         systemDictDataBiz.queryByCode(Constants.AZURE_BLOB,Constants.AZURE_BLOB_ACCESSKEY).getCode(),
                         systemDictDataBiz.queryByCode(Constants.AZURE_BLOB,Constants.AZURE_BLOB_ENDPOINT).getCode(),
                         systemDictDataBiz.queryByCode(Constants.AZURE_BLOB,Constants.AZURE_BLOB_CONTAINER).getCode());
+            }else{
+                azureBlobUtil.initClient();
             }
         }else{
             if(ftp == null){
@@ -405,7 +418,7 @@
                     String fileName = folder+"/"+fName;
                     boolean r =false;
                     if(StringUtils.equals(Constants.uploadType.blob,uploadType)){
-                        r = azureBlobUtil.uploadFileWithResponse( fileName,is);//涓婁紶
+                        r = azureBlobUtil.uploadFileWithResponseAndSize( fileName,is,null);//涓婁紶
                     }else{
                         r = ftp.uploadInputstream(is,fileName);
                     }
diff --git a/server/src/main/java/com/doumee/api/system/SystemDictController.java b/server/src/main/java/com/doumee/api/system/SystemDictController.java
index 28f93f1..fd4e240 100644
--- a/server/src/main/java/com/doumee/api/system/SystemDictController.java
+++ b/server/src/main/java/com/doumee/api/system/SystemDictController.java
@@ -10,6 +10,7 @@
 import com.doumee.dao.system.dto.QuerySystemDictDTO;
 import com.doumee.dao.system.model.SystemDict;
 import com.doumee.dao.system.vo.SystemDictListVO;
+import com.doumee.dao.system.vo.SystemQrcodeListVO;
 import com.doumee.service.system.SystemDictService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -74,4 +75,10 @@
     public ApiResponse<PageData<SystemDictListVO>> findPage (@RequestBody PageWrap<QuerySystemDictDTO> pageWrap) {
         return ApiResponse.success(systemDictService.findPage(pageWrap));
     }
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/qrcodeList")
+    @RequiresPermissions("system:dict:query")
+    public ApiResponse<List<SystemQrcodeListVO>> qrcodeList (@RequestBody QuerySystemDictDTO  pageWrap) {
+        return ApiResponse.success(systemDictService.qrcodeList(pageWrap));
+    }
 }
diff --git a/server/src/main/java/com/doumee/biz/system/impl/SystemJobTriggerBizImpl.java b/server/src/main/java/com/doumee/biz/system/impl/SystemJobTriggerBizImpl.java
index b802b3c..e8bd12c 100644
--- a/server/src/main/java/com/doumee/biz/system/impl/SystemJobTriggerBizImpl.java
+++ b/server/src/main/java/com/doumee/biz/system/impl/SystemJobTriggerBizImpl.java
@@ -206,6 +206,7 @@
         snippet.setDistributeLimit(job.getDistributeLimit());
         snippet.setHandler(job.getHandler());
         snippet.setSnippetIndex(0);
+        snippet.setCreateTime(new Date());
         snippet.setSnippetCode(UUID.randomUUID().toString());
         snippet.setWithLog(job.getWithLog());
         snippet.setAllowServerIps(job.getAllowServerIps());
@@ -236,6 +237,7 @@
             snippet.setJobDistributeGroup(distributeGroup);
             snippet.setHandler(job.getHandler());
             snippet.setSnippetIndex(i);
+            snippet.setCreateTime(new Date());
             snippet.setSnippetCode(UUID.randomUUID().toString());
             snippet.setSnippetData(JSON.toJSONString(snippetData));
             snippet.setSnippetDataSize(snippetData.size());
diff --git a/server/src/main/java/com/doumee/config/mybatis/MyBatisInterceptor.java b/server/src/main/java/com/doumee/config/mybatis/MyBatisInterceptor.java
index a4c4d48..99261e0 100644
--- a/server/src/main/java/com/doumee/config/mybatis/MyBatisInterceptor.java
+++ b/server/src/main/java/com/doumee/config/mybatis/MyBatisInterceptor.java
@@ -95,20 +95,29 @@
     /**
      * 缁欏睘鎬ц祴鍊�
      */
-    private void setFieldValue(Field field, Object target, Object value) throws Exception {
+    private void setFieldValue(Field field, Object target, Object value)   {
+        try {
         field.setAccessible(true);
         field.set(target, value);
         field.setAccessible(false);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
     }
 
     /**
      * 鑾峰彇灞炴�у��
      */
-    private Object getFieldValue(Field field, Object target) throws Exception {
-        field.setAccessible(true);
-        Object value = field.get(target);
-        field.setAccessible(false);
-        return value;
+    private Object getFieldValue(Field field, Object target)  {
+        try {
+            field.setAccessible(true);
+            Object value = field.get(target);
+            field.setAccessible(false);
+            return value;
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+      return  null;
     }
 
     /**
@@ -116,7 +125,7 @@
      */
     private LoginUserInfo getLoginUser () {
         try {
-                return (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+              return (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         }catch (Exception e){
 
         }
diff --git a/server/src/main/java/com/doumee/config/quartz/JobInitializer.java b/server/src/main/java/com/doumee/config/quartz/JobInitializer.java
index 0e3e870..ac44eb8 100644
--- a/server/src/main/java/com/doumee/config/quartz/JobInitializer.java
+++ b/server/src/main/java/com/doumee/config/quartz/JobInitializer.java
@@ -1,5 +1,6 @@
 package com.doumee.config.quartz;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.doumee.core.constants.Constants;
 import com.doumee.core.job.SchedulerProxy;
@@ -41,6 +42,7 @@
      */
     @PostConstruct
     public void initJobs () {
+
         log.debug("Initializing jobs");
         // 淇JOB
         this.repairJobs();
@@ -52,10 +54,15 @@
         queryJobDto.setDeleted(Boolean.FALSE);
         List<SystemJob> jobs = systemJobService.findList(queryJobDto);
         for (SystemJob job : jobs) {
-            schedulerProxy.createJob(new SchedulerProxy.Job(job.getId(), job.getHandler(), job.getCronExpression(), job.getDisallowConcurrent()));
-            log.debug("job '{}' initialized.", job.getJobName());
+            try {
+                schedulerProxy.createJob(new SchedulerProxy.Job(job.getId(), job.getHandler(), job.getCronExpression(), job.getDisallowConcurrent()));
+                log.info("job '{}' initialized.", job.getJobName());
+            }catch (Exception e){
+                e.printStackTrace();
+                log.error("Jobs initialization failed: '{}''{}'  ", JSONObject.toJSONString(job),e.getStackTrace());
+            }
         }
-        log.debug("Jobs initialization completed in {} ms", System.currentTimeMillis() - startTime);
+        log.info("Jobs initialization completed in {} ms", System.currentTimeMillis() - startTime);
     }
 
     /**
diff --git a/server/src/main/java/com/doumee/core/constants/Constants.java b/server/src/main/java/com/doumee/core/constants/Constants.java
index 75cd22f..db47b51 100644
--- a/server/src/main/java/com/doumee/core/constants/Constants.java
+++ b/server/src/main/java/com/doumee/core/constants/Constants.java
@@ -40,6 +40,10 @@
     public static final Integer FOUR = 4;
     public static final Integer SIX = 6;
     public static final Integer FIVE = 5;
+    public static final String QRCODE_URLS = "QRCODE_URLS";
+    public static final String SHE_QRCODES_URL = "SHE_QRCODES_URL";
+    public static final String DCA_QRCODES_URL = "DCA_QRCODES_URL";
+    public static final String DBH_QRCODES_URL = "DBH_QRCODES_URL";
     public static boolean WORKORDER_SHE_EMAIL_SENDING = false;
     public static  boolean DEALING_COMPANY_SYNC = false ;
     public static  boolean DEALING_MEMBER_SYNC = false ;
diff --git a/server/src/main/java/com/doumee/core/utils/HttpsUtil.java b/server/src/main/java/com/doumee/core/utils/HttpsUtil.java
index e4688de..06aed69 100644
--- a/server/src/main/java/com/doumee/core/utils/HttpsUtil.java
+++ b/server/src/main/java/com/doumee/core/utils/HttpsUtil.java
@@ -1,5 +1,7 @@
 package com.doumee.core.utils;
 
+import lombok.extern.slf4j.Slf4j;
+
 import javax.net.ssl.*;
 import java.io.*;
 import java.net.HttpURLConnection;
@@ -9,7 +11,11 @@
 import java.security.SecureRandom;
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
 
+@Slf4j
 public class HttpsUtil {
 
     public static String get(String url,boolean ignoreSSL) {
@@ -163,6 +169,7 @@
         try {
             URL _url = new URL(url);
             connection = (HttpURLConnection) _url.openConnection();
+            System.out.println(connection.getContentLength());
             connection.setDoOutput(true);
             connection.setRequestMethod("GET");
             return connection.getInputStream();
@@ -171,6 +178,30 @@
         }
         return null;
     }
+    public static Map<String,Object> connInputsteamReturnMap(String url, String method, String data, String contentType ){
+        HttpURLConnection connection = null;
+        try {
+            Map<String,Object> map = new HashMap<>();
+            URL _url = new URL(url);
+            connection = (HttpURLConnection) _url.openConnection();
+            connection.setDoOutput(true);
+            connection.setRequestMethod("GET");
+            int size =connection.getContentLength();
+            log.error("浼佷笟鍥剧墖涓嬭浇娴佸疄闄呭ぇ灏忥細=========================="+size);
+            InputStream in =connection.getInputStream();
+            if(in == null){
+                log.error("浼佷笟鍥剧墖涓嬭浇娴佸疄闄呮祦涓虹┖锛�==========================");
+                return null;
+            }
+            log.error("浼佷笟鍥剧墖涓嬭浇娴佸ぇ灏忥細=========================="+in.available());
+            map.put("data",in);
+            map.put("size",size);
+            return map;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
     public static String connectionHttp(String url,String method,String data,String contentType ){
         HttpURLConnection connection = null;
         try {
diff --git a/server/src/main/java/com/doumee/core/utils/azure/AzureBlobUtil.java b/server/src/main/java/com/doumee/core/utils/azure/AzureBlobUtil.java
index 4f1c383..566a07e 100644
--- a/server/src/main/java/com/doumee/core/utils/azure/AzureBlobUtil.java
+++ b/server/src/main/java/com/doumee/core/utils/azure/AzureBlobUtil.java
@@ -1,17 +1,29 @@
 package com.doumee.core.utils.azure;
 
+import com.alibaba.fastjson.JSONObject;
 import com.azure.core.http.rest.Response;
-import com.azure.storage.blob.BlobClient;
-import com.azure.storage.blob.BlobContainerClient;
-import com.azure.storage.blob.BlobServiceClient;
-import com.azure.storage.blob.BlobServiceClientBuilder;
-import com.azure.storage.blob.models.BlobRequestConditions;
-import com.azure.storage.blob.models.BlockBlobItem;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.identity.DefaultAzureCredentialBuilder;
+import com.azure.storage.blob.*;
+import com.azure.storage.blob.models.*;
 import com.azure.storage.blob.options.BlobParallelUploadOptions;
+import com.azure.storage.blob.options.BlobUploadFromFileOptions;
+import com.azure.storage.blob.sas.BlobContainerSasPermission;
+import com.azure.storage.blob.specialized.BlobInputStream;
+import com.azure.storage.common.StorageSharedKeyCredential;
+import io.netty.handler.logging.ByteBufFormat;
+import io.netty.handler.logging.LogLevel;
+import reactor.util.context.ContextView;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 
+import javax.servlet.ServletOutputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.io.InputStream;
+import java.io.UncheckedIOException;
+import java.nio.file.Path;
+import java.time.OffsetDateTime;
 
 @Data
 @Slf4j
@@ -28,55 +40,155 @@
 
     public AzureBlobUtil(String accountName, String accountKey, String endpoint, String container){
         try {
+
             this.accountKey = accountKey;
             this.accountName = accountName;
             this.endpoint = endpoint;
             this.container = container;
-            this.connectionString = "DefaultEndpointsProtocol=https;AccountName=" + this.accountName + ";AccountKey=" + this.accountKey + ";EndpointSuffix=" + endpoint;
-            this.blobServiceClient = new BlobServiceClientBuilder().connectionString(connectionString).buildClient();
-            this.blobContainerClient = this.blobServiceClient.getBlobContainerClient(this.container);
+//            this.connectionString = "DefaultEndpointsProtocol=https;AccountName=" + this.accountName + ";AccountKey=" + this.accountKey + ";EndpointSuffix=" + endpoint;
+//            this.blobServiceClient = new BlobServiceClientBuilder().connectionString(connectionString).buildClient();
+//            this.blobServiceClient = new BlobServiceClientBuilder()
+//                    .endpoint(endpoint)
+//                    .sasToken(accountKey)
+//                    .buildClient();
+           initClient();
         }catch (Exception e) {
             e.printStackTrace();
+            log.error("鍒濆鍖朆LOB瀹㈡埛绔紓甯�0=========="+e.getMessage());
         }
 
     }
 
     public   void initClient( )   {
+        if(this.blobServiceClient!=null){
+            log.error("鍒濆鍖朆LOB瀹㈡埛绔凡瀹屾垚锛屾棤闇�閲嶅鎺堟潈==========");
+            return;
+        }
         try {
-            this.blobServiceClient = new BlobServiceClientBuilder().connectionString(connectionString).buildClient();
-            this.blobContainerClient = this.blobServiceClient.getBlobContainerClient(this.container);
+            StorageSharedKeyCredential credential = new StorageSharedKeyCredential(accountName, accountKey);
+            // Azure SDK client builders accept the credential as a parameter
+            this.blobServiceClient  = new BlobServiceClientBuilder()
+                    .endpoint(endpoint)
+                    .credential(credential)
+                    .buildClient();
+            this.blobContainerClient = this.blobServiceClient.createBlobContainerIfNotExists(this.container);
+            this.blobContainerClient.setAccessPolicy(PublicAccessType.CONTAINER, null);
+//            this.blobContainerClient = this.blobServiceClient.getBlobContainerClient(this.container);
+//            String endpointString = String.format("https://%s.blob.core.windows.net/%s",
+//                    accountName, container);
+//
+//            this.blobContainerClient = new BlobContainerClientBuilder()
+//                    .endpoint(endpointString)
+//                    .credential(new DefaultAzureCredentialBuilder().build())
+//                    .buildClient();
         }catch (Exception e) {
             e.printStackTrace();
+            log.error("鍒濆鍖朆LOB瀹㈡埛绔紓甯�1=========="+e.getMessage());
         }
     }
-    public   void uploadFile(String fileName, InputStream data)   {
+
+    public void downloadBlobToStream(String  blob, ServletOutputStream outputStream) {
+        BlobClient blobClient =this.getBlobContainerClient().getBlobClient(blob);
+        blobClient.downloadStream(outputStream);
+    }
+    public BlobInputStream readBlobFromStream(String  blob) {
+        BlobClient blobClient =this.getBlobContainerClient().getBlobClient(blob);
+        // Opening a blob input stream allows you to read from a blob through a normal
+        // stream interface
+        try (BlobInputStream blobStream = blobClient.openInputStream()) {
+            blobStream.read();
+            return blobStream ;
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return  null;
+    }
+    public BlobInputStream readBlobFromStream(BlobClient blobClient) {
+        // Opening a blob input stream allows you to read from a blob through a normal
+        // stream interface
+        try (BlobInputStream blobStream = blobClient.openInputStream()) {
+            blobStream.read();
+            return blobStream;
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+    public   boolean upload(String fileName, InputStream data)   {
         try {
             if(getBlobContainerClient() == null){
                 initClient();
             }
             BlobClient client = this.blobContainerClient.getBlobClient(fileName);
             client.upload(data, data.available(), true);
+            return true;
         }catch (Exception e) {
             e.printStackTrace();
         }
+
+        return false;
     }
-    public  boolean uploadFileWithResponse(String fileName, InputStream inputStream)   {
+
+    public void uploadBlockBlobWithTransferOptions(BlobContainerClient blobContainerClient, Path filePath) {
+        String fileName = filePath.getFileName().toString();
+        BlobClient blobClient = blobContainerClient.getBlobClient(fileName);
+
+        ParallelTransferOptions parallelTransferOptions = new ParallelTransferOptions()
+                .setBlockSizeLong((long) (4 * 1024 * 1024)) // 4 MiB block size
+                .setMaxConcurrency(2)
+                .setMaxSingleUploadSizeLong((long) 8 * 1024 * 1024); // 8 MiB max size for single request upload
+
+        BlobUploadFromFileOptions options = new BlobUploadFromFileOptions(filePath.toString());
+        options.setParallelTransferOptions(parallelTransferOptions);
+
         try {
+            Response<BlockBlobItem> blockBlob = blobClient.uploadFromFileWithResponse(options, null, null);
+        } catch (UncheckedIOException ex) {
+            System.err.printf("Failed to upload from file: %s%n", ex.getMessage());
+        }
+    }
+    /*public  boolean uploadFileWithResponse(String fileName, InputStream inputStream)   {
+        try {
+            log.error("BLOB涓婁紶寮�鍙戯細........"+fileName);
             if(getBlobContainerClient() == null){
+                log.error("BLOB涓婁紶寮�鍙戯細........鍒濆鍖栧鎴风");
                 initClient();
             }
             BlobParallelUploadOptions options = new BlobParallelUploadOptions(inputStream, inputStream.available());
             options.setRequestConditions(new BlobRequestConditions().setIfNoneMatch("*"));
             Response<BlockBlobItem> rsp = this.blobContainerClient.getBlobClient(fileName).uploadWithResponse(options, null, null);
-            if(rsp.getStatusCode()==201)  {
-                log.info("涓婁紶鎴愬姛锛�........"+fileName);
+            if(rsp!=null && rsp.getStatusCode()==201)  {
+                log.info("BLOB涓婁紶鎴愬姛锛�........"+fileName);
+                log.error("BLOB涓婁紶鎴愬姛锛�........"+fileName);
                 return true;
             }
+            log.error("BLOB涓婁紶澶辫触锛�........"+ JSONObject.toJSONString(rsp));
         }catch (Exception e) {
             e.printStackTrace();
-            log.info("涓婁紶澶辫触锛�........"+e.getMessage());
+            log.error("BLOB涓婁紶澶辫触锛�........"+e.getMessage());
+        }
+        return false;
+    }*/
+    public  boolean uploadFileWithResponseAndSize(String fileName, InputStream inputStream,Integer size)   {
+        try {
+            log.error("BLOB涓婁紶寮�鍙戯細........"+fileName+"===============size:"+size);
+            if(getBlobContainerClient() == null){
+                log.error("BLOB涓婁紶寮�鍙戯細........鍒濆鍖栧鎴风");
+                initClient();
+            }
+            BlobParallelUploadOptions options = new BlobParallelUploadOptions(inputStream,(size!=null && size>0)?size: inputStream.available());
+            options.setRequestConditions(new BlobRequestConditions().setIfNoneMatch("*"));
+            Response<BlockBlobItem> rsp = this.blobContainerClient.getBlobClient(fileName).uploadWithResponse(options, null, null);
+            if(rsp!=null && rsp.getStatusCode()==201)  {
+                log.info("BLOB涓婁紶鎴愬姛锛�........"+fileName);
+                log.error("BLOB涓婁紶鎴愬姛锛�........"+fileName);
+                return true;
+            }
+            log.error("BLOB涓婁紶澶辫触锛�........"+ JSONObject.toJSONString(rsp));
+        }catch (Exception e) {
+            e.printStackTrace();
+            log.error("BLOB涓婁紶澶辫触锛�........"+e.getMessage());
         }
         return false;
     }
-
 }
\ No newline at end of file
diff --git a/server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxConstant.java b/server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxConstant.java
index b2bad0f..5fc44ea 100644
--- a/server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxConstant.java
+++ b/server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxConstant.java
@@ -10,7 +10,7 @@
 	public final static String DMSECRET = "mfmGJpvqj1WNPTwo0Cue42uibhUd5W6_iSWpF39XZQ0";//瀹㈢瀹跺簲鐢� SECRET
 	public final static String CORPSECRET = "8gl5ndGr824OHZ90CkZdcIewUKHoyk13XN4hfxBS_io";
 	public final static String ACCESS_TOKEN = "aOpknXCW7KBBwgGAPuacwfhJRcT1PeIg-IroZicxWamj0JayKJ0rKw2sNXGzpQzK8AMDeDrEJC_kTvPPWTgtefDNLtfsdHS7IpXqBV1P8znLG1EmsYPNgvn78dsQd5bBomLl_qPpOob9hUUsSJJKcEmxXldCNEYVBhKmYnQ4yY8WE8i4xp7aLmm-hRql0AzhzaNhUA7nAzNN5BsgSgbXMA";
-	//鑾峰彇accesstoken,corpid=浼佷笟ID,corpsecret=搴旂敤鐨勫嚟璇佸瘑閽�
+	//鑾峰彇accesstoken,corpid=浼佷笟ID,corpsecret=搴旂敤鐨勫嚟璇佸瘑閽� https://wecom-qyapiqa.unilever-china.com/cgi-bin/gettoken?corpid=wwe02e8fd876f8add1&corpsecret=5e0272fabfcfcee79840f1cef24cb364
     public final static String[] GET_ACCESS_TOKEN = new String[]{"/cgi-bin/gettoken?corpid=${corpid}&corpsecret=${secret}","鑾峰彇浼佷笟寰俊accesstoken"};
 	//鑾峰彇閮ㄩ棬淇℃伅,閮ㄩ棬id銆傝幏鍙栨寚瀹氶儴闂ㄥ強鍏朵笅鐨勫瓙閮ㄩ棬锛堜互鍙婂強瀛愰儴闂ㄧ殑瀛愰儴闂ㄧ瓑绛夛紝閫掑綊锛夈�� 濡傛灉涓嶅~锛岄粯璁よ幏鍙栧叏閲忕粍缁囨灦鏋�
     public final static String[]  GET_DEPARTMENT_LIST = new String[]{"/cgi-bin/department/list?access_token=${accesstoken}&id=${id}","鑾峰彇閮ㄩ棬淇℃伅"};
diff --git a/server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java b/server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java
index a501b01..c3faaed 100644
--- a/server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java
+++ b/server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java
@@ -6,6 +6,7 @@
 import com.doumee.core.utils.HttpsUtil;
 import com.doumee.core.utils.qiyeweixin.model.request.QywxSendMsgRequest;
 import com.doumee.core.utils.qiyeweixin.model.response.*;
+import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +24,7 @@
 
 @Component
 @Slf4j
+@Data
 public class QywxUtil {
     private static JSONObject json = new JSONObject();
 
@@ -36,6 +38,8 @@
     @PostConstruct
     private void init() {
         qyUtil = this;
+        System.out.println(qyUtil.qiweiUrl);
+        System.out.println(qyUtil.getQiweiUrl());
 //        QywxUtil.qiweiUrl =  serviceurl;
     }
 
@@ -59,7 +63,7 @@
     public static String getAccessToken(String corpId, String corpSecret)  {
         String[] interfaceUrl = QywxConstant.GET_ACCESS_TOKEN;
         String url = interfaceUrl[0].replace("${corpid}",corpId).replace("${secret}",corpSecret);
-        QywxBaseResponse response = sendHttpRequest(url,interfaceUrl[1],"",new TypeReference<QywxBaseResponse<String>>(){});
+        QywxBaseResponse response = sendHttpGetRequest(url,interfaceUrl[1], new TypeReference<QywxBaseResponse<String>>(){});
         if(response.getErrcode()!=null && response.getErrcode() ==0){
             return response.getAccess_token();
         }
@@ -89,7 +93,7 @@
             String[] interfaceUrl = QywxConstant.SEND_MSG;
             String url = interfaceUrl[0].replace("${accesstoken}",token);
             QywxSendMsgResponse response = sendHttpRequestSingle(url,interfaceUrl[1],JSONObject.toJSONString(param)
-                    ,new TypeReference<QywxSendMsgResponse>(){});
+                    ,new TypeReference<QywxSendMsgResponse>(){},true);
             log.error("鎺ㄩ�佹秷鎭粨鏋渰}",JSONObject.toJSONString(response));
             if(response.getErrcode()!=null && response.getErrcode() ==0){
                 return response;
@@ -127,11 +131,26 @@
 
         return null;
     }
+
+    public static   Map<String,Object> getMediaInputstreamMap(String token, String media)   {
+        try {
+            String[] interfaceUrl = QywxConstant.GET_MEDIA;
+            String url = qyUtil.qiweiUrl+interfaceUrl[0].replace("${accesstoken}",token).replace("${media_id}",media);
+            log.info("浼佷笟寰俊涓存椂绱犳潗鑾峰彇url=========="+url);
+            Map<String,Object> map =  HttpsUtil.connInputsteamReturnMap(url,"GET",null,null);
+            return map;
+        }catch (Exception e){
+            e.printStackTrace();
+            log.error("浼佷笟寰俊涓存椂绱犳潗鑾峰彇error=========="+e.getMessage());
+        }
+
+        return null;
+    }
     public static QywxUserInfoResponse getUserInfo(String token,String id)  {
         String[] interfaceUrl = QywxConstant.GET_USER_DETAIL;
         String url = interfaceUrl[0].replace("${accesstoken}",token).replace("${id}",id);
         QywxUserInfoResponse response = sendHttpRequestSingle(url,interfaceUrl[1],""
-                ,new TypeReference<QywxUserInfoResponse>(){});
+                ,new TypeReference<QywxUserInfoResponse>(){},false);
         if(response.getErrcode()!=null && response.getErrcode() ==0){
             return response;
         }
@@ -188,12 +207,12 @@
      * @param <T>
      */
     public static   <T> QywxBaseResponse<T> sendHttpRequest(String url, String name, String param, TypeReference<QywxBaseResponse<T>> typeReference){
-        log.info("銆�"+name+"銆�================寮�濮�===="+url+"\nparam==========================:"+ JSONObject.toJSONString(param));
+        log.info("銆�"+name+"銆�================寮�濮�===="+qyUtil.qiweiUrl+url+"\nparam==========================:"+ JSONObject.toJSONString(param));
         if ( StringUtils.isNotBlank(url)) {
             String res = null;
             try {
                 Map<String,String> headers = new HashMap<>();
-                res = HttpsUtil.postJson(qyUtil.qiweiUrl+url,param);
+                res = HttpsUtil.get(qyUtil.qiweiUrl+url,true);
                 QywxBaseResponse result = JSONObject.parseObject(res, typeReference.getType());
                 logResult(result,name);
                 return  result;
@@ -204,8 +223,25 @@
         }
         return  null;
     }
+    public static   <T> QywxBaseResponse<T> sendHttpGetRequest(String url, String name,  TypeReference<QywxBaseResponse<T>> typeReference){
+        log.info("銆�"+name+"銆�================寮�濮�===="+qyUtil.qiweiUrl+url+"\nparam==========================:"+ JSONObject.toJSONString(url));
+        if ( StringUtils.isNotBlank(url)) {
+            String res = null;
+            try {
+                Map<String,String> headers = new HashMap<>();
+                res = HttpsUtil.get(qyUtil.qiweiUrl+url,true);
+                QywxBaseResponse result = JSONObject.parseObject(res, typeReference.getType());
+                logResult(result,name);
+                return  result;
+            }catch (Exception e){
+                e.printStackTrace();
+                log.error("銆�"+name+"銆�================澶辫触===="+ JSONObject.toJSONString(url));
+            }
+        }
+        return  null;
+    }
     public static  <T extends QywxBaseSingleResponse>  T sendHttpRequestMultifile(String url, String name, String imgUrl  , TypeReference<T> typeReference){
-        log.info("銆�"+name+"銆�================寮�濮�===="+ imgUrl);
+        log.info("銆�"+name+"銆�================寮�濮�===="+qyUtil.qiweiUrl+url+"\nparam==========================:"+ imgUrl);
         if ( StringUtils.isNotBlank(url)) {
             String res = null;
             try {
@@ -221,13 +257,17 @@
         }
         return  null;
     }
-    public static  <T extends QywxBaseSingleResponse>  T sendHttpRequestSingle(String url, String name, String param, TypeReference<T> typeReference){
-        log.info("銆�"+name+"銆�================寮�濮�===="+ JSONObject.toJSONString(param));
+    public static  <T extends QywxBaseSingleResponse>  T sendHttpRequestSingle(String url, String name, String param, TypeReference<T> typeReference,boolean isPost){
+        log.info("銆�"+name+"銆�================寮�濮�===="+qyUtil.qiweiUrl+url+"\nparam==========================:"+ JSONObject.toJSONString(param));
         if ( StringUtils.isNotBlank(url)) {
             String res = null;
             try {
                 Map<String,String> headers = new HashMap<>();
-                res = HttpsUtil.postJson(qyUtil.qiweiUrl+url,param);
+                if(isPost){
+                    res = HttpsUtil.postJson(qyUtil.qiweiUrl+url,param);
+                }else{
+                    res = HttpsUtil.get(qyUtil.qiweiUrl+url,true);
+                }
                 T result = JSONObject.parseObject(res, typeReference.getType());
 //                logResult(result,name);
                 return  result;
diff --git a/server/src/main/java/com/doumee/dao/business/model/Company.java b/server/src/main/java/com/doumee/dao/business/model/Company.java
index f5be827..1fe3ce5 100644
--- a/server/src/main/java/com/doumee/dao/business/model/Company.java
+++ b/server/src/main/java/com/doumee/dao/business/model/Company.java
@@ -93,5 +93,8 @@
     @ApiModelProperty(value = "鏄惁涓洪儴闂ㄨ礋璐d汉0-鍚︼紱1-鏄�", example = "1")
     @TableField(exist = false)
     private Integer isLeader;
+    @ApiModelProperty(value = "鏄惁鍖呭惈瀛愯彍鍗�")
+    @TableField(exist = false)
+    private Boolean hasChildren;
 
 }
diff --git a/server/src/main/java/com/doumee/dao/business/model/Managers.java b/server/src/main/java/com/doumee/dao/business/model/Managers.java
index 9d3bed8..f951e37 100644
--- a/server/src/main/java/com/doumee/dao/business/model/Managers.java
+++ b/server/src/main/java/com/doumee/dao/business/model/Managers.java
@@ -94,6 +94,9 @@
     @ApiModelProperty(value = "缁勭粐缂栫爜ID")
     @TableField(exist = false)
     private Integer companyId;
+    @ApiModelProperty(value = "缁勭粐缂栫爜IDs")
+    @TableField(exist = false)
+    private List<String> companyIds;
     @ApiModelProperty(value = "璁剧疆鑼冨洿 0鐩村睘閮ㄩ棬鍛樺伐 1閮ㄩ棬鍙婂叾涓嬬骇甯冩仼鍛樺伐 2鎸囧畾浜哄憳")
     @TableField(exist = false)
     private Integer isMember;
diff --git a/server/src/main/java/com/doumee/dao/business/vo/CompanyTree.java b/server/src/main/java/com/doumee/dao/business/vo/CompanyTree.java
index b961eb4..ab82e42 100644
--- a/server/src/main/java/com/doumee/dao/business/vo/CompanyTree.java
+++ b/server/src/main/java/com/doumee/dao/business/vo/CompanyTree.java
@@ -42,6 +42,9 @@
         for (Company treeNode : nodeList){
             // 鍒ゆ柇褰撳墠鑺傜偣鏄惁涓烘牴鑺傜偣锛屾澶勬敞鎰忥細鑻arentId绫诲瀷鏄疭tring锛屽垯瑕侀噰鐢╡quals()鏂规硶鍒ゆ柇銆�
             if(origin== 1){
+                if( findParentIdFromList(treeNode.getQwParentId()) == null){
+                    treeNode.setQwParentId(null);//鍘婚櫎娌¤幏鍙栫殑鐖惰妭鐐圭殑浼佸井鐖剁骇鏍囪瘑锛屼綔涓洪《鑺傜偣
+                }
                 if (StringUtils.isBlank(treeNode.getQwParentId()) || StringUtils.equals(treeNode.getQwId(),"1")) {
                     // 鏄紝娣诲姞
                     rootNodeList.add(treeNode);
@@ -54,6 +57,15 @@
             }
         }
         return rootNodeList;
+    }
+
+    private Company findParentIdFromList(String qwParentId) {
+        for(Company c : nodeList){
+            if(StringUtils.equals(c.getQwId(),qwParentId)){
+                return  c;
+            }
+        }
+        return null;
     }
 
 
@@ -98,6 +110,11 @@
         }
         // for寰幆缁撴潫锛屽嵆鑺傜偣涓嬫病鏈変换浣曡妭鐐癸紝鏍戝舰鏋勫缓缁撴潫锛岃缃爲缁撴灉
         pNode.setChildList(childTree);
+        if(childTree == null || childTree.size() ==0){
+            pNode.setHasChildren(Boolean.FALSE);
+        }else{
+            pNode.setHasChildren(Boolean.TRUE);
+        }
         return pNode;
     }
 
diff --git a/server/src/main/java/com/doumee/dao/system/model/SystemDictData.java b/server/src/main/java/com/doumee/dao/system/model/SystemDictData.java
index 80a7813..f74c660 100644
--- a/server/src/main/java/com/doumee/dao/system/model/SystemDictData.java
+++ b/server/src/main/java/com/doumee/dao/system/model/SystemDictData.java
@@ -27,7 +27,7 @@
     private Integer id;
 
     @ApiModelProperty(value = "鎵�灞炲瓧鍏�", example = "1")
-    @NotNull(message = "鎵�灞炲瓧鍏镐笉鑳戒负绌�", groups = {Constants.OperaType.Create.class, Constants.OperaType.Update.class})
+    @NotNull(message = "鎵�灞炲瓧鍏镐笉鑳戒负绌�", groups = {Constants.OperaType.Create.class })
     private Integer dictId;
 
     @ApiModelProperty(value = "鏁版嵁鍊�")
diff --git a/server/src/main/java/com/doumee/dao/system/vo/SystemQrcodeListVO.java b/server/src/main/java/com/doumee/dao/system/vo/SystemQrcodeListVO.java
new file mode 100644
index 0000000..218cf26
--- /dev/null
+++ b/server/src/main/java/com/doumee/dao/system/vo/SystemQrcodeListVO.java
@@ -0,0 +1,24 @@
+package com.doumee.dao.system.vo;
+
+import com.doumee.dao.system.model.SystemDict;
+import com.doumee.dao.system.model.SystemUser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author  dm
+ * @since 2025/03/31 16:44
+ */
+@Data
+@ApiModel("浜岀淮鐮佺鐞嗗璞�")
+public class SystemQrcodeListVO   {
+
+    @ApiModelProperty(value = "缂栫爜")
+    private String id;
+    @ApiModelProperty(value = "鍚嶇О")
+    private String name;
+    @ApiModelProperty(value = "鍦板潃")
+    private String url;
+
+}
diff --git a/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java
index 8090b94..112f4c5 100644
--- a/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java
+++ b/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java
@@ -61,18 +61,22 @@
         //璁剧疆鑼冨洿 0鐩村睘閮ㄩ棬鍛樺伐 1閮ㄩ棬鍙婂叾涓嬬骇甯冩仼鍛樺伐 2鎸囧畾浜哄憳
         if(Constants.equalsInteger(managers.getIsMember(),Constants.ZERO) || Constants.equalsInteger(managers.getIsMember(),Constants.ONE)){
             //鐩村睘閮ㄩ棬 鎴� 閮ㄩ棬鍙婂叾瀛愰儴闂�
-            if(managers.getCompanyId() ==null ){
+          /*  if(managers.getCompanyId() ==null ){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST);
             }
             Company company = companyMapper.selectById(managers.getCompanyId());
             if(company == null || Constants.equalsInteger(company.getIsdeleted(),Constants.ONE)){
                 throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝閮ㄩ棬淇℃伅涓嶅瓨鍦紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
+            }*/
+            if(managers.getCompanyIds() ==null  || managers.getCompanyIds().size() ==0 ){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST);
             }
             memberList  =memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
                     .selectAll(Member.class)
                     .eq(Member::getIsdeleted,Constants.ZERO)
-                    .exists(Constants.equalsInteger(managers.getIsMember(),Constants.ZERO),"select (cm.id) from company_member cm where cm.company_id='"+company.getId()+"'  and cm.member_id=t.id")
-                    .exists(Constants.equalsInteger(managers.getIsMember(),Constants.ONE),"select (cm.id) from company_member cm where cm.company_id_path like '"+company.getIdPath()+"%'  and cm.member_id=t.id"));
+                    .exists(Constants.equalsInteger(managers.getIsMember(),Constants.ZERO),"select (cm.id) from company_member cm where cm.company_id in ("+String.join(",",managers.getCompanyIds())+" ) and cm.member_id=t.id")
+//                    .exists(Constants.equalsInteger(managers.getIsMember(),Constants.ONE),"select (cm.id) from company_member cm where cm.company_id_path like '"+company.getIdPath()+"%'  and cm.member_id=t.id")
+            );
         }else{
             if(managers.getMemberIds()==null || managers.getMemberIds().size()==0){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇锋寜瑕佹眰閫夋嫨鎸囧畾鍛樺伐淇℃伅锛�");
diff --git a/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index c206767..7e9872d 100644
--- a/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -309,7 +309,7 @@
                         if(StringUtils.isNotBlank(comNames)){
                             comNames += ",";
                         }
-                        comNames += c.getNamePath();
+                        comNames += StringUtils.defaultString(c.getNamePath(),c.getName());
                     }
                 }
                 cm.setCompanyList(qycom);
diff --git a/server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java
index f99971e..5ddb640 100644
--- a/server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java
+++ b/server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java
@@ -1086,6 +1086,7 @@
               status = 2;
               info ="鏃犳晥鍛樺伐淇℃伅锛屾棤娉曞彂閫侀偖绠�";
         }else{
+            //閭宸插彂閫侊細鎴愬姛锛歔"姹熻悕閭jp@doumee.com"]澶辫触锛歔"姹熻悕/鏃犻偖绠�","鎴村己寮�/閭null","閮檯鏂囨/閭null"]
             List<String>    successInfo = new ArrayList<>();
             List<String> errorInfo = new ArrayList<>();
             Map<String,String> contentForm = getEmailContentFormByModel(workorder);
diff --git a/server/src/main/java/com/doumee/service/common/EmailService.java b/server/src/main/java/com/doumee/service/common/EmailService.java
index e511c37..ef2916c 100644
--- a/server/src/main/java/com/doumee/service/common/EmailService.java
+++ b/server/src/main/java/com/doumee/service/common/EmailService.java
@@ -1,5 +1,6 @@
 package com.doumee.service.common;
 
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
@@ -14,6 +15,7 @@
 import java.util.Map;
 
 @Service
+@Slf4j
 public class EmailService {
     @Autowired
     private JavaMailSender javaMailSender;//娉ㄥ叆JavaMailSender
@@ -44,6 +46,7 @@
                 }
             }
     public boolean sendEmailWithImages(String toEmail, String title, Map<String,String> contentForm, List<String> imgList) {
+        log.error("閭欢寮�濮嬪彂閫�============"+toEmail);
         try {
                 AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
                 context.refresh();
@@ -66,13 +69,15 @@
                         content += "<a href='"+f+"' target='blank'><img style='width:200px;margin:5px' src='"+f+"'/></a>";
                     }
                 }
-            content += "</div></body><html>";
-            helper.setText(content,true);
-            javaMailSender.send(message);
-                    System.out.println("閭欢鍙戦�佹垚鍔燂紒");
-                    return true;
+                content += "</div></body><html>";
+                helper.setText(content,true);
+                log.error("閭欢鍐呭============"+content);
+                javaMailSender.send(message);
+                log.error("閭欢鍙戠敓鎴愬姛============");
+                return true;
             } catch (Exception e) {
             e.printStackTrace();
+            log.error("閭欢鍙戠敓鎴愬姛============"+e.getMessage());
                     return false;
                 }
             }
diff --git a/server/src/main/java/com/doumee/service/system/SystemDictService.java b/server/src/main/java/com/doumee/service/system/SystemDictService.java
index e8091a9..5910dcd 100644
--- a/server/src/main/java/com/doumee/service/system/SystemDictService.java
+++ b/server/src/main/java/com/doumee/service/system/SystemDictService.java
@@ -5,6 +5,7 @@
 import com.doumee.dao.system.dto.QuerySystemDictDTO;
 import com.doumee.dao.system.model.SystemDict;
 import com.doumee.dao.system.vo.SystemDictListVO;
+import com.doumee.dao.system.vo.SystemQrcodeListVO;
 
 import java.util.List;
 
@@ -90,4 +91,6 @@
      * @return long
      */
     long count(SystemDict systemDict);
+
+    List<SystemQrcodeListVO> qrcodeList(QuerySystemDictDTO pageWrap);
 }
diff --git a/server/src/main/java/com/doumee/service/system/impl/SystemDictServiceImpl.java b/server/src/main/java/com/doumee/service/system/impl/SystemDictServiceImpl.java
index d0e044f..6f46c50 100644
--- a/server/src/main/java/com/doumee/service/system/impl/SystemDictServiceImpl.java
+++ b/server/src/main/java/com/doumee/service/system/impl/SystemDictServiceImpl.java
@@ -1,5 +1,10 @@
 package com.doumee.service.system.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.doumee.core.constants.Constants;
+import com.doumee.dao.system.SystemDictDataMapper;
+import com.doumee.dao.system.model.SystemDictData;
+import com.doumee.dao.system.vo.SystemQrcodeListVO;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.doumee.core.model.PageData;
@@ -11,11 +16,13 @@
 import com.doumee.service.system.SystemDictService;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -28,6 +35,8 @@
 
     @Autowired
     private SystemDictMapper systemDictMapper;
+    @Autowired
+    private SystemDictDataMapper systemDictDataMapper;
 
     @Override
     public Integer create(SystemDict systemDict) {
@@ -88,6 +97,31 @@
         PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity());
         return PageData.from(new PageInfo<>(systemDictMapper.selectManageList(pageWrap.getModel(), pageWrap.getOrderByClause())));
     }
+    @Override
+    public List<SystemQrcodeListVO> qrcodeList(QuerySystemDictDTO pageWrap) {
+        List<SystemQrcodeListVO> list = new ArrayList<>();
+        SystemDict dict =systemDictMapper.selectOne(new LambdaQueryWrapper<SystemDict>().
+                eq(SystemDict::getCode,Constants.QRCODE_URLS)
+                .last("limit 1")) ;
+        if(dict!=null){
+            List<SystemDictData> dataList = systemDictDataMapper.selectList(new LambdaQueryWrapper<SystemDictData>().
+                    eq(SystemDictData::getDictId,dict.getId()))   ;
+            if(dataList!=null && dataList.size()>0){
+                for(SystemDictData data :dataList){
+                    SystemQrcodeListVO t = new SystemQrcodeListVO();
+                    t.setId(data.getId()+"");
+                    t.setName(data.getRemark());
+                    t.setUrl(data.getCode());
+                    if(StringUtils.equals(data.getLabel(),Constants.SHE_QRCODES_URL)
+                            ||StringUtils.equals(data.getLabel(),Constants.DCA_QRCODES_URL)
+                            ||StringUtils.equals(data.getLabel(),Constants.DBH_QRCODES_URL)){
+                        list.add(t);
+                    }
+                }
+            }
+        }
+        return list;
+    }
 
     @Override
     public long count(SystemDict systemDict) {
diff --git a/server/src/main/resources/application-dev.yml b/server/src/main/resources/application-dev.yml
index a478110..74e10f9 100644
--- a/server/src/main/resources/application-dev.yml
+++ b/server/src/main/resources/application-dev.yml
@@ -37,9 +37,13 @@
 #            enable: true
 #            required: true
   mail:
-    host: smtp.exmail.qq.com
-    username: jp@doumee.com
-    password: 2Jz9HFW2U7vRnCRu
+#    host: smtp.exmail.qq.com
+#    username: jp@doumee.com
+#    password: 2Jz9HFW2U7vRnCRu
+    host: smtp.aliyun.com
+    port: 80
+    username: lkshereport@mail.unilever-china.com
+    password: f2fLk384RChX
     default-encoding: UTF-8
     properties:
       mail:
diff --git a/server/src/main/resources/application-pro.yml b/server/src/main/resources/application-pro.yml
index 4648eb0..e3e3a9c 100644
--- a/server/src/main/resources/application-pro.yml
+++ b/server/src/main/resources/application-pro.yml
@@ -5,9 +5,9 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/lianhelihua_sh?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
-    username: doumee
-    password: rtjgfEr@&0c0m
+    url: jdbc:mysql://solution-cnn3-d-shereport-db-mysql01.mysql.database.chinacloudapi.cn:3306/lianhelihua?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    username: service_account
+    password: yP5@jJzqME63
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
   redis:
diff --git a/server/src/main/resources/application-test.yml b/server/src/main/resources/application-test.yml
index 33ca68c..1b4c49a 100644
--- a/server/src/main/resources/application-test.yml
+++ b/server/src/main/resources/application-test.yml
@@ -5,9 +5,9 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://112.26.66.25:3306/lianhelihua_sh?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
-    username: root
-    password: Doumee@168&QWERT
+    url: jdbc:mysql://solution-cnn3-d-shereport-db-mysql01.mysql.database.chinacloudapi.cn:3306/lianhelihua?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    username: service_account
+    password: yP5@jJzqME63
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
   redis:
@@ -38,10 +38,11 @@
 #            enable: true
 #            required: true
   mail:
-    host: smtp.exmail.qq.com
-    username: jp@doumee.com
-    password: 2Jz9HFW2U7vRnCRu
+    host: smtpdm.aliyun.com
+    username: lkshereport@mail.unilever-china.com
+    password: f2fLk384RChX
     default-encoding: UTF-8
+    port: 80
     properties:
       mail:
         smtp:
@@ -78,4 +79,4 @@
   type: blob
 
 qiwei:
-  serviceurl: https://qyapi.weixin.qq.com
\ No newline at end of file
+  serviceurl: https://wecom-qyapiqa.unilever-china.com
\ No newline at end of file
diff --git a/server/src/main/resources/application.yml b/server/src/main/resources/application.yml
index 1936abe..d2aa372 100644
--- a/server/src/main/resources/application.yml
+++ b/server/src/main/resources/application.yml
@@ -9,7 +9,7 @@
 
 spring:
   profiles:
-    active: test
+    active: dev
   # JSON杩斿洖閰嶇疆
   jackson:
     # 榛樿鏃跺尯
diff --git a/server/src/main/resources/logback-spring.xml b/server/src/main/resources/logback-spring.xml
index edf1ef5..d1fb653 100644
--- a/server/src/main/resources/logback-spring.xml
+++ b/server/src/main/resources/logback-spring.xml
@@ -5,7 +5,7 @@
             <pattern>%highlight(%date{yyyy-MM-dd HH:mm:ss}) | %highlight(%-5level) | %highlight(%thread) | %highlight(%logger) | %msg%n</pattern>
         </layout>
     </appender>
-    <property name="log.path" value="/usr/local/jars/lianhelihua_sh/logs"></property>
+    <property name="log.path" value="/data/jars/lianhelihua/logs"></property>
     <property name="log.fileSize" value="100MB"></property>
     <property name="log.historyDays" value="7"></property>
     <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
diff --git a/startsh/admin_start.sh b/startsh/admin_start.sh
index 298bc5c..f7a6ab3 100644
--- a/startsh/admin_start.sh
+++ b/startsh/admin_start.sh
@@ -4,4 +4,17 @@
 
 /usr/local/nacos/nacos/bin/startup.sh -m standalone
 
-nohup java -jar /usr/local/jars/lianhelihua_sh/lianhelihua.jar > /dev/null 2>&1 &
\ No newline at end of file
+nohup java -jar /usr/local/jars/lianhelihua_sh/lianhelihua.jar > /dev/null 2>&1 &
+
+
+
+
+//UAT鐜鎵ц鍛戒护
+sudo chown root:root lianhelihua.jar
+sudo chmod 777  lianhelihua.jar
+mv /home/service_account/lianhelihua.jar /data/jars/lianhelihua/
+sudo   java -jar /data/jars/lianhelihua/lianhelihua.jar
+nohup java -jar /data/jars/lianhelihua/lianhelihua.jar > /dev/null 2>&1 &
+
+cd  /data/jars/lianhelihua/logs
+tail -f /data/jars/lianhelihua/logs/info.2025-05-19.1.log
\ No newline at end of file

--
Gitblit v1.9.3