wu
2023-11-30 dc31792dc1b8ad1658e49ba8fce9a1be924e6fbb
理片笼测试修改
12个文件已修改
269个文件已添加
9250 ■■■■■ 已修改文件
.vscode/launch.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/api/home.js 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/home/index.vue 172 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/.gitignore 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/artifacts/springboot_vue3_war.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/artifacts/springboot_vue3_war_exploded.xml 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/compiler.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/encodings.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/jarRepositories.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__cn_hutool_hutool_all_5_5_4.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_2_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_2_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_2_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_2_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_2_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_baomidou_mybatis_plus_generator_3_2_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_deepoove_poi_tl_1_12_1.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_11_1.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_11_1.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_11_1.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_11_1.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_11_1.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_11_1.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_2_1.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_github_virtuald_curvesapi_1_07.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_github_xingshuangs_iot_communication_1_4_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_google_guava_guava_20_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_5.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__com_zaxxer_SparseBitSet_1_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_4.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__commons_codec_commons_codec_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__commons_io_commons_io_2_11_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__commons_logging_commons_logging_1_0_4.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__io_jsonwebtoken_jjwt_api_0_10_7.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__io_jsonwebtoken_jjwt_impl_0_10_7.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__io_jsonwebtoken_jjwt_jackson_0_10_7.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__junit_junit_4_13.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_21.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_13.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_13.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_commons_commons_collections4_4_4.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_commons_commons_compress_1_21.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_10.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_commons_commons_math3_3_6_1.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_13_3.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_13_3.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_poi_poi_5_2_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_poi_poi_ooxml_5_2_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_poi_poi_ooxml_lite_5_2_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_cache_1_8_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_config_core_1_8_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_config_ogdl_1_8_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_core_1_8_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_cipher_1_8_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_core_1_8_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_hash_1_8_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_event_1_8_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_lang_1_8_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_spring_1_8_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_spring_boot_starter_1_8_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_web_1_8_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_37.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_37.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_5_0_3.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_anim_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_awt_util_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_bridge_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_codec_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_constants_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_css_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_dom_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_ext_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_gvt_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_i18n_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_parser_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_script_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_shared_resources_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_svg_dom_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_svggen_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_transcoder_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_util_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_xml_1_14.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_xmlgraphics_commons_2_6.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_assertj_assertj_core_3_16_1.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_freemarker_freemarker_2_3_30.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_glassfish_jakarta_el_3_0_3.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_1_5_Final.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_6_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_6_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_6_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_6_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_6_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_6_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_junit_vintage_junit_vintage_engine_5_6_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_mockito_mockito_core_3_3_3.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_3_3.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_mybatis_mybatis_3_5_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_owasp_encoder_encoder_1_2_2.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_projectlombok_lombok_1_18_12.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_3_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_3_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_3_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_freemarker_2_3_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_3_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_3_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_3_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_3_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_3_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_3_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_websocket_2_3_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_3_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_3_2_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_aop_5_2_8_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_beans_5_2_8_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_context_5_2_8_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_context_support_5_2_8_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_core_5_2_8_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_expression_5_2_8_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_8_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_8_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_messaging_5_2_8_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_test_5_2_8_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_tx_5_2_8_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_web_5_2_8_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_8_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_websocket_5_2_8_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_7_0.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__org_yaml_snakeyaml_1_26.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__xml_apis_xml_apis_1_4_01.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/libraries/Maven__xml_apis_xml_apis_ext_1_3_04.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/misc.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/modules.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/.idea/vcs.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/package-lock.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/pom.xml 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/springboot-vue3.iml 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/MyGenerator.java 176 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/AuthorityApplication.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/advice/GlobalExceptionHandler.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/common/Result.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java 122 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/WebSocketServer.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/CrossOriginConfig.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/MybatisPlusConfig.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/SwaggerConfig.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/WebSocketConfig.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/AlarmController.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/CategoryController.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/DefaultController.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/MenuListController.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/PermissionController.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/RoleController.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/RoleMenuListController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/RolePermissionController.java 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/SpianController.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/UserController.java 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/device/DeviceController.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/BaseEntity.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/CarPosition.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/Category.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/Glass.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/MenuList.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/OrderOut.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/Out_slice.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/Permission.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/Queue.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/Role.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/RoleMenuList.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/RolePermission.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/StorageCage.java 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/StorageTask.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/User.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/alarmmg.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/device/DeviceEntity.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/dto/BaseDto.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/north_glass_buffer1.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/vo/AuthorizedUser.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/vo/BaseVo.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/vo/CategoryVo.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/vo/CheckResult.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/vo/MenuListVo.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/vo/OrderVo.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/vo/PermissionVo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/vo/ProductVo.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/vo/Result.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/vo/RoleMenuListVo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/vo/RolePermissionVo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/vo/RoleVo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/vo/UserVo.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/AlarmMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/CategoryMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/MenuListMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/PermissionMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/RoleMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/RoleMenuListMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/RolePermissionMapper.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/UserMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/device/DeviceMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/security/JWTRealm.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/security/NoSessionFilter.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/security/StatelessDefaultSubjectFactory.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/security/UserRealm.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/security/config/ShiroConfig.java 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/security/constant/SystemConstant.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/security/entity/JwtToken.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/security/util/JwtUtil.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/security/util/SecurityUtil.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/AlarmService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/CategoryService.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/MenuListService.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/OutSlice.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/PermissionService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/RoleMenuListService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/RolePermissionService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/RoleService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/UserService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/device/DeviceService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/device/impl/DeviceServiceImpl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/impl/CategoryServiceImpl.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/impl/MenuListServiceImpl.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/impl/PermissionServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/impl/RoleMenuListServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/impl/RolePermissionServiceImpl.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/impl/RoleServiceImpl.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/impl/UserServiceImpl.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/util/ValidatorUtil.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/application.properties 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/com/example/springboot/mapper/CategoryMapper.xml 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/com/example/springboot/mapper/DeviceMapper.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/com/example/springboot/mapper/MenuListMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/com/example/springboot/mapper/PermissionMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/com/example/springboot/mapper/RoleMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/com/example/springboot/mapper/RoleMenuListMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/com/example/springboot/mapper/RolePermissionMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/com/example/springboot/mapper/UserMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/sql/canadames.sql 1354 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vscode/launch.json
@@ -6,6 +6,13 @@
    "configurations": [
        {
            "type": "java",
            "name": "AuthorityApplication",
            "request": "launch",
            "mainClass": "com.example.springboot.AuthorityApplication",
            "projectName": "canadames"
        },
        {
            "type": "java",
            "name": "Current File",
            "request": "launch",
            "mainClass": "${file}"
CanadaMes-ui/src/api/home.js
@@ -21,13 +21,6 @@
    })
}
export function loadtask(type) {
    return request({
        url: '/home/loadinout?types=' + type,
        method: 'get',
    })
}
export function InsertOrder(orderid) {
    return request({
        url: '/home/InsertOrder?orderid=' + orderid,
@@ -132,11 +125,11 @@
    })
}
export function InsertQueueGlassId(glassid, id) {
export function InsertQueueGlassId(id,data) {
    return request({
        url: '/home/InsertQueueGlassId?glassid=' + glassid + '&id=' + id,
        url: '/home/InsertQueueGlassId?id=' + id,
        method: 'post',
        data: ""
        data
    })
}
@@ -195,3 +188,12 @@
        data
    })
}
export function isAllowQueues(isAllowQueue) {
    return request({
        url: '/home/AddOutSliceS?isAllowQueue'+isAllowQueue,
        method: 'post',
        data:""
    })
}
CanadaMes-ui/src/views/home/index.vue
@@ -215,14 +215,13 @@
                    <el-table-column :width="130" prop="cage" :label="$t('Cage No')"></el-table-column>
                    <el-table-column :width="130" prop="cell" :label="$t('Slot No')"></el-table-column>
                    <el-table-column :width="180" prop="glassId" :label="$t('Outfeed glass barcode')"></el-table-column>
                    <el-table-column :width="130" prop="north_glass_buffer1s.ordernumber"
                    <el-table-column :width="130" prop="orderId"
                        :label="$t('Order No')"></el-table-column>
                    <el-table-column prop="north_glass_buffer1s.listnumber" :label="$t('List No')"></el-table-column>
                    <el-table-column prop="north_glass_buffer1s.boxnumber" :label="$t('Box No')"></el-table-column>
                    <el-table-column prop="orderId" :label="$t('List No')"></el-table-column>
                    <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column>
                    <el-table-column :width="130" prop="lengthWidth" :label="$t('Dim')">
                        <template slot-scope='scope'>
                            {{ scope.row.north_glass_buffer1s.glasslength }}*{{ scope.row.north_glass_buffer1s.glassheight
                            }}
                            {{ scope.row.glasswidthmm }}*1{{ scope.row.glassheightmm }}
                        </template>
                    </el-table-column>
                    <el-table-column :label="$t('Terminate Task')">
@@ -237,14 +236,13 @@
                    <el-table-column :width="130" prop="cage" :label="$t('Cage No')"></el-table-column>
                    <el-table-column :width="130" prop="cell" :label="$t('Slot No')"></el-table-column>
                    <el-table-column :width="180" prop="glassId" :label="$t('Infeed glass barcode')"></el-table-column>
                    <el-table-column :width="130" prop="north_glass_buffer1s.ordernumber"
                    <el-table-column :width="130" prop="orderId"
                        :label="$t('Order No')"></el-table-column>
                    <el-table-column prop="north_glass_buffer1s.listnumber" :label="$t('List No')"></el-table-column>
                    <el-table-column prop="north_glass_buffer1s.boxnumber" :label="$t('Box No')"></el-table-column>
                    <el-table-column prop="orderId" :label="$t('List No')"></el-table-column>
                    <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column>
                    <el-table-column :width="130" prop="lengthWidth" :label="$t('Dim')">
                        <template slot-scope='scope'>
                            {{ scope.row.north_glass_buffer1s.glasslength }}*{{ scope.row.north_glass_buffer1s.glassheight
                            }}
                            {{ scope.row.glasswidthmm }}*1{{ scope.row.glassheightmm }}
                        </template>
                    </el-table-column>
@@ -336,28 +334,28 @@
                    <el-button type="primary" @click="showform(3)">{{ $t('Query') }}</el-button>
                </el-form-item>
                <el-form-item :label="$t('Barcode')">
                    <el-input v-model="form.barcode" readonly autocomplete="off" />
                    <el-input v-model="form.glassId" readonly autocomplete="off" />
                </el-form-item>
                <el-form-item :label="$t('Order No')">
                    <el-input v-model="form.ordernumber" readonly autocomplete="off" />
                    <el-input v-model="form.orderId" readonly autocomplete="off" />
                </el-form-item>
                <el-form-item :label="$t('List No')">
                    <el-input v-model="form.listnumber" readonly autocomplete="off" />
                    <el-input v-model="form.listId" readonly autocomplete="off" />
                </el-form-item>
                <el-form-item :label="$t('Box No')">
                    <el-input v-model="form.boxnumber" readonly autocomplete="off" />
                    <el-input v-model="form.boxId" readonly autocomplete="off" />
                </el-form-item>
                <el-form-item :label="$t('Length')">
                    <el-input v-model="form.glasslength" readonly autocomplete="off" />
                </el-form-item>
                <el-form-item :label="$t('Width')">
                    <el-input v-model="form.glassheight" readonly autocomplete="off" />
                </el-form-item>
                <el-form-item :label="$t('Length')">
                    <el-input v-model="form.glasslengthmm" readonly autocomplete="off" />
                    <el-input v-model="form.glasswidthmm" readonly autocomplete="off" />
                </el-form-item>
                <el-form-item :label="$t('Width')">
                    <el-input v-model="form.glassheightmm" readonly autocomplete="off" />
                </el-form-item>
                <el-form-item :label="$t('Length')">
                    <el-input v-model="form.glasswidth" readonly autocomplete="off" />
                </el-form-item>
                <el-form-item :label="$t('Width')">
                    <el-input v-model="form.glassheight" readonly autocomplete="off" />
                </el-form-item>
            </el-form>
@@ -407,10 +405,19 @@
                <el-table-column :width="55" prop="tier" :label="$t('The Side')"></el-table-column>
                <el-table-column :width="145" prop="glassId" :label="$t('Barcode')"></el-table-column>
                <el-table-column :width="100" prop="orderId" :label="$t('Order No')"></el-table-column>
                <el-table-column :width="80" prop="north_glass_buffer1s.listnumber"
                <el-table-column :width="80" prop="listId"
                    :label="$t('List No')"></el-table-column>
                <el-table-column :width="100" prop="north_glass_buffer1s.boxnumber" :label="$t('Box No')"></el-table-column>
                <el-table-column :width="150" prop="lengthWidth" :label="$t('Dim')"></el-table-column>
                <el-table-column :width="100" prop="boxId" :label="$t('Box No')"></el-table-column>
                <el-table-column :width="100" prop="state" :label="$t('State')">
                    <template slot-scope='scope'>
                        {{ scope.row.state==1?"1":"2" }}
                    </template>
                </el-table-column>
                <el-table-column :width="150" prop="lengthWidth" :label="$t('Dim')">
                    <template slot-scope='scope'>
                        {{ scope.row.glassWidthMm }}{{scope.row.glassWidthMm>0?"*":""}}{{ scope.row.glassHeightMm }}
                    </template>
                </el-table-column>
                <el-table-column :width="280" :label="$t('Operate')">
                    <template slot-scope='scope'>
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
@@ -420,7 +427,7 @@
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                            @click="UpdateDisabled(scope.row.cage, scope.row.cell, scope.row.disabled == 0 ? 1 : 0)">
                            {{ scope.row.disabled == 0 ? $t('Enable') : $t('Disable') }}</el-button>
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="scope.row.glassId!=null?true:false"
                            @click="insertglass(scope.row.cage, scope.row.cell, scope.row.tier)">{{ $t('Increase')
                            }}</el-button>
                    </template>
@@ -465,106 +472,106 @@
                    <el-form-item>
                        <el-input style="width:50%;margin-left: 20%;" :placeholder="$t('Enter the glass barcode')"
                            v-model="glassid2"></el-input>
                        <el-button type="primary" @click="SelectGlassByGlassIDs(1)" :disabled="disabled">{{ $t('Query')
                        <el-button type="primary" @click="SelectGlassByGlassIDs(1)" >{{ $t('Query')
                        }}</el-button>
                    </el-form-item>
                    <el-form-item>
                        <el-input style="width:50%;margin-left: 20%;" :placeholder="$t('Enter the glass barcode')"
                            v-model="glassid1"></el-input>
                        <el-button type="primary" @click="SelectGlassByGlassIDs(2)" :disabled="disabled">{{ $t('Query')
                        <el-button type="primary" @click="SelectGlassByGlassIDs(2)" >{{ $t('Query')
                        }}</el-button>
                    </el-form-item>
                </div>
                <div style="display: flex;justify-content: space-around;">
                    <el-form-item :label="$t('Barcode')">
                        <el-input v-model="form2.barcode" readonly autocomplete="off" />
                        <el-input v-model="form2.glassId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Barcode')">
                        <el-input v-model="form4.barcode" readonly autocomplete="off" />
                        <el-input v-model="form4.glassId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Barcode')">
                        <el-input v-model="form3.barcode" readonly autocomplete="off" />
                        <el-input v-model="form3.glassId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Barcode')">
                        <el-input v-model="form5.barcode" readonly autocomplete="off" />
                        <el-input v-model="form5.glassId" readonly autocomplete="off" />
                    </el-form-item>
                </div>
                <div style="display: flex;justify-content: space-around;">
                    <el-form-item :label="$t('Order No')">
                        <el-input v-model="form2.ordernumber" readonly autocomplete="off" />
                        <el-input v-model="form2.orderId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Order No')">
                        <el-input v-model="form4.ordernumber" readonly autocomplete="off" />
                        <el-input v-model="form4.orderId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Order No')">
                        <el-input v-model="form3.ordernumber" readonly autocomplete="off" />
                        <el-input v-model="form3.orderId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Order No')">
                        <el-input v-model="form5.ordernumber" readonly autocomplete="off" />
                        <el-input v-model="form5.orderId" readonly autocomplete="off" />
                    </el-form-item>
                </div>
                <div style="display: flex;justify-content: space-around;">
                    <el-form-item :label="$t('List No')">
                        <el-input v-model="form2.listnumber" readonly autocomplete="off" />
                        <el-input v-model="form2.listId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('List No')">
                        <el-input v-model="form4.listnumber" readonly autocomplete="off" />
                        <el-input v-model="form4.listId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('List No')">
                        <el-input v-model="form3.listnumber" readonly autocomplete="off" />
                        <el-input v-model="form3.listId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('List No')">
                        <el-input v-model="form5.listnumber" readonly autocomplete="off" />
                        <el-input v-model="form5.listId" readonly autocomplete="off" />
                    </el-form-item>
                </div>
                <div style="display: flex;justify-content: space-around;">
                    <el-form-item :label="$t('Box No')">
                        <el-input v-model="form2.boxnumber" readonly autocomplete="off" />
                        <el-input v-model="form2.boxId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Box No')">
                        <el-input v-model="form4.boxnumber" readonly autocomplete="off" />
                        <el-input v-model="form4.boxId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Box No')">
                        <el-input v-model="form3.boxnumber" readonly autocomplete="off" />
                        <el-input v-model="form3.boxId" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Box No')">
                        <el-input v-model="form5.boxnumber" readonly autocomplete="off" />
                        <el-input v-model="form5.boxId" readonly autocomplete="off" />
                    </el-form-item>
                </div>
                <div style="display: flex;justify-content: space-around;">
                    <el-form-item :label="$t('Length')">
                        <el-input v-model="form2.glasslength" readonly autocomplete="off" />
                        <el-input v-model="form2.glasswidthmm" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Length')">
                        <el-input v-model="form4.glasslength" readonly autocomplete="off" />
                        <el-input v-model="form4.glasswidthmm" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Length')">
                        <el-input v-model="form3.glasslength" readonly autocomplete="off" />
                        <el-input v-model="form3.glasswidthmm" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Length')">
                        <el-input v-model="form5.glasslength" readonly autocomplete="off" />
                        <el-input v-model="form5.glasswidthmm" readonly autocomplete="off" />
                    </el-form-item>
                </div>
                <div style="display: flex;justify-content: space-around;">
                    <el-form-item :label="$t('Width')">
                        <el-input v-model="form2.glassheight" readonly autocomplete="off" />
                        <el-input v-model="form2.glassheightmm" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Width')">
                        <el-input v-model="form4.glassheight" readonly autocomplete="off" />
                        <el-input v-model="form4.glassheightmm" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Width')">
                        <el-input v-model="form3.glassheight" readonly autocomplete="off" />
                        <el-input v-model="form3.glassheightmm" readonly autocomplete="off" />
                    </el-form-item>
                    <el-form-item :label="$t('Width')">
                        <el-input v-model="form5.glassheight" readonly autocomplete="off" />
                        <el-input v-model="form5.glassheightmm" readonly autocomplete="off" />
                    </el-form-item>
                </div>
                <div style="display: flex;justify-content: space-around;">
                    <el-button @click="DeleteQueueGlasss(2)" type="primary" :disabled="disabled">{{ $t('Clear Current')
                    <el-button @click="DeleteQueueGlasss(2)" type="primary" >{{ $t('Clear Current')
                    }}</el-button>
                    <el-button @click="InsertQueueGlass(2)" type="primary" :disabled="disabled">
                        {{ $t('Confirm Modification') }}</el-button>
                    <el-button @click="DeleteQueueGlasss(1)" type="primary" :disabled="disabled">{{ $t('Clear Current')
                    <el-button @click="DeleteQueueGlasss(1)" type="primary" >{{ $t('Clear Current')
                    }}</el-button>
                    <el-button @click="InsertQueueGlass(1)" type="primary" :disabled="disabled1">
                        {{ $t('Confirm Modification') }}</el-button>
@@ -581,12 +588,12 @@
            <el-button type="primary" @click="showform7()">{{ $t('Increase') }}</el-button>
            <el-table :data="this.OutSlice" :height="700" border style="width: 100%;overflow: auto;">
                <el-table-column prop="glassId" :label="$t('Barcode')"></el-table-column>
                <el-table-column prop="north_glass_buffer1s.ordernumber" :label="$t('Order No')"></el-table-column>
                <el-table-column prop="north_glass_buffer1s.listnumber" :label="$t('List No')"></el-table-column>
                <el-table-column prop="north_glass_buffer1s.boxnumber" :label="$t('Box No')"></el-table-column>
                <el-table-column prop="orderId" :label="$t('Order No')"></el-table-column>
                <el-table-column prop="listId" :label="$t('List No')"></el-table-column>
                <el-table-column prop="boxId" :label="$t('Box No')"></el-table-column>
                <el-table-column prop="barCode" :label="$t('Frame No')"></el-table-column>
                <el-table-column prop="north_glass_buffer1s.glasslength" :label="$t('Length')"></el-table-column>
                <el-table-column prop="north_glass_buffer1s.glassheight" :label="$t('Width')"></el-table-column>
                <el-table-column prop="glasswidthmm" :label="$t('Length')"></el-table-column>
                <el-table-column prop="glassheightmm" :label="$t('Width')"></el-table-column>
                <el-table-column :width="280" :label="$t('Operate')">
                    <template slot-scope='scope'>
                        <el-button type="text" size="small" @click="getTopMove(scope.row, scope.$index)"
@@ -651,7 +658,7 @@
<script>
import {
    home, home2, loadtask, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo, SelectCageInfo, DeleteByGlassID, OutByGlassID, Loadcarlist,
    home, home2, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo, SelectCageInfo, DeleteByGlassID, OutByGlassID, Loadcarlist,
    SelectPassword, SelectGlassByGlassID, Disabled, Inglassid, SelectGlass, InsertQueueGlassId, UpdateQueueState, DeleteQueueGlass, SelectGlassNo,
    SelectAluminumFrameInfoById, SelectProductionqueue, DeleteProductionQueueGlass, AddOutSliceS
} from "../../api/home";
@@ -791,7 +798,7 @@
                    if (obj.form3 != null && obj.form3 != "" && obj.state[0] == 0) {
                        this.form5 = obj.form3[0];
                        this.showform3();
                        if (this.form5.glassheightmm < 380 || this.form5.glasslengthmm < 390 || this.form5.glassheightmm > 1810 || this.form5.glasslengthmm > 2760) {
                        if (this.form5.glassheight < 380 || this.form5.glasswidth < 390 || this.form5.glassheight > 1810 || this.form5.glasswidth > 2760) {
                            if (this.disabled1 == false) {
                                this.disabled1 = true;
                                this.$message.error(this.$t('The glass size is not within the range'));
@@ -800,7 +807,7 @@
                            this.disabled1 = false;
                        }
                    } else {
                        if (this.form5.glassheightmm < 380 || this.form5.glasslengthmm < 390 || this.form5.glassheightmm > 1810 || this.form5.glasslengthmm > 2760) {
                        if (this.form5.glassheight < 380 || this.form5.glasswidth < 390 || this.form5.glassheight > 1810 || this.form5.glasswidth > 2760) {
                            if (this.disabled1 == false) {
                                this.disabled1 = true;
                                // this.$message.error(this.$t('The glass size is not within the range'));
@@ -817,9 +824,6 @@
                            this.cageinfo = res.data.cageinfo;
                        });
                    }
                    SelectGlass(this.orderid).then(res => {
                        this.GlassInfo = res.data.glass;
                    });
                    this.$forceUpdate();
@@ -846,14 +850,14 @@
                this.cagelist3 = res.data.list3;
                this.cagelist4 = res.data.list4;
            });
            //加载进片任务数据
            loadtask(this.task1).then(res => {
                this.tasklist1 = res.data.list;
            });
            //加载进出片任务数据
            loadtask(this.task2).then(res => {
                this.tasklist2 = res.data.list;
            });
            // //加载进片任务数据
            // loadtask(this.task1).then(res => {
            //     this.tasklist1 = res.data.list;
            // });
            // //加载进出片任务数据
            // loadtask(this.task2).then(res => {
            //     this.tasklist2 = res.data.list;
            // });
            //加载报警信息
            SelectAlarmmgInfo().then(res => {
                this.alarm = res.data.alarmmg;
@@ -937,6 +941,7 @@
            SelectGlassByGlassID(this.glassid).then(res => {
                if (res.data.form != null) {
                    this.form = res.data.form;
                    console.log(this.form);
                    this.dialogFormVisible = true;
                    this.$message.success(this.$t('query was successful'));
                } else {
@@ -967,6 +972,14 @@
                    if (res.data.form != null) {
                        this.form4 = res.data.form;
                        this.$message.success(this.$t('query was successful'));
                        if (this.form4.glassheight < 380 || this.form4.glasswidth < 390 || this.form4.glassheight > 1810 || this.form4.glasswidth > 2760) {
                            if (this.disabled == false) {
                                this.disabled = true;
                                this.$message.error(this.$t('The glass size is not within the range'));
                            }
                        } else {
                            this.disabled = false;
                        }
                    } else {
                        this.$message.error(this.$t('There is no such glass'));
                    }
@@ -984,13 +997,12 @@
                    if (res.data.form != null) {
                        this.form5 = res.data.form;
                        this.$message.success(this.$t('query was successful'));
                        if (this.form5.glassheightmm < 380 || this.form5.glasslengthmm < 390 || this.form5.glassheightmm > 1810 || this.form5.glasslengthmm > 2760) {
                        if (this.form5.glassheight < 380 || this.form5.glasswidth < 390 || this.form5.glassheight > 1810 || this.form5.glasswidth > 2760) {
                            if (this.disabled1 == false) {
                                this.disabled1 = true;
                                this.$message.error(this.$t('The glass size is not within the range'));
                            }
                        } else {
                            alert(1);
                            this.disabled1 = false;
                        }
                    } else {
@@ -1245,9 +1257,9 @@
        },
        //手动添加扫码位玻璃
        InsertQueueGlass(parameter) {
            if (parameter == 1 && this.form5.barcode != "") {
                if (this.form5.barcode != this.form2.barcode) {
                    InsertQueueGlassId(this.form5.barcode, 1).then(res => {
            if (parameter == 1 && this.form5.glassId != "") {
                if (this.form5.glassId != this.form2.glassId) {
                    InsertQueueGlassId(1,this.form5).then(res => {
                        if (res.data.message == 200) {
                            this.form5 = {};
                            this.$message.success(this.$t('Operation successful'));
@@ -1258,9 +1270,9 @@
                } else {
                    this.$message.error(this.$t('The glass ID already exists in the loading queue'));
                }
            } else if (parameter == 2 && this.form4.barcode != "") {
                if (this.form4.barcode != this.form3.barcode) {
                    InsertQueueGlassId(this.form4.barcode, 2).then(res => {
            } else if (parameter == 2 && this.form4.glassId != "") {
                if (this.form4.glassId != this.form3.glassId) {
                    InsertQueueGlassId(2,this.form4).then(res => {
                        if (res.data.message == 200) {
                            this.form4 = {};
                            this.$message.success(this.$t('Operation successful'));
springboot-vue3/.idea/.gitignore
New file
@@ -0,0 +1,8 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 数据源本地存储已忽略文件
/dataSources/
/dataSources.local.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
springboot-vue3/.idea/artifacts/springboot_vue3_war.xml
New file
@@ -0,0 +1,14 @@
<component name="ArtifactManager">
  <artifact type="war" name="springboot-vue3:war">
    <output-path>$PROJECT_DIR$/target</output-path>
    <properties id="maven-jee-properties">
      <options>
        <module>springboot-vue3</module>
        <packaging>war</packaging>
      </options>
    </properties>
    <root id="archive" name="springboot-vue3-0.0.1-SNAPSHOT.war">
      <element id="artifact" artifact-name="springboot-vue3:war exploded" />
    </root>
  </artifact>
</component>
springboot-vue3/.idea/artifacts/springboot_vue3_war_exploded.xml
New file
@@ -0,0 +1,150 @@
<component name="ArtifactManager">
  <artifact type="exploded-war" name="springboot-vue3:war exploded">
    <output-path>$PROJECT_DIR$/target/springboot-vue3-0.0.1-SNAPSHOT</output-path>
    <properties id="maven-jee-properties">
      <options>
        <exploded>true</exploded>
        <module>springboot-vue3</module>
        <packaging>war</packaging>
      </options>
    </properties>
    <root id="root">
      <element id="directory" name="WEB-INF">
        <element id="directory" name="classes">
          <element id="module-output" name="springboot-vue3" />
        </element>
        <element id="directory" name="lib">
          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter-web:2.3.2.RELEASE" />
          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter:2.3.2.RELEASE" />
          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot:2.3.2.RELEASE" />
          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.3.2.RELEASE" />
          <element id="library" level="project" name="Maven: ch.qos.logback:logback-classic:1.2.3" />
          <element id="library" level="project" name="Maven: ch.qos.logback:logback-core:1.2.3" />
          <element id="library" level="project" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" />
          <element id="library" level="project" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" />
          <element id="library" level="project" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" />
          <element id="library" level="project" name="Maven: org.yaml:snakeyaml:1.26" />
          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter-json:2.3.2.RELEASE" />
          <element id="library" level="project" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.1" />
          <element id="library" level="project" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.1" />
          <element id="library" level="project" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.1" />
          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.3.2.RELEASE" />
          <element id="library" level="project" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.37" />
          <element id="library" level="project" name="Maven: org.glassfish:jakarta.el:3.0.3" />
          <element id="library" level="project" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.37" />
          <element id="library" level="project" name="Maven: org.springframework:spring-web:5.2.8.RELEASE" />
          <element id="library" level="project" name="Maven: org.springframework:spring-beans:5.2.8.RELEASE" />
          <element id="library" level="project" name="Maven: org.springframework:spring-webmvc:5.2.8.RELEASE" />
          <element id="library" level="project" name="Maven: org.springframework:spring-aop:5.2.8.RELEASE" />
          <element id="library" level="project" name="Maven: org.springframework:spring-context:5.2.8.RELEASE" />
          <element id="library" level="project" name="Maven: org.springframework:spring-expression:5.2.8.RELEASE" />
          <element id="library" level="project" name="Maven: mysql:mysql-connector-java:8.0.21" />
          <element id="library" level="project" name="Maven: net.bytebuddy:byte-buddy:1.10.13" />
          <element id="library" level="project" name="Maven: org.springframework:spring-core:5.2.8.RELEASE" />
          <element id="library" level="project" name="Maven: org.springframework:spring-jcl:5.2.8.RELEASE" />
          <element id="library" level="project" name="Maven: cn.hutool:hutool-all:5.5.4" />
          <element id="library" level="project" name="Maven: org.hibernate.validator:hibernate-validator:6.1.5.Final" />
          <element id="library" level="project" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" />
          <element id="library" level="project" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" />
          <element id="library" level="project" name="Maven: com.fasterxml:classmate:1.5.1" />
          <element id="library" level="project" name="Maven: io.jsonwebtoken:jjwt-api:0.10.7" />
          <element id="library" level="project" name="Maven: io.jsonwebtoken:jjwt-impl:0.10.7" />
          <element id="library" level="project" name="Maven: io.jsonwebtoken:jjwt-jackson:0.10.7" />
          <element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.1" />
          <element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.1" />
          <element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.1" />
          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-spring-boot-starter:1.8.0" />
          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-spring:1.8.0" />
          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-core:1.8.0" />
          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-lang:1.8.0" />
          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-cache:1.8.0" />
          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-crypto-hash:1.8.0" />
          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-crypto-core:1.8.0" />
          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.8.0" />
          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-config-core:1.8.0" />
          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-config-ogdl:1.8.0" />
          <element id="library" level="project" name="Maven: commons-beanutils:commons-beanutils:1.9.4" />
          <element id="library" level="project" name="Maven: commons-collections:commons-collections:3.2.2" />
          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-event:1.8.0" />
          <element id="library" level="project" name="Maven: org.apache.shiro:shiro-web:1.8.0" />
          <element id="library" level="project" name="Maven: org.owasp.encoder:encoder:1.2.2" />
          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.2.RELEASE" />
          <element id="library" level="project" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.2.0" />
          <element id="library" level="project" name="Maven: com.baomidou:mybatis-plus:3.2.0" />
          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.2.RELEASE" />
          <element id="library" level="project" name="Maven: com.zaxxer:HikariCP:3.4.5" />
          <element id="library" level="project" name="Maven: org.springframework:spring-jdbc:5.2.8.RELEASE" />
          <element id="library" level="project" name="Maven: org.springframework:spring-tx:5.2.8.RELEASE" />
          <element id="library" level="project" name="Maven: com.baomidou:mybatis-plus-core:3.2.0" />
          <element id="library" level="project" name="Maven: com.baomidou:mybatis-plus-annotation:3.2.0" />
          <element id="library" level="project" name="Maven: com.github.jsqlparser:jsqlparser:2.1" />
          <element id="library" level="project" name="Maven: org.mybatis:mybatis:3.5.2" />
          <element id="library" level="project" name="Maven: com.baomidou:mybatis-plus-generator:3.2.0" />
          <element id="library" level="project" name="Maven: com.baomidou:mybatis-plus-extension:3.2.0" />
          <element id="library" level="project" name="Maven: org.mybatis:mybatis-spring:2.0.2" />
          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter-freemarker:2.3.2.RELEASE" />
          <element id="library" level="project" name="Maven: org.freemarker:freemarker:2.3.30" />
          <element id="library" level="project" name="Maven: org.springframework:spring-context-support:5.2.8.RELEASE" />
          <element id="library" level="project" name="Maven: io.springfox:springfox-swagger2:2.9.2" />
          <element id="library" level="project" name="Maven: io.swagger:swagger-annotations:1.5.20" />
          <element id="library" level="project" name="Maven: io.swagger:swagger-models:1.5.20" />
          <element id="library" level="project" name="Maven: io.springfox:springfox-spi:2.9.2" />
          <element id="library" level="project" name="Maven: io.springfox:springfox-core:2.9.2" />
          <element id="library" level="project" name="Maven: io.springfox:springfox-schema:2.9.2" />
          <element id="library" level="project" name="Maven: io.springfox:springfox-swagger-common:2.9.2" />
          <element id="library" level="project" name="Maven: io.springfox:springfox-spring-web:2.9.2" />
          <element id="library" level="project" name="Maven: com.google.guava:guava:20.0" />
          <element id="library" level="project" name="Maven: org.slf4j:slf4j-api:1.7.30" />
          <element id="library" level="project" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" />
          <element id="library" level="project" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" />
          <element id="library" level="project" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" />
          <element id="library" level="project" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" />
          <element id="library" level="project" name="Maven: com.deepoove:poi-tl:1.12.1" />
          <element id="library" level="project" name="Maven: org.apache.commons:commons-lang3:3.10" />
          <element id="library" level="project" name="Maven: org.apache.poi:poi-ooxml:5.2.2" />
          <element id="library" level="project" name="Maven: org.apache.poi:poi:5.2.2" />
          <element id="library" level="project" name="Maven: commons-codec:commons-codec:1.14" />
          <element id="library" level="project" name="Maven: org.apache.commons:commons-math3:3.6.1" />
          <element id="library" level="project" name="Maven: com.zaxxer:SparseBitSet:1.2" />
          <element id="library" level="project" name="Maven: org.apache.poi:poi-ooxml-lite:5.2.2" />
          <element id="library" level="project" name="Maven: org.apache.xmlbeans:xmlbeans:5.0.3" />
          <element id="library" level="project" name="Maven: org.apache.commons:commons-compress:1.21" />
          <element id="library" level="project" name="Maven: commons-io:commons-io:2.11.0" />
          <element id="library" level="project" name="Maven: com.github.virtuald:curvesapi:1.07" />
          <element id="library" level="project" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" />
          <element id="library" level="project" name="Maven: org.apache.commons:commons-collections4:4.4" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-transcoder:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-anim:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-css:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-ext:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-parser:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-svg-dom:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-awt-util:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:xmlgraphics-commons:2.6" />
          <element id="library" level="project" name="Maven: commons-logging:commons-logging:1.0.4" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-bridge:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-script:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-dom:1.14" />
          <element id="library" level="project" name="Maven: xml-apis:xml-apis:1.4.01" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-gvt:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-shared-resources:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-svggen:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-util:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-constants:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-i18n:1.14" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-xml:1.14" />
          <element id="library" level="project" name="Maven: xml-apis:xml-apis-ext:1.3.04" />
          <element id="library" level="project" name="Maven: org.apache.xmlgraphics:batik-codec:1.14" />
          <element id="library" level="project" name="Maven: org.springframework.boot:spring-boot-starter-websocket:2.3.2.RELEASE" />
          <element id="library" level="project" name="Maven: org.springframework:spring-messaging:5.2.8.RELEASE" />
          <element id="library" level="project" name="Maven: org.springframework:spring-websocket:5.2.8.RELEASE" />
          <element id="library" level="project" name="Maven: com.github.xingshuangs:iot-communication:1.4.2" />
        </element>
      </element>
      <element id="directory" name="META-INF">
        <element id="file-copy" path="$PROJECT_DIR$/target/springboot-vue3-0.0.1-SNAPSHOT/META-INF/MANIFEST.MF" />
      </element>
      <element id="javaee-facet-resources" facet="springboot-vue3/web/Web" />
    </root>
  </artifact>
</component>
springboot-vue3/.idea/compiler.xml
New file
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="CompilerConfiguration">
    <annotationProcessing>
      <profile default="true" name="Default" enabled="true" />
      <profile name="Maven default annotation processors profile" enabled="true">
        <sourceOutputDir name="target/generated-sources/annotations" />
        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
        <outputRelativeToContentRoot value="true" />
        <module name="springboot-vue3" />
      </profile>
    </annotationProcessing>
    <bytecodeTargetLevel>
      <module name="springboot-vue3" target="8" />
    </bytecodeTargetLevel>
  </component>
  <component name="JavacSettings">
    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
      <module name="springboot-vue3" options="-parameters" />
    </option>
  </component>
</project>
springboot-vue3/.idea/encodings.xml
New file
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="Encoding">
    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
    <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
  </component>
</project>
springboot-vue3/.idea/jarRepositories.xml
New file
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="RemoteRepositoriesConfiguration">
    <remote-repository>
      <option name="id" value="central" />
      <option name="name" value="Central Repository" />
      <option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="central" />
      <option name="name" value="Maven Central repository" />
      <option name="url" value="https://repo1.maven.org/maven2" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="nexus-aliyun" />
      <option name="name" value="nexus-aliyun" />
      <option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="jboss.community" />
      <option name="name" value="JBoss Community repository" />
      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
    </remote-repository>
  </component>
</project>
springboot-vue3/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: ch.qos.logback:logback-classic:1.2.3">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: ch.qos.logback:logback-core:1.2.3">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__cn_hutool_hutool_all_5_5_4.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: cn.hutool:hutool-all:5.5.4">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/cn/hutool/hutool-all/5.5.4/hutool-all-5.5.4.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/cn/hutool/hutool-all/5.5.4/hutool-all-5.5.4-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/cn/hutool/hutool-all/5.5.4/hutool-all-5.5.4-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_2_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.baomidou:mybatis-plus:3.2.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_2_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.baomidou:mybatis-plus-annotation:3.2.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_2_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.baomidou:mybatis-plus-boot-starter:3.2.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_2_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.baomidou:mybatis-plus-core:3.2.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_2_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.baomidou:mybatis-plus-extension:3.2.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_baomidou_mybatis_plus_generator_3_2_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.baomidou:mybatis-plus-generator:3.2.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_deepoove_poi_tl_1_12_1.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.deepoove:poi-tl:1.12.1">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/deepoove/poi-tl/1.12.1/poi-tl-1.12.1.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/deepoove/poi-tl/1.12.1/poi-tl-1.12.1-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/deepoove/poi-tl/1.12.1/poi-tl-1.12.1-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.fasterxml:classmate:1.5.1">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/classmate/1.5.1/classmate-1.5.1-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/classmate/1.5.1/classmate-1.5.1-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_11_1.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.1">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.11.1/jackson-annotations-2.11.1.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.11.1/jackson-annotations-2.11.1-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.11.1/jackson-annotations-2.11.1-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_11_1.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.1">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.11.1/jackson-core-2.11.1.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.11.1/jackson-core-2.11.1-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.11.1/jackson-core-2.11.1-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_11_1.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.1">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.11.1/jackson-databind-2.11.1.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.11.1/jackson-databind-2.11.1-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.11.1/jackson-databind-2.11.1-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_11_1.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.1">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.1/jackson-datatype-jdk8-2.11.1.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.1/jackson-datatype-jdk8-2.11.1-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.1/jackson-datatype-jdk8-2.11.1-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_11_1.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.1">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.1/jackson-datatype-jsr310-2.11.1.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.1/jackson-datatype-jsr310-2.11.1-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.1/jackson-datatype-jsr310-2.11.1-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_11_1.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.1">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.1/jackson-module-parameter-names-2.11.1.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.1/jackson-module-parameter-names-2.11.1-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.1/jackson-module-parameter-names-2.11.1-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_2_1.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.github.jsqlparser:jsqlparser:2.1">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/github/jsqlparser/jsqlparser/2.1/jsqlparser-2.1.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/github/jsqlparser/jsqlparser/2.1/jsqlparser-2.1-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/github/jsqlparser/jsqlparser/2.1/jsqlparser-2.1-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_github_virtuald_curvesapi_1_07.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.github.virtuald:curvesapi:1.07">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/github/virtuald/curvesapi/1.07/curvesapi-1.07.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/github/virtuald/curvesapi/1.07/curvesapi-1.07-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/github/virtuald/curvesapi/1.07/curvesapi-1.07-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_github_xingshuangs_iot_communication_1_4_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.github.xingshuangs:iot-communication:1.4.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/github/xingshuangs/iot-communication/1.4.2/iot-communication-1.4.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/github/xingshuangs/iot-communication/1.4.2/iot-communication-1.4.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/github/xingshuangs/iot-communication/1.4.2/iot-communication-1.4.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_google_guava_guava_20_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.google.guava:guava:20.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/20.0/guava-20.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/20.0/guava-20.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/20.0/guava-20.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.jayway.jsonpath:json-path:2.4.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_5.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.zaxxer:HikariCP:3.4.5">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__com_zaxxer_SparseBitSet_1_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: com.zaxxer:SparseBitSet:1.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/SparseBitSet/1.2/SparseBitSet-1.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/SparseBitSet/1.2/SparseBitSet-1.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/SparseBitSet/1.2/SparseBitSet-1.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_4.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: commons-beanutils:commons-beanutils:1.9.4">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.4/commons-beanutils-1.9.4.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.4/commons-beanutils-1.9.4-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.4/commons-beanutils-1.9.4-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__commons_codec_commons_codec_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: commons-codec:commons-codec:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.14/commons-codec-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.14/commons-codec-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.14/commons-codec-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: commons-collections:commons-collections:3.2.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__commons_io_commons_io_2_11_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: commons-io:commons-io:2.11.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/commons-io/commons-io/2.11.0/commons-io-2.11.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/commons-io/commons-io/2.11.0/commons-io-2.11.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/commons-io/commons-io/2.11.0/commons-io-2.11.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__commons_logging_commons_logging_1_0_4.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: commons-logging:commons-logging:1.0.4">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__io_jsonwebtoken_jjwt_api_0_10_7.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: io.jsonwebtoken:jjwt-api:0.10.7">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/io/jsonwebtoken/jjwt-api/0.10.7/jjwt-api-0.10.7.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/io/jsonwebtoken/jjwt-api/0.10.7/jjwt-api-0.10.7-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/io/jsonwebtoken/jjwt-api/0.10.7/jjwt-api-0.10.7-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__io_jsonwebtoken_jjwt_impl_0_10_7.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: io.jsonwebtoken:jjwt-impl:0.10.7">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/io/jsonwebtoken/jjwt-impl/0.10.7/jjwt-impl-0.10.7.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/io/jsonwebtoken/jjwt-impl/0.10.7/jjwt-impl-0.10.7-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/io/jsonwebtoken/jjwt-impl/0.10.7/jjwt-impl-0.10.7-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__io_jsonwebtoken_jjwt_jackson_0_10_7.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: io.jsonwebtoken:jjwt-jackson:0.10.7">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/io/jsonwebtoken/jjwt-jackson/0.10.7/jjwt-jackson-0.10.7.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/io/jsonwebtoken/jjwt-jackson/0.10.7/jjwt-jackson-0.10.7-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/io/jsonwebtoken/jjwt-jackson/0.10.7/jjwt-jackson-0.10.7-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: io.springfox:springfox-core:2.9.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-core/2.9.2/springfox-core-2.9.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-core/2.9.2/springfox-core-2.9.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-core/2.9.2/springfox-core-2.9.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: io.springfox:springfox-schema:2.9.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-schema/2.9.2/springfox-schema-2.9.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-schema/2.9.2/springfox-schema-2.9.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-schema/2.9.2/springfox-schema-2.9.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: io.springfox:springfox-spi:2.9.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-spi/2.9.2/springfox-spi-2.9.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-spi/2.9.2/springfox-spi-2.9.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-spi/2.9.2/springfox-spi-2.9.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: io.springfox:springfox-spring-web:2.9.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-spring-web/2.9.2/springfox-spring-web-2.9.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-spring-web/2.9.2/springfox-spring-web-2.9.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-spring-web/2.9.2/springfox-spring-web-2.9.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: io.springfox:springfox-swagger2:2.9.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger2/2.9.2/springfox-swagger2-2.9.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger2/2.9.2/springfox-swagger2-2.9.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger2/2.9.2/springfox-swagger2-2.9.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: io.springfox:springfox-swagger-common:2.9.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger-common/2.9.2/springfox-swagger-common-2.9.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger-common/2.9.2/springfox-swagger-common-2.9.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger-common/2.9.2/springfox-swagger-common-2.9.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: io.springfox:springfox-swagger-ui:2.9.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger-ui/2.9.2/springfox-swagger-ui-2.9.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger-ui/2.9.2/springfox-swagger-ui-2.9.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger-ui/2.9.2/springfox-swagger-ui-2.9.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: io.swagger:swagger-annotations:1.5.20">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/io/swagger/swagger-annotations/1.5.20/swagger-annotations-1.5.20.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/io/swagger/swagger-annotations/1.5.20/swagger-annotations-1.5.20-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/io/swagger/swagger-annotations/1.5.20/swagger-annotations-1.5.20-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: io.swagger:swagger-models:1.5.20">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/io/swagger/swagger-models/1.5.20/swagger-models-1.5.20.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/io/swagger/swagger-models/1.5.20/swagger-models-1.5.20-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/io/swagger/swagger-models/1.5.20/swagger-models-1.5.20-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: jakarta.activation:jakarta.activation-api:1.2.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: jakarta.validation:jakarta.validation-api:2.0.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__junit_junit_4_13.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: junit:junit:4.13">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.13/junit-4.13.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.13/junit-4.13-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.13/junit-4.13-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_21.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: mysql:mysql-connector-java:8.0.21">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/8.0.21/mysql-connector-java-8.0.21.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/8.0.21/mysql-connector-java-8.0.21-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/8.0.21/mysql-connector-java-8.0.21-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_13.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: net.bytebuddy:byte-buddy:1.10.13">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/net/bytebuddy/byte-buddy/1.10.13/byte-buddy-1.10.13.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/net/bytebuddy/byte-buddy/1.10.13/byte-buddy-1.10.13-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/net/bytebuddy/byte-buddy/1.10.13/byte-buddy-1.10.13-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_13.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: net.bytebuddy:byte-buddy-agent:1.10.13">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/net/bytebuddy/byte-buddy-agent/1.10.13/byte-buddy-agent-1.10.13.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/net/bytebuddy/byte-buddy-agent/1.10.13/byte-buddy-agent-1.10.13-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/net/bytebuddy/byte-buddy-agent/1.10.13/byte-buddy-agent-1.10.13-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: net.minidev:accessors-smart:1.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/net/minidev/accessors-smart/1.2/accessors-smart-1.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/net/minidev/accessors-smart/1.2/accessors-smart-1.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: net.minidev:json-smart:2.3">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/net/minidev/json-smart/2.3/json-smart-2.3.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/net/minidev/json-smart/2.3/json-smart-2.3-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/net/minidev/json-smart/2.3/json-smart-2.3-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_commons_commons_collections4_4_4.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.commons:commons-collections4:4.4">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-collections4/4.4/commons-collections4-4.4.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-collections4/4.4/commons-collections4-4.4-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-collections4/4.4/commons-collections4-4.4-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_commons_commons_compress_1_21.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.commons:commons-compress:1.21">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-compress/1.21/commons-compress-1.21.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-compress/1.21/commons-compress-1.21-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-compress/1.21/commons-compress-1.21-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_10.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.commons:commons-lang3:3.10">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_commons_commons_math3_3_6_1.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.commons:commons-math3:3.6.1">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_13_3.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.logging.log4j:log4j-api:2.13.3">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_13_3.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_poi_poi_5_2_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.poi:poi:5.2.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi/5.2.2/poi-5.2.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi/5.2.2/poi-5.2.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi/5.2.2/poi-5.2.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_poi_poi_ooxml_5_2_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.poi:poi-ooxml:5.2.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi-ooxml/5.2.2/poi-ooxml-5.2.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi-ooxml/5.2.2/poi-ooxml-5.2.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi-ooxml/5.2.2/poi-ooxml-5.2.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_poi_poi_ooxml_lite_5_2_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.poi:poi-ooxml-lite:5.2.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi-ooxml-lite/5.2.2/poi-ooxml-lite-5.2.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi-ooxml-lite/5.2.2/poi-ooxml-lite-5.2.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi-ooxml-lite/5.2.2/poi-ooxml-lite-5.2.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_cache_1_8_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.shiro:shiro-cache:1.8.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-cache/1.8.0/shiro-cache-1.8.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-cache/1.8.0/shiro-cache-1.8.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-cache/1.8.0/shiro-cache-1.8.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_config_core_1_8_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.shiro:shiro-config-core:1.8.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-config-core/1.8.0/shiro-config-core-1.8.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-config-core/1.8.0/shiro-config-core-1.8.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-config-core/1.8.0/shiro-config-core-1.8.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_config_ogdl_1_8_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.shiro:shiro-config-ogdl:1.8.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-config-ogdl/1.8.0/shiro-config-ogdl-1.8.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-config-ogdl/1.8.0/shiro-config-ogdl-1.8.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-config-ogdl/1.8.0/shiro-config-ogdl-1.8.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_core_1_8_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.shiro:shiro-core:1.8.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-core/1.8.0/shiro-core-1.8.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-core/1.8.0/shiro-core-1.8.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-core/1.8.0/shiro-core-1.8.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_cipher_1_8_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.shiro:shiro-crypto-cipher:1.8.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-crypto-cipher/1.8.0/shiro-crypto-cipher-1.8.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-crypto-cipher/1.8.0/shiro-crypto-cipher-1.8.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-crypto-cipher/1.8.0/shiro-crypto-cipher-1.8.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_core_1_8_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.shiro:shiro-crypto-core:1.8.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-crypto-core/1.8.0/shiro-crypto-core-1.8.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-crypto-core/1.8.0/shiro-crypto-core-1.8.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-crypto-core/1.8.0/shiro-crypto-core-1.8.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_hash_1_8_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.shiro:shiro-crypto-hash:1.8.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-crypto-hash/1.8.0/shiro-crypto-hash-1.8.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-crypto-hash/1.8.0/shiro-crypto-hash-1.8.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-crypto-hash/1.8.0/shiro-crypto-hash-1.8.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_event_1_8_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.shiro:shiro-event:1.8.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-event/1.8.0/shiro-event-1.8.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-event/1.8.0/shiro-event-1.8.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-event/1.8.0/shiro-event-1.8.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_lang_1_8_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.shiro:shiro-lang:1.8.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-lang/1.8.0/shiro-lang-1.8.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-lang/1.8.0/shiro-lang-1.8.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-lang/1.8.0/shiro-lang-1.8.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_spring_1_8_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.shiro:shiro-spring:1.8.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-spring/1.8.0/shiro-spring-1.8.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-spring/1.8.0/shiro-spring-1.8.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-spring/1.8.0/shiro-spring-1.8.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_spring_boot_starter_1_8_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.shiro:shiro-spring-boot-starter:1.8.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-spring-boot-starter/1.8.0/shiro-spring-boot-starter-1.8.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-spring-boot-starter/1.8.0/shiro-spring-boot-starter-1.8.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-spring-boot-starter/1.8.0/shiro-spring-boot-starter-1.8.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_shiro_shiro_web_1_8_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.shiro:shiro-web:1.8.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-web/1.8.0/shiro-web-1.8.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-web/1.8.0/shiro-web-1.8.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-web/1.8.0/shiro-web-1.8.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_37.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.37">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-core/9.0.37/tomcat-embed-core-9.0.37.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-core/9.0.37/tomcat-embed-core-9.0.37-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-core/9.0.37/tomcat-embed-core-9.0.37-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_37.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.37">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.37/tomcat-embed-websocket-9.0.37.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.37/tomcat-embed-websocket-9.0.37-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.37/tomcat-embed-websocket-9.0.37-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_5_0_3.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlbeans:xmlbeans:5.0.3">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlbeans/xmlbeans/5.0.3/xmlbeans-5.0.3.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlbeans/xmlbeans/5.0.3/xmlbeans-5.0.3-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlbeans/xmlbeans/5.0.3/xmlbeans-5.0.3-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_anim_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-anim:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-anim/1.14/batik-anim-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-anim/1.14/batik-anim-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-anim/1.14/batik-anim-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_awt_util_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-awt-util:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-awt-util/1.14/batik-awt-util-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-awt-util/1.14/batik-awt-util-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-awt-util/1.14/batik-awt-util-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_bridge_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-bridge:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-bridge/1.14/batik-bridge-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-bridge/1.14/batik-bridge-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-bridge/1.14/batik-bridge-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_codec_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-codec:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-codec/1.14/batik-codec-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-codec/1.14/batik-codec-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-codec/1.14/batik-codec-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_constants_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-constants:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-constants/1.14/batik-constants-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-constants/1.14/batik-constants-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-constants/1.14/batik-constants-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_css_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-css:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-css/1.14/batik-css-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-css/1.14/batik-css-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-css/1.14/batik-css-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_dom_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-dom:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-dom/1.14/batik-dom-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-dom/1.14/batik-dom-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-dom/1.14/batik-dom-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_ext_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-ext:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-ext/1.14/batik-ext-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-ext/1.14/batik-ext-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-ext/1.14/batik-ext-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_gvt_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-gvt:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-gvt/1.14/batik-gvt-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-gvt/1.14/batik-gvt-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-gvt/1.14/batik-gvt-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_i18n_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-i18n:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-i18n/1.14/batik-i18n-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-i18n/1.14/batik-i18n-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-i18n/1.14/batik-i18n-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_parser_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-parser:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-parser/1.14/batik-parser-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-parser/1.14/batik-parser-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-parser/1.14/batik-parser-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_script_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-script:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-script/1.14/batik-script-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-script/1.14/batik-script-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-script/1.14/batik-script-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_shared_resources_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-shared-resources:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-shared-resources/1.14/batik-shared-resources-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-shared-resources/1.14/batik-shared-resources-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-shared-resources/1.14/batik-shared-resources-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_svg_dom_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-svg-dom:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-svg-dom/1.14/batik-svg-dom-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-svg-dom/1.14/batik-svg-dom-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-svg-dom/1.14/batik-svg-dom-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_svggen_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-svggen:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-svggen/1.14/batik-svggen-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-svggen/1.14/batik-svggen-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-svggen/1.14/batik-svggen-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_transcoder_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-transcoder:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-transcoder/1.14/batik-transcoder-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-transcoder/1.14/batik-transcoder-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-transcoder/1.14/batik-transcoder-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_util_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-util:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-util/1.14/batik-util-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-util/1.14/batik-util-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-util/1.14/batik-util-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_batik_xml_1_14.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:batik-xml:1.14">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-xml/1.14/batik-xml-1.14.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-xml/1.14/batik-xml-1.14-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/batik-xml/1.14/batik-xml-1.14-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apache_xmlgraphics_xmlgraphics_commons_2_6.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apache.xmlgraphics:xmlgraphics-commons:2.6">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/xmlgraphics-commons/2.6/xmlgraphics-commons-2.6.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/xmlgraphics-commons/2.6/xmlgraphics-commons-2.6-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlgraphics/xmlgraphics-commons/2.6/xmlgraphics-commons-2.6-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.apiguardian:apiguardian-api:1.1.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_assertj_assertj_core_3_16_1.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.assertj:assertj-core:3.16.1">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/assertj/assertj-core/3.16.1/assertj-core-3.16.1.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/assertj/assertj-core/3.16.1/assertj-core-3.16.1-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/assertj/assertj-core/3.16.1/assertj-core-3.16.1-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_freemarker_freemarker_2_3_30.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.freemarker:freemarker:2.3.30">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/freemarker/freemarker/2.3.30/freemarker-2.3.30.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/freemarker/freemarker/2.3.30/freemarker-2.3.30-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/freemarker/freemarker/2.3.30/freemarker-2.3.30-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_glassfish_jakarta_el_3_0_3.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.glassfish:jakarta.el:3.0.3">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.hamcrest:hamcrest:2.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest/2.2/hamcrest-2.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest/2.2/hamcrest-2.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_1_5_Final.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.hibernate.validator:hibernate-validator:6.1.5.Final">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/hibernate/validator/hibernate-validator/6.1.5.Final/hibernate-validator-6.1.5.Final.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/hibernate/validator/hibernate-validator/6.1.5.Final/hibernate-validator-6.1.5.Final-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/hibernate/validator/hibernate-validator/6.1.5.Final/hibernate-validator-6.1.5.Final-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_6_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.junit.jupiter:junit-jupiter:5.6.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter/5.6.2/junit-jupiter-5.6.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter/5.6.2/junit-jupiter-5.6.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter/5.6.2/junit-jupiter-5.6.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_6_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.junit.jupiter:junit-jupiter-api:5.6.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-api/5.6.2/junit-jupiter-api-5.6.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-api/5.6.2/junit-jupiter-api-5.6.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-api/5.6.2/junit-jupiter-api-5.6.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_6_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-engine/5.6.2/junit-jupiter-engine-5.6.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-engine/5.6.2/junit-jupiter-engine-5.6.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-engine/5.6.2/junit-jupiter-engine-5.6.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_6_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.junit.jupiter:junit-jupiter-params:5.6.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-params/5.6.2/junit-jupiter-params-5.6.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-params/5.6.2/junit-jupiter-params-5.6.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-params/5.6.2/junit-jupiter-params-5.6.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_6_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.junit.platform:junit-platform-commons:1.6.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-commons/1.6.2/junit-platform-commons-1.6.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-commons/1.6.2/junit-platform-commons-1.6.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-commons/1.6.2/junit-platform-commons-1.6.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_6_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.junit.platform:junit-platform-engine:1.6.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-engine/1.6.2/junit-platform-engine-1.6.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-engine/1.6.2/junit-platform-engine-1.6.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-engine/1.6.2/junit-platform-engine-1.6.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_junit_vintage_junit_vintage_engine_5_6_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.junit.vintage:junit-vintage-engine:5.6.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/vintage/junit-vintage-engine/5.6.2/junit-vintage-engine-5.6.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/vintage/junit-vintage-engine/5.6.2/junit-vintage-engine-5.6.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/junit/vintage/junit-vintage-engine/5.6.2/junit-vintage-engine-5.6.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.mapstruct:mapstruct:1.2.0.Final">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/mapstruct/mapstruct/1.2.0.Final/mapstruct-1.2.0.Final.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/mapstruct/mapstruct/1.2.0.Final/mapstruct-1.2.0.Final-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/mapstruct/mapstruct/1.2.0.Final/mapstruct-1.2.0.Final-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_mockito_mockito_core_3_3_3.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.mockito:mockito-core:3.3.3">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-core/3.3.3/mockito-core-3.3.3.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-core/3.3.3/mockito-core-3.3.3-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-core/3.3.3/mockito-core-3.3.3-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_3_3.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.mockito:mockito-junit-jupiter:3.3.3">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-junit-jupiter/3.3.3/mockito-junit-jupiter-3.3.3.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-junit-jupiter/3.3.3/mockito-junit-jupiter-3.3.3-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-junit-jupiter/3.3.3/mockito-junit-jupiter-3.3.3-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_mybatis_mybatis_3_5_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.mybatis:mybatis:3.5.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.5.2/mybatis-3.5.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.5.2/mybatis-3.5.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.mybatis:mybatis-spring:2.0.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/2.0.2/mybatis-spring-2.0.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/2.0.2/mybatis-spring-2.0.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/2.0.2/mybatis-spring-2.0.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.objenesis:objenesis:2.6">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/objenesis/objenesis/2.6/objenesis-2.6.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/objenesis/objenesis/2.6/objenesis-2.6-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/objenesis/objenesis/2.6/objenesis-2.6-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.opentest4j:opentest4j:1.2.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.ow2.asm:asm:5.0.4">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/5.0.4/asm-5.0.4-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/5.0.4/asm-5.0.4-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_owasp_encoder_encoder_1_2_2.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.owasp.encoder:encoder:1.2.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/owasp/encoder/encoder/1.2.2/encoder-1.2.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/owasp/encoder/encoder/1.2.2/encoder-1.2.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/owasp/encoder/encoder/1.2.2/encoder-1.2.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_projectlombok_lombok_1_18_12.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.projectlombok:lombok:1.18.12">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.12/lombok-1.18.12.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.12/lombok-1.18.12-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.12/lombok-1.18.12-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.skyscreamer:jsonassert:1.5.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.slf4j:jul-to-slf4j:1.7.30">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.slf4j:slf4j-api:1.7.30">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_3_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot:2.3.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot/2.3.2.RELEASE/spring-boot-2.3.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot/2.3.2.RELEASE/spring-boot-2.3.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot/2.3.2.RELEASE/spring-boot-2.3.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_3_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-autoconfigure/2.3.2.RELEASE/spring-boot-autoconfigure-2.3.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-autoconfigure/2.3.2.RELEASE/spring-boot-autoconfigure-2.3.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-autoconfigure/2.3.2.RELEASE/spring-boot-autoconfigure-2.3.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_3_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot-starter:2.3.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter/2.3.2.RELEASE/spring-boot-starter-2.3.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter/2.3.2.RELEASE/spring-boot-starter-2.3.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter/2.3.2.RELEASE/spring-boot-starter-2.3.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_freemarker_2_3_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot-starter-freemarker:2.3.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-freemarker/2.3.2.RELEASE/spring-boot-starter-freemarker-2.3.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-freemarker/2.3.2.RELEASE/spring-boot-starter-freemarker-2.3.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-freemarker/2.3.2.RELEASE/spring-boot-starter-freemarker-2.3.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_3_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-jdbc/2.3.2.RELEASE/spring-boot-starter-jdbc-2.3.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-jdbc/2.3.2.RELEASE/spring-boot-starter-jdbc-2.3.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-jdbc/2.3.2.RELEASE/spring-boot-starter-jdbc-2.3.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_3_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot-starter-json:2.3.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-json/2.3.2.RELEASE/spring-boot-starter-json-2.3.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-json/2.3.2.RELEASE/spring-boot-starter-json-2.3.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-json/2.3.2.RELEASE/spring-boot-starter-json-2.3.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_3_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot-starter-logging:2.3.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-logging/2.3.2.RELEASE/spring-boot-starter-logging-2.3.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-logging/2.3.2.RELEASE/spring-boot-starter-logging-2.3.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-logging/2.3.2.RELEASE/spring-boot-starter-logging-2.3.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_3_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot-starter-test:2.3.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-test/2.3.2.RELEASE/spring-boot-starter-test-2.3.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-test/2.3.2.RELEASE/spring-boot-starter-test-2.3.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-test/2.3.2.RELEASE/spring-boot-starter-test-2.3.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_3_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.3.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-tomcat/2.3.2.RELEASE/spring-boot-starter-tomcat-2.3.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-tomcat/2.3.2.RELEASE/spring-boot-starter-tomcat-2.3.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-tomcat/2.3.2.RELEASE/spring-boot-starter-tomcat-2.3.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_3_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot-starter-web:2.3.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-web/2.3.2.RELEASE/spring-boot-starter-web-2.3.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-web/2.3.2.RELEASE/spring-boot-starter-web-2.3.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-web/2.3.2.RELEASE/spring-boot-starter-web-2.3.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_websocket_2_3_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot-starter-websocket:2.3.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-websocket/2.3.2.RELEASE/spring-boot-starter-websocket-2.3.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-websocket/2.3.2.RELEASE/spring-boot-starter-websocket-2.3.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-websocket/2.3.2.RELEASE/spring-boot-starter-websocket-2.3.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_3_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot-test:2.3.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-test/2.3.2.RELEASE/spring-boot-test-2.3.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-test/2.3.2.RELEASE/spring-boot-test-2.3.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-test/2.3.2.RELEASE/spring-boot-test-2.3.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_3_2_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.2.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-test-autoconfigure/2.3.2.RELEASE/spring-boot-test-autoconfigure-2.3.2.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-test-autoconfigure/2.3.2.RELEASE/spring-boot-test-autoconfigure-2.3.2.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-test-autoconfigure/2.3.2.RELEASE/spring-boot-test-autoconfigure-2.3.2.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/plugin/spring-plugin-metadata/1.2.0.RELEASE/spring-plugin-metadata-1.2.0.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/plugin/spring-plugin-metadata/1.2.0.RELEASE/spring-plugin-metadata-1.2.0.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/plugin/spring-plugin-metadata/1.2.0.RELEASE/spring-plugin-metadata-1.2.0.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_aop_5_2_8_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-aop:5.2.8.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/5.2.8.RELEASE/spring-aop-5.2.8.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/5.2.8.RELEASE/spring-aop-5.2.8.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/5.2.8.RELEASE/spring-aop-5.2.8.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_beans_5_2_8_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-beans:5.2.8.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/5.2.8.RELEASE/spring-beans-5.2.8.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/5.2.8.RELEASE/spring-beans-5.2.8.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/5.2.8.RELEASE/spring-beans-5.2.8.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_context_5_2_8_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-context:5.2.8.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/5.2.8.RELEASE/spring-context-5.2.8.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/5.2.8.RELEASE/spring-context-5.2.8.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/5.2.8.RELEASE/spring-context-5.2.8.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_context_support_5_2_8_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-context-support:5.2.8.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context-support/5.2.8.RELEASE/spring-context-support-5.2.8.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context-support/5.2.8.RELEASE/spring-context-support-5.2.8.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context-support/5.2.8.RELEASE/spring-context-support-5.2.8.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_core_5_2_8_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-core:5.2.8.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/5.2.8.RELEASE/spring-core-5.2.8.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/5.2.8.RELEASE/spring-core-5.2.8.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/5.2.8.RELEASE/spring-core-5.2.8.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_expression_5_2_8_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-expression:5.2.8.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/5.2.8.RELEASE/spring-expression-5.2.8.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/5.2.8.RELEASE/spring-expression-5.2.8.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/5.2.8.RELEASE/spring-expression-5.2.8.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_8_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-jcl:5.2.8.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jcl/5.2.8.RELEASE/spring-jcl-5.2.8.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jcl/5.2.8.RELEASE/spring-jcl-5.2.8.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jcl/5.2.8.RELEASE/spring-jcl-5.2.8.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_8_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-jdbc:5.2.8.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/5.2.8.RELEASE/spring-jdbc-5.2.8.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/5.2.8.RELEASE/spring-jdbc-5.2.8.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/5.2.8.RELEASE/spring-jdbc-5.2.8.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_messaging_5_2_8_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-messaging:5.2.8.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-messaging/5.2.8.RELEASE/spring-messaging-5.2.8.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-messaging/5.2.8.RELEASE/spring-messaging-5.2.8.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-messaging/5.2.8.RELEASE/spring-messaging-5.2.8.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_test_5_2_8_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-test:5.2.8.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/5.2.8.RELEASE/spring-test-5.2.8.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/5.2.8.RELEASE/spring-test-5.2.8.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/5.2.8.RELEASE/spring-test-5.2.8.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_tx_5_2_8_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-tx:5.2.8.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/5.2.8.RELEASE/spring-tx-5.2.8.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/5.2.8.RELEASE/spring-tx-5.2.8.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/5.2.8.RELEASE/spring-tx-5.2.8.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_web_5_2_8_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-web:5.2.8.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/5.2.8.RELEASE/spring-web-5.2.8.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/5.2.8.RELEASE/spring-web-5.2.8.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/5.2.8.RELEASE/spring-web-5.2.8.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_8_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-webmvc:5.2.8.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/5.2.8.RELEASE/spring-webmvc-5.2.8.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/5.2.8.RELEASE/spring-webmvc-5.2.8.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/5.2.8.RELEASE/spring-webmvc-5.2.8.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_springframework_spring_websocket_5_2_8_RELEASE.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework:spring-websocket:5.2.8.RELEASE">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-websocket/5.2.8.RELEASE/spring-websocket-5.2.8.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-websocket/5.2.8.RELEASE/spring-websocket-5.2.8.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-websocket/5.2.8.RELEASE/spring-websocket-5.2.8.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_7_0.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.xmlunit:xmlunit-core:2.7.0">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/xmlunit/xmlunit-core/2.7.0/xmlunit-core-2.7.0.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/xmlunit/xmlunit-core/2.7.0/xmlunit-core-2.7.0-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/xmlunit/xmlunit-core/2.7.0/xmlunit-core-2.7.0-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__org_yaml_snakeyaml_1_26.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.yaml:snakeyaml:1.26">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.26/snakeyaml-1.26-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.26/snakeyaml-1.26-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__xml_apis_xml_apis_1_4_01.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: xml-apis:xml-apis:1.4.01">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/libraries/Maven__xml_apis_xml_apis_ext_1_3_04.xml
New file
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: xml-apis:xml-apis-ext:1.3.04">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/xml-apis/xml-apis-ext/1.3.04/xml-apis-ext-1.3.04.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/xml-apis/xml-apis-ext/1.3.04/xml-apis-ext-1.3.04-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/xml-apis/xml-apis-ext/1.3.04/xml-apis-ext-1.3.04-sources.jar!/" />
    </SOURCES>
  </library>
</component>
springboot-vue3/.idea/misc.xml
New file
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="FrameworkDetectionExcludesConfiguration">
    <file type="web" url="file://$PROJECT_DIR$" />
  </component>
  <component name="MavenProjectsManager">
    <option name="originalFiles">
      <list>
        <option value="$PROJECT_DIR$/pom.xml" />
      </list>
    </option>
  </component>
  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="11" project-jdk-type="JavaSDK" />
</project>
springboot-vue3/.idea/modules.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectModuleManager">
    <modules>
      <module fileurl="file://$PROJECT_DIR$/springboot-vue3.iml" filepath="$PROJECT_DIR$/springboot-vue3.iml" />
    </modules>
  </component>
</project>
springboot-vue3/.idea/vcs.xml
New file
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="VcsDirectoryMappings">
    <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
  </component>
</project>
springboot-vue3/package-lock.json
New file
@@ -0,0 +1,6 @@
{
  "name": "springboot-vue3",
  "lockfileVersion": 3,
  "requires": true,
  "packages": {}
}
springboot-vue3/pom.xml
New file
@@ -0,0 +1,190 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.2.RELEASE</version>
        <relativePath/>
    </parent>
<!--    <packaging>war</packaging>-->
    <groupId>com.springboot-vue3</groupId>
    <artifactId>springboot-vue3</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-vue3</name>
    <description>springboot-vue3 System</description>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <encoding>UTF-8</encoding>
        <java.version>8</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <spring-boot.version>2.3.2.RELEASE</spring-boot.version>
    </properties>
    <dependencies>
     <dependencies>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.7</version>
        </dependency>
        <dependency>
          <groupId>commons-io</groupId>
          <artifactId>commons-io</artifactId>
          <version>2.10.0</version>
          </dependency>
        </dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.5.4</version>
        </dependency>
        <!--参数校验-->
        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
        </dependency>
        <!--JWT-->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-api</artifactId>
            <version>0.10.7</version>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-impl</artifactId>
            <version>0.10.7</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-jackson</artifactId>
            <version>0.10.7</version>
            <scope>runtime</scope>
        </dependency>
        <!--shiro-->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-spring-boot-starter</artifactId>
            <version>1.8.0</version>
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-core</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
        <!-- swagger -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!-- swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>com.deepoove</groupId>
            <artifactId>poi-tl</artifactId>
            <version>1.12.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.xingshuangs</groupId>
            <artifactId>iot-communication</artifactId>
            <version>1.4.2</version>
        </dependency>
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
         </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                    <repository>docker/${project.artifactId}</repository>
                    <buildArgs>
                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <repositories>
        <repository>
            <id>nexus-aliyun</id>
            <name>nexus-aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>
springboot-vue3/springboot-vue3.iml
New file
@@ -0,0 +1,186 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
  <component name="FacetManager">
    <facet type="web" name="Web">
      <configuration>
        <webroots>
          <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
        </webroots>
        <sourceRoots>
          <root url="file://$MODULE_DIR$/src/main/java" />
          <root url="file://$MODULE_DIR$/src/main/resources" />
        </sourceRoots>
      </configuration>
    </facet>
    <facet type="Spring" name="Spring">
      <configuration />
    </facet>
  </component>
  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
    <output url="file://$MODULE_DIR$/target/classes" />
    <output-test url="file://$MODULE_DIR$/target/test-classes" />
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
      <excludeFolder url="file://$MODULE_DIR$/target" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
    <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.26" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.8.RELEASE" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.21" level="project" />
    <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.12" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.16.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.6.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.6.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.6.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.6.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.6.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.3.3" level="project" />
    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.13" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.13" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.3.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.8.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.2.8.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.7.0" level="project" />
    <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.1.5.Final" level="project" />
    <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
    <orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt-api:0.10.7" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: io.jsonwebtoken:jjwt-impl:0.10.7" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: io.jsonwebtoken:jjwt-jackson:0.10.7" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring-boot-starter:1.8.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.8.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.8.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-lang:1.8.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-cache:1.8.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-hash:1.8.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-core:1.8.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.8.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-core:1.8.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-ogdl:1.8.0" level="project" />
    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.4" level="project" />
    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-event:1.8.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.8.0" level="project" />
    <orderEntry type="library" name="Maven: org.owasp.encoder:encoder:1.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.2.0" level="project" />
    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.2.0" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.2.0" level="project" />
    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.2.0" level="project" />
    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:2.1" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.2" level="project" />
    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-generator:3.2.0" level="project" />
    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.2.0" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-freemarker:2.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.30" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
    <orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
    <orderEntry type="library" name="Maven: com.deepoove:poi-tl:1.12.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.10" level="project" />
    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:5.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.poi:poi:5.2.2" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
    <orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-lite:5.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:5.0.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.21" level="project" />
    <orderEntry type="library" name="Maven: commons-io:commons-io:2.11.0" level="project" />
    <orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.07" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-transcoder:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-anim:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-css:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-ext:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-parser:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svg-dom:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-awt-util:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:xmlgraphics-commons:2.6" level="project" />
    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.0.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-bridge:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-script:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-dom:1.14" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-gvt:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-shared-resources:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svggen:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-util:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-constants:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-i18n:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-xml:1.14" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis-ext:1.3.04" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-codec:1.14" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-websocket:2.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:5.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-websocket:5.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: com.github.xingshuangs:iot-communication:1.4.2" level="project" />
  </component>
</module>
springboot-vue3/src/main/java/MyGenerator.java
New file
@@ -0,0 +1,176 @@
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.ArrayList;
import java.util.List;
/**
 * mybatis-plus-generator代码生成器
 * 修改配置后直接运行main方法即可
 */
public class MyGenerator {
    /** 数据源配置*/
    private static final String jdbc = "jdbc:mysql://localhost:3306/canadames?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
    private static final String driverName = "com.mysql.cj.jdbc.Driver";
    private static final String username = "root";
    private static final String password = "beibo.123/";
    /** 包名*/
    private static final String moduleName = "device";
    /** 表名前缀*/
    private static final String beginName = "device";
    /** 需要生成代码的表*/
    private static final String [] tables = new String[]{"device"};
    public static void main(String[] args) {
        // 官方网站:https://baomidou.com/pages/d357af/#%E8%87%AA%E5%AE%9A%E4%B9%89%E5%B1%9E%E6%80%A7%E6%B3%A8%E5%85%A5
        // 参考网站:https://blog.csdn.net/kinghmj01/article/details/97748509
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();
        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        // 当前项目路径
        String projectPath = System.getProperty("user.dir");
        // 当前项目的下的路径
        gc.setOutputDir(projectPath + "/src/main/java");
        // 作者
        gc.setAuthor("yyq");
        // 是否打开输出目录 默认为true
        gc.setOpen(false);
        // 实体属性 Swagger2 注解
        gc.setSwagger2(true);
        // 自定义文件命名,注意 %s 会自动填充表实体属性!
        gc.setControllerName("%sController");
        gc.setServiceName("%sService");
        gc.setServiceImplName("%sServiceImpl");
        gc.setMapperName("%sDao");
        gc.setEntityName("%sEntity");
        mpg.setGlobalConfig(gc);
        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        // dsc.setSchemaName("public");
        dsc.setUrl(jdbc);
        dsc.setDriverName(driverName);
        dsc.setUsername(username);
        dsc.setPassword(password);
        mpg.setDataSource(dsc);
        // 设置包名
        PackageConfig pc = new PackageConfig();
        // 用于包名、表名前缀
        //pc.setModuleName(moduleName);
        // 生成到那些包下 如 com.modules主包下的 controller.sys.TestController
        pc.setParent("com.canadames");
        pc.setController("controller."+moduleName);
        pc.setService("service."+moduleName);
        pc.setServiceImpl("service."+moduleName+".impl");
        pc.setMapper("mapper."+moduleName);
        pc.setEntity("entity."+moduleName);
        mpg.setPackageInfo(pc);
        // 自定义配置
        InjectionConfig cfg = new InjectionConfig() {
            @Override
            public void initMap() {
                // to do nothing
            }
        };
        // 如果模板引擎是 freemarker
        String templatePath = "/templates/mapper.xml.ftl";
        // 如果模板引擎是 velocity
        // String templatePath = "/templates/mapper.xml.vm";
        // 自定义输出配置
        List<FileOutConfig> focList = new ArrayList<>();
        // 自定义配置会被优先输出
        focList.add(new FileOutConfig(templatePath) {
            @Override
            public String outputFile(TableInfo tableInfo) {
                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
                return projectPath + "/src/main/resources/mapper/" + moduleName + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
            }
        });
        /*
        cfg.setFileCreate(new IFileCreate() {
            @Override
            public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {
                // 判断自定义文件夹是否需要创建
                checkDir("调用默认方法创建的目录,自定义目录用");
                if (fileType == FileType.MAPPER) {
                    // 已经生成 mapper 文件判断存在,不想重新生成返回 false
                    return !new File(filePath).exists();
                }
                // 允许生成模板文件
                return true;
            }
        });
        */
        cfg.setFileOutConfigList(focList);
        mpg.setCfg(cfg);
        // 配置模板
        TemplateConfig templateConfig = new TemplateConfig();
        // 配置自定义输出模板
        //指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
        // templateConfig.setEntity("templates/entity2.java");
        // templateConfig.setService();
        // templateConfig.setController();
        templateConfig.setXml(null);
        mpg.setTemplate(templateConfig);
        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        //需要生成的表
        strategy.setInclude(tables);
        strategy.setControllerMappingHyphenStyle(true);
        //类名生成策略:驼峰命名
        strategy.setNaming(NamingStrategy.underline_to_camel);
        //字段名生成方式:驼峰命名
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        // 表前缀
        strategy.setTablePrefix(beginName+"_");
        // 写于父类中的公共字段(在父类中已经有的不需要生成的字段)
        strategy.setSuperEntityColumns("id", "updateTime", "createTime");
        // 每层的继承(不需要可不设置)
//        strategy.setSuperControllerClass("com.common.controller.MyController");
        strategy.setSuperServiceClass("com.baomidou.mybatisplus.extension.service.IService");
        strategy.setSuperServiceImplClass("com.baomidou.mybatisplus.extension.service.impl.ServiceImpl");
        strategy.setSuperMapperClass("com.baomidou.mybatisplus.core.mapper.BaseMapper");
        //继承的属性父类
//        strategy.setSuperEntityClass("com.common.entity.MyEntity");
        strategy.setEntityLombokModel(true);
        strategy.setRestControllerStyle(true);
        mpg.setStrategy(strategy);
        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
        mpg.execute();
    }
}
springboot-vue3/src/main/java/com/example/springboot/AuthorityApplication.java
New file
@@ -0,0 +1,22 @@
package com.example.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import com.example.springboot.component.WebSocketServer;
@SpringBootApplication
public class AuthorityApplication {
  public static void main(String[] args) {
    SpringApplication springApplication = new SpringApplication(AuthorityApplication.class);
    ConfigurableApplicationContext configurableApplicationContext = springApplication.run(args);
    WebSocketServer.setApplicationContext(configurableApplicationContext);
  }
}
springboot-vue3/src/main/java/com/example/springboot/advice/GlobalExceptionHandler.java
New file
@@ -0,0 +1,42 @@
package com.example.springboot.advice;
import com.example.springboot.entity.vo.Result;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.AuthorizationException;
import org.apache.shiro.authz.UnauthorizedException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
/**
 * 全局异常
 */
@Slf4j
@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public Result exception(HttpServletRequest req, Exception e) {
        log.error("---exception Handler---Host {} invokes url {} ERROR: ", req.getRemoteHost(), req.getRequestURL(), e);
        return Result.fail("系统错误,请联系网站管理员!");
    }
    @ExceptionHandler(value = RuntimeException.class)
    @ResponseBody
    public Result runtimeException(HttpServletRequest req, RuntimeException e) {
        log.error("---runtimeException Handler---Host {} invokes url {} ERROR: ", req.getRemoteHost(), req.getRequestURL(), e);
        return Result.fail(e.getMessage());
    }
    /**
     * 处理Shiro权限拦截异常
     */
    @ExceptionHandler(value = {AuthorizationException.class, UnauthorizedException.class})
    @ResponseBody
    public Result authorizationException(HttpServletRequest req, UnauthorizedException e) {
        log.error("---authorizationException Handler---Host {} invokes url {} ERROR: ", req.getRemoteHost(), req.getRequestURL(), e);
        return Result.fail("权限不足");
    }
}
springboot-vue3/src/main/java/com/example/springboot/common/Result.java
New file
@@ -0,0 +1,63 @@
package com.example.springboot.common;
/**
 * Controller统一返回的包装类
 */
public class Result {
    private static final String SUCCESS_CODE = "200";
    private static final String ERROR_CODE = "500";
    private String code;   // 返回的状态码。告诉前端这次请求成功还是失败
    private String msg;    // 错误信息
    private Object data;   // 包装的数据
    public Result(String code, String msg, Object data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
    public Result(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    public Result() {
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public Object getData() {
        return data;
    }
    public void setData(Object data) {
        this.data = data;
    }
    public static Result success(Object data) {
        return new Result(SUCCESS_CODE, "", data);
    }
    public static Result success() {
        return new Result(SUCCESS_CODE, "");
    }
    public static Result error(String msg) {
        return new Result(SUCCESS_CODE, msg);
    }
}
springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
@@ -48,78 +48,69 @@
      // // TODO Auto-generated catch block
      // e.printStackTrace();
      // }
      // 判断进片请求
      List<Short> datas1List = S7control.getinstance().ReadWord("DB106.24", 1);// 获取prc进片请求数据
      List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", 1);// 获取进片车状态
      List<Short> datas1ListState2 = S7control.getinstance().ReadWord("DB105.16", 1);// 获取进片车任务是否启动
      boolean B01backs =spianService.listbool("DB106.60");// b01汇报
      boolean B01backs = spianService.listbool("DB106.60");// b01汇报
      boolean B02backs = spianService.listbool("DB106.62");// b02汇报
      StringBuilder B01glassid=spianService.queGlassid("DB106.DBB26");//BO1的玻璃id
      StringBuilder B02glassid=spianService.queGlassid("DB106.DBB26");//B02的玻璃id
      //当进片小车完成任务时
      if(B01backs==true){
        //当B01小车汇报完成时更改玻璃状态为1
        spianMapper.UpdateCageOver(B01glassid.toString(),1);//更改笼子表进片状态
        spianMapper.Updatetask(1,0);//更改进片任务状态为1
        spianMapper.overqueue(B01glassid.toString(),0);//更改上片任务表的状态为0
        S7control.getinstance().WriteWord("DB105.48", (short) 1);//应答B01小车收到
        S7control.getinstance().WriteWord("DB105.16", (short) 0);//进片任务启动改为0
      }else{
        S7control.getinstance().WriteWord("DB105.48", (short) 0);//恢复B01小车应答
      StringBuilder B01glassid = spianService.queGlassid("DB103.184", 14);// BO1的玻璃id
      StringBuilder B02glassid = spianService.queGlassid("DB103.212", 14);// B02的玻璃id
      // 当进片小车完成任务时
      if (B01backs == true) {
        // 当B01小车汇报完成时更改玻璃状态为1
        spianMapper.UpdateCageOver(B01glassid.toString(), 1);// 更改笼子表进片状态
        spianMapper.Updatetask(1, 0);// 更改进片任务状态为1
        spianMapper.overqueue(B01glassid.toString(), 0);// 更改上片任务表的状态为0
        S7control.getinstance().WriteWord("DB106.60", (short) 0);// 恢复B01小车应答改为0
        S7control.getinstance().WriteWord("DB105.48", (short) 1);//汇报B01小车收到
      }
      //当出片小车完成任务时
      if(B02backs==true){
        //当B02小车汇报完成时更改玻璃状态为0
        spianMapper.UpdateCageOver(B02glassid.toString(),0);//更改笼子表出片状态
      // 当出片小车完成任务时
      if (B02backs == true) {
        // 当B02小车汇报完成时更改玻璃状态为0
        spianMapper.UpdateCageOver(B02glassid.toString(), 0);// 更改笼子表出片状态
        spianMapper.UpdatetaskOut(B02glassid.toString()); // 完成上一次出片或者调度任务
        S7control.getinstance().WriteWord("DB105.50", (short) 1);//应答B02小车收到
      }else{
        S7control.getinstance().WriteWord("DB105.50", (short) 0);//恢复B02小车应答
        S7control.getinstance().WriteWord("DB105.50", (short) 0);// 恢复B02小车应答改为0
        // S7control.getinstance().WriteWord("DB105.50", (short) 1);//汇报B02小车收到
      }
      // 获取DO1数据
      StringBuilder queueid1 = spianService.queGlassid("DB106.DBB26");
      StringBuilder queueid1 = spianService.queGlassid("DB103.44", 14);
      // 获取DO2数据
      StringBuilder queueid2 = spianService.queGlassid("DB103.DBB78");
      System.out.println("D01"+queueid1);
      System.out.println("D02"+queueid2);
      int questate = spianMapper.Selectqueuestate();//判断扫码位是否有玻璃已确认
      StringBuilder queueid2 = spianService.queGlassid("DB103.58", 14);
      System.out.println("D01|" + queueid1);
      System.out.println("D02|" + queueid2);
      int questate = spianMapper.Selectquecount(queueid1.toString());// 判断扫码位是否有玻璃已确认
      // queueid1.toString().isEmpty()
      north_glass_buffer1 glass1 = spianMapper.selectGlass(queueid1.toString());//D01的玻璃信息
      north_glass_buffer1 glass2 = spianMapper.selectGlass(queueid2.toString());//D02玻璃信息
      double quewitdh=0;
      double quewitdh2=0;
      //当扫码位玻璃id为空时 宽度为0
      if(glass1==null){
         quewitdh=0;
         queueid1=new StringBuilder("");
      }else{
        quewitdh=glass1.getglasslengthmm();
      }
      if(glass2==null){
         quewitdh2=0;
         queueid2=new StringBuilder("");
      }else{
        quewitdh2=glass2.getglasslengthmm();
      }
      if (queueid1!=null&& questate == 0) {
      north_glass_buffer1 glass1 = spianMapper.selectGlass(queueid1.toString());// D01的玻璃信息
      north_glass_buffer1 glass2 = spianMapper.selectGlass(queueid2.toString());// D02玻璃信息
      // 当扫码位玻璃id为空时 宽度为0
      if (queueid1 != null&&questate==0) {
        // 写入D01的数据到上片队列表
        spianMapper.insertqueue(queueid1.toString(), 1, quewitdh);
        if (glass1 == null) { //当没有值时传空
          spianMapper.Updatequeue(null,null,null,null, 0, null, null, null, null, 1);
        } else {
          spianMapper.overqueue2(queueid2.toString(), 0, 1);// 更改扫码位任务表的状态为0
          spianMapper.Updatequeue(queueid1.toString(),glass1.getordernumber(),glass1.getlistnumber(),glass1.getboxnumber(),0,glass1.getglasslengthmm().toString(),glass1.getglassheightmm().toString(),glass1.getglasslength().toString(),glass1.getglassheight().toString(),1);
        }
      }
      if (queueid2!=null) {
        // 写入D02的数据到上片队列表
        spianMapper.insertqueue(queueid2.toString(), 2, quewitdh2);
        spianMapper.overqueue2(queueid2.toString(),0,1);//更改上片任务表的状态为0
    if (queueid2 != null) {
        // 写入D02的数据到上片队列表
        if(glass2==null){
          spianMapper.Updatequeue(null,null,null,null, 0, null, null, null, null, 2);
        }else{
        spianMapper.Updatequeue(queueid1.toString(),glass2.getordernumber(),glass2.getlistnumber(),glass2.getboxnumber(),0,glass2.getglasslengthmm().toString(),glass2.getglassheightmm().toString(),glass2.getglasslength().toString(),glass2.getglassheight().toString(),2);
        S7control.getinstance().WriteWord("DB105.16", (short) 0);//关闭任务启动
        }
      }
       // 出片任务////////////////////////////////
      // 出片任务////////////////////////////////
      List<Short> outlist = S7control.getinstance().ReadWord("DB106.20", 1); // 出片车状态
      List<Short> outlist1 = S7control.getinstance().ReadWord("DB105.18", 1); // 出片任务是否启动
      // StringBuilder writedstrIdOut = new StringBuilder();
@@ -127,7 +118,6 @@
      byte[] writedglassidbytesOut = S7control.getinstance().ReadByte("DB105.30", 14);
      String writedstrIdOut = new String(writedglassidbytesOut);
      boolean outstate = false;// 出片车空闲判断
      boolean outstate1 = false;// 出片车任务是否启动
      if (outlist != null && outlist1 != null) {
@@ -143,25 +133,25 @@
        }
        if (outglassbegin & outstate)// 当任务开始且出片车空闲时
        {
          outglassbegin = false;
          outglassbegin = false;
        }
        if (outstate == true & glass.getbarcode() != null) { // 当出片车空闲且有出片任务待完成时
          // 判断有两个出片或调拨任务时并且出片id和未完成的出片任务id不一样时执行出片
          if (!writedstrIdOut.toString().equals(glass.getbarcode().toString())) {
            spianService.selectout2(glass.getbarcode().toString());
            outstate=false;
            outstate = false;
          }
        }
        // 判断当前是否有未执行的任务
        int outnum = spianMapper.SelectOutSliceshu();
        //当没有任务执行并且出片车空闲时
        if (outnum == 0&&outstate == true ) {
        // 当没有任务执行并且出片车空闲时
        if (outnum == 0 && outstate == true) {
          // 判断铝框出片队列表是否有待出片的玻璃
          String outglassid = spianMapper.SelectOutSlice();
          if (outglassid != null) {
            spianService.selectout2(outglassid);
            outstate=false;
            outstate = false;
          }
        }
        if (outstate == true) {// 下发任务后将任务启动改为0//出片车空闲判断
@@ -172,12 +162,12 @@
      }
      // if (outstate == true) { // 出片车状态空闲时
      //   Integer state = spianMapper.Selectoutstate();
      //   String orderid = spianMapper.SelectOrderout();
      // Integer state = spianMapper.Selectoutstate();
      // String orderid = spianMapper.SelectOrderout();
      //   if (orderid != null && state == 0) {
      //     spianService.selectout(orderid);
      //   }
      // if (orderid != null && state == 0) {
      // spianService.selectout(orderid);
      // }
      // }
      // 查询数据库
springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java
New file
@@ -0,0 +1,138 @@
package com.example.springboot.component;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Plcaction extends Thread {
  String name = "";
  Integer count = 0;
  public void readValue() {
    String str = "";
    BufferedReader bufferedReader = null;
    FileInputStream fileInputStream;
    try {
      // 从文件中读取字节数据存入 fileInputStream
      fileInputStream = new FileInputStream("CanadaMes-ui/src/configuration/Action.json");
      // 读取 fileInputStream 中字节并将其解码为字符
      InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
      // 提高读取效率,在 BufferedReader 内包装 InputStreamReader
      bufferedReader = new BufferedReader(inputStreamReader);
      String line = null;
      // 将 bufferedReader 内容一行一行赋值给str
      while ((line = bufferedReader.readLine()) != null) {
        str += line;
      }
      // 将str字符串格式转为json
      JSONObject jsonObject = new JSONObject(str);
      // 获取json中的值
      JSONArray address = jsonObject.getJSONArray("address");
      for (int i = 0; i < address.size(); i++) {
        JSONObject ress = (JSONObject) address.get(i);
        this.name = ress.getStr("name");
        this.count = ress.getInt("count");
      }
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  @Override
  public void run() {
    while (this != null) {
      try {
        Thread.sleep(1000);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      // 调用方法,进行赋值
      this.readValue();
      String PlcAddress = this.name;
      Integer Plccount = this.count;
      // System.out.println(PlcAddress);
      // List<Boolean> paramlist = S7control.getinstance().ReadBits("DB2.0.0", 26);
      Boolean[] values = { false, true, true, true, true, true, true, true, true,
          true, true, true, true, true, true, true, true, true, true, true, true, true, true,
          true, false, true };
      List<Boolean> paramlist = new ArrayList<>(Arrays.asList(values));
      if (paramlist != null) {
        short[] params = new short[paramlist.size()];
        for (int i = 0; i < paramlist.size(); i++) {
          boolean value = paramlist.get(i);
          params[i] = value ? (short) 1 : (short) 0;
        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.append("params", params);
        WebSocketServer sendwServer = WebSocketServer.sessionMap.get("action");
        if (sendwServer != null) {
          sendwServer.sendMessage(jsonObject.toString());
        }
      }
      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("action");
      if (webSocketServer != null) {
        List<String> messages = webSocketServer.getMessages();
        String addressList = "DB2.0.0";
        if (!messages.isEmpty()) {
          // 将最后一个消息转换为整数类型的列表
          String lastMessage = messages.get(messages.size() - 1);
          System.out.println("messages:" + messages);
          String[] parts = lastMessage.split(",");
          List<Integer> messageValues = new ArrayList<>();
          for (String part : parts) {
            try {
              // 使用正则表达式清除非数字字符
              String cleanedPart = part.replaceAll("[^0-9-]", "");
              Integer value = Integer.parseInt(cleanedPart.trim());
              messageValues.add(value);
            } catch (NumberFormatException e) {
              // 如果无法解析为整数类型,则忽略该部分
              e.printStackTrace();
            }
          }
          // 将消息值转换为布尔列表
          List<Boolean> messageBooleans = new ArrayList<>();
          for (Integer value : messageValues) {
            messageBooleans.add(value == 1 ? true : false);
          }
          // 将布尔列表写入 PLC
          S7control.getinstance().WriteBit(addressList, messageBooleans);
          System.out.println("messageValues:" + messageBooleans);
          System.out.println("addressList:" + addressList);
          // 清空消息列表
          webSocketServer.clearMessages();
        }
      }
    }
  }
}
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -4,17 +4,21 @@
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import com.example.springboot.entity.Out_slice;
import com.example.springboot.entity.Queue;
import com.example.springboot.entity.StorageCage;
import com.example.springboot.entity.alarmmg;
import com.example.springboot.entity.north_glass_buffer1;
import com.example.springboot.mapper.HomeMapper;
import com.example.springboot.mapper.SpianMapper;
import com.example.springboot.service.JdbcConnections;
public class Plchome extends Thread {
@@ -24,6 +28,10 @@
    private JdbcConnections dbserve;
    private JdbcConnections jdbcConnections;
    // public static int a=1;
    // public static Map b=new HashMap<>();
    // b.put()
    @Override
    public void run() {
        while (this != null) {
@@ -53,30 +61,6 @@
            // 进出片任务
            List<StorageCage> tasklist1 = homeMapper.selectinout(3);
            List<StorageCage> tasklist2 = homeMapper.selectinout(2);
            for (StorageCage storageCage : tasklist1) {
                // storageCage.setnorth_glass_buffer1s(homeMapper.SelectBoxNo(storageCage.getGlassId()));
                try {
                    storageCage.setnorth_glass_buffer1s(jdbcConnections.SelectGlassByGlassIdOrderIdFrameId("", "", ""));
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                try {
                    storageCage.setnorth_glass_buffer1s(
                            jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(storageCage.getGlassId(), "", ""));
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            for (StorageCage storageCage : tasklist2) {
                // storageCage.setnorth_glass_buffer1s(homeMapper.SelectBoxNo(storageCage.getGlassId()));
                try {
                    storageCage.setnorth_glass_buffer1s(
                            jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(storageCage.getGlassId(), "", ""));
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            jsonObject.append("tasklist1", tasklist1);
            jsonObject.append("tasklist2", tasklist2);
            // 查询报警信息
@@ -107,36 +91,17 @@
            jsonObject.append("queid", queid);
            jsonObject.append("state", state);
            // 获取扫码位与上片位玻璃信息
            String queueglassid2 = homeMapper.GetQueueInfo(2);
            String queueglassid1 = homeMapper.GetQueueInfo(1);
            // north_glass_buffer1 form2 = homeMapper.SelectGlassByGlassID(queueglassid2);
            // north_glass_buffer1 form3 = homeMapper.SelectGlassByGlassID(queueglassid1);
            north_glass_buffer1 form2;
            if(queueglassid2.length()!=0){
                try {
                    form2 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(queueglassid2, "", "");
                    jsonObject.append("form2", form2);
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            Queue form2 = homeMapper.GetQueueInfo(2);
            Queue form3 = homeMapper.GetQueueInfo(1);
            if(form2.getglassId()!=null&&form2.getglassId()!=""){
                jsonObject.append("form2", form2);
            }
            north_glass_buffer1 form3;
            if(queueglassid1.length()!=0){
                try {
                    form3 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(queueglassid1, "", "");
                    jsonObject.append("form3", form3);
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            if(form3.getglassId()!=null&&form3.getglassId()!=""){
                jsonObject.append("form3", form3);
            }
            // 获取出片队列信息
            List<Out_slice> listoutslice = homeMapper.SelectProductionqueue();
            for (Out_slice out_slice : listoutslice) {
                out_slice.setnorth_glass_buffer1s(homeMapper.SelectBoxNo(out_slice.getGlassId()));
                out_slice.setstorageCage(homeMapper.SelectStorageGlassById(out_slice.getGlassId()));
            }
            jsonObject.append("listoutslice", listoutslice);
springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
New file
@@ -0,0 +1,106 @@
package com.example.springboot.component;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
public class Plcsign extends Thread {
  String name = "";
  Integer count = 0;
  public void readValue() {
    String str = "";
    BufferedReader bufferedReader = null;
    FileInputStream fileInputStream;
    try {
      // 从文件中读取字节数据存入 fileInputStream
      fileInputStream = new FileInputStream("CanadaMes-ui/src/configuration/Sign.json");
      // 读取 fileInputStream 中字节并将其解码为字符
      InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
      // 提高读取效率,在 BufferedReader 内包装 InputStreamReader
      bufferedReader = new BufferedReader(inputStreamReader);
      String line = null;
      // 将 bufferedReader 内容一行一行赋值给str
      while ((line = bufferedReader.readLine()) != null) {
        str += line;
      }
      // 将str字符串格式转为json
      JSONObject jsonObject = new JSONObject(str);
      // 获取json中的值
      JSONArray address = jsonObject.getJSONArray("address");
      for (int i = 0; i < address.size(); i++) {
        JSONObject ress = (JSONObject) address.get(i);
        this.name = ress.getStr("name");
        this.count = ress.getInt("count");
      }
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  @Override
  public void run() {
    while (this != null) {
      try {
        Thread.sleep(1000);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      this.readValue();
      String PlcAddress = this.name;
      Integer Plccount = this.count;
      // System.out.println(PlcAddress);
      // List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.0.0", 44);
      // List<Boolean> plclist2 = S7control.getinstance().ReadBits("DB102.5.5", 13);
      Boolean[] values = { true, true, true, true, true, false, true, false,
          true, false, true, false, true, false,
          true, false, true, false, true, false, true, false, true, false, true, false,
          true, false, true, false, true,
          false, true, false, true, false,
          true, false, true, false, true, false, true, false, null,
          true, false,
          true, false, true, false, true, false,
          true, false, true, false, true, };
      List<Boolean> plclist = new ArrayList<>(Arrays.asList(values));
      if (plclist != null) {
        // 将获取的布尔类型转换为整数类型
        List<Integer> Intlist = new ArrayList<>();
        for (Boolean value : plclist) {
          if (value != null) {
            Intlist.add(value == true ? 0 : 1);
          }
        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.append("sig", Intlist);
        WebSocketServer sendwServer3 = WebSocketServer.sessionMap.get("Sign");
        if (sendwServer3 != null) {
          sendwServer3.sendMessage(jsonObject.toString());
        }
      }
    }
  }
}
springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java
New file
@@ -0,0 +1,94 @@
package com.example.springboot.component;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
public class Plcstate extends Thread {
  String name = "";
  Integer count = 0;
  public void readValue() {
    String str = "";
    BufferedReader bufferedReader = null;
    FileInputStream fileInputStream;
    try {
      // 从文件中读取字节数据存入 fileInputStream
      fileInputStream = new FileInputStream("CanadaMes-ui/src/configuration/State.json");
      // 读取 fileInputStream 中字节并将其解码为字符
      InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
      // 提高读取效率,在 BufferedReader 内包装 InputStreamReader
      bufferedReader = new BufferedReader(inputStreamReader);
      String line = null;
      // 将 bufferedReader 内容一行一行赋值给str
      while ((line = bufferedReader.readLine()) != null) {
        str += line;
      }
      // 将str字符串格式转为json
      JSONObject jsonObject = new JSONObject(str);
      // 获取json中的值
      JSONArray address = jsonObject.getJSONArray("address");
      for (int i = 0; i < address.size(); i++) {
        JSONObject ress = (JSONObject) address.get(i);
        this.name = ress.getStr("name");
        this.count = ress.getInt("count");
      }
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  @Override
  public void run() {
    while (this != null) {
      try {
        Thread.sleep(1000);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      this.readValue();
      String PlcAddress = this.name;
      Integer Plccount = this.count;
      // System.out.println(PlcAddress);
      // List<Short> plclist = S7control.getinstance().ReadWord("DB103.0", 10);
      Short[] values = { 0, 1, 1, 0, 1, 0, 1, 0,
          1, 0, };
      List<Short> plclist = new ArrayList<>(Arrays.asList(values));
      if (plclist != null) {
        List<String> Intlist = new ArrayList<>();
        for (Short value : plclist) {
          Intlist.add(value == 1 ? "自动" : "手动");
        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.append("sta", Intlist);
        WebSocketServer sendwServer = WebSocketServer.sessionMap.get("State");
        if (sendwServer != null) {
          sendwServer.sendMessage(jsonObject.toString());
        }
      }
    }
  }
}
springboot-vue3/src/main/java/com/example/springboot/component/WebSocketServer.java
New file
@@ -0,0 +1,144 @@
package com.example.springboot.component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.stereotype.Component;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
@ServerEndpoint(value = "/api/talk/{username}")
@Component
public class WebSocketServer {
    // @Autowired
    // HomeMapper homeMapper;
    static ConfigurableApplicationContext applicationContext;
    //解决无法注入mapper问题  //使用方法 homeMapper=WebSocketServer.applicationContext.getBean(HomeMapper.class);
    public static void setApplicationContext(ConfigurableApplicationContext configurableApplicationContext) {
        WebSocketServer.applicationContext = configurableApplicationContext;
    }
   private static final Logger log = LoggerFactory.getLogger(WebSocketServer.class);
    private List<String> messages;
    /**
     * 记录当前在线连接数
     */
    public static final Map<String, WebSocketServer> sessionMap = new ConcurrentHashMap<>();
    String username;
    Session session;
    public WebSocketServer() {
        this.messages = new ArrayList<>();
    }
    /**
     * 连接建立成功调用的方法
     */
    @OnOpen
    public void onOpen(Session session, @PathParam("username") String username) {
        this.username=username;
        this.session=session;
        sessionMap.put(username, this);
        log.info("有新用户加入,username={}, 当前在线人数为:{}", username, sessionMap.size());
        // JSONObject result = new JSONObject();
        // JSONArray array = new JSONArray();
        // result.set("users", array);
        // for (Object key : sessionMap.keySet()) {
        //     JSONObject jsonObject = new JSONObject();
        //     jsonObject.set("username", key);
        //     array.add(jsonObject);
        // }
        //sendAllMessage(JSONUtil.toJsonStr(result));  // 后台发送消息给所有的客户端
    }
    /**
     * 连接关闭调用的方法
     */
    @OnClose
    public void onClose(Session session, @PathParam("username") String username) {
        sessionMap.remove(username);
        log.info("有一连接关闭,移除username={}的用户session, 当前在线人数为:{}", username, sessionMap.size());
    }
    /**
     * 收到客户端消息后调用的方法
     * 后台收到客户端发送过来的消息
     * onMessage 是一个消息的中转站
     * 接受 浏览器端 socket.send 发送过来的 json数据
     * @param message 客户端发送过来的消息
     */
    @OnMessage
    public void onMessage(String message, Session session, @PathParam("username") String username) {
        log.info("服务端收到用户username={}的消息:{}", username, message);
        JSONObject obj = JSONUtil.parseObj(message);
         String text = obj.getStr("data");
         JSONObject jsonObject = new JSONObject();
         jsonObject.set("message", text);
        this.messages.add(text);
         this.sendMessage(jsonObject.toString()); //JSONUtil.toJsonStr(jsonObject)
    }
    @OnError
    public void onError(Session session, Throwable error) {
        log.error("发生错误");
        error.printStackTrace();
    }
    /**
     * 服务端发送消息给客户端
     */
    public void sendMessage(String message) {
        try {
           // log.info("服务端给客户端[{}]发送消息{}", this.session.getId(), message);
            this.session.getBasicRemote().sendText(message);
        } catch (Exception e) {
            log.error("服务端发送消息给客户端失败", e);
        }
    }
    /**
     * 服务端发送消息给所有客户端
     */
    public void sendAllMessage(String message) {
        try {
            for (WebSocketServer webSocketServer : sessionMap.values()) {
                //log.info("服务端给客户端[{}]发送消息{}", this.session.getId(), message);
                webSocketServer.sendMessage(message);
            }
        } catch (Exception e) {
            log.error("服务端发送消息给客户端失败", e);
        }
    }
    public List<String> getMessages() {
        return messages;
    }
    public void clearMessages() {
        messages.clear();
    }
}
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -35,7 +35,7 @@
    // new Plcaction().start();
    //
    // new Plchome().start();
    new Plchome().start();
    //
    // new PlcParameter().start();
    //
springboot-vue3/src/main/java/com/example/springboot/config/CrossOriginConfig.java
New file
@@ -0,0 +1,26 @@
package com.example.springboot.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
@Configuration
public class CrossOriginConfig {
    // 当前跨域请求最大有效时长。这里默认1天
    private static final long MAX_AGE = 24 * 60 * 60;
    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址
        corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
        corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
        corsConfiguration.setMaxAge(MAX_AGE);
        source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置
        return new CorsFilter(source);
    }
}
springboot-vue3/src/main/java/com/example/springboot/config/MybatisPlusConfig.java
New file
@@ -0,0 +1,17 @@
package com.example.springboot.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisPlusConfig {
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        // 配置mybatis-plus分页插件
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 方言
        paginationInterceptor.setDialectType("mysql");
        return paginationInterceptor;
    }
}
springboot-vue3/src/main/java/com/example/springboot/config/SwaggerConfig.java
New file
@@ -0,0 +1,59 @@
package com.example.springboot.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
 * swagger配置
 * 项目运行后访问:http://localhost:port/swagger-ui.html
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    // 配置swagger2核心配置 docket
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2) // 指定api类型为swagger2
                .groupName("authority") // 分组
                .apiInfo(apiInfo()) // 用于定义api文档汇总信息
                .select() // 通过.select()方法,去配置扫描接口。RequestHandlerSelectors配置如何扫描接口
                /*
                    // RequestHandlerSelectors配置方法
                    any() // 扫描所有,项目中的所有接口都会被扫描到
                    none() // 不扫描接口
                    // 通过方法上的注解扫描,如withMethodAnnotation(GetMapping.class)只扫描get请求
                    withMethodAnnotation( final Class<? extends Annotation> annotation)
                    // 通过类上的注解扫描,如.withClassAnnotation(Controller.class)只扫描有controller注解的类中的接口
                    withClassAnnotation( final Class<? extends Annotation> annotation)
                    basePackage( final String basePackage) // 根据包路径扫描接口
                */
                .apis(RequestHandlerSelectors.basePackage("com.canadames")) // 指定扫描包
                /*
                    // 配置如何通过path过滤,即这里只扫描请求以/开头的接口
                    any() // 任何请求都扫描
                    none() // 任何请求都不扫描
                    regex(final String pathRegex) // 通过正则表达式控制
                    ant(final String antPattern) // 通过ant()控制
                */
                .paths(PathSelectors.any()) // 所有controller
                .build();
    }
    //构建 api文档的详细信息函数,注意这里的注解引用的是哪个
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("权限管理系统 API") // 文档页标题
                .contact(new Contact("canadames", "https://jonssonyan.com", "yz808@outlook.com")) // 联系人信息
                .version("1.0") // 文档版本号
                .description("API 描述") // 描述
                .build();
    }
}
springboot-vue3/src/main/java/com/example/springboot/config/WebSocketConfig.java
New file
@@ -0,0 +1,16 @@
package com.example.springboot.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
@Configuration
public class WebSocketConfig {
     @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
}
springboot-vue3/src/main/java/com/example/springboot/controller/AlarmController.java
New file
@@ -0,0 +1,48 @@
package com.example.springboot.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.springboot.common.Result;
import com.example.springboot.entity.alarmmg;
import com.example.springboot.mapper.AlarmMapper;
import com.example.springboot.service.AlarmService;
import com.microsoft.schemas.office.office.STInsetMode;
@RestController
@RequestMapping("/alarm")
public class AlarmController {
  @Autowired
  AlarmMapper alarmMapper;
  @Autowired
  AlarmService alarmService;
  @GetMapping("/load")
  public Result selectAll() {// 查询当天已结束的报警信息
    Map<String, Object> map = new HashMap<>();
    List<alarmmg> storageCagelist = alarmMapper.selectAll();
    map.put("list", storageCagelist);
    return Result.success(map);
  }
  @GetMapping("/stTime")
  public Result selecttime(String shijian1, String shijian2) {// 根据日期查询报警信息
    // 将get方法传过来的参数中"#20"替换为" "
    String sj1 = shijian1.replace("#20", " ");
    String sj2 = shijian2.replace("#20", " ");
    List<alarmmg> storageCagelist = alarmMapper.selecttime(sj1, sj2);
    Map<String, Object> map = new HashMap<>();
    map.put("list", storageCagelist);
    return Result.success(map);
  }
}
springboot-vue3/src/main/java/com/example/springboot/controller/CategoryController.java
New file
@@ -0,0 +1,97 @@
package com.example.springboot.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.example.springboot.security.util.SecurityUtil;
import com.example.springboot.service.CategoryService;
import com.example.springboot.entity.Category;
import com.example.springboot.entity.vo.CategoryVo;
import com.example.springboot.entity.vo.Result;
import com.example.springboot.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@Slf4j
@Api(tags = "分类")
@RequestMapping("/api/category")
public class CategoryController {
    @Autowired
    private CategoryService categoryService;
    @Autowired
    private UserService userService;
    @ApiOperation(value = "分页查询分类")
    @GetMapping("/selectPage")
    @RequiresPermissions({"category:select"})
    public Result selectPage(CategoryVo categoryVO) {
        return Result.success(categoryService.selectPage(categoryVO));
    }
    @ApiOperation(value = "单个删除分类")
    @PostMapping("/removeById")
    @RequiresPermissions({"category:delete"})
    public Result removeById(@RequestBody CategoryVo categoryVO) {
        List<Category> categories = categoryService.selectList(categoryVO.getId(), false);
        if (CollectionUtil.isNotEmpty(categories)) return Result.fail("该分类下含有子集,不可以删除");
        List<Long> longs = userService.selectChild(SecurityUtil.getCurrentUser().getId(), true);
        boolean remove = categoryService.lambdaUpdate()
                .in(Category::getCreator, longs)
                .eq(Category::getId, categoryVO.getId())
                .remove();
        if (remove) log.info("用户id{}删除分类{}", SecurityUtil.getCurrentUser().getId(), categoryVO.getName());
        return Result.success();
    }
    @ApiOperation(value = "修改或者更新分类")
    @PostMapping("/saveOrUpdate")
    @RequiresPermissions({"category:update", "category:add"})
    public Result saveOrUpdate(@RequestBody Category category) {
        List<Long> longs = userService.selectChild(SecurityUtil.getCurrentUser().getId(), true);
        Integer count = categoryService.lambdaQuery()
                .eq(Category::getName, category.getName())
                .in(Category::getCreator, longs)
                .ne(category.getId() != null, Category::getId, category.getId())
                .count();
        if (count > 0) return Result.fail("该分类名称已存在");
        category.setCreator(category.getId() == null ? SecurityUtil.getCurrentUser().getId() : null);
        categoryService.saveOrUpdate(category);
        return Result.success();
    }
    @ApiOperation(value = "查询某人创建的分类,但是排除当前选中的分类,用户修改分类使用")
    @GetMapping("/select")
    @RequiresPermissions({"category:select"})
    public Result select(Category category) {
        List<Category> categories = categoryService.lambdaQuery()
                .ne(category.getId() != null, Category::getId, category.getId())
                .eq(Category::getCreator, SecurityUtil.getCurrentUser().getId())
                .list();
        return Result.success(categories);
    }
    @ApiOperation(value = "查询分类,嵌套数据结构")
    @GetMapping("/selectChilds")
    @RequiresPermissions({"category:select"})
    public Result selectChilds(Category category) {
        return Result.success(categoryService.selectChilds(SecurityUtil.getCurrentUser().getId()));
    }
    @ApiOperation(value = "通过id查询分类")
    @GetMapping("/getById")
    @RequiresPermissions({"category:select"})
    public Result getById(Category category) {
        Category one = categoryService.lambdaQuery().eq(Category::getCreator, SecurityUtil.getCurrentUser().getId())
                .eq(Category::getId, category.getId()).one();
        return Result.success(one);
    }
}
springboot-vue3/src/main/java/com/example/springboot/controller/DefaultController.java
New file
@@ -0,0 +1,103 @@
package com.example.springboot.controller;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.example.springboot.security.util.JwtUtil;
import com.example.springboot.security.util.SecurityUtil;
import com.example.springboot.entity.User;
import com.example.springboot.entity.vo.Result;
import com.example.springboot.entity.vo.UserVo;
import com.example.springboot.security.constant.SystemConstant;
import com.example.springboot.service.UserService;
import com.example.springboot.util.ValidatorUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.DisabledAccountException;
import org.apache.shiro.authc.ExcessiveAttemptsException;
import org.apache.shiro.authc.ExpiredCredentialsException;
import org.apache.shiro.authc.IncorrectCredentialsException;
import org.apache.shiro.authc.LockedAccountException;
import org.apache.shiro.authc.UnknownAccountException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.authz.UnauthorizedException;
import org.apache.shiro.crypto.hash.SimpleHash;
import org.apache.shiro.util.ByteSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
@RestController
@Slf4j
@Api(tags = "登录和注册")
public class DefaultController {
    @Autowired
    private UserService userService;
    @ApiOperation(value = "注册用户")
    @PostMapping("/register")
    public Result register(@RequestBody User user) {
        // 校验参数
        if (StringUtils.isNotEmpty(user.getEmail())) {
            ValidatorUtil.validateEntity(user);
        }
        Integer integer = userService.countByUsername(user.getUsername());
        if (integer > 0) return Result.fail("用户名已经存在");
        // 通过shiro默认的加密工具类为注册用户的密码进行加密
        Object salt = ByteSource.Util.bytes(SystemConstant.JWT_SECRET_KEY);
        String md5 = new SimpleHash("MD5", user.getPassword(), salt, 1024).toHex();
        user.setPassword(md5);
        userService.saveOrUpdate(user);
        return Result.success();
    }
    @ApiOperation(value = "登录")
    @PostMapping("/login")
    public Result login(@RequestBody UserVo userVO) {
        ValidatorUtil.validateEntity(userVO);
        if (!SecurityUtils.getSubject().isAuthenticated()) {
            UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(userVO.getUsername(), userVO.getPassword(), true);
            try {
                // shiro验证用户名密码
                SecurityUtils.getSubject().login(usernamePasswordToken);
                // 生成token
                String token = JwtUtil.createToken(userVO.getUsername(), false);
                // 将用户户名和token返回
                HashMap<String, String> map = new HashMap<>();
                map.put("username", userVO.getUsername());
                map.put("Authorization", token);
                map.put("role_id", SecurityUtil.getCurrentUser().getRoleId().toString());
                return Result.success(map);
            } catch (IncorrectCredentialsException e) {
                return Result.fail("登录密码错误");
            } catch (ExcessiveAttemptsException e) {
                return Result.fail("登录失败次数过多");
            } catch (LockedAccountException e) {
                return Result.fail("帐号已被锁定");
            } catch (DisabledAccountException e) {
                return Result.fail("帐号已被禁用");
            } catch (ExpiredCredentialsException e) {
                return Result.fail("请重新登录");
            } catch (UnknownAccountException e) {
                return Result.fail("帐号不存在");
            } catch (UnauthorizedException e) {
                return Result.fail("您没有得到相应的授权");
            } catch (Exception e) {
                e.printStackTrace();
                return Result.fail("登录失败!!!");
            }
        }
        return Result.fail("你已经登录了");
    }
    @ApiOperation(value = "注册时校验用户名是否存在")
    @GetMapping("/countUsername")
    public Result countUsername(String username) {
        return Result.success(userService.countByUsername(username));
    }
}
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -19,6 +19,8 @@
import com.example.springboot.entity.alarmmg;
import com.example.springboot.entity.north_glass_buffer1;
import com.example.springboot.entity.Out_slice;
import com.example.springboot.entity.Queue;
import org.springframework.web.bind.annotation.*;
@@ -61,21 +63,6 @@
    map.put("list2", storageCagelist2);
    map.put("list3", storageCagelist3);
    map.put("list4", storageCagelist4);
    return Result.success(map);
  }
  // 查询进/出片任务
  @GetMapping("/loadinout")
  public Result selectinout(Integer types) throws SQLException{
    List<StorageCage> storageCageinout = homeMapper.selectinout(types);
    for (StorageCage storageCage : storageCageinout) {
      storageCage.setnorth_glass_buffer1s(jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(storageCage.getGlassId(), "", ""));
      // storageCage.setnorth_glass_buffer1s(homeMapper.SelectBoxNo(storageCage.getGlassId()));
    }
    Map<String, Object> map = new HashMap<>();
    map.put("list", storageCageinout);
    return Result.success(map);
  }
@@ -146,11 +133,6 @@
  @GetMapping("/SelectCageInfo")
  public Result SelectCageInfo(short cage) throws SQLException {
    List<StorageCage> cageinfo = homeMapper.SelectCageInfo(cage);
    for (StorageCage storageCage : cageinfo) {
      // storageCage.setnorth_glass_buffer1s(homeMapper.SelectBoxNo(storageCage.getGlassId()));
      storageCage.setnorth_glass_buffer1s(jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(storageCage.getGlassId(), "", ""));
    }
    Map<String, Object> map = new HashMap<>();
    map.put("cageinfo", cageinfo);
    return Result.success(map);
@@ -209,13 +191,10 @@
  @GetMapping("/SelectGlassByGlassID")
  public Result SelectGlassByGlassID(String glassid) throws SQLException {
    // north_glass_buffer1 north_glass_buffer1s = homeMapper.SelectGlassByGlassID(glassid);
    north_glass_buffer1 north_glass_buffer1s=jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(glassid, "", "");
    Queue queue=jdbcConnections.SelectGlassByGlassIdOrderIdFrameIdQueue(glassid, "", "");
    Map<String, Object> map = new HashMap<>();
    if(glassid!=""){
    map.put("form", north_glass_buffer1s);
      map.put("form", queue);
    }
    return Result.success(map);
  }
@@ -231,14 +210,14 @@
  // 手动往理片笼添加玻璃
  @PostMapping("/Inglassid")
  public Result Inglassid(short cage, short cell, short tier, @RequestBody north_glass_buffer1 north_glass_buffer1s) {
  public Result Inglassid(short cage, short cell, short tier, @RequestBody Queue queue) {
    Map<String, Object> map = new HashMap<>();
    short result = homeMapper.SelectStorageByGlassId(north_glass_buffer1s.getbarcode());
    short result = homeMapper.SelectStorageByGlassId(queue.getglassId());
    if (result > 0) {
      map.put("message", "300");
    } else {
      homeMapper.Inglassid(north_glass_buffer1s, cage, cell, tier);
      spianMapper.UpdataAddCage1(north_glass_buffer1s.getglasslengthmm(), cage, cell);
      homeMapper.Inglassid(queue, cage, cell, tier);
      spianMapper.UpdataAddCage1(queue.getglasswidth(), cage, cell);
    }
    return Result.success(map);
  }
@@ -254,15 +233,15 @@
  // 手动添加扫码位玻璃
  @PostMapping("/InsertQueueGlassId")
  public Result InsertQueueGlassId(String glassid, Short id) {
  public Result InsertQueueGlassId(Short id,@RequestBody Queue queue) {
    Map<String, Object> map = new HashMap<>();
    short result = homeMapper.SelectStorageByGlassId(glassid);
    short result = homeMapper.SelectStorageByGlassId(queue.getglassId());
    if (result > 0) {
      map.put("message", "300");
    } else {
      homeMapper.InsertQueueGlassId(glassid, id);
      homeMapper.InsertQueueGlassId(queue, id);
    //调用伍存储过程
    spianService.selectAll(glassid);
    spianService.selectAll(queue.getglassId());
      map.put("message", "200");
    }
    return Result.success(map);
springboot-vue3/src/main/java/com/example/springboot/controller/MenuListController.java
New file
@@ -0,0 +1,72 @@
package com.example.springboot.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.example.springboot.security.util.SecurityUtil;
import com.example.springboot.entity.MenuList;
import com.example.springboot.entity.vo.MenuListVo;
import com.example.springboot.entity.vo.Result;
import com.example.springboot.service.MenuListService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@Slf4j
@Api(tags = "菜单")
@RequestMapping("/api/menuList")
public class MenuListController {
    @Autowired
    private MenuListService menuListService;
    @ApiOperation(value = "查询菜单列表")
    @GetMapping("/selectList")
    @RequiresPermissions({"menuList:select"})
    public Result selectList(MenuList menuList) {
        return Result.success(menuListService.selectList(SecurityUtil.getCurrentUser().getRoleId()));
    }
    @ApiOperation(value = "分页查询菜单")
    @GetMapping("/selectPage")
    @RequiresRoles({"admin"})
    @RequiresPermissions({"menuList:select"})
    public Result selectPage(MenuListVo MenuListVO) {
        return Result.success(menuListService.selectPage(MenuListVO));
    }
    @ApiOperation(value = "根据id删除菜单")
    @PostMapping("/removeById")
    @RequiresRoles({"admin"})
    @RequiresPermissions({"menuList:delete"})
    public Result removeById(@RequestBody MenuListVo MenuListVO) {
        menuListService.removeById(MenuListVO.getId());
        return Result.success();
    }
    @ApiOperation(value = "添加或者更新菜单")
    @PostMapping("/saveOrUpdate")
    @RequiresRoles({"admin"})
    @RequiresPermissions({"menuList:add", "menuList:update"})
    public Result saveOrUpdate(@RequestBody MenuList menuList) {
        List<MenuList> menuLists = menuListService.lambdaQuery()
                .eq(MenuList::getName, menuList.getName())
                .or()
                .eq(MenuList::getRouter, menuList.getRouter())
                .ne(menuList.getId() != null, MenuList::getId, menuList.getId())
                .list();
        if (CollectionUtil.isNotEmpty(menuLists)) {
            return Result.fail("菜单名称或者路由已存在");
        }
        menuListService.saveOrUpdate(menuList);
        return Result.success();
    }
}
springboot-vue3/src/main/java/com/example/springboot/controller/PermissionController.java
New file
@@ -0,0 +1,40 @@
package com.example.springboot.controller;
import com.example.springboot.entity.vo.PermissionVo;
import com.example.springboot.entity.vo.Result;
import com.example.springboot.service.PermissionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Slf4j
@Api(tags = "权限")
@RequestMapping("/api/permission")
public class PermissionController {
    @Autowired
    private PermissionService permissionService;
    @ApiOperation(value = "根据id查询权限")
    @GetMapping("/getById")
    @RequiresRoles({"admin"})
    @RequiresPermissions({"permission:select"})
    public Result getById(PermissionVo permissionVO) {
        return Result.success(permissionService.getById(permissionVO.getId()));
    }
    @ApiOperation(value = "查询权限列表")
    @GetMapping("/select")
    @RequiresRoles({"admin"})
    @RequiresPermissions({"permission:select"})
    public Result select(PermissionVo permissionVO) {
        return Result.success(permissionService.lambdaQuery().list());
    }
}
springboot-vue3/src/main/java/com/example/springboot/controller/RoleController.java
New file
@@ -0,0 +1,75 @@
package com.example.springboot.controller;
import com.example.springboot.entity.Role;
import com.example.springboot.entity.vo.Result;
import com.example.springboot.entity.vo.RoleVo;
import com.example.springboot.service.RoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Slf4j
@Api(tags = "角色")
@RequestMapping("/api/role")
public class RoleController {
    @Autowired
    private RoleService roleService;
    @ApiOperation(value = "添加或者更新角色")
    @PostMapping("/saveOrUpdate")
    @RequiresRoles({"admin"})
    @RequiresPermissions({"role:add", "role:update"})
    public Result saveOrUpdate(@RequestBody Role role) {
        Integer count = roleService.lambdaQuery().eq(Role::getName, role.getName())
                .ne(role.getId() != null, Role::getId, role.getId())
                .count();
        if (count > 0) return Result.fail("已存在该角色名称");
        roleService.saveOrUpdate(role);
        return Result.success();
    }
    @ApiOperation(value = "根据id删除角色")
    @PostMapping("/removeById")
    @RequiresRoles({"admin"})
    @RequiresPermissions({"role:delete"})
    public Result removeById(@RequestBody RoleVo roleVO) {
        roleService.removeById(roleVO.getId());
        return Result.success();
    }
    @ApiOperation(value = "根据id查询角色")
    @GetMapping("/getById")
    @RequiresRoles({"admin"})
    @RequiresPermissions({"role:select"})
    public Result getById(Role role) {
        return Result.success(roleService.getById(role.getId()));
    }
    @ApiOperation(value = "分页查询角色")
    @GetMapping("/selectPage")
    @RequiresRoles({"admin"})
    @RequiresPermissions({"role:select"})
    public Result selectPage(RoleVo roleVO) {
        return Result.success(roleService.selectPage(roleVO));
    }
    @ApiOperation(value = "查询角色列表")
    @GetMapping("/select")
    @RequiresRoles({"admin"})
    @RequiresPermissions({"role:select"})
    public Result select(RoleVo roleVO) {
        return Result.success(roleService.lambdaQuery().list());
    }
}
springboot-vue3/src/main/java/com/example/springboot/controller/RoleMenuListController.java
New file
@@ -0,0 +1,29 @@
package com.example.springboot.controller;
import com.example.springboot.entity.vo.Result;
import com.example.springboot.entity.vo.RoleMenuListVo;
import com.example.springboot.service.RoleMenuListService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Slf4j
@Api(tags = "角色和菜单关系")
@RequestMapping("/api/roleMenuList")
public class RoleMenuListController {
    @Autowired
    private RoleMenuListService roleMenuListService;
    @ApiOperation(value = "分页查询角色和菜单关系")
    @GetMapping("/selectPage")
    @RequiresRoles({"admin"})
    public Result selectPage(RoleMenuListVo roleMenuListVO) {
        return Result.success(roleMenuListService.selectPage(roleMenuListVO));
    }
}
springboot-vue3/src/main/java/com/example/springboot/controller/RolePermissionController.java
New file
@@ -0,0 +1,168 @@
package com.example.springboot.controller;
import com.example.springboot.entity.*;
import com.example.springboot.entity.vo.Result;
import com.example.springboot.entity.vo.RolePermissionVo;
import com.example.springboot.mapper.RolePermissionMapper;
import com.example.springboot.service.PermissionService;
import com.example.springboot.service.RolePermissionService;
import com.example.springboot.service.RoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@Slf4j
@Api(tags = "角色和权限关系")
@RequestMapping("/api/rolePermission")
public class RolePermissionController {
    @Autowired
    private RolePermissionService rolePermissionService;
    @Autowired
    private RoleService roleService;
    @Autowired
    private PermissionService permissionService;
        @ApiOperation(value = "添加或者更新角色和权限关系")
        @PostMapping("/saveOrUpdate")
        @RequiresPermissions({"rolePermission:add"})
        @RequiresRoles({"admin"})
        public Result saveOrUpdate(@RequestBody RolePermission rolePermission) {
            Integer count = rolePermissionService.lambdaQuery()
                    .eq(RolePermission::getRoleId, rolePermission.getRoleId())
                    .eq(RolePermission::getPermissionId, rolePermission.getPermissionId())
                    .ne(rolePermission.getId() != null, RolePermission::getId, rolePermission.getId())
                    .count();
            if (count > 0) return Result.fail("授权已存在");
            rolePermissionService.saveOrUpdate(rolePermission);
            return Result.success();
        }
        @ApiOperation(value = "根据id删除角色和权限关系")
        @PostMapping("/removeById")
        @RequiresPermissions({"rolePermission:delete"})
        @RequiresRoles({"admin"})
        public Result removeById(@RequestBody RolePermissionVo rolePermissionVO) {
            rolePermissionService.removeById(rolePermissionVO.getId());
            return Result.success();
        }
        @ApiOperation(value = "分页查询角色和权限关系")
        @GetMapping("/selectPage")
        @RequiresRoles({"admin"})
        @RequiresPermissions({"rolePermission:select"})
        public Result selectPage(RolePermissionVo rolePermissionVO) {
            return Result.success(rolePermissionService.selectPage(rolePermissionVO));
        }
        @ApiOperation(value = "根据id查询角色和权限关系")
        @GetMapping("/getById")
        @RequiresRoles({"admin"})
        @RequiresPermissions({"rolePermission:select"})
        public Result getById(RolePermissionVo rolePermissionVO) {
            RolePermission rolePermission = rolePermissionService.getById(rolePermissionVO.getId());
            if (rolePermission != null) {
                Role role = roleService.getById(rolePermission.getRoleId());
                Permission permission = permissionService.getById(rolePermission.getPermissionId());
                rolePermission.setRole(role);
                rolePermission.setPermission(permission);
            }
            return Result.success(rolePermission);
        }
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired RolePermissionMapper RolePermissionMapper;
    ;
    @GetMapping("/getByRoleId")
    public com.example.springboot.common.Result selectquanxian(@RequestParam("roleId") int roleId) {
        List<Map<String, Object>> resultSet = RolePermissionMapper.selectquanxian(roleId);
        List<Map<String, Object>> permissions = new ArrayList<>();
        for (Map<String, Object> result : resultSet) {
            Long role_id2 = (Long) result.get("role_id");
            int state = (int) result.get("state");
            Long permission_id = (Long) result.get("permission_id"); // 注意这里的类型是Long
            String permissionName = (String) result.get("name");
            Map<String, Object> permission = new HashMap<>();
            permission.put("roleId", role_id2.intValue());
            permission.put("name", permissionName);
            permission.put("permission_id", permission_id.intValue()); // 将Long类型转换为int类型
            permission.put("state", state);
            permissions.add(permission);
        }
        Map<String, Object> map = new HashMap<>();
        map.put("permissionList", permissions);
        return com.example.springboot.common.Result.success(map);
    }
    @PostMapping("/savePermissions")
    public Result savePermissions(@RequestBody Map<String, Object> requestBody) {
        try {
            // 获取权限数据列表
            List<Map<String, Object>> permissions = (List<Map<String, Object>>) requestBody.get("permissions");
            // 遍历接收到的权限数据
            for (Map<String, Object> permission : permissions) {
                // 获取权限项的roleId、name、state和permission_id
                int roleId = (int) permission.get("roleId");
                String name = (String) permission.get("name");
                int state = (int) permission.get("state");
                int permissionId = (int) permission.get("permission_id");
                // 根据roleId和permissionId查询是否已存在该权限记录
                boolean exists = RolePermissionMapper.checkExists(roleId, permissionId);
                if (exists) {
                    // 如果已存在该权限记录,则更新状态
                    RolePermissionMapper.updateState(roleId, permissionId, state);
                } else {
                    // 如果不存在该权限记录,则新增一条权限记录
                    RolePermissionMapper.insert(roleId, permissionId, state);
                }
            }
            return Result.success(); // 成功保存权限后返回结果
        } catch (Exception e) {
            e.printStackTrace();
            return Result.fail("保存权限失败"); // 保存权限失败时返回错误信息
        }
    }
}
springboot-vue3/src/main/java/com/example/springboot/controller/SpianController.java
New file
@@ -0,0 +1,46 @@
package com.example.springboot.controller;
import com.example.springboot.mapper.SpianMapper;
import com.example.springboot.service.SpianService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/spian")
public class SpianController {
    @Autowired
    SpianMapper spianMapper;
    @Autowired
    SpianService spianservice;
    //出片任务
@GetMapping("/all2")
    public void selectdd(String orderid){
       SpianService service=new SpianService();
       service.selectout(orderid);
}
   @GetMapping("/all")
   //进片任务,传订单id
   //按订单优先进片
    public void selectAll(Short glassid){
       SpianService service=new SpianService();
       service.selectAll(Short.toString(glassid));
    }
}
springboot-vue3/src/main/java/com/example/springboot/controller/UserController.java
New file
@@ -0,0 +1,179 @@
package com.example.springboot.controller;
import com.example.springboot.security.constant.SystemConstant;
import com.example.springboot.security.util.SecurityUtil;
import com.example.springboot.entity.User;
import com.example.springboot.entity.vo.Result;
import com.example.springboot.entity.vo.UserVo;
import com.example.springboot.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.apache.shiro.crypto.hash.SimpleHash;
import org.apache.shiro.util.ByteSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
@Slf4j
@RequestMapping("/api/user")
@Api(tags = "用户")
public class UserController {
    @Autowired
    private UserService userService;
    @ApiOperation(value = "修改密码")
    @PostMapping("/changePassword")
    @RequiresAuthentication
    public Result changePassword(@RequestBody Map<String, String> request) {
        User currentUser = SecurityUtil.getCurrentUser();
        String oldPassword = request.get("oldPassword");
        String newPassword = request.get("newPassword");
        // 校验旧密码是否正确
        if (!verifyPassword(currentUser, oldPassword)) {
            return Result.fail("旧密码不正确");
        }
        // 更新密码
        updatePassword(currentUser, newPassword);
        return Result.success("密码修改成功");
    }
    /**
     * 验证密码是否正确
     */
    private boolean verifyPassword(User user, String password) {
        Object salt = ByteSource.Util.bytes(SystemConstant.JWT_SECRET_KEY);
        String md5 = new SimpleHash("MD5", password, salt, 1024).toHex();
        return md5.equals(user.getPassword());
    }
    /**
     * 更新密码
     */
    private void updatePassword(User user, String newPassword) {
        Object salt = ByteSource.Util.bytes(SystemConstant.JWT_SECRET_KEY);
        String md5 = new SimpleHash("MD5", newPassword, salt, 1024).toHex();
        user.setPassword(md5);
        userService.saveOrUpdate(user);
    }
    @ApiOperation(value = "重置密码")
    @PostMapping("/resetPass")
    @RequiresRoles({"admin"})
    public Result resetPassword(@RequestBody UserVo userVO) {
        User user = userService.getById(userVO.getId());
        if (user == null) {
            return Result.fail("用户不存在");
        }
        // 生成默认密码
        String newPassword = "123456";
        // 更新密码
        updatePassword(user, newPassword);
        return Result.success("密码重置成功,新密码为:" + newPassword);
    }
    /**
     * 更新密码
     */
    @ApiOperation(value = "分页查询用户")
    @GetMapping("/selectPage")
//    @RequiresRoles({"admin"})
    @RequiresPermissions({"user:select"})
    public Result selectPage(UserVo userVO) {
        return Result.success(userService.selectPage(userVO));
    }
    @ApiOperation(value = "添加或修改用户")
    @PostMapping("/saveOrUpdate")
    @RequiresRoles({"admin"})
    @RequiresPermissions({"user:update", "user:add"})
    public Result saveOrUpdate(@RequestBody User user) {
        if ("admin".equals(user.getUsername())) {
            return Result.fail("管理员不可以被禁用");
        }
        Integer count = userService.lambdaQuery()
                .eq(User::getUsername, user.getUsername())
                .ne(user.getId() != null, User::getId, user.getId())
                .count();
        if (count > 0) {
            return Result.fail("用户名已存在");
        }
        // 如果密码未修改,则不进行加密操作
        if (user.getId() != null) {
            User existingUser = userService.getById(user.getId());
            if (existingUser != null && existingUser.getPassword().equals(user.getPassword())) {
                user.setPassword(existingUser.getPassword());
            } else {
                // 密码发生了变化,进行加密操作
                Object salt = ByteSource.Util.bytes(SystemConstant.JWT_SECRET_KEY);
                String md5 = new SimpleHash("MD5", user.getPassword(), salt, 1024).toHex();
                user.setPassword(md5);
            }
        }
        userService.saveOrUpdate(user);
        return Result.success();
    }
    @ApiOperation(value = "通过id删除用户")
    @PostMapping("/removeById")
    @RequiresRoles({"admin"})
    @RequiresPermissions({"user:delete"})
    public Result removeById(@RequestBody UserVo userVO) {
        userService.removeById(userVO.getId());
        return Result.success();
    }
    @ApiOperation(value = "通过id查询用户")
    @GetMapping("/getById")
    @RequiresPermissions({"user:select"})
    public Result selectById(UserVo userVO) {
        return Result.success(userService.getById(userVO.getId()));
    }
    @ApiOperation(value = "注销登录,前提是在登录状态")
    @PostMapping("/loginOut")
    public Result loginOut() {
        User currentUser = SecurityUtil.getCurrentUser();
        if (currentUser == null) {
            return Result.fail("您暂未登录");
        }
        SecurityUtils.getSubject().logout();
        return Result.success("注销成功");
    }
    private class UpdatePasswordRequest {
    }
}
springboot-vue3/src/main/java/com/example/springboot/controller/device/DeviceController.java
New file
@@ -0,0 +1,43 @@
package com.example.springboot.controller.device;
import com.example.springboot.service.device.DeviceService;
import com.example.springboot.entity.device.DeviceEntity;
import com.example.springboot.entity.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/device") // 修改请求路径为 "/api/device"
public class DeviceController {
    private final DeviceService deviceService;
    @Autowired
    public DeviceController(DeviceService deviceService) {
        this.deviceService = deviceService;
    }
    @GetMapping("/getAllDevices")  // 修改接口路径为 "/getAllDevices"
    public Result getAllDevices() {
        List<DeviceEntity> devices = deviceService.getAllDevices();
        return Result.success(devices);
    }
    @PostMapping("/updateDeviceName")  // 修改接口路径为 "/updateDeviceName"
    public Result updateDeviceName(@RequestBody DeviceEntity device) {
        deviceService.updateDeviceName(device);
        return Result.success();
    }
    @PostMapping("/call-stored-proc")
    public Result  callStoredProc(@RequestBody DeviceEntity device) {
        List<DeviceEntity> result = deviceService.callStoredProc(device); // 获取多行查询结果
        return Result.success(result); // 返回包含多行结果的 Result 对象
    }
}
springboot-vue3/src/main/java/com/example/springboot/entity/BaseEntity.java
New file
@@ -0,0 +1,19 @@
package com.example.springboot.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class BaseEntity {
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty("主键")
    private Long id;
    @ApiModelProperty("创建时间")
    private Date createTime;
    @ApiModelProperty("更新时间")
    private Date updateTime;
}
springboot-vue3/src/main/java/com/example/springboot/entity/CarPosition.java
New file
@@ -0,0 +1,32 @@
package com.example.springboot.entity;
public class CarPosition {
    public int carid;
    public int start;
    public int end;
    public void setcarId(Integer carid) {
        this.carid = carid;
    }
    public Integer getcarId() {
        return carid;
    }
    public void setStart(Integer start) {
        this.start = start;
    }
    public Integer getStart() {
        return start;
    }
    public void setEnd(Integer end) {
        this.end = end;
    }
    public Integer getEnd() {
        return end;
    }
}
springboot-vue3/src/main/java/com/example/springboot/entity/Category.java
New file
@@ -0,0 +1,44 @@
package com.example.springboot.entity;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("`category`")
@ApiModel("分类")
public class Category extends BaseEntity implements Serializable {
    private static final long serialVersionUID = -5888981197198625157L;
    @ApiModelProperty("父级id")
    private Long parentId;
    @TableField("`path`")
    @ApiModelProperty("路径")
    private String path;
    @ApiModelProperty("等级")
    private Integer level;
    @ApiModelProperty("名称")
    private String name;
    @ApiModelProperty("创建人")
    private Long creator;
    @ApiModelProperty("状态 0/下架 1/上架 默认上架")
    private Integer state; // 状态 0/下架 1/上架 默认上架
    @TableField(exist = false)
    private List<Category> Categorys;
    public final void parent(@NotNull Category category) {
        this.parentId = category.getId();
        this.path = (category.getPath() == null ? "" : category.getPath()) + category.getId() + "-";
        this.level = StrUtil.count(this.path, "-");
    }
}
springboot-vue3/src/main/java/com/example/springboot/entity/Glass.java
New file
@@ -0,0 +1,58 @@
package com.example.springboot.entity;
public class Glass {
  private Integer id;
  private String orderId;
  private double width;
  private double height;
  private String glassId;
  public Integer id() {
    return id;
  }
  public void setId(Integer id) {
    this.id = id;
  }
  public Integer getId() {
    return id;
  }
  public String getOrderId() {
    return orderId;
  }
  public void setOrderId(String orderId) {
    this.orderId = orderId;
  }
  public double getwidth() {
    return width;
  }
  public void setHeight(double height) {
    this.height = height;
  }
  public double getHeight() {
    return height;
  }
  public void setWidth(double width) {
    this.width = width;
  }
  public void getWidth(double width) {
    this.width = width;
  }
  public String getGlassId() {
    return glassId;
  }
  public void setGlassId(String glassId) {
    this.glassId = glassId;
  }
}
springboot-vue3/src/main/java/com/example/springboot/entity/MenuList.java
New file
@@ -0,0 +1,34 @@
package com.example.springboot.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("`menu_list`")
@ApiModel("菜单")
public class MenuList extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 6371298069578228652L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    private Long parentId;
    private String name;
    private String icon;
    private Integer priority;
    private String router;
    private Integer state;
    private Date createTime;
    private Date updateTime;
    @TableField(exist = false)
    private List<MenuList> menuLists;
}
springboot-vue3/src/main/java/com/example/springboot/entity/OrderOut.java
New file
@@ -0,0 +1,43 @@
package com.example.springboot.entity;
import java.sql.Date;
public class OrderOut {
    private Integer id;
    private String orderid;
    private Integer state;
    private Date modtime;
    public Integer id() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getId() {
        return id;
    }
    public void setOrderId(String orderid) {
        this.orderid = orderid;
    }
    public String getOrderId() {
        return orderid;
    }
    public void setState(Integer state) {
        this.state = state;
    }
    public Integer getState() {
        return state;
    }
    public void setModTime(Date modtime) {
        this.modtime = modtime;
    }
    public Date getModTime() {
        return modtime;
    }
}
springboot-vue3/src/main/java/com/example/springboot/entity/Out_slice.java
New file
@@ -0,0 +1,101 @@
package com.example.springboot.entity;
public class Out_slice {
    private int id;
    private String glassId;
    private String barcode;
    private double glasswidth;
    private double glassheight;
    private int state;
    private String time;
    private north_glass_buffer1 north_glass_buffer1s;
    public void setnorth_glass_buffer1s(north_glass_buffer1 north_glass_buffer1s) {
        this.north_glass_buffer1s = north_glass_buffer1s;
    }
    public north_glass_buffer1 getnorth_glass_buffer1s() {
        return north_glass_buffer1s;
    }
    private StorageCage storageCage;
    public void setstorageCage(StorageCage storageCage) {
        this.storageCage = storageCage;
    }
    public StorageCage getstorageCage() {
        return storageCage;
    }
    public Out_slice() {
    }
    public Out_slice(int ID, String glassId, String barCode, double glasswidth, double glassheight, int state, String time) {
        this.id = ID;
        this.glassId = glassId;
        this.barcode = barCode;
        this.glasswidth = glasswidth;
        this.glassheight = glassheight;
        this.state = state;
        this.time = time;
    }
    public int getID() {
        return id;
    }
    public String getGlassId() {
        return glassId;
    }
    public String getBarCode() {
        return barcode;
    }
    public double getGlasswidth() {
        return glasswidth;
    }
    public double getGlassheight() {
        return glassheight;
    }
    public int getState() {
        return state;
    }
    public String getTime() {
        return time;
    }
    public void setID(int ID) {
        this.id = ID;
    }
    public void setGlassId(String glassId) {
        this.glassId = glassId;
    }
    public void setBarCode(String barCode) {
        barcode = barCode;
    }
    public void setGlasswidth(double glasswidth) {
        this.glasswidth = glasswidth;
    }
    public void setGlassheight(double glassheight) {
        this.glassheight = glassheight;
    }
    public void setState(int state) {
        this.state = state;
    }
    public void setTime(String time) {
        this.time = time;
    }
}
springboot-vue3/src/main/java/com/example/springboot/entity/Permission.java
New file
@@ -0,0 +1,26 @@
package com.example.springboot.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("`permission`")
@ApiModel("权限")
public class Permission extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 4551749462814959751L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    private String name;
    private String description;
    private Integer state;
    private Date createTime;
    private Date updateTime;
}
springboot-vue3/src/main/java/com/example/springboot/entity/Queue.java
New file
@@ -0,0 +1,113 @@
package com.example.springboot.entity;
public class Queue {
    private int id;
    private String glassId;
    private String orderId;
    private String listId;
    private String boxId;
    private double glasswidth;
    private double glassheight;
    private double glasswidthmm;
    private double glassheightmm;
    private int type;
    private int state;
    private String time;
    public int getid() {
        return id;
    }
    public void setid(int id) {
        this.id = id;
    }
    public String getglassId() {
        return glassId;
    }
    public void setglassId(String glassId) {
        this.glassId = glassId;
    }
    public String getorderId() {
        return orderId;
    }
    public void setorderId(String orderId) {
        this.orderId = orderId;
    }
    public String getlistId() {
        return listId;
    }
    public void setlistId(String listId) {
        this.listId = listId;
    }
     public String getboxId() {
        return boxId;
    }
    public void setboxId(String boxId) {
        this.boxId = boxId;
    }
    public double getglasswidth() {
        return glasswidth;
    }
    public void setglasswidth(double glasswidth) {
        this.glasswidth = glasswidth;
    }
    public double getglassheight() {
        return glassheight;
    }
    public void setglassheight(double glassheight) {
        this.glassheight = glassheight;
    }
    public double getglasswidthmm() {
        return glasswidthmm;
    }
    public void setglasswidthmm(double glasswidthmm) {
        this.glasswidthmm = glasswidthmm;
    }
    public double getglassheightmm() {
        return glassheightmm;
    }
    public void setglassheightmm(double glassheightmm) {
        this.glassheightmm = glassheightmm;
    }
    public int gettype() {
        return type;
    }
    public void settype(int type) {
        this.type = type;
    }
    public int getstate() {
        return state;
    }
    public void setstate(int state) {
        this.state = state;
    }
    public String gettime() {
        return time;
    }
    public void settime(String time) {
        this.time = time;
    }
}
springboot-vue3/src/main/java/com/example/springboot/entity/Role.java
New file
@@ -0,0 +1,34 @@
package com.example.springboot.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("`role`")
@ApiModel("角色")
public class Role extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 5593937318976491954L;
    @ApiModelProperty("父级id")
    private String parentId;
    @NotBlank
    @ApiModelProperty("名称")
    private String name;
    @ApiModelProperty("描述")
    private String description;
    @ApiModelProperty("状态")
    private Integer state;
    @TableField(exist = false)
    private List<Permission> permissions;
}
springboot-vue3/src/main/java/com/example/springboot/entity/RoleMenuList.java
New file
@@ -0,0 +1,30 @@
package com.example.springboot.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("`role_menu_list`")
@ApiModel("角色和菜单关系")
public class RoleMenuList extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 8055008415890637135L;
    @ApiModelProperty("角色id")
    private Long roleId;
    @ApiModelProperty("菜单id")
    private Long menuListId;
    @ApiModelProperty("状态")
    private Integer state;
    @TableField(exist = false)
    private Role role;
    @TableField(exist = false)
    private MenuList menuList;
}
springboot-vue3/src/main/java/com/example/springboot/entity/RolePermission.java
New file
@@ -0,0 +1,34 @@
package com.example.springboot.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("`role_permission`")
@ApiModel("角色和权限关系")
public class RolePermission extends BaseEntity implements Serializable {
    private static final long serialVersionUID = -3026205404689502862L;
    @ApiModelProperty("角色id")
    private Long roleId;
    @ApiModelProperty("权限id")
    private Long permissionId;
    @ApiModelProperty("状态")
    private Integer state;
    @TableField(exist = false)
    private Role role;
    @TableField(exist = false)
    private Permission permission;
}
springboot-vue3/src/main/java/com/example/springboot/entity/StorageCage.java
New file
@@ -0,0 +1,173 @@
package com.example.springboot.entity;
public class StorageCage {
    private Integer id;
    private Integer prcId;
    private String glassId;
    private Integer cage;
    private Integer cell;
    private Double width;
    private Double glasswidth;
    private Double glassheight;
    private Double glasswidthmm;
    private Double glassheightmm;
    private String state;
    private Integer tier;
    private String orderId;
    private Integer disabled;
    private String listId;
    private String boxId;
    private north_glass_buffer1 north_glass_buffer1s;
    public void setnorth_glass_buffer1s(north_glass_buffer1 north_glass_buffer1s) {
        this.north_glass_buffer1s = north_glass_buffer1s;
    }
    public north_glass_buffer1 getnorth_glass_buffer1s() {
        return north_glass_buffer1s;
    }
    private Out_slice outSlice;
    public void setout_slice(Out_slice outSlice) {
        this.outSlice = outSlice;
    }
    public Out_slice getout_slice() {
        return outSlice;
    }
    public Integer id() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getId() {
        return id;
    }
    public Integer getPrcId() {
        return prcId;
    }
    public void setPrcId(Integer prcId) {
        this.prcId = prcId;
    }
    public String getGlassId() {
        return glassId;
    }
    public void setGlassId(String glassId) {
        this.glassId = glassId;
    }
    public String getOrderId() {
        return orderId;
    }
    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }
    public Integer getCage() {
        return cage;
    }
    public void setGage(Integer cage) {
        this.cage = cage;
    }
    public void setCell(Integer cell) {
        this.cell = cell;
    }
    public Integer getCell() {
        return cell;
    }
    public Double getWidth() {
        return width;
    }
    public void setWidth(Double width) {
        this.width = width;
    }
    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    public Integer getTier() {
        return tier;
    }
    public void setTier(Integer tier) {
        this.tier = tier;
    }
    public Double getGlassWidth() {
        return glasswidth;
    }
    public void setGlassWidth(Double glasswidth) {
        this.glasswidth = glasswidth;
    }
    public Double getGlassHeight() {
        return glassheight;
    }
    public void setGlassHeight(Double glassheight) {
        this.glassheight = glassheight;
    }
    public Double getGlassWidthMm() {
        return glasswidthmm;
    }
    public void setGlassWidthMm(Double glasswidthmm) {
        this.glasswidthmm = glasswidthmm;
    }
    public Double getGlassHeightMm() {
        return glassheightmm;
    }
    public void setGlassHeightMm(Double glassheightmm) {
        this.glassheightmm = glassheightmm;
    }
    public Integer getDisabled() {
        return disabled;
    }
    public void setDisabled(Integer disabled) {
        this.disabled = disabled;
    }
    public String getListId() {
        return listId;
    }
    public void setListno(String listId) {
        this.listId = listId;
    }
    public String getBoxId() {
        return boxId;
    }
    public void setBoxno(String boxId) {
        this.boxId = boxId;
    }
}
springboot-vue3/src/main/java/com/example/springboot/entity/StorageTask.java
New file
@@ -0,0 +1,63 @@
package com.example.springboot.entity;
public class StorageTask{
    private Integer id;
    private String taskType;
    private String glassId;
    private String cataskStatege;
    private String shelfRack;
    private String loadrack;
    public Integer id() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getId() {
        return id;
    }
    public String getTaskType() {
        return taskType;
    }
    public void setTaskType(String taskType) {
        this.taskType = taskType;
    }
    public String getGlassId() {
        return glassId;
    }
    public void setGlassId(String glassId) {
        this.glassId = glassId;
    }
    public String getCataskStatege() {
        return cataskStatege;
    }
    public void setCataskStatege(String cataskStatege) {
        this.cataskStatege = cataskStatege;
    }
    public String getShelfRack() {
        return shelfRack;
    }
    public void setShelfRack(String shelfRack) {
        this.shelfRack = shelfRack;
    }
    public String getLoadrack() {
        return loadrack;
    }
    public void setLoadrack(String loadrack) {
        this.loadrack = loadrack;
    }
}
springboot-vue3/src/main/java/com/example/springboot/entity/User.java
New file
@@ -0,0 +1,59 @@
package com.example.springboot.entity;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("`user`")
@ApiModel("用户")
public class User extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 1192800251115892576L;
    private Long parentId; // 上级id
    @TableField("`path`")
    @ApiModelProperty("路径")
    private String path;
    @ApiModelProperty("等级")
    private Integer level;
    @ApiModelProperty("角色id")
    private Long roleId;
    @NotBlank(message = "用户名不能为空")
    @ApiModelProperty("用户名")
    private String username;
    @NotBlank(message = "密码不能为空")
    @ApiModelProperty("密码")
    private String password;
    @ApiModelProperty("邮箱")
    private String email;
    @ApiModelProperty("qq")
    private String qq;
    @ApiModelProperty("电气密码")
    private String dianqimima;
    @ApiModelProperty("联系电话")
    private String phone;
    @ApiModelProperty("状态 0/禁止 1/正常")
    private Integer state; // 状态 0/禁止 1/正常
    // 用户的菜单列表,不同用户通过权限控制拥有不同的菜单
    @TableField(exist = false)
    private List<MenuList> menuLists;
    public final void parent(@NotNull User user) {
        this.parentId = user.getId();
        this.path = (user.getPath() == null ? "" : user.getPath()) + user.getId() + "-";
        this.level = StrUtil.count(this.path, "-");
    }
}
springboot-vue3/src/main/java/com/example/springboot/entity/alarmmg.java
New file
@@ -0,0 +1,57 @@
package com.example.springboot.entity;
import java.util.Date;
public class alarmmg {
  private Integer id;
  private String content;
  private Date timeon;
  private Date endTime;
  private String timeons;
  // 自增id
  public void setid(Integer id) {
    this.id = id;
  }
  public Integer getid() {
    return id;
  }
  // 报警内容
  public void setontent(String content) {
    this.content = content;
  }
  public String getcontent() {
    return content;
  }
  // 报警开始时间
  public void settimeon(Date timeon) {
    this.timeon = timeon;
  }
  public Date gettimeon() {
    return timeon;
  }
  // 报警结束时间
  public void setendTime(Date endTime) {
    this.endTime = endTime;
  }
  public Date getendTime() {
    return endTime;
  }
  public void settimeons(String timeons) {
    this.timeons = timeons;
  }
  public String gettimeons() {
    return timeons;
  }
}
springboot-vue3/src/main/java/com/example/springboot/entity/device/DeviceEntity.java
New file
@@ -0,0 +1,61 @@
package com.example.springboot.entity.device;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
 *
 * </p>
 *
 * @author yyq
 * @since 2023-08-28
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("device")
@ApiModel(value="DeviceEntity对象", description="")
public class DeviceEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    private String deviceId;
    private String createUser;
    private String msg;
    private LocalDateTime createTime;
    private long id;
    private String deviceName;
    private String name;
    private String status;
    private String info;
    private String model;
    private LocalDateTime countTimeFlag;
    private String address;
    private String gps;
    private LocalDate debugTime;
    private LocalDate endTime;
    private String customerName;
    private String customerDeviceName;
    private LocalDate lastProductCountDate;
}
springboot-vue3/src/main/java/com/example/springboot/entity/dto/BaseDto.java
New file
@@ -0,0 +1,24 @@
package com.example.springboot.entity.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Past;
import java.util.Date;
import java.util.List;
@Data
public class BaseDto {
    @NotNull
    private Long pageSize = 10L;
    @NotNull
    private Long pageNum = 1L;
    @Past
    private Date startTime;
    @Past
    private Date endTime;
    private List<Long> ids;
    private Long id;
}
springboot-vue3/src/main/java/com/example/springboot/entity/north_glass_buffer1.java
@@ -102,7 +102,7 @@
    }
    public Double getglassheightmm() {
        return glasslengthmm;
        return glassheightmm;
    }
    public void setglassheightmm(Double glassheightmm) {
        this.glassheightmm = glassheightmm;
springboot-vue3/src/main/java/com/example/springboot/entity/vo/AuthorizedUser.java
New file
@@ -0,0 +1,13 @@
package com.example.springboot.entity.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class AuthorizedUser implements Serializable {
    private static final long serialVersionUID = -8152270249992675066L;
    private Long id;
    private String username;
    private Long roleId;
}
springboot-vue3/src/main/java/com/example/springboot/entity/vo/BaseVo.java
New file
@@ -0,0 +1,22 @@
package com.example.springboot.entity.vo;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Past;
import java.util.Date;
import java.util.List;
@Data
public class BaseVo {
    @NotNull
    private Long pageSize = 10L;
    @NotNull
    private Long pageNum = 1L;
    @Past
    private Date startTime;
    @Past
    private Date endTime;
    private List<Long> ids;
}
springboot-vue3/src/main/java/com/example/springboot/entity/vo/CategoryVo.java
New file
@@ -0,0 +1,22 @@
package com.example.springboot.entity.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
public class CategoryVo extends BaseVo implements Serializable {
    private static final long serialVersionUID = 4432159672935772196L;
    private Long id;
    private Long parentId;
    private String path;
    private Integer level;
    private String name;
    private Long creator;
    private Integer state;
    private Date createTime;
    private Date updateTime;
}
springboot-vue3/src/main/java/com/example/springboot/entity/vo/CheckResult.java
New file
@@ -0,0 +1,15 @@
package com.example.springboot.entity.vo;
import io.jsonwebtoken.Claims;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class CheckResult {
    private boolean success;
    private Claims claims;
    private String errCode;
}
springboot-vue3/src/main/java/com/example/springboot/entity/vo/MenuListVo.java
New file
@@ -0,0 +1,23 @@
package com.example.springboot.entity.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
public class MenuListVo extends BaseVo implements Serializable {
    private static final long serialVersionUID = 3086526136023139210L;
    private Long id;
    private Long roleId;
    private Long parentId;
    private String name;
    private String icon;
    private Integer priority;
    private String router;
    private Integer state;
    private Date createTime;
    private Date updateTime;
}
springboot-vue3/src/main/java/com/example/springboot/entity/vo/OrderVo.java
New file
@@ -0,0 +1,24 @@
package com.example.springboot.entity.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
public class OrderVo extends BaseVo implements Serializable {
    private static final long serialVersionUID = -3640807116600926284L;
    private Long id;
    private Long productId;
    private Long creator;
    private Long quantity;
    private String subject;
    private String address;
    private String outTradeNo;
    private String totalAmount;
    private Integer state;
    private Date createTime;
    private Date updateTime;
}
springboot-vue3/src/main/java/com/example/springboot/entity/vo/PermissionVo.java
New file
@@ -0,0 +1,19 @@
package com.example.springboot.entity.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
public class PermissionVo extends BaseVo implements Serializable {
    private static final long serialVersionUID = -2797154122372472654L;
    private Long id;
    private String name;
    private String description;
    private Integer state;
    private Date createTime;
    private Date updateTime;
}
springboot-vue3/src/main/java/com/example/springboot/entity/vo/ProductVo.java
New file
@@ -0,0 +1,21 @@
package com.example.springboot.entity.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
public class ProductVo extends BaseVo implements Serializable {
    private static final long serialVersionUID = -4492232772022212494L;
    private Long id;
    private Long categoryId;
    private String name;
    private BigDecimal price;
    private Integer state;
    private Date createTime;
    private Date updateTime;
}
springboot-vue3/src/main/java/com/example/springboot/entity/vo/Result.java
New file
@@ -0,0 +1,40 @@
package com.example.springboot.entity.vo;
import lombok.Data;
@Data
public class Result {
    private Integer code;
    private String msg;
    private Object data;
    public static Result success(Object data) {
        Result result = new Result();
        result.setCode(1);
        result.setMsg("成功");
        result.setData(data);
        return result;
    }
    public static Result success() {
        return success(null);
    }
    public static Result fail(String msg) {
        Result result = new Result();
        result.setCode(0);
        result.setMsg(msg);
        return result;
    }
    public static Result fail(Integer code, String msg, Object object) {
        Result result = new Result();
        result.setCode(0);
        result.setMsg(msg);
        result.setData(object);
        return result;
    }
}
springboot-vue3/src/main/java/com/example/springboot/entity/vo/RoleMenuListVo.java
New file
@@ -0,0 +1,19 @@
package com.example.springboot.entity.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
public class RoleMenuListVo extends BaseVo implements Serializable {
    private static final long serialVersionUID = 2310103009618403876L;
    private Long id;
    private Long roleId;
    private Long MenuListId;
    private Integer state;
    private Date startTime;
    private Date endTime;
}
springboot-vue3/src/main/java/com/example/springboot/entity/vo/RolePermissionVo.java
New file
@@ -0,0 +1,19 @@
package com.example.springboot.entity.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
public class RolePermissionVo extends BaseVo implements Serializable {
    private static final long serialVersionUID = -4528470984796447897L;
    private Long id;
    private Long roleId;
    private Long permissionId;
    private Integer state;
    private Date createTime;
    private Date updateTime;
}
springboot-vue3/src/main/java/com/example/springboot/entity/vo/RoleVo.java
New file
@@ -0,0 +1,19 @@
package com.example.springboot.entity.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
public class RoleVo extends BaseVo implements Serializable {
    private static final long serialVersionUID = 2147982144935437262L;
    private Long id;
    private String parentId;
    private String name;
    private Integer state;
    private Date createTime;
    private Date updateTime;
}
springboot-vue3/src/main/java/com/example/springboot/entity/vo/UserVo.java
New file
@@ -0,0 +1,30 @@
package com.example.springboot.entity.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
public class UserVo extends BaseVo implements Serializable {
    private static final long serialVersionUID = 7021223076084300328L;
    private Long id;
    private Long parentId; // 上级id
    private Long roleId; // 角色id
    @NotBlank(message = "用户名不能为空")
    private String username;
    @NotBlank(message = "密码不能为空")
    private String password;
    private String dianqimima;
    private String email;
    private String qq;
    private String phone;
    private Integer state; // 状态 0/禁止 1/正常
    private Date createTime;
    private Date updateTime;
}
springboot-vue3/src/main/java/com/example/springboot/mapper/AlarmMapper.java
New file
@@ -0,0 +1,25 @@
package com.example.springboot.mapper;
import org.apache.ibatis.annotations.*;
import com.example.springboot.entity.alarmmg;
import java.util.List;
@Mapper
public interface AlarmMapper {
  @Select("SELECT * FROM alarmmg where endTime is not null and to_days(timeon)=to_days(now())")
  List<alarmmg> selectAll();// 查询当天所有已结束报警信息
  @Select("SELECT count(*) FROM alarmmg where endTime is null and content=#{content}")
  short selectnullti(String content);// 根据报警内容查询结束时间为null的
  @Insert("INSERT INTO `canadames`.`alarmmg`( `content`,`timeon`) VALUES ( #{content},now())")
  void Insertalarm(String content);// 添加一条报警数据
  @Insert("UPDATE  `canadames`.`alarmmg` set endTime= now() where endTime is null and content=#{content}")
  void updatealarm(String content);// 修改对应报警内容的结束时间
  @Select("SELECT * FROM alarmmg where timeon between #{sj1} and #{sj2}")
  List<alarmmg> selecttime(String sj1, String sj2);// 根据日期查询报警信息
}
springboot-vue3/src/main/java/com/example/springboot/mapper/CategoryMapper.java
New file
@@ -0,0 +1,23 @@
package com.example.springboot.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.springboot.entity.Category;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface CategoryMapper extends BaseMapper<Category> {
    void categoryDeleteByIds(@Param("ids") List<Long> ids);
    void categoryUpdateById(@Param("id") Long id, @Param("category") Category category);
    void categoryInsert(@Param("category") Category category);
    List<Category> findAllExceptSelf(@Param("id") Long id);
    List<Category> selectByPath(@Param("path") String path);
}
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -3,11 +3,11 @@
import org.apache.ibatis.annotations.*;
import com.example.springboot.entity.CarPosition;
import com.example.springboot.entity.Glass;
import com.example.springboot.entity.StorageCage;
import com.example.springboot.entity.alarmmg;
import com.example.springboot.entity.north_glass_buffer1;
import com.example.springboot.entity.Out_slice;
import com.example.springboot.entity.Queue;
import java.util.List;
@@ -34,7 +34,7 @@
  List<StorageCage> selectRack4();
  // 根据任务类型查询当前正在出片,进片的玻璃信息
  @Select("select *,concat(glasswidth,' x ',glassheight) as lengthwidth from storage_cage where state=#{task_type}")
  @Select("select * from storage_cage where state=#{task_type}")
  List<StorageCage> selectinout(@Param("task_type") Integer task_type);
  // 查询是否存在此订单
@@ -98,8 +98,8 @@
  void Disabled(short cage, short cell, short disabled);
  //理片笼新增玻璃
  @Update("update storage_cage set state=1,glass_id=#{glass.barcode},order_id=#{glass.ordernumber},glasswidth=#{glass.glasslengthmm},glassheight=#{glass.glassheightmm} where cage=#{cage} and cell=#{cell} and tier=#{tier}")
  void Inglassid(north_glass_buffer1 glass, short cage, short cell, short tier);
  @Update("update storage_cage set state=1,glass_id=#{glass.glassId},order_id=#{glass.orderId},glasswidth=#{glass.glasswidth},glassheight=#{glass.glassheight},glasswidthmm=#{glass.glasswidthmm},glassheightmm=#{glass.glassheightmm},listid=#{glass.listId},boxid=#{glass.boxId} where cage=#{cage} and cell=#{cell} and tier=#{tier}")
  void Inglassid(Queue glass, short cage, short cell, short tier);
  //查询理片笼中是否有此玻璃
  @Select("select count(*) from storage_cage where glass_id=#{glassId}")
@@ -110,12 +110,12 @@
  List<north_glass_buffer1> SelectGlass(String orderid);
  //获取上片队列信息
  @Select("select glassid from queue where id=#{id}")
  String GetQueueInfo(int id);
  @Select("select * from queue where id=#{id}")
  Queue GetQueueInfo(int id);
  //手动添加扫码位玻璃
  @Select("update queue set glassid=#{glassid},state=1 where id=#{id}")
  void InsertQueueGlassId(String glassid,Short id);
  @Select("update queue set glassid=#{queue.glassId},orderid=#{queue.orderId},listId=#{queue.listId},boxId=#{queue.boxId},glasswidth=#{queue.glasswidth},glassheight=#{queue.glassheight},glasswidthmm=#{queue.glasswidthmm},glassheightmm=#{queue.glassheightmm},state=1 where id=#{id}")
  void InsertQueueGlassId(Queue queue,Short id);
  //确认扫码位玻璃信息
  @Select("update queue set state=1 where id=1")
springboot-vue3/src/main/java/com/example/springboot/mapper/MenuListMapper.java
New file
@@ -0,0 +1,16 @@
package com.example.springboot.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.springboot.entity.MenuList;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface MenuListMapper extends BaseMapper<MenuList> {
    List<MenuList> findByParent(Long parent);
    List<MenuList> findByParentNull();
}
springboot-vue3/src/main/java/com/example/springboot/mapper/PermissionMapper.java
New file
@@ -0,0 +1,11 @@
package com.example.springboot.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.springboot.entity.Permission;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface PermissionMapper extends BaseMapper<Permission> {
}
springboot-vue3/src/main/java/com/example/springboot/mapper/RoleMapper.java
New file
@@ -0,0 +1,11 @@
package com.example.springboot.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.springboot.entity.Role;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface RoleMapper extends BaseMapper<Role> {
}
springboot-vue3/src/main/java/com/example/springboot/mapper/RoleMenuListMapper.java
New file
@@ -0,0 +1,11 @@
package com.example.springboot.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.springboot.entity.RoleMenuList;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface RoleMenuListMapper extends BaseMapper<RoleMenuList> {
}
springboot-vue3/src/main/java/com/example/springboot/mapper/RolePermissionMapper.java
New file
@@ -0,0 +1,30 @@
package com.example.springboot.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.springboot.entity.RolePermission;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Mapper
@Repository
public interface RolePermissionMapper extends BaseMapper<RolePermission> {
    @Select("SELECT rp.state,rp.permission_id,rp.role_id, p.* FROM role_permission AS rp JOIN permission AS p ON rp.permission_id = p.id WHERE rp.role_id = #{roleId}")
    List<Map<String, Object>> selectquanxian(@Param("roleId") int roleId);
    @Select("SELECT COUNT(*) FROM role_permission WHERE role_id = #{roleId} AND permission_id = #{permissionId}")
    boolean checkExists(@Param("roleId") int roleId, @Param("permissionId") int permissionId);
    @Update("UPDATE role_permission SET state = #{state} WHERE role_id = #{roleId} AND permission_id = #{permissionId}")
    void updateState(@Param("roleId") int roleId, @Param("permissionId") int permissionId, @Param("state") int state);
    @Insert("INSERT INTO role_permission (role_id, permission_id, state) VALUES (#{roleId}, #{permissionId}, #{state})")
    void insert(@Param("roleId") int roleId, @Param("permissionId") int permissionId, @Param("state") int state);
}
springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
@@ -37,7 +37,7 @@
   
     //获取玻璃信息
     @Select("select ordernumber as ordernumber,glasslength_mm as glasslengthmm,barcode from north_glass_buffer1 where barcode=#{glassid}")
     @Select("select ordernumber ,glasslength_mm as glasslengthmm,glassheight_mm as glassheightmm,barcode,listnumber,boxnumber,glasslength,glassheight from north_glass_buffer1 where barcode=#{glassid}")
     north_glass_buffer1 selectGlass(String glassid);
    
    //出片任务查询
@@ -109,9 +109,12 @@
     //判断有几块玻璃还在出片中
     @Select("SELECT COUNT(*) FROM `storage_cage` where state=3;")
     Integer Selectoutstate();
     //获取进片队列id
     @Insert("update queue set glassid=#{glassid},width=#{width} where type=#{type};")
     void insertqueue(String glassid,int type,double width);
     //判断队列表是否有该玻璃
     @Select("select COUNT(*) from queue where glassid=#{glassid};")
     int Selectquecount(String glassid);
     //更新进片队列
     @Update("update queue set glassid=#{glassid},orderid=#{orderid},listid=#{listid},boxid=#{boxid},state=#{state},glasswidthmm=#{glasswidthmm},glassheightmm=#{glassheightmm},glasswidth=#{glasswidth},glassheight=#{glassheight} where type=#{type};")
     void Updatequeue(String glassid,String orderid,String listid,String boxid,int state,String glasswidth,String glassheight,String glasswidthmm,String  glassheightmm,int type);
     //完成进片队列任务
     @Update("update queue set state=#{state} where glassid=#{glassid};")
     void overqueue(String glassid,int state);
springboot-vue3/src/main/java/com/example/springboot/mapper/UserMapper.java
New file
@@ -0,0 +1,15 @@
package com.example.springboot.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.springboot.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface UserMapper extends BaseMapper<User> {
    List<User> selectChild(@Param("path") String path);
}
springboot-vue3/src/main/java/com/example/springboot/mapper/device/DeviceMapper.java
New file
@@ -0,0 +1,21 @@
package com.example.springboot.mapper.device;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.springboot.entity.User;
import com.example.springboot.entity.device.DeviceEntity;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface DeviceMapper extends BaseMapper<User> {
    List<DeviceEntity> selectAllDevices();
    void updateDeviceName(DeviceEntity device);
    void updateMultipleDevices(List<DeviceEntity> devices);
    List<DeviceEntity> callStoredProc(DeviceEntity device);
}
springboot-vue3/src/main/java/com/example/springboot/security/JWTRealm.java
New file
@@ -0,0 +1,89 @@
package com.example.springboot.security;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.example.springboot.security.util.JwtUtil;
import com.example.springboot.security.util.SecurityUtil;
import com.example.springboot.entity.Permission;
import com.example.springboot.entity.Role;
import com.example.springboot.entity.RolePermission;
import com.example.springboot.entity.User;
import com.example.springboot.security.entity.JwtToken;
import com.example.springboot.service.PermissionService;
import com.example.springboot.service.RolePermissionService;
import com.example.springboot.service.RoleService;
import com.example.springboot.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.SimpleAuthenticationInfo;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Slf4j
public class JWTRealm extends AuthorizingRealm {
    @Autowired
    private UserService userService;
    @Autowired
    private RolePermissionService rolePermissionService;
    @Autowired
    private PermissionService permissionService;
    @Autowired
    private RoleService roleService;
    @Override
    public boolean supports(AuthenticationToken token) {
        return token instanceof JwtToken;
    }
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        // 执行授权
        SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();
        // 设置角色
        List<Role> roles = roleService.selectRoles(SecurityUtil.getCurrentUser().getRoleId(), true);
        if (CollectionUtil.isEmpty(roles)) {
            return null;
        }
        authorizationInfo.addRoles(roles.stream().map(Role::getName).collect(Collectors.toList()));
        List<RolePermission> rolePermissions = rolePermissionService.lambdaQuery()
                .eq(RolePermission::getState, 1)
                .eq(RolePermission::getRoleId, SecurityUtil.getCurrentUser().getRoleId()).list();
        Set<Permission> set = new HashSet<>();
        for (RolePermission rolePermission : rolePermissions) {
            List<Permission> permissions = permissionService.lambdaQuery().eq(Permission::getId, rolePermission.getPermissionId()).list();
            set.addAll(permissions);
        }
        // 设置权限
        authorizationInfo.addStringPermissions(set.stream().map(Permission::getName).collect(Collectors.toList()));
        return authorizationInfo;
    }
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
        String token = (String) authenticationToken.getCredentials();
        // 解密获得username,用于和数据库进行对比
        String username = JwtUtil.getUsernameByToken(token);
        if (StrUtil.isBlank(username)) {
            throw new AuthenticationException("token认证失败!");
        }
        User user = userService.selectByUsername(username);
        // 判断用户
        if (user == null) {
            throw new AuthenticationException("用户不存在!");
        }
        if (user.getState() == 0) {
            throw new AuthenticationException("账号已被禁用!");
        }
        return new SimpleAuthenticationInfo(user, token, getName());
    }
}
springboot-vue3/src/main/java/com/example/springboot/security/NoSessionFilter.java
New file
@@ -0,0 +1,93 @@
package com.example.springboot.security;
import cn.hutool.core.util.StrUtil;
import com.example.springboot.security.constant.SystemConstant;
import com.example.springboot.security.entity.JwtToken;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
@Slf4j
public class NoSessionFilter extends BasicHttpAuthenticationFilter {
    @Override
    protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) {
        HttpServletRequest servletRequest = (HttpServletRequest) request;
        // 1.从Cookie获取token
        String token = getTokenFromCookie(servletRequest);
        if (StrUtil.isBlank(token)) {
            // 2.从headers中获取
            token = servletRequest.getHeader(SystemConstant.TOKEN_HEADER);
        }
        if (StrUtil.isBlank(token)) {
            // 3.从请求参数获取
            token = request.getParameter(SystemConstant.TOKEN_HEADER);
        }
        if (StrUtil.isBlank(token)) {
            return false;
        }
        // 验证token
        JwtToken jwtToken = new JwtToken(token);
        // 提交给realm进行登入,如果错误他会抛出异常并被捕获
        // todo https://www.cnblogs.com/red-star/p/12121941.html https://blog.csdn.net/qq_43721032/article/details/110188342
        try {
            SecurityUtils.getSubject().login(jwtToken);
        } catch (Exception e) {
            return false;
        }
        // 如果没有抛出异常则代表登入成功,返回true
        return true;
    }
    @Override
    protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
        PrintWriter printWriter = response.getWriter();
        response.setCharacterEncoding("utf-8");
        printWriter.write("403");
        printWriter.flush();
        printWriter.close();
        return false;
    }
    private String getTokenFromCookie(HttpServletRequest request) {
        String token = null;
        Cookie[] cookies = request.getCookies();
        int len = null == cookies ? 0 : cookies.length;
        if (len > 0) {
            for (Cookie cookie : cookies) {
                if (cookie.getName().equals(SystemConstant.TOKEN_HEADER)) {
                    token = cookie.getValue();
                    break;
                }
            }
        }
        return token;
    }
    /**
     * 对跨域提供支持
     */
    @Override
    protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {
        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
        HttpServletResponse httpServletResponse = (HttpServletResponse) response;
        httpServletResponse.setHeader("Access-control-Allow-Origin", httpServletRequest.getHeader("Origin"));
        httpServletResponse.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS,PUT,DELETE");
        httpServletResponse.setHeader("Access-Control-Allow-Headers", httpServletRequest.getHeader("Access-Control-Request-Headers"));
        // 跨域时会首先发送一个option请求,这里我们给option请求直接返回正常状态
        if (httpServletRequest.getMethod().equals(RequestMethod.OPTIONS.name())) {
            httpServletResponse.setStatus(HttpStatus.OK.value());
            return false;
        }
        return super.preHandle(request, response);
    }
}
springboot-vue3/src/main/java/com/example/springboot/security/StatelessDefaultSubjectFactory.java
New file
@@ -0,0 +1,14 @@
package com.example.springboot.security;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.subject.SubjectContext;
import org.apache.shiro.web.mgt.DefaultWebSubjectFactory;
public class StatelessDefaultSubjectFactory extends DefaultWebSubjectFactory {
    @Override
    public Subject createSubject(SubjectContext context) {
        //不创建session
        context.setSessionCreationEnabled(false);
        return super.createSubject(context);
    }
}
springboot-vue3/src/main/java/com/example/springboot/security/UserRealm.java
New file
@@ -0,0 +1,102 @@
package com.example.springboot.security;
import cn.hutool.core.collection.CollectionUtil;
import com.example.springboot.entity.MenuList;
import com.example.springboot.entity.Permission;
import com.example.springboot.entity.Role;
import com.example.springboot.entity.RoleMenuList;
import com.example.springboot.entity.RolePermission;
import com.example.springboot.entity.User;
import com.example.springboot.security.constant.SystemConstant;
import com.example.springboot.security.util.SecurityUtil;
import com.example.springboot.service.MenuListService;
import com.example.springboot.service.PermissionService;
import com.example.springboot.service.RoleMenuListService;
import com.example.springboot.service.RolePermissionService;
import com.example.springboot.service.RoleService;
import com.example.springboot.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.DisabledAccountException;
import org.apache.shiro.authc.SimpleAuthenticationInfo;
import org.apache.shiro.authc.UnknownAccountException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.util.ByteSource;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Slf4j
public class UserRealm extends AuthorizingRealm {
    @Autowired
    private UserService userService;
    @Autowired
    private RolePermissionService rolePermissionService;
    @Autowired
    private PermissionService permissionService;
    @Autowired
    private RoleService roleService;
    @Autowired
    private MenuListService menuListService;
    @Autowired
    private RoleMenuListService roleMenuListService;
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        // 执行授权
        SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();
        // 设置角色
        List<Role> roles = roleService.selectRoles(SecurityUtil.getCurrentUser().getRoleId(), true);
        if (CollectionUtil.isEmpty(roles)) {
            return null;
        }
        authorizationInfo.addRoles(roles.stream().map(Role::getName).collect(Collectors.toList()));
        List<RolePermission> rolePermissions = rolePermissionService.lambdaQuery().eq(RolePermission::getRoleId, SecurityUtil.getCurrentUser().getRoleId())
                .eq(RolePermission::getState, 1).list();
        if (CollectionUtil.isNotEmpty(rolePermissions)) {
            Set<Permission> set = new HashSet<>();
            for (RolePermission rolePermission : rolePermissions) {
                List<Permission> permissions = permissionService.lambdaQuery().eq(Permission::getId, rolePermission.getPermissionId()).list();
                set.addAll(permissions);
            }
            // 设置权限
            authorizationInfo.addStringPermissions(set.stream().map(Permission::getName).collect(Collectors.toList()));
        }
        return authorizationInfo;
    }
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) {
        if (authenticationToken.getPrincipal() == null) {
            return null;
        }
        // 执行认证
        UsernamePasswordToken usernamePasswordToken = (UsernamePasswordToken) authenticationToken;
        User user = userService.selectByUsername(usernamePasswordToken.getUsername());
        // 判断用户
        if (user == null) {
            throw new UnknownAccountException("用户不存在!");
        }
        if (user.getState() == 0) {
            throw new DisabledAccountException("账号已被禁用!");
        }
        // 认证成功之后设置角色关联的菜单
        List<RoleMenuList> roleMenuLists = roleMenuListService.lambdaQuery().in(RoleMenuList::getRoleId, user.getRoleId()).list();
        if (CollectionUtil.isNotEmpty(roleMenuLists)) {
            List<Long> collect = roleMenuLists.stream().map(RoleMenuList::getMenuListId).collect(Collectors.toList());
            List<MenuList> menuLists = menuListService.lambdaQuery().in(CollectionUtil.isNotEmpty(collect), MenuList::getId, collect).list();
            // 认证成功之后设置角色关联的菜单
            user.setMenuLists(CollectionUtil.isNotEmpty(collect) ? menuLists : null);
        }
        return new SimpleAuthenticationInfo(user, user.getPassword(), ByteSource.Util.bytes(SystemConstant.JWT_SECRET_KEY), getName());
    }
}
springboot-vue3/src/main/java/com/example/springboot/security/config/ShiroConfig.java
New file
@@ -0,0 +1,185 @@
package com.example.springboot.security.config;
import com.example.springboot.security.JWTRealm;
import com.example.springboot.security.NoSessionFilter;
import com.example.springboot.security.StatelessDefaultSubjectFactory;
import com.example.springboot.security.UserRealm;
import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
import org.apache.shiro.codec.Base64;
import org.apache.shiro.mgt.DefaultSessionStorageEvaluator;
import org.apache.shiro.mgt.DefaultSubjectDAO;
import org.apache.shiro.spring.LifecycleBeanPostProcessor;
import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.CookieRememberMeManager;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.apache.shiro.web.servlet.SimpleCookie;
import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import javax.servlet.Filter;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
@Configuration
public class ShiroConfig {
    /**
     * Shiro生命周期处理器
     *
     * @return
     */
    @Bean
    public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
        return new LifecycleBeanPostProcessor();
    }
    /**
     * 开启Shiro的注解(如@RequiresRoles,@RequiresPermissions),需借助SpringAOP扫描使用Shiro注解的类,并在必要时进行安全逻辑验证
     * DefaultAdvisorAutoProxyCreator的顺序必须在shiroFilterFactoryBean之前,不然SecurityUtils.getSubject().getPrincipal()获取不到参数
     *
     * @return
     */
    @Bean
    @DependsOn({"lifecycleBeanPostProcessor"})
    public DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator() {
        DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
        advisorAutoProxyCreator.setProxyTargetClass(true);
        return advisorAutoProxyCreator;
    }
    @Bean
    public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor() {
        AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();
        authorizationAttributeSourceAdvisor.setSecurityManager(defaultSecurityManager());
        return authorizationAttributeSourceAdvisor;
    }
    @Bean(name = "shiroFilterFactoryBean")
    public ShiroFilterFactoryBean shiroFilterFactoryBean() {
        ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
        shiroFilterFactoryBean.setSecurityManager(defaultSecurityManager());
        // 过滤规则
        Map<String, String> linkedHashMap = new LinkedHashMap<>();
        // 无状态登录情况下关闭了shiro中的session,导致所有需要加上authc接口请求时候都会报错,
        // 所以使用@RequiresRoles,@RequiresPermissions注解,aop方式实现接口的权限校验
        /* 添加shiro的内置过滤器,自定义url规则
         * Shiro自带拦截器配置规则
         * rest:比如/admins/user/**=rest[user],根据请求的方法,相当于/admins/user/**=perms[user:method] ,其中method为post,get,delete等
         * port:比如/admins/user/**=port[8081],当请求的url的端口不是8081是跳转到schemal://serverName:8081?queryString,其中schmal是协议http或https等,serverName是你访问的host,8081是url配置里port的端口,queryString是你访问的url里的?后面的参数
         * perms:比如/admins/user/**=perms[user:add:*],perms参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,比如/admins/user/**=perms["user:add:*,user:modify:*"],当有多个参数时必须每个参数都通过才通过,想当于isPermitedAll()方法
         * roles:比如/admins/user/**=roles[admin],参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,当有多个参数时,比如/admins/user/**=roles["admin,guest"],每个参数通过才算通过,相当于hasAllRoles()方法。//要实现or的效果看http://zgzty.blog.163.com/blog/static/83831226201302983358670/
         * anon:比如/admins/**=anon 没有参数,表示可以匿名使用
         * authc:比如/admins/user/**=authc表示需要认证才能使用,没有参数
         * authcBasic:比如/admins/user/**=authcBasic没有参数表示httpBasic认证
         * ssl:比如/admins/user/**=ssl没有参数,表示安全的url请求,协议为https
         * user:比如/admins/user/**=user没有参数表示必须存在用户,当登入操作时不做检查
         * 详情见文档 http://shiro.apache.org/web.html#urls-
         * */
        // 用户权限
//        linkedHashMap.put("/api/user/selectPage", "perms[user:select]");
//        linkedHashMap.put("/api/user/selectById", "perms[user:select]");
//        linkedHashMap.put("/api/user/updateById", "perms[user:update]");
//        linkedHashMap.put("/api/user/removeByIds", "perms[user:delete]");
//        // 商品权限
//        linkedHashMap.put("/api/product/deleteBatchIds", "perms[product:delete]");
//        linkedHashMap.put("/api/product/updateById", "perms[product:update]");
//        linkedHashMap.put("/api/product/insert", "perms[product:add]");
//
//        // 角色权限
//        linkedHashMap.put("/api/role/saveOrUpdate", "perms[role:add,role:update]");
//        linkedHashMap.put("/api/role/removeByIds", "perms[role:delete]");
//        linkedHashMap.put("/api/role/getById", "perms[role:select]");
//        linkedHashMap.put("/api/role/selectPage", "perms[role:select]");
//
//        // 菜单权限
//        linkedHashMap.put("/api/menuList/removeByIds", "perms[menuList:delete]");
//        linkedHashMap.put("/api/menuList/saveOrUpdate", "perms[menuList:add,menuList:update]");
//
//        // 订单权限
//        linkedHashMap.put("/api/order/deleteBatchIds", "perms[order:delete]");
//        linkedHashMap.put("/api/order/updateById", "perms[order:update]");
//
//        // 授权的权限
//        linkedHashMap.put("/api/rolePermission/saveOrUpdate", "perms[rolePermission:add]");
//        linkedHashMap.put("/api/rolePermission/removeByIds", "perms[rolePermission:delete]");
        // 自定义过滤器
        HashMap<String, Filter> filterHashMap = new HashMap<>();
        filterHashMap.put("jwt", new NoSessionFilter());
        shiroFilterFactoryBean.setFilters(filterHashMap);
        // 登录之后才可以请求的接口
        linkedHashMap.put("/api/**", "jwt");
        shiroFilterFactoryBean.setFilterChainDefinitionMap(linkedHashMap);
        return shiroFilterFactoryBean;
    }
    @Bean
    public DefaultWebSecurityManager defaultSecurityManager() {
        DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager();
        defaultWebSecurityManager.setRealms(Arrays.asList(userRealm(), jwtRealm()));
        // 禁用shiro中的session
        DefaultSubjectDAO defaultSubjectDAO = new DefaultSubjectDAO();
        DefaultSessionStorageEvaluator defaultSessionStorageEvaluator = new DefaultSessionStorageEvaluator();
        defaultSessionStorageEvaluator.setSessionStorageEnabled(false);
        defaultSubjectDAO.setSessionStorageEvaluator(defaultSessionStorageEvaluator);
        defaultWebSecurityManager.setSubjectDAO(defaultSubjectDAO);
        defaultWebSecurityManager.setSubjectFactory(subjectFactory());
        return defaultWebSecurityManager;
    }
    /**
     * 登录的认证和授权
     *
     * @return
     */
    @Bean
    public UserRealm userRealm() {
        UserRealm userRealm = new UserRealm();
        userRealm.setCredentialsMatcher(hashedCredentialsMatcher());
        return userRealm;
    }
    /**
     * token的认证和授权
     *
     * @return
     */
    @Bean
    public JWTRealm jwtRealm() {
        return new JWTRealm();
    }
    @Bean
    public StatelessDefaultSubjectFactory subjectFactory() {
        return new StatelessDefaultSubjectFactory();
    }
    /*
     * 凭证匹配器 由于我们的密码校验交给Shiro的SimpleAuthenticationInfo进行处理了
     */
    @Bean
    public HashedCredentialsMatcher hashedCredentialsMatcher() {
        HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher();
        hashedCredentialsMatcher.setHashAlgorithmName("MD5");// 散列算法:这里使用MD5算法;
        hashedCredentialsMatcher.setHashIterations(1024);// 散列的次数,比如散列两次,相当于MD5(MD5(""));
        return hashedCredentialsMatcher;
    }
    @Bean
    public CookieRememberMeManager cookieRememberMeManager() {
        CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();
        SimpleCookie simpleCookie = new SimpleCookie("rememberMe");
        simpleCookie.setMaxAge(259200000);
        cookieRememberMeManager.setCookie(simpleCookie);
        cookieRememberMeManager.setCipherKey(Base64.decode("6ZmI6I2j5Y+R5aSn5ZOlAA=="));
        return cookieRememberMeManager;
    }
}
springboot-vue3/src/main/java/com/example/springboot/security/constant/SystemConstant.java
New file
@@ -0,0 +1,27 @@
package com.example.springboot.security.constant;
public class SystemConstant {
    /**
     * 角色的key
     **/
    public static final String ROLE_CLAIMS = "rol";
    /**
     * rememberMe 为 false 的时候过期时间是1个小时
     */
    public static final long EXPIRATION = 60 * 60 * 24L;
    /**
     * rememberMe 为 true 的时候过期时间是7天
     */
    public static final long EXPIRATION_REMEMBER = 60 * 60 * 24 * 7L;
    /**
     * JWT签名密钥硬编码到应用程序代码中,应该存放在环境变量或.properties文件中。
     */
    public static final String JWT_SECRET_KEY = "C*F-JaNdRgUkXn2r5u8x/A?D(G+KbPeShVmYq3s6v9y$B&E)H@McQfTjWnZr4u7w";
    // JWT token defaults
    public static final String TOKEN_HEADER = "Authorization";
    public static final String TOKEN_TYPE = "JWT";
}
springboot-vue3/src/main/java/com/example/springboot/security/entity/JwtToken.java
New file
@@ -0,0 +1,22 @@
package com.example.springboot.security.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.apache.shiro.authc.AuthenticationToken;
@Data
@AllArgsConstructor
public class JwtToken implements AuthenticationToken {
    private static final long serialVersionUID = 3768999689537588845L;
    private String token;
    @Override
    public Object getPrincipal() {
        return token;
    }
    @Override
    public Object getCredentials() {
        return token;
    }
}
springboot-vue3/src/main/java/com/example/springboot/security/util/JwtUtil.java
New file
@@ -0,0 +1,68 @@
package com.example.springboot.security.util;
import com.example.springboot.security.constant.SystemConstant;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.security.Keys;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.crypto.SecretKey;
import javax.xml.bind.DatatypeConverter;
import java.util.Date;
@Data
@Component
@Slf4j
public class JwtUtil {
    /**
     * 生成足够的安全随机密钥,以适合符合规范的签名
     */
    private static byte[] apiKeySecretBytes = DatatypeConverter.parseBase64Binary(SystemConstant.JWT_SECRET_KEY);
    private static SecretKey secretKey = Keys.hmacShaKeyFor(apiKeySecretBytes);
    /**
     * 创建JWT
     *
     * @param subject      主体,用户名
     * @param isRememberMe 记住我
     * @return
     */
    public static String createToken(String subject, boolean isRememberMe) {
        long expiration = isRememberMe ? SystemConstant.EXPIRATION_REMEMBER : SystemConstant.EXPIRATION;
        String tokenPrefix = Jwts.builder()
                .setHeaderParam("typ", SystemConstant.TOKEN_TYPE)
                .signWith(secretKey, SignatureAlgorithm.HS256) // 设置加密方式
                .setIssuer("Authority") // //签发的人
                .setIssuedAt(new Date()) // 签发时间
                .setSubject(subject) // 主体
                .setExpiration(new Date(System.currentTimeMillis() + expiration * 1000)) // 有效时间
                .compact();
        return tokenPrefix;
    }
    public static boolean isTokenExpired(String token) {
        Date expiredDate = getTokenBody(token).getExpiration();
        return expiredDate.before(new Date());
    }
    public static String getUsernameByToken(String token) {
        return getTokenBody(token).getSubject();
    }
    /**
     * 解析JWT
     *
     * @param token
     * @return
     */
    private static Claims getTokenBody(String token) {
        return Jwts.parser()
                .setSigningKey(secretKey)
                .parseClaimsJws(token)
                .getBody();
    }
}
springboot-vue3/src/main/java/com/example/springboot/security/util/SecurityUtil.java
New file
@@ -0,0 +1,20 @@
package com.example.springboot.security.util;
import com.example.springboot.entity.User;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
public class SecurityUtil {
    /**
     * 获取当前登录用户
     *
     * @return
     */
    public static User getCurrentUser() {
        Subject subject = SecurityUtils.getSubject();
        if (!subject.isAuthenticated() && !subject.isRemembered()) {
            throw new RuntimeException("Log current user error: UnAuthenticated subject");
        }
        return (User) subject.getPrincipal();
    }
}
springboot-vue3/src/main/java/com/example/springboot/service/AlarmService.java
New file
@@ -0,0 +1,8 @@
package com.example.springboot.service;
import org.springframework.stereotype.Service;
@Service
public class AlarmService {
}
springboot-vue3/src/main/java/com/example/springboot/service/CategoryService.java
New file
@@ -0,0 +1,51 @@
package com.example.springboot.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.springboot.entity.Category;
import com.example.springboot.entity.vo.CategoryVo;
import java.util.List;
public interface CategoryService extends IService<Category> {
    /**
     * 分页查询分类
     *
     * @param categoryVO
     * @return
     */
    IPage<Category> selectPage(CategoryVo categoryVO);
    /**
     * 查询子集,返回非嵌套数据结构
     *
     * @param id
     * @param bool 是否包含自己
     * @return
     */
    List<Category> selectList(Long id, Boolean bool);
    /**
     * 查询子集,不包含自己,返回非嵌套数据结构
     *
     * @param id   分类的id
     * @param path 分类的路径
     * @return
     */
    List<Category> selectByPath(Long id, String path);
    /**
     * 查询子集,返回嵌套数据结构
     *
     * @return
     */
    List<Category> selectChilds(Long creator);
    /**
     * 查询子集,不包含自己,返回嵌套数据结构
     *
     * @param id
     * @return
     */
    List<Category> selectChild(Long id);
}
springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java
New file
@@ -0,0 +1,9 @@
package com.example.springboot.service;
import org.springframework.stereotype.Service;
@Service
public class HomeService {
}
springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java
@@ -11,6 +11,7 @@
import org.springframework.stereotype.Component;
import com.example.springboot.entity.Glass;
import com.example.springboot.entity.Queue;
import com.example.springboot.entity.north_glass_buffer1;
@Component
public class JdbcConnections {
@@ -69,12 +70,41 @@
        //  conn.close();
         return north_glass_buffer1s;
    }
    //根据玻璃id,订单id,铝框id查询客户玻璃信息
    public  Queue SelectGlassByGlassIdOrderIdFrameIdQueue(String glassid,String orderid,String frameid) throws SQLException {
        conn = getConn();
        Queue queue=new Queue();
        String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?";
         ps = conn.prepareStatement(sql);
         ps.setString(1, glassid);
         ps.setString(2, orderid);
         ps.setString(3, frameid);
         rs= ps.executeQuery();
         while (rs.next()) {
            queue.setid(rs.getInt("Id"));
            queue.setorderId(rs.getString("ordernumber"));
            queue.setlistId(rs.getString("listnumber"));
            queue.setboxId(rs.getString("boxnumber"));
            queue.setglassId(rs.getString("barcode"));
            queue.setglasswidthmm(rs.getDouble("glasslength"));
            queue.setglassheightmm(rs.getDouble("glassheight"));
            queue.setglasswidth(rs.getDouble("glasslength_mm"));
            queue.setglassheight(rs.getDouble("glassheight_mm"));
            // queue.setitemtype(rs.getString("itemtype"));
            // queue.setslotnumber(rs.getString("slotnumber"));
            // queue.setdatemodified(rs.getString("datemodified"));
            // queue.setdatecreated(rs.getString("datecreated"));
            // queue.setFrameBarcode(rs.getString("FrameBarcode"));
         }
        //  conn.close();
         return queue;
    }
    public  List<north_glass_buffer1> SelectGlassByGlassIdOrderIdFrameIds(String glassid,String orderid,String frameid) throws SQLException {
        conn = getConn();
        // north_glass_buffer1 glass=new north_glass_buffer1();
        List<north_glass_buffer1> glass=new ArrayList<north_glass_buffer1>();
        String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?";
        String sql = "select * from north_glass_buffer1 where position(? in barcode) and position(? in ordernumber) and position(? in FrameBarcode)";
         ps = conn.prepareStatement(sql);
         ps.setString(1, glassid);
         ps.setString(2, orderid);
springboot-vue3/src/main/java/com/example/springboot/service/MenuListService.java
New file
@@ -0,0 +1,34 @@
package com.example.springboot.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.springboot.entity.MenuList;
import com.example.springboot.entity.vo.MenuListVo;
import java.util.List;
public interface MenuListService extends IService<MenuList> {
    /**
     * 分页查询菜单
     *
     * @param menuListVO
     * @return
     */
    IPage<MenuList> selectPage(MenuListVo menuListVO);
    /**
     * 根据角色返回菜单,树状结构
     *
     * @param roleId
     * @return
     */
    List<MenuList> selectList(Long roleId);
    /**
     * 查询下级菜单,不包括自己
     *
     * @param parentId
     * @return
     */
    List<MenuList> selectByParentId(Long parentId, List<Long> ids);
}
springboot-vue3/src/main/java/com/example/springboot/service/OutSlice.java
New file
@@ -0,0 +1,66 @@
package com.example.springboot.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.example.springboot.entity.Out_slice;
public class OutSlice {
    // public static List<Out_slice> Groupbyresult(List<Out_slice> out_slices) {
    //     // 传入一个集合 进行分组条件分组
    //     List<Out_slice> resultlist = new ArrayList<Out_slice>();
    //     HashMap map = new HashMap<>();
    //     // HashMap<String,List<Out_slice>> map=new HashMap<String,List<Out_slice>>();
    //     for (Out_slice out_slice : out_slices) {
    //         String key_ = out_slice.getState() + "-";
    //         if (map.get(key_) == null) {
    //             List<Out_slice> lists = new ArrayList<Out_slice>();
    //             lists.add(out_slice);
    //             map.put(key_, lists);
    //         } else {
    //             List<Out_slice> lists = (List<Out_slice>) map.get(key_);
    //             lists.add(out_slice);
    //             map.put(key_, lists);
    //         }
    //     }
    //     return resultlist;
    // }
    // public static List<Out_slice> Orderbyresult(List<Out_slice> out_slices, int orders) {
    //     // orders 排序模式
    //     List<Out_slice> list = new ArrayList<Out_slice>();
    //     for (Out_slice out_slice : out_slices) {
    //         if (list.isEmpty()) {
    //             list.add(out_slice);
    //         } else {
    //             for (int i = 0; i < list.size(); i++) {
    //                 Out_slice out_slice2 = list.get(i);
    //                 if (out_slice.getID() > out_slice2.getID()) {
    //                     continue;
    //                 } else {
    //                     list.add(i, out_slice2);
    //                 }
    //             }
    //         }
    //     }
    // }
    // public static void f() {
    //     HashMap map = new HashMap<>();
    //     for (Out_slice out_slice : listoutslice) {
    //         String key_ = out_slice.getState() + "-";
    //         if (map.get(key_) == null) {
    //             List<Out_slice> lists = new ArrayList<Out_slice>();
    //             lists.add(out_slice);
    //             map.put(key_, lists);
    //         } else {
    //             List<Out_slice> lists = (List<Out_slice>) map.get(key_);
    //             lists.add(out_slice);
    //             map.put(key_, lists);
    //         }
    //     }
    // }
}
springboot-vue3/src/main/java/com/example/springboot/service/PermissionService.java
New file
@@ -0,0 +1,7 @@
package com.example.springboot.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.springboot.entity.Permission;
public interface PermissionService extends IService<Permission> {
}
springboot-vue3/src/main/java/com/example/springboot/service/RoleMenuListService.java
New file
@@ -0,0 +1,10 @@
package com.example.springboot.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.springboot.entity.RoleMenuList;
import com.example.springboot.entity.vo.RoleMenuListVo;
public interface RoleMenuListService extends IService<RoleMenuList> {
    IPage<RoleMenuList> selectPage(RoleMenuListVo roleMenuListVO);
}
springboot-vue3/src/main/java/com/example/springboot/service/RolePermissionService.java
New file
@@ -0,0 +1,16 @@
package com.example.springboot.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.springboot.entity.RolePermission;
import com.example.springboot.entity.vo.RolePermissionVo;
public interface RolePermissionService extends IService<RolePermission> {
    /**
     * 分页查询
     *
     * @param rolePermissionVO
     * @return
     */
    IPage<RolePermission> selectPage(RolePermissionVo rolePermissionVO);
}
springboot-vue3/src/main/java/com/example/springboot/service/RoleService.java
New file
@@ -0,0 +1,17 @@
package com.example.springboot.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.springboot.entity.Role;
import com.example.springboot.entity.vo.RoleVo;
import java.util.List;
import java.util.Set;
public interface RoleService extends IService<Role> {
    Set<Role> selectRolesByParentId(Set<Role> roles, Long id);
    List<Role> selectRoles(Long id, Boolean contain);
    IPage<Role> selectPage(RoleVo roleVO);
}
springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
@@ -536,9 +536,9 @@
        S7control.getinstance().WriteByte(address, bytes);// 派发出片id
    }
    //获取地址内的玻璃id转字符串
    public StringBuilder queGlassid(String address) {
    public StringBuilder queGlassid(String address,int count) {
        StringBuilder writedstrIdOut = new StringBuilder();
        byte[] writedglassidbytesOut = S7control.getinstance().ReadByte(address, 14);
        byte[] writedglassidbytesOut = S7control.getinstance().ReadByte(address, count);
      if (writedglassidbytesOut != null) {
        // 获取玻璃id
        for (byte iditem : writedglassidbytesOut) {
springboot-vue3/src/main/java/com/example/springboot/service/UserService.java
New file
@@ -0,0 +1,21 @@
package com.example.springboot.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.springboot.entity.User;
import com.example.springboot.entity.vo.UserVo;
import java.util.List;
public interface UserService extends IService<User> {
    IPage<User> selectPage(UserVo userVO);
    User selectByUsername(String username);
    Integer countByUsername(String username);
    List<Long> selectChild(Long id, Boolean bool);
    User getByDianqimima(String newPassword);
}
springboot-vue3/src/main/java/com/example/springboot/service/device/DeviceService.java
New file
@@ -0,0 +1,16 @@
package com.example.springboot.service.device;
import com.example.springboot.entity.device.DeviceEntity;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public interface DeviceService {
    List<DeviceEntity> getAllDevices();
    void updateDeviceName(DeviceEntity device);
    void updateMultipleDevices(List<DeviceEntity> devices);
    List<DeviceEntity> callStoredProc(DeviceEntity device); // 修改返回类型为 List<DeviceEntity>
}
springboot-vue3/src/main/java/com/example/springboot/service/device/impl/DeviceServiceImpl.java
New file
@@ -0,0 +1,50 @@
package com.example.springboot.service.device.impl;
import com.example.springboot.entity.device.DeviceEntity;
import com.example.springboot.mapper.device.DeviceMapper;
import com.example.springboot.service.device.DeviceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public  class DeviceServiceImpl implements DeviceService {
    private final DeviceMapper deviceDao;
    @Autowired
    public DeviceServiceImpl(DeviceMapper deviceDao) {
        this.deviceDao = deviceDao;
    }
    @Override
    public List<DeviceEntity> getAllDevices() {
        return deviceDao.selectAllDevices();
    }
    @Override
    public void updateDeviceName(DeviceEntity device) {
        deviceDao.updateDeviceName(device);
    }
    @Override
    public void updateMultipleDevices(List<DeviceEntity> devices) {
        deviceDao.updateMultipleDevices(devices);
    }
    @Override
    public List<DeviceEntity> callStoredProc(DeviceEntity device) {
        return performStoredProcQuery(device);
    }
    private List<DeviceEntity> performStoredProcQuery(DeviceEntity device) {
        // 执行存储过程的查询操作,并返回结果列表
        List<DeviceEntity> resultList = new ArrayList<>();
        return deviceDao.callStoredProc(device);
    }
}
springboot-vue3/src/main/java/com/example/springboot/service/impl/CategoryServiceImpl.java
New file
@@ -0,0 +1,79 @@
package com.example.springboot.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.springboot.entity.vo.CategoryVo;
import com.example.springboot.security.util.SecurityUtil;
import com.example.springboot.service.CategoryService;
import com.example.springboot.service.UserService;
import com.example.springboot.mapper.CategoryMapper;
import com.example.springboot.entity.Category;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> implements CategoryService {
    @Autowired
    private UserService userService;
    @Autowired
    private CategoryMapper categoryDao;
    @Override
    public IPage<Category> selectPage(CategoryVo categoryVO) {
        List<Long> longs = userService.selectChild(SecurityUtil.getCurrentUser().getId(), true);
        return lambdaQuery().like(StrUtil.isNotBlank(categoryVO.getName()), Category::getName, categoryVO.getName())
                .in(Category::getCreator, longs)
                .eq(null != categoryVO.getState(), Category::getState, categoryVO.getState())
                .eq(null != categoryVO.getParentId(), Category::getParentId, categoryVO.getParentId())
                .between(null != categoryVO.getStartTime() && null != categoryVO.getEndTime(), Category::getCreateTime, categoryVO.getStartTime(), categoryVO.getCreateTime())
                .orderByDesc(Category::getCreateTime)
                .page(new Page<>(categoryVO.getPageNum(), categoryVO.getPageSize()));
    }
    @Override
    public List<Category> selectList(Long id, Boolean bool) {
        Category category = getById(id);
        List<Category> categories = selectByPath(category.getId(), category.getPath());
        if (bool) categories.add(category);
        return categories;
    }
    @Override
    public List<Category> selectByPath(Long id, String path) {
        return categoryDao.selectByPath((path == null ? "" : path) + id + "-");
    }
    @Override
    public List<Category> selectChilds(Long creator) {
        List<Long> longs = userService.selectChild(creator, true);
        if (CollectionUtil.isNotEmpty(longs)) return new ArrayList<>();
        List<Category> categories = lambdaQuery()
                .or(categoryLambdaQueryWrapper -> categoryLambdaQueryWrapper.isNull(Category::getParentId).or().eq(Category::getParentId, ""))
                .in(Category::getCreator, longs)
                .list();
        for (Category category : categories) {
            List<Category> categories1 = selectChild(category.getId());
            category.setCategorys(categories1);
        }
        return categories;
    }
    @Override
    public List<Category> selectChild(Long id) {
        List<Category> categoryList = lambdaQuery().eq(Category::getParentId, id).list();
        if (CollectionUtil.isEmpty(categoryList)) return null;
        for (Category category1 : categoryList) {
            List<Category> categoryList1 = selectChild(category1.getId());
            category1.setCategorys(categoryList1);
        }
        return categoryList;
    }
}
springboot-vue3/src/main/java/com/example/springboot/service/impl/MenuListServiceImpl.java
New file
@@ -0,0 +1,73 @@
package com.example.springboot.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.springboot.entity.vo.MenuListVo;
import com.example.springboot.mapper.MenuListMapper;
import com.example.springboot.mapper.RoleMenuListMapper;
import com.example.springboot.security.util.SecurityUtil;
import com.example.springboot.service.MenuListService;
import com.example.springboot.service.RoleService;
import com.example.springboot.entity.MenuList;
import com.example.springboot.entity.Role;
import com.example.springboot.entity.RoleMenuList;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Slf4j
public class MenuListServiceImpl extends ServiceImpl<MenuListMapper, MenuList> implements MenuListService {
    @Autowired
    private RoleService roleService;
    @Autowired
    private RoleMenuListMapper roleMenuListDao;
    @Override
    public IPage<MenuList> selectPage(MenuListVo menuListVO) {
        return lambdaQuery()
                .like(StrUtil.isNotBlank(menuListVO.getName()), MenuList::getName, menuListVO.getName())
                .eq(null != menuListVO.getState(), MenuList::getState, menuListVO.getState())
                .between(null != menuListVO.getStartTime() && null != menuListVO.getEndTime(), MenuList::getCreateTime, menuListVO.getStartTime(), menuListVO.getEndTime())
                .orderByAsc(MenuList::getParentId).last(",create_time desc")
                .page(new Page<>(menuListVO.getPageNum(), menuListVO.getPageSize()));
    }
    @Override
    public List<MenuList> selectList(Long roleId) {
        List<Role> roles = roleService.selectRoles(roleId == null ? SecurityUtil.getCurrentUser().getRoleId() : roleId, true);
        List<Long> ids = roles.stream().map(Role::getId).collect(Collectors.toList());
        List<RoleMenuList> roleMenuLists = roleMenuListDao.selectList(new QueryWrapper<RoleMenuList>().lambda()
                .in(RoleMenuList::getRoleId, ids));
        List<Long> collect = roleMenuLists.stream().map(RoleMenuList::getMenuListId).collect(Collectors.toList());
        if (CollectionUtil.isEmpty(collect)) return new ArrayList<>();
        List<MenuList> menuLists = lambdaQuery()
                .or(menuListLambdaQueryWrapper -> menuListLambdaQueryWrapper.isNull(MenuList::getParentId).or().eq(MenuList::getParentId, ""))
                .in(MenuList::getId, collect)
                .list();
        for (MenuList menuList : menuLists) {
            List<MenuList> list = selectByParentId(menuList.getId(), collect);
            menuList.setMenuLists(list);
        }
        return menuLists;
    }
    @Override
    public List<MenuList> selectByParentId(Long parentId, List<Long> ids) {
        List<MenuList> list = lambdaQuery().eq(MenuList::getParentId, parentId).in(MenuList::getId, ids).list();
        if (CollectionUtil.isEmpty(list)) return null;
        for (MenuList menuList : list) {
            List<MenuList> menuLists = selectByParentId(menuList.getId(), ids);
            menuList.setMenuLists(menuLists);
        }
        return list;
    }
}
springboot-vue3/src/main/java/com/example/springboot/service/impl/PermissionServiceImpl.java
New file
@@ -0,0 +1,13 @@
package com.example.springboot.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.springboot.mapper.PermissionMapper;
import com.example.springboot.service.PermissionService;
import com.example.springboot.entity.Permission;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permission> implements PermissionService {
}
springboot-vue3/src/main/java/com/example/springboot/service/impl/RoleMenuListServiceImpl.java
New file
@@ -0,0 +1,33 @@
package com.example.springboot.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.springboot.mapper.MenuListMapper;
import com.example.springboot.mapper.RoleMapper;
import com.example.springboot.mapper.RoleMenuListMapper;
import com.example.springboot.service.RoleMenuListService;
import com.example.springboot.entity.RoleMenuList;
import com.example.springboot.entity.vo.RoleMenuListVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class RoleMenuListServiceImpl extends ServiceImpl<RoleMenuListMapper, RoleMenuList> implements RoleMenuListService {
    @Autowired
    private MenuListMapper menuListDao;
    @Autowired
    private RoleMapper roleDao;
    @Override
    public IPage<RoleMenuList> selectPage(RoleMenuListVo roleMenuListVO) {
        IPage<RoleMenuList> roleMenuListIPage = lambdaQuery().page(new Page<>(roleMenuListVO.getPageNum(), roleMenuListVO.getPageSize()));
        roleMenuListIPage.getRecords().forEach(rm -> {
            rm.setMenuList(menuListDao.selectById(rm.getMenuListId()));
            rm.setRole(roleDao.selectById(rm.getRoleId()));
        });
        return roleMenuListIPage;
    }
}
springboot-vue3/src/main/java/com/example/springboot/service/impl/RolePermissionServiceImpl.java
New file
@@ -0,0 +1,35 @@
package com.example.springboot.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.springboot.service.PermissionService;
import com.example.springboot.mapper.RolePermissionMapper;
import com.example.springboot.entity.RolePermission;
import com.example.springboot.entity.vo.RolePermissionVo;
import com.example.springboot.service.RolePermissionService;
import com.example.springboot.service.RoleService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class RolePermissionServiceImpl extends ServiceImpl<RolePermissionMapper, RolePermission> implements RolePermissionService {
    @Autowired
    private RoleService roleService;
    @Autowired
    private PermissionService permissionService;
    @Override
    public IPage<RolePermission> selectPage(RolePermissionVo rolePermissionVO) {
        IPage<RolePermission> rolePermissionIPage = lambdaQuery()
                .orderByAsc(RolePermission::getRoleId)
                .page(new Page<>(rolePermissionVO.getPageNum(), rolePermissionVO.getPageSize()));
        rolePermissionIPage.getRecords().forEach(rolePermission -> {
            rolePermission.setRole(roleService.getById(rolePermission.getRoleId()));
            rolePermission.setPermission(permissionService.getById(rolePermission.getPermissionId()));
        });
        return rolePermissionIPage;
    }
}
springboot-vue3/src/main/java/com/example/springboot/service/impl/RoleServiceImpl.java
New file
@@ -0,0 +1,53 @@
package com.example.springboot.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.springboot.entity.vo.RoleVo;
import com.example.springboot.mapper.RoleMapper;
import com.example.springboot.service.RoleService;
import com.example.springboot.entity.Role;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@Service
@Slf4j
public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService {
    @Autowired
    private RoleMapper roleDao;
    @Override
    public Set<Role> selectRolesByParentId(Set<Role> roles, Long id) {
        List<Role> list = lambdaQuery().eq(Role::getParentId, id).eq(Role::getState, 1).list();
        roles.addAll(list);
        for (Role role : list) {
            Set<Role> roles1 = selectRolesByParentId(roles, role.getId());
            roles.addAll(roles1);
        }
        return roles;
    }
    @Override
    public List<Role> selectRoles(Long id, Boolean contain) {
        HashSet<Role> roles = new HashSet<>();
        if (contain) {
            roles.add(roleDao.selectById(id));
        }
        selectRolesByParentId(roles, id);
        return new ArrayList<>(roles);
    }
    @Override
    public IPage<Role> selectPage(RoleVo roleVO) {
        return lambdaQuery()
                .like(StrUtil.isNotBlank(roleVO.getName()), Role::getName, roleVO.getName())
                .page(new Page<>(roleVO.getPageNum(), roleVO.getPageSize()));
    }
}
springboot-vue3/src/main/java/com/example/springboot/service/impl/UserServiceImpl.java
New file
@@ -0,0 +1,65 @@
package com.example.springboot.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.springboot.entity.vo.UserVo;
import com.example.springboot.mapper.UserMapper;
import com.example.springboot.security.util.SecurityUtil;
import com.example.springboot.service.UserService;
import com.example.springboot.entity.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Slf4j
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    @Autowired
    private UserMapper userDao;
    public IPage<User> selectPage(UserVo userVO) {
        List<Long> longs = selectChild(SecurityUtil.getCurrentUser().getId(), true);
        return lambdaQuery()
                .in(User::getId, longs)
                .like(StrUtil.isNotBlank(userVO.getUsername()), User::getUsername, userVO.getUsername())
                .like(StrUtil.isNotBlank(userVO.getEmail()), User::getEmail, userVO.getEmail())
                .like(StrUtil.isNotBlank(userVO.getQq()), User::getQq, userVO.getQq())
                .like(StrUtil.isNotBlank(userVO.getPhone()), User::getPhone, userVO.getPhone())
                .eq(null != userVO.getState(), User::getState, userVO.getState())
                .eq(null != userVO.getRoleId(), User::getRoleId, userVO.getRoleId())
                .eq(null != userVO.getParentId(), User::getParentId, userVO.getParentId())
                .between(null != userVO.getStartTime() && null != userVO.getEndTime(), User::getCreateTime, userVO.getStartTime(), userVO.getEndTime())
                .orderByAsc(User::getRoleId)
                .orderByDesc(User::getCreateTime)
                .page(new Page<>(userVO.getPageNum(), userVO.getPageSize()));
    }
    public User selectByUsername(String username) {
        return lambdaQuery().select(User::getId, User::getRoleId, User::getUsername, User::getPassword, User::getState).eq(User::getUsername, username).one();
    }
    public User getByDianqimima(String newPassword) {
        return lambdaQuery().select(User::getPassword).one();
    }
    public User getByUser(String admin) {
        return lambdaQuery().select(User::getUsername).one();
    }
    public Integer countByUsername(String username) {
        return lambdaQuery().eq(User::getUsername, username).count();
    }
    public List<Long> selectChild(Long id, Boolean bool) {
        User user = getById(id);
        List<User> users = userDao.selectChild(user.getPath() + user.getId() + "-");
        List<Long> ids = users.stream().map(User::getId).collect(Collectors.toList());
        if (bool) ids.add(id);
        return ids;
    }
}
springboot-vue3/src/main/java/com/example/springboot/util/ValidatorUtil.java
New file
@@ -0,0 +1,38 @@
package com.example.springboot.util;
import org.hibernate.validator.HibernateValidator;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Set;
/**
 * hibernate-validator校验工具类
 * 参考文档:http://docs.jboss.org/hibernate/validator/5.4/reference/en-US/html_single/
 */
public class ValidatorUtil {
    private static Validator validator;
    static {
        validator = Validation.byProvider(HibernateValidator.class).configure().failFast(true).buildValidatorFactory().getValidator();
    }
    /**
     * ValidatorUtil.validateEntity(role);
     * 在controller接口中使用此方便校验实体参数的合法校验对象
     *
     * @param object 待校验对象
     * @param groups 待校验的组
     */
    public static void validateEntity(Object object, Class<?>... groups) {
        Set<ConstraintViolation<Object>> constraintViolations = validator.validate(object, groups);
        if (!constraintViolations.isEmpty()) {
            StringBuilder msg = new StringBuilder();
            for (ConstraintViolation<Object> constraint : constraintViolations) {
                msg.append(constraint.getMessage()).append(",");
            }
            throw new RuntimeException(msg.toString());
        }
    }
}
springboot-vue3/src/main/resources/application.properties
New file
@@ -0,0 +1,25 @@
#\u5B9A\u4E49\u9879\u76EE\u7AEF\u53E3
server.port=8888
#\u5B9A\u4E49\u9879\u76EE\u7684\u8BBF\u95EE\u76EE\u5F55
server.servlet.context-path=/springboot-vue3
####MyBatis-Plus\u914D\u7F6E
#\u6570\u636E\u5E93\u9A71\u52A8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#\u6570\u636E\u5E93\u8FDE\u63A5\u5730\u5740
spring.datasource.url=jdbc:mysql://localhost:3306/canadames?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
#\u6570\u636E\u5E93\u7528\u6237\u540D
spring.datasource.username=root
#\u6570\u636E\u5E93\u7528\u6237\u5BC6\u7801
spring.datasource.password=beibo.123/
#\u6620\u5C04\u6587\u4EF6\u7684\u4F4D\u7F6E
mybatis-plus.mapper-locations=classpath:com/example/springboot/mapper/*Mapper.xml
#\u7C7B\u578B\u522B\u540D
mybatis-plus.type-aliases-package=com.example.springboot.entity
#\u914D\u7F6Esql\u6253\u5370
logging.level.com.jonssonyanyan.dao=debug
#spring\u4E2D\u9ED8\u8BA4\u662Ftrue\uFF0C\u4E5F\u5C31\u662F\u9ED8\u8BA4\u652F\u6301\u540D\u79F0\u76F8\u540C\u7684bean\u7684\u8986\u76D6\u3002\u800Cspringboot\u4E2D\u7684\u9ED8\u8BA4\u503C\u662Ffalse\uFF0C\u4E5F\u5C31\u662F\u4E0D\u652F\u6301\u540D\u79F0\u76F8\u540C\u7684bean\u88AB\u8986\u76D6
spring.main.allow-bean-definition-overriding=true
#\u683C\u5F0F\u5316date\u65E5\u671F\u683C\u5F0F
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
springboot-vue3/src/main/resources/com/example/springboot/mapper/CategoryMapper.xml
New file
@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.springboot.mapper.CategoryMapper">
    <delete id="categoryDeleteByIds">
        delete
        from `category` where id in
        <foreach collection="ids" open="(" close=")" separator="," item="item">
            #{item}
        </foreach>
    </delete>
    <update id="categoryUpdateById">
        update `category`
        <set>
            <if test="category.name != null and category.name != ''">
                `name` = #{category.name}
            </if>
            <if test="category.state != null">
                , state = #{category.state}
            </if>
        </set>
        where id = #{id}
    </update>
    <insert id="categoryInsert">
        insert into `category`(`name`, `state`)
        values (#{category.name}, #{category.state})
    </insert>
    <select id="findAllExceptSelf" resultType="com.example.springboot.entity.Category">
        select id, `name`, parent, `state`, create_time
        from category
        <where>
            <if test="id != null">
                id != #{id}
            </if>
        </where>
    </select>
    <select id="selectByPath" resultType="com.example.springboot.entity.Category">
        select id          id,
               `name`      name,
               creator     creator,
               `level`     level,
               create_time createTime
        from category
        <where>
            <if test="path != null and path != ''">
                category.`path` like concat('', #{path}, '%')
            </if>
        </where>
    </select>
</mapper>
springboot-vue3/src/main/resources/com/example/springboot/mapper/DeviceMapper.xml
New file
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.springboot.mapper.device.DeviceMapper">
    <resultMap id="myResultMap" type="com.example.springboot.entity.device.DeviceEntity">
        <!-- 根据你的实际情况定义结果映射 -->
        <!-- 示例中将结果映射到实体类的属性 -->
        <id property="id" column="id"/>
        <result property="name" column="device_name"/>
        <!-- 其他属性映射 -->
    </resultMap>
    <select id="selectAllDevices" resultMap="myResultMap">
        SELECT *
        FROM device
    </select>
    <select id="callStoredProc" statementType="CALLABLE" resultMap="myResultMap">
        { call Your_Stored_Procedure(
                #{id, mode=IN, jdbcType=VARCHAR},
                #{name, mode=IN, jdbcType=VARCHAR}
            ) }
    </select>
    <update id="updateDeviceName">
        UPDATE device SET
                          device_name = #{deviceName},
                          address = #{address}
        WHERE id = #{id}
    </update>
    <update id="updateMultipleDevices" parameterType="java.util.List">
        <foreach collection="list" item="device" separator=";">
            UPDATE device SET
            device_name = #{device.deviceName},
            address = #{device.address}
            WHERE id = #{device.id}
        </foreach>
    </update>
</mapper>
springboot-vue3/src/main/resources/com/example/springboot/mapper/MenuListMapper.xml
New file
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.springboot.mapper.MenuListMapper">
    <select id="findByParent" resultType="com.example.springboot.entity.MenuList">
        select id, `name`, `path`
        from menu_list
        where parent = #{parent}
        order by priority
    </select>
    <select id="findByParentNull" resultType="com.example.springboot.entity.MenuList">
        select id, `name`, `path`
        from menu_list
        where parent is null
        order by priority
    </select>
</mapper>
springboot-vue3/src/main/resources/com/example/springboot/mapper/PermissionMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.springboot.mapper.PermissionMapper">
</mapper>
springboot-vue3/src/main/resources/com/example/springboot/mapper/RoleMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.springboot.mapper.RoleMapper">
</mapper>
springboot-vue3/src/main/resources/com/example/springboot/mapper/RoleMenuListMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.springboot.mapper.RoleMenuListMapper">
</mapper>
springboot-vue3/src/main/resources/com/example/springboot/mapper/RolePermissionMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.springboot.mapper.RolePermissionMapper">
</mapper>
springboot-vue3/src/main/resources/com/example/springboot/mapper/UserMapper.xml
New file
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.springboot.mapper.UserMapper">
    <select id="selectChild" resultType="com.example.springboot.entity.User">
        select u.id          id,
               u.parent_id   parentId,
               u.path        path,
               u.level       level,
               u.role_id     role_id,
               u.username    username,
               u.email       email,
               u.qq          qq,
               u.phone       phone,
               u.state       state,
               u.dianqimima       dianqimima,
               u.create_time createTime
        from user u
        <where>
            <if test="path != null and path != ''">
                u.`path` like concat('', #{path}, '%')
            </if>
        </where>
    </select>
</mapper>
springboot-vue3/src/main/resources/sql/canadames.sql
New file
@@ -0,0 +1,1354 @@
/*
 Navicat MySQL Data Transfer
 Source Server         : 本地
 Source Server Type    : MySQL
 Source Server Version : 80022
 Source Host           : localhost:3306
 Source Schema         : canadames
 Target Server Type    : MySQL
 Target Server Version : 80022
 File Encoding         : 65001
 Date: 14/09/2023 09:47:12
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for alarmmg
-- ----------------------------
DROP TABLE IF EXISTS `alarmmg`;
CREATE TABLE `alarmmg`  (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
  `content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '报警信息',
  `timeon` datetime(0) NULL DEFAULT NULL COMMENT '开始时间',
  `endTime` datetime(0) NULL DEFAULT NULL COMMENT '结束时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1378 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of alarmmg
-- ----------------------------
INSERT INTO `alarmmg` VALUES (1, 'D01 VFD error', '2023-09-11 10:07:17', '2023-09-11 10:07:51');
INSERT INTO `alarmmg` VALUES (2, 'D02 VFD error', '2023-09-07 10:07:17', '2023-09-07 10:07:51');
INSERT INTO `alarmmg` VALUES (1338, 'D02 VFD error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1339, 'D04 VFD error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1340, 'D06 VFD error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1341, 'B02 VFD error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1342, 'A02 VFD error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1343, 'A02 servo turn error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1344, 'A02 servo travel error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1345, 'B02 servo travel error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1346, 'D01 pos error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1347, 'D02 pos error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1348, 'D03 pos error', '2023-09-12 16:10:32', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1349, 'D04 pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1350, 'D05 pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1351, 'D06 pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1352, 'A01 pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1353, 'A02 pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1354, 'B01 IN pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1355, 'B01 OUT pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1356, 'B02 IN pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1357, 'B02 OUT pos error', '2023-09-12 16:16:48', '2023-09-12 16:22:36');
INSERT INTO `alarmmg` VALUES (1358, 'D01 VFD error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1359, 'D03 VFD error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1360, 'D05 VFD error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1361, 'B01 VFD error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1362, 'A01 VFD error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1363, 'A01 servo turn error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1364, 'A01 servo travel error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1365, 'B01 servo travel error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1366, 'D01 DEC error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1367, 'D02 DEC error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1368, 'D03 DEC error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1369, 'D04 DEC error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1370, 'D05 DEC error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1371, 'D06 DEC error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1372, 'A01 DEC error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1373, 'A02 DEC error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1374, 'B01 IN DEC error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1375, 'B01 OUT DEC error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1376, 'B02 IN DEC error', '2023-09-12 16:22:36', NULL);
INSERT INTO `alarmmg` VALUES (1377, 'B02 OUT DEC error', '2023-09-12 16:22:36', NULL);
-- ----------------------------
-- Table structure for category
-- ----------------------------
DROP TABLE IF EXISTS `category`;
CREATE TABLE `category`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `parent_id` bigint NULL DEFAULT NULL COMMENT '父级id',
  `path` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '路径',
  `level` int NULL DEFAULT NULL COMMENT '等级',
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',
  `creator` bigint NULL DEFAULT NULL COMMENT '创建人',
  `state` tinyint NOT NULL DEFAULT 1 COMMENT '状态:0/下架 1/上架',
  `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品分类' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of category
-- ----------------------------
INSERT INTO `category` VALUES (1, NULL, NULL, NULL, '测试分类', 1, 1, '2021-11-28 15:08:32', '2021-11-28 15:08:32');
-- ----------------------------
-- Table structure for device
-- ----------------------------
DROP TABLE IF EXISTS `device`;
CREATE TABLE `device`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `device_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `create_user` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `create_time` datetime(0) NOT NULL,
  `device_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `status` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `info` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
  `model` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
  `count_time_flag` datetime(0) NULL DEFAULT NULL,
  `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `gps` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `debug_time` date NULL DEFAULT NULL,
  `end_time` date NULL DEFAULT NULL,
  `customer_name` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `customer_device_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `last_product_count_date` date NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `device_id_idx`(`device_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 47 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of device
-- ----------------------------
INSERT INTO `device` VALUES (31, 'LY140510-AG15B65R', 'admin', '2022-05-07 13:34:46', 'chen65设备', '未启用', '{\"Ver\":\"1.0\",\"iTopDos\":[160],\"iTopRightMerge\":[0],\"iBtmEnd\":[],\"iTopFront\":[],\"iBtmRow\":[10],\"iBtmLeftMerge\":[0],\"iTopLeftMerge\":[0],\"iTopColumn\":[8],\"iBtmDos\":[80],\"iBtmSingline\":[1],\"iBtmFront\":[],\"iBtmRightMerge\":[0],\"InterfaceName\":\"IDeviceInfor\",\"iTopEnd\":[],\"iTopRow\":[20],\"iTopSingline\":[1],\"DeviceName\":\"LY140510-AG15B65R\",\"iBtmColumn\":[8]}', '{\"Ver\":\"1.0\",\"Datas\":[{\"Binding\":\"Datas[0]\",\"Unit\":\"\",\"Name\":\"CurrentStatus\"},{\"Binding\":\"Datas[1]\",\"Unit\":\"℃\",\"Name\":\"RtTemperature\"},{\"Binding\":\"Datas[2]\",\"Unit\":\"%\",\"Name\":\"PvPower\"},{\"Binding\":\"Datas[3]\",\"Unit\":\"kw\",\"Name\":\"CurveTotalPower\"}],\"Segments\":[{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.2,\"Name\":\"Load\"},{\"Type\":\"Q\",\"Controls\":[{\"Binding\":\"GlassLength[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.2,\"Name\":\"5型风栅段\"},{\"Type\":\"F\",\"Controls\":[{\"Binding\":\"GlassLength[2]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.2,\"Name\":\"炉体段\"},{\"Type\":\"Q\",\"Controls\":[{\"Binding\":\"GlassLength[3]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.2,\"Name\":\"风栅段\"},{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[4]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.2,\"Name\":\"下片段\"}],\"InterfaceName\":\"IDeviceMapInfor\",\"DeviceName\":\"LY140510-AG15B65R\"}', '2022-12-31 00:00:00', '河南省/洛阳市/涧西区/洛阳北玻三元流风机技术有限公司', '112.36358,34.594068', '2022-05-07', '2022-05-07', '洛阳北玻', NULL, '2023-08-28');
INSERT INTO `device` VALUES (32, 'NG10000', 'admin', '2022-05-13 08:53:52', 'Device 1', '未启用', '{\"Ver\":\"1.0\",\"iTopDos\":[108],\"iTopRightMerge\":[1],\"iBtmEnd\":[],\"iTopFront\":[],\"iBtmRow\":[12],\"iBtmLeftMerge\":[1],\"iTopLeftMerge\":[1],\"iTopColumn\":[10],\"iBtmDos\":[108],\"iBtmSingline\":[],\"iBtmFront\":[],\"iBtmRightMerge\":[1],\"InterfaceName\":\"IDeviceInfor\",\"iTopEnd\":[],\"iTopRow\":[12],\"iTopSingline\":[],\"DeviceName\":\"NG10000\",\"iBtmColumn\":[10]}', '{\"Ver\":\"1.0\",\"Datas\":[{\"Binding\":\"Datas[0]\",\"Unit\":\"\",\"Name\":\"CurrentStatus\"},{\"Binding\":\"Datas[1]\",\"Unit\":\"℃\",\"Name\":\"RtTemperature\"},{\"Binding\":\"Datas[2]\",\"Unit\":\"%\",\"Name\":\"PvPower\"},{\"Binding\":\"Datas[3]\",\"Unit\":\"kw\",\"Name\":\"CurveTotalPower\"}],\"Segments\":[{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"Load\"},{\"Type\":\"F\",\"Controls\":[{\"Binding\":\"GlassLength[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"炉体段\"},{\"Type\":\"Q\",\"Controls\":[{\"Binding\":\"GlassLength[2]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"风栅段\"},{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[3]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"下片段\"}],\"InterfaceName\":\"IDeviceMapInfor\",\"DeviceName\":\"NG10000\"}', '2023-02-21 00:00:00', 'Address 1', '112.39741,34.61541', '2022-05-13', '2022-05-13', 'fsdfsdfs', NULL, '2022-10-28');
INSERT INTO `device` VALUES (33, 'NGtest150130', 'admin', '2022-08-09 09:18:14', 'Device 2', '未启用', NULL, '{\"Ver\":\"1.1\",\"Datas\":[{\"Binding\":\"Datas[0]\",\"Unit\":\"\",\"Name\":\"CurrentStatus\"},{\"Binding\":\"Datas[1]\",\"Unit\":\"℃\",\"Name\":\"RtTemperature\"},{\"Binding\":\"Datas[2]\",\"Unit\":\"%\",\"Name\":\"PvPower\"},{\"Binding\":\"Datas[3]\",\"Unit\":\"kw\",\"Name\":\"CurveTotalPower\"}],\"Segments\":[{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"Load\"},{\"Type\":\"F\",\"Controls\":[{\"Binding\":\"GlassLength[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"炉体段\"},{\"Type\":\"Q\",\"Controls\":[{\"Binding\":\"GlassLength[2]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"风栅段\"},{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[3]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"下片段\"}],\"InterfaceName\":\"IDeviceMapInfor\",\"DeviceName\":\"NGtest150130\"}', '2022-08-10 00:00:00', 'Address 2', '', '2022-08-09', '2022-08-09', '洛阳玻璃公司', NULL, NULL);
INSERT INTO `device` VALUES (34, 'NG150130', 'admin', '2022-08-10 11:34:10', '黑金刚', '未启用', NULL, '{\"Ver\":\"1.0\",\"Datas\":[{\"Binding\":\"Datas[0]\",\"Unit\":\"\",\"Name\":\"CurrentStatus\"},{\"Binding\":\"Datas[1]\",\"Unit\":\"℃\",\"Name\":\"RtTemperature\"},{\"Binding\":\"Datas[2]\",\"Unit\":\"%\",\"Name\":\"PvPower\"},{\"Binding\":\"Datas[3]\",\"Unit\":\"kw\",\"Name\":\"CurveTotalPower\"}],\"Segments\":[{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"Load\"},{\"Type\":\"F\",\"Controls\":[{\"Binding\":\"GlassLength[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"炉体段\"},{\"Type\":\"Q\",\"Controls\":[{\"Binding\":\"GlassLength[2]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"风栅段\"},{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[3]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"下片段\"}],\"InterfaceName\":\"IDeviceMapInfor\",\"DeviceName\":\"NG150130\"}', '2022-09-07 00:00:00', '', '', '2022-08-10', '2022-08-10', '洛阳玻璃公司', NULL, NULL);
INSERT INTO `device` VALUES (35, 'YL211116-AU1E60', 'admin', '2022-08-18 09:44:47', 'AU1E60', '未启用', NULL, NULL, '2022-08-18 09:44:47', '', '', '2022-08-10', '2022-08-10', NULL, NULL, NULL);
INSERT INTO `device` VALUES (36, 'Lyyyyy', 'admin', '2022-08-30 15:01:16', 'cccccccccccc', '未启用', NULL, NULL, '2022-08-30 15:01:16', '', '', '2022-08-30', '2022-08-30', '洛阳玻璃公司', NULL, NULL);
INSERT INTO `device` VALUES (38, 'NG20000', 'admin', '2022-10-21 16:36:03', '测试设备', '未启用', NULL, NULL, '2022-10-21 16:36:03', '', '', '2022-10-21', '2022-10-21', '测试用', NULL, NULL);
INSERT INTO `device` VALUES (39, 'FS221024-AU1E70', 'admin', '2023-03-14 14:42:27', '博昌业', '未启用', NULL, NULL, '2023-03-14 14:42:27', '', '', '2023-03-14', '2023-03-14', '佛山博昌业', NULL, NULL);
INSERT INTO `device` VALUES (40, 'DG210978-A1B50', 'admin', '2023-03-21 14:21:22', '中顺A1B50', '未启用', '{\"Ver\":\"1.0\",\"iTopDos\":[70],\"iTopRightMerge\":[1],\"iBtmEnd\":[],\"iTopFront\":[],\"iBtmRow\":[10],\"iBtmLeftMerge\":[1],\"iTopLeftMerge\":[1],\"iTopColumn\":[8],\"iBtmDos\":[70],\"iBtmSingline\":[],\"iBtmFront\":[],\"iBtmRightMerge\":[1],\"InterfaceName\":\"IDeviceInfor\",\"iTopEnd\":[],\"iTopRow\":[10],\"iTopSingline\":[],\"DeviceName\":\"DG210978-A1B50\",\"iBtmColumn\":[8]}', '{\"Ver\":\"1.0\",\"Datas\":[{\"Binding\":\"Datas[0]\",\"Unit\":\"\",\"Name\":\"CurrentStatus\"},{\"Binding\":\"Datas[1]\",\"Unit\":\"℃\",\"Name\":\"RtTemperature\"},{\"Binding\":\"Datas[2]\",\"Unit\":\"%\",\"Name\":\"PvPower\"},{\"Binding\":\"Datas[3]\",\"Unit\":\"kw\",\"Name\":\"CurveTotalPower\"}],\"Segments\":[{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"Load\"},{\"Type\":\"F\",\"Controls\":[{\"Binding\":\"GlassLength[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"炉体段\"},{\"Type\":\"Q\",\"Controls\":[{\"Binding\":\"GlassLength[2]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"风栅段\"},{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[3]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"下片段\"}],\"InterfaceName\":\"IDeviceMapInfor\",\"DeviceName\":\"DG210978-A1B50\"}', '2023-05-01 00:00:00', '', '', '2023-03-21', '2023-03-21', '东莞中顺', NULL, NULL);
INSERT INTO `device` VALUES (41, 'FS210305-AU1E60', 'admin', '2023-03-22 13:59:05', '鼎立业AU1E60', '未启用', '{\"Ver\":\"1.0\",\"iTopDos\":[96],\"iTopRightMerge\":[],\"iBtmEnd\":[],\"iTopFront\":[],\"iBtmRow\":[12],\"iBtmLeftMerge\":[],\"iTopLeftMerge\":[],\"iTopColumn\":[8],\"iBtmDos\":[96],\"iBtmSingline\":[],\"iBtmFront\":[],\"iBtmRightMerge\":[],\"InterfaceName\":\"IDeviceInfor\",\"iTopEnd\":[],\"iTopRow\":[12],\"iTopSingline\":[],\"DeviceName\":\"FS210305-AU1E60\",\"iBtmColumn\":[8]}', '{\"Ver\":\"1.0\",\"Datas\":[{\"Binding\":\"Datas[0]\",\"Unit\":\"\",\"Name\":\"CurrentStatus\"},{\"Binding\":\"Datas[1]\",\"Unit\":\"℃\",\"Name\":\"RtTemperature\"},{\"Binding\":\"Datas[2]\",\"Unit\":\"%\",\"Name\":\"PvPower\"},{\"Binding\":\"Datas[3]\",\"Unit\":\"kw\",\"Name\":\"CurveTotalPower\"}],\"Segments\":[{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"Load\"},{\"Type\":\"F\",\"Controls\":[{\"Binding\":\"GlassLength[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"炉体段\"},{\"Type\":\"Q\",\"Controls\":[{\"Binding\":\"GlassLength[2]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"风栅段\"},{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[3]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"下片段\"}],\"InterfaceName\":\"IDeviceMapInfor\",\"DeviceName\":\"FS210305-AU1E60\"}', '2023-05-01 00:00:00', '', '', '2023-03-22', '2023-03-22', '佛山鼎立业', NULL, NULL);
INSERT INTO `device` VALUES (42, 'FS220765-AU1E70', 'admin', '2023-03-28 15:08:56', '220765-AU1E70', '未启用', '{\"Ver\":\"1.0\",\"iTopDos\":[108],\"iTopRightMerge\":[1],\"iBtmEnd\":[],\"iTopFront\":[],\"iBtmRow\":[12],\"iBtmLeftMerge\":[1],\"iTopLeftMerge\":[1],\"iTopColumn\":[10],\"iBtmDos\":[108],\"iBtmSingline\":[],\"iBtmFront\":[],\"iBtmRightMerge\":[1],\"InterfaceName\":\"IDeviceInfor\",\"iTopEnd\":[],\"iTopRow\":[12],\"iTopSingline\":[],\"DeviceName\":\"FS220765-AU1E70\",\"iBtmColumn\":[10]}', '{\"Ver\":\"1.0\",\"Datas\":[{\"Binding\":\"Datas[0]\",\"Unit\":\"\",\"Name\":\"CurrentStatus\"},{\"Binding\":\"Datas[1]\",\"Unit\":\"℃\",\"Name\":\"RtTemperature\"},{\"Binding\":\"Datas[2]\",\"Unit\":\"%\",\"Name\":\"PvPower\"},{\"Binding\":\"Datas[3]\",\"Unit\":\"kw\",\"Name\":\"CurveTotalPower\"}],\"Segments\":[{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"Load\"},{\"Type\":\"F\",\"Controls\":[{\"Binding\":\"GlassLength[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"炉体段\"},{\"Type\":\"Q\",\"Controls\":[{\"Binding\":\"GlassLength[2]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"风栅段\"},{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[3]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"下片段\"}],\"InterfaceName\":\"IDeviceMapInfor\",\"DeviceName\":\"FS220765-AU1E70\"}', '2023-04-01 00:00:00', '', '', '2023-03-28', '2023-03-28', '佛山玖瑞', NULL, NULL);
INSERT INTO `device` VALUES (44, 'NG30000', 'admin', '2023-04-04 10:45:18', 'TEST', '未启用', NULL, NULL, '2023-04-04 10:45:18', '', '', '2023-04-04', '2023-04-04', NULL, NULL, NULL);
INSERT INTO `device` VALUES (46, 'FS220666-AU1B60', 'admin', '2023-04-04 11:38:34', '张勇AU1B60', '未启用', '{\"Ver\":\"1.0\",\"iTopDos\":[96],\"iTopRightMerge\":[],\"iBtmEnd\":[],\"iTopFront\":[],\"iBtmRow\":[12],\"iBtmLeftMerge\":[],\"iTopLeftMerge\":[],\"iTopColumn\":[8],\"iBtmDos\":[96],\"iBtmSingline\":[],\"iBtmFront\":[],\"iBtmRightMerge\":[],\"InterfaceName\":\"IDeviceInfor\",\"iTopEnd\":[],\"iTopRow\":[12],\"iTopSingline\":[],\"DeviceName\":\"FS220666-AU1B60\",\"iBtmColumn\":[8]}', '{\"Ver\":\"1.0\",\"Datas\":[{\"Binding\":\"Datas[0]\",\"Unit\":\"\",\"Name\":\"CurrentStatus\"},{\"Binding\":\"Datas[1]\",\"Unit\":\"℃\",\"Name\":\"RtTemperature\"},{\"Binding\":\"Datas[2]\",\"Unit\":\"%\",\"Name\":\"PvPower\"},{\"Binding\":\"Datas[3]\",\"Unit\":\"kw\",\"Name\":\"CurveTotalPower\"}],\"Segments\":[{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"Load\"},{\"Type\":\"F\",\"Controls\":[{\"Binding\":\"GlassLength[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmHeatFansFrequency[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"Hz\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"炉体段\"},{\"Type\":\"Q\",\"Controls\":[{\"Binding\":\"GlassLength[2]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"TopQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":0,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"},{\"Binding\":\"BtmQuenchDist[0]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"\"}],\"Width\":0.25,\"Name\":\"风栅段\"},{\"Type\":\"O\",\"Controls\":[{\"Binding\":\"GlassLength[3]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":3,\"Unit\":\"mm\",\"Font\":\"黑体 14px black\",\"Name\":\"ToolGlassLength\"},{\"Binding\":\"YieldCount[1]\",\"Col\":1,\"Type\":\"var\",\"Foreground\":\"black\",\"Row\":4,\"Unit\":\"\",\"Font\":\"黑体 14px black\",\"Name\":\"GlassOutPut\"}],\"Width\":0.25,\"Name\":\"下片段\"}],\"InterfaceName\":\"IDeviceMapInfor\",\"DeviceName\":\"FS220666-AU1B60\"}', '2023-04-04 11:38:34', '', '', '2023-04-04', '2023-04-04', NULL, NULL, NULL);
-- ----------------------------
-- Table structure for glass
-- ----------------------------
DROP TABLE IF EXISTS `glass`;
CREATE TABLE `glass`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `glassid` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `orderid` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `width` decimal(10, 2) NULL DEFAULT NULL,
  `height` decimal(10, 2) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of glass
-- ----------------------------
INSERT INTO `glass` VALUES (1, '001', '1145', 1400.00, 1200.00);
INSERT INTO `glass` VALUES (2, '002', '1145', 1500.00, 1100.00);
INSERT INTO `glass` VALUES (3, '112', '1145', 1220.00, 1500.00);
-- ----------------------------
-- Table structure for menu_list
-- ----------------------------
DROP TABLE IF EXISTS `menu_list`;
CREATE TABLE `menu_list`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `parent_id` bigint NULL DEFAULT NULL COMMENT '父级id',
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',
  `icon` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单图标',
  `priority` int NULL DEFAULT NULL COMMENT '优先级',
  `router` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '路由',
  `state` tinyint NOT NULL DEFAULT 1 COMMENT '状态 1/正常',
  `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 61 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of menu_list
-- ----------------------------
INSERT INTO `menu_list` VALUES (1, NULL, '用户管理', 'el-icon-user-solid', 1, '', 1, '2021-11-28 14:30:27', '2021-11-28 15:06:04');
INSERT INTO `menu_list` VALUES (2, NULL, '电气管理', 'el-icon-lollipop', 2, '', 1, '2023-08-23 20:11:38', '2023-09-01 16:34:36');
INSERT INTO `menu_list` VALUES (5, NULL, '权限管理', 'el-icon-collection-tag', 5, '', 1, '2021-11-28 14:30:27', '2021-11-28 15:06:04');
INSERT INTO `menu_list` VALUES (6, NULL, '角色管理', 'el-icon-s-flag', 6, '', 1, '2021-11-28 14:30:27', '2021-11-28 15:06:04');
INSERT INTO `menu_list` VALUES (7, 1, '用户列表', '', 7, 'user', 1, '2021-11-28 14:30:27', '2021-11-28 15:06:04');
INSERT INTO `menu_list` VALUES (8, 9, '主页', 'el-icon-menu', 8, 'home', 1, '2023-09-08 10:56:12', '2023-09-08 11:02:36');
INSERT INTO `menu_list` VALUES (9, NULL, '主页', 'el-icon-menu', 0, 'home', 1, '2023-09-08 10:43:34', '2023-09-08 11:02:32');
INSERT INTO `menu_list` VALUES (11, 5, '权限列表', '', 11, 'power', 1, '2021-11-28 14:30:28', '2021-11-28 15:06:04');
INSERT INTO `menu_list` VALUES (12, 6, '角色列表', '', 12, 'role', 1, '2021-11-28 14:30:28', '2021-11-28 15:06:04');
INSERT INTO `menu_list` VALUES (49, 2, '报警信息', '', 49, 'Electrical/alarm', 1, '2021-11-28 14:30:28', '2023-09-08 11:14:08');
INSERT INTO `menu_list` VALUES (51, 2, '设备状态', NULL, 51, 'Electrical/State', 1, '2023-08-25 13:29:13', '2023-09-11 17:07:08');
INSERT INTO `menu_list` VALUES (52, 2, '开关控制', NULL, 52, 'Electrical/Action', 1, '2023-08-25 13:29:18', '2023-09-12 17:02:54');
INSERT INTO `menu_list` VALUES (53, 2, '参数下发', NULL, 53, 'Electrical/Parameter', 1, '2023-08-25 13:29:22', '2023-09-01 16:32:29');
INSERT INTO `menu_list` VALUES (54, 2, 'IO状态', NULL, 53, 'Electrical/Sign', 1, '2023-08-25 13:29:22', '2023-09-11 17:06:16');
-- ----------------------------
-- Table structure for order_out
-- ----------------------------
DROP TABLE IF EXISTS `order_out`;
CREATE TABLE `order_out`  (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '序号',
  `order_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单号',
  `state` int NULL DEFAULT NULL COMMENT '状态(0:按此订单号出片,1结束出片)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of order_out
-- ----------------------------
INSERT INTO `order_out` VALUES (1, 'NG2202302', 1);
INSERT INTO `order_out` VALUES (2, 'NG2202302', 0);
-- ----------------------------
-- Table structure for permission
-- ----------------------------
DROP TABLE IF EXISTS `permission`;
CREATE TABLE `permission`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限标识',
  `description` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限描述',
  `state` tinyint NOT NULL DEFAULT 1 COMMENT '状态 1/正常',
  `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 32 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '权限' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of permission
-- ----------------------------
INSERT INTO `permission` VALUES (1, 'user:select', '用户查询', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (2, 'user:update', '用户修改', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (3, 'user:delete', '用户删除', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (7, 'role:add', '角色添加', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (8, 'role:update', '角色修改', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (9, 'role:delete', '角色删除', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (10, 'role:select', '角色查询', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (11, 'menuList:delete', '菜单删除', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (12, 'menuList:add', '菜单添加', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (13, 'menuList:update', '菜单修改', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (16, 'rolePermission:add', '授权添加', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (17, 'rolePermission:delete', '授权删除', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (18, 'rolePermission:select', '授权查询', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (19, 'permission:select', '权限查询', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (20, 'user:add', '用户添加', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (22, 'menuList:select', '菜单查询', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (25, 'category:select', '分类查询', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (26, 'category:delete', '分类删除', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (27, 'category:update', '分类修改', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (28, 'category:add', '分类添加', 1, '2021-11-28 15:07:36', '2021-11-28 15:07:36');
INSERT INTO `permission` VALUES (29, 'alarm:select', '报警信息查询', 1, '2021-11-28 15:07:36', '2023-08-28 15:16:24');
INSERT INTO `permission` VALUES (30, 'alarm:add', '报警信息添加', 1, '2023-08-24 08:48:53', '2023-08-28 15:16:27');
INSERT INTO `permission` VALUES (31, 'alarm:update', '报警信息修改', 1, '2023-08-24 08:49:23', '2023-08-28 15:16:29');
-- ----------------------------
-- Table structure for role
-- ----------------------------
DROP TABLE IF EXISTS `role`;
CREATE TABLE `role`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `parent_id` bigint NULL DEFAULT NULL COMMENT '上级角色',
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '角色名称',
  `description` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述',
  `state` tinyint NOT NULL DEFAULT 1 COMMENT '状态 1/正常',
  `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of role
-- ----------------------------
INSERT INTO `role` VALUES (1, NULL, 'admin', '系统管理员', 1, '2021-01-10 22:49:17', '2021-03-29 15:19:15');
INSERT INTO `role` VALUES (2, 1, 'user2', '普通用户', 1, '2021-01-13 00:28:58', '2021-03-29 15:19:15');
INSERT INTO `role` VALUES (5, 1, 'user3', '777', 1, '2023-08-24 10:02:58', '2023-08-28 14:28:22');
-- ----------------------------
-- Table structure for role_menu_list
-- ----------------------------
DROP TABLE IF EXISTS `role_menu_list`;
CREATE TABLE `role_menu_list`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `role_id` bigint NULL DEFAULT NULL COMMENT '角色id',
  `menu_list_id` bigint NULL DEFAULT NULL COMMENT '菜单id',
  `state` tinyint NULL DEFAULT 1 COMMENT '状态 1/正常',
  `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 57 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色和菜单关联表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of role_menu_list
-- ----------------------------
INSERT INTO `role_menu_list` VALUES (1, 1, 1, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
INSERT INTO `role_menu_list` VALUES (2, 1, 2, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
INSERT INTO `role_menu_list` VALUES (3, 1, 3, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
INSERT INTO `role_menu_list` VALUES (4, 1, 4, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
INSERT INTO `role_menu_list` VALUES (5, 1, 5, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
INSERT INTO `role_menu_list` VALUES (6, 1, 6, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
INSERT INTO `role_menu_list` VALUES (7, 1, 7, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
INSERT INTO `role_menu_list` VALUES (8, 1, 8, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
INSERT INTO `role_menu_list` VALUES (9, 1, 9, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
INSERT INTO `role_menu_list` VALUES (10, 1, 10, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
INSERT INTO `role_menu_list` VALUES (11, 1, 11, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
INSERT INTO `role_menu_list` VALUES (12, 1, 12, 1, '2021-11-28 15:10:03', '2021-11-28 15:10:03');
INSERT INTO `role_menu_list` VALUES (19, 1, 50, 1, '2023-08-24 09:13:00', '2023-08-24 09:13:00');
INSERT INTO `role_menu_list` VALUES (20, 1, 49, 1, '2023-08-24 10:08:38', '2023-08-28 15:39:54');
INSERT INTO `role_menu_list` VALUES (21, 1, 51, 1, '2023-08-24 10:08:56', '2023-08-28 15:39:54');
INSERT INTO `role_menu_list` VALUES (22, 1, 52, 1, '2023-08-24 10:08:56', '2023-08-28 15:39:54');
INSERT INTO `role_menu_list` VALUES (23, 1, 53, 1, '2023-08-24 10:08:56', '2023-08-28 15:39:54');
INSERT INTO `role_menu_list` VALUES (25, 1, 60, 1, '2023-08-25 13:05:53', '2023-08-25 13:05:53');
INSERT INTO `role_menu_list` VALUES (26, 1, 1, 1, '2023-08-28 14:29:17', '2023-08-28 15:39:54');
INSERT INTO `role_menu_list` VALUES (27, 1, 7, 1, '2023-08-28 15:11:09', '2023-08-28 15:39:54');
INSERT INTO `role_menu_list` VALUES (28, 1, 2, 1, '2023-08-28 15:14:19', '2023-08-28 15:39:54');
INSERT INTO `role_menu_list` VALUES (29, 1, 49, 1, '2023-08-28 15:14:27', '2023-08-28 15:39:54');
INSERT INTO `role_menu_list` VALUES (31, 2, 2, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
INSERT INTO `role_menu_list` VALUES (32, 2, 3, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
INSERT INTO `role_menu_list` VALUES (33, 2, 4, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
INSERT INTO `role_menu_list` VALUES (37, 2, 8, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
INSERT INTO `role_menu_list` VALUES (38, 2, 9, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
INSERT INTO `role_menu_list` VALUES (39, 2, 10, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
INSERT INTO `role_menu_list` VALUES (42, 2, 50, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
INSERT INTO `role_menu_list` VALUES (43, 2, 49, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
INSERT INTO `role_menu_list` VALUES (44, 2, 51, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
INSERT INTO `role_menu_list` VALUES (45, 2, 52, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
INSERT INTO `role_menu_list` VALUES (46, 2, 53, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
INSERT INTO `role_menu_list` VALUES (47, 2, 60, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
INSERT INTO `role_menu_list` VALUES (50, 2, 2, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
INSERT INTO `role_menu_list` VALUES (51, 2, 49, 1, '2023-08-28 15:14:27', '2023-08-28 15:53:34');
INSERT INTO `role_menu_list` VALUES (52, 2, 1, 1, '2023-08-30 16:28:57', '2023-08-30 16:28:57');
INSERT INTO `role_menu_list` VALUES (53, 2, 7, 1, '2023-08-30 16:29:05', '2023-08-30 16:29:05');
INSERT INTO `role_menu_list` VALUES (54, 1, 9, 1, '2023-09-08 10:55:54', '2023-09-08 11:02:55');
INSERT INTO `role_menu_list` VALUES (55, 1, 8, 1, '2023-09-08 10:56:45', '2023-09-08 11:01:43');
INSERT INTO `role_menu_list` VALUES (56, 2, 54, 1, '2023-09-11 17:09:17', '2023-09-11 17:09:24');
-- ----------------------------
-- Table structure for role_permission
-- ----------------------------
DROP TABLE IF EXISTS `role_permission`;
CREATE TABLE `role_permission`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `role_id` bigint NULL DEFAULT NULL COMMENT '角色id',
  `permission_id` bigint NULL DEFAULT NULL COMMENT '权限id',
  `state` tinyint NOT NULL DEFAULT 1 COMMENT '状态 1/正常',
  `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 76 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色权限' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of role_permission
-- ----------------------------
INSERT INTO `role_permission` VALUES (1, 1, 1, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (2, 1, 2, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (3, 1, 3, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (7, 1, 7, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (8, 1, 8, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (9, 1, 9, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (10, 1, 10, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (11, 1, 11, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (12, 1, 12, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (13, 1, 13, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (16, 1, 16, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (17, 1, 17, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (18, 1, 18, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (19, 1, 19, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (20, 1, 20, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (22, 1, 22, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (25, 1, 25, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (26, 1, 26, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (27, 1, 27, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (28, 1, 28, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (37, 2, 25, 1, '2021-11-28 16:30:57', '2021-11-28 16:31:04');
INSERT INTO `role_permission` VALUES (38, 2, 26, 1, '2021-11-28 16:30:57', '2021-11-28 16:31:04');
INSERT INTO `role_permission` VALUES (39, 2, 27, 1, '2021-11-28 16:30:57', '2021-11-28 16:31:04');
INSERT INTO `role_permission` VALUES (40, 2, 28, 1, '2021-11-28 16:32:35', '2021-11-28 16:37:20');
INSERT INTO `role_permission` VALUES (41, 2, 22, 1, '2021-11-28 19:57:35', '2021-11-28 19:57:35');
INSERT INTO `role_permission` VALUES (42, 1, 30, 1, '2023-08-24 08:55:34', '2023-08-24 08:55:34');
INSERT INTO `role_permission` VALUES (43, 1, 29, 1, '2023-08-24 08:56:15', '2023-08-24 08:56:15');
INSERT INTO `role_permission` VALUES (44, 1, 31, 1, '2023-08-24 08:56:23', '2023-08-24 08:56:23');
INSERT INTO `role_permission` VALUES (53, 2, 2, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (54, 2, 3, 0, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (56, 2, 8, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (57, 2, 9, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (58, 2, 10, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (61, 2, 13, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (62, 2, 16, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (63, 2, 17, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (64, 2, 18, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (65, 2, 19, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (66, 2, 20, 0, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (67, 2, 22, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (68, 2, 25, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (69, 2, 26, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (70, 2, 27, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (71, 2, 28, 1, '2021-11-28 15:07:54', '2021-11-28 15:07:54');
INSERT INTO `role_permission` VALUES (72, 2, 30, 1, '2023-08-24 08:55:34', '2023-08-24 08:55:34');
INSERT INTO `role_permission` VALUES (73, 2, 29, 1, '2023-08-24 08:56:15', '2023-08-28 15:33:14');
INSERT INTO `role_permission` VALUES (74, 2, 1, 1, '2023-08-30 16:29:46', '2023-08-30 16:29:46');
-- ----------------------------
-- Table structure for storage_cage
-- ----------------------------
DROP TABLE IF EXISTS `storage_cage`;
CREATE TABLE `storage_cage`  (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '序号',
  `glass_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '玻璃id',
  `order_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单id',
  `cage` int NULL DEFAULT NULL COMMENT '笼子id',
  `cell` int NULL DEFAULT NULL COMMENT '格子id',
  `tier` int NULL DEFAULT NULL COMMENT '格子层id',
  `width` decimal(7, 2) NULL DEFAULT NULL COMMENT '格子宽',
  `glasswidth` decimal(7, 2) NULL DEFAULT NULL COMMENT '玻璃宽',
  `glassheight` decimal(7, 2) NULL DEFAULT NULL COMMENT '玻璃高',
  `state` int NULL DEFAULT NULL COMMENT '状态(0:无玻璃,1:有玻璃,2:进片中,3:出片中,4:调度中)',
  `coating` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '涂层',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 421 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of storage_cage
-- ----------------------------
INSERT INTO `storage_cage` VALUES (1, NULL, NULL, 1, 1, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (2, NULL, NULL, 1, 1, 2, 1760.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (3, NULL, NULL, 1, 2, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (4, NULL, NULL, 1, 2, 2, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (5, NULL, NULL, 1, 3, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (6, NULL, NULL, 1, 3, 2, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (7, NULL, NULL, 1, 4, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (8, NULL, NULL, 1, 4, 2, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (9, NULL, NULL, 1, 5, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (10, NULL, NULL, 1, 5, 2, 1600.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (11, NULL, NULL, 1, 6, 1, 1600.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (12, '12', 'NG2202301', 1, 6, 2, 1602.00, 0.00, 2.00, 1, '2');
INSERT INTO `storage_cage` VALUES (13, NULL, NULL, 1, 7, 1, 1600.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (14, NULL, NULL, 1, 7, 2, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (15, NULL, NULL, 1, 8, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (16, NULL, NULL, 1, 8, 2, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (17, NULL, NULL, 1, 9, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (18, NULL, NULL, 1, 9, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (19, NULL, NULL, 1, 10, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (20, NULL, NULL, 1, 10, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (21, NULL, NULL, 1, 11, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (22, NULL, NULL, 1, 11, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (23, NULL, NULL, 1, 12, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (24, NULL, NULL, 1, 12, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (25, NULL, NULL, 1, 13, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (26, NULL, NULL, 1, 13, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (27, NULL, NULL, 1, 14, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (28, NULL, NULL, 1, 14, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (29, NULL, NULL, 1, 15, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (30, NULL, NULL, 1, 15, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (31, NULL, NULL, 1, 16, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (32, NULL, NULL, 1, 16, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (33, NULL, NULL, 1, 17, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (34, NULL, NULL, 1, 17, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (35, NULL, NULL, 1, 18, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (36, NULL, NULL, 1, 18, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (37, NULL, NULL, 1, 19, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (38, NULL, NULL, 1, 19, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (39, NULL, NULL, 1, 20, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (40, NULL, NULL, 1, 20, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (41, NULL, NULL, 1, 21, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (42, NULL, NULL, 1, 21, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (43, NULL, NULL, 2, 1, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (44, NULL, NULL, 2, 1, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (45, NULL, NULL, 2, 2, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (46, NULL, NULL, 2, 2, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (47, NULL, NULL, 2, 3, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (48, NULL, NULL, 2, 3, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (49, '112', '1145', 2, 4, 1, 330.00, 1220.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (50, NULL, NULL, 2, 4, 2, 1550.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (51, NULL, NULL, 2, 5, 1, 1550.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (52, NULL, NULL, 2, 5, 2, 1550.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (53, NULL, NULL, 2, 6, 1, 1550.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (54, NULL, NULL, 2, 6, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (55, NULL, NULL, 2, 7, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (56, NULL, NULL, 2, 7, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (57, NULL, NULL, 2, 8, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (58, NULL, NULL, 2, 8, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (59, NULL, NULL, 2, 9, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (60, NULL, NULL, 2, 9, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (61, NULL, NULL, 2, 10, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (62, NULL, NULL, 2, 10, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (63, NULL, NULL, 2, 11, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (64, NULL, NULL, 2, 11, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (65, NULL, NULL, 2, 12, 1, 1760.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (66, NULL, NULL, 2, 12, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (67, NULL, NULL, 2, 13, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (68, NULL, NULL, 2, 13, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (69, NULL, NULL, 2, 14, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (70, NULL, NULL, 2, 14, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (71, NULL, NULL, 2, 15, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (72, NULL, NULL, 2, 15, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (73, NULL, NULL, 2, 16, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (74, NULL, NULL, 2, 16, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (75, NULL, NULL, 2, 17, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (76, NULL, NULL, 2, 17, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (77, NULL, NULL, 2, 18, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (78, NULL, NULL, 2, 18, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (79, NULL, NULL, 2, 19, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (80, NULL, NULL, 2, 19, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (81, NULL, NULL, 2, 20, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (82, NULL, NULL, 2, 20, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (83, NULL, NULL, 2, 21, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (84, NULL, NULL, 2, 21, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (85, NULL, NULL, 3, 1, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (86, NULL, NULL, 3, 1, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (87, NULL, NULL, 3, 2, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (88, '116', '112', 3, 2, 2, 1500.00, 1200.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (89, '117', '112', 3, 3, 1, 1500.00, 1200.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (90, '118', '112', 3, 3, 2, 1500.00, 1200.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (91, '119', '112', 3, 4, 1, 1500.00, 1200.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (92, '120', '112', 3, 4, 2, 1500.00, 1200.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (93, '121', '112', 3, 5, 1, 1500.00, 1200.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (94, '', '', 3, 5, 2, 2700.00, 0.00, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (95, NULL, NULL, 3, 6, 1, 280.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (96, NULL, NULL, 3, 6, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (97, NULL, NULL, 3, 7, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (98, NULL, NULL, 3, 7, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (99, NULL, NULL, 3, 8, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (100, NULL, NULL, 3, 8, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (101, NULL, NULL, 3, 9, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (102, NULL, NULL, 3, 9, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (103, NULL, NULL, 3, 10, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (104, NULL, NULL, 3, 10, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (105, NULL, NULL, 3, 11, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (106, NULL, NULL, 3, 11, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (107, NULL, NULL, 3, 12, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (108, NULL, NULL, 3, 12, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (109, NULL, NULL, 3, 13, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (110, NULL, NULL, 3, 13, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (111, NULL, NULL, 3, 14, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (112, NULL, NULL, 3, 14, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (113, NULL, NULL, 3, 15, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (114, NULL, NULL, 3, 15, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (115, NULL, NULL, 3, 16, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (116, NULL, NULL, 3, 16, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (117, NULL, NULL, 3, 17, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (118, NULL, NULL, 3, 17, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (119, NULL, NULL, 3, 18, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (120, NULL, NULL, 3, 18, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (121, NULL, NULL, 3, 19, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (122, NULL, NULL, 3, 19, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (123, NULL, NULL, 3, 20, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (124, NULL, NULL, 3, 20, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (125, NULL, NULL, 3, 21, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (126, NULL, NULL, 3, 21, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (127, NULL, NULL, 4, 1, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (128, NULL, NULL, 4, 1, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (129, NULL, NULL, 4, 2, 1, 1550.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (130, NULL, NULL, 4, 2, 2, 1550.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (131, NULL, NULL, 4, 3, 1, 1550.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (132, NULL, NULL, 4, 3, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (133, NULL, NULL, 4, 4, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (134, NULL, NULL, 4, 4, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (135, NULL, NULL, 4, 5, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (136, NULL, NULL, 4, 5, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (137, NULL, NULL, 4, 6, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (138, NULL, NULL, 4, 6, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (139, NULL, NULL, 4, 7, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (140, NULL, NULL, 4, 7, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (141, '123', '112', 4, 8, 1, 1500.00, 1200.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (142, '124', '112', 4, 8, 2, 1500.00, 1200.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (143, '125', '112', 4, 9, 1, 1500.00, 1200.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (144, '126', '112', 4, 9, 2, 1500.00, 1200.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (145, '127', '112', 4, 10, 1, 1500.00, 1200.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (146, '128', '112', 4, 10, 2, 1500.00, 1200.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (147, NULL, NULL, 4, 11, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (148, NULL, NULL, 4, 11, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (149, NULL, NULL, 4, 12, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (150, NULL, NULL, 4, 12, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (151, NULL, NULL, 4, 13, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (152, NULL, NULL, 4, 13, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (153, NULL, NULL, 4, 14, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (154, NULL, NULL, 4, 14, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (155, NULL, NULL, 4, 15, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (156, NULL, NULL, 4, 15, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (157, NULL, NULL, 4, 16, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (158, NULL, NULL, 4, 16, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (159, NULL, NULL, 4, 17, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (160, NULL, NULL, 4, 17, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (161, NULL, NULL, 4, 18, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (162, NULL, NULL, 4, 18, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (163, NULL, NULL, 4, 19, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (164, NULL, NULL, 4, 19, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (165, NULL, NULL, 4, 20, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (166, NULL, NULL, 4, 20, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (167, NULL, NULL, 4, 21, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (168, NULL, NULL, 4, 21, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (169, NULL, NULL, 5, 1, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (170, NULL, NULL, 5, 1, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (171, NULL, NULL, 5, 2, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (172, NULL, NULL, 5, 2, 2, 1550.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (173, NULL, NULL, 5, 3, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (174, NULL, NULL, 5, 3, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (175, NULL, NULL, 5, 4, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (176, NULL, NULL, 5, 4, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (177, NULL, NULL, 5, 5, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (178, NULL, NULL, 5, 5, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (179, NULL, NULL, 5, 6, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (180, NULL, NULL, 5, 6, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (181, NULL, NULL, 5, 7, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (182, NULL, NULL, 5, 7, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (183, NULL, NULL, 5, 8, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (184, NULL, NULL, 5, 8, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (185, NULL, NULL, 5, 9, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (186, NULL, NULL, 5, 9, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (187, NULL, NULL, 5, 10, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (188, NULL, NULL, 5, 10, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (189, NULL, NULL, 5, 11, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (190, NULL, NULL, 5, 11, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (191, NULL, NULL, 5, 12, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (192, NULL, NULL, 5, 12, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (193, NULL, NULL, 5, 13, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (194, NULL, NULL, 5, 13, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (195, NULL, NULL, 5, 14, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (196, NULL, NULL, 5, 14, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (197, NULL, NULL, 5, 15, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (198, NULL, NULL, 5, 15, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (199, NULL, NULL, 5, 16, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (200, NULL, NULL, 5, 16, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (201, NULL, NULL, 5, 17, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (202, NULL, NULL, 5, 17, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (203, NULL, NULL, 5, 18, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (204, NULL, NULL, 5, 18, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (205, NULL, NULL, 5, 19, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (206, NULL, NULL, 5, 19, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (207, NULL, NULL, 5, 20, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (208, NULL, NULL, 5, 20, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (209, NULL, NULL, 5, 21, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (210, NULL, NULL, 5, 21, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (211, '129', '112', 6, 1, 1, 1500.00, 1200.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (212, '130', '113', 6, 1, 2, 1500.00, 1200.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (213, '', '', 6, 2, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (214, NULL, NULL, 6, 2, 2, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (215, NULL, NULL, 6, 3, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (216, NULL, NULL, 6, 3, 2, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (217, NULL, NULL, 6, 4, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (218, NULL, NULL, 6, 4, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (219, NULL, NULL, 6, 5, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (220, NULL, NULL, 6, 5, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (221, NULL, NULL, 6, 6, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (222, NULL, NULL, 6, 6, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (223, NULL, NULL, 6, 7, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (224, NULL, NULL, 6, 7, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (225, NULL, NULL, 6, 8, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (226, NULL, NULL, 6, 8, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (227, NULL, NULL, 6, 9, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (228, NULL, NULL, 6, 9, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (229, NULL, NULL, 6, 10, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (230, NULL, NULL, 6, 10, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (231, NULL, NULL, 6, 11, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (232, NULL, NULL, 6, 11, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (233, NULL, NULL, 6, 12, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (234, NULL, NULL, 6, 12, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (235, NULL, NULL, 6, 13, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (236, NULL, NULL, 6, 13, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (237, NULL, NULL, 6, 14, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (238, NULL, NULL, 6, 14, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (239, NULL, NULL, 6, 15, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (240, NULL, NULL, 6, 15, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (241, NULL, NULL, 6, 16, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (242, NULL, NULL, 6, 16, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (243, NULL, NULL, 6, 17, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (244, NULL, NULL, 6, 17, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (245, NULL, NULL, 6, 18, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (246, NULL, NULL, 6, 18, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (247, NULL, NULL, 6, 19, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (248, NULL, NULL, 6, 19, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (249, NULL, NULL, 6, 20, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (250, NULL, NULL, 6, 20, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (251, NULL, NULL, 6, 21, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (252, NULL, NULL, 6, 21, 2, 1788.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (253, '1', '1145', 7, 1, 1, 388.00, 1400.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (254, '112', '1145', 7, 1, 2, 568.00, 1220.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (255, '112', '1145', 7, 2, 1, 568.00, 1220.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (256, '001', '1145', 7, 2, 2, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (257, NULL, NULL, 7, 3, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (258, '112', '1145', 7, 3, 2, 280.00, 1220.00, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (259, NULL, NULL, 7, 4, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (260, NULL, NULL, 7, 4, 2, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (261, NULL, NULL, 7, 5, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (262, NULL, NULL, 7, 5, 2, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (263, NULL, NULL, 7, 6, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (264, NULL, NULL, 7, 6, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (265, NULL, NULL, 7, 7, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (266, NULL, NULL, 7, 7, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (267, NULL, NULL, 7, 8, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (268, NULL, NULL, 7, 8, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (269, NULL, NULL, 7, 9, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (270, NULL, NULL, 7, 9, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (271, NULL, NULL, 7, 10, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (272, NULL, NULL, 7, 10, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (273, NULL, NULL, 7, 11, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (274, NULL, NULL, 7, 11, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (275, NULL, NULL, 7, 12, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (276, NULL, NULL, 7, 12, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (277, NULL, NULL, 7, 13, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (278, NULL, NULL, 7, 13, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (279, NULL, NULL, 7, 14, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (280, NULL, NULL, 7, 14, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (281, NULL, NULL, 7, 15, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (282, NULL, NULL, 7, 15, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (283, NULL, NULL, 7, 16, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (284, NULL, NULL, 7, 16, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (285, NULL, NULL, 7, 17, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (286, NULL, NULL, 7, 17, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (287, NULL, NULL, 7, 18, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (288, NULL, NULL, 7, 18, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (289, NULL, NULL, 7, 19, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (290, NULL, NULL, 7, 19, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (291, NULL, NULL, 7, 20, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (292, NULL, NULL, 7, 20, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (293, NULL, NULL, 7, 21, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (294, NULL, NULL, 7, 21, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (295, NULL, NULL, 8, 1, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (296, NULL, NULL, 8, 1, 2, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (297, NULL, NULL, 8, 2, 1, 1788.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (298, NULL, NULL, 8, 2, 2, 1788.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (299, NULL, NULL, 8, 3, 1, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (300, NULL, NULL, 8, 3, 2, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (301, NULL, NULL, 8, 4, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (302, NULL, NULL, 8, 4, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (303, NULL, NULL, 8, 5, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (304, NULL, NULL, 8, 5, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (305, NULL, NULL, 8, 6, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (306, NULL, NULL, 8, 6, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (307, NULL, NULL, 8, 7, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (308, NULL, NULL, 8, 7, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (309, NULL, NULL, 8, 8, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (310, NULL, NULL, 8, 8, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (311, NULL, NULL, 8, 9, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (312, NULL, NULL, 8, 9, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (313, NULL, NULL, 8, 10, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (314, NULL, NULL, 8, 10, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (315, NULL, NULL, 8, 11, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (316, NULL, NULL, 8, 11, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (317, NULL, NULL, 8, 12, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (318, NULL, NULL, 8, 12, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (319, NULL, NULL, 8, 13, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (320, NULL, NULL, 8, 13, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (321, NULL, NULL, 8, 14, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (322, NULL, NULL, 8, 14, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (323, NULL, NULL, 8, 15, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (324, NULL, NULL, 8, 15, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (325, NULL, NULL, 8, 16, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (326, NULL, NULL, 8, 16, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (327, NULL, NULL, 8, 17, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (328, NULL, NULL, 8, 17, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (329, NULL, NULL, 8, 18, 1, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (330, NULL, NULL, 8, 18, 2, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (331, NULL, NULL, 8, 19, 1, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (332, NULL, NULL, 8, 19, 2, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (333, NULL, NULL, 8, 20, 1, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (334, NULL, NULL, 8, 20, 2, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (335, NULL, NULL, 8, 21, 1, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (336, NULL, NULL, 8, 21, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (337, NULL, NULL, 9, 1, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (338, NULL, NULL, 9, 1, 2, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (339, NULL, NULL, 9, 2, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (340, NULL, NULL, 9, 2, 2, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (341, NULL, NULL, 9, 3, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (342, NULL, NULL, 9, 3, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (343, NULL, NULL, 9, 4, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (344, NULL, NULL, 9, 4, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (345, NULL, NULL, 9, 5, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (346, NULL, NULL, 9, 5, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (347, NULL, NULL, 9, 6, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (348, NULL, NULL, 9, 6, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (349, NULL, NULL, 9, 7, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (350, NULL, NULL, 9, 7, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (351, NULL, NULL, 9, 8, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (352, NULL, NULL, 9, 8, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (353, NULL, NULL, 9, 9, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (354, NULL, NULL, 9, 9, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (355, NULL, NULL, 9, 10, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (356, NULL, NULL, 9, 10, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (357, NULL, NULL, 9, 11, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (358, NULL, NULL, 9, 11, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (359, NULL, NULL, 9, 12, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (360, NULL, NULL, 9, 12, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (361, NULL, NULL, 9, 13, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (362, NULL, NULL, 9, 13, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (363, NULL, NULL, 9, 14, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (364, NULL, NULL, 9, 14, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (365, NULL, NULL, 9, 15, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (366, NULL, NULL, 9, 15, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (367, NULL, NULL, 9, 16, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (368, NULL, NULL, 9, 16, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (369, NULL, NULL, 9, 17, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (370, NULL, NULL, 9, 17, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (371, NULL, NULL, 9, 18, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (372, NULL, NULL, 9, 18, 2, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (373, NULL, NULL, 9, 19, 1, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (374, NULL, NULL, 9, 19, 2, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (375, NULL, NULL, 9, 20, 1, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (376, NULL, NULL, 9, 20, 2, 1788.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (377, NULL, NULL, 9, 21, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (378, NULL, NULL, 9, 21, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (379, NULL, NULL, 10, 1, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (380, NULL, NULL, 10, 1, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (381, NULL, NULL, 10, 2, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (382, NULL, NULL, 10, 2, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (383, NULL, NULL, 10, 3, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (384, NULL, NULL, 10, 3, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (385, NULL, NULL, 10, 4, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (386, NULL, NULL, 10, 4, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (387, NULL, NULL, 10, 5, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (388, NULL, NULL, 10, 5, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (389, NULL, NULL, 10, 6, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (390, NULL, NULL, 10, 6, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (391, NULL, NULL, 10, 7, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (392, NULL, NULL, 10, 7, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (393, NULL, NULL, 10, 8, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (394, NULL, NULL, 10, 8, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (395, NULL, NULL, 10, 9, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (396, NULL, NULL, 10, 9, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (397, NULL, NULL, 10, 10, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (398, NULL, NULL, 10, 10, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (399, NULL, NULL, 10, 11, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (400, NULL, NULL, 10, 11, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (401, NULL, NULL, 10, 12, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (402, NULL, NULL, 10, 12, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (403, NULL, NULL, 10, 13, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (404, NULL, NULL, 10, 13, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (405, NULL, NULL, 10, 14, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (406, NULL, NULL, 10, 14, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (407, NULL, NULL, 10, 15, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (408, NULL, NULL, 10, 15, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (409, NULL, NULL, 10, 16, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (410, NULL, NULL, 10, 16, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (411, NULL, NULL, 10, 17, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (412, NULL, NULL, 10, 17, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (413, NULL, NULL, 10, 18, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (414, NULL, NULL, 10, 18, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (415, NULL, NULL, 10, 19, 1, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (416, NULL, NULL, 10, 19, 2, 1500.00, NULL, NULL, 1, NULL);
INSERT INTO `storage_cage` VALUES (417, NULL, NULL, 10, 20, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (418, NULL, NULL, 10, 20, 2, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (419, NULL, NULL, 10, 21, 1, 1500.00, NULL, NULL, 0, NULL);
INSERT INTO `storage_cage` VALUES (420, NULL, NULL, 10, 21, 2, 1500.00, NULL, NULL, 0, NULL);
-- ----------------------------
-- Table structure for storage_rack
-- ----------------------------
DROP TABLE IF EXISTS `storage_rack`;
CREATE TABLE `storage_rack`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `number` int NULL DEFAULT NULL COMMENT '架子编号',
  `state` int NULL DEFAULT NULL COMMENT '状态',
  `raw_package_id` bigint NULL DEFAULT NULL COMMENT '包号编号',
  `mod_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
  `falg` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '禁用启用',
  `cell` int NULL DEFAULT NULL,
  `cageno` int NULL DEFAULT NULL COMMENT '笼子号',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `raw_package_id1`(`raw_package_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 492 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of storage_rack
-- ----------------------------
INSERT INTO `storage_rack` VALUES (72, 1, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (73, 1, 1, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (74, 2, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (75, 2, 0, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (76, 3, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (77, 3, 0, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (78, 4, 3, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (79, 4, 3, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (80, 5, 3, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (81, 5, 3, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (82, 6, 0, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (83, 6, 0, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (84, 7, 0, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (85, 7, 0, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (86, 8, 0, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (87, 8, 0, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (88, 9, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (89, 9, 1, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (90, 10, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (91, 10, 1, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (92, 11, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (93, 11, 1, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (94, 12, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (95, 12, 1, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (96, 13, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (97, 13, 1, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (98, 14, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (99, 14, 1, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (100, 15, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (101, 15, 1, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (102, 16, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (103, 16, 1, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (104, 17, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (105, 17, 1, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (106, 18, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (107, 18, 1, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (108, 19, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (109, 19, 1, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (110, 20, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (111, 20, 1, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (112, 21, 1, NULL, NULL, NULL, 1, 1);
INSERT INTO `storage_rack` VALUES (113, 21, 1, NULL, NULL, NULL, 2, 1);
INSERT INTO `storage_rack` VALUES (114, 22, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (115, 22, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (116, 23, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (117, 23, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (118, 24, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (119, 24, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (120, 25, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (121, 25, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (122, 26, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (123, 26, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (124, 27, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (125, 27, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (126, 28, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (127, 28, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (128, 29, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (129, 29, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (130, 30, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (131, 30, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (132, 31, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (133, 31, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (134, 32, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (135, 32, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (136, 33, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (137, 33, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (138, 34, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (139, 34, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (140, 35, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (141, 35, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (142, 36, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (143, 36, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (144, 37, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (145, 37, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (146, 38, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (147, 38, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (148, 39, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (149, 39, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (150, 40, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (151, 40, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (152, 41, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (153, 41, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (154, 42, 1, NULL, NULL, NULL, 1, 2);
INSERT INTO `storage_rack` VALUES (155, 42, 1, NULL, NULL, NULL, 2, 2);
INSERT INTO `storage_rack` VALUES (156, 43, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (157, 43, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (158, 44, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (159, 44, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (160, 45, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (161, 45, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (162, 46, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (163, 46, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (164, 47, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (165, 47, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (166, 48, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (167, 48, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (168, 49, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (169, 49, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (170, 50, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (171, 50, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (172, 51, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (173, 51, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (174, 52, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (175, 52, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (176, 53, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (177, 53, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (178, 54, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (179, 54, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (180, 55, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (181, 55, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (182, 56, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (183, 56, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (184, 57, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (185, 57, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (186, 58, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (187, 58, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (188, 59, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (189, 59, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (190, 60, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (191, 60, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (192, 61, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (193, 61, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (194, 62, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (195, 62, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (196, 63, 1, NULL, NULL, NULL, 1, 3);
INSERT INTO `storage_rack` VALUES (197, 63, 1, NULL, NULL, NULL, 2, 3);
INSERT INTO `storage_rack` VALUES (198, 64, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (199, 64, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (200, 65, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (201, 65, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (202, 66, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (203, 66, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (204, 67, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (205, 67, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (206, 68, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (207, 68, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (208, 69, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (209, 69, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (210, 70, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (211, 70, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (212, 71, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (213, 71, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (214, 72, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (215, 72, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (216, 73, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (217, 73, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (218, 74, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (219, 74, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (220, 75, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (221, 75, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (222, 76, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (223, 76, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (224, 77, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (225, 77, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (226, 78, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (227, 78, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (228, 79, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (229, 79, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (230, 80, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (231, 80, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (232, 81, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (233, 81, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (234, 82, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (235, 82, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (236, 83, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (237, 83, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (238, 84, 1, NULL, NULL, NULL, 1, 4);
INSERT INTO `storage_rack` VALUES (239, 84, 1, NULL, NULL, NULL, 2, 4);
INSERT INTO `storage_rack` VALUES (240, 85, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (241, 85, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (242, 86, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (243, 86, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (244, 87, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (245, 87, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (246, 88, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (247, 88, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (248, 89, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (249, 89, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (250, 90, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (251, 90, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (252, 91, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (253, 91, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (254, 92, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (255, 92, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (256, 93, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (257, 93, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (258, 94, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (259, 94, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (260, 95, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (261, 95, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (262, 96, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (263, 96, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (264, 97, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (265, 97, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (266, 98, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (267, 98, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (268, 99, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (269, 99, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (270, 100, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (271, 100, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (272, 101, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (273, 101, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (274, 102, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (275, 102, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (276, 103, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (277, 103, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (278, 104, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (279, 104, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (280, 105, 1, NULL, NULL, NULL, 1, 5);
INSERT INTO `storage_rack` VALUES (281, 105, 1, NULL, NULL, NULL, 2, 5);
INSERT INTO `storage_rack` VALUES (282, 106, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (283, 106, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (284, 107, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (285, 107, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (286, 108, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (287, 108, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (288, 109, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (289, 109, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (290, 110, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (291, 110, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (292, 111, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (293, 111, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (294, 112, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (295, 112, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (296, 113, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (297, 113, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (298, 114, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (299, 114, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (300, 115, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (301, 115, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (302, 116, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (303, 116, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (304, 117, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (305, 117, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (306, 118, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (307, 118, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (308, 119, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (309, 119, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (310, 120, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (311, 120, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (312, 121, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (313, 121, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (314, 122, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (315, 122, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (316, 123, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (317, 123, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (318, 124, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (319, 124, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (320, 125, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (321, 125, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (322, 126, 1, NULL, NULL, NULL, 1, 6);
INSERT INTO `storage_rack` VALUES (323, 126, 1, NULL, NULL, NULL, 2, 6);
INSERT INTO `storage_rack` VALUES (324, 127, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (325, 127, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (326, 128, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (327, 128, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (328, 129, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (329, 129, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (330, 130, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (331, 130, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (332, 131, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (333, 131, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (334, 132, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (335, 132, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (336, 133, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (337, 133, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (338, 134, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (339, 134, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (340, 135, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (341, 135, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (342, 136, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (343, 136, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (344, 137, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (345, 137, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (346, 138, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (347, 138, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (348, 139, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (349, 139, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (350, 140, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (351, 140, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (352, 141, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (353, 141, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (354, 142, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (355, 142, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (356, 143, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (357, 143, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (358, 144, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (359, 144, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (360, 145, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (361, 145, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (362, 146, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (363, 146, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (364, 147, 1, NULL, NULL, NULL, 1, 7);
INSERT INTO `storage_rack` VALUES (365, 147, 1, NULL, NULL, NULL, 2, 7);
INSERT INTO `storage_rack` VALUES (366, 148, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (367, 148, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (368, 149, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (369, 149, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (370, 150, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (371, 150, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (372, 151, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (373, 151, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (374, 152, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (375, 152, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (376, 153, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (377, 153, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (378, 154, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (379, 154, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (380, 155, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (381, 155, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (382, 156, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (383, 156, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (384, 157, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (385, 157, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (386, 158, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (387, 158, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (388, 159, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (389, 159, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (390, 160, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (391, 160, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (392, 161, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (393, 161, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (394, 162, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (395, 162, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (396, 163, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (397, 163, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (398, 164, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (399, 164, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (400, 165, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (401, 165, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (402, 166, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (403, 166, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (404, 167, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (405, 167, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (406, 168, 1, NULL, NULL, NULL, 1, 8);
INSERT INTO `storage_rack` VALUES (407, 168, 1, NULL, NULL, NULL, 2, 8);
INSERT INTO `storage_rack` VALUES (408, 169, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (409, 169, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (410, 170, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (411, 170, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (412, 171, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (413, 171, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (414, 172, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (415, 172, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (416, 173, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (417, 173, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (418, 174, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (419, 174, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (420, 175, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (421, 175, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (422, 176, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (423, 176, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (424, 177, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (425, 177, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (426, 178, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (427, 178, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (428, 179, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (429, 179, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (430, 180, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (431, 180, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (432, 181, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (433, 181, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (434, 182, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (435, 182, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (436, 183, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (437, 183, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (438, 184, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (439, 184, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (440, 185, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (441, 185, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (442, 186, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (443, 186, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (444, 187, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (445, 187, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (446, 188, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (447, 188, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (448, 189, 1, NULL, NULL, NULL, 1, 9);
INSERT INTO `storage_rack` VALUES (449, 189, 1, NULL, NULL, NULL, 2, 9);
INSERT INTO `storage_rack` VALUES (450, 190, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (451, 190, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (452, 191, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (453, 191, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (454, 192, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (455, 192, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (456, 193, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (457, 193, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (458, 194, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (459, 194, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (460, 195, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (461, 195, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (462, 196, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (463, 196, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (464, 197, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (465, 197, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (466, 198, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (467, 198, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (468, 199, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (469, 199, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (470, 200, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (471, 200, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (472, 201, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (473, 201, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (474, 202, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (475, 202, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (476, 203, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (477, 203, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (478, 204, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (479, 204, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (480, 205, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (481, 205, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (482, 206, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (483, 206, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (484, 207, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (485, 207, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (486, 208, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (487, 208, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (488, 209, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (489, 209, 1, NULL, NULL, NULL, 2, 10);
INSERT INTO `storage_rack` VALUES (490, 210, 1, NULL, NULL, NULL, 1, 10);
INSERT INTO `storage_rack` VALUES (491, 210, 1, NULL, NULL, NULL, 2, 10);
-- ----------------------------
-- Table structure for storage_task
-- ----------------------------
DROP TABLE IF EXISTS `storage_task`;
CREATE TABLE `storage_task`  (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '序号',
  `task_type` int NULL DEFAULT NULL COMMENT '任务类型(0:进片,1:出片,2:调度)',
  `task_state` int NULL DEFAULT NULL COMMENT '任务状态(0:未完成,1:完成)',
  `shelf_rack` int NULL DEFAULT NULL COMMENT '开始位置',
  `load_rack` int NULL DEFAULT NULL COMMENT '结束位置',
  `start_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '任务开始时间',
  `finsh_time` datetime(0) NULL DEFAULT NULL COMMENT '任务结束时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of storage_task
-- ----------------------------
INSERT INTO `storage_task` VALUES (1, 0, 1, 6, 105, '2023-09-07 10:11:47', '2023-08-29 00:00:00');
INSERT INTO `storage_task` VALUES (2, 1, 1, 7, 99, '2023-09-07 16:53:35', '2023-08-29 00:00:00');
INSERT INTO `storage_task` VALUES (3, 2, 0, 26, 105, '2023-09-05 16:24:30', '2023-08-29 00:00:00');
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `parent_id` bigint NOT NULL DEFAULT 1 COMMENT '上级id',
  `path` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '1-' COMMENT '路径',
  `level` int NOT NULL DEFAULT 1 COMMENT '等级',
  `role_id` bigint NOT NULL DEFAULT 2 COMMENT '角色id',
  `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
  `password` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码',
  `email` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',
  `qq` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'qq号',
  `phone` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系方式',
  `state` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态:0/禁止 1/正常',
  `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 23 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 0, '', 0, 1, 'admin', 'b2f0c414a5ffb6944c424bc18ae3a8a0', NULL, NULL, NULL, 1, '2023-08-25 08:58:58', '2023-09-05 16:12:28');
INSERT INTO `user` VALUES (2, 1, '1-', 1, 2, 'user1', '601b99523f82de29f87771d5f95accdc', 'user1@qq.com', NULL, NULL, 1, '2021-11-28 14:31:39', '2021-11-28 15:09:36');
INSERT INTO `user` VALUES (3, 1, '1-', 1, 2, 'user2', 'f403c87893db29eb71b21905b57bbd0d', 'user2@qq.com', NULL, NULL, 1, '2021-11-28 14:31:39', '2021-11-28 15:09:36');
INSERT INTO `user` VALUES (10, 1, '1-', 1, 2, '767655555', '500637c0d48b442a3be6d4fce12e0910', NULL, NULL, NULL, 1, '2023-08-23 20:42:58', '2023-08-23 20:42:58');
INSERT INTO `user` VALUES (11, 1, '1-', 1, 5, 'uiuyiuy', 'e046c4175152aa3001d2c71c5bc1aee5', '767676767tt@qq.com', NULL, NULL, 1, '2023-08-23 20:43:42', '2023-08-23 20:43:42');
INSERT INTO `user` VALUES (13, 1, '1-', 1, 2, 'user3', 'b2f0c414a5ffb6944c424bc18ae3a8a0', '2265557345@qq.com', NULL, NULL, 1, '2023-08-24 09:58:40', '2023-08-24 09:58:40');
INSERT INTO `user` VALUES (15, 1, '1-', 1, 2, '99999', 'b2f0c414a5ffb6944c424bc18ae3a8a0', '2267666@qq.com', NULL, NULL, 1, '2023-08-25 09:37:05', '2023-08-28 14:37:27');
INSERT INTO `user` VALUES (16, 1, '1-', 1, 2, '5656tttt', 'b2f0c414a5ffb6944c424bc18ae3a8a0', '5454@qq.com', NULL, NULL, 1, '2023-08-28 14:17:44', '2023-08-28 14:37:24');
INSERT INTO `user` VALUES (18, 1, '1-', 1, 2, '8989ttt', 'b2f0c414a5ffb6944c424bc18ae3a8a0', '224@qq.com', NULL, NULL, 1, '2023-08-28 14:26:17', '2023-08-28 14:37:22');
INSERT INTO `user` VALUES (19, 1, '1-', 1, 5, '8080ttt', 'b2f0c414a5ffb6944c424bc18ae3a8a0', '87@qq.com', NULL, NULL, 1, '2023-08-28 14:34:39', '2023-08-29 16:03:38');
-- ----------------------------
-- Procedure structure for Your_Stored_Procedure
-- ----------------------------
DROP PROCEDURE IF EXISTS `Your_Stored_Procedure`;
delimiter ;;
CREATE PROCEDURE `Your_Stored_Procedure`(in  id VARCHAR(20)  ,in   name VARCHAR(20))
BEGIN
select * from device;
END
;;
delimiter ;
SET FOREIGN_KEY_CHECKS = 1;