From ff087240b3dee29ce4e14ad0836e76b9fdf312cf Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期二, 19 八月 2025 09:28:07 +0800 Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/lianhelihua_sh --- server/src/main/java/com/doumee/service/system/SystemDictService.java | 3 .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 | 4 .idea/libraries/Maven__io_netty_netty_handler_4_1_118_Final.xml | 13 .idea/libraries/Maven__com_azure_azure_storage_common_12_29_0.xml | 8 admin/src/components/common/UploadAvatarVideo.vue | 2 server/src/main/java/com/doumee/config/mybatis/MyBatisInterceptor.java | 27 admin/src/components/business/OperaWorkorderDetailDcaWindow.vue | 42 server/src/main/java/com/doumee/dao/business/vo/WorkorderDbhDto.java | 11 server/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java | 514 ++++++++ .idea/libraries/Maven__com_nimbusds_nimbus_jose_jwt_10_0_1.xml | 13 admin/src/components/common/RichEditor.vue | 15 admin/src/views/business/qrcodes.vue | 124 ++ server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 16 .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 | 45 .idea/libraries/Maven__com_azure_azure_xml_1_2_0.xml | 8 admin/src/views/business/managersShe.vue | 6 server/src/main/java/com/doumee/api/business/CategoryController.java | 26 admin/package.json | 3 server/src/main/java/com/doumee/dao/business/model/CompanyMember.java | 6 server/src/main/resources/application-test.yml | 21 admin/src/components/common/UploadImage.vue | 2 admin/src/views/business/workorderDbh.vue | 23 server/src/main/java/com/doumee/dao/system/model/SystemDictData.java | 2 admin/.env.test | 2 server/src/main/java/com/doumee/dao/business/model/Workorder.java | 6 .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__io_netty_netty_handler_proxy_4_1_118_Final.xml | 13 admin/src/views/business/workorderShe.vue | 2 server/src/main/java/com/doumee/api/web/WebWorkOrderController.java | 6 admin/src/components/business/OperaManagersWindow.vue | 98 + admin/.env.production | 2 server/src/main/java/com/doumee/api/system/SystemDictController.java | 7 server/src/main/java/com/doumee/core/utils/HttpsUtil.java | 128 + admin/src/views/business/categoryDcaLocaltion.vue | 2 admin/src/views/business/company.vue | 34 .idea/libraries/Maven__io_netty_netty_codec_http_4_1_118_Final.xml | 8 server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaDto.java | 3 admin/src/components/common/UploadAvatarImage.vue | 2 server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxUploadMediaResponse.java | 22 server/src/main/java/com/doumee/api/business/CompanyController.java | 16 .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 | 12 server/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java | 3 server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java | 86 + .idea/libraries/Maven__org_ow2_asm_asm_9_7_1.xml | 13 admin/src/components/business/OperaWorkorderDetailSheWindow.vue | 41 server/src/main/java/com/doumee/biz/system/impl/SystemJobTriggerBizImpl.java | 9 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 | 169 ++ admin/src/components/common/UploadFaceImg.vue | 2 admin/src/views/business/managersSheNotice.vue | 23 .idea/libraries/Maven__io_netty_netty_transport_4_1_118_Final.xml | 8 server/src/main/java/com/doumee/dao/business/vo/CompanyTree.java | 53 server/src/main/java/com/doumee/service/business/CompanyService.java | 1 .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 server/src/main/java/com/doumee/dao/business/CompanyMemberMapper.java | 3 server/src/main/java/com/doumee/service/system/impl/SystemDictServiceImpl.java | 34 .idea/libraries/Maven__io_netty_netty_resolver_4_1_118_Final.xml | 8 startsh/admin_start.sh | 15 .idea/libraries/Maven__net_minidev_accessors_smart_2_5_2.xml | 13 admin/src/assets/style/style.scss | 13 admin/package-lock.json | 5 .idea/libraries/Maven__io_netty_netty_common_4_1_118_Final.xml | 13 admin/src/components/business/OperaCategoryImportWindow.vue | 96 + admin/src/api/business/category.js | 9 admin/src/views/business/companyMember.vue | 31 .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 | 50 .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/.env.development | 3 .idea/libraries/Maven__io_netty_netty_codec_http2_4_1_118_Final.xml | 13 admin/src/components/common/UploadFile.vue | 2 .idea/libraries/Maven__io_netty_netty_codec_socks_4_1_118_Final.xml | 13 admin/src/components/common/Tree.vue | 145 +- admin/src/components/common/UploadFileCommon.vue | 2 admin/src/views/business/categorySheLocaltion.vue | 2 server/src/main/java/com/doumee/dao/business/vo/CategoryDcaProblemDto.java | 30 admin/src/views/business/categoryDcaProblem.vue | 29 admin/src/views/business/workorderDca.vue | 7 server/src/main/java/com/doumee/core/utils/qiyeweixin/QywxUtil.java | 105 + server/src/main/java/com/doumee/dao/business/model/Managers.java | 16 admin/src/components/business/OperaWorkorderDetailDcaInfoWindow.vue | 27 admin/src/views/index.vue | 8 server/src/main/java/com/doumee/config/mybatis/DmStdOutImpl.java | 16 .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 | 12 admin/src/api/business/company.js | 10 .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 admin/src/views/business/categoryDbhType.vue | 2 .idea/libraries/Maven__com_nimbusds_content_type_2_3.xml | 13 server/src/main/java/com/doumee/dao/web/vo/CategoryMapTree.java | 88 + server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaChildDto.java | 16 server/src/main/java/com/doumee/dao/business/vo/WorkorderSheDto.java | 2 server/src/main/java/com/doumee/dao/business/dto/WebQwUploadDto.java | 23 server/src/main/resources/application-dev.yml | 17 .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 .idea/modules.xml | 2 admin/src/components/common/upload.vue | 2 server/src/main/java/com/doumee/config/quartz/JobInitializer.java | 13 admin/src/views/business/workorderDcaChild.vue | 26 admin/src/views/business/categoryDbhLocaltion.vue | 6 server/src/main/resources/application-pro.yml | 62 .idea/libraries/Maven__com_azure_azure_core_1_55_3.xml | 13 admin/src/components/business/OperaWorkorderDetailDbhWindow.vue | 35 server/src/main/java/com/doumee/core/utils/FtpUtil.java | 2 .idea/libraries/Maven__com_github_stephenc_jcip_jcip_annotations_1_0_1.xml | 13 .idea/libraries/Maven__com_azure_azure_json_1_5_0.xml | 13 .idea/libraries/Maven__com_nimbusds_oauth2_oidc_sdk_11_23.xml | 13 /dev/null | 8 server/src/main/java/com/doumee/api/web/WebCategoryController.java | 8 server/src/main/java/com/doumee/dao/business/model/Category.java | 7 .idea/libraries/Maven__io_netty_netty_transport_classes_epoll_4_1_118_Final.xml | 13 admin/src/api/system/dict.js | 3 admin/src/components/common/TreeNew.vue | 145 ++ .idea/libraries/Maven__com_azure_azure_storage_internal_avro_12_15_0.xml | 13 server/src/main/java/com/doumee/service/business/CategoryService.java | 8 server/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java | 48 133 files changed, 3,108 insertions(+), 439 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/.idea/modules.xml b/.idea/modules.xml index deaa4c3..5aa4937 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,8 +2,8 @@ <project version="4"> <component name="ProjectModuleManager"> <modules> + <module fileurl="file://$PROJECT_DIR$/dmttwebsite.iml" filepath="$PROJECT_DIR$/dmttwebsite.iml" /> <module fileurl="file://$PROJECT_DIR$/server/lianghelihua.iml" filepath="$PROJECT_DIR$/server/lianghelihua.iml" /> - <module fileurl="file://$PROJECT_DIR$/lianhelihua_sh.iml" filepath="$PROJECT_DIR$/lianhelihua_sh.iml" /> </modules> </component> </project> \ No newline at end of file diff --git a/admin/.env.development b/admin/.env.development index 0d5ccaa..6500f31 100644 --- a/admin/.env.development +++ b/admin/.env.development @@ -1,3 +1,4 @@ # 寮�鍙戠幆澧冮厤缃� NODE_ENV = 'development' -VUE_APP_API_URL = 'http://localhost:10010' +#VUE_APP_API_URL = 'http://localhost:10010' +VUE_APP_API_URL = 'https://lkshereporting.unilever-china.com/lianhelihua_interface' diff --git a/admin/.env.production b/admin/.env.production index e378653..452d33e 100644 --- a/admin/.env.production +++ b/admin/.env.production @@ -4,4 +4,4 @@ # 鍏抽棴DEBUG VUE_APP_DEBUG = 'off' -VUE_APP_API_URL = 'https://dmtest.ahapp.net/lianhelihua_interface' +VUE_APP_API_URL = 'https://lkshereporting.unilever-china.com/lianhelihua_interface' diff --git a/admin/.env.test b/admin/.env.test index e378653..052d4bf 100644 --- a/admin/.env.test +++ b/admin/.env.test @@ -4,4 +4,4 @@ # 鍏抽棴DEBUG VUE_APP_DEBUG = 'off' -VUE_APP_API_URL = 'https://dmtest.ahapp.net/lianhelihua_interface' +VUE_APP_API_URL = 'https://lkshereporting-dev.unilever-china.com/lianhelihua_interface' diff --git a/admin/lianhelihua_admin/avatar/man.png b/admin/lianhelihua_admin/avatar/man.png deleted file mode 100644 index a84beb9..0000000 --- a/admin/lianhelihua_admin/avatar/man.png +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/avatar/woman.png b/admin/lianhelihua_admin/avatar/woman.png deleted file mode 100644 index eef8695..0000000 --- a/admin/lianhelihua_admin/avatar/woman.png +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/favicon.ico b/admin/lianhelihua_admin/favicon.ico deleted file mode 100644 index c6ff5db..0000000 --- a/admin/lianhelihua_admin/favicon.ico +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/icon.jpg b/admin/lianhelihua_admin/icon.jpg deleted file mode 100644 index 3caab7a..0000000 --- a/admin/lianhelihua_admin/icon.jpg +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/icon.png b/admin/lianhelihua_admin/icon.png deleted file mode 100644 index 33f6435..0000000 --- a/admin/lianhelihua_admin/icon.png +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/index.html b/admin/lianhelihua_admin/index.html deleted file mode 100644 index 78b9df1..0000000 --- a/admin/lianhelihua_admin/index.html +++ /dev/null @@ -1 +0,0 @@ -<!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.61b5bbed.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.f758ac5d.js" rel="preload" as="script"><link href="/lianhelihua_admin/static/js/chunk-vendors.174acd1e.js" rel="preload" as="script"><link href="/lianhelihua_admin/static/css/chunk-vendors.d9e68312.css" rel="stylesheet"><link href="/lianhelihua_admin/static/css/app.61b5bbed.css" rel="stylesheet"></head><body><div id="app"></div><script src="/lianhelihua_admin/static/js/chunk-vendors.174acd1e.js"></script><script src="/lianhelihua_admin/static/js/app.f758ac5d.js"></script></body></html> \ No newline at end of file diff --git a/admin/lianhelihua_admin/static/css/chunk-vendors.d9e68312.css b/admin/lianhelihua_admin/static/css/chunk-vendors.d9e68312.css deleted file mode 100644 index 8a516e6..0000000 --- a/admin/lianhelihua_admin/static/css/chunk-vendors.d9e68312.css +++ /dev/null @@ -1,6 +0,0 @@ -:host,:root{--w-e-textarea-bg-color:#fff;--w-e-textarea-color:#333;--w-e-textarea-border-color:#ccc;--w-e-textarea-slight-border-color:#e8e8e8;--w-e-textarea-slight-color:#d4d4d4;--w-e-textarea-slight-bg-color:#f5f2f0;--w-e-textarea-selected-border-color:#b4d5ff;--w-e-textarea-handler-bg-color:#4290f7;--w-e-toolbar-color:#595959;--w-e-toolbar-bg-color:#fff;--w-e-toolbar-active-color:#333;--w-e-toolbar-active-bg-color:#f1f1f1;--w-e-toolbar-disabled-color:#999;--w-e-toolbar-border-color:#e8e8e8;--w-e-modal-button-bg-color:#fafafa;--w-e-modal-button-border-color:#d9d9d9}.w-e-text-container *,.w-e-toolbar *{box-sizing:border-box;margin:0;outline:none;padding:0}.w-e-text-container blockquote,.w-e-text-container li,.w-e-text-container p,.w-e-text-container td,.w-e-text-container th,.w-e-toolbar *{line-height:1.5}.w-e-text-container{background-color:var(--w-e-textarea-bg-color);color:var(--w-e-textarea-color);height:100%;position:relative}.w-e-text-container .w-e-scroll{-webkit-overflow-scrolling:touch;height:100%}.w-e-text-container [data-slate-editor]{word-wrap:break-word;border-top:1px solid transparent;min-height:100%;outline:0;padding:0 10px;white-space:pre-wrap}.w-e-text-container [data-slate-editor] p{margin:15px 0}.w-e-text-container [data-slate-editor] h1,.w-e-text-container [data-slate-editor] h2,.w-e-text-container [data-slate-editor] h3,.w-e-text-container [data-slate-editor] h4,.w-e-text-container [data-slate-editor] h5{margin:20px 0}.w-e-text-container [data-slate-editor] img{cursor:default;display:inline!important;max-width:100%;min-height:20px;min-width:20px}.w-e-text-container [data-slate-editor] span{text-indent:0}.w-e-text-container [data-slate-editor] [data-selected=true]{box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color)}.w-e-text-placeholder{font-style:italic;left:10px;top:17px;width:90%}.w-e-max-length-info,.w-e-text-placeholder{color:var(--w-e-textarea-slight-color);pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.w-e-max-length-info{bottom:.5em;right:1em}.w-e-bar{background-color:var(--w-e-toolbar-bg-color);color:var(--w-e-toolbar-color);font-size:14px;padding:0 5px}.w-e-bar svg{fill:var(--w-e-toolbar-color);height:14px;width:14px}.w-e-bar-show{display:flex}.w-e-bar-hidden{display:none}.w-e-hover-bar{border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 5px rgba(0,0,0,.12156862745098039);position:absolute}.w-e-toolbar{flex-wrap:wrap;position:relative}.w-e-bar-divider{background-color:var(--w-e-toolbar-border-color);display:inline-flex;height:40px;margin:0 5px;width:1px}.w-e-bar-item{display:flex;height:40px;padding:4px;position:relative;text-align:center}.w-e-bar-item,.w-e-bar-item button{align-items:center;justify-content:center}.w-e-bar-item button{background:transparent;border:none;color:var(--w-e-toolbar-color);cursor:pointer;display:inline-flex;height:32px;overflow:hidden;padding:0 8px;white-space:nowrap}.w-e-bar-item button:hover{background-color:var(--w-e-toolbar-active-bg-color);color:var(--w-e-toolbar-active-color)}.w-e-bar-item button .title{margin-left:5px}.w-e-bar-item .active{background-color:var(--w-e-toolbar-active-bg-color);color:var(--w-e-toolbar-active-color)}.w-e-bar-item .disabled{color:var(--w-e-toolbar-disabled-color);cursor:not-allowed}.w-e-bar-item .disabled svg{fill:var(--w-e-toolbar-disabled-color)}.w-e-bar-item .disabled:hover{background-color:var(--w-e-toolbar-bg-color);color:var(--w-e-toolbar-disabled-color)}.w-e-bar-item .disabled:hover svg{fill:var(--w-e-toolbar-disabled-color)}.w-e-menu-tooltip-v5:before{background-color:var(--w-e-toolbar-active-color);border-radius:5px;color:var(--w-e-toolbar-bg-color);content:attr(data-tooltip);font-size:.75em;padding:5px 10px;text-align:center;top:40px;white-space:pre;z-index:1}.w-e-menu-tooltip-v5:after,.w-e-menu-tooltip-v5:before{opacity:0;position:absolute;transition:opacity .6s;visibility:hidden}.w-e-menu-tooltip-v5:after{border:5px solid transparent;border-bottom:5px solid var(--w-e-toolbar-active-color);content:"";top:30px}.w-e-menu-tooltip-v5:hover:after,.w-e-menu-tooltip-v5:hover:before{opacity:1;visibility:visible}.w-e-menu-tooltip-v5.tooltip-right:before{left:100%;top:10px}.w-e-menu-tooltip-v5.tooltip-right:after{border-bottom-color:transparent;border-left-color:transparent;border-right-color:var(--w-e-toolbar-active-color);border-top-color:transparent;left:100%;margin-left:-10px;top:16px}.w-e-bar-item-group .w-e-bar-item-menus-container{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 10px rgba(0,0,0,.12156862745098039);display:none;left:0;margin-top:40px;position:absolute;top:0;z-index:1}.w-e-bar-item-group:hover .w-e-bar-item-menus-container{display:block}.w-e-select-list{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 10px rgba(0,0,0,.12156862745098039);left:0;margin-top:40px;max-height:350px;min-width:100px;overflow-y:auto;position:absolute;top:0;z-index:1}.w-e-select-list ul{line-height:1;list-style:none}.w-e-select-list ul .selected{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-select-list ul li{cursor:pointer;padding:7px 0 7px 25px;position:relative;text-align:left;white-space:nowrap}.w-e-select-list ul li:hover{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-select-list ul li svg{left:0;margin-left:5px;margin-top:-7px;position:absolute;top:50%}.w-e-bar-bottom .w-e-select-list{bottom:0;margin-bottom:40px;margin-top:0;top:inherit}.w-e-drop-panel{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 10px rgba(0,0,0,.12156862745098039);margin-top:40px;min-width:200px;padding:10px;position:absolute;top:0;z-index:1}.w-e-bar-bottom .w-e-drop-panel{bottom:0;margin-bottom:40px;margin-top:0;top:inherit}.w-e-modal{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 10px rgba(0,0,0,.12156862745098039);color:var(--w-e-toolbar-color);font-size:14px;min-height:40px;min-width:100px;padding:20px 15px 0;position:absolute;text-align:left;z-index:1}.w-e-modal .btn-close{cursor:pointer;line-height:1;padding:5px;position:absolute;right:8px;top:7px}.w-e-modal .btn-close svg{fill:var(--w-e-toolbar-color);height:10px;width:10px}.w-e-modal .babel-container{display:block;margin-bottom:15px}.w-e-modal .babel-container span{display:block;margin-bottom:10px}.w-e-modal .button-container{margin-bottom:15px}.w-e-modal button{background-color:var(--w-e-modal-button-bg-color);cursor:pointer;font-weight:400;height:32px;padding:4.5px 15px;text-align:center;touch-action:manipulation;transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.w-e-modal button,.w-e-modal input[type=number],.w-e-modal input[type=text],.w-e-modal textarea{border:1px solid var(--w-e-modal-button-border-color);border-radius:4px;color:var(--w-e-toolbar-color)}.w-e-modal input[type=number],.w-e-modal input[type=text],.w-e-modal textarea{font-feature-settings:"tnum";background-color:var(--w-e-toolbar-bg-color);font-variant:tabular-nums;padding:4.5px 11px;transition:all .3s;width:100%}.w-e-modal textarea{min-height:60px}body .w-e-modal,body .w-e-modal *{box-sizing:border-box}.w-e-progress-bar{background-color:var(--w-e-textarea-handler-bg-color);height:1px;position:absolute;transition:width .3s;width:0}.w-e-full-screen-container{bottom:0!important;display:flex!important;flex-direction:column!important;height:100%!important;left:0!important;margin:0!important;padding:0!important;position:fixed;right:0!important;top:0!important;width:100%!important}.w-e-full-screen-container [data-w-e-textarea=true]{flex:1!important}.w-e-text-container [data-slate-editor] code{background-color:var(--w-e-textarea-slight-bg-color);border-radius:3px;font-family:monospace;padding:3px}.w-e-panel-content-color{list-style:none;text-align:left;width:230px}.w-e-panel-content-color li{border:1px solid var(--w-e-toolbar-bg-color);border-radius:3px 3px;cursor:pointer;display:inline-block;padding:2px}.w-e-panel-content-color li:hover{border-color:var(--w-e-toolbar-color)}.w-e-panel-content-color li .color-block{border:1px solid var(--w-e-toolbar-border-color);border-radius:3px 3px;height:17px;width:17px}.w-e-panel-content-color .active{border-color:var(--w-e-toolbar-color)}.w-e-panel-content-color .clear{line-height:1.5;margin-bottom:5px;width:100%}.w-e-panel-content-color .clear svg{height:16px;margin-bottom:-4px;width:16px}.w-e-text-container [data-slate-editor] blockquote{background-color:var(--w-e-textarea-slight-bg-color);border-left:8px solid var(--w-e-textarea-selected-border-color);display:block;font-size:100%;line-height:1.5;margin:10px 0;padding:10px}.w-e-panel-content-emotion{font-size:20px;list-style:none;text-align:left;width:300px}.w-e-panel-content-emotion li{border-radius:3px 3px;cursor:pointer;display:inline-block;padding:0 5px}.w-e-panel-content-emotion li:hover{background-color:var(--w-e-textarea-slight-bg-color)}.w-e-textarea-divider{border-radius:3px;margin:20px auto;padding:20px}.w-e-textarea-divider hr{background-color:var(--w-e-textarea-border-color);border:0;display:block;height:1px}.w-e-text-container [data-slate-editor] pre>code{background-color:var(--w-e-textarea-slight-bg-color);border:1px solid var(--w-e-textarea-slight-border-color);border-radius:4px 4px;display:block;font-size:14px;padding:10px;text-indent:0}.w-e-text-container [data-slate-editor] .w-e-image-container{display:inline-block;margin:0 3px}.w-e-text-container [data-slate-editor] .w-e-image-container:hover{box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color)}.w-e-text-container [data-slate-editor] .w-e-selected-image-container{overflow:hidden;position:relative}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .w-e-image-dragger{background-color:var(--w-e-textarea-handler-bg-color);height:7px;position:absolute;width:7px}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .left-top{cursor:nwse-resize;left:0;top:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .right-top{cursor:nesw-resize;right:0;top:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .left-bottom{bottom:0;cursor:nesw-resize;left:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .right-bottom{bottom:0;cursor:nwse-resize;right:0}.w-e-text-container [contenteditable=false] .w-e-image-container:hover,.w-e-text-container [data-slate-editor] .w-e-selected-image-container:hover{box-shadow:none}.w-e-text-container [data-slate-editor] .table-container{border:1px dashed var(--w-e-textarea-border-color);border-radius:5px;margin-top:10px;overflow-x:auto;padding:10px;width:100%}.w-e-text-container [data-slate-editor] table{border-collapse:collapse}.w-e-text-container [data-slate-editor] table td,.w-e-text-container [data-slate-editor] table th{border:1px solid var(--w-e-textarea-border-color);line-height:1.5;min-width:30px;padding:3px 5px;text-align:left}.w-e-text-container [data-slate-editor] table th{background-color:var(--w-e-textarea-slight-bg-color);font-weight:700;text-align:center}.w-e-panel-content-table{background-color:var(--w-e-toolbar-bg-color)}.w-e-panel-content-table table{border-collapse:collapse}.w-e-panel-content-table td{border:1px solid var(--w-e-toolbar-border-color);cursor:pointer;height:15px;padding:3px 5px;width:20px}.w-e-panel-content-table td.active{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-textarea-video-container{background-image:linear-gradient(45deg,#eee 25%,transparent 0,transparent 75%,#eee 0,#eee),linear-gradient(45deg,#eee 25%,#fff 0,#fff 75%,#eee 0,#eee);background-position:0 0,10px 10px;background-size:20px 20px;border:1px dashed var(--w-e-textarea-border-color);border-radius:5px;margin:10px auto 0;padding:10px 0;text-align:center}.w-e-text-container [data-slate-editor] pre>code{word-wrap:normal;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.5;margin:.5em 0;overflow:auto;padding:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;text-shadow:0 1px #fff;white-space:pre;word-break:normal;word-spacing:normal}.w-e-text-container [data-slate-editor] pre>code .token.cdata,.w-e-text-container [data-slate-editor] pre>code .token.comment,.w-e-text-container [data-slate-editor] pre>code .token.doctype,.w-e-text-container [data-slate-editor] pre>code .token.prolog{color:#708090}.w-e-text-container [data-slate-editor] pre>code .token.punctuation{color:#999}.w-e-text-container [data-slate-editor] pre>code .token.namespace{opacity:.7}.w-e-text-container [data-slate-editor] pre>code .token.boolean,.w-e-text-container [data-slate-editor] pre>code .token.constant,.w-e-text-container [data-slate-editor] pre>code .token.deleted,.w-e-text-container [data-slate-editor] pre>code .token.number,.w-e-text-container [data-slate-editor] pre>code .token.property,.w-e-text-container [data-slate-editor] pre>code .token.symbol,.w-e-text-container [data-slate-editor] pre>code .token.tag{color:#905}.w-e-text-container [data-slate-editor] pre>code .token.attr-name,.w-e-text-container [data-slate-editor] pre>code .token.builtin,.w-e-text-container [data-slate-editor] pre>code .token.char,.w-e-text-container [data-slate-editor] pre>code .token.inserted,.w-e-text-container [data-slate-editor] pre>code .token.selector,.w-e-text-container [data-slate-editor] pre>code .token.string{color:#690}.w-e-text-container [data-slate-editor] pre>code .language-css .token.string,.w-e-text-container [data-slate-editor] pre>code .style .token.string,.w-e-text-container [data-slate-editor] pre>code .token.entity,.w-e-text-container [data-slate-editor] pre>code .token.operator,.w-e-text-container [data-slate-editor] pre>code .token.url{color:#9a6e3a}.w-e-text-container [data-slate-editor] pre>code .token.atrule,.w-e-text-container [data-slate-editor] pre>code .token.attr-value,.w-e-text-container [data-slate-editor] pre>code .token.keyword{color:#07a}.w-e-text-container [data-slate-editor] pre>code .token.class-name,.w-e-text-container [data-slate-editor] pre>code .token.function{color:#dd4a68}.w-e-text-container [data-slate-editor] pre>code .token.important,.w-e-text-container [data-slate-editor] pre>code .token.regex,.w-e-text-container [data-slate-editor] pre>code .token.variable{color:#e90}.w-e-text-container [data-slate-editor] pre>code .token.bold,.w-e-text-container [data-slate-editor] pre>code .token.important{font-weight:700}.w-e-text-container [data-slate-editor] pre>code .token.italic{font-style:italic}.w-e-text-container [data-slate-editor] pre>code .token.entity{cursor:help} -/*! - * vue-treeselect v0.4.0 | (c) 2017-2019 Riophae Lee - * Released under the MIT License. - * https://vue-treeselect.js.org/ - */.vue-treeselect-helper-hide{display:none}.vue-treeselect-helper-zoom-effect-off{transform:none!important}@-webkit-keyframes vue-treeselect-animation-fade-in{0%{opacity:0}}@keyframes vue-treeselect-animation-fade-in{0%{opacity:0}}@-webkit-keyframes vue-treeselect-animation-bounce{0%,to{transform:scale(0)}50%{transform:scale(1)}}@keyframes vue-treeselect-animation-bounce{0%,to{transform:scale(0)}50%{transform:scale(1)}}@-webkit-keyframes vue-treeselect-animation-rotate{to{transform:rotate(1turn)}}@keyframes vue-treeselect-animation-rotate{to{transform:rotate(1turn)}}.vue-treeselect__multi-value-item--transition-enter-active,.vue-treeselect__multi-value-item--transition-leave-active{transition-duration:.2s;transition-property:transform,opacity}.vue-treeselect__multi-value-item--transition-enter-active{transition-timing-function:cubic-bezier(.075,.82,.165,1)}.vue-treeselect__multi-value-item--transition-leave-active{transition-timing-function:cubic-bezier(.215,.61,.355,1);position:absolute}.vue-treeselect__multi-value-item--transition-enter,.vue-treeselect__multi-value-item--transition-leave-to{transform:scale(.7);opacity:0}.vue-treeselect__multi-value-item--transition-move{transition:transform .2s cubic-bezier(.165,.84,.44,1)}.vue-treeselect{position:relative;text-align:left}[dir=rtl] .vue-treeselect{text-align:right}.vue-treeselect div,.vue-treeselect span{box-sizing:border-box}.vue-treeselect svg{fill:currentColor}.vue-treeselect__control{padding-left:5px;padding-right:5px;display:table;table-layout:fixed;width:100%;height:36px;border:1px solid #ddd;border-radius:5px;background:#fff;transition-duration:.2s;transition-property:border-color,box-shadow,width,height,background-color,opacity;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.vue-treeselect:not(.vue-treeselect--disabled):not(.vue-treeselect--focused) .vue-treeselect__control:hover{border-color:#cfcfcf}.vue-treeselect--focused:not(.vue-treeselect--open) .vue-treeselect__control{border-color:#039be5;box-shadow:0 0 0 3px rgba(3,155,229,.1)}.vue-treeselect--disabled .vue-treeselect__control{background-color:#f9f9f9}.vue-treeselect--open .vue-treeselect__control{border-color:#cfcfcf}.vue-treeselect--open.vue-treeselect--open-below .vue-treeselect__control{border-bottom-left-radius:0;border-bottom-right-radius:0}.vue-treeselect--open.vue-treeselect--open-above .vue-treeselect__control{border-top-left-radius:0;border-top-right-radius:0}.vue-treeselect__multi-value,.vue-treeselect__value-container{width:100%;vertical-align:middle}.vue-treeselect__value-container{display:table-cell;position:relative}.vue-treeselect--searchable:not(.vue-treeselect--disabled) .vue-treeselect__value-container{cursor:text}.vue-treeselect__multi-value{display:inline-block}.vue-treeselect--has-value .vue-treeselect__multi-value{margin-bottom:5px}.vue-treeselect__placeholder,.vue-treeselect__single-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:5px;padding-right:5px;position:absolute;top:0;right:0;bottom:0;left:0;line-height:34px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.vue-treeselect__placeholder{color:#bdbdbd}.vue-treeselect__single-value{color:#333}.vue-treeselect--focused.vue-treeselect--searchable .vue-treeselect__single-value{color:#bdbdbd}.vue-treeselect--disabled .vue-treeselect__single-value{position:static}.vue-treeselect__multi-value-item-container{display:inline-block;padding-top:5px;padding-right:5px;vertical-align:top}[dir=rtl] .vue-treeselect__multi-value-item-container{padding-right:0;padding-left:5px}.vue-treeselect__multi-value-item{display:inline-table;padding:2px 0;border:1px solid transparent;border-radius:2px;font-size:12px;vertical-align:top}.vue-treeselect:not(.vue-treeselect--disabled) .vue-treeselect__multi-value-item:not(.vue-treeselect__multi-value-item-disabled):hover .vue-treeselect__multi-value-item:not(.vue-treeselect__multi-value-item-new) .vue-treeselect__multi-value-item:not(.vue-treeselect__multi-value-item-new):hover,.vue-treeselect__multi-value-item{cursor:pointer;background:#e3f2fd;color:#039be5}.vue-treeselect__multi-value-item.vue-treeselect__multi-value-item-disabled{cursor:default;background:#f5f5f5;color:#757575}.vue-treeselect--disabled .vue-treeselect__multi-value-item{cursor:default;background:#fff;border-color:#e5e5e5;color:#555}.vue-treeselect__multi-value-item.vue-treeselect__multi-value-item-new,.vue-treeselect__multi-value-item.vue-treeselect__multi-value-item-new:hover{background:#e8f5e9}.vue-treeselect__multi-value-label,.vue-treeselect__value-remove{display:table-cell;padding:0 5px;vertical-align:middle}.vue-treeselect__value-remove{color:#039be5;padding-left:5px;border-left:1px solid #fff;line-height:0}[dir=rtl] .vue-treeselect__value-remove{border-left:0 none;border-right:1px solid #fff}.vue-treeselect__multi-value-item:hover .vue-treeselect__value-remove{color:#e53935}.vue-treeselect--disabled .vue-treeselect__value-remove,.vue-treeselect__multi-value-item-disabled .vue-treeselect__value-remove{display:none}.vue-treeselect__value-remove>svg{width:6px;height:6px}.vue-treeselect__multi-value-label{padding-right:5px;white-space:pre-line;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vue-treeselect__limit-tip{display:inline-block;padding-top:5px;padding-right:5px;vertical-align:top}[dir=rtl] .vue-treeselect__limit-tip{padding-right:0;padding-left:5px}.vue-treeselect__limit-tip-text{cursor:default;display:block;margin:2px 0;padding:1px 0;color:#bdbdbd;font-size:12px;font-weight:600}.vue-treeselect__input-container{display:block;max-width:100%;outline:none}.vue-treeselect--single .vue-treeselect__input-container{font-size:inherit;height:100%}.vue-treeselect--multi .vue-treeselect__input-container{display:inline-block;font-size:12px;vertical-align:top}.vue-treeselect--searchable .vue-treeselect__input-container{padding-left:5px;padding-right:5px}.vue-treeselect--searchable.vue-treeselect--multi.vue-treeselect--has-value .vue-treeselect__input-container{padding-top:5px;padding-left:0}[dir=rtl] .vue-treeselect--searchable.vue-treeselect--multi.vue-treeselect--has-value .vue-treeselect__input-container{padding-left:5px;padding-right:0}.vue-treeselect--disabled .vue-treeselect__input-container{display:none}.vue-treeselect__input,.vue-treeselect__sizer{margin:0;line-height:inherit;font-family:inherit;font-size:inherit}.vue-treeselect__input{max-width:100%;margin:0;padding:0;border:0;outline:none;box-sizing:content-box;box-shadow:none;background:none transparent;line-height:1;vertical-align:middle}.vue-treeselect__input::-ms-clear{display:none}.vue-treeselect--single .vue-treeselect__input{width:100%;height:100%}.vue-treeselect--multi .vue-treeselect__input{padding-top:3px;padding-bottom:3px}.vue-treeselect--has-value .vue-treeselect__input{line-height:inherit;vertical-align:top}.vue-treeselect__sizer{position:absolute;top:0;left:0;visibility:hidden;height:0;overflow:scroll;white-space:pre}.vue-treeselect__x-container{display:table-cell;vertical-align:middle;width:20px;text-align:center;line-height:0;cursor:pointer;color:#ccc;-webkit-animation:vue-treeselect-animation-fade-in .2s cubic-bezier(.075,.82,.165,1);animation:vue-treeselect-animation-fade-in .2s cubic-bezier(.075,.82,.165,1)}.vue-treeselect__x-container:hover{color:#e53935}.vue-treeselect__x{width:8px;height:8px}.vue-treeselect__control-arrow-container{display:table-cell;vertical-align:middle;width:20px;text-align:center;line-height:0;cursor:pointer}.vue-treeselect--disabled .vue-treeselect__control-arrow-container{cursor:default}.vue-treeselect__control-arrow{width:9px;height:9px;color:#ccc}.vue-treeselect:not(.vue-treeselect--disabled) .vue-treeselect__control-arrow-container:hover .vue-treeselect__control-arrow{color:#616161}.vue-treeselect--disabled .vue-treeselect__control-arrow{opacity:.35}.vue-treeselect__control-arrow--rotated{transform:rotate(180deg)}.vue-treeselect__menu-container{position:absolute;left:0;width:100%;overflow:visible;transition:0s}.vue-treeselect--open-below:not(.vue-treeselect--append-to-body) .vue-treeselect__menu-container{top:100%}.vue-treeselect--open-above:not(.vue-treeselect--append-to-body) .vue-treeselect__menu-container{bottom:100%}.vue-treeselect__menu{cursor:default;padding-top:5px;padding-bottom:5px;display:block;position:absolute;overflow-x:hidden;overflow-y:auto;width:auto;border:1px solid #cfcfcf;background:#fff;line-height:180%;-webkit-overflow-scrolling:touch}.vue-treeselect--open-below .vue-treeselect__menu{border-bottom-left-radius:5px;border-bottom-right-radius:5px;top:0;margin-top:-1px;border-top-color:#f2f2f2;box-shadow:0 1px 0 rgba(0,0,0,.06)}.vue-treeselect--open-above .vue-treeselect__menu{border-top-left-radius:5px;border-top-right-radius:5px;bottom:0;margin-bottom:-1px;border-bottom-color:#f2f2f2}.vue-treeselect__indent-level-0 .vue-treeselect__option{padding-left:5px}[dir=rtl] .vue-treeselect__indent-level-0 .vue-treeselect__option{padding-left:5px;padding-right:5px}.vue-treeselect__indent-level-0 .vue-treeselect__tip{padding-left:25px}[dir=rtl] .vue-treeselect__indent-level-0 .vue-treeselect__tip{padding-left:5px;padding-right:25px}.vue-treeselect__indent-level-1 .vue-treeselect__option{padding-left:25px}[dir=rtl] .vue-treeselect__indent-level-1 .vue-treeselect__option{padding-left:5px;padding-right:25px}.vue-treeselect__indent-level-1 .vue-treeselect__tip{padding-left:45px}[dir=rtl] .vue-treeselect__indent-level-1 .vue-treeselect__tip{padding-left:5px;padding-right:45px}.vue-treeselect__indent-level-2 .vue-treeselect__option{padding-left:45px}[dir=rtl] .vue-treeselect__indent-level-2 .vue-treeselect__option{padding-left:5px;padding-right:45px}.vue-treeselect__indent-level-2 .vue-treeselect__tip{padding-left:65px}[dir=rtl] .vue-treeselect__indent-level-2 .vue-treeselect__tip{padding-left:5px;padding-right:65px}.vue-treeselect__indent-level-3 .vue-treeselect__option{padding-left:65px}[dir=rtl] .vue-treeselect__indent-level-3 .vue-treeselect__option{padding-left:5px;padding-right:65px}.vue-treeselect__indent-level-3 .vue-treeselect__tip{padding-left:85px}[dir=rtl] .vue-treeselect__indent-level-3 .vue-treeselect__tip{padding-left:5px;padding-right:85px}.vue-treeselect__indent-level-4 .vue-treeselect__option{padding-left:85px}[dir=rtl] .vue-treeselect__indent-level-4 .vue-treeselect__option{padding-left:5px;padding-right:85px}.vue-treeselect__indent-level-4 .vue-treeselect__tip{padding-left:105px}[dir=rtl] .vue-treeselect__indent-level-4 .vue-treeselect__tip{padding-left:5px;padding-right:105px}.vue-treeselect__indent-level-5 .vue-treeselect__option{padding-left:105px}[dir=rtl] .vue-treeselect__indent-level-5 .vue-treeselect__option{padding-left:5px;padding-right:105px}.vue-treeselect__indent-level-5 .vue-treeselect__tip{padding-left:125px}[dir=rtl] .vue-treeselect__indent-level-5 .vue-treeselect__tip{padding-left:5px;padding-right:125px}.vue-treeselect__indent-level-6 .vue-treeselect__option{padding-left:125px}[dir=rtl] .vue-treeselect__indent-level-6 .vue-treeselect__option{padding-left:5px;padding-right:125px}.vue-treeselect__indent-level-6 .vue-treeselect__tip{padding-left:145px}[dir=rtl] .vue-treeselect__indent-level-6 .vue-treeselect__tip{padding-left:5px;padding-right:145px}.vue-treeselect__indent-level-7 .vue-treeselect__option{padding-left:145px}[dir=rtl] .vue-treeselect__indent-level-7 .vue-treeselect__option{padding-left:5px;padding-right:145px}.vue-treeselect__indent-level-7 .vue-treeselect__tip{padding-left:165px}[dir=rtl] .vue-treeselect__indent-level-7 .vue-treeselect__tip{padding-left:5px;padding-right:165px}.vue-treeselect__indent-level-8 .vue-treeselect__option{padding-left:165px}[dir=rtl] .vue-treeselect__indent-level-8 .vue-treeselect__option{padding-left:5px;padding-right:165px}.vue-treeselect__indent-level-8 .vue-treeselect__tip{padding-left:185px}[dir=rtl] .vue-treeselect__indent-level-8 .vue-treeselect__tip{padding-left:5px;padding-right:185px}.vue-treeselect__option{padding-left:5px;padding-right:5px;display:table;table-layout:fixed;width:100%}.vue-treeselect__option--highlight{background:#f5f5f5}.vue-treeselect--single .vue-treeselect__option--selected{background:#e3f2fd;font-weight:600}.vue-treeselect--single .vue-treeselect__option--selected:hover{background:#e3f2fd}.vue-treeselect__option--hide{display:none}.vue-treeselect__option-arrow-container,.vue-treeselect__option-arrow-placeholder{display:table-cell;vertical-align:middle;width:20px;text-align:center;line-height:0}.vue-treeselect__option-arrow-container{cursor:pointer}.vue-treeselect__option-arrow{display:inline-block;width:9px;height:9px;color:#ccc;vertical-align:middle;transition:transform .2s cubic-bezier(.19,1,.22,1);transform:rotate(-90deg)}[dir=rtl] .vue-treeselect__option-arrow{transform:rotate(90deg)}.vue-treeselect--branch-nodes-disabled .vue-treeselect__option:hover .vue-treeselect__option-arrow,.vue-treeselect__option-arrow-container:hover .vue-treeselect__option-arrow{color:#616161}.vue-treeselect__option-arrow--rotated,[dir=rtl] .vue-treeselect__option-arrow--rotated{transform:rotate(0)}.vue-treeselect__option-arrow--rotated.vue-treeselect__option-arrow--prepare-enter{transform:rotate(-90deg)!important}[dir=rtl] .vue-treeselect__option-arrow--rotated.vue-treeselect__option-arrow--prepare-enter{transform:rotate(90deg)!important}.vue-treeselect__label-container{display:table-cell;vertical-align:middle;cursor:pointer;display:table;width:100%;table-layout:fixed;color:inherit}.vue-treeselect__option--disabled .vue-treeselect__label-container{cursor:not-allowed;color:rgba(0,0,0,.25)}.vue-treeselect__checkbox-container{display:table-cell;width:20px;min-width:20px;height:100%;text-align:center;vertical-align:middle}.vue-treeselect__checkbox{display:block;margin:auto;width:12px;height:12px;border-width:1px;border-style:solid;border-radius:2px;position:relative;transition:all .2s cubic-bezier(.075,.82,.165,1)}.vue-treeselect__check-mark,.vue-treeselect__minus-mark{display:block;position:absolute;left:1px;top:1px;background-repeat:no-repeat;opacity:0;transition:all .2s ease}.vue-treeselect__minus-mark{width:8px;height:8px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAgMAAAC5YVYYAAAACVBMVEUAAAD///////9zeKVjAAAAAnRSTlMAuLMp9oYAAAAPSURBVAjXY4CDrJUgBAMAGaECJ9dz3BAAAAAASUVORK5CYII=);background-size:8px 8px}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:1.5dppx){.vue-treeselect__minus-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAAD///////////84wDuoAAAAA3RSTlMAyTzPIdReAAAAGUlEQVQI12PAD+b///+Nof7//79gAsLFCwAx/w4blADeeQAAAABJRU5ErkJggg==)}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.vue-treeselect__minus-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAAD///////////84wDuoAAAAA3RSTlMAyTzPIdReAAAAGUlEQVQI12PAD+b///+Nof7//79gAsLFCwAx/w4blADeeQAAAABJRU5ErkJggg==)}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:288dpi){.vue-treeselect__minus-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYBAMAAAASWSDLAAAAD1BMVEUAAAD///////////////+PQt5oAAAABHRSTlMAy2EFIuWxUgAAACRJREFUGNNjGBBgJOICBY7KDCoucODEAJSAS6FwUJShGjAQAADBPRGrK2/FhgAAAABJRU5ErkJggg==)}}.vue-treeselect__checkbox--indeterminate>.vue-treeselect__minus-mark{opacity:1}.vue-treeselect__checkbox--disabled .vue-treeselect__minus-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAgMAAAC5YVYYAAAACVBMVEUAAADi4uLh4eHOxeSRAAAAAnRSTlMAuLMp9oYAAAAPSURBVAjXY4CDrJUgBAMAGaECJ9dz3BAAAAAASUVORK5CYII=)}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:1.5dppx){.vue-treeselect__checkbox--disabled .vue-treeselect__minus-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAADi4uLi4uLh4eE5RQaIAAAAA3RSTlMAyTzPIdReAAAAGUlEQVQI12PAD+b///+Nof7//79gAsLFCwAx/w4blADeeQAAAABJRU5ErkJggg==)}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.vue-treeselect__checkbox--disabled .vue-treeselect__minus-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAADi4uLi4uLh4eE5RQaIAAAAA3RSTlMAyTzPIdReAAAAGUlEQVQI12PAD+b///+Nof7//79gAsLFCwAx/w4blADeeQAAAABJRU5ErkJggg==)}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:288dpi){.vue-treeselect__checkbox--disabled .vue-treeselect__minus-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYBAMAAAASWSDLAAAAD1BMVEUAAADh4eHg4ODNzc3h4eEYfw2wAAAABHRSTlMAy2EFIuWxUgAAACRJREFUGNNjGBBgJOICBY7KDCoucODEAJSAS6FwUJShGjAQAADBPRGrK2/FhgAAAABJRU5ErkJggg==)}}.vue-treeselect__check-mark{width:8px;height:8px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAQlBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////8IX9KGAAAAFXRSTlMA8u24NxILB+Tawb6jiH1zRz0xIQIIP3GUAAAAMklEQVQI1y3FtQEAMQDDQD+EGbz/qkEVOpyEOP6PudKjZNSXn4Jm2CKRdBKzSLsFWl8fMG0Bl6Jk1rMAAAAASUVORK5CYII=);background-size:8px 8px;transform:scaleY(.125)}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:1.5dppx){.vue-treeselect__check-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAYFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////98JRy6AAAAH3RSTlMAzu4sDenl38fBvo1OMyIdEQrj1cSihX5hYFpHNycIcQOASAAAAF9JREFUGNN9zEcOgDAMRFHTS0LvNfe/JRmHKAIJ/mqeLJn+k9uDtaeUeFnFziGsBucUTirrprfe81RqZ3Bb6hPWeuZwDFOHyf+ig9CCzQ7INBn7bG5kF+QSt13BHNJnF7AaCT4Y+CW7AAAAAElFTkSuQmCC)}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.vue-treeselect__check-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAYFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////98JRy6AAAAH3RSTlMAzu4sDenl38fBvo1OMyIdEQrj1cSihX5hYFpHNycIcQOASAAAAF9JREFUGNN9zEcOgDAMRFHTS0LvNfe/JRmHKAIJ/mqeLJn+k9uDtaeUeFnFziGsBucUTirrprfe81RqZ3Bb6hPWeuZwDFOHyf+ig9CCzQ7INBn7bG5kF+QSt13BHNJnF7AaCT4Y+CW7AAAAAElFTkSuQmCC)}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:288dpi){.vue-treeselect__check-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAWlBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////9ZMre9AAAAHXRSTlMA/PiJhGNI9XlEHJB/b2ldV08+Oibk49vPp6QhAYgGBuwAAACCSURBVCjPrdHdDoIwDAXgTWAqCigo/+f9X5OwnoUwtis4V92XNWladUl+rzQPeQJAN2EHxoOnsPn7/oYk8fxBv08Rr/deOH/aZ2Nm8ZJ+s573QGfWKnNuZGzWm3+lv2V3pcU1XQ385/yjmBoM3Z+dXvlbYLLD3ujhTaOM3KaIXvNkFkuSEvYy1LqOAAAAAElFTkSuQmCC)}}.vue-treeselect__checkbox--checked>.vue-treeselect__check-mark{opacity:1;transform:scaleY(1)}.vue-treeselect__checkbox--disabled .vue-treeselect__check-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAP1BMVEUAAADj4+Pf39/h4eHh4eHh4eHk5OTh4eHg4ODi4uLh4eHh4eHg4ODh4eHh4eHg4ODh4eHh4eHp6en////h4eFqcyvUAAAAFHRSTlMAOQfy7bgS5NrBvqOIfXNHMSELAgQ/iFsAAAA2SURBVAjXY4AANjYIzcjMAaVFuBkY+RkEWERYmRjYRXjANAOfiIgIFxNIAa8IpxBEi6AwiAQAK2MBd7xY8csAAAAASUVORK5CYII=)}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:1.5dppx){.vue-treeselect__checkbox--disabled .vue-treeselect__check-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEUAAADh4eHh4eHh4eHi4uLb29vh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLj4+Pi4uLk5OTo6Ojh4eHh4eHi4uLg4ODg4ODh4eHg4ODh4eHf39/g4OD////h4eEzIk+wAAAAHnRSTlMAzu6/LA3p5eLZx8ONTjYiHRIKooV+YWBaRzEnCANnm5rnAAAAZElEQVQY033P2wqAIAyA4VWaaWrnc/n+j5mbhBjUf7WPoTD47TJb4i5zTr/sRDRHuyFaoWX7uK/RlbctlPEuyI1f4WY9yQINEkf6rzzo8YIzmUFoCs7J1EjeIaa9bXIEmzl8dgOZEAj/+2IvzAAAAABJRU5ErkJggg==)}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.vue-treeselect__checkbox--disabled .vue-treeselect__check-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEUAAADh4eHh4eHh4eHi4uLb29vh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLj4+Pi4uLk5OTo6Ojh4eHh4eHi4uLg4ODg4ODh4eHg4ODh4eHf39/g4OD////h4eEzIk+wAAAAHnRSTlMAzu6/LA3p5eLZx8ONTjYiHRIKooV+YWBaRzEnCANnm5rnAAAAZElEQVQY033P2wqAIAyA4VWaaWrnc/n+j5mbhBjUf7WPoTD47TJb4i5zTr/sRDRHuyFaoWX7uK/RlbctlPEuyI1f4WY9yQINEkf6rzzo8YIzmUFoCs7J1EjeIaa9bXIEmzl8dgOZEAj/+2IvzAAAAABJRU5ErkJggg==)}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:288dpi){.vue-treeselect__checkbox--disabled .vue-treeselect__check-mark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAUVBMVEUAAADh4eHh4eHh4eHh4eHi4uLi4uLh4eHh4eHh4eHf39/j4+Ph4eHh4eHh4eHg4ODi4uLh4eHh4eHi4uLh4eHh4eHh4eHh4eHh4eH////h4eF3FMFTAAAAGnRSTlMA+/eJhGhfSHE9JBzz5KaQf3pXT0Xbz0I5AYDw8F0AAAB+SURBVCjPrdHbDoMgEEVRKAii1dZe9fz/hxplTiKIT7qfYCWTEEZdUvOwbckNAD2WHeh3brHW5f5EzGQ+iN+b1Gt6KPvtv16Dn6JX9M9ya3/A1yfu5dlyduL6Hec7mXY6ddXLPP2lpABGZ8PWXfYLTJxZekVhhl7eTX24zZPNKXoRC7zQLjUAAAAASUVORK5CYII=)}}.vue-treeselect__checkbox--unchecked{border-color:#e0e0e0;background:#fff}.vue-treeselect__label-container:hover .vue-treeselect__checkbox--unchecked{border-color:#039be5;background:#fff}.vue-treeselect__checkbox--checked,.vue-treeselect__checkbox--indeterminate,.vue-treeselect__label-container:hover .vue-treeselect__checkbox--checked,.vue-treeselect__label-container:hover .vue-treeselect__checkbox--indeterminate{border-color:#039be5;background:#039be5}.vue-treeselect__checkbox--disabled,.vue-treeselect__label-container:hover .vue-treeselect__checkbox--disabled{border-color:#e0e0e0;background-color:#f7f7f7}.vue-treeselect__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:table-cell;padding-left:5px;max-width:100%;vertical-align:middle;cursor:inherit}[dir=rtl] .vue-treeselect__label{padding-left:0;padding-right:5px}.vue-treeselect__count{margin-left:5px;font-weight:400;opacity:.6}[dir=rtl] .vue-treeselect__count{margin-left:0;margin-right:5px}.vue-treeselect__tip{padding-left:5px;padding-right:5px;display:table;table-layout:fixed;width:100%;color:#757575}.vue-treeselect__tip-text{display:table-cell;vertical-align:middle;padding-left:5px;padding-right:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:12px}.vue-treeselect__error-tip .vue-treeselect__retry{cursor:pointer;margin-left:5px;font-style:normal;font-weight:600;text-decoration:none;color:#039be5}[dir=rtl] .vue-treeselect__error-tip .vue-treeselect__retry{margin-left:0;margin-right:5px}.vue-treeselect__icon-container{display:table-cell;vertical-align:middle;width:20px;text-align:center;line-height:0}.vue-treeselect--single .vue-treeselect__icon-container{padding-left:5px}[dir=rtl] .vue-treeselect--single .vue-treeselect__icon-container{padding-left:0;padding-right:5px}.vue-treeselect__icon-warning{display:block;margin:auto;border-radius:50%;position:relative;width:12px;height:12px;background:#fb8c00}.vue-treeselect__icon-warning:after{display:block;position:absolute;content:"";left:5px;top:2.5px;width:2px;height:1px;border:0 solid #fff;border-top-width:5px;border-bottom-width:1px}.vue-treeselect__icon-error{display:block;margin:auto;border-radius:50%;position:relative;width:12px;height:12px;background:#e53935}.vue-treeselect__icon-error:after,.vue-treeselect__icon-error:before{display:block;position:absolute;content:"";background:#fff;transform:rotate(45deg)}.vue-treeselect__icon-error:before{width:6px;height:2px;left:3px;top:5px}.vue-treeselect__icon-error:after{width:2px;height:6px;left:5px;top:3px}.vue-treeselect__icon-loader{display:block;margin:auto;position:relative;width:12px;height:12px;text-align:center;-webkit-animation:vue-treeselect-animation-rotate 1.6s linear infinite;animation:vue-treeselect-animation-rotate 1.6s linear infinite}.vue-treeselect__icon-loader:after,.vue-treeselect__icon-loader:before{border-radius:50%;position:absolute;content:"";left:0;top:0;display:block;width:100%;height:100%;opacity:.6;-webkit-animation:vue-treeselect-animation-bounce 1.6s ease-in-out infinite;animation:vue-treeselect-animation-bounce 1.6s ease-in-out infinite}.vue-treeselect__icon-loader:before{background:#039be5}.vue-treeselect__icon-loader:after{background:#b3e5fc;-webkit-animation-delay:-.8s;animation-delay:-.8s}.vue-treeselect__menu-placeholder{display:none}.vue-treeselect__portal-target{position:absolute;display:block;left:0;top:0;height:0;width:0;padding:0;margin:0;border:0;overflow:visible;box-sizing:border-box} \ No newline at end of file diff --git a/admin/lianhelihua_admin/static/fonts/element-icons.535877f5.woff b/admin/lianhelihua_admin/static/fonts/element-icons.535877f5.woff deleted file mode 100644 index 02b9a25..0000000 --- a/admin/lianhelihua_admin/static/fonts/element-icons.535877f5.woff +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/static/fonts/element-icons.732389de.ttf b/admin/lianhelihua_admin/static/fonts/element-icons.732389de.ttf deleted file mode 100644 index 91b74de..0000000 --- a/admin/lianhelihua_admin/static/fonts/element-icons.732389de.ttf +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/static/img/404-tip.4d90651f.png b/admin/lianhelihua_admin/static/img/404-tip.4d90651f.png deleted file mode 100644 index 5182634..0000000 --- a/admin/lianhelihua_admin/static/img/404-tip.4d90651f.png +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/static/img/404.5c17595f.png b/admin/lianhelihua_admin/static/img/404.5c17595f.png deleted file mode 100644 index a386e02..0000000 --- a/admin/lianhelihua_admin/static/img/404.5c17595f.png +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/static/img/bg_shenhe@2x.632406ea.png b/admin/lianhelihua_admin/static/img/bg_shenhe@2x.632406ea.png deleted file mode 100644 index 904c7cc..0000000 --- a/admin/lianhelihua_admin/static/img/bg_shenhe@2x.632406ea.png +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/static/img/bg_shenhe_fail@2x.f31e62ff.png b/admin/lianhelihua_admin/static/img/bg_shenhe_fail@2x.f31e62ff.png deleted file mode 100644 index 4ac63a2..0000000 --- a/admin/lianhelihua_admin/static/img/bg_shenhe_fail@2x.f31e62ff.png +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/static/img/bg_shenhe_pass@2x.356d8eee.png b/admin/lianhelihua_admin/static/img/bg_shenhe_pass@2x.356d8eee.png deleted file mode 100644 index 55b4d70..0000000 --- a/admin/lianhelihua_admin/static/img/bg_shenhe_pass@2x.356d8eee.png +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/static/img/department.9b0b5285.svg b/admin/lianhelihua_admin/static/img/department.9b0b5285.svg deleted file mode 100644 index 08d05cd..0000000 --- a/admin/lianhelihua_admin/static/img/department.9b0b5285.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621750709361" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7590" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M890.96986 479.671711 545.11094 479.671711 545.11094 271.38592 684.78875 271.38592 684.78875 64.500013 343.028339 64.500013 343.028339 271.38592 480.338121 271.38592 480.338121 479.671711 133.397522 479.671711 133.397522 532.849864 133.397522 548.629245 133.397522 755.515153 64.284683 755.515153 64.284683 959.499987 270.160836 959.499987 270.160836 755.515153 202.498081 755.515153 202.498081 548.629245 480.338121 548.629245 480.338121 755.515153 409.786454 755.515153 409.786454 959.499987 615.662607 959.499987 615.662607 755.515153 545.11094 755.515153 545.11094 548.629245 822.225426 548.629245 822.225426 755.515153 753.863725 755.515153 753.863725 959.499987 959.714294 959.499987 959.714294 755.515153 890.96986 755.515153Z" p-id="7591" fill="#f7f7f7"></path></svg> diff --git a/admin/lianhelihua_admin/static/img/dictionary.a4f7c09e.svg b/admin/lianhelihua_admin/static/img/dictionary.a4f7c09e.svg deleted file mode 100644 index 7ed0110..0000000 --- a/admin/lianhelihua_admin/static/img/dictionary.a4f7c09e.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621751616853" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12750" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M225.5 596.7h63.8V652h-63.8v-55.3z m0-165.8h63.8v55.3h-63.8v-55.3z m0-165.7h63.8v55.3h-63.8v-55.3z m127.6 331.5h446.3V652H353.1v-55.3z m0-165.8h446.3v55.3H353.1v-55.3z m0-165.7h446.3v55.3H353.1v-55.3zM98 156.3v694.3c0 46.6 45 77.7 96.4 77.7h732.5v-46.6H194.4c-19.3 0-32.2-10.4-32.2-25.9 0-15.5 12.8-25.9 32.2-25.9h732.5V99.4H168.7c-32.1 5.1-64.3 31.1-70.7 56.9z" fill="#f7f7f7" p-id="12751"></path></svg> diff --git a/admin/lianhelihua_admin/static/img/listener.770879d4.svg b/admin/lianhelihua_admin/static/img/listener.770879d4.svg deleted file mode 100644 index 1d2ca18..0000000 --- a/admin/lianhelihua_admin/static/img/listener.770879d4.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621751666911" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13701" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M64.28 671v80.3c0 34.76 26.84 62.94 60 62.94h297.47v94.15H285.53c-24.17 0-48.38-0.49-72.54 0h-1.06c-12.54 0-24.55 11.58-24 25.18s10.53 25.17 24 25.17h525.88c24.16 0 48.37 0.49 72.53 0h1.06c12.54 0 24.56-11.58 24-25.17s-10.54-25.18-24-25.18H601.59v-94.11H899.1c33.11 0 59.95-28.18 59.95-62.94V671zM899.77 65H124.9A60 60 0 0 0 65 125v499.3h894.72V125a60 60 0 0 0-59.95-60zM757.46 296.75l-6.89 7.53-77 84.15-36.78 40.22c0.08 1.2 0.14 2.41 0.14 3.63a51.09 51.09 0 1 1-100.6-12.67l-55.74-65.31-38.46-45a51 51 0 0 1-21.7 0.18l-6 5.78-71.92 69.71-30.85 29.9a45.45 45.45 0 1 1-36.1-35.1l2.85-2.76 71.92-69.72 32.2-31.21A51.09 51.09 0 1 1 482 259.44a51.66 51.66 0 0 1-1.28 11.34l10.62 12.44L561.13 365l14.72 17.23a51.85 51.85 0 0 1 10-1 50.84 50.84 0 0 1 22.14 5l76.82-84q15.3-16.73 30.59-33.44a45.42 45.42 0 1 1 42 28z" p-id="13702" fill="#f7f7f7"></path></svg> diff --git a/admin/lianhelihua_admin/static/img/log-login.2ddfaaaf.svg b/admin/lianhelihua_admin/static/img/log-login.2ddfaaaf.svg deleted file mode 100644 index a030e67..0000000 --- a/admin/lianhelihua_admin/static/img/log-login.2ddfaaaf.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1622347607410" class="icon" viewBox="0 0 1038 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3794" width="64.875" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M76.778433 76.778433h776.41112v328.249368h77.209773v-345.071609A59.956192 59.956192 0 0 0 872.599832 0H59.956192A59.956192 59.956192 0 0 0 0 59.956192v898.048863a59.956192 59.956192 0 0 0 59.956192 59.956192H474.473463v-75.915754H76.778433z" p-id="3795" fill="#f7f7f7"></path><path d="M209.631003 256.647009h513.294018v81.091828H209.631003zM209.631003 472.748104h389.068239v81.091829H209.631003zM209.631003 684.535805h278.213984v81.091828H209.631003zM914.871104 774.685762a163.046335 163.046335 0 1 0-227.747262 0 180.731255 180.731255 0 0 0-122.069082 180.731256c0 68.582982 102.227464 68.582982 243.706824 68.582982h86.267902c59.956192 0 101.364785-3.450716 125.088458-27.605729a57.799495 57.799495 0 0 0 17.68492-43.133951 172.535805 172.535805 0 0 0-122.93176-178.574558zM733.277169 590.503791a94.894693 94.894693 0 0 1 67.288964-28.037068 92.306655 92.306655 0 1 1-67.288964 26.74305z m122.500422 364.913227h-46.584668a862.679023 862.679023 0 0 1-172.535804-10.352149c5.607414-99.639427 92.737995-121.206403 166.065712-121.206402 144.498736 0 164.771693 70.73968 166.497051 125.951137a480.943555 480.943555 0 0 1-113.442291 5.607414z" p-id="3796" fill="#f7f7f7"></path></svg> diff --git a/admin/lianhelihua_admin/static/img/log-opera.af0a9111.svg b/admin/lianhelihua_admin/static/img/log-opera.af0a9111.svg deleted file mode 100644 index 051fd63..0000000 --- a/admin/lianhelihua_admin/static/img/log-opera.af0a9111.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1622347629380" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4602" width="64.0625" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M548.075474 961.502824H37.281249a39.060735 39.060735 0 0 1-37.257932-40.262603V103.368526a39.060735 39.060735 0 0 1 37.257932-40.262604h717.515653a39.060735 39.060735 0 0 1 37.257931 40.262604V513.205775h-60.093438V128.006836H61.919559v773.40255H487.982036l60.093438 63.699045z" fill="#f7f7f7" p-id="4603"></path><path d="M733.764198 513.205775a223.54759 223.54759 0 1 1-225.350393 223.54759 227.153197 227.153197 0 0 1 225.350393-223.54759m0-63.699045A287.246635 287.246635 0 1 0 1022.813636 736.753365a287.246635 287.246635 0 0 0-289.049438-287.246635zM210.951285 0.007812h18.028032a22.835507 22.835507 0 0 1 22.835506 22.835507v145.42612a23.436441 23.436441 0 0 1-22.835506 23.436441h-18.028032a23.436441 23.436441 0 0 1-23.436441-23.436441V25.247056a22.835507 22.835507 0 0 1 22.835507-25.239244z m385.19894 0h18.028031a22.835507 22.835507 0 0 1 23.436441 22.835507v145.42612a23.436441 23.436441 0 0 1-23.436441 23.436441h-18.028031a23.436441 23.436441 0 0 1-22.835507-23.436441V25.247056a22.835507 22.835507 0 0 1 22.835507-25.239244zM157.468125 321.507707h514.399832a31.849522 31.849522 0 0 1 31.849522 31.849522 31.849522 31.849522 0 0 1-31.849522 31.849522H157.468125a31.849522 31.849522 0 0 1-31.849522-31.849522 31.849522 31.849522 0 0 1 31.849522-31.849522z m0 191.698068h257.199916a31.849522 31.849522 0 0 1 31.849522 31.849522 31.849522 31.849522 0 0 1-31.849522 31.849522H157.468125a31.849522 31.849522 0 0 1-31.849522-31.849522 31.849522 31.849522 0 0 1 31.849522-31.849522z m0 191.698068h192.899937a31.248588 31.248588 0 0 1 31.849522 31.849522 31.849522 31.849522 0 0 1-31.849522 31.849522H157.468125a31.849522 31.849522 0 0 1-31.849522-31.849522 31.849522 31.849522 0 0 1 31.849522-31.849522z" fill="#f7f7f7" p-id="4604"></path><path d="M870.777237 829.29726h-152.637333v-212.730771a30.647654 30.647654 0 0 1 30.647654-30.647654 30.647654 30.647654 0 0 1 30.647653 30.647654v152.036398h91.342026a30.046719 30.046719 0 0 1 30.04672 30.647654 30.046719 30.046719 0 0 1-30.04672 30.046719z" fill="#f7f7f7" p-id="4605"></path></svg> diff --git a/admin/lianhelihua_admin/static/img/log.6aa1794b.svg b/admin/lianhelihua_admin/static/img/log.6aa1794b.svg deleted file mode 100644 index 0fe054b..0000000 --- a/admin/lianhelihua_admin/static/img/log.6aa1794b.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1622347409604" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2382" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M299.1872 255.5904a42.496 42.496 0 0 0 42.5728-42.5472V42.752a42.5728 42.5728 0 0 0-85.1712 0v170.24c0 23.552 19.0464 42.5984 42.5984 42.5984zM512.1536 255.5904a42.496 42.496 0 0 0 42.5984-42.5472V42.752a42.5728 42.5728 0 1 0-85.1712 0v170.24c0 23.552 19.0976 42.5984 42.5728 42.5984zM384.4096 81.792h42.5984v85.0688h-42.5984zM597.4784 81.792h42.5728v85.0688H597.504z" fill="#f7f7f7" p-id="2383"></path><path d="M1023.3088 896.1024v-691.2c0.1536-70.6048-57.2416-127.6928-127.744-127.6928h-85.1712v85.0688h85.1712c23.4752 0 42.7264 19.072 42.7264 42.5216v691.3024c0 23.4496-19.2512 42.5984-42.752 42.5984H128.768a42.7264 42.7264 0 0 1-42.5728-42.5984H85.504l0.6656-691.2c0-23.4752 19.0976-42.5472 42.5728-42.5472h85.1712V77.2096H128.768A127.6928 127.6928 0 0 0 1.024 204.8768v691.2a127.616 127.616 0 0 0 127.744 127.6928h766.7968a127.3344 127.3344 0 0 0 127.232-121.344c0.0768-0.3584 0.512-0.7936 0.512-1.152v-3.7888c0-0.512 0.1536-0.9472 0.1536-1.4592h-0.1536v0.0768z" fill="#f7f7f7" p-id="2384"></path><path d="M725.248 255.5904c23.4496 0 42.5728-19.0208 42.5728-42.5472V42.752a42.5728 42.5728 0 0 0-85.1712 0v170.24c0 23.552 18.8672 42.5984 42.5728 42.5984zM255.872 426.4448h511.2064c23.3472 0 42.5728-19.072 42.5728-42.5216 0-23.552-19.2256-42.5472-42.5728-42.5472H255.8464a42.496 42.496 0 1 0 0 85.0688zM767.0784 551.3728H255.8464a42.5728 42.5728 0 1 0 0 85.0688h511.232c23.3216 0 42.5728-19.0976 42.5728-42.5472 0-23.4496-19.2512-42.5216-42.5728-42.5216zM767.0784 769.5872H255.8464a42.5216 42.5216 0 1 0 0 85.0688h511.232c23.3216 0 42.5728-19.1488 42.5728-42.6752 0-23.3984-19.2512-42.3936-42.5728-42.3936z" fill="#f7f7f7" p-id="2385"></path></svg> diff --git a/admin/lianhelihua_admin/static/img/login.97bc0f97.png b/admin/lianhelihua_admin/static/img/login.97bc0f97.png deleted file mode 100644 index 6424c2e..0000000 --- a/admin/lianhelihua_admin/static/img/login.97bc0f97.png +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/static/img/logo.32e88954.png b/admin/lianhelihua_admin/static/img/logo.32e88954.png deleted file mode 100644 index 33f6435..0000000 --- a/admin/lianhelihua_admin/static/img/logo.32e88954.png +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/static/img/man.6eaa0e37.png b/admin/lianhelihua_admin/static/img/man.6eaa0e37.png deleted file mode 100644 index a84beb9..0000000 --- a/admin/lianhelihua_admin/static/img/man.6eaa0e37.png +++ /dev/null Binary files differ diff --git a/admin/lianhelihua_admin/static/img/permission.e4625523.svg b/admin/lianhelihua_admin/static/img/permission.e4625523.svg deleted file mode 100644 index 7499def..0000000 --- a/admin/lianhelihua_admin/static/img/permission.e4625523.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621746809427" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4923" width="64.0625" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M928.612599 95.57028a325.17778 325.17778 0 0 0-523.501496 370.143341l-383.852354 383.852354a72.018013 72.018013 0 0 0 0 102.177841L73.352997 1002.741343a72.018013 72.018013 0 0 0 102.177841 0L329.254566 847.920893l19.192618 19.192618a73.114734 73.114734 0 0 0 102.177841 0l51.180314-51.180314a73.114734 73.114734 0 0 0 0-102.177841L482.978295 694.928312l75.490963-75.490963A325.17778 325.17778 0 0 0 928.612599 95.57028zM777.447886 402.469376a109.672101 109.672101 0 1 1-2.741802-155.186023 109.672101 109.672101 0 0 1 2.741802 155.186023z" p-id="4924" fill="#f7f7f7"></path></svg> diff --git a/admin/lianhelihua_admin/static/img/position.84d5bc25.svg b/admin/lianhelihua_admin/static/img/position.84d5bc25.svg deleted file mode 100644 index 6172da5..0000000 --- a/admin/lianhelihua_admin/static/img/position.84d5bc25.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621751435396" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11906" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M870 96H154c-49.5 0-90 40.6-90 90.2v651.6c0 49.6 40.5 90.2 90 90.2h716c49.5 0 90-40.6 90-90.2V186.2c0-49.6-40.5-90.2-90-90.2zM177.5 314.4h167.3v59.9H177.5v-59.9z m0 223.5h167.3v59.9H177.5v-59.9z m646.4 229.9v-0.2H362.8v0.2h-59.7c0-20.1 2.3-39.9 6.9-59.1v-1.2h0.3c3.8-15.7 9.1-31 16-46 14.8-32.3 35.9-61.3 62.7-86.1 36.8-34 81.6-57.7 130.5-69.7-39.8-24.8-66.3-69-66.3-119.4 0-77.6 62.7-140.6 140.2-140.6 77.5 0 140.2 63 140.2 140.6 0 50.4-26.5 94.6-66.3 119.4 48.9 11.9 93.7 35.6 130.5 69.7 26.8 24.8 47.9 53.8 62.7 86.1 15.4 33.7 23.2 69.4 23.2 106.3h-59.8z" fill="#f7f7f7" p-id="11907"></path></svg> diff --git a/admin/lianhelihua_admin/static/img/pwd.f269b92a.svg b/admin/lianhelihua_admin/static/img/pwd.f269b92a.svg deleted file mode 100644 index c77cebe..0000000 --- a/admin/lianhelihua_admin/static/img/pwd.f269b92a.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621744473001" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2398" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M822.857143 475.428571a36.571429 36.571429 0 0 1 36.571428 36.571429v91.428571a347.428571 347.428571 0 0 1-694.857142 0v-91.428571a36.571429 36.571429 0 0 1 36.571428-36.571429h621.714286m0-73.142857H201.142857a109.714286 109.714286 0 0 0-109.714286 109.714286v91.428571a420.571429 420.571429 0 0 0 420.571429 420.571429 420.571429 420.571429 0 0 0 420.571429-420.571429v-91.428571a109.714286 109.714286 0 0 0-109.714286-109.714286z" p-id="2399" fill="#c1c4cc"></path><path d="M731.428571 475.428571a36.571429 36.571429 0 0 1-36.571428-36.571428V256a182.857143 182.857143 0 0 0-365.714286 0v182.857143a36.571429 36.571429 0 0 1-73.142857 0V256a256 256 0 0 1 512 0v182.857143a36.571429 36.571429 0 0 1-36.571429 36.571428zM512 768a36.571429 36.571429 0 0 1-36.571429-36.571429v-146.285714a36.571429 36.571429 0 0 1 73.142858 0v146.285714a36.571429 36.571429 0 0 1-36.571429 36.571429z" p-id="2400" fill="#c1c4cc"></path></svg> diff --git a/admin/lianhelihua_admin/static/img/role.f81aee2b.svg b/admin/lianhelihua_admin/static/img/role.f81aee2b.svg deleted file mode 100644 index df41c8d..0000000 --- a/admin/lianhelihua_admin/static/img/role.f81aee2b.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621750614796" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6622" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M782.215429 604.888761l-18.436207-15.623905-4.609052-3.749737c-3.827857-3.2029-7.811952-6.249562-11.48357-9.296223l-5.234008-3.905976-1.093673-0.859315-6.56204-4.765291c-3.359139-2.421705-6.796398-4.765291-10.233658-7.030757l-2.343585-1.56239a382.082586 382.082586 0 0 0-109.367332-49.293419 264.668943 264.668943 0 1 0-204.438791 0 385.129247 385.129247 0 0 0-108.0393 48.98094l-2.265466 1.562391c-3.515379 2.265466-6.952638 4.609052-10.233658 7.030757l-6.640159 4.84341-0.937434 0.624957-5.312128 4.062215c-3.905976 2.968542-7.811952 6.093323-11.952287 9.608701l-4.062215 3.437259-18.592446 15.623905 0.937434 0.546836A397.159653 397.159653 0 0 0 122.183582 889.321943V914.085832a109.757929 109.757929 0 0 0 109.757929 109.367331h559.257663a109.757929 109.757929 0 0 0 109.367332-109.367331v-24.998248a396.847175 396.847175 0 0 0-119.288511-283.730106z" fill="#f7f7f7" p-id="6623"></path><path d="M232.253989 576.297015c3.984096-3.359139 7.811952-6.327681 11.327331-9.139984l5.858964-4.452813 0.859315-0.624956 6.952637-5.077769 10.936734-7.811952 2.421705-1.562391a403.409215 403.409215 0 0 1 74.526024-38.512924 286.698648 286.698648 0 0 1-138.115316-244.748465c0-6.405801 0-12.733482 0.703076-18.983044a171.081755 171.081755 0 0 0 24.52953 330.914298zM225.926308 581.609143a252.951015 252.951015 0 0 0-102.805292 39.059761l-1.562391 1.015554c-2.265466 1.56239-4.530932 3.046661-6.718278 4.687171l-4.374694 3.202901c-1.406151 1.015554-2.812303 2.031108-4.140334 3.124781-2.577944 1.952988-5.155888 3.984096-7.811953 6.093322l-0.859314 0.781196-2.187347 1.718629A262.950313 262.950313 0 0 0 5.004298 839.872285v17.342534a63.979889 63.979889 0 0 0 63.979889 63.979889h12.186645v-21.482869a421.220466 421.220466 0 0 1 107.648703-281.230281zM678.863301 509.426704a406.221518 406.221518 0 0 1 74.526024 38.512925l2.343586 1.56239 11.014853 7.811952 6.874518 5.077769 0.937434 0.624956 5.858964 4.452813c3.593498 2.812303 7.343235 5.780845 11.327331 9.139984a171.081755 171.081755 0 0 0 24.52953-330.914298c0.390598 6.249562 0.703076 12.577243 0.703076 18.983044A286.698648 286.698648 0 0 1 678.863301 509.426704zM928.220817 641.136219l-2.109227-1.718629-0.937434-0.781196c-2.499825-2.109227-4.999649-4.140335-7.811953-6.093322l-4.140334-3.124781-4.374694-3.202901c-2.187347-1.64051-4.452813-3.124781-6.796398-4.687171l-1.484271-1.015554a253.341612 253.341612 0 0 0-102.805292-39.059761l37.106773 36.716175a421.142347 421.142347 0 0 1 107.570583 281.230282v21.482869h12.186646a64.058009 64.058009 0 0 0 64.058008-63.979889v-17.030056a262.715955 262.715955 0 0 0-90.462407-198.736066z" fill="#f7f7f7" p-id="6624"></path></svg> diff --git a/admin/lianhelihua_admin/static/img/shield.7b210670.svg b/admin/lianhelihua_admin/static/img/shield.7b210670.svg deleted file mode 100644 index 9813a37..0000000 --- a/admin/lianhelihua_admin/static/img/shield.7b210670.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621745695957" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3315" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M517.094527 1024c-153.345274 0-438.129353-228.234826-438.129353-444.242786V167.60995c0-10.189055 8.151244-17.830846 18.849751-18.340298l24.963184-0.509453c1.018905 0 98.324378-2.037811 198.686568-41.775124C423.864677 66.228856 490.093532 19.359204 491.112438 18.849751l14.774129-10.189054c3.056716-2.037811 7.132338-3.566169 11.20796-3.56617 4.075622 0 8.151244 1.018905 11.207961 3.56617l14.774129 10.698507c0.509453 0.509453 67.247761 47.379104 170.157214 88.135323 100.362189 39.737313 197.667662 41.775124 198.686567 41.775125l24.453731 0.509452c10.189055 0 18.849751 8.151244 18.849752 18.340299v412.147264c0 215.498507-284.78408 443.733333-438.129354 443.733333z m370.881592-808.501493c-37.699502-3.056716-117.174129-12.736318-199.196019-45.341293-84.569154-33.114428-146.212935-70.304478-171.685573-87.116418-25.472637 16.302488-87.116418 54.00199-171.685572 87.116418-82.021891 32.604975-160.987065 42.284577-199.19602 45.341293v364.258707c0 169.138308 248.103483 376.485572 370.881592 376.485572 47.379104 0 140.099502-38.718408 230.78209-123.287562 87.625871-81.512438 140.099502-176.270647 140.099502-253.19801V215.498507z m-406.03383 433.544279c-6.113433 6.622886-14.774129 10.189055-23.944279 10.189055-9.170149 0-17.321393-3.566169-23.944279-10.189055l-101.381094-101.890547a33.827662 33.827662 0 0 1 0-47.888557c13.245771-13.245771 34.133333-13.245771 47.379104-0.509453l0.509453 0.509453 77.436816 77.946268 195.120398-196.648756c12.736318-13.245771 34.133333-13.245771 47.379104-0.509453l0.509453 0.509453c13.245771 13.245771 13.245771 34.642786 0 47.888557l-219.064676 220.593035z" p-id="3316" fill="#c1c4cc"></path></svg> diff --git a/admin/lianhelihua_admin/static/img/woman.e651ccdb.png b/admin/lianhelihua_admin/static/img/woman.e651ccdb.png deleted file mode 100644 index eef8695..0000000 --- a/admin/lianhelihua_admin/static/img/woman.e651ccdb.png +++ /dev/null Binary files differ 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/business/category.js b/admin/src/api/business/category.js index 5ed8bda..569e286 100644 --- a/admin/src/api/business/category.js +++ b/admin/src/api/business/category.js @@ -24,6 +24,15 @@ download: true }) } +export function importDcaExcel (data) { + return request.post('/business/category/importDcaExcel', data) +} +export function exportDcaExcel (data) { + return request.post('/business/category/exportDcaExcel', encryptData(data), { + trim: true, + download: true + }) +} // 鍒涘缓 export function create (data) { diff --git a/admin/src/api/business/company.js b/admin/src/api/business/company.js index f19de73..6861e19 100644 --- a/admin/src/api/business/company.js +++ b/admin/src/api/business/company.js @@ -12,6 +12,16 @@ trim: true }) } +export function allList (data) { + return request.post('/business/company/list', encryptData(data), { + trim: true + }) +} +export function treeWithMember (data) { + return request.post('/business/company/treeWithMember', encryptData(data), { + trim: true + }) +} // 瀵煎嚭Excel export function exportExcel (data) { 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/assets/style/style.scss b/admin/src/assets/style/style.scss index 6965c4e..a2ed35a 100644 --- a/admin/src/assets/style/style.scss +++ b/admin/src/assets/style/style.scss @@ -30,6 +30,19 @@ .el-transfer__buttons { padding: 0 16px !important; } +.tip-warn { + margin: 4px 0 25px 0; + font-size: 12px; + color: #999; + line-height: 25px; + i { + color: orange; + margin-right: 4px; + font-size: 14px; + position: relative; + top: 1px; + } +} // dialog .eva-dialog { diff --git a/admin/src/components/business/OperaCategoryImportWindow.vue b/admin/src/components/business/OperaCategoryImportWindow.vue new file mode 100644 index 0000000..1d10dc1 --- /dev/null +++ b/admin/src/components/business/OperaCategoryImportWindow.vue @@ -0,0 +1,96 @@ +<template> + <el-dialog + class="center-title" + :title="title" + width="55%" + top="30vh" + :visible.sync="visible" + :confirm-working="isWorking" + @confirm="confirm" + > + <p class="tip-warn"><i class="el-icon-warning"></i>瀵煎叆璇存槑锛�<br> + 1.璇峰厛涓嬭浇鏂囦欢妯℃澘锛屽苟鎸夌収妯℃澘瑕佸幓濉啓琛ㄦ牸鍐呭;<br> + 2.涓嬭浇妯$増涓哄綋鍓嶇郴缁熷凡褰曞叆鐨勫叏閲忎富棰樿瀵熼」鏁版嵁;<br> + 3.姣忔鍏ㄩ噺瀵煎叆灏嗚鐩栨洿鏂颁笌琛ㄦ牸鏁版嵁銆佸眰绾у叧绯讳笉涓�鑷寸殑鏁版嵁閰嶇疆椤癸紝璇疯皑鎱庢搷浣滐紒<br> + </p> + <el-form class="demo-form-inline" > + <el-form-item label="閫夋嫨瀵煎叆鏂囦欢" required> + <div style="width: 100%;display: flex;align-items: center;"> + <el-button type="primary" @click="clickRef">鐐瑰嚮涓婁紶</el-button> + <el-button type="text" @click="exportTemplate" :loading="exporting">鐐瑰嚮涓嬭浇妯$増.EXCEL</el-button> + </div> + <div style="font-size: 14px; color: black;" v-if="fileName">{{fileName}}</div> + </el-form-item> + </el-form> + <input type="file" style="position: fixed; left: 0; top: -50px;" accept=".xlsx" ref="fileExcel" @change="result" /> + <template v-slot:footer> + <el-button @click="visible=false">杩斿洖</el-button> + </template> + </el-dialog> +</template> + +<script> +import BaseOpera from '@/components/base/BaseOpera' +import { importDcaExcel, exportDcaExcel } from '@/api/business/category' +export default { + name: 'OperaCategoryImportWindow', + extends: BaseOpera, + components: {}, + data () { + return { + exporting: false, + importing: false, + fileName: '' + } + }, + methods: { + open (title, companyType) { + this.title = title + this.fileName = '' + this.visible = true + }, + // 瀵煎嚭妯℃澘 + exportTemplate () { + this.$dialog.exportConfirm('纭瀵煎嚭涓嬭浇妯$増鍚楋紵') + .then(() => { + this.exporting = true + exportDcaExcel({}).then(response => { + this.exporting = false + this.download(response) + }) + .catch(e => { + this.$tip.apiFailed(e) + }) + .finally(() => { + this.exporting = false + }) + }) + .catch(() => {}) + }, + clickRef () { + this.$refs.fileExcel.click() + }, + result (e) { + const data = new FormData() + data.append('file', e.target.files[0]) + importDcaExcel(data) + .then(res => { + this.$message.success('瀵煎叆鎴愬姛') + this.$emit('success') + this.visible = false + }) + .catch(err => { + this.$message.error(err) + this.fileName = '' + }) + .finally(() => { + this.$refs.fileExcel.value = null + }) + } + } +} +</script> + +<style lang="scss" scoped> + +</style> diff --git a/admin/src/components/business/OperaManagersWindow.vue b/admin/src/components/business/OperaManagersWindow.vue index e106aac..5a93fea 100644 --- a/admin/src/components/business/OperaManagersWindow.vue +++ b/admin/src/components/business/OperaManagersWindow.vue @@ -6,8 +6,37 @@ @confirm="confirm" > <el-form :model="form" ref="form" :rules="rules"> - <el-form-item label="閫夋嫨璐熻矗浜猴細" prop="memberId"> - <el-select v-model="form.memberId" filterable remote :remote-method="loadMember" :loading="loading" placeholder="鍙緭鍏ュ鍚� | 鎵嬫満鍙� | 閮ㄩ棬鍚嶇О杩涜鎼滅储"> + <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="2">鎸囧畾浜哄憳</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="鎵�灞炵粍缁�" prop="companyIds" v-if="form.isMember==0 || form.isMember==1" :required="true"> +<!-- <treeselect + v-model="form.companyId" + placeholder="璇烽�夋嫨" + :options="companyTree" + :normalizer="normalizeOptions" + :default-expand-level="1" + noChildrenText="娌℃湁瀛愰�夐」" + noOptionsText="娌℃湁鍙�夐」" + 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="false" + :props="{id:'id',children: 'childList',label: 'name',isLeaf:'isLeaf'}"> + </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="鍙緭鍏ュ鍚� | 鎵嬫満鍙� | 閮ㄩ棬鍚嶇О杩涜鎼滅储"> <el-option v-for="item in memberList" :key="item.id" @@ -35,6 +64,9 @@ import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' import { allList } from '@/api/business/member' +import { treeList, allList as companyList } from '@/api/business/company' +import { createRoleMenu } from '@/api/system/role' +import { create } from '@/api/business/managers' export default { name: 'OperaManagersWindow', @@ -45,17 +77,28 @@ // 琛ㄥ崟鏁版嵁 form: { type: '', + companyId: null, memberId: '', + memberIds: [], + companyIds: [], remark: '', isQw: 0, - isEmail: 0 + isEmail: 0, + isMember: 0 }, + companyTree: [], loading: false, memberList: [], // 楠岃瘉瑙勫垯 rules: { - memberId: [ + memberIds: [ { required: true, message: '璇烽�夋嫨璐熻矗浜�' } + ], + companyIds: [ + { required: true, message: '璇烽�夋嫨閮ㄩ棬' } + ], + isMember: [ + { required: true, message: '閫夋嫨璁剧疆鑼冨洿' } ] } } @@ -67,10 +110,52 @@ }) }, methods: { + loadData (node, resolve) { + console.log(node) + if(!node.hasChildren || (node.childList && node.childList.length >0)){ + return + } + companyList({ parentId: node.id }) + .then(res => { + node.childList = res + }) + }, + changeTree (node) { + 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 + res[0].isLeaf = res[0].hasChildren + 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 + } + }) + }, + + // 瑙勮寖鍖栭�夐」鏁版嵁鐨勬柟娉� + normalizeOptions (node) { + if (node.childList && !node.childList.length) { + delete node.childList + } + return { + id: node.id, + label: node.name, + children: node.childList + } + }, loadMember (query) { this.memberList = [] + console.log(query) if (!query || query == '') { - return + // return } this.loading = true allList({ @@ -95,7 +180,8 @@ this.form[this.configData['field.id']] = null }) this.memberList = [] - // this.loadMember() + this.getfindCompanyTreePage() + this.loadMember() } } } diff --git a/admin/src/components/business/OperaWorkorderDetailDbhWindow.vue b/admin/src/components/business/OperaWorkorderDetailDbhWindow.vue index 245d85b..a9e2f01 100644 --- a/admin/src/components/business/OperaWorkorderDetailDbhWindow.vue +++ b/admin/src/components/business/OperaWorkorderDetailDbhWindow.vue @@ -8,9 +8,9 @@ <div class="modal_wrap"> <div class="modal_content"> <div class="header"> - <img v-if="info.status == '3'" class="head_bg" - src="@/assets/task/bg_shenhe_fail@2x.png" alt=""> - <img v-else-if="info.status == '4'" class="head_bg" + <!-- <img v-if="info.status == '0'" class="head_bg" + src="@/assets/task/bg_shenhe_fail@2x.png" alt="">--> + <img v-if="info.status == '4' || info.status == '3'||info.status == '5'||info.status == '6'" class="head_bg" src="@/assets/task/bg_shenhe_pass@2x.png" alt=""> <img v-else class="head_bg" src="@/assets/task/bg_shenhe@2x.png" alt=""> <div class="left"> @@ -46,13 +46,13 @@ <div class="label">鍙戠敓鍦扮偣</div> <div class="value">{{ info.locationName }}</div> </div> - <div class="item"> - <div class="label">椋庨櫓鎻忚堪</div> - <div class="value">{{ info.riskInfo }}</div> - </div> - <div class="item"> + <div class="item" style="width: 100%"> <div class="label">閫氱煡浜�</div> <div class="value">{{ info.memberNames }}</div> + </div> + <div class="item" style="width: 100%"> + <div class="label">椋庨櫓鎻忚堪</div> + <div class="value">{{ info.riskInfo }}</div> </div> <div class="item" style="width: 100%"> <div class="label">鍥剧墖</div> @@ -148,11 +148,11 @@ info: {}, statusMap: { 0: '寰呭垎閰峎TS', - 1: '寰呭垎閰嶄换鍔�', - 2: '寰呭伐绋嬪笀澶勭悊', - 3: '宸茶В鍐�', - 4: '宸茶В鍐�', - 5: '宸茶В鍐�' + 1: '寰呭垎閰嶅伐绋嬪笀', + 2: '寰呭垎閰嶄换鍔�', + 3: 'SHE鍏抽棴', + 4: 'WTS鍏抽棴', + 5: '宸ョ▼甯堝叧闂�' }, cateList: { 0: 'SHE浜嬩欢宸ュ崟', @@ -231,7 +231,7 @@ .modal_wrap { display: flex; - height: 100%; + height: aotu; .modal_content { flex: 1; @@ -253,14 +253,14 @@ display: flex; flex-wrap: wrap; - .item { + .item.item { display: flex; - width: 40%; + width: 50%; font-size: 14px; margin-bottom: 20px; &:nth-of-type(2n) { - width: 60%; + width: 50%; } .label { @@ -269,6 +269,7 @@ } .value { + width: calc(100% - 100px); color: #111111; } } diff --git a/admin/src/components/business/OperaWorkorderDetailDcaInfoWindow.vue b/admin/src/components/business/OperaWorkorderDetailDcaInfoWindow.vue index b6e62d9..c9fd5db 100644 --- a/admin/src/components/business/OperaWorkorderDetailDcaInfoWindow.vue +++ b/admin/src/components/business/OperaWorkorderDetailDcaInfoWindow.vue @@ -8,16 +8,16 @@ <div class="modal_wrap"> <div class="modal_content"> <div class="header"> - <img v-if="info.status == '3'" class="head_bg" - src="@/assets/task/bg_shenhe_fail@2x.png" alt=""> - <img v-else-if="info.status == '4'" class="head_bg" + <!-- <img v-if="info.status == '0'" class="head_bg" + src="@/assets/task/bg_shenhe_fail@2x.png" alt="">--> + <img v-if="info.status == '4' || info.status == '3'||info.status == '5'||info.status == '6'" class="head_bg" src="@/assets/task/bg_shenhe_pass@2x.png" alt=""> <img v-else class="head_bg" src="@/assets/task/bg_shenhe@2x.png" alt=""> <div class="left"> <div class="h1">涓嶇鍚堥」锛歿{ info.problemTitle }}</div> <div class="time">鎻愪氦鏃堕棿锛歿{ info.createDate }}</div> </div> - <div class="right" :style="(info.status ==0 ||info.status ==1 || info.status ==2)?'min-width: 90px':''" :class="{ scs: info.status == '3' || info.status == '4' || info.status == '5', msg: info.status == '6' }">{{statusMap[info.status] }}</div> + <div class="right" style="text-align:center;min-width: 90px" :class="{ scs: info.status == '3' || info.status == '4' || info.status == '5', msg: info.status == '6' }">{{statusMap[info.status] }}</div> </div> <div class="info"> <div class="title">宸ュ崟淇℃伅</div> @@ -46,7 +46,7 @@ <div class="label">鍙戠幇鏃堕棿</div> <div class="value">{{ info.happenTime}}</div> </div> - <div class="item"> + <div class="item" style="width: 100%"> <div class="label">閫氱煡浜�</div> <div class="value">{{ info.memberNames }}</div> </div> @@ -147,11 +147,11 @@ info: {}, statusMap: { 0: '寰呭垎閰峎TS', - 1: '寰呭垎閰嶄换鍔�', - 2: '寰呭伐绋嬪笀澶勭悊', - 3: '宸茶В鍐�', - 4: '宸茶В鍐�', - 5: '宸茶В鍐�' + 1: '寰呭垎閰嶅伐绋嬪笀', + 2: '寰呭垎閰嶄换鍔�', + 3: 'SHE鍏抽棴', + 4: 'WTS鍏抽棴', + 5: '宸ョ▼甯堝叧闂�' }, cateList: { 0: 'SHE浜嬩欢宸ュ崟', @@ -230,7 +230,7 @@ .modal_wrap { display: flex; - height: 100%; + height: auto; overflow: hidden; .modal_content { @@ -255,12 +255,12 @@ .item { display: flex; - width: 40%; + width: 50%; font-size: 14px; margin-bottom: 20px; &:nth-of-type(2n) { - width: 60%; + width: 50%; } .label { @@ -269,6 +269,7 @@ } .value { + width: calc(100% - 100px); color: #111111; } } diff --git a/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue b/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue index 8cc3844..5aeee8c 100644 --- a/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue +++ b/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue @@ -8,15 +8,16 @@ <div class="modal_wrap"> <div class="modal_content"> <div class="header"> - <img v-if="info.status == '3'" class="head_bg" - src="@/assets/task/bg_shenhe_fail@2x.png" alt=""> - <img v-else-if="info.status == '4'" class="head_bg" + <!-- <img v-if="info.status == '0'" class="head_bg" + src="@/assets/task/bg_shenhe_fail@2x.png" alt="">--> + <img v-if="info.status == '4' || info.status == '3'||info.status == '5'||info.status == '6'" class="head_bg" src="@/assets/task/bg_shenhe_pass@2x.png" alt=""> <img v-else class="head_bg" src="@/assets/task/bg_shenhe@2x.png" alt=""> <div class="left"> <div class="h1">{{ cateList[type] }}</div> <div class="time">鎻愪氦鏃堕棿锛歿{ info.createDate }}</div> </div> + <div class="right" :class="{ scs: info.status == '3' || info.status == '4' || info.status == '5', msg: info.status == '6' }">{{statusMap[info.status] }}</div> </div> <div class="info"> <div class="title">宸ュ崟淇℃伅</div> <div class="list"> @@ -82,7 +83,7 @@ <el-table-column prop="index" label="搴忓彿" width="55" fixed="left"> <template slot-scope="scope">{{ scope.$index+1}}</template> </el-table-column> - <el-table-column label="宸ュ崟鍙�" prop="code" min-width="100"> + <el-table-column label="宸ュ崟鍙�" prop="code" min-width="120"> <template slot-scope="{row}"> <span style="color: #2E68EC;cursor: pointer" @click="$refs.OperaWorkorderDetailDcaInfoWindow.open('DCA涓嶇鍚堥」宸ュ崟璇︽儏', row)" >{{ row.code || '-'}}</span> </template> @@ -90,14 +91,19 @@ <el-table-column label="涓�绾т富棰�" prop="typeName" min-width="60"> </el-table-column> <el-table-column label="浜岀骇涓婚" prop="categoryName" min-width="60"> </el-table-column> <el-table-column label="瑙傚療椤�" prop="problemTitle" min-width="100"> </el-table-column> - <el-table-column label="涓嶇鍚堝師鍥�" prop="eventInfo" min-width="120" /> - <el-table-column label="澶勭悊鐘舵��" prop="status" min-width="80"> + <el-table-column label="鐘舵��" prop="status" min-width="80"> <template slot-scope="{row}"> <!-- <span :class="'statusInfo'+row.status" v-if="row.status ==0">寰呭鐞�</span>--> <span :class="'statusInfo'+row.status" v-if="row.status ==3 ||row.status ==4||row.status ==5">宸插鐞�</span> <span :class="'statusInfo'+row.status" v-else>澶勭悊涓�</span> </template> </el-table-column> + <el-table-column prop="statusInfo" label="鐘舵�佹弿杩�" min-width="100px"> + <template slot-scope="{row}"> + <span :class="'statusInfo'+row.status" >{{ row.statusName }}</span> + </template> + </el-table-column> + <el-table-column label="涓嶇鍚堝師鍥�" prop="eventInfo" min-width="180" /> <el-table-column label="鎿嶄綔" prop="status" min-width="80"> <template slot-scope="{row}"> <el-button type="text" @click="$refs.OperaWorkorderDetailDcaInfoWindow.open('DCA涓嶇鍚堥」宸ュ崟璇︽儏', row)" icon="el-icon-zoom-out" >鏌ョ湅璇︽儏</el-button> @@ -112,7 +118,7 @@ <el-table-column prop="index" label="搴忓彿" width="55" fixed="left"> <template slot-scope="scope">{{ scope.$index+1}}</template> </el-table-column> - <el-table-column label="涓�绾т富棰�" prop="typeName" min-width="160"> </el-table-column> + <el-table-column label="涓�绾т富棰�" prop="typeName" min-width="140"> </el-table-column> <el-table-column label="浜岀骇涓婚" prop="categoryName" min-width="150"> </el-table-column> <el-table-column label="瑙傚療椤�" prop="problemTitle" min-width="400"> </el-table-column> </el-table> @@ -145,12 +151,12 @@ info: {}, dataList2: [], statusMap: { - 0: '寰呭垎閰峎TS', - 1: '寰呭垎閰嶄换鍔�', - 2: '寰呭伐绋嬪笀澶勭悊', - 3: '宸茶В鍐�', - 4: '宸茶В鍐�', - 5: '宸茶В鍐�' + 0: '澶勭悊涓�', + 1: '澶勭悊涓�', + 2: '澶勭悊涓�', + 3: '宸插鐞�', + 4: '宸插鐞�', + 5: '宸插鐞�' }, cateList: { 0: 'SHE浜嬩欢宸ュ崟', @@ -249,7 +255,7 @@ .modal_wrap { display: flex; - height: 100%; + height: auto; .modal_content { flex: 1; @@ -272,17 +278,21 @@ flex-wrap: wrap; .item { display: flex; - width: 30%; + width: 50%; font-size: 14px; margin-bottom: 20px; + &:nth-of-type(2n) { - width: 30%; + width: 50%; } + .label { color: #888888; width: 100px; } + .value { + width: calc(100% - 100px); color: #111111; } } diff --git a/admin/src/components/business/OperaWorkorderDetailSheWindow.vue b/admin/src/components/business/OperaWorkorderDetailSheWindow.vue index d5f9b49..8a21f88 100644 --- a/admin/src/components/business/OperaWorkorderDetailSheWindow.vue +++ b/admin/src/components/business/OperaWorkorderDetailSheWindow.vue @@ -8,9 +8,9 @@ <div class="modal_wrap"> <div class="modal_content"> <div class="header"> - <img v-if="info.status == '3'" class="head_bg" - src="@/assets/task/bg_shenhe_fail@2x.png" alt=""> - <img v-else-if="info.status == '4'" class="head_bg" +<!-- <img v-if="info.status == '0'" class="head_bg" + src="@/assets/task/bg_shenhe_fail@2x.png" alt="">--> + <img v-if="info.status == '4' || info.status == '3'||info.status == '5'||info.status == '6'" class="head_bg" src="@/assets/task/bg_shenhe_pass@2x.png" alt=""> <img v-else class="head_bg" src="@/assets/task/bg_shenhe@2x.png" alt=""> <div class="left"> @@ -41,16 +41,8 @@ <div class="value" v-else>鏈汉</div> </div> <div class="item"> - <div class="label">鍙戠敓鍦扮偣</div> - <div class="value">{{ info.locationName }}</div> - </div> - <div class="item"> <div class="label">鍙戠幇鏃堕棿</div> <div class="value">{{ info.happenTime }}</div> - </div> - <div class="item"> - <div class="label">鍏蜂綋浣嶇疆</div> - <div class="value">{{ info.remark }}</div> </div> <div class="item"> <div class="label">澶栭儴灏卞尰</div> @@ -71,6 +63,14 @@ <div class="item"> <div class="label">鍜屽伐浣滅浉鍏�</div> <div class="value">{{ info.workRelated == "0" ? "鍚�" : "鏄�" }}</div> + </div> + <div class="item"> + <div class="label">鍙戠敓鍦扮偣</div> + <div class="value">{{ info.locationName }}</div> + </div> + <div class="item"> + <div class="label">鍏蜂綋浣嶇疆</div> + <div class="value">{{ info.remark }}</div> </div> <div class="item"> <div class="label">浜嬩欢璇存槑</div> @@ -179,12 +179,12 @@ title: '宸ュ崟璇︽儏', info: {}, statusMap: { - 0: '寰呭垎閰峎TS', - 1: '寰呭垎閰嶄换鍔�', - 2: '寰呭伐绋嬪笀澶勭悊', - 3: '宸茶В鍐�', - 4: '宸茶В鍐�', - 5: '宸茶В鍐�' + 0: '澶勭悊涓�', + 1: '澶勭悊涓�', + 2: '澶勭悊涓�', + 3: '宸插鐞�', + 4: '宸插鐞�', + 5: '宸插鐞�' }, cateList: { 0: 'SHE浜嬩欢宸ュ崟', @@ -263,7 +263,7 @@ .modal_wrap { display: flex; - height: 100%; + height: auto; .modal_content { flex: 1; @@ -287,12 +287,12 @@ .item { display: flex; - width: 40%; + width: 50%; font-size: 14px; margin-bottom: 20px; &:nth-of-type(2n) { - width: 60%; + width: 50%; } .label { @@ -301,6 +301,7 @@ } .value { + width: calc(100% - 100px); color: #111111; } } diff --git a/admin/src/components/common/RichEditor.vue b/admin/src/components/common/RichEditor.vue index 91cd904..a312cc2 100644 --- a/admin/src/components/common/RichEditor.vue +++ b/admin/src/components/common/RichEditor.vue @@ -129,10 +129,10 @@ MENU_CONF: { // 鍥剧墖涓婁紶 uploadImage: { - server: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload?folder=richeditor', + server: process.env.VUE_APP_API_PREFIX + '/web/public/upload?folder=richeditor', fieldName: 'file', // 鍗曚釜鏂囦欢鐨勬渶澶т綋绉檺鍒讹紝榛樿涓� 2M - maxFileSize: 10 * 1024 * 1024, // 10M + maxFileSize: 20 * 1024 * 1024, // 10M // 鏈�澶氬彲涓婁紶鍑犱釜鏂囦欢锛岄粯璁や负 100 maxNumberOfFiles: 10, // 閫夋嫨鏂囦欢鏃剁殑绫诲瀷闄愬埗锛岄粯璁や负 ['image/*'] 銆傚涓嶆兂闄愬埗锛屽垯璁剧疆涓� [] @@ -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/components/common/Tree.vue b/admin/src/components/common/Tree.vue index b522403..da887b6 100644 --- a/admin/src/components/common/Tree.vue +++ b/admin/src/components/common/Tree.vue @@ -1,22 +1,24 @@ <template> - <div class="tree"> - <div v-for="(item, index) of list" :key="index" @click.stop="clickIten(item)"> - <div class="tree_item"> - <i class="el-icon-caret-bottom" :class="{ 'activeColor': item.actived === 1 }" v-show="item.fsStatus === 1 && item.childList.length > 0"></i> - <i class="el-icon-caret-right color" v-show="item.childList.length > 0 && (item.fsStatus === 0 || !item.fsStatus)"></i> - <div class="tree_item_label long-title-style" :title="item.name" :class="{ 'activeColor': item.actived === 1 }">{{ item.name }}</div> - </div> - <div class="tree_childern" v-show="item.fsStatus === 1"> - <tree - :list="item.childList" - :alllist="alllist" - :defaultProps="defaultProps" - @callback="callback" - /> - <!-- @callback="callback" --> - </div> - </div> + <div class="tree"> + <div v-for="(item, index) of list" :key="index" @click.stop="clickIten(item)"> + <div class="tree_item"> + <i class="el-icon-caret-bottom" :class="{ 'activeColor': item.fsStatus === 1 }" v-show="item.fsStatus === 1 && item.childList && item.childList.length > 0"></i> + <i class="el-icon-caret-right color" v-show="item.childList && item.childList.length > 0 && (item.fsStatus === 0 || !item.fsStatus)"></i> + <div class="tree_item_label long-title-style" :title="item.name" :class="{ 'activeColor': item.fsDate === 1 && item.childList && item.childList.length === 0 }">{{ item.name }}</div> + <!-- <i class="el-icon-caret-bottom" :class="{ 'activeColor': item[defaultProps.status] }" v-show="item[defaultProps.status] && item[defaultProps.children]"></i>--> + <!-- <i class="el-icon-caret-right color" v-show="item[defaultProps.children] && !item[defaultProps.status]"></i>--> + <!-- <div class="tree_item_label long-title-style" :title="item[defaultProps.name]" :class="{ 'activeColor': item[defaultProps.status] && !item[defaultProps.children] }">{{ item[defaultProps.name] }}</div>--> + </div> + <div class="tree_childern" v-show="item.fsStatus === 1"> + <tree + :list="item.childList" + :defaultProps="defaultProps" + @callback="callback" + /> + <!-- @callback="callback" --> + </div> </div> + </div> </template> <script> @@ -25,11 +27,6 @@ name: 'tree', props: { list: { - type: Array, - required: false, - default: () => [] - }, - alllist: { type: Array, required: false, default: () => [] @@ -58,33 +55,45 @@ } }, methods: { - listForList(){ - // console.log('===============================',this.alllist) - }, // 鐐瑰嚮褰撳墠椤� clickIten (item) { - // this.listForList() + // item[this.defaultProps.status] = !item[this.defaultProps.status] + // this.list.forEach(subItem => { + // if ((subItem[this.defaultProps.id] !== item[this.defaultProps.id] && subItem[this.defaultProps.status]) || (this.list.length === 1 && subItem[this.defaultProps.status] === false)) { + // subItem[this.defaultProps.status] = false + // if (subItem[this.defaultProps.children]) { + // this.recursion(subItem[this.defaultProps.children]) + // } + // } + // }) + // if (this.tempItem['id'] === item[this.defaultProps.id]) { + // this.tempItem = { + // id: null, + // name: null, + // erpId: null + // } + // } else { + // this.tempItem.id = item[this.defaultProps.id] + // this.tempItem.name = item[this.defaultProps.name] + // this.tempItem.erpId = item['erpId'] + // } + // item.fsDate === 0 || !item.fsDate ? item.fsDate = 1 : item.fsDate = 0 const fsDate = item.fsDate === 0 || !item.fsDate ? 1 : 0 - this.alllist.forEach(i => { + this.list.forEach(i => { i.fsDate = 0 - i.actived = 0 - this.recursion1(i.childList) }) item.fsDate = fsDate - item.actived = 1 if (item.childList.length > 0) { item.fsStatus === 0 || !item.fsStatus ? item.fsStatus = 1 : item.fsStatus = 0 } this.$emit('callback', item, item) }, - recursion1 (children) { - if (!children || children.length === 0){ - return - } + // 閫掑綊鏂规硶 + recursion (children) { children.forEach(item => { - item.actived = 0 - if (item.childList && item.childList.length > 0) { - this.recursion1(item.childList) + item.fsDate = 0 + if (item.childList.length > 0) { + this.recursion(item.childList) } // item[this.defaultProps.status] = false // if (item[this.defaultProps.children]) { @@ -107,39 +116,39 @@ <style lang="scss" scoped> .tree { - /*width: 100%;*/ - /*height: auto;*/ - /*border-radius: 5px;*/ - /*overflow: hidden;*/ - /*border: 1px solid #eeeeee;*/ - /*box-sizing: border-box;*/ - .tree_childern { - margin-left: 20px; + /*width: 100%;*/ + /*height: auto;*/ + /*border-radius: 5px;*/ + /*overflow: hidden;*/ + /*border: 1px solid #eeeeee;*/ + /*box-sizing: border-box;*/ + .tree_childern { + margin-left: 20px; + } + .activeItem { + background: #F4F7FC; + } + .tree_item { + display: flex; + align-items: center; + height: 48px; + cursor: pointer; + padding-left: 10px; + .tree_item_label { + font-size: 14px; + font-weight: 400; + color: #333333; + white-space: nowrap; } - .activeItem { - background: #F4F7FC; + i { + margin-right: 5px; } - .tree_item { - display: flex; - align-items: center; - height: 48px; - cursor: pointer; - padding-left: 10px; - .tree_item_label { - font-size: 14px; - font-weight: 400; - color: #333333; - white-space: nowrap; - } - i { - margin-right: 5px; - } - .color { - color: #999999 !important; - } - .activeColor { - color: #305ED5 !important; - } + .color { + color: #999999 !important; } + .activeColor { + color: #305ED5 !important; + } + } } </style> diff --git a/admin/src/components/common/TreeNew.vue b/admin/src/components/common/TreeNew.vue new file mode 100644 index 0000000..ddbc3f7 --- /dev/null +++ b/admin/src/components/common/TreeNew.vue @@ -0,0 +1,145 @@ +<template> + <div class="tree"> + <div v-for="(item, index) of list" :key="index" @click.stop="clickIten(item)"> + <div class="tree_item"> + <i class="el-icon-caret-bottom" :class="{ 'activeColor': item.actived === 1 }" v-show="item.fsStatus === 1 && item.hasChildren"></i> + <i class="el-icon-caret-right color" v-show="item.hasChildren && (item.fsStatus === 0 || !item.fsStatus)"></i> + <div class="tree_item_label long-title-style" :title="item.name" :class="{ 'activeColor': item.actived === 1 }">{{ item.name }}</div> + </div> + <div class="tree_childern" v-show="item.fsStatus === 1"> + <tree + :list="item.childList" + :alllist="alllist" + :defaultProps="defaultProps" + @callback="callback" + /> + <!-- @callback="callback" --> + </div> + </div> + </div> +</template> + +<script> +// import Bus from '@/utils/eventBus' +export default { + name: 'tree', + props: { + list: { + type: Array, + required: false, + default: () => [] + }, + alllist: { + type: Array, + required: false, + default: () => [] + }, + defaultProps: { + type: Object, + require: false, + default: () => { + return { + name: 'name', + status: 'status', + children: 'children', + id: 'id', + erpId: 'erpId' + } + } + } + }, + data() { + return { + tempItem: { + id: null, + name: null, + erpId: null + } + } + }, + methods: { + listForList(){ + // console.log('===============================',this.alllist) + }, + // 鐐瑰嚮褰撳墠椤� + clickIten (item) { + // this.listForList() + const fsDate = item.fsDate === 0 || !item.fsDate ? 1 : 0 + this.alllist.forEach(i => { + i.fsDate = 0 + i.actived = 0 + this.recursion1(i.childList) + }) + item.fsDate = fsDate + item.actived = 1 + if (item.hasChildren > 0) { + item.fsStatus === 0 || !item.fsStatus ? item.fsStatus = 1 : item.fsStatus = 0 + } + this.$emit('callback', item, item) + }, + recursion1 (children) { + if (!children || children.length === 0){ + return + } + children.forEach(item => { + item.actived = 0 + if (item.hasChildren) { + this.recursion1(item.childList) + } + // item[this.defaultProps.status] = false + // if (item[this.defaultProps.children]) { + // this.recursion(item[this.defaultProps.children]) + // } + }) + }, + callback (data, item) { + if (this.tempItem.id === data.id) { + this.tempItem = {} + } else { + this.tempItem.id = data.id + this.tempItem.name = data.name + } + this.$emit('callback', data, item) + } + } +} +</script> + +<style lang="scss" scoped> +.tree { + /*width: 100%;*/ + /*height: auto;*/ + /*border-radius: 5px;*/ + /*overflow: hidden;*/ + /*border: 1px solid #eeeeee;*/ + /*box-sizing: border-box;*/ + .tree_childern { + margin-left: 20px; + } + .activeItem { + background: #F4F7FC; + } + .tree_item { + display: flex; + align-items: center; + height: 48px; + cursor: pointer; + padding-left: 10px; + .tree_item_label { + font-size: 14px; + font-weight: 400; + color: #333333; + white-space: nowrap; + } + i { + margin-right: 5px; + } + .color { + color: #999999 !important; + } + .activeColor { + color: #305ED5 !important; + } + } +} +</style> diff --git a/admin/src/components/common/UploadAvatarImage.vue b/admin/src/components/common/UploadAvatarImage.vue index dfd5d22..e39f3e5 100644 --- a/admin/src/components/common/UploadAvatarImage.vue +++ b/admin/src/components/common/UploadAvatarImage.vue @@ -31,7 +31,7 @@ data() { return { loading: null, - uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload' + uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/web/public/upload' } }, diff --git a/admin/src/components/common/UploadAvatarVideo.vue b/admin/src/components/common/UploadAvatarVideo.vue index c0e43d9..1ed4dbd 100644 --- a/admin/src/components/common/UploadAvatarVideo.vue +++ b/admin/src/components/common/UploadAvatarVideo.vue @@ -36,7 +36,7 @@ }, data() { return { - uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload' + uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/web/public/upload' } }, diff --git a/admin/src/components/common/UploadFaceImg.vue b/admin/src/components/common/UploadFaceImg.vue index 98e2dd1..ac68d58 100644 --- a/admin/src/components/common/UploadFaceImg.vue +++ b/admin/src/components/common/UploadFaceImg.vue @@ -56,7 +56,7 @@ img: null, updateImg: false, imageSrc: null, - uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload' + uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/web/public/upload' } }, diff --git a/admin/src/components/common/UploadFile.vue b/admin/src/components/common/UploadFile.vue index 7dcad1f..888a670 100644 --- a/admin/src/components/common/UploadFile.vue +++ b/admin/src/components/common/UploadFile.vue @@ -34,7 +34,7 @@ data() { return { fileList:null, - uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload?folder='+this.uploadData.folder + uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/web/public/upload?folder='+this.uploadData.folder } }, diff --git a/admin/src/components/common/UploadFileCommon.vue b/admin/src/components/common/UploadFileCommon.vue index db8be23..8ad4306 100644 --- a/admin/src/components/common/UploadFileCommon.vue +++ b/admin/src/components/common/UploadFileCommon.vue @@ -39,7 +39,7 @@ }, data() { return { - uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload' + uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/web/public/upload' } }, diff --git a/admin/src/components/common/UploadImage.vue b/admin/src/components/common/UploadImage.vue index c0bb2bb..12b87ab 100644 --- a/admin/src/components/common/UploadImage.vue +++ b/admin/src/components/common/UploadImage.vue @@ -59,7 +59,7 @@ }, data() { return { - uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadLocal', + uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/web/public/uploadLocal', realList: [], srcList: [], diff --git a/admin/src/components/common/upload.vue b/admin/src/components/common/upload.vue index ccde115..f941a83 100644 --- a/admin/src/components/common/upload.vue +++ b/admin/src/components/common/upload.vue @@ -48,7 +48,7 @@ }, data () { return { - uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload' + uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/web/public/upload' } }, diff --git a/admin/src/views/business/categoryDbhLocaltion.vue b/admin/src/views/business/categoryDbhLocaltion.vue index 3d21b0d..e6d3443 100644 --- a/admin/src/views/business/categoryDbhLocaltion.vue +++ b/admin/src/views/business/categoryDbhLocaltion.vue @@ -14,9 +14,7 @@ </el-form> </div> <template v-slot:menu> - <div - style="width: 100%; height: 50px; background: rgba(242, 242, 242, 1); line-height: 50px; text-align: center; font-size: 14px;"> - 璺岀粖婊戦闄╁彂鐢熷湴鐐�</div> + <div style="width: 100%; height: 50px; background: rgba(242, 242, 242, 1); line-height: 50px; text-align: center; font-size: 14px;"> 璺岀粖婊戦闄╁彂鐢熷湴鐐�</div> <div style="width: 100%; height: calc(100vh - 130px); overflow-y: scroll;"> <Tree :list="treeList" :alllist="treeList" :defaultProps="{ name: 'name', status: 'fsStatus', children: 'childList', id: 'id' }" @callback="callback" /> @@ -59,7 +57,7 @@ import Tree from '@/components/common/Tree' import { treeList } from '@/api/business/category' export default { - name: 'categorySheType', + name: 'categoryDbhLocaltion', extends: BaseTable, components: { TableLayout1, Pagination, Tree, OperaCategoryWindow }, data () { diff --git a/admin/src/views/business/categoryDbhType.vue b/admin/src/views/business/categoryDbhType.vue index 365dae2..79b049c 100644 --- a/admin/src/views/business/categoryDbhType.vue +++ b/admin/src/views/business/categoryDbhType.vue @@ -59,7 +59,7 @@ import Tree from '@/components/common/Tree' import { treeList } from '@/api/business/category' export default { - name: 'categorySheType', + name: 'categoryDbhType', extends: BaseTable, components: { TableLayout1, Pagination, Tree, OperaCategoryWindow }, data () { diff --git a/admin/src/views/business/categoryDcaLocaltion.vue b/admin/src/views/business/categoryDcaLocaltion.vue index 33001b4..24b2667 100644 --- a/admin/src/views/business/categoryDcaLocaltion.vue +++ b/admin/src/views/business/categoryDcaLocaltion.vue @@ -59,7 +59,7 @@ import Tree from '@/components/common/Tree' import { treeList } from '@/api/business/category' export default { - name: 'categorySheType', + name: 'categoryDcaLocation', extends: BaseTable, components: { TableLayout1, Pagination, Tree, OperaCategoryWindow }, data () { diff --git a/admin/src/views/business/categoryDcaProblem.vue b/admin/src/views/business/categoryDcaProblem.vue index 14937da..fb32829 100644 --- a/admin/src/views/business/categoryDcaProblem.vue +++ b/admin/src/views/business/categoryDcaProblem.vue @@ -25,9 +25,11 @@ <!-- 琛ㄦ牸鍜屽垎椤� --> <template v-slot:table-wrap> <ul class="toolbar" v-if="containPermissions(['business:category:create', 'business:category:delete' ])" > + <li> <el-button type="primary" :loading="isWorking.export" icon="el-icon-download" @click="exportDcaExcel">瀵煎嚭鍏ㄩ儴</el-button></li> <li><el-button type="primary" @click="$refs.operaCategoryWindow.open('鏂板缓DCA涓婚鍜岃瀵熼」', null,categoryList ,4,searchForm.parentId)" icon="el-icon-plus" v-permissions="['business:category:create']">鏂板缓</el-button></li> + <li> <el-button type="primary" :loading="importing" icon="el-icon-plus" @click="$refs.OperaCategoryImportWindow.open('鎵归噺瀵煎叆涓婚瑙傚療椤�')">鍏ㄩ噺瀵煎叆</el-button></li> <li><el-button type="danger" @click="deleteByIdInBatch(true,getfindTreePage)" icon="el-icon-delete" v-permissions="['business:category:delete']">鎵归噺鍒犻櫎</el-button></li> </ul> <el-table :height="tableHeightNew" v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> @@ -54,6 +56,7 @@ <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> </pagination> <OperaCategoryDcaProblemWindow ref="operaCategoryWindow" @success="handlePageChangeDo"/> + <OperaCategoryImportWindow ref="OperaCategoryImportWindow" @success="handlePageChangeDo" /> </template> </TableLayout1> </template> @@ -65,14 +68,16 @@ import Pagination from '@/components/common/Pagination' import Tree from '@/components/common/Tree' import { treeList } from '@/api/business/category' +import OperaCategoryImportWindow from '@/components/business/OperaCategoryImportWindow' export default { - name: 'categorySheType', + name: 'categoryDcaProblem', extends: BaseTable, - components: { TableLayout1, Pagination, Tree, OperaCategoryDcaProblemWindow }, + components: { TableLayout1, Pagination, Tree, OperaCategoryDcaProblemWindow ,OperaCategoryImportWindow}, data () { return { TreeList: [], level: 0, + importing: false, // 鎼滅储 searchForm: { name: '', @@ -100,6 +105,24 @@ this.getfindTreePage() }, methods: { + exportDcaExcel () { + this.__checkApi() + this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵') + .then(() => { + this.isWorking.export = true + this.api.exportDcaExcel({}) + .then(response => { + this.download(response) + }) + .catch(e => { + this.$tip.apiFailed(e) + }) + .finally(() => { + this.isWorking.export = false + }) + }) + .catch(() => {}) + }, handlePageChangeDo () { this.searchForm.isRoot = 1 this.searchForm.level = 1 @@ -163,7 +186,7 @@ this.searchForm.parentId = row.id this.searchForm.isRoot = null this.searchForm.parentIdPath = row.idPath - this.level= row.level + this.level = row.level if (row.level === 2) { this.searchForm.type = 6 } else { diff --git a/admin/src/views/business/categorySheLocaltion.vue b/admin/src/views/business/categorySheLocaltion.vue index c305190..e022196 100644 --- a/admin/src/views/business/categorySheLocaltion.vue +++ b/admin/src/views/business/categorySheLocaltion.vue @@ -59,7 +59,7 @@ import Tree from '@/components/common/Tree' import { treeList } from '@/api/business/category' export default { - name: 'categorySheType', + name: 'categorySheLocation', extends: BaseTable, components: { TableLayout1, Pagination, Tree, OperaCategoryWindow }, data () { diff --git a/admin/src/views/business/company.vue b/admin/src/views/business/company.vue index 0cef1ce..8eeacd2 100644 --- a/admin/src/views/business/company.vue +++ b/admin/src/views/business/company.vue @@ -4,9 +4,16 @@ <ul class="toolbar" v-permissions="['business:company:create', 'business:company:sync']"> <li><el-button type="primary" v-permissions="['business:company:create']" :loading="loading" @click="synchronous()">鍏ㄩ噺鍚屾浼佷笟寰俊缁勭粐</el-button></li> </ul> - <el-table :height="tableHeightNew" v-loading="isWorking.search" :data="list" stripe - :tree-props="{ children: 'childList', hasChildren: 'hasChildren' }" row-key="id" - @selection-change="handleSelectionChange" default-expand-all> + <el-table :height="tableHeightNew" + v-loading="isWorking.search" + :data="list" + stripe + lazy + :load="loadData" + :tree-props="{ children: 'childList', hasChildren: 'hasChildren' }" + row-key="id" + @selection-change="handleSelectionChange" + :default-expand-all="false"> <el-table-column prop="name" label="缁勭粐鍚嶇О" min-width="100px"></el-table-column> <el-table-column prop="namePath" label="缁勭粐璺緞" min-width="100px"></el-table-column> <el-table-column prop="qwId" label="浼佷笟寰俊鏍囪瘑" min-width="100px"></el-table-column> @@ -21,7 +28,7 @@ <script> import BaseTable from '@/components/base/BaseTable' import TableLayout from '@/layouts/TableLayout' -import { companySync } from '@/api/business/company' +import {allList, companySync} from '@/api/business/company' export default { name: 'internalCompany', extends: BaseTable, @@ -48,11 +55,12 @@ }, methods: { // 椤电爜鍙樻洿澶勭悊 - handlePageChange (pageIndex) { + handlePageChange (pid) { this.__checkApi() this.isWorking.search = true - this.api.treeList({}) + this.api.allList({parentId:pid}) .then(data => { + console.log(data) this.list = data }) .catch(e => { @@ -62,6 +70,20 @@ this.isWorking.search = false }) }, + // 鑾峰彇瀛愮骇鏁版嵁 + loadData (row, treeNode, resolve) { + console.log(row, treeNode) + this.api.allList({parentId: row.id}) + .then(data => { + resolve(data) + }) + .catch(e => { + this.$tip.apiFailed(e) + }) + .finally(() => { + this.isWorking.search = false + }) + }, // 鍚屾淇℃伅 async synchronous () { this.$dialog.actionConfirm(' 鎮ㄧ‘璁ゅ悓姝ュ叏閮ㄤ俊鎭悧锛�', '鎿嶄綔纭鎻愰啋') diff --git a/admin/src/views/business/companyMember.vue b/admin/src/views/business/companyMember.vue index 1280bff..d885ac0 100644 --- a/admin/src/views/business/companyMember.vue +++ b/admin/src/views/business/companyMember.vue @@ -17,7 +17,8 @@ style="width: 100%; height: 50px; background: rgba(242, 242, 242, 1); line-height: 50px; text-align: center; font-size: 14px;"> 浼佷笟缁勭粐</div> <div style="width: 100%; height: calc(100vh - 130px); overflow-y: scroll;"> - <Tree :list="companyTree" :alllist="companyTree" :defaultProps="{ name: 'name', status: 'fsStatus', children: 'childList', id: 'id' }" + <Tree :list="companyTree" :alllist="companyTree" + :defaultProps="{ name: 'name', status: 'fsStatus', children: 'childList', id: 'id' }" @callback="callback" /> </div> </template> @@ -75,17 +76,18 @@ import BaseTable from '@/components/base/BaseTable' import TableLayout1 from '@/layouts/TableLayout1' import Pagination from '@/components/common/Pagination' -import Tree from '@/components/common/Tree' +import Tree from '@/components/common/TreeNew' import OperaMemberWindow from '@/components/business/OperaMemberWindow' -import { treeList } from '@/api/business/company' +import { allList,treeList } from '@/api/business/company' import { memberSync} from '@/api/business/member' export default { name: 'internalMember', extends: BaseTable, - components: { TableLayout1, Pagination, Tree,OperaMemberWindow }, + components: { TableLayout1, Pagination, Tree, OperaMemberWindow }, data() { return { TreeList: [], + defaultExpanedKeys:null, // 鎼滅储 searchForm: { name: '' , @@ -96,6 +98,7 @@ loading: false, heading: false, working: false, + dataList: [], companyTree: [], department: [] } @@ -113,15 +116,26 @@ methods: { // 鑾峰彇缁勭粐鏍� getfindCompanyTreePage() { - treeList({}) + allList({}) .then(res => { + console.log(res) if (res && res.length > 0) { res[0].fsStatus = 1 + this.getCompanyList(res[0]) this.companyTree = res this.search() - this.department = this.getDepartmentTree(res) + // this.department = this.getDepartmentTree(res) } }) + }, + getCompanyList(row){ + allList({parentId:row.id}) + .then(res => { + console.log(res) + if (res && res.length > 0) { + row.childList = res + } + }) }, getDepartmentTree(tree) { if (tree == null) { @@ -153,7 +167,7 @@ this.loading = true memberSync({}) .then(res => { - this.$tip.apiSuccess(res || '鍚屾鎴愬姛') + this.$tip.apiSuccess( '鍚屾鎴愬姛') this.search() }) .catch(e => { @@ -170,6 +184,9 @@ this.searchForm.erpOrgId = row.erpId this.searchForm.companyId = row.id this.search() + if(row.hasChildren && (row.childList == null || row.childList.length == 0)){ + this.getCompanyList(row) + } } } } diff --git a/admin/src/views/business/managersShe.vue b/admin/src/views/business/managersShe.vue index 52171b8..d36d96a 100644 --- a/admin/src/views/business/managersShe.vue +++ b/admin/src/views/business/managersShe.vue @@ -16,7 +16,7 @@ <template v-slot:table-wrap> <ul class="toolbar" v-permissions="['business:managers:create', 'business:managers:delete']"> <li><el-button type="primary" @click="$refs.operaManagersWindow.open('鏂板缓SHE璐d换浜�',{type:0})" icon="el-icon-plus" v-permissions="['business:managers:create']">鏂板缓</el-button></li> - <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:managers:delete']">鍒犻櫎</el-button></li> + <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:managers:delete']">鍒犻櫎</el-button></li> </ul> <el-table :height="tableHeightNew" @@ -27,8 +27,8 @@ > <el-table-column type="selection" width="55"></el-table-column> <el-table-column prop="memberName" label="浜哄憳濮撳悕" min-width="100px"></el-table-column> - <el-table-column prop="memberPhone" label="浜哄憳鎵嬫満鍙�" min-width="100px"></el-table-column> - <el-table-column prop="memberEmail" label="浜哄憳閭" min-width="100px"></el-table-column> + <el-table-column prop="memberPhone" label="鎵嬫満鍙�" min-width="100px"></el-table-column> + <el-table-column prop="memberEmail" label="浜哄憳閭" min-width="100px"> </el-table-column> <el-table-column prop="companyName" label="鎵�灞為儴闂�" min-width="100px"></el-table-column> <el-table-column prop="editorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column> <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="150px"></el-table-column> diff --git a/admin/src/views/business/managersSheNotice.vue b/admin/src/views/business/managersSheNotice.vue index 44b59bd..68e973c 100644 --- a/admin/src/views/business/managersSheNotice.vue +++ b/admin/src/views/business/managersSheNotice.vue @@ -16,26 +16,34 @@ <template v-slot:table-wrap> <ul class="toolbar" v-permissions="['business:managers:create', 'business:managers:delete']"> <li><el-button type="primary" @click="$refs.operaManagersWindow.open('鏂板缓浜嬩欢閫氱煡浜虹鐞�',{type:3})" icon="el-icon-plus" v-permissions="['business:managers:create']">鏂板缓</el-button></li> - <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:managers:delete']">鍒犻櫎</el-button></li> + <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:managers:delete']">鍒犻櫎</el-button></li> </ul> <el-table :height="tableHeightNew" v-loading="isWorking.search" :data="tableData.list" - stripe + strip @selection-change="handleSelectionChange" > <el-table-column type="selection" width="55"></el-table-column> <el-table-column prop="memberName" label="浜哄憳濮撳悕" min-width="100px"></el-table-column> <el-table-column prop="memberPhone" label="浜哄憳鎵嬫満鍙�" min-width="100px"></el-table-column> - <el-table-column prop="memberEmail" label="浜哄憳閭" min-width="100px"></el-table-column> + <el-table-column prop="memberQwId" label="浼佸井ID" min-width="100px"></el-table-column> + <el-table-column prop="memberEmail" label="浜哄憳閭" min-width="100px"> + <template slot-scope="{row}"> + <div v-if="row.memberEmail">{{row.memberEmail}}</div> + <div v-else style="color: #dc362e;cursor: pointer" title="鏆傛湭閰嶇疆浜哄憳閭锛岃鍓嶅線銆愪汉鍛樼鐞嗐��-銆愬憳宸ョ鐞嗐�戣彍鍗曠紪杈戣鍛樺伐淇℃伅锛岃缃偖绠变俊鎭�"> + <el-button type="text" style="color: red" title="鏆傛湭閰嶇疆浜哄憳閭锛岃鍓嶅線銆愪汉鍛樼鐞嗐��-銆愬憳宸ョ鐞嗐�戣彍鍗曠紪杈戣鍛樺伐淇℃伅锛岃缃偖绠变俊鎭�" icon="el-icon-error" >鏈厤缃�</el-button> + </div> + </template> + </el-table-column> <el-table-column prop="companyName" label="鎵�灞為儴闂�" min-width="100px"></el-table-column> <el-table-column prop="isQw" label="浼佸井閫氱煡" min-width="80px"> <template slot-scope="{row}"> <el-switch v-model="row.isQw" :active-value="1" :inactive-value="0" @change="updateInfo(row)"/> </template> </el-table-column> - <el-table-column prop="isQw" label="閭欢閫氱煡" min-width="80px"> + <el-table-column prop="isEmail" label="閭欢閫氱煡" min-width="80px"> <template slot-scope="{row}"> <el-switch v-model="row.isEmail" :active-value="1" :inactive-value="0" @change="updateEmailInfo(row)"/> </template> @@ -47,12 +55,9 @@ v-if="containPermissions(['business:managers:update', 'business:managers:delete'])" label="鎿嶄綔" min-width="120" - fixed="right" - > + fixed="right" > <template slot-scope="{row}"> -<!-- - <el-button type="text" @click="$refs.operaManagersWindow.open('缂栬緫璐d换浜轰俊鎭〃', row)" icon="el-icon-edit" v-permissions="['business:managers:update']">缂栬緫</el-button> ---> +<!-- <el-button type="text" @click="$refs.operaManagersWindow.open('缂栬緫璐d换浜轰俊鎭〃', row)" icon="el-icon-edit" v-permissions="['business:managers:update']">缂栬緫</el-button> --> <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:managers:delete']">鍒犻櫎</el-button> </template> </el-table-column> 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 4be20da..2d2e4aa 100644 --- a/admin/src/views/business/workorderDbh.vue +++ b/admin/src/views/business/workorderDbh.vue @@ -23,6 +23,18 @@ <el-form-item label="宸ュ崟鍙�" prop="code"> <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="璇烽�夋嫨" clearable @change="search" > + <el-option label="寰呭垎閰峎TS" value="0"></el-option> +<!-- + <el-option label="寰呭垎閰嶄换鍔�" value="1"></el-option> +--> + <el-option label="寰呭伐绋嬪笀澶勭悊" value="2"></el-option> + <el-option label="SHE鍏抽棴" value="3"></el-option> + <el-option label="WTS鍏抽棴" value="4"></el-option> + <el-option label="宸ョ▼甯堝叧闂�" value="5"></el-option> + </el-select> + </el-form-item> <el-form-item label="鎻愪氦鏃堕棿" prop="queryStartTime"> <el-date-picker type="datetime" v-model="searchForm.queryStartTime" value-format="yyyy-MM-dd HH:mm:ss" placeholder="璇烽�夋嫨寮�濮嬫椂闂�" @change="changeRadio" /> @@ -64,17 +76,19 @@ <el-table-column prop="typeName" label="椋庨櫓绫诲瀷" min-width="100px"></el-table-column> <el-table-column prop="status" label="鐘舵��" min-width="100px"> <template slot-scope="{row}"> -<!-- - <span :class="'statusInfo'+row.status" v-if="row.status ==0">寰呭鐞�</span> ---> <span :class="'statusInfo'+row.status" v-if="row.status ==3 ||row.status ==4||row.status ==5">宸插鐞�</span> <span :class="'statusInfo'+row.status" v-else>鏈鐞�</span> + </template> + </el-table-column> + <el-table-column prop="statusInfo" label="鐘舵�佹弿杩�" min-width="100px"> + <template slot-scope="{row}"> + <span :class="'statusInfo'+row.status" >{{ row.statusName }}</span> </template> </el-table-column> <el-table-column prop="submitDate" label="涓婃姤鏃堕棿" min-width="150px"></el-table-column> <el-table-column prop="happenTime" label="鍙戠幇鏃堕棿" min-width="150px"></el-table-column> <el-table-column prop="locationName" label="鍙戠敓鍦扮偣" min-width="150px"></el-table-column> - <el-table-column prop="riskInfo" label="椋庨櫓鎻忚堪" min-width="200px"></el-table-column> + <el-table-column prop="riskInfo" label="椋庨櫓鎻忚堪" min-width="250px" show-overflow-tooltip ></el-table-column> <el-table-column prop="memberName" label="涓婃姤浜哄憳" min-width="150px"> <template slot-scope="{row}"> <span v-if="row.memberPhone" >{{row.memberName}} - {{row.memberPhone }}</span> @@ -132,6 +146,7 @@ typeId: null, typeIdPath: null, code: '', + status: null, categoryList: [] }, categoryprops: { diff --git a/admin/src/views/business/workorderDca.vue b/admin/src/views/business/workorderDca.vue index 84a77db..2d4faf3 100644 --- a/admin/src/views/business/workorderDca.vue +++ b/admin/src/views/business/workorderDca.vue @@ -64,6 +64,13 @@ </template> </el-table-column> <el-table-column prop="locationName" label="浣嶇疆" min-width="150px"></el-table-column> + <el-table-column prop="status" label="鐘舵��" min-width="100px"> + <template slot-scope="{row}"> + <!-- <span :class="'statusInfo'+row.status" v-if="row.status ==0">寰呭鐞�</span>--> + <span :class="'statusInfo'+row.status" v-if="row.status ==3 ||row.status ==4||row.status ==5">宸插鐞�</span> + <span :class="'statusInfo'+row.status" v-else>澶勭悊涓�</span> + </template> + </el-table-column> <el-table-column prop="submitDate" label="涓婃姤鏃堕棿" min-width="150px"></el-table-column> <el-table-column prop="happenTime" label="鍙戠幇鏃堕棿" min-width="150px"></el-table-column> <el-table-column prop="memberNames" label="閫氱煡浜�" min-width="150px"></el-table-column> diff --git a/admin/src/views/business/workorderDcaChild.vue b/admin/src/views/business/workorderDcaChild.vue index 4238c5b..f79c433 100644 --- a/admin/src/views/business/workorderDcaChild.vue +++ b/admin/src/views/business/workorderDcaChild.vue @@ -24,10 +24,22 @@ </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="璇烽�夋嫨" clearable @change="search" > + <el-option label="寰呭垎閰峎TS" value="0"></el-option> +<!-- + <el-option label="寰呭垎閰嶄换鍔�" value="1"></el-option> +--> + <el-option label="寰呭伐绋嬪笀澶勭悊" value="2"></el-option> + <el-option label="SHE鍏抽棴" value="3"></el-option> + <el-option label="WTS鍏抽棴" value="4"></el-option> + <el-option label="宸ョ▼甯堝叧闂�" value="5"></el-option> + </el-select> </el-form-item> <el-form-item label="鎻愪氦鏃堕棿" prop="queryStartTime"> <el-date-picker type="datetime" v-model="searchForm.queryStartTime" value-format="yyyy-MM-dd HH:mm:ss" @@ -62,7 +74,7 @@ stripe @selection-change="handleSelectionChange" > - <el-table-column prop="code" label="宸ュ崟鍙�" min-width="150px" fixed> + <el-table-column prop="code" label="宸ュ崟鍙�" min-width="160px" fixed> <template slot-scope="{row}"> <span style="color: #2E68EC;cursor: pointer" @click="$refs.operaWorkorderWindow.open('DCA浜嬩欢宸ュ崟璇︽儏', row)" >{{ row.code || '-'}}</span> </template> @@ -71,9 +83,6 @@ <template slot-scope="{row}"> {{row.typeName}}/{{row.categoryName}} </template> </el-table-column> -<!-- - <el-table-column prop="categoryName" label="浜岀骇涓婚" min-width="100px"></el-table-column> ---> <el-table-column prop="problemTitle" label="涓嶇鍚堥」" min-width="250px"></el-table-column> <el-table-column prop="status" label="鐘舵��" min-width="100px"> <template slot-scope="{row}"> @@ -82,9 +91,15 @@ <span :class="'statusInfo'+row.status" v-else>澶勭悊涓�</span> </template> </el-table-column> + <el-table-column prop="statusInfo" label="鐘舵�佹弿杩�" min-width="100px"> + <template slot-scope="{row}"> + <span :class="'statusInfo'+row.status" >{{ row.statusName}}</span> + </template> + </el-table-column> <el-table-column prop="locationName" label="浣嶇疆" min-width="150px"></el-table-column> <el-table-column prop="submitDate" label="涓婃姤鏃堕棿" min-width="150px"></el-table-column> <el-table-column prop="happenTime" label="鍙戠幇鏃堕棿" min-width="150px"></el-table-column> + <el-table-column prop="eventInfo" label="涓嶇鍚堝師鍥�" min-width="250px" show-overflow-tooltip ></el-table-column> <el-table-column prop="memberName" label="涓婃姤浜哄憳" min-width="150px"> <template slot-scope="{row}"> <span v-if="row.memberPhone" >{{row.memberName}}/{{row.memberPhone }}</span> @@ -142,6 +157,7 @@ categoryId: '', typeId: '', code: '', + status: null, categoryList: [] }, categoryprops: { diff --git a/admin/src/views/business/workorderShe.vue b/admin/src/views/business/workorderShe.vue index 4e073ac..7bee81a 100644 --- a/admin/src/views/business/workorderShe.vue +++ b/admin/src/views/business/workorderShe.vue @@ -98,7 +98,7 @@ <span v-else>鍚�</span> </template> </el-table-column> - <el-table-column prop="eventInfo" label="浜嬩欢璇存槑" min-width="200px"></el-table-column> + <el-table-column prop="eventInfo" label="浜嬩欢璇存槑" min-width="200px" show-overflow-tooltip ></el-table-column> <el-table-column prop="memberName" label="涓婃姤浜哄憳" min-width="150px"> <template slot-scope="{row}"> <span v-if="row.memberPhone" >{{row.memberName}} - {{row.memberPhone }}</span> diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue index b090fe8..db6abe6 100644 --- a/admin/src/views/index.vue +++ b/admin/src/views/index.vue @@ -34,8 +34,8 @@ --> </div> <div class="content"> - <div>鏈В鍐筹細{{ headerData.dbhYesNum || 0}}</div> - <div>宸茶В鍐筹細{{ headerData.dbhNoNum || 0}}</div> + <div>鏈В鍐筹細{{ headerData.dbhNoNum || 0}}</div> + <div>宸茶В鍐筹細{{ headerData.dbhYesNum || 0}}</div> <div>鎬诲伐鍗曢噺锛歿{ headerData.dbhNum || 0}}</div> </div> </div> @@ -62,8 +62,8 @@ <!-- <img src="@/assets/images/bg_a.png" alt="" />--> </div> <div class="content"> - <div>鏈В鍐筹細{{ headerData.dcaChildYesNum || 0}}</div> - <div>宸茶В鍐筹細{{ headerData.dcaChildNoNum || 0}}</div> + <div>鏈В鍐筹細{{ headerData.dcaChildNoNum || 0}}</div> + <div>宸茶В鍐筹細{{ headerData.dcaChildYesNum || 0}}</div> <div>鎬诲伐鍗曢噺锛歿{ headerData.dcaChildNum || 0}}</div> </div> </div> diff --git a/lianhelihua_sh.iml b/lianhelihua_sh.iml deleted file mode 100644 index 9a5cfce..0000000 --- a/lianhelihua_sh.iml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module type="GENERAL_MODULE" version="4"> - <component name="NewModuleRootManager" inherit-compiler-output="true"> - <exclude-output /> - <content url="file://$MODULE_DIR$" /> - <orderEntry type="sourceFolder" forTests="false" /> - </component> -</module> \ No newline at end of file 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/business/CategoryController.java b/server/src/main/java/com/doumee/api/business/CategoryController.java index 1a46aa7..43b93f4 100644 --- a/server/src/main/java/com/doumee/api/business/CategoryController.java +++ b/server/src/main/java/com/doumee/api/business/CategoryController.java @@ -9,14 +9,17 @@ import com.doumee.core.model.PageWrap; import com.doumee.core.model.PageData; import com.doumee.dao.business.model.Category; +import com.doumee.dao.business.vo.CategoryDcaProblemDto; import com.doumee.service.business.CategoryService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.apache.shiro.authz.annotation.RequiresPermissions; +import io.swagger.annotations.*; +import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.util.List; /** @@ -95,6 +98,13 @@ public void exportExcel (@RequestBody PageWrap<Category> pageWrap, HttpServletResponse response) { ExcelExporter.build(Category.class).export(categoryService.findPage(pageWrap).getRecords(), "鍒嗙被淇℃伅琛�", response); } + @ApiOperation("瀵煎嚭DCAExcel") + @PostMapping("/exportDcaExcel") + @EncryptionReq + @RequiresPermissions("business:category:exportExcel") + public void exportDcaExcel (@RequestBody Category pageWrap, HttpServletResponse response) { + ExcelExporter.build(CategoryDcaProblemDto.class).export(categoryService.findListForDca(pageWrap), "DCA浜嬩欢涓婚鍜岃瀵熼」閰嶇疆_"+System.currentTimeMillis(), response); + } @ApiOperation("鏍规嵁ID鏌ヨ") @GetMapping("/{id}") @@ -114,5 +124,13 @@ public ApiResponse<List<Category>> tree (@RequestBody Category param){ return ApiResponse.success(categoryService.treeList(param)); } - + @ApiOperation(value = "DCA涓婚鍜岃瀵熼」淇℃伅瀵煎叆" ,notes = "淇濆崟鐢宠") + @PostMapping("/importDcaExcel") + @ApiImplicitParams({ + @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class), + }) + @RequiresPermissions("business:member:create") + public ApiResponse<String> imporimportDcaExceltExcel (@ApiParam(value = "file") MultipartFile file ) { + return ApiResponse.success(categoryService.importDcaBatch(file)); + } } diff --git a/server/src/main/java/com/doumee/api/business/CompanyController.java b/server/src/main/java/com/doumee/api/business/CompanyController.java index c1a27d5..f9e1292 100644 --- a/server/src/main/java/com/doumee/api/business/CompanyController.java +++ b/server/src/main/java/com/doumee/api/business/CompanyController.java @@ -58,6 +58,22 @@ public ApiResponse<List<Company>> tree (@RequestBody Company company){ return ApiResponse.success(companyService.companyTree()); } + @ApiOperation("鏍规嵁鐖剁骇鏌ヨ闆嗗悎") + @PostMapping("/list") + @EncryptionResp + @EncryptionReq + @RequiresPermissions("business:company:query") + public ApiResponse<List<Company>> list (@RequestBody Company company){ + return ApiResponse.success(companyService.findList(company)); + } + @ApiOperation("缁勭粐鏍戞煡璇�") + @PostMapping("/treeWithMember") + @EncryptionResp + @EncryptionReq + @RequiresPermissions("business:company:query") + public ApiResponse<List<Company>> treeWithMember (@RequestBody Company company){ + return ApiResponse.success(companyService.companyTreeWithMember ()); + } @ApiOperation("鏍规嵁ID鍒犻櫎") 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 f288004..2f51442 100644 --- a/server/src/main/java/com/doumee/api/common/PublicCloudController.java +++ b/server/src/main/java/com/doumee/api/common/PublicCloudController.java @@ -10,9 +10,13 @@ import com.doumee.core.constants.Constants; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; +import com.doumee.core.model.ApiResponse; import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.FtpUtil; import com.doumee.core.utils.azure.AzureBlobUtil; +import com.doumee.core.utils.qiyeweixin.QywxUtil; +import com.doumee.core.utils.qiyeweixin.model.response.QywxUploadMediaResponse; +import com.doumee.dao.business.dto.WebQwUploadDto; import com.doumee.dao.system.model.SystemDictData; import com.doumee.service.common.EmailService; import io.swagger.annotations.Api; @@ -24,6 +28,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.multipart.MultipartRequest; import org.springframework.web.multipart.commons.CommonsMultipartResolver; import javax.servlet.http.HttpServletRequest; @@ -48,13 +53,79 @@ 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 + public ApiResponse<Map<String, Object>> testQwImg( @RequestParam(required = false) String imgurl ) throws Exception { + QywxUploadMediaResponse r = QywxUtil.uploadMedia(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(),"image",imgurl); + if(r!=null && r.getMedia_id()!=null){ + String folder = systemDictDataBiz.queryByCode(Constants.FTP,Constants.WORKORDER_FILE_PATH).getCode(); + String prefixPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode(); + Map<String, Object> context = new HashMap<>(); + try { + initUploadTool(); + context.put("success", true); + context.put("code", 200); + context.put("errno",0); + JSONArray jsonArray = new JSONArray(); + Integer index = Constants.ONE; + //鑾峰緱姣忎竴涓枃浠� + String endType = ".jpg"; + String originname = UUID.randomUUID().toString()+endType; + InputStream is = QywxUtil.getMediaInputstream(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(),r.getMedia_id()); + if(is == null){ + context.put("code", 0); + context.put("message", "涓婁紶澶辫触"); + context.put("errno",0); + }else{ + String date = DateUtil.getNowShortDate(); + String fName = date + "/" + originname; + String fileName = folder + fName; + boolean r1 =false; + if(StringUtils.equals(Constants.uploadType.blob,uploadType)){ + r1 = azureBlobUtil.uploadFileWithResponseAndSize( fileName,is,null);//涓婁紶 + }else{ + r1 = ftp.uploadInputstreamBatch(is, fileName, true,index); + } + if (r1) { + JSONObject fileJSON = new JSONObject(); + fileJSON.put("url", prefixPath + fileName); + fileJSON.put("imgaddr", fName); + fileJSON.put("imgname", fileName); + fileJSON.put("originname", originname); + jsonArray.add(fileJSON); + } + } + context.put("data",jsonArray); + } catch (Exception e) { + log.error("銆愪笂浼燜TP澶辫触銆�======================"+e.getMessage()); + context.put("code", 0); + context.put("message", "涓婁紶澶辫触"); + context.put("errno",0); + } + return ApiResponse.success(context); + } + return ApiResponse.failed("涓婁紶澶辫触"+r!=null?JSONObject.toJSONString(r):""); + + } @ApiOperation(value = "娴嬭瘯閭欢鍙戦��") @RequestMapping(method= RequestMethod.POST,value="/testEmail") @ResponseBody @@ -73,9 +144,18 @@ @ApiOperation(value = "鎵归噺涓婁紶鏂囦欢鍒癋TP") @RequestMapping(method= RequestMethod.POST,value="/uploadBatch") @ResponseBody - public void uploadBatch(@RequestParam("files") MultipartFile[] fileList,HttpServletRequest request, HttpServletResponse response, String folder) throws Exception { + public void uploadBatch(MultipartRequest request, HttpServletResponse response, String folder) throws Exception { if(Objects.isNull(folder)){ throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + Set<String> setList = request.getMultiFileMap().keySet(); + if(Objects.isNull(setList)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + List<MultipartFile> fileList = new ArrayList<>(); + for(String str:setList){ + List<MultipartFile> fl = request.getMultiFileMap().get(str); + fileList.addAll(fl); } if(Objects.isNull(fileList)){ throw new BusinessException(ResponseStatus.BAD_REQUEST); @@ -94,13 +174,14 @@ context.put("success", true); context.put("code", 200); context.put("errno",0); - JSONArray jsonArray = new JSONArray(); - if (fileList.length > 0) { + JSONArray jsonArray = new JSONArray(); + if (fileList.size() > 0) { //閬嶅巻鏂囦欢鍒楄〃 Integer index = Constants.ONE; for (MultipartFile file :fileList) { //鑾峰緱姣忎竴涓枃浠� String originname = file.getOriginalFilename(); + log.error("銆愪笂浼燜TP鎴愬姛銆�=============寮�濮�========="+index+"===="+originname); InputStream is = file.getInputStream(); String endType = originname.substring(originname.lastIndexOf("."), originname.length()); String date = DateUtil.getNowShortDate(); @@ -108,9 +189,9 @@ 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.length),index); + r = ftp.uploadInputstreamBatch(is, fileName, Constants.equalsInteger(index ,fileList.size()),index); } if (r) { JSONObject fileJSON = new JSONObject(); @@ -120,6 +201,7 @@ fileJSON.put("originname", originname); jsonArray.add(fileJSON); } + log.error("銆愪笂浼燜TP鎴愬姛銆�=============缁撴潫========="+index+"====="+r+"===="+fName); index = index + 1; } context.put("data",jsonArray); @@ -136,6 +218,72 @@ writerJson(response, context); return; } + @ApiOperation(value = "鎵归噺浠庝紒涓氫复鏃剁礌鏉愬簱涓婁紶鏂囦欢鍒版枃浠舵湇鍔″櫒") + @PostMapping(value="/uploadBatchFromWx") + @ResponseBody + public void uploadBatchFromWx(@RequestBody WebQwUploadDto param, HttpServletResponse response) throws Exception { + if(Objects.isNull(param.getFolder()) || param.getMediaIds()==null || param.getMediaIds().size()==0){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + SystemDictData folderData = systemDictDataBiz.queryByCode(Constants.FTP,param.getFolder()); + if(Objects.isNull(folderData)||StringUtils.isBlank(folderData.getCode())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐩爣鏂囦欢澶归敊璇�"); + } + String folder = systemDictDataBiz.queryByCode(Constants.FTP,param.getFolder()).getCode(); + String prefixPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode(); + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/html;charset=UTF-8"); + Map<String, Object> context = new HashMap<>(); + try { + initUploadTool(); + context.put("success", true); + context.put("code", 200); + context.put("errno",0); + JSONArray jsonArray = new JSONArray(); + Integer index = Constants.ONE; + for (String media : param.getMediaIds()) { + //鑾峰緱姣忎竴涓枃浠� + String endType = ".jpg"; + String originname = UUID.randomUUID().toString()+endType; + 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; + } + log.error("浼佷笟寰俊绱犳潗涓嬭浇鎴愬姛锛�========="+media); + String date = DateUtil.getNowShortDate(); + String fName = date + "/" + originname; + String fileName = folder + fName; + boolean r =false; + if(StringUtils.equals(Constants.uploadType.blob,uploadType)){ + r = azureBlobUtil.uploadFileWithResponseAndSize( fileName, (InputStream) map.get("data"),(Integer)map.get("size"));//涓婁紶 + }else{ + r = ftp.uploadInputstreamBatch( (InputStream) map.get("data"), fileName, Constants.equalsInteger(index ,param.getMediaIds().size()),index); + } + if (r) { + JSONObject fileJSON = new JSONObject(); + fileJSON.put("url", prefixPath + fileName); + fileJSON.put("imgaddr", fName); + fileJSON.put("imgname", fileName); + fileJSON.put("originname", originname); + jsonArray.add(fileJSON); + } + index = index + 1; + } + context.put("data",jsonArray); + } catch (Exception e) { + log.error("銆愪笂浼燜TP澶辫触銆�======================"+e.getMessage()); + context.put("code", 0); + context.put("message", "涓婁紶澶辫触"); + context.put("errno",0); + writerJson(response, context); + return; + + } + writerJson(response, context); + return; + } + @ApiOperation(value = "鎵归噺涓婁紶鏂囦欢鍒癋TP") @RequestMapping(method= RequestMethod.POST,value="/uploadBatchOld") @ResponseBody @@ -178,7 +326,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); } @@ -211,10 +359,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){ @@ -266,7 +417,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/api/web/WebCategoryController.java b/server/src/main/java/com/doumee/api/web/WebCategoryController.java index 0c034c0..3880c8b 100644 --- a/server/src/main/java/com/doumee/api/web/WebCategoryController.java +++ b/server/src/main/java/com/doumee/api/web/WebCategoryController.java @@ -87,4 +87,12 @@ return ApiResponse.failed(ResponseStatus.SERVER_ERROR); } } + + +// @GetMapping("/dealjson") +// @ApiOperation("dealjson") +// public ApiResponse dealjson(){ +// categoryService.dealjson(); +// return ApiResponse.success(null); +// } } diff --git a/server/src/main/java/com/doumee/api/web/WebWorkOrderController.java b/server/src/main/java/com/doumee/api/web/WebWorkOrderController.java index 06ad2fc..b738729 100644 --- a/server/src/main/java/com/doumee/api/web/WebWorkOrderController.java +++ b/server/src/main/java/com/doumee/api/web/WebWorkOrderController.java @@ -4,6 +4,7 @@ import com.doumee.config.annotation.EncryptionReq; import com.doumee.config.annotation.EncryptionResp; import com.doumee.config.annotation.LoginRequired; +import com.doumee.core.annotation.pr.PreventRepeat; import com.doumee.core.constants.Constants; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; @@ -56,6 +57,7 @@ @LoginRequired @ApiOperation("椋庨櫓涓婃姤") @PostMapping("/create") + @PreventRepeat @EncryptionReq @EncryptionResp public ApiResponse create (@RequestBody Workorder workorder, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { @@ -111,6 +113,7 @@ @LoginRequired @ApiOperation("宸ュ崟鍏抽棴") @PostMapping("/closeWorkOrder") + @PreventRepeat @EncryptionReq @EncryptionResp public ApiResponse closeWorkOrder(@RequestBody CloseDTO closeDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { @@ -132,6 +135,7 @@ @LoginRequired @ApiOperation("宸ュ崟鎸囨淳") @PostMapping("/passOn") + @PreventRepeat @EncryptionReq @EncryptionResp public ApiResponse passOn(@RequestBody PassOnDTO passOnDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { @@ -152,6 +156,7 @@ @LoginRequired @ApiOperation("宸ュ崟鍌績") @GetMapping("/urge") + @PreventRepeat @EncryptionReq @EncryptionResp public ApiResponse urge(@RequestParam Integer workorderId, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { @@ -169,6 +174,7 @@ @LoginRequired @ApiOperation("宸ュ崟鎶勯��") + @PreventRepeat @PostMapping("/sendCopy") @EncryptionReq @EncryptionResp 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 6a4f965..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 @@ -11,6 +11,7 @@ import com.doumee.core.job.JobContext; import com.doumee.core.job.JobParam; import com.doumee.core.utils.Utils; +import com.doumee.dao.system.SystemJobLogMapper; import com.doumee.dao.system.SystemJobMapper; import com.doumee.dao.system.SystemJobSnippetMapper; import com.doumee.dao.system.model.SystemJob; @@ -32,7 +33,7 @@ public class SystemJobTriggerBizImpl implements SystemJobTriggerBiz { @Autowired - private SystemJobLogService systemJobLogService; + private SystemJobLogMapper systemJobLogMapper; @Autowired private SystemJobMapper systemJobMapper; @@ -75,7 +76,7 @@ systemJobLog.setStatus(Constants.Job.LogStatus.NONE.getCode()); systemJobLog.setTriggerType(dto.getTriggerType()); systemJobLog.setRemark("浠诲姟姝e湪鎵ц涓�"); - systemJobLogService.create(systemJobLog); + systemJobLogMapper.insert(systemJobLog); } // 浠诲姟鍔犻攣锛岄槻姝㈠鏈嶅姟鍣ㄩ噸澶嶆墽琛� this.lock(job); @@ -132,7 +133,7 @@ if (job != null && job.getWithLog() && systemJobLog.getId() != null) { systemJobLog.setRunTimeEnd(new Date()); systemJobLog.setRunSpendTime(Integer.valueOf("" + (systemJobLog.getRunTimeEnd().getTime() - systemJobLog.getRunTimeStart().getTime()))); - systemJobLogService.updateById(systemJobLog); + systemJobLogMapper.updateById(systemJobLog); } // 浠诲姟瑙i攣 if (locked) { @@ -205,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()); @@ -235,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/Jwt/JwtTokenUtil.java b/server/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java index 54212fc..90ead78 100644 --- a/server/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java +++ b/server/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java @@ -22,8 +22,7 @@ @Component @Slf4j public class JwtTokenUtil { - - public static final String HEADER_KEY = "web_token"; + public static final String HEADER_KEY = "web-token"; // @Autowired // private RedisTemplate<String,Object> redisTemplate; diff --git a/server/src/main/java/com/doumee/config/mybatis/DmStdOutImpl.java b/server/src/main/java/com/doumee/config/mybatis/DmStdOutImpl.java index bab3e2e..1f5d305 100644 --- a/server/src/main/java/com/doumee/config/mybatis/DmStdOutImpl.java +++ b/server/src/main/java/com/doumee/config/mybatis/DmStdOutImpl.java @@ -5,9 +5,22 @@ @Slf4j public class DmStdOutImpl extends StdOutImpl { + private Boolean isOff = false; + + public Boolean isOff() { + return isOff; + } + + public void setOff(Boolean off) { + isOff = off; + } public DmStdOutImpl(String clazz) { super(clazz); + } + public DmStdOutImpl(String clazz,Boolean off) { + super(clazz); + this.isOff = off; } public boolean isDebugEnabled() { @@ -30,6 +43,9 @@ } public void debug(String s) { + if(isOff!=null && isOff()){ + return; + } log.info(s); // System.out.println(s); } 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 ac540c8..99261e0 100644 --- a/server/src/main/java/com/doumee/config/mybatis/MyBatisInterceptor.java +++ b/server/src/main/java/com/doumee/config/mybatis/MyBatisInterceptor.java @@ -4,6 +4,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.binding.MapperMethod; import org.apache.ibatis.executor.Executor; +import org.apache.ibatis.logging.Log; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.SqlCommandType; import org.apache.ibatis.plugin.*; @@ -11,7 +12,9 @@ import org.springframework.stereotype.Component; import org.springframework.util.ReflectionUtils; +import java.lang.reflect.Constructor; import java.lang.reflect.Field; +import java.lang.reflect.Method; import java.util.*; /** @@ -41,6 +44,7 @@ MappedStatement mappedStatement = (MappedStatement) invocation.getArgs()[0]; SqlCommandType sqlCommandType = mappedStatement.getSqlCommandType(); Object target = invocation.getArgs()[1]; + if(target instanceof MapperMethod.ParamMap) { try { target = ((MapperMethod.ParamMap) target).get("param1"); @@ -91,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; } /** @@ -112,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 a3daead..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 ; @@ -57,7 +61,9 @@ */ interface CacheKey { } - + public interface RedisKeys { + public static final String IMPORTING_CATEGORY = "IMPORTING_CATEGORY"; + } /** * 鎿嶄綔绫诲瀷锛岀敤浜庡仛鎺ュ彛楠岃瘉鍒嗙粍 */ @@ -226,31 +232,41 @@ public enum WorkOrderStatus{ - waitConfirm( 0, "寰呭垎閰峎TS","{title}涓婃姤",""), - waitAllocation(1, "寰呭垎閰嶄换鍔�","寰呭垎閰嶄换鍔�",""), - waitDeal(2, "寰呭鐞�","寰呭鐞�",""), - sheClose(3, "宸茶В鍐�","SHE宸插叧闂�",""), - wtsClose(4, "宸茶В鍐�","WTS宸插叧闂�",""), - close(5, "宸茶В鍐�","宸茶В鍐�",""), - urge (6, "鍌績","","") + waitConfirm( 0, "寰呭垎閰峎TS","{title}涓婃姤","","寰呭垎閰峎TS" ), + waitAllocation(1, "寰呭垎閰嶄换鍔�","寰呭垎閰嶄换鍔�","","寰呭垎閰嶄换鍔�"), + waitDeal(2, "寰呭鐞�","寰呭鐞�","","寰呭伐绋嬪笀澶勭悊"), + sheClose(3, "宸茶В鍐�","SHE宸插叧闂�","","SHE宸插叧闂�"), + wtsClose(4, "宸茶В鍐�","WTS宸插叧闂�","","WTS宸插叧闂�"), + close(5, "宸茶В鍐�","宸茶В鍐�","","宸ョ▼甯堝叧闂�"), + urge (6, "鍌績","","","") ; private int status; private String statusInfo; + private String statusName; private String logTitle; private String noticeContent; // 鏋勯�犳柟娉� - WorkOrderStatus(int status, String statusInfo,String logTitle,String noticeContent ) { + WorkOrderStatus(int status, String statusInfo,String logTitle,String noticeContent,String statusName ) { this.status = status; this.statusInfo = statusInfo; this.logTitle = logTitle; this.noticeContent = noticeContent; + this.statusName = statusName; } public static String getName(int index) { for (WorkOrderStatus c : WorkOrderStatus.values()) { if (c.getKey() == index) { return c.statusInfo; + } + } + return null; + } + public static String getStatusName(int index) { + for (WorkOrderStatus c : WorkOrderStatus.values()) { + if (c.getKey() == index) { + return c.statusName; } } return null; @@ -264,6 +280,22 @@ this.status = status; } + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + public String getStatusInfo() { return statusInfo; } diff --git a/server/src/main/java/com/doumee/core/utils/FtpUtil.java b/server/src/main/java/com/doumee/core/utils/FtpUtil.java index 8fbf0b0..72d0cc8 100644 --- a/server/src/main/java/com/doumee/core/utils/FtpUtil.java +++ b/server/src/main/java/com/doumee/core/utils/FtpUtil.java @@ -469,7 +469,7 @@ if (ftpClient.makeDirectory(subDirectory)) { ftpClient.changeWorkingDirectory(subDirectory); } else { - System.out.println("鍒涘缓鐩綍澶辫触"); + log.error("鍒涘缓鐩綍澶辫触subDirectory=锛�"+subDirectory); return "2"; // return UploadStatus.Create_Directory_Fail; } 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 2692602..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,9 +1,9 @@ package com.doumee.core.utils; +import lombok.extern.slf4j.Slf4j; + import javax.net.ssl.*; -import java.io.ByteArrayOutputStream; -import java.io.InputStream; -import java.io.OutputStream; +import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.security.KeyManagementException; @@ -11,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) { @@ -28,7 +32,80 @@ return connectionHttp(url, "POST", data, "application/json"); } } + public static String uploadTempMedia(String urlString ,String fileUrl){ + HttpsURLConnection conn= null; + try { + String fileName = fileUrl.substring(fileUrl.lastIndexOf("/") + 1); + // 鑾峰彇缃戠粶鍥剧墖 + URL mediaUrl = new URL(fileUrl); + HttpURLConnection meidaConn = (HttpURLConnection) mediaUrl.openConnection(); + meidaConn.setDoOutput(true); + meidaConn.setRequestMethod("GET"); + String result = null; + URL url=new URL(urlString); + conn=(HttpsURLConnection) url.openConnection(); + conn.setRequestMethod("POST");//浠OST鏂瑰紡鎻愪氦琛ㄥ崟 + conn.setDoInput(true); + conn.setDoOutput(true); + conn.setUseCaches(false);//POST鏂瑰紡涓嶈兘浣跨敤缂撳瓨 + //璁剧疆璇锋眰澶翠俊鎭� + conn.setRequestProperty("Connection", "Keep-Alive"); + conn.setRequestProperty("Charset", "UTF-8"); + //璁剧疆杈圭晫 + String BOUNDARY="----------"+System.currentTimeMillis(); + conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY); + //璇锋眰姝f枃淇℃伅 + //绗竴閮ㄥ垎 + StringBuilder sb=new StringBuilder(); + sb.append("--");//蹇呴』澶氫袱鏉¢亾 + sb.append(BOUNDARY); + sb.append("\r\n"); + sb.append("Content-Disposition: form-data;name=\"media\"; filename=\"" + fileName+"\"\r\n"); + + sb.append("Content-Type:application/octet-stream\r\n\r\n"); + System.out.println("sb:"+sb); + + //鑾峰緱杈撳嚭娴� + OutputStream out=new DataOutputStream(conn.getOutputStream()); + //杈撳嚭琛ㄥご + out.write(sb.toString().getBytes("UTF-8")); + //鏂囦欢姝f枃閮ㄥ垎 + //鎶婃枃浠朵互娴佺殑鏂瑰紡 鎺ㄩ�侀亾URL涓� + DataInputStream din=new DataInputStream(meidaConn.getInputStream()); + int bytes=0; + byte[] buffer=new byte[1024]; + while((bytes=din.read(buffer))!=-1){ + out.write(buffer,0,bytes); + } + din.close(); + //缁撳熬閮ㄥ垎 + byte[] foot=("\r\n--" + BOUNDARY + "--\r\n").getBytes("UTF-8");//瀹氫箟鏁版嵁鏈�鍚庡垎鍓茬嚎 + out.write(foot); + out.flush(); + out.close(); + if(HttpsURLConnection.HTTP_OK==conn.getResponseCode()){ + InputStream is = conn.getInputStream(); + byte[] b = new byte[4096]; + ByteArrayOutputStream baos = new ByteArrayOutputStream(b.length); + int len; + while ((len = is.read(b)) != -1) { + baos.write(b, 0, len); + } + is.close(); + return baos.toString("utf-8"); + } + return result; + } catch (Exception e) { + e.printStackTrace(); + } finally { + if(conn != null){ + conn.disconnect(); + } + } + return null; + + } public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL){ HttpsURLConnection connection = null; try { @@ -92,29 +169,36 @@ try { URL _url = new URL(url); connection = (HttpURLConnection) _url.openConnection(); - connection.setRequestMethod(method); + System.out.println(connection.getContentLength()); connection.setDoOutput(true); - connection.setDoInput(true); - connection.setUseCaches(false); - if(contentType != null){ - connection.setRequestProperty("Content-Type", contentType); - } - connection.connect(); - if(data != null){ - OutputStream outputStream = connection.getOutputStream(); - outputStream.write(data.getBytes("utf-8")); - outputStream.close(); - } - int responseCode = connection.getResponseCode(); - if (responseCode == HttpsURLConnection.HTTP_OK) { - return connection.getInputStream(); - } + connection.setRequestMethod("GET"); + return connection.getInputStream(); } catch (Exception e) { e.printStackTrace(); - } finally { - if(connection != null){ - connection.disconnect(); + } + 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; } 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 b8ffc47..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}","鑾峰彇閮ㄩ棬淇℃伅"}; @@ -19,6 +19,8 @@ //鑾峰彇閮ㄩ棬鎴愬憳,access_token=璋冪敤鎺ュ彛鍑瘉,department_id=鑾峰彇鐨勯儴闂╥d,fetch_child= 鏄惁閫掑綊鑾峰彇瀛愰儴闂ㄤ笅闈㈢殑鎴愬憳锛�1-閫掑綊鑾峰彇锛�0-鍙幏鍙栨湰閮ㄩ棬 public final static String[] GET_DEPARTMENT_SIMPLE_LIST = new String[]{"/cgi-bin/user/simplelist?access_token=${accesstoken}&department_id=${departmentId}","鑾峰彇閮ㄩ棬鎴愬憳"}; public final static String[] GET_DEPARTMENT_USER_LIST = new String[]{"/cgi-bin/user/list?access_token=${accesstoken}&department_id=${departmentId}","鑾峰彇閮ㄩ棬鎴愬憳"}; + public final static String[] GET_MEDIA = new String[]{"/cgi-bin/media/get?access_token=${accesstoken}&media_id=${media_id}","鑾峰彇涓存椂绱犳潗"}; + public final static String[] UPLOAD_TEMP_MEDIA = new String[]{"/cgi-bin/media/upload?access_token=${accesstoken}&type=${type}","涓婁紶涓存椂绱犳潗"}; //鑾峰彇鎴愬憳璇︽儏,access_token=璋冪敤鎺ュ彛鍑瘉,userid=鎴愬憳UserID public final static String[] GET_USER_DETAIL =new String[]{ "/cgi-bin/user/get?access_token=${accesstoken}&userid=${id}","鑾峰彇鎴愬憳璇︽儏"}; //鍙戦�佸簲鐢ㄦ秷鎭�,access_token=璋冪敤鎺ュ彛鍑瘉 POST璇锋眰锛� 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 36325d6..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; @@ -13,7 +14,9 @@ import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; +import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -21,6 +24,7 @@ @Component @Slf4j +@Data public class QywxUtil { private static JSONObject json = new JSONObject(); @@ -34,6 +38,8 @@ @PostConstruct private void init() { qyUtil = this; + System.out.println(qyUtil.qiweiUrl); + System.out.println(qyUtil.getQiweiUrl()); // QywxUtil.qiweiUrl = serviceurl; } @@ -57,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(); } @@ -87,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; @@ -112,12 +118,57 @@ return null; } + public static InputStream getMediaInputstream(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); + return HttpsUtil.connectionInputsteam(url,"GET",null,null); + }catch (Exception e){ + e.printStackTrace(); + log.error("浼佷笟寰俊涓存椂绱犳潗鑾峰彇error=========="+e.getMessage()); + } + + 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; + } + return null; + } + + /** + * + * @param token + * @param type 濯掍綋鏂囦欢绫诲瀷锛屽垎鍒湁鍥剧墖锛坕mage锛夈�佽闊筹紙voice锛夈�佽棰戯紙video锛夛紝鏅�氭枃浠讹紙file锛� + * @return + */ + public static QywxUploadMediaResponse uploadMedia(String token,String type,String imgurl) { + String[] interfaceUrl = QywxConstant.UPLOAD_TEMP_MEDIA; + String url = interfaceUrl[0].replace("${accesstoken}",token).replace("${type}",type); + QywxUploadMediaResponse response = sendHttpRequestMultifile(url,interfaceUrl[1],imgurl + ,new TypeReference<QywxUploadMediaResponse>(){}); + if(response !=null && response.getErrcode()!=null && response.getErrcode() ==0){ return response; } return null; @@ -156,12 +207,12 @@ * @param <T> */ public static <T> QywxBaseResponse<T> sendHttpRequest(String url, String name, String param, TypeReference<QywxBaseResponse<T>> typeReference){ - log.info("銆�"+name+"銆�================寮�濮�===="+ 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; @@ -172,13 +223,51 @@ } 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> 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.postJson(qyUtil.qiweiUrl+url,param); + 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+"銆�================寮�濮�===="+qyUtil.qiweiUrl+url+"\nparam==========================:"+ imgUrl); + if ( StringUtils.isNotBlank(url)) { + String res = null; + try { + res = HttpsUtil.uploadTempMedia (qyUtil.qiweiUrl+url,imgUrl); + log.info("浠庝紒寰帴鍙�:{}----涓婁紶涓存椂绱犳潗缁撴灉:{}",url,res); + JSONObject jsonObject = JSONObject.parseObject(res); + T result = JSONObject.parseObject(res, typeReference.getType()); + return result; + }catch (Exception e){ + e.printStackTrace(); + log.error("銆�"+name+"銆�================澶辫触===="+ imgUrl); + } + } + return null; + } + 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<>(); + 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/core/utils/qiyeweixin/model/response/QywxUploadMediaResponse.java b/server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxUploadMediaResponse.java new file mode 100644 index 0000000..42d01fb --- /dev/null +++ b/server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxUploadMediaResponse.java @@ -0,0 +1,22 @@ +package com.doumee.core.utils.qiyeweixin.model.response; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author 姹熻箘韫� + * @date 2023/11/23 14:03 + */ +@Data +@ApiModel("浼佷笟寰俊涓婁紶绱犳潗杩斿洖鍙傛暟") +public class QywxUploadMediaResponse extends QywxBaseSingleResponse { + @ApiModelProperty(value = "濯掍綋鏂囦欢绫诲瀷锛屽垎鍒湁鍥剧墖锛坕mage锛夈�佽闊筹紙voice锛夈�佽棰戯紙video锛夛紝鏅�氭枃浠�(file)") + private String type;// + @ApiModelProperty(value = "濯掍綋鏂囦欢涓婁紶鍚庤幏鍙栫殑鍞竴鏍囪瘑锛�3澶╁唴鏈夋晥") + private String media_id ;// + @ApiModelProperty(value = "濯掍綋鏂囦欢涓婁紶鏃堕棿鎴�") + private String created_at;// +} diff --git a/server/src/main/java/com/doumee/dao/business/CompanyMemberMapper.java b/server/src/main/java/com/doumee/dao/business/CompanyMemberMapper.java index 4a669e7..2593b44 100644 --- a/server/src/main/java/com/doumee/dao/business/CompanyMemberMapper.java +++ b/server/src/main/java/com/doumee/dao/business/CompanyMemberMapper.java @@ -2,11 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.CompanyMember; +import com.github.yulichang.base.MPJBaseMapper; /** * @author 姹熻箘韫� * @since 2025/04/03 16:30 */ -public interface CompanyMemberMapper extends BaseMapper<CompanyMember> { +public interface CompanyMemberMapper extends MPJBaseMapper<CompanyMember> { } diff --git a/server/src/main/java/com/doumee/dao/business/dto/WebQwUploadDto.java b/server/src/main/java/com/doumee/dao/business/dto/WebQwUploadDto.java new file mode 100644 index 0000000..58a5670 --- /dev/null +++ b/server/src/main/java/com/doumee/dao/business/dto/WebQwUploadDto.java @@ -0,0 +1,23 @@ +package com.doumee.dao.business.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * Created by IntelliJ IDEA. + * + * @Author : Rk + * @create 2023/7/13 10:40 + */ +@Data +@ApiModel("浼佷笟寰俊绱犳潗涓婁紶鍏ュ弬") +public class WebQwUploadDto { + @ApiModelProperty(value = "绱犳潗缂栫爜") + private List<String> mediaIds; + @ApiModelProperty(value = "绱犳潗瀛樻斁鐩綍瀛楀吀缂栫爜") + private String folder; + +} diff --git a/server/src/main/java/com/doumee/dao/business/model/Category.java b/server/src/main/java/com/doumee/dao/business/model/Category.java index 9f9f611..b6547f5 100644 --- a/server/src/main/java/com/doumee/dao/business/model/Category.java +++ b/server/src/main/java/com/doumee/dao/business/model/Category.java @@ -71,6 +71,9 @@ @ApiModelProperty(value = "涓婄骇鍚嶇О") @TableField(exist = false) private String parentName; + @ApiModelProperty(value = "涓婁笂绾у悕绉�") + @TableField(exist = false) + private String rootName; @ApiModelProperty(value = "鎿嶄綔浜哄悕瀛�") @TableField(exist = false) private String editorName; @@ -83,4 +86,8 @@ @ApiModelProperty(value = "瀛愰泦闆嗗悎") @TableField(exist = false) private List<Category> childList; + + @ApiModelProperty(value = "瀛愰泦闆嗗悎(鎵归噺瀵煎叆瀵规瘮涓嬮泦锛�") + @TableField(exist = false) + private List<Category> childMatchList; } 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..10c6e54 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,17 @@ @ApiModelProperty(value = "鏄惁涓洪儴闂ㄨ礋璐d汉0-鍚︼紱1-鏄�", example = "1") @TableField(exist = false) private Integer isLeader; + @ApiModelProperty(value = "鏄惁鍖呭惈瀛愯彍鍗�") + @TableField(exist = false) + private Boolean hasChildren; + @ApiModelProperty(value = "瀵硅薄绫诲瀷 0閮ㄩ棬 1鍛樺伐") + @TableField(exist = false) + private int objType; + @ApiModelProperty(value = "浜哄憳缂栫爜锛堝叧鑱攎ember", example = "1") + @TableField(exist = false) + private Integer memberId; + @ApiModelProperty(value = "涓嬬骇閮ㄩ棬鏁伴噺", example = "1") + @TableField(exist = false) + private Integer childNum; } diff --git a/server/src/main/java/com/doumee/dao/business/model/CompanyMember.java b/server/src/main/java/com/doumee/dao/business/model/CompanyMember.java index 8df1158..3b58529 100644 --- a/server/src/main/java/com/doumee/dao/business/model/CompanyMember.java +++ b/server/src/main/java/com/doumee/dao/business/model/CompanyMember.java @@ -1,5 +1,6 @@ package com.doumee.dao.business.model; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotation.IdType; @@ -53,8 +54,11 @@ @ApiModelProperty(value = "浜哄憳缂栫爜锛堝叧鑱攎ember", example = "1") private Integer memberId; - @ApiModelProperty(value = "鏄惁涓洪儴闂ㄨ礋璐d汉0-鍚︼紱1-鏄�", example = "1") private Integer isLeader; + @ApiModelProperty(value = "浜哄憳濮撳悕", example = "1") + @TableField(exist = false) + private String memberName; + } 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 f257b97..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 @@ -9,6 +9,7 @@ import lombok.Data; import java.util.Date; +import java.util.List; /** * 璐d换浜轰俊鎭〃 @@ -84,4 +85,19 @@ @ApiModelProperty(value = "鍛樺伐閭") @TableField(exist = false) private String memberEmail; + @ApiModelProperty(value = "鍛樺伐浼佸井ID") + @TableField(exist = false) + private String memberQwId; + @ApiModelProperty(value = "鍛樺伐缂栫爜闆嗗悎") + @TableField(exist = false) + private List<Integer> memberIds; + @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/model/Workorder.java b/server/src/main/java/com/doumee/dao/business/model/Workorder.java index 6067883..5de1b32 100644 --- a/server/src/main/java/com/doumee/dao/business/model/Workorder.java +++ b/server/src/main/java/com/doumee/dao/business/model/Workorder.java @@ -162,6 +162,9 @@ @ApiModelProperty(value = "涓嬫鍌績鏃堕棿") private Date urgeDate; + @ApiModelProperty(value = "鍙鐞哠HE浜哄憳浼佸井涓婚敭") + private String sheDealUserQwIds; + @ApiModelProperty("闄勪欢淇℃伅") @TableField(exist = false) private List<Multifile> multifileList; @@ -218,6 +221,9 @@ @ApiModelProperty(value = "瑙e喅鎯呭喌锛堟煡璇娇鐢級锛�0=鍚︼紱1=鏄紱",hidden = true) @TableField(exist = false) private Integer dealStatus; + @ApiModelProperty(value = "鐘舵�佹弿杩帮紱",hidden = true) + @TableField(exist = false) + private String statusName; @ApiModelProperty(value = "缁熻鏁帮紱",hidden = true) @TableField(exist = false) private Long num; diff --git a/server/src/main/java/com/doumee/dao/business/vo/CategoryDcaProblemDto.java b/server/src/main/java/com/doumee/dao/business/vo/CategoryDcaProblemDto.java new file mode 100644 index 0000000..1f2522f --- /dev/null +++ b/server/src/main/java/com/doumee/dao/business/vo/CategoryDcaProblemDto.java @@ -0,0 +1,30 @@ +package com.doumee.dao.business.vo; + +import com.doumee.core.annotation.excel.ExcelColumn; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Created by IntelliJ IDEA. + * + * @Author : Rk + * @create 2023/7/13 10:40 + */ +@Data +@ApiModel("DCA涓婚瑙傚療椤瑰鍑轰俊鎭�") +public class CategoryDcaProblemDto { + @ApiModelProperty(value = "搴忓彿") + @ExcelColumn(name="搴忓彿",index =1 ,width = 4) + private Long index; + @ApiModelProperty(value = "涓�绾т富棰�") + @ExcelColumn(name="涓�绾ц瀵熶富棰�",index =2 ,width = 10) + private String parentName; + @ApiModelProperty("浜岀骇瑙傚療涓婚") + @ExcelColumn(name="浜岀骇瑙傚療涓婚",index =3,width = 10) + private String typeName; + @ApiModelProperty(value = "瑙傚療椤�" ) + @ExcelColumn(name="瑙傚療椤�",index =4,width = 40 ) + private String problem; + +} 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..c7e59e1 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 @@ -1,9 +1,14 @@ package com.doumee.dao.business.vo; +import com.doumee.core.constants.Constants; import com.doumee.dao.business.model.Company; +import com.doumee.dao.business.model.CompanyMember; +import com.doumee.dao.business.model.Member; import org.apache.commons.lang3.StringUtils; +import org.yaml.snakeyaml.scanner.Constant; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.Objects; @@ -17,6 +22,7 @@ // 淇濆瓨鍙備笌鏋勫缓鏍戝舰鐨勬墍鏈夋暟鎹紙閫氬父鏁版嵁搴撴煡璇㈢粨鏋滐級 public List<Company> nodeList = new ArrayList<>(); + public List<CompanyMember> memberList = new ArrayList<>(); public Integer origin = 0; //0鑷缓 1浼佸井 @@ -28,6 +34,11 @@ public CompanyTree(List<Company> nodeList, Integer origin){ this.nodeList = nodeList; this.origin = origin; + } + public CompanyTree(List<Company> nodeList, Integer origin, List<CompanyMember> memberList ){ + this.nodeList = nodeList; + this.origin = origin; + this.memberList=memberList; } @@ -42,6 +53,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 +68,15 @@ } } return rootNodeList; + } + + private Company findParentIdFromList(String qwParentId) { + for(Company c : nodeList){ + if(StringUtils.equals(c.getQwId(),qwParentId)){ + return c; + } + } + return null; } @@ -93,13 +116,43 @@ if (!Objects.isNull(treeNode.getParentId())&&treeNode.getParentId().equals(pNode.getId())) { // 鍐嶉�掑綊杩涜鍒ゆ柇褰撳墠鑺傜偣鐨勬儏鍐碉紝璋冪敤鑷韩鏂规硶 childTree.add(buildChildTree(treeNode)); + } } } // for寰幆缁撴潫锛屽嵆鑺傜偣涓嬫病鏈変换浣曡妭鐐癸紝鏍戝舰鏋勫缓缁撴潫锛岃缃爲缁撴灉 pNode.setChildList(childTree); + List<Company> memberList = getMemberNode(pNode.getId()); + if(memberList!=null && memberList.size()>0){ + if(pNode.getChildList() == null){ + pNode.setChildList(memberList); + }else{ + pNode.getChildList().addAll(memberList); + } + } + if( pNode.getChildList() == null || pNode.getChildList().size() ==0){ + pNode.setHasChildren(Boolean.FALSE); + }else{ + pNode.setHasChildren(Boolean.TRUE); + } return pNode; } + private List<Company> getMemberNode(Integer id) { + List<Company> companyList = new ArrayList<>(); + if(memberList!=null && memberList.size()>0){ + for(CompanyMember member :memberList){ + if(member.getCompanyId()!=null && Constants.equalsInteger(member.getCompanyId(),id)){ + Company com = new Company(); + com.setObjType(Constants.ONE); + com.setName(member.getMemberName()); + com.setMemberId(member.getMemberId()); + companyList.add(com); + } + } + } + return companyList; + } + } diff --git a/server/src/main/java/com/doumee/dao/business/vo/WorkorderDbhDto.java b/server/src/main/java/com/doumee/dao/business/vo/WorkorderDbhDto.java index afd73f1..50eb1bb 100644 --- a/server/src/main/java/com/doumee/dao/business/vo/WorkorderDbhDto.java +++ b/server/src/main/java/com/doumee/dao/business/vo/WorkorderDbhDto.java @@ -26,16 +26,19 @@ @ExcelColumn(name="椋庨櫓绫诲瀷",index =3,width = 6) private String typeName; @ApiModelProperty(value = "鐘舵�� 鐘舵�� 0寰呯‘璁�/寰呭垵瀹� 1寰呭垎閰�/寰呯粓瀹� 2寰呭鐞� 4WTS鍏抽棴 5宸ョ▼甯堝叧闂�", example = "1") - @ExcelColumn(name="鐘舵��",index =4,width = 4, valueMapping = "0=寰呭鐞�;1=澶勭悊涓�;2=澶勭悊涓�;3=宸插鐞�;4=宸插鐞�;5=宸插鐞�;") + @ExcelColumn(name="鐘舵��",index =4,width = 4, valueMapping = "0=澶勭悊涓�;1=澶勭悊涓�;2=澶勭悊涓�;3=宸插鐞�;4=宸插鐞�;5=宸插鐞�;") private Integer status; + @ApiModelProperty(value = "鐘舵�佹弿杩�") + @ExcelColumn(name="鐘舵�佹弿杩�",index =5,width = 8) + private String statusName; @ApiModelProperty(value = "涓婃姤鏃堕棿", example = "1") - @ExcelColumn(name="涓婃姤鏃堕棿",index =5 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10) + @ExcelColumn(name="涓婃姤鏃堕棿",index =6 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10) private Date submitDate; @ApiModelProperty(value = "鍙戠幇鏃堕棿", example = "1") - @ExcelColumn(name="鍙戠幇鏃堕棿",index =6 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10) + @ExcelColumn(name="鍙戠幇鏃堕棿",index =7 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10) private Date happenTime; @ApiModelProperty(value = "鍙戠敓鍦扮偣", example = "1") - @ExcelColumn(name="鍙戠敓鍦扮偣",index =7 ,width = 6) + @ExcelColumn(name="鍙戠敓鍦扮偣",index =8 ,width = 6) private String locationName; @ApiModelProperty(value = "椋庨櫓鎻忚堪", example = "1") @ExcelColumn(name="椋庨櫓鎻忚堪",index =11,width = 10) diff --git a/server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaChildDto.java b/server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaChildDto.java index 53ffd98..5571e59 100644 --- a/server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaChildDto.java +++ b/server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaChildDto.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.apache.ibatis.logging.nologging.NoLoggingImpl; +import org.apache.ibatis.logging.slf4j.Slf4jImpl; import java.util.Date; @@ -32,19 +34,23 @@ @ExcelColumn(name="涓嶇鍚堥」",index =5,width = 10) private String problemTitle; @ApiModelProperty(value = "鐘舵�� 鐘舵�� 0寰呯‘璁�/寰呭垵瀹� 1寰呭垎閰�/寰呯粓瀹� 2寰呭鐞� 4WTS鍏抽棴 5宸ョ▼甯堝叧闂�", example = "1") - @ExcelColumn(name="鐘舵��",index =6,width = 4, valueMapping = "0=寰呭鐞�;1=澶勭悊涓�;2=澶勭悊涓�;3=宸插鐞�;4=宸插鐞�;5=宸插鐞�;") + @ExcelColumn(name="鐘舵��",index =6,width = 4, valueMapping = "0=澶勭悊涓�;1=澶勭悊涓�;2=澶勭悊涓�;3=宸插鐞�;4=宸插鐞�;5=宸插鐞�;") private Integer status; + @ApiModelProperty(value = "鐘舵�佹弿杩�") + @ExcelColumn(name="鐘舵�佹弿杩�",index =7,width = 8) + private String statusName; @ApiModelProperty(value = "涓婃姤鏃堕棿", example = "1") - @ExcelColumn(name="涓婃姤鏃堕棿",index =7 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10) + @ExcelColumn(name="涓婃姤鏃堕棿",index =8 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10) private Date submitDate; @ApiModelProperty(value = "鍙戠幇鏃堕棿", example = "1") - @ExcelColumn(name="鍙戠幇鏃堕棿",index =8 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10) + @ExcelColumn(name="鍙戠幇鏃堕棿",index =9 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10) private Date happenTime; @ApiModelProperty(value = "浣嶇疆", example = "1") - @ExcelColumn(name="浣嶇疆",index =9 ,width = 6) + @ExcelColumn(name="浣嶇疆",index =10 ,width = 6) private String locationName; + @ApiModelProperty(value = "涓嶇鍚堝師鍥�", example = "1") - @ExcelColumn(name="涓嶇鍚堝師鍥�",index =10,width = 10) + @ExcelColumn(name="涓嶇鍚堝師鍥�",index =11,width = 10) private String eventInfo; @ApiModelProperty("鎻愭姤浜哄憳鍚嶇О") @ExcelColumn(name="涓婃姤鍛樺伐",index =12,width = 8) diff --git a/server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaDto.java b/server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaDto.java index 7fe4129..f647882 100644 --- a/server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaDto.java +++ b/server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaDto.java @@ -43,6 +43,9 @@ @ApiModelProperty("閫氱煡浜�") @ExcelColumn(name="閫氱煡浜�",index =10,width = 8) private String memberNames; + @ApiModelProperty(value = "鐘舵�� 鐘舵�� 0寰呯‘璁�/寰呭垵瀹� 1寰呭垎閰�/寰呯粓瀹� 2寰呭鐞� 4WTS鍏抽棴 5宸ョ▼甯堝叧闂�", example = "1") + @ExcelColumn(name="鐘舵��",index =11,width = 4, valueMapping = "0=澶勭悊涓�;1=澶勭悊涓�;2=澶勭悊涓�;3=宸插鐞�;4=宸插鐞�;5=宸插鐞�;") + private Integer status; @ApiModelProperty("鎻愭姤浜哄憳鍚嶇О") @ExcelColumn(name="涓婃姤鍛樺伐",index =12,width = 8) private String memberName; diff --git a/server/src/main/java/com/doumee/dao/business/vo/WorkorderSheDto.java b/server/src/main/java/com/doumee/dao/business/vo/WorkorderSheDto.java index 91168ed..6e7492f 100644 --- a/server/src/main/java/com/doumee/dao/business/vo/WorkorderSheDto.java +++ b/server/src/main/java/com/doumee/dao/business/vo/WorkorderSheDto.java @@ -38,7 +38,7 @@ @ExcelColumn(name="涓婃姤鏃堕棿",index =4 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10) private Date submitDate; @ApiModelProperty(value = "鐘舵�� 鐘舵�� 0寰呯‘璁�/寰呭垵瀹� 1寰呭垎閰�/寰呯粓瀹� 2寰呭鐞� 4WTS鍏抽棴 5宸ョ▼甯堝叧闂�", example = "1") - @ExcelColumn(name="鐘舵��",index =5,width = 4, valueMapping = "0=寰呭鐞�;1=澶勭悊涓�;2=澶勭悊涓�;3=宸插鐞�;4=宸插鐞�;5=宸插鐞�;") + @ExcelColumn(name="鐘舵��",index =5,width = 4, valueMapping = "0=澶勭悊涓�;1=澶勭悊涓�;2=澶勭悊涓�;3=宸插鐞�;4=宸插鐞�;5=宸插鐞�;") private Integer status; @ApiModelProperty(value = "鍙戠敓鍦扮偣") @ExcelColumn(name="鍙戠敓鍦扮偣",index =6,width = 8) 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/dao/web/vo/CategoryMapTree.java b/server/src/main/java/com/doumee/dao/web/vo/CategoryMapTree.java new file mode 100644 index 0000000..2ae3fde --- /dev/null +++ b/server/src/main/java/com/doumee/dao/web/vo/CategoryMapTree.java @@ -0,0 +1,88 @@ +package com.doumee.dao.web.vo; + +import com.doumee.core.constants.Constants; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * Created by IntelliJ IDEA. + * + * @Author : Rk + * @create 2025/4/8 9:19 + */ +public class CategoryMapTree { + + // 淇濆瓨鍙備笌鏋勫缓鏍戝舰鐨勬墍鏈夋暟鎹紙閫氬父鏁版嵁搴撴煡璇㈢粨鏋滐級 + public List<Map<String,Object>> nodeList = new ArrayList<>(); + + /** + * 鏋勯�犳柟娉� + * @param nodeList 灏嗘暟鎹泦鍚堣祴鍊肩粰nodeList锛屽嵆鎵�鏈夋暟鎹綔涓烘墍鏈夎妭鐐广�� + */ + public CategoryMapTree(List<Map<String,Object>> nodeList){ + this.nodeList = nodeList; + } + + + /** + * 鑾峰彇闇�鏋勫缓鐨勬墍鏈夋牴鑺傜偣锛堥《绾ц妭鐐癸級 "0" + * @return 鎵�鏈夋牴鑺傜偣List闆嗗悎 + */ + public List<Map<String,Object>> getRootNode(){ + // 淇濆瓨鎵�鏈夋牴鑺傜偣锛堟墍鏈夋牴鑺傜偣鐨勬暟鎹級 + List<Map<String,Object>> rootNodeList = new ArrayList<>(); + // treeNode锛氭煡璇㈠嚭鐨勬瘡涓�鏉℃暟鎹紙鑺傜偣锛� + for (Map<String,Object> treeNode : nodeList){ + // 鍒ゆ柇褰撳墠鑺傜偣鏄惁涓烘牴鑺傜偣锛屾澶勬敞鎰忥細鑻arentId绫诲瀷鏄疭tring锛屽垯瑕侀噰鐢╡quals()鏂规硶鍒ゆ柇銆� + if(Integer.valueOf(treeNode.get("level").toString())==1){ + rootNodeList.add(treeNode); + } + } + return rootNodeList; + } + + + /** + * 鏍规嵁姣忎竴涓《绾ц妭鐐癸紙鏍硅妭鐐癸級杩涜鏋勫缓鏍戝舰缁撴瀯 + * @return 鏋勫缓鏁存5鏍� + */ + public List<Map<String,Object>> buildTree(){ + // treeNodes锛氫繚瀛樹竴涓《绾ц妭鐐规墍鏋勫缓鍑烘潵鐨勫畬鏁存爲褰� + List<Map<String,Object>> treeNodes = new ArrayList<Map<String,Object>>(); + // getRootNode()锛氳幏鍙栨墍鏈夌殑鏍硅妭鐐� + for (Map<String,Object> treeRootNode : getRootNode()) { + // 灏嗛《绾ц妭鐐硅繘琛屾瀯寤哄瓙鏍� + treeRootNode = buildChildTree(treeRootNode); + // 瀹屾垚涓�涓《绾ц妭鐐规墍鏋勫缓鐨勬爲褰紝澧炲姞杩涙潵 + treeNodes.add(treeRootNode); + } + return treeNodes; + } + + /** + * 閫掑綊-----鏋勫缓瀛愭爲褰㈢粨鏋� + * @param pNode 鏍硅妭鐐癸紙椤剁骇鑺傜偣锛� + * @return 鏁存5鏍� + */ + public Map<String,Object> buildChildTree(Map<String,Object> pNode){ + List<Map<String,Object>> childTree = new ArrayList<Map<String,Object>>(); + // nodeList锛氭墍鏈夎妭鐐归泦鍚堬紙鎵�鏈夋暟鎹級 + for (Map<String,Object> treeNode : nodeList) { + // 鍒ゆ柇褰撳墠鑺傜偣鐨勭埗鑺傜偣ID鏄惁绛変簬鏍硅妭鐐圭殑ID锛屽嵆褰撳墠鑺傜偣涓哄叾涓嬬殑瀛愯妭鐐� + if ( treeNode.get("parentId").toString().equals(pNode.get("id").toString())) { + // 鍐嶉�掑綊杩涜鍒ゆ柇褰撳墠鑺傜偣鐨勬儏鍐碉紝璋冪敤鑷韩鏂规硶 + childTree.add(buildChildTree(treeNode)); + } + } + // for寰幆缁撴潫锛屽嵆鑺傜偣涓嬫病鏈変换浣曡妭鐐癸紝鏍戝舰鏋勫缓缁撴潫锛岃缃爲缁撴灉 + pNode.put("childTree",childTree); + return pNode; + } + + + + +} diff --git a/server/src/main/java/com/doumee/service/business/CategoryService.java b/server/src/main/java/com/doumee/service/business/CategoryService.java index d96ce32..22510bf 100644 --- a/server/src/main/java/com/doumee/service/business/CategoryService.java +++ b/server/src/main/java/com/doumee/service/business/CategoryService.java @@ -3,7 +3,9 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.Category; +import com.doumee.dao.business.vo.CategoryDcaProblemDto; import com.doumee.dao.web.vo.CategoryVO; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -103,10 +105,16 @@ * @return */ List<CategoryVO> getCategoryVOTree(String categoryType,Integer categoryId); + List<CategoryDcaProblemDto> findListForDca(Category category); List<CategoryVO> getCategoryVOList(Integer categoryType,Integer isRoot); List<CategoryVO> getCategoryVOForGCXTree(Integer categoryId); List<Category> treeList(Category param ); + + String importDcaBatch(MultipartFile file); + String initRedis(); + + void dealjson(); } diff --git a/server/src/main/java/com/doumee/service/business/CompanyService.java b/server/src/main/java/com/doumee/service/business/CompanyService.java index 03b98e9..85b841d 100644 --- a/server/src/main/java/com/doumee/service/business/CompanyService.java +++ b/server/src/main/java/com/doumee/service/business/CompanyService.java @@ -98,4 +98,5 @@ int syncAll(Company company); List<Company> companyTree(); + List<Company> companyTreeWithMember(); } diff --git a/server/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java index 8ba0af2..4269564 100644 --- a/server/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java +++ b/server/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java @@ -1,6 +1,8 @@ package com.doumee.service.business.impl; -import com.doumee.core.constants.Constants; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.doumee.core.annotation.excel.ExcelImporter; import com.doumee.core.constants.Constants; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; @@ -10,14 +12,13 @@ import com.doumee.core.utils.Utils; import com.doumee.dao.business.CategoryMapper; import com.doumee.dao.business.model.Category; -import com.doumee.dao.business.model.Member; +import com.doumee.dao.business.model.Company; +import com.doumee.dao.business.vo.CategoryDcaProblemDto; import com.doumee.dao.business.vo.CompanyTree; +import com.doumee.dao.web.vo.CategoryMapTree; import com.doumee.dao.web.vo.CategoryVO; import com.doumee.dao.web.vo.CategoryVOTree; -import com.doumee.dao.business.model.Company; -import com.doumee.dao.business.model.Managers; import com.doumee.dao.business.vo.CategoryTree; -import com.doumee.dao.business.vo.CompanyTree; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.CategoryService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -25,17 +26,24 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; +import io.swagger.models.auth.In; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.usermodel.CellType; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import org.springframework.web.multipart.MultipartFile; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; -import java.util.UUID; +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.io.Serializable; +import java.util.*; import java.util.stream.Collectors; /** @@ -46,6 +54,8 @@ @Service public class CategoryServiceImpl implements CategoryService { + @Resource(name="sessionRedisTemplate") + private RedisTemplate<Object, Serializable> redisTemplate; @Autowired private CategoryMapper categoryMapper; @@ -375,8 +385,492 @@ } return categoryVOList; } + public List<Category> findAllListForDca() { + List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda() + .eq(Category::getIsdeleted, Constants.ZERO) + .in(Category::getType, Constants.FOUR, Constants.SIX)//涓婚鍜岃瀵熼」 + .orderByAsc(Category::getSortnum) + ); + return categoryList; + } + public List<Category> findListForDcaTree( List<Category> categoryList) { + if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(categoryList)) { + long index = 1; + List<Category> pList = new ArrayList<>(); + for (Category category : categoryList) { + if (category.getParentId() == null) { + category.setChildList(new ArrayList<>()); + for (Category cc : categoryList) { + if (Constants.equalsInteger(cc.getParentId(), category.getId())) { + cc.setChildList(new ArrayList<>()); + for (Category ccc : categoryList) { + if (Constants.equalsInteger(ccc.getParentId(), cc.getId())) { + cc.getChildList().add(ccc); + } + } + category.getChildList().add(cc); + } + } + pList.add(category); + } + } + return pList; + } + return null; + } + public List<Category> findImportTreeForDca ( List<CategoryDcaProblemDto> categoryList,LoginUserInfo user, Date date) { + List<Category> pList = new ArrayList<>(); + if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(categoryList)) { + Integer index = 1; + for (CategoryDcaProblemDto categoryDcaProblemDto : categoryList) { + if(StringUtils.isBlank(categoryDcaProblemDto.getProblem()) + &&StringUtils.isBlank(categoryDcaProblemDto.getParentName()) + &&StringUtils.isBlank(categoryDcaProblemDto.getTypeName()) ){ + //鍘荤┖琛� + continue; + } + if(StringUtils.isBlank(categoryDcaProblemDto.getParentName())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝琛ㄦ牸绗��"+(index + 1)+"銆戣涓�绾т富棰樹俊鎭笉鑳戒负绌猴紝璇疯繑鍥炴鏌ヨ〃鏍间俊鎭紒"); + } + categoryDcaProblemDto.setProblem(StringUtils.defaultString(categoryDcaProblemDto.getProblem(),"").trim()); + categoryDcaProblemDto.setTypeName(StringUtils.defaultString(categoryDcaProblemDto.getTypeName(),"").trim()); + categoryDcaProblemDto.setParentName(StringUtils.defaultString(categoryDcaProblemDto.getParentName(),"").trim()); + Category first = getNewCateFromListByName(categoryDcaProblemDto.getParentName(), pList); + if(first == null){ + first = new Category(); + first.setIsdeleted(Constants.ZERO); + first.setCreateDate(date); + first.setCreator(user.getId()); + first.setIsdeleted(Constants.ZERO); + first.setStatus(Constants.ZERO); + first.setEditDate(date); + first.setEditor(user.getId()); + first.setName(categoryDcaProblemDto.getParentName()); + first.setType(Constants.FOUR);//涓婚 + first.setSortnum(index++); + first.setChildList(new ArrayList<>()); + pList.add(first); + List<Category> childList = getSecondListFromImport(first,0,categoryList); + first.setChildList(childList); + } + } + } + return pList; + } + + private List<Category> getSecondListFromImport(Category parent,int type, List<CategoryDcaProblemDto> categoryList) { + List<Category> pList = new ArrayList<>(); + Integer index = 1; + for (CategoryDcaProblemDto categoryDcaProblemDto : categoryList) { + if(type ==0 && (StringUtils.isBlank(categoryDcaProblemDto.getTypeName()) || StringUtils.isBlank(categoryDcaProblemDto.getProblem()))){ + //鍘荤┖琛� + continue; + } + if(type ==1 &&(StringUtils.isBlank(categoryDcaProblemDto.getProblem()))){ + //鍘荤┖琛� + continue; + } + if(type ==0 && StringUtils.isBlank(categoryDcaProblemDto.getTypeName())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝琛ㄦ牸绗��"+(index + 1)+"銆戣浜岀骇涓婚淇℃伅涓嶈兘涓虹┖锛岃杩斿洖妫�鏌ヨ〃鏍间俊鎭紒"); + } + if(type == 0 && !StringUtils.equals(categoryDcaProblemDto.getParentName(),parent.getName())){ + //鍙鐞嗗瓙绾� + continue; + } + if(type == 1 && !StringUtils.equals(categoryDcaProblemDto.getTypeName(),parent.getName())){ + //鍙鐞嗗瓙绾� + continue; + } + Category model = getNewCateFromListByName(type == 0 ?categoryDcaProblemDto.getTypeName():categoryDcaProblemDto.getProblem(), pList); + if(model == null){ + model = new Category(); + model.setIsdeleted(Constants.ZERO); + model.setCreateDate(parent.getCreateDate()); + model.setCreator(parent.getCreator()); + model.setIsdeleted(Constants.ZERO); + model.setStatus(Constants.ZERO); + model.setEditDate(parent.getCreateDate()); + model.setEditor(parent.getCreator()); + model.setName(type == 0 ?categoryDcaProblemDto.getTypeName():categoryDcaProblemDto.getProblem()); + model.setType(type == 0 ? Constants.FOUR:Constants.SIX);// + model.setSortnum(index++); + model.setChildList(new ArrayList<>()); + pList.add(model); + } + if(type == 0){ + //濡傛灉鏄簩绾т富棰樺鐞嗚幏鍙栧瓙闆嗛儴闂� + List<Category> childList = getSecondListFromImport(model,1,categoryList); + model.setChildList(childList); + } + } + return pList; + } + + private Category getNewCateFromListByName(String parentName, List<Category> pList) { + if(pList ==null){ + return null; + } + for(Category cate : pList){ + if(StringUtils.equals(parentName,cate.getName())){ + return cate; + } + } + return null; + } + private Category getNewCateFromListByNameAndParent(String parentName,int type,boolean isRoot, List<Category> pList) { + for(Category cate : pList){ + if(StringUtils.equals(parentName,cate.getName()) && Constants.equalsInteger(cate.getType(),type)){ + if(isRoot && cate.getParentId()==null){ + return cate; + }else if(isRoot && cate.getParentId()==null){ + return cate; + } + } + } + return null; + } + + @Override + public List<CategoryDcaProblemDto> findListForDca(Category param){ + long index =1; + List<CategoryDcaProblemDto> categoryVOList = new ArrayList<>(); + List<Category> pList = findListForDcaTree( findAllListForDca()); + for (Category category:pList) { + if(category.getChildList().size() ==0){ + CategoryDcaProblemDto categoryVO = new CategoryDcaProblemDto(); + categoryVO.setIndex(index); + categoryVO.setParentName(category.getName()); + index++; + categoryVOList.add(categoryVO); + }else{ + for (Category cc:category.getChildList()) { + if(cc.getChildList().size() ==0){ + CategoryDcaProblemDto categoryVO = new CategoryDcaProblemDto(); + categoryVO.setIndex(index); + categoryVO.setParentName(category.getName()); + categoryVO.setTypeName(cc.getName()); + index++; + categoryVOList.add(categoryVO); + }else{ + for (Category ccc:cc.getChildList()) { + CategoryDcaProblemDto categoryVO = new CategoryDcaProblemDto(); + categoryVO.setIndex(index); + categoryVO.setParentName(category.getName()); + categoryVO.setTypeName(cc.getName()); + categoryVO.setProblem(ccc.getName()); + index++; + categoryVOList.add(categoryVO); + + } + } + } + } + } + return categoryVOList; + } + + + @Override + @PostConstruct + public String initRedis(){ + redisTemplate.delete(Constants.RedisKeys.IMPORTING_CATEGORY); + return ""; + } + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public String importDcaBatch(MultipartFile file){ + Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_CATEGORY); + if(importing!=null && importing){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝宸插瓨鍦ㄥ憳宸ュ鍏ヤ换鍔℃鍦ㄦ墽琛屼腑锛岃绋嶅悗鍐嶈瘯锛�"); + } + redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_CATEGORY,true); + try { + ExcelImporter ie = null; + List<CategoryDcaProblemDto> dataList =null; + try { + ie = new ExcelImporter(file,0,0, CellType.STRING); // 纭繚鍗曞厓鏍肩被鍨嬩负瀛楃涓�); + dataList = ie.getDataList(CategoryDcaProblemDto.class,null); + } catch (Exception e) { + e.printStackTrace(); + } + if(dataList == null || dataList.size() ==0){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁涓虹┖锛�"); + } + Date date = new Date(); + LoginUserInfo user = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); + List<Category> treeImportList = findImportTreeForDca(dataList,user,date);//鏌ヨ鐜版湁鐨勫叏閮ㄤ富棰樿瀵熼」鏁版嵁 + if(treeImportList == null || treeImportList.size() ==0){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鐨勬湁鏁堟暟鎹负绌猴紒"); + } + //鏌ヨ鐜版湁鐨勫叏閮ㄤ富棰樿瀵熼」鏁版嵁 + List<Category> list = categoryMapper.selectJoinList(Category.class,new MPJLambdaWrapper<Category>() + .selectAll(Category.class) +// .select("t1.name",Category::getParentName) +// .select("t2.name",Category::getRootName) +// .leftJoin(Category.class,Category::getId,Category::getParentId) +// .leftJoin( "category t2 on t1.parent_id=t2.id") + .eq(Category::getIsdeleted, Constants.ZERO) + .in(Category::getType, Constants.FOUR, Constants.SIX)//涓婚鍜岃瀵熼」 + .orderByAsc(Category::getSortnum) + ) ; + List<Category> treeList = findListForDcaTree(list);//鏌ヨ鐜版湁鐨勫叏閮ㄤ富棰樿瀵熼」鏁版嵁 + List<Integer> allUpdateIds = new ArrayList<>(); + dealImportNewOrUpdateBiz(treeList,treeImportList,allUpdateIds); + dealDeletedList(list,allUpdateIds,user,date);//澶勭悊鍒犻櫎鐨勬暟鎹俊鎭� + dealTreePathInfo(treeImportList); + return "瀵煎叆鎴愬姛"; + }catch (BusinessException e){ + throw e; + }catch (Exception e){ + throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"鍛樺伐淇℃伅瀵煎叆澶辫触锛岃绋嶅悗閲嶈瘯"); + }finally { + redisTemplate.delete(Constants.RedisKeys.IMPORTING_CATEGORY); + } + } + + private void dealImportNewOrUpdateBiz(List<Category> treeList, List<Category> treeImportList, List<Integer> allUpdateIds) { + List<Category> newList = new ArrayList<>(); + List<Category> updateList = new ArrayList<>(); + for(Category tmodel :treeImportList){ + + //澶勭悊涓�绾т富棰樺鏀归�昏緫 + //鏌ヨ鏄惁瀛樺湪鍚嶇О鐩稿悓鐨勪竴绾т富棰橈紝瀛樺湪鍒欐洿鏂帮紝涓嶅瓨鍦ㄥ垯鏂板 + Category first = getNewCateFromListByName(tmodel.getName(),treeList); + if(first!=null){ + tmodel.setId(first.getId()); + tmodel.setChildMatchList(first.getChildList()); + allUpdateIds.add(first.getId()); + updateList.add(tmodel); + }else{ + newList.add(tmodel); + } + } + + //鍏堟壒閲忓鐞嗕竴绾т富棰樼殑澧炴敼鏁版嵁锛屽埛鏂颁竴绾т富棰樺璞$殑缂栫爜 + if(newList.size() >0){ + categoryMapper.insert(newList); + } + if( updateList.size() >0){ + for(Category update :updateList){ + categoryMapper.updateById(update); + } + } + dealSecChildList(newList,updateList,allUpdateIds,1);//澶勭悊浜岀骇鏁版嵁 + } + + private void dealDeletedList(List<Category> list, List<Integer> allUpdateIds, LoginUserInfo user, Date date) { + List<Integer> deleteList = new ArrayList<>(); + for(Category cate : list){ + for(Integer nowId : allUpdateIds){ + if(Constants.equalsInteger(cate.getId(),nowId)){ + continue; + } + deleteList.add(cate.getId()); + } + } + if(deleteList.size() >0){ + //鍒犻櫎涓嶅瓨鍦ㄧ殑 + categoryMapper.update(null,new UpdateWrapper<Category>().lambda() + .set(Category::getIsdeleted,Constants.ONE) + .set(Category::getEditor,user.getId()) + .set(Category::getEditDate,date) + .in(Category::getId,deleteList)); + } + } + + private void dealSecChildList(List<Category> newList, List<Category> updateList,List<Integer> allUpdateIds,int level) { + List<Category> childNewList = new ArrayList<>(); + List<Category> childUpdateList = new ArrayList<>(); + if(newList.size() >0 || updateList.size()>0) { + for(Category c : newList){ + if(c.getChildList()!=null && c.getChildList().size()>0){ + for(Category sec : c.getChildList()){ + sec.setParentId(c.getId()); + } + childNewList.addAll(c.getChildList()); + } + } + for(Category c : updateList){ + if(c.getChildList()!=null && c.getChildList().size()>0){ + List<Category> tList = c.getChildMatchList(); + for(Category sec : c.getChildList()){ + sec.setParentId(c.getId()); + Category mmodel = getNewCateFromListByName(sec.getName(),tList); + if(mmodel!=null){ + sec.setId(mmodel.getId()); + sec.setChildMatchList(mmodel.getChildList()); + allUpdateIds.add(mmodel.getId()); + childUpdateList.add(sec); + }else{ + childNewList.add(sec); + } + } + } + } + } + if(childNewList.size() >0){ + categoryMapper.insert(childNewList); + } + if( childUpdateList.size() >0){ + for(Category update :childUpdateList){ + categoryMapper.updateById(update); + } + } + if(level == 1){ + dealSecChildList(childNewList,childUpdateList,allUpdateIds,2);//澶勭悊涓夌骇绾ф暟鎹� + } + } + private void dealTreePathInfo(List<Category> tree) { + if(tree!=null || tree.size()>0){ + for(Category t : tree){ + t.setIdPath(t.getId()+"/"); + t.setNamePath(t.getName()); + categoryMapper.updateById(t); + dealChildParentId(t,t.getChildList()); + } + } + } + + private void dealChildParentId(Category t, List<Category> childList) { + if(childList ==null || childList.size()==0){ + return; + } + for(Category c : childList){ + c.setParentId(t.getId()); + c.setIdPath(t.getIdPath()+c.getId()+"/"); + c.setNamePath(t.getNamePath()+"/"+c.getName()); + categoryMapper.updateById(c); + if(t.getChildList()!=null || t.getChildList().size()==0){ + //閫掑綊澶勭悊瀛愰泦 + dealChildParentId(c,c.getChildList()); + } + } + } + @Override + public void dealjson(){ + String json = ""; + BufferedReader reader = null; + try { + reader = new BufferedReader(new FileReader("d://file.txt")); + String line; + while ((line = reader.readLine()) != null) { + json = json + line; + } + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + if (reader != null){ + reader.close(); + }; + } catch (IOException e) { + e.printStackTrace(); + } + } + JSONObject jsonObject = JSONObject.parseObject(json); + JSONArray jsonArray = jsonObject.getJSONArray("data"); + + List<Map<String,Object>> mapList = new ArrayList<>(); + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject jsons = jsonArray.getJSONObject(i); + Map<String,Object> map = new HashMap<>(); + map.put("id",jsons.getString("id")); + map.put("level",jsons.getInteger("level")); + map.put("name",jsons.getString("name")); + map.put("parentId",jsons.getString("parentId")); + mapList.add(map); + } + CategoryMapTree categoryMapTree = new CategoryMapTree(mapList); + mapList = categoryMapTree.buildTree(); + + for (Map<String,Object> map:mapList) { + Category category = new Category(); + category.setCreateDate(new Date()); + category.setIsdeleted(Constants.ZERO); + category.setStatus(Constants.ZERO); + category.setType(Constants.SIX); + category.setName(map.get("name").toString()); + category.setNamePath(map.get("name").toString()); + categoryMapper.insert(category); + if(Objects.nonNull(map.get("childTree"))){ + List<Map<String,Object>> childOneMap = (List<Map<String, Object>>) map.get("childTree"); + for (Map<String,Object> oneMap:childOneMap) { + Category oneCategory = new Category(); + oneCategory.setCreateDate(new Date()); + oneCategory.setIsdeleted(Constants.ZERO); + oneCategory.setStatus(Constants.ZERO); + oneCategory.setType(Constants.SIX); + oneCategory.setName(oneMap.get("name").toString()); + oneCategory.setNamePath(category.getNamePath()+"/"+oneCategory.getName()); + oneCategory.setParentId(category.getId()); + categoryMapper.insert(oneCategory); + + if(Objects.nonNull(oneMap.get("childTree"))){ + List<Map<String,Object>> childTwoMap = (List<Map<String, Object>>) oneMap.get("childTree"); + for (Map<String,Object> twoMap:childTwoMap) { + Category twoCategory = new Category(); + twoCategory.setCreateDate(new Date()); + twoCategory.setIsdeleted(Constants.ZERO); + twoCategory.setStatus(Constants.ZERO); + twoCategory.setType(Constants.SIX); + twoCategory.setName(twoMap.get("name").toString()); + twoCategory.setNamePath(oneCategory.getNamePath() + "/" + twoCategory.getName()); + twoCategory.setParentId(oneCategory.getId()); + categoryMapper.insert(twoCategory); + } + } + } + + + + + + + } + + } + + + + +// for (int i = 0; i < jsonArray.size(); i++) { +// JSONObject jsonObject1 = jsonArray.getJSONObject(i); +// if(Constants.equalsInteger(jsonObject1.getInteger("level"),Constants.ONE)){ +// Boolean iHavaChild = false; +// for (int k = 0; i < jsonArray.size(); i++) { +// JSONObject jsonObject2 = jsonArray.getJSONObject(k); +// +// Boolean kHavaChild = false; +// if(Constants.equalsInteger(jsonObject2.getInteger("level"),Constants.TWO) +// &&jsonObject2.getString("parentId").equals(jsonObject1.getString("id"))){ +// iHavaChild = true; +// +// for (int g = 0; i < jsonArray.size(); i++) { +// JSONObject jsonObject3 = jsonArray.getJSONObject(g); +// if(Constants.equalsInteger(jsonObject3.getInteger("level"),Constants.THREE) +// &&jsonObject3.getString("parentId").equals(jsonObject2.getString("id"))) { +// kHavaChild = true; +// +// System.out.println(j.getString("id")+"---"+j.getString("name").replace("\n","")+"---"+j.getInteger("level")+"---"+j.getString("parentId")); +// } +// } +// +// } +// } +// if(!iHavaChild){ +// +// } +// } +// +// +//// System.out.println(j.getString("id")+"---"+j.getString("name").replace("\n","")+"---"+j.getInteger("level")+"---"+j.getString("parentId")); +// } + + + + } } diff --git a/server/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java index fe36d4b..031718b 100644 --- a/server/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java +++ b/server/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java @@ -1,5 +1,6 @@ package com.doumee.service.business.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -15,7 +16,9 @@ import com.doumee.core.utils.qiyeweixin.QywxUtil; import com.doumee.core.utils.qiyeweixin.model.response.QywxDepartInfoResponse; import com.doumee.dao.business.CompanyMapper; +import com.doumee.dao.business.CompanyMemberMapper; import com.doumee.dao.business.model.Company; +import com.doumee.dao.business.model.CompanyMember; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.vo.CompanyTree; import com.doumee.dao.system.model.SystemUser; @@ -24,9 +27,12 @@ import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import javax.annotation.Resource; +import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -40,8 +46,12 @@ @Service public class CompanyServiceImpl implements CompanyService { + @Resource(name="sessionRedisTemplate") + private RedisTemplate<Object, Serializable> redisTemplate; @Autowired private CompanyMapper companyMapper; + @Autowired + private CompanyMemberMapper companyMemberMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @@ -98,8 +108,21 @@ @Override public List<Company> findList(Company company) { - QueryWrapper<Company> wrapper = new QueryWrapper<>(company); - return companyMapper.selectList(wrapper); + MPJLambdaWrapper<Company> wrapper = new MPJLambdaWrapper<Company>(); + wrapper.selectAll(Company.class ) + .select(" (select count(1) from company t1 where t1.isdeleted=0 and t1.parent_id = t.id )",Company::getChildNum) + .isNull(company.getParentId()==null,Company::getParentId) + .eq(company.getParentId()!=null,Company::getParentId,company.getParentId()) + .eq(Company::getIsdeleted,Constants.ZERO) + .orderByAsc(Company::getName); + List<Company> companyList = companyMapper.selectJoinList(Company.class,wrapper); + + if(companyList.size()>0){ + for (Company c : companyList){ + c.setHasChildren(Constants.formatIntegerNum(c.getChildNum())>0); + } + } + return companyList; } @Override @@ -146,6 +169,9 @@ @Override public List<Company> companyTree( ) { + return companyTreeBiz(0); + } + public List<Company> companyTreeBiz(int type ) { MPJLambdaWrapper<Company> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Company.class); queryWrapper.selectAs(SystemUser::getUsername,Company::getEditorName); @@ -154,12 +180,26 @@ queryWrapper.leftJoin(Company.class,Company::getId,Company::getParentId); queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,Company::getEditor); queryWrapper.eq(Company::getIsdeleted,Constants.ZERO); - queryWrapper.orderByAsc( "t.code"); + queryWrapper.orderByAsc( "t.name"); List<Company> companyList = companyMapper.selectJoinList(Company.class,queryWrapper); - CompanyTree treeBuild = new CompanyTree(companyList, 0); + List<CompanyMember> memberList = null; + if(type == 1){ + memberList = companyMemberMapper.selectJoinList(CompanyMember.class,new MPJLambdaWrapper<CompanyMember>() + .selectAll(CompanyMember.class) + .selectAs(Member::getName,CompanyMember::getMemberName) + .leftJoin(Member.class,Member::getId,CompanyMember::getMemberId) + .eq(Member::getIsdeleted,Constants.ZERO ) + .eq(CompanyMember::getIsdeleted,Constants.ZERO ) + .orderByAsc(Member::getName)); + } + CompanyTree treeBuild = new CompanyTree(companyList, 0,memberList); companyList = treeBuild.buildTree(); return companyList; } + @Override + public List<Company> companyTreeWithMember() { + return companyTreeBiz(1); + } @Override public int syncAll(Company company) { 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 5e57bfb..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 @@ -8,8 +8,10 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Utils; +import com.doumee.dao.business.CompanyMapper; import com.doumee.dao.business.ManagersMapper; import com.doumee.dao.business.MemberMapper; +import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.Managers; import com.doumee.dao.business.model.Member; import com.doumee.dao.system.model.SystemUser; @@ -23,8 +25,10 @@ import org.apache.shiro.SecurityUtils; 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.Date; import java.util.List; @@ -40,29 +44,76 @@ private ManagersMapper managersMapper; @Autowired private MemberMapper memberMapper; + @Autowired + private CompanyMapper companyMapper; @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public Integer create(Managers managers) { - Member member =memberMapper.selectById(managers.getMemberId()); - if(member == null || Constants.equalsInteger(member.getIsdeleted(),Constants.ONE)){ - throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ヨ礋璐d汉淇℃伅涓嶅瓨鍦紝璇峰埛鏂伴〉闈㈤噸璇曪紒"); + + List<Managers> newList = new ArrayList<>(); + if( managers.getIsMember() == null || managers.getType() == null){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); } - Managers model =managersMapper.selectOne(new LambdaQueryWrapper<Managers>().eq(Managers::getMemberId,managers.getMemberId()) - .eq(Managers::getType,managers.getType()) - .eq(Managers::getIsdeleted,Constants.ZERO) - ); - if(model !=null){ - throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"璇ヤ汉鍛樹俊鎭凡璁剧疆锛屾棤闇�閲嶆柊娣诲姞"); + List<Member> memberList = new ArrayList<>(); + List<Integer> memberIdList = new ArrayList<>(); + + //璁剧疆鑼冨洿 0鐩村睘閮ㄩ棬鍛樺伐 1閮ㄩ棬鍙婂叾涓嬬骇甯冩仼鍛樺伐 2鎸囧畾浜哄憳 + if(Constants.equalsInteger(managers.getIsMember(),Constants.ZERO) || Constants.equalsInteger(managers.getIsMember(),Constants.ONE)){ + //鐩村睘閮ㄩ棬 鎴� 閮ㄩ棬鍙婂叾瀛愰儴闂� + /* 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 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(),"瀵逛笉璧凤紝璇锋寜瑕佹眰閫夋嫨鎸囧畾鍛樺伐淇℃伅锛�"); + } + memberList =memberMapper.selectList(new LambdaQueryWrapper<Member>() + .eq(Member::getIsdeleted,Constants.ZERO) + .in(Member::getId,managers.getMemberIds())); + } + if(memberList.size() ==0){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝閫夋嫨鑼冨洿鏈煡璇㈠埌鐩稿叧鍛樺伐淇℃伅锛屾娆¤缃棤鏁堬紒"); } LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); - managers.setCreator(user.getId()); - managers.setCreateDate(new Date()); - managers.setIsdeleted(Constants.ZERO); - managers.setEditor(managers.getCreator()); - managers.setEditDate(managers.getCreateDate()); - managers.setStatus(Constants.ZERO); - managersMapper.insert(managers); - return managers.getId(); + + Date date = new Date(); + for(Member m :memberList){ + Managers mm = new Managers(); + mm.setCreator(user.getId()); + mm.setCreateDate(date); + mm.setIsdeleted(Constants.ZERO); + mm.setEditor(mm.getCreator()); + mm.setEditDate(mm.getCreateDate()); + mm.setStatus(Constants.ZERO); + mm.setType(managers.getType()); + mm.setMemberId(m.getId()); + mm.setIsQw(managers.getIsQw()); + mm.setIsEmail(managers.getIsEmail()); + mm.setRemark(managers.getRemark()); + memberIdList.add(m.getId()); + newList.add(mm); + } + //娓呯┖鍘熸湁鐨勮缃俊鎭� + managersMapper.delete(new UpdateWrapper<Managers>().lambda() + .eq(Managers::getType,managers.getType()) + .in(Managers::getMemberId,memberIdList) + ); + managersMapper.insert(newList); + return newList.size(); } @Override @@ -166,6 +217,7 @@ queryWrapper.selectAll(Managers.class ) .selectAs(Member::getPhone,Managers::getMemberPhone) .selectAs(Member::getName,Managers::getMemberName) + .selectAs(Member::getQwId,Managers::getMemberQwId) .selectAs(Member::getEmail,Managers::getMemberEmail) .selectAs(Member::getCompanyName,Managers::getCompanyName) .selectAs(SystemUser::getUsername,Managers::getEditorName) 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 d81bb83..adde7de 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 @@ -26,14 +26,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestHeader; +import javax.annotation.Resource; +import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -45,8 +50,11 @@ * @since 2025/04/02 17:49 */ @Service +@Slf4j public class MemberServiceImpl implements MemberService { + @Resource(name="sessionRedisTemplate") + private RedisTemplate<Object, Serializable> redisTemplate; @Autowired private SystemDictDataBiz systemDictDataBiz; @Autowired @@ -244,6 +252,7 @@ } @Override + @Transactional public void syncQwAll(){ if(Constants.DEALING_MEMBER_SYNC){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鍚屾浠诲姟姝e湪杩涜锛岃绋嶅悗鍒锋柊椤甸潰閲嶈瘯锛�"); @@ -261,15 +270,20 @@ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Date date = new Date(); List<QywxUserListResponse> list = new ArrayList<>(); + int index =0; for(Company c : companyList){ List<QywxUserListResponse> tList = QywxUtil.getUserList(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(),c.getQwId()); if(tList!=null){ + log.error((index++)+"==============="+c.getName()+"============浜哄憳鏁伴噺锛�"+tList.size()); list.addAll(tList); + }else{ + log.error((index++)+"==============="+c.getName()+"============浜哄憳鏁伴噺锛�0"); } } if(list == null || list.size() ==0){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍缁勭粐淇℃伅锛�"); } + log.error( "###################=================浜哄憳鎬绘暟閲忥細"+list.size()); List<Member> memberList = memberMapper.selectList(new LambdaQueryWrapper<Member>().eq(Member::getIsdeleted,Constants.ZERO)); List<Member> newList = new ArrayList<>(); List<Member> updateList = new ArrayList<>(); @@ -304,7 +318,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 1b6ba87..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 @@ -94,6 +94,7 @@ //澶勭悊SHE浜嬩欢鐘舵�� Constants.WorkOrderStatus workOrderStatus = Constants.equalsInteger(workorder.getType(),Constants.ZERO)?Constants.WorkOrderStatus.close:Constants.WorkOrderStatus.waitConfirm; workorder.setStatus(workOrderStatus.getKey()); + workorder.setSheDealUserQwIds(workorder.getQwnoticeMemberIds()); workorderMapper.insert(workorder); //瀛樺偍DCA 闂璁板綍琛� @@ -185,8 +186,11 @@ }else{ textCard.setTitle(Constants.equalsInteger(workorder.getType(),Constants.ONE)?"銆怐CA涓婃姤銆�":"銆愯穼缁婃粦椋庨櫓涓婃姤銆�"); if(Constants.equalsInteger(workorder.getType(),Constants.THREE)){ - message = message + " <div class=\"normal\">"+ (org.apache.commons.lang3.StringUtils.isNotBlank(userName)?userName:"绯荤粺") + (Constants.equalsInteger(contentType,Constants.ZERO)?"浠诲姟鍒嗛厤缁欎綘":(Constants.equalsInteger(contentType,Constants.ONE)?"瀵硅宸ュ崟杩涜浜嗗偓淇冿紝璇峰敖蹇鐞�":"浠诲姟宸插鐞�")) +"</div>"; + message = message + " <div class=\"normal\">"+ (org.apache.commons.lang3.StringUtils.isNotBlank(userName)?userName:"绯荤粺") + (Constants.equalsInteger(contentType,Constants.ZERO)?"浠诲姟鍒嗛厤缁欎綘":(Constants.equalsInteger(contentType,Constants.ONE)?"瀵硅宸ュ崟杩涜浜嗗偓淇冿紝璇峰敖蹇鐞�":((Constants.equalsInteger(contentType,Constants.TWO)?"鎶勯�佺粰浣�":"浠诲姟宸插鐞�")))) +"</div>";//:"浠诲姟宸插鐞�")) +"</div>"; message = message + " <div class=\"normal\">"+ DateUtil.formatDate(new Date(),"yyyy-MM-dd HH:mm") +"/"+ workorder.getLocationName() +"/"+ categoryName+"</div>"; + if(Constants.equalsInteger(contentType,Constants.TWO)){ + message = message + " <div class=\"normal\">璇存槑 "+ csInfo +"</div>"; + } }else{ message = message + " <div class=\"normal\">"+ (org.apache.commons.lang3.StringUtils.isNotBlank(userName)?userName:"绯荤粺") + (Constants.equalsInteger(contentType,Constants.ZERO)?"浠诲姟鍒嗛厤缁欎綘":(Constants.equalsInteger(contentType,Constants.ONE)?"瀵硅宸ュ崟杩涜浜嗗偓淇冿紝璇峰敖蹇鐞�":((Constants.equalsInteger(contentType,Constants.TWO)?"鎶勯�佺粰浣�":"宸插鐞嗕竴椤�")))) +"</div>"; message = message + " <div class=\"normal\">瑙傚療涓婚 "+ categoryName +"</div>"; @@ -269,6 +273,7 @@ dcaWorkOrder.setEventInfo(dcaNoProblemDTO.getEventInfo()); dcaWorkOrder.setQwnoticeMemberIds(workorder.getQwnoticeMemberIds()); dcaWorkOrder.setMemberNames(workorder.getMemberNames()); + dcaWorkOrder.setSheDealUserQwIds(dcaWorkOrder.getQwnoticeMemberIds()); workorderMapper.insert(dcaWorkOrder); //瀛樺偍鏃ュ織 this.dealLogData(dcaWorkOrder,workOrderStatus); @@ -443,7 +448,7 @@ if(Objects.isNull(workorder.getMemberType()) || Objects.isNull(workorder.getOutJiuyi()) || (Constants.equalsInteger(workorder.getOutJiuyi(),Constants.ZERO) && Objects.isNull(workorder.getIsYiwushi())) - || (Constants.equalsInteger(workorder.getIsYiwushi(),Constants.ZERO) && Objects.isNull(workorder.getIsHurted())) + || (Constants.equalsInteger(workorder.getOutJiuyi(),Constants.ZERO) && Constants.equalsInteger(workorder.getIsYiwushi(),Constants.ZERO) && Objects.isNull(workorder.getIsHurted())) || Objects.isNull(workorder.getWorkRelated()) || (Constants.equalsInteger(workorder.getMemberType(),Constants.TWO) && StringUtils.isEmpty(workorder.getMemberNames())) || (Constants.equalsInteger(workorder.getMemberType(),Constants.ONE) && StringUtils.isEmpty(workorder.getMemberQwids())) @@ -502,10 +507,12 @@ throw new BusinessException(ResponseStatus.DATA_EMPTY); } + workorder.setStatusName(Constants.WorkOrderStatus.getStatusName(workorder.getStatus())); this.dealButton(workorder,member); //鏌ヨ闄勪欢淇℃伅 List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda().eq(Multifile::getIsdeleted,Constants.ZERO) - .eq(Multifile::getObjId,workorder.getId()).orderByAsc(Multifile::getId)); + .eq(Multifile::getObjType,Constants.multiFileType.upload) + .eq(Multifile::getObjId,workorder.getId().toString()).orderByAsc(Multifile::getId)); String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +systemDictDataBiz.queryByCode(Constants.FTP,Constants.WORKORDER_FILE_PATH).getCode(); @@ -527,6 +534,7 @@ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(dcaChildList)){ for (Workorder dcaChild:dcaChildList) { this.dealButton(dcaChild,member); + dcaChild.setStatusName(Constants.WorkOrderStatus.getStatusName(dcaChild.getStatus())); } workorder.setManagerId(dcaChildList.stream().filter(i->Objects.nonNull(i.getManagerId())).map(i->i.getManagerId()).collect(Collectors.joining(","))); } @@ -543,7 +551,7 @@ if(org.apache.commons.lang3.StringUtils.isNotBlank(workorder.getQwnoticeMemberIds())&& (Constants.equalsInteger(workorder.getStatus(),Constants.ZERO)|| Constants.equalsInteger(workorder.getStatus(),Constants.ONE)||Constants.equalsInteger(workorder.getStatus(),Constants.TWO))){ - closeUserList.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(","))); + closeUserList.addAll(Arrays.asList(workorder.getSheDealUserQwIds().split(","))); } if(org.apache.commons.lang3.StringUtils.isNotBlank(workorder.getManagerId())&& (Constants.equalsInteger(workorder.getStatus(),Constants.ONE)||Constants.equalsInteger(workorder.getStatus(),Constants.TWO))){ @@ -560,7 +568,7 @@ //寰呭垎閰嶇姸鎬� 澶勭悊杞氦鎸夐挳 if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey()) ){ - passOnUserList.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(","))); + passOnUserList.addAll(Arrays.asList(workorder.getSheDealUserQwIds().split(","))); } if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey()) || Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitDeal.getKey()) @@ -777,7 +785,13 @@ Utils.MP.blankToNull(pageWrap.getModel()); pageWrap.getModel().setIsdeleted(Constants.ZERO); MPJLambdaWrapper<Workorder> queryWrapper = getJoinQueryMapper(pageWrap.getModel()); - return PageData.from(workorderMapper.selectJoinPage(page,Workorder.class, queryWrapper)); + PageData<Workorder> result = PageData.from(workorderMapper.selectJoinPage(page,Workorder.class, queryWrapper)); + if(result!=null && result.getRecords()!=null){ + for(Workorder w : result.getRecords()){ + w.setStatusName(Constants.WorkOrderStatus.getStatusName(w.getStatus())); + } + } + return result; } @Override @@ -839,7 +853,7 @@ //鎻愪氦鍚庣殑 寰呯‘璁�/寰呭垵瀹$姸鎬� 濡傛灉鍘诲叧闂� 鍙湁宸ュ崟閲岀粦瀹氱殑SHE浜哄憳鍙互鍏抽棴 if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey())){ //鍒ゆ柇SHE浜哄憳鍐呮槸鍚︽湁褰撳墠鐧诲綍璐﹀彿 - if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO){ + if(workorder.getSheDealUserQwIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊"); } workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey()); @@ -847,12 +861,12 @@ qwIds.remove(closeDTO.getMember().getQwId()); }else if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey())){ //鍒ゆ柇SHE浜哄憳鍐呮槸鍚︽湁褰撳墠鐧诲綍璐﹀彿 - if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO && !workorder.getManagerId().equals(closeDTO.getMember().getQwId())){ + if(workorder.getSheDealUserQwIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO && !workorder.getManagerId().equals(closeDTO.getMember().getQwId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊"); } if(workorder.getManagerId().equals(closeDTO.getMember().getQwId())){ workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); - }else if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())>Constants.ZERO){ + }else if(workorder.getSheDealUserQwIds().indexOf(closeDTO.getMember().getQwId())>Constants.ZERO){ workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey()); }else{ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊"); @@ -862,7 +876,7 @@ qwIds.remove(closeDTO.getMember().getQwId()); }else if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitDeal.getKey())){ //鍒ゆ柇SHE浜哄憳鍐呮槸鍚︽湁褰撳墠鐧诲綍璐﹀彿 - if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO && !workorder.getManagerId().equals(closeDTO.getMember().getQwId()) + if(workorder.getSheDealUserQwIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO && !workorder.getManagerId().equals(closeDTO.getMember().getQwId()) && !workorder.getDealerId().equals(closeDTO.getMember().getQwId()) ){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊"); } @@ -870,7 +884,7 @@ workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); }else if(workorder.getDealerId().equals(closeDTO.getMember().getQwId())){ workorder.setStatus(Constants.WorkOrderStatus.close.getKey()); - }else if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())>Constants.ZERO){ + }else if(workorder.getSheDealUserQwIds().indexOf(closeDTO.getMember().getQwId())>Constants.ZERO){ workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey()); }else{ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊"); @@ -947,12 +961,20 @@ if(!Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey())){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"宸ュ崟鐘舵�佸凡娴佽浆"); } + if(workorder.getSheDealUserQwIds().indexOf(passOnDTO.getMember().getQwId())<Constants.ZERO){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝闈炲甫鎮ㄥ鐞嗙殑宸ュ崟锛屾棤娉曡繘琛岃鎿嶄綔"); + } workorder.setManagerId(member.getQwId()); workorder.setStatus(Constants.WorkOrderStatus.waitAllocation.getKey()); + workorder.setSheDealUserQwIds(passOnDTO.getMember().getQwId()); + }else{ if(!(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey()) || Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitDeal.getKey()))){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"宸ュ崟鐘舵�佸凡娴佽浆"); + } + if(!workorder.getManagerId().equals(passOnDTO.getMember().getQwId())){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝闈炲甫鎮ㄥ鐞嗙殑宸ュ崟锛屾棤娉曡繘琛岃鎿嶄綔"); } workorder.setDealerId(member.getQwId()); workorder.setStatus(Constants.WorkOrderStatus.waitDeal.getKey()); @@ -1064,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..6d7ebf6 100644 --- a/server/src/main/resources/application-dev.yml +++ b/server/src/main/resources/application-dev.yml @@ -1,4 +1,9 @@ -# WEB鏈嶅姟鍣ㄩ厤缃� +project: + # 鐜锛岀敓浜х幆澧僷roduction锛屽紑鍙戠幆澧僤evelopment + env: development + # 妯″紡锛宼esting娴嬭瘯妯″紡 + mode: testing + server: port: 10010 spring: @@ -37,9 +42,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..03db8dd 100644 --- a/server/src/main/resources/application-pro.yml +++ b/server/src/main/resources/application-pro.yml @@ -1,13 +1,17 @@ -# WEB鏈嶅姟鍣ㄩ厤缃� +project: + # 鐜锛岀敓浜х幆澧僷roduction锛屽紑鍙戠幆澧僤evelopment + env: production + # 妯″紡锛宼esting娴嬭瘯妯″紡 + mode: production server: - port: 10010 + port: 10040 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-p-shereport-db-mysql01.mysql.database.chinacloudapi.cn:3306/lianhelihua?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai + username: service_account + password: vW3&QbcdMSyF driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource redis: @@ -19,44 +23,64 @@ jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss + # mail: + # username: jiangping0849@outlook.com + # password: mwzaislgioyhxnig + # host: smtp-mail.outlook.com + # port: 587 + # default-encoding: UTF-8 + # properties: + # mail: + # debug: true + # smtp: + # ssl: + # socketFactory: + # class: com.sun.mail.util.MailSSLSocketFactory + # fallback: false + # auth: true + # starttls: + # enable: true + # required: true mail: - host: smtp.aliyun.com - port: 465 - username: your_email@aliyun.com - password: your_password + host: smtpdm.aliyun.com + username: lkshereport@mail.unilever-china.com + password: f2fLk384RChX + default-encoding: UTF-8 + port: 80 properties: mail: smtp: auth: true - starttls: - enable: true - required: true - ssl: - enable: true + starttls: + enable: true + required: true debug_model: true # Swagger閰嶇疆 swagger: - host: 127.0.0.1 + host: title: ${project.name}鎺ュ彛鏂囨。 description: ${project.name}鎺ュ彛鏂囨。 + # 鍚敤Swagger锛岀敓浜х幆澧冨缓璁叧闂� enabled: true - context-path: + # 鍚敤swagger鍔犲瘑 + enable-encrypt: true # 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧� redirect-uri: / -des_pwd: 123456SDFKDJF +des_pwd: 123456SDFKDJF knife4j: enable: true basic: enable: true username: admin - password: + password: Doumee@168 + upload: type: blob qiwei: - serviceurl: https://wecom-qyapi.unilever-china.com/ \ No newline at end of file + serviceurl: https://wecom-qyapi.unilever-china.com \ No newline at end of file diff --git a/server/src/main/resources/application-test.yml b/server/src/main/resources/application-test.yml index 33ca68c..a8452a4 100644 --- a/server/src/main/resources/application-test.yml +++ b/server/src/main/resources/application-test.yml @@ -1,13 +1,17 @@ -# WEB鏈嶅姟鍣ㄩ厤缃� +project: + # 鐜锛岀敓浜х幆澧僷roduction锛屽紑鍙戠幆澧僤evelopment + env: production + # 妯″紡锛宼esting娴嬭瘯妯″紡 + mode: production server: port: 10040 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 +42,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 +83,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 d119626..56828b2 100644 --- a/server/src/main/resources/application.yml +++ b/server/src/main/resources/application.yml @@ -2,14 +2,10 @@ project: name: 鑱斿悎鍒╁崕浜嬩欢涓婃姤绯荤粺 version: 1.0.0 - # 鐜锛岀敓浜х幆澧僷roduction锛屽紑鍙戠幆澧僤evelopment - env: development - # 妯″紡锛宼esting娴嬭瘯妯″紡 - mode: testing spring: profiles: - active: test + active: pro # JSON杩斿洖閰嶇疆 jackson: # 榛樿鏃跺尯 @@ -33,6 +29,8 @@ configuration: map-underscore-to-camel-case: true log-impl: com.doumee.config.mybatis.DmStdOutImpl +# log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl +# log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl # 缂撳瓨鍐呭璁剧疆 @@ -60,7 +58,7 @@ # 鏃ュ織閰嶇疆 logback: - level: INFO + level: ERROR appender: ${project.env} # dao灞傜殑鏃ュ織璁剧疆涓篸ebug锛屾柟渚挎煡鐪媠ql logging: @@ -70,7 +68,7 @@ com.doumee.dao.system.SystemJobListMapper: ERROR com.doumee.dao.system.SystemJobSnippetMapper: ERROR com.doumee.dao.system.SystemJobLogMapper: ERROR - com.doumee.dao.business: DEBUG + com.doumee.dao.business: ERROR auth: jwt: enabled: true #鏄惁寮�鍚疛WT鐧诲綍璁よ瘉鍔熻兘 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