Commit e88a6587 authored by wujiang's avatar wujiang

添加安全域控工程

parent 8ec76077
<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-spring-boot-starter-jaxws/3.2.6/cxf-spring-boot-starter-jaxws-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/2.3.11.RELEASE/spring-boot-starter-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/2.3.11.RELEASE/spring-boot-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/2.3.11.RELEASE/spring-boot-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-spring-boot-autoconfigure/3.2.6/cxf-spring-boot-autoconfigure-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-transports-http/3.2.6/cxf-rt-transports-http-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-core/3.2.6/cxf-core-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/woodstox/woodstox-core/5.1.0/woodstox-core-5.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/ws/xmlschema/xmlschema-core/2.2.3/xmlschema-core-2.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-frontend-jaxws/3.2.6/cxf-rt-frontend-jaxws-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xml-resolver/xml-resolver/1.2/xml-resolver-1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-bindings-soap/3.2.6/cxf-rt-bindings-soap-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-wsdl/3.2.6/cxf-rt-wsdl-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/wsdl4j/wsdl4j/1.6.3/wsdl4j-1.6.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-databinding-jaxb/3.2.6/cxf-rt-databinding-jaxb-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-bindings-xml/3.2.6/cxf-rt-bindings-xml-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-frontend-simple/3.2.6/cxf-rt-frontend-simple-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-ws-addr/3.2.6/cxf-rt-ws-addr-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-ws-policy/3.2.6/cxf-rt-ws-policy-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/neethi/neethi/3.1.1/neethi-3.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/indicators-feign/1.0.4-SNAPSHOT/indicators-feign-1.0.4-SNAPSHOT.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/maas/access-api/4.4.0-SNAPSHOT/access-api-4.4.0-SNAPSHOT.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/maas/common-tools/1.0.1-SNAPSHOT/common-tools-1.0.1-SNAPSHOT.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.14/commons-codec-1.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-feign/1.1.0-SNAPSHOT/amos-component-feign-1.1.0-SNAPSHOT.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-openfeign/2.2.5.RELEASE/spring-cloud-starter-openfeign-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-openfeign-core/2.2.5.RELEASE/spring-cloud-openfeign-core-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-io/commons-io/2.2/commons-io-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-core/10.10.1/feign-core-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-slf4j/10.10.1/feign-slf4j-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-hystrix/10.10.1/feign-hystrix-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-cache/1.1.20Ty-SNAPSHOT/tyboot-component-cache-1.1.20Ty-SNAPSHOT.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-redis/1.4.5.RELEASE/spring-boot-starter-redis-1.4.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-redis/2.3.9.RELEASE/spring-data-redis-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-keyvalue/2.3.9.RELEASE/spring-data-keyvalue-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/2.3.9.RELEASE/spring-data-commons-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-oxm/5.2.15.RELEASE/spring-oxm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/redis/clients/jedis/3.3.0/jedis-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-pool2/2.8.1/commons-pool2-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/brave/brave/5.12.3/brave-5.12.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter-brave/2.15.0/zipkin-reporter-brave-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter/2.15.0/zipkin-reporter-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/zipkin2/zipkin/2.21.1/zipkin-2.21.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-systemctl/1.7.3-SNAPSHOT/amos-feign-systemctl-1.7.3-SNAPSHOT.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-foundation/1.1.21/tyboot-core-foundation-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/belerweb/pinyin4j/2.5.0/pinyin4j-2.5.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/esotericsoftware/reflectasm/reflectasm/1.09/reflectasm-1.09.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/jhlabs/filters/2.0.235/filters-2.0.235.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-event/1.1.20/tyboot-component-event-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/2.3.11.RELEASE/spring-boot-starter-aop-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/5.2.15.RELEASE/spring-aop-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/2.3.11.RELEASE/spring-boot-starter-logging-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-mock/2.0.8/spring-mock-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/log4j/log4j/1.2.12/log4j-1.2.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/junit/junit/4.13.2/junit-4.13.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-rdbms/1.1.20/tyboot-core-rdbms-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-restful/1.1.20/tyboot-core-restful-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-auth/1.1.20/tyboot-core-auth-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/2.3.11.RELEASE/spring-boot-starter-jdbc-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/5.2.15.RELEASE/spring-jdbc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.2/mybatis-spring-boot-starter-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.2/mybatis-spring-boot-autoconfigure-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis-spring/2.0.4/mybatis-spring-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-base/4.0.0/easypoi-base-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi/4.0.0/poi-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-collections4/4.2/commons-collections4-4.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ognl/ognl/3.2.6/ognl-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-web/3.0.3/easypoi-web-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-annotation/3.0.3/easypoi-annotation-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itextpdf/5.5.13/itextpdf-5.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/core/3.3.0/core-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/pagehelper/pagehelper/5.1.10/pagehelper-5.1.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jsqlparser/jsqlparser/2.0/jsqlparser-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-rule/1.7.0/amos-feign-rule-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter/2.2.5.RELEASE/spring-cloud-starter-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/5.3.9.RELEASE/spring-security-crypto-5.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-commons/2.2.5.RELEASE/spring-cloud-commons-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-rsa/1.0.9.RELEASE/spring-security-rsa-1.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcpkix-jdk15on/1.64/bcpkix-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcprov-jdk15on/1.64/bcprov-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-actuator/2.3.11.RELEASE/spring-boot-starter-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator-autoconfigure/2.3.11.RELEASE/spring-boot-actuator-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator/2.3.11.RELEASE/spring-boot-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-core/1.5.14/micrometer-core-1.5.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-freemarker/2.3.11.RELEASE/spring-boot-starter-freemarker-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context-support/5.2.15.RELEASE/spring-context-support-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-hystrix/2.2.5.RELEASE/spring-cloud-netflix-hystrix-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-client/1.9.25/eureka-client-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-eventbus/0.3.0/netflix-eventbus-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-infix/0.3.0/netflix-infix-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math/2.2/commons-math-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/servo/servo-core/0.12.21/servo-core-0.12.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-core/1.19.1/jersey-core-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/contribs/jersey-apache-client4/1.19.1/jersey-apache-client4-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/inject/guice/4.1.0/guice-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-servlet/1.19.1/jersey-servlet-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-server/1.19.1/jersey-server-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-client/1.19.1/jersey-client-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-core/1.9.25/eureka-core-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/archaius/archaius-core/0.7.6/archaius-core-0.7.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.4/jackson-dataformat-xml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.4/jackson-module-jaxb-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-archaius/2.2.5.RELEASE/spring-cloud-starter-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-ribbon/2.2.5.RELEASE/spring-cloud-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-archaius/2.2.5.RELEASE/spring-cloud-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-ribbon/2.2.5.RELEASE/spring-cloud-starter-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon/2.3.0/ribbon-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-transport/2.3.0/ribbon-transport-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-core/2.3.0/ribbon-core-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-httpclient/2.3.0/ribbon-httpclient-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-commons-util/0.3.0/netflix-commons-util-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-loadbalancer/2.3.0/ribbon-loadbalancer-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxjava/1.3.8/rxjava-1.3.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-loadbalancer/2.2.5.RELEASE/spring-cloud-starter-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-loadbalancer/2.2.5.RELEASE/spring-cloud-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-validation/2.3.11.RELEASE/spring-boot-starter-validation-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/validator/hibernate-validator/6.1.7.Final/hibernate-validator-6.1.7.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/addons/reactor-extra/3.3.6.RELEASE/reactor-extra-3.3.6.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-cache/2.3.11.RELEASE/spring-boot-starter-cache-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-eureka/2.3.0/ribbon-eureka-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/2.3.4/jaxb-runtime-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/2.3.4/txw2-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/2.3.11.RELEASE/spring-boot-starter-web-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/2.3.11.RELEASE/spring-boot-starter-json-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/2.3.11.RELEASE/spring-boot-starter-tomcat-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/5.2.15.RELEASE/spring-web-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/5.2.15.RELEASE/spring-beans-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/5.2.15.RELEASE/spring-webmvc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/5.2.15.RELEASE/spring-context-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/5.2.15.RELEASE/spring-expression-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-javanica/1.5.18/hystrix-javanica-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-core/1.5.18/hystrix-core-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/fastjson/1.2.67/fastjson-1.2.67.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-privilege/1.7.1/amos-feign-privilege-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/easyexcel/2.0.5/easyexcel-2.0.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cglib/cglib/3.1/cglib-3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ehcache/ehcache/3.8.1/ehcache-3.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-scratchpad/4.0.1/poi-scratchpad-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml/4.0.1/poi-ooxml-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/fr/opensagres/xdocreport/xdocreport/1.0.6/xdocreport-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml-schemas/4.0.1/poi-ooxml-schemas-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlbeans/xmlbeans/3.0.2/xmlbeans-3.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/ooxml-schemas/1.3/ooxml-schemas-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/joda-time/joda-time/2.10.4/joda-time-2.10.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/velocity/velocity-engine-core/2.1/velocity-engine-core-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/freemarker/freemarker/2.3.31/freemarker-2.3.31.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-websocket/2.3.11.RELEASE/spring-boot-starter-websocket-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-messaging/5.2.15.RELEASE/spring-messaging-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-websocket/5.2.15.RELEASE/spring-websocket-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-jexl/2.1.1/commons-jexl-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-stream/5.3.7.RELEASE/spring-integration-stream-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-core/5.3.7.RELEASE/spring-integration-core-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/5.2.15.RELEASE/spring-tx-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/reactor-core/3.3.17.RELEASE/reactor-core-3.3.17.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-mqtt/5.3.7.RELEASE/spring-integration-mqtt-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.4/org.eclipse.paho.client.mqttv3-1.2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-starter/2.0.7/knife4j-spring-boot-starter-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-autoconfigure/2.0.7/knife4j-spring-boot-autoconfigure-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring/2.0.7/knife4j-spring-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-annotations/2.0.7/knife4j-annotations-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-core/2.0.7/knife4j-core-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-models/1.5.22/swagger-models-1.5.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger-common/2.10.5/springfox-swagger-common-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-web/2.10.5/springfox-spring-web-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/classgraph/classgraph/4.1.7/classgraph-4.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mapstruct/mapstruct/1.3.1.Final/mapstruct-1.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-bean-validators/2.10.5/springfox-bean-validators-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-webmvc/2.10.5/springfox-spring-webmvc-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-ui/2.0.7/knife4j-spring-ui-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-annotations/1.5.13/swagger-annotations-1.5.13.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-event/1.1.20/tyboot-component-event-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/2.3.11.RELEASE/spring-boot-starter-aop-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/5.2.15.RELEASE/spring-aop-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/2.3.11.RELEASE/spring-boot-starter-logging-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-mock/2.0.8/spring-mock-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/log4j/log4j/1.2.12/log4j-1.2.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/junit/junit/4.13.2/junit-4.13.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-rdbms/1.1.20/tyboot-core-rdbms-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-restful/1.1.20/tyboot-core-restful-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-auth/1.1.20/tyboot-core-auth-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/2.3.11.RELEASE/spring-boot-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/2.3.11.RELEASE/spring-boot-starter-jdbc-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/5.2.15.RELEASE/spring-jdbc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.2/mybatis-spring-boot-starter-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.2/mybatis-spring-boot-autoconfigure-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis-spring/2.0.4/mybatis-spring-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-base/4.0.0/easypoi-base-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi/4.0.0/poi-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.14/commons-codec-1.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-collections4/4.2/commons-collections4-4.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ognl/ognl/3.2.6/ognl-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-web/3.0.3/easypoi-web-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-annotation/3.0.3/easypoi-annotation-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itextpdf/5.5.13/itextpdf-5.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/core/3.3.0/core-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/pagehelper/pagehelper/5.1.10/pagehelper-5.1.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jsqlparser/jsqlparser/2.0/jsqlparser-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-rule/1.7.0/amos-feign-rule-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-foundation/1.1.21/tyboot-core-foundation-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/belerweb/pinyin4j/2.5.0/pinyin4j-2.5.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/2.3.11.RELEASE/spring-boot-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/esotericsoftware/reflectasm/reflectasm/1.09/reflectasm-1.09.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/jhlabs/filters/2.0.235/filters-2.0.235.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-feign/1.7.0/amos-component-feign-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-openfeign/2.2.5.RELEASE/spring-cloud-starter-openfeign-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-openfeign-core/2.2.5.RELEASE/spring-cloud-openfeign-core-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-io/commons-io/2.2/commons-io-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-core/10.10.1/feign-core-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-slf4j/10.10.1/feign-slf4j-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-hystrix/10.10.1/feign-hystrix-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-cache/1.1.21/tyboot-component-cache-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-redis/1.4.5.RELEASE/spring-boot-starter-redis-1.4.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-redis/2.3.9.RELEASE/spring-data-redis-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-keyvalue/2.3.9.RELEASE/spring-data-keyvalue-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/2.3.9.RELEASE/spring-data-commons-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-oxm/5.2.15.RELEASE/spring-oxm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/redis/clients/jedis/3.3.0/jedis-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-pool2/2.8.1/commons-pool2-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/brave/brave/5.12.3/brave-5.12.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter-brave/2.15.0/zipkin-reporter-brave-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter/2.15.0/zipkin-reporter-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/zipkin2/zipkin/2.21.1/zipkin-2.21.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter/2.2.5.RELEASE/spring-cloud-starter-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/5.3.9.RELEASE/spring-security-crypto-5.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-commons/2.2.5.RELEASE/spring-cloud-commons-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-rsa/1.0.9.RELEASE/spring-security-rsa-1.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcpkix-jdk15on/1.64/bcpkix-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcprov-jdk15on/1.64/bcprov-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-actuator/2.3.11.RELEASE/spring-boot-starter-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator-autoconfigure/2.3.11.RELEASE/spring-boot-actuator-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator/2.3.11.RELEASE/spring-boot-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-core/1.5.14/micrometer-core-1.5.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-freemarker/2.3.11.RELEASE/spring-boot-starter-freemarker-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context-support/5.2.15.RELEASE/spring-context-support-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-hystrix/2.2.5.RELEASE/spring-cloud-netflix-hystrix-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-client/1.9.25/eureka-client-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-eventbus/0.3.0/netflix-eventbus-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-infix/0.3.0/netflix-infix-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math/2.2/commons-math-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/servo/servo-core/0.12.21/servo-core-0.12.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-core/1.19.1/jersey-core-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/contribs/jersey-apache-client4/1.19.1/jersey-apache-client4-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/inject/guice/4.1.0/guice-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-servlet/1.19.1/jersey-servlet-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-server/1.19.1/jersey-server-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-client/1.19.1/jersey-client-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-core/1.9.25/eureka-core-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/woodstox/woodstox-core/5.3.0/woodstox-core-5.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/archaius/archaius-core/0.7.6/archaius-core-0.7.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.4/jackson-dataformat-xml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.4/jackson-module-jaxb-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-archaius/2.2.5.RELEASE/spring-cloud-starter-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-ribbon/2.2.5.RELEASE/spring-cloud-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-archaius/2.2.5.RELEASE/spring-cloud-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-ribbon/2.2.5.RELEASE/spring-cloud-starter-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon/2.3.0/ribbon-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-transport/2.3.0/ribbon-transport-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-core/2.3.0/ribbon-core-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-httpclient/2.3.0/ribbon-httpclient-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-commons-util/0.3.0/netflix-commons-util-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-loadbalancer/2.3.0/ribbon-loadbalancer-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxjava/1.3.8/rxjava-1.3.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-loadbalancer/2.2.5.RELEASE/spring-cloud-starter-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-loadbalancer/2.2.5.RELEASE/spring-cloud-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-validation/2.3.11.RELEASE/spring-boot-starter-validation-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/validator/hibernate-validator/6.1.7.Final/hibernate-validator-6.1.7.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/addons/reactor-extra/3.3.6.RELEASE/reactor-extra-3.3.6.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-cache/2.3.11.RELEASE/spring-boot-starter-cache-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-eureka/2.3.0/ribbon-eureka-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/2.3.4/jaxb-runtime-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/2.3.4/txw2-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/2.3.11.RELEASE/spring-boot-starter-web-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/2.3.11.RELEASE/spring-boot-starter-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/2.3.11.RELEASE/spring-boot-starter-json-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/2.3.11.RELEASE/spring-boot-starter-tomcat-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/5.2.15.RELEASE/spring-web-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/5.2.15.RELEASE/spring-beans-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/5.2.15.RELEASE/spring-webmvc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/5.2.15.RELEASE/spring-context-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/5.2.15.RELEASE/spring-expression-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-javanica/1.5.18/hystrix-javanica-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-core/1.5.18/hystrix-core-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/fastjson/1.2.67/fastjson-1.2.67.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-privilege/1.7.1/amos-feign-privilege-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/easyexcel/2.0.5/easyexcel-2.0.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cglib/cglib/3.1/cglib-3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ehcache/ehcache/3.8.1/ehcache-3.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-scratchpad/4.0.1/poi-scratchpad-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml/4.0.1/poi-ooxml-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/fr/opensagres/xdocreport/xdocreport/1.0.6/xdocreport-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml-schemas/4.0.1/poi-ooxml-schemas-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlbeans/xmlbeans/3.0.2/xmlbeans-3.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/ooxml-schemas/1.3/ooxml-schemas-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/joda-time/joda-time/2.10.4/joda-time-2.10.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/velocity/velocity-engine-core/2.1/velocity-engine-core-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/freemarker/freemarker/2.3.31/freemarker-2.3.31.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-websocket/2.3.11.RELEASE/spring-boot-starter-websocket-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-messaging/5.2.15.RELEASE/spring-messaging-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-websocket/5.2.15.RELEASE/spring-websocket-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-jexl/2.1.1/commons-jexl-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-stream/5.3.7.RELEASE/spring-integration-stream-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-core/5.3.7.RELEASE/spring-integration-core-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/5.2.15.RELEASE/spring-tx-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/reactor-core/3.3.17.RELEASE/reactor-core-3.3.17.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-mqtt/5.3.7.RELEASE/spring-integration-mqtt-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.4/org.eclipse.paho.client.mqttv3-1.2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-starter/2.0.7/knife4j-spring-boot-starter-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-autoconfigure/2.0.7/knife4j-spring-boot-autoconfigure-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring/2.0.7/knife4j-spring-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-annotations/2.0.7/knife4j-annotations-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-core/2.0.7/knife4j-core-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-models/1.5.22/swagger-models-1.5.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger-common/2.10.5/springfox-swagger-common-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-web/2.10.5/springfox-spring-web-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/classgraph/classgraph/4.1.7/classgraph-4.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mapstruct/mapstruct/1.3.1.Final/mapstruct-1.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-bean-validators/2.10.5/springfox-bean-validators-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-webmvc/2.10.5/springfox-spring-webmvc-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-ui/2.0.7/knife4j-spring-ui-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-systemctl/1.6.5/amos-feign-systemctl-1.6.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-annotations/1.5.13/swagger-annotations-1.5.13.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-data-elasticsearch/2.3.11.RELEASE/spring-boot-starter-data-elasticsearch-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-elasticsearch/4.0.9.RELEASE/spring-data-elasticsearch-4.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/2.3.9.RELEASE/spring-data-commons-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/transport-netty4-client/7.6.2/transport-netty4-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-buffer/4.1.65.Final/netty-buffer-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-codec/4.1.65.Final/netty-codec-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-codec-http/4.1.65.Final/netty-codec-http-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-common/4.1.65.Final/netty-common-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-handler/4.1.65.Final/netty-handler-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-resolver/4.1.65.Final/netty-resolver-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-transport/4.1.65.Final/netty-transport-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/client/elasticsearch-rest-high-level-client/7.6.2/elasticsearch-rest-high-level-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch/7.6.2/elasticsearch-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-core/7.6.2/elasticsearch-core-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-secure-sm/7.6.2/elasticsearch-secure-sm-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-x-content/7.6.2/elasticsearch-x-content-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-smile/2.11.4/jackson-dataformat-smile-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.11.4/jackson-dataformat-yaml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.11.4/jackson-dataformat-cbor-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-geo/7.6.2/elasticsearch-geo-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-core/8.4.0/lucene-core-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-analyzers-common/8.4.0/lucene-analyzers-common-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-backward-codecs/8.4.0/lucene-backward-codecs-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-grouping/8.4.0/lucene-grouping-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-highlighter/8.4.0/lucene-highlighter-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-join/8.4.0/lucene-join-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-memory/8.4.0/lucene-memory-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-misc/8.4.0/lucene-misc-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-queries/8.4.0/lucene-queries-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-queryparser/8.4.0/lucene-queryparser-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-sandbox/8.4.0/lucene-sandbox-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial/8.4.0/lucene-spatial-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial-extras/8.4.0/lucene-spatial-extras-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial3d/8.4.0/lucene-spatial3d-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-suggest/8.4.0/lucene-suggest-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-cli/7.6.2/elasticsearch-cli-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/jopt-simple/jopt-simple/5.0.2/jopt-simple-5.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/carrotsearch/hppc/0.8.1/hppc-0.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/tdunning/t-digest/3.2/t-digest-3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/jna/4.5.1/jna-4.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/client/elasticsearch-rest-client/7.6.2/elasticsearch-rest-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpasyncclient/4.1.4/httpasyncclient-4.1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore-nio/4.4.14/httpcore-nio-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/mapper-extras-client/7.6.2/mapper-extras-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/parent-join-client/7.6.2/parent-join-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/aggs-matrix-stats-client/7.6.2/aggs-matrix-stats-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/rank-eval-client/7.6.2/rank-eval-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/lang-mustache-client/7.6.2/lang-mustache-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/spullara/mustache/java/compiler/0.9.6/compiler-0.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-rule/1.7.1/amos-component-rule-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-emq/1.1.21/tyboot-component-emq-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-cache/1.1.21/tyboot-component-cache-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-redis/1.4.5.RELEASE/spring-boot-starter-redis-1.4.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-redis/2.3.9.RELEASE/spring-data-redis-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-keyvalue/2.3.9.RELEASE/spring-data-keyvalue-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-oxm/5.2.15.RELEASE/spring-oxm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/redis/clients/jedis/3.3.0/jedis-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-pool2/2.8.1/commons-pool2-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-event/1.1.20/tyboot-component-event-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/2.3.11.RELEASE/spring-boot-starter-aop-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/5.2.15.RELEASE/spring-aop-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/2.3.11.RELEASE/spring-boot-starter-logging-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-mock/2.0.8/spring-mock-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/log4j/log4j/1.2.12/log4j-1.2.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/junit/junit/4.13.2/junit-4.13.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-rdbms/1.1.20/tyboot-core-rdbms-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-restful/1.1.20/tyboot-core-restful-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-auth/1.1.20/tyboot-core-auth-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/2.3.11.RELEASE/spring-boot-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/2.3.11.RELEASE/spring-boot-starter-jdbc-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/5.2.15.RELEASE/spring-jdbc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.2/mybatis-spring-boot-starter-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.2/mybatis-spring-boot-autoconfigure-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis-spring/2.0.4/mybatis-spring-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-base/4.0.0/easypoi-base-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi/4.0.0/poi-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.14/commons-codec-1.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-collections4/4.2/commons-collections4-4.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ognl/ognl/3.2.6/ognl-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-web/3.0.3/easypoi-web-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-annotation/3.0.3/easypoi-annotation-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itextpdf/5.5.13/itextpdf-5.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/core/3.3.0/core-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/pagehelper/pagehelper/5.1.10/pagehelper-5.1.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jsqlparser/jsqlparser/2.0/jsqlparser-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-rule/1.7.0/amos-feign-rule-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-foundation/1.1.21/tyboot-core-foundation-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/belerweb/pinyin4j/2.5.0/pinyin4j-2.5.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/2.3.11.RELEASE/spring-boot-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/esotericsoftware/reflectasm/reflectasm/1.09/reflectasm-1.09.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/jhlabs/filters/2.0.235/filters-2.0.235.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-feign/1.7.0/amos-component-feign-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-openfeign/2.2.5.RELEASE/spring-cloud-starter-openfeign-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-openfeign-core/2.2.5.RELEASE/spring-cloud-openfeign-core-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-io/commons-io/2.2/commons-io-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-core/10.10.1/feign-core-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-slf4j/10.10.1/feign-slf4j-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-hystrix/10.10.1/feign-hystrix-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/brave/brave/5.12.3/brave-5.12.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter-brave/2.15.0/zipkin-reporter-brave-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter/2.15.0/zipkin-reporter-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/zipkin2/zipkin/2.21.1/zipkin-2.21.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter/2.2.5.RELEASE/spring-cloud-starter-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/5.3.9.RELEASE/spring-security-crypto-5.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-commons/2.2.5.RELEASE/spring-cloud-commons-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-rsa/1.0.9.RELEASE/spring-security-rsa-1.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcpkix-jdk15on/1.64/bcpkix-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcprov-jdk15on/1.64/bcprov-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-actuator/2.3.11.RELEASE/spring-boot-starter-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator-autoconfigure/2.3.11.RELEASE/spring-boot-actuator-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator/2.3.11.RELEASE/spring-boot-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-core/1.5.14/micrometer-core-1.5.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-freemarker/2.3.11.RELEASE/spring-boot-starter-freemarker-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context-support/5.2.15.RELEASE/spring-context-support-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-hystrix/2.2.5.RELEASE/spring-cloud-netflix-hystrix-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-client/1.9.25/eureka-client-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-eventbus/0.3.0/netflix-eventbus-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-infix/0.3.0/netflix-infix-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math/2.2/commons-math-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/servo/servo-core/0.12.21/servo-core-0.12.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-core/1.19.1/jersey-core-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/contribs/jersey-apache-client4/1.19.1/jersey-apache-client4-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/inject/guice/4.1.0/guice-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-servlet/1.19.1/jersey-servlet-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-server/1.19.1/jersey-server-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-client/1.19.1/jersey-client-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-core/1.9.25/eureka-core-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/woodstox/woodstox-core/5.3.0/woodstox-core-5.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/archaius/archaius-core/0.7.6/archaius-core-0.7.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.4/jackson-dataformat-xml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.4/jackson-module-jaxb-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-archaius/2.2.5.RELEASE/spring-cloud-starter-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-ribbon/2.2.5.RELEASE/spring-cloud-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-archaius/2.2.5.RELEASE/spring-cloud-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-ribbon/2.2.5.RELEASE/spring-cloud-starter-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon/2.3.0/ribbon-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-transport/2.3.0/ribbon-transport-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-core/2.3.0/ribbon-core-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-httpclient/2.3.0/ribbon-httpclient-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-commons-util/0.3.0/netflix-commons-util-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-loadbalancer/2.3.0/ribbon-loadbalancer-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxjava/1.3.8/rxjava-1.3.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-loadbalancer/2.2.5.RELEASE/spring-cloud-starter-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-loadbalancer/2.2.5.RELEASE/spring-cloud-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-validation/2.3.11.RELEASE/spring-boot-starter-validation-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/validator/hibernate-validator/6.1.7.Final/hibernate-validator-6.1.7.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/addons/reactor-extra/3.3.6.RELEASE/reactor-extra-3.3.6.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-cache/2.3.11.RELEASE/spring-boot-starter-cache-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-eureka/2.3.0/ribbon-eureka-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/2.3.4/jaxb-runtime-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/2.3.4/txw2-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/2.3.11.RELEASE/spring-boot-starter-web-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/2.3.11.RELEASE/spring-boot-starter-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/2.3.11.RELEASE/spring-boot-starter-json-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/2.3.11.RELEASE/spring-boot-starter-tomcat-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/5.2.15.RELEASE/spring-web-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/5.2.15.RELEASE/spring-beans-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/5.2.15.RELEASE/spring-webmvc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/5.2.15.RELEASE/spring-context-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/5.2.15.RELEASE/spring-expression-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-javanica/1.5.18/hystrix-javanica-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-core/1.5.18/hystrix-core-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/fastjson/1.2.67/fastjson-1.2.67.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-privilege/1.7.1/amos-feign-privilege-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/easyexcel/2.0.5/easyexcel-2.0.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cglib/cglib/3.1/cglib-3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ehcache/ehcache/3.8.1/ehcache-3.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-scratchpad/4.0.1/poi-scratchpad-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml/4.0.1/poi-ooxml-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/fr/opensagres/xdocreport/xdocreport/1.0.6/xdocreport-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml-schemas/4.0.1/poi-ooxml-schemas-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlbeans/xmlbeans/3.0.2/xmlbeans-3.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/ooxml-schemas/1.3/ooxml-schemas-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/joda-time/joda-time/2.10.4/joda-time-2.10.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/velocity/velocity-engine-core/2.1/velocity-engine-core-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/freemarker/freemarker/2.3.31/freemarker-2.3.31.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-websocket/2.3.11.RELEASE/spring-boot-starter-websocket-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-messaging/5.2.15.RELEASE/spring-messaging-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-websocket/5.2.15.RELEASE/spring-websocket-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-jexl/2.1.1/commons-jexl-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-stream/5.3.7.RELEASE/spring-integration-stream-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-core/5.3.7.RELEASE/spring-integration-core-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/5.2.15.RELEASE/spring-tx-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/reactor-core/3.3.17.RELEASE/reactor-core-3.3.17.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-mqtt/5.3.7.RELEASE/spring-integration-mqtt-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.4/org.eclipse.paho.client.mqttv3-1.2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-starter/2.0.7/knife4j-spring-boot-starter-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-autoconfigure/2.0.7/knife4j-spring-boot-autoconfigure-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring/2.0.7/knife4j-spring-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-annotations/2.0.7/knife4j-annotations-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-core/2.0.7/knife4j-core-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-models/1.5.22/swagger-models-1.5.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger-common/2.10.5/springfox-swagger-common-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-web/2.10.5/springfox-spring-web-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/classgraph/classgraph/4.1.7/classgraph-4.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mapstruct/mapstruct/1.3.1.Final/mapstruct-1.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-bean-validators/2.10.5/springfox-bean-validators-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-webmvc/2.10.5/springfox-spring-webmvc-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-ui/2.0.7/knife4j-spring-ui-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-systemctl/1.6.5/amos-feign-systemctl-1.6.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-annotations/1.5.13/swagger-annotations-1.5.13.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-data-elasticsearch/2.3.11.RELEASE/spring-boot-starter-data-elasticsearch-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-elasticsearch/4.0.9.RELEASE/spring-data-elasticsearch-4.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/2.3.9.RELEASE/spring-data-commons-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/transport-netty4-client/7.6.2/transport-netty4-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-buffer/4.1.65.Final/netty-buffer-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-codec/4.1.65.Final/netty-codec-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-codec-http/4.1.65.Final/netty-codec-http-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-common/4.1.65.Final/netty-common-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-handler/4.1.65.Final/netty-handler-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-resolver/4.1.65.Final/netty-resolver-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-transport/4.1.65.Final/netty-transport-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/client/elasticsearch-rest-high-level-client/7.6.2/elasticsearch-rest-high-level-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch/7.6.2/elasticsearch-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-core/7.6.2/elasticsearch-core-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-secure-sm/7.6.2/elasticsearch-secure-sm-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-x-content/7.6.2/elasticsearch-x-content-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-smile/2.11.4/jackson-dataformat-smile-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.11.4/jackson-dataformat-yaml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.11.4/jackson-dataformat-cbor-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-geo/7.6.2/elasticsearch-geo-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-core/8.4.0/lucene-core-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-analyzers-common/8.4.0/lucene-analyzers-common-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-backward-codecs/8.4.0/lucene-backward-codecs-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-grouping/8.4.0/lucene-grouping-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-highlighter/8.4.0/lucene-highlighter-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-join/8.4.0/lucene-join-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-memory/8.4.0/lucene-memory-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-misc/8.4.0/lucene-misc-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-queries/8.4.0/lucene-queries-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-queryparser/8.4.0/lucene-queryparser-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-sandbox/8.4.0/lucene-sandbox-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial/8.4.0/lucene-spatial-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial-extras/8.4.0/lucene-spatial-extras-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial3d/8.4.0/lucene-spatial3d-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-suggest/8.4.0/lucene-suggest-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-cli/7.6.2/elasticsearch-cli-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/jopt-simple/jopt-simple/5.0.2/jopt-simple-5.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/carrotsearch/hppc/0.8.1/hppc-0.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/tdunning/t-digest/3.2/t-digest-3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/jna/4.5.1/jna-4.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/client/elasticsearch-rest-client/7.6.2/elasticsearch-rest-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpasyncclient/4.1.4/httpasyncclient-4.1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore-nio/4.4.14/httpcore-nio-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/mapper-extras-client/7.6.2/mapper-extras-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/parent-join-client/7.6.2/parent-join-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/aggs-matrix-stats-client/7.6.2/aggs-matrix-stats-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/rank-eval-client/7.6.2/rank-eval-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/lang-mustache-client/7.6.2/lang-mustache-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/spullara/mustache/java/compiler/0.9.6/compiler-0.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-rule/1.7.1/amos-component-rule-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-emq/1.1.21/tyboot-component-emq-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-cache/1.1.21/tyboot-component-cache-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-redis/1.4.5.RELEASE/spring-boot-starter-redis-1.4.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-redis/2.3.9.RELEASE/spring-data-redis-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-keyvalue/2.3.9.RELEASE/spring-data-keyvalue-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-oxm/5.2.15.RELEASE/spring-oxm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/redis/clients/jedis/3.3.0/jedis-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-pool2/2.8.1/commons-pool2-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-event/1.1.20/tyboot-component-event-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/2.3.11.RELEASE/spring-boot-starter-aop-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/5.2.15.RELEASE/spring-aop-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/2.3.11.RELEASE/spring-boot-starter-logging-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-mock/2.0.8/spring-mock-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/log4j/log4j/1.2.12/log4j-1.2.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/junit/junit/4.13.2/junit-4.13.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-rdbms/1.1.20/tyboot-core-rdbms-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-restful/1.1.20/tyboot-core-restful-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-auth/1.1.20/tyboot-core-auth-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/2.3.11.RELEASE/spring-boot-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/2.3.11.RELEASE/spring-boot-starter-jdbc-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/5.2.15.RELEASE/spring-jdbc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.2/mybatis-spring-boot-starter-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.2/mybatis-spring-boot-autoconfigure-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis-spring/2.0.4/mybatis-spring-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-base/4.0.0/easypoi-base-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi/4.0.0/poi-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.14/commons-codec-1.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-collections4/4.2/commons-collections4-4.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ognl/ognl/3.2.6/ognl-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-web/3.0.3/easypoi-web-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-annotation/3.0.3/easypoi-annotation-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itextpdf/5.5.13/itextpdf-5.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/core/3.3.0/core-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/pagehelper/pagehelper/5.1.10/pagehelper-5.1.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jsqlparser/jsqlparser/2.0/jsqlparser-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-rule/1.7.0/amos-feign-rule-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-foundation/1.1.21/tyboot-core-foundation-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/belerweb/pinyin4j/2.5.0/pinyin4j-2.5.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/2.3.11.RELEASE/spring-boot-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/esotericsoftware/reflectasm/reflectasm/1.09/reflectasm-1.09.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/jhlabs/filters/2.0.235/filters-2.0.235.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-feign/1.7.0/amos-component-feign-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-openfeign/2.2.5.RELEASE/spring-cloud-starter-openfeign-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-openfeign-core/2.2.5.RELEASE/spring-cloud-openfeign-core-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-io/commons-io/2.2/commons-io-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-core/10.10.1/feign-core-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-slf4j/10.10.1/feign-slf4j-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-hystrix/10.10.1/feign-hystrix-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/brave/brave/5.12.3/brave-5.12.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter-brave/2.15.0/zipkin-reporter-brave-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter/2.15.0/zipkin-reporter-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/zipkin2/zipkin/2.21.1/zipkin-2.21.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter/2.2.5.RELEASE/spring-cloud-starter-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/5.3.9.RELEASE/spring-security-crypto-5.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-commons/2.2.5.RELEASE/spring-cloud-commons-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-rsa/1.0.9.RELEASE/spring-security-rsa-1.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcpkix-jdk15on/1.64/bcpkix-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcprov-jdk15on/1.64/bcprov-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-actuator/2.3.11.RELEASE/spring-boot-starter-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator-autoconfigure/2.3.11.RELEASE/spring-boot-actuator-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator/2.3.11.RELEASE/spring-boot-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-core/1.5.14/micrometer-core-1.5.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-freemarker/2.3.11.RELEASE/spring-boot-starter-freemarker-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context-support/5.2.15.RELEASE/spring-context-support-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-hystrix/2.2.5.RELEASE/spring-cloud-netflix-hystrix-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-client/1.9.25/eureka-client-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-eventbus/0.3.0/netflix-eventbus-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-infix/0.3.0/netflix-infix-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math/2.2/commons-math-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/servo/servo-core/0.12.21/servo-core-0.12.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-core/1.19.1/jersey-core-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/contribs/jersey-apache-client4/1.19.1/jersey-apache-client4-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/inject/guice/4.1.0/guice-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-servlet/1.19.1/jersey-servlet-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-server/1.19.1/jersey-server-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-client/1.19.1/jersey-client-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-core/1.9.25/eureka-core-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/woodstox/woodstox-core/5.3.0/woodstox-core-5.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/archaius/archaius-core/0.7.6/archaius-core-0.7.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.4/jackson-dataformat-xml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.4/jackson-module-jaxb-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-archaius/2.2.5.RELEASE/spring-cloud-starter-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-ribbon/2.2.5.RELEASE/spring-cloud-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-archaius/2.2.5.RELEASE/spring-cloud-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-ribbon/2.2.5.RELEASE/spring-cloud-starter-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon/2.3.0/ribbon-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-transport/2.3.0/ribbon-transport-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-core/2.3.0/ribbon-core-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-httpclient/2.3.0/ribbon-httpclient-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-commons-util/0.3.0/netflix-commons-util-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-loadbalancer/2.3.0/ribbon-loadbalancer-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxjava/1.3.8/rxjava-1.3.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-loadbalancer/2.2.5.RELEASE/spring-cloud-starter-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-loadbalancer/2.2.5.RELEASE/spring-cloud-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-validation/2.3.11.RELEASE/spring-boot-starter-validation-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/validator/hibernate-validator/6.1.7.Final/hibernate-validator-6.1.7.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/addons/reactor-extra/3.3.6.RELEASE/reactor-extra-3.3.6.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-cache/2.3.11.RELEASE/spring-boot-starter-cache-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-eureka/2.3.0/ribbon-eureka-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/2.3.4/jaxb-runtime-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/2.3.4/txw2-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/2.3.11.RELEASE/spring-boot-starter-web-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/2.3.11.RELEASE/spring-boot-starter-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/2.3.11.RELEASE/spring-boot-starter-json-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/2.3.11.RELEASE/spring-boot-starter-tomcat-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/5.2.15.RELEASE/spring-web-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/5.2.15.RELEASE/spring-beans-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/5.2.15.RELEASE/spring-webmvc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/5.2.15.RELEASE/spring-context-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/5.2.15.RELEASE/spring-expression-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-javanica/1.5.18/hystrix-javanica-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-core/1.5.18/hystrix-core-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/fastjson/1.2.67/fastjson-1.2.67.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-privilege/1.7.1/amos-feign-privilege-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/easyexcel/2.0.5/easyexcel-2.0.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cglib/cglib/3.1/cglib-3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ehcache/ehcache/3.8.1/ehcache-3.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-scratchpad/4.0.1/poi-scratchpad-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml/4.0.1/poi-ooxml-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/fr/opensagres/xdocreport/xdocreport/1.0.6/xdocreport-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml-schemas/4.0.1/poi-ooxml-schemas-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlbeans/xmlbeans/3.0.2/xmlbeans-3.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/ooxml-schemas/1.3/ooxml-schemas-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/joda-time/joda-time/2.10.4/joda-time-2.10.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/velocity/velocity-engine-core/2.1/velocity-engine-core-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/freemarker/freemarker/2.3.31/freemarker-2.3.31.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-websocket/2.3.11.RELEASE/spring-boot-starter-websocket-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-messaging/5.2.15.RELEASE/spring-messaging-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-websocket/5.2.15.RELEASE/spring-websocket-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-jexl/2.1.1/commons-jexl-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-stream/5.3.7.RELEASE/spring-integration-stream-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-core/5.3.7.RELEASE/spring-integration-core-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/5.2.15.RELEASE/spring-tx-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/reactor-core/3.3.17.RELEASE/reactor-core-3.3.17.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-mqtt/5.3.7.RELEASE/spring-integration-mqtt-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.4/org.eclipse.paho.client.mqttv3-1.2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-starter/2.0.7/knife4j-spring-boot-starter-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-autoconfigure/2.0.7/knife4j-spring-boot-autoconfigure-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring/2.0.7/knife4j-spring-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-annotations/2.0.7/knife4j-annotations-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-core/2.0.7/knife4j-core-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-models/1.5.22/swagger-models-1.5.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger-common/2.10.5/springfox-swagger-common-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-web/2.10.5/springfox-spring-web-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/classgraph/classgraph/4.1.7/classgraph-4.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mapstruct/mapstruct/1.3.1.Final/mapstruct-1.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-bean-validators/2.10.5/springfox-bean-validators-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-webmvc/2.10.5/springfox-spring-webmvc-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-ui/2.0.7/knife4j-spring-ui-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-systemctl/1.6.5/amos-feign-systemctl-1.6.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-annotations/1.5.13/swagger-annotations-1.5.13.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tika/tika-core/1.17/tika-core-1.17.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tika/tika-parsers/1.17/tika-parsers-1.17.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/gagravarr/vorbis-java-tika/0.8/vorbis-java-tika-0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/healthmarketscience/jackcess/jackcess/2.1.8/jackcess-2.1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/healthmarketscience/jackcess/jackcess-encrypt/2.1.2/jackcess-encrypt-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/tallison/jmatio/1.2/jmatio-1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/james/apache-mime4j-core/0.8.1/apache-mime4j-core-0.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/james/apache-mime4j-dom/0.8.1/apache-mime4j-dom-0.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/tukaani/xz/1.6/xz-1.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.14/commons-codec-1.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/pdfbox/2.0.8/pdfbox-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/fontbox/2.0.8/fontbox-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/pdfbox-tools/2.0.8/pdfbox-tools-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/jempbox/1.8.13/jempbox-1.8.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcmail-jdk15on/1.54/bcmail-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcpkix-jdk15on/1.54/bcpkix-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/mp4parser/isoparser/1.1.18/isoparser-1.1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/drewnoakes/metadata-extractor/2.10.1/metadata-extractor-2.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/adobe/xmp/xmpcore/5.1.3/xmpcore-5.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/de/l3s/boilerpipe/boilerpipe/1.1.0/boilerpipe-1.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/rometools/rome/1.5.1/rome-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/rometools/rome-utils/1.5.1/rome-utils-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/gagravarr/vorbis-java-core/0.8/vorbis-java-core-0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/juniversalchardet/juniversalchardet/1.0.3/juniversalchardet-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codelibs/jhighlight/1.0.2/jhighlight-1.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/pff/java-libpst/0.8.1/java-libpst-0.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/junrar/junrar/0.7/junrar-0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-rs-client/3.0.16/cxf-rt-rs-client-3.0.16.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-transports-http/3.0.16/cxf-rt-transports-http-3.0.16.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-core/3.0.16/cxf-core-3.0.16.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/woodstox-core-asl/4.4.1/woodstox-core-asl-4.4.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/ws/xmlschema/xmlschema-core/2.2.2/xmlschema-core-2.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-frontend-jaxrs/3.0.16/cxf-rt-frontend-jaxrs-3.0.16.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/javax.ws.rs-api/2.0.1/javax.ws.rs-api-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/opennlp/opennlp-tools/1.8.3/opennlp-tools-1.8.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-io/commons-io/2.5/commons-io-2.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/tdunning/json/1.8/json-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jcl-over-slf4j/1.7.30/jcl-over-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/netcdf4/4.5.5/netcdf4-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/jcip/jcip-annotations/1.0/jcip-annotations-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/java/dev/jna/jna/4.1.0/jna-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/grib/4.5.5/grib-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/protobuf/protobuf-java/3.12.2/protobuf-java-3.12.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/itadaki/bzip2/0.9.1/bzip2-0.9.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/cdm/4.5.5/cdm-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/udunits/4.5.5/udunits-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/quartz-scheduler/quartz/2.3.2/quartz-2.3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/mchange/mchange-commons-java/0.2.15/mchange-commons-java-0.2.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/ehcache/ehcache-core/2.6.2/ehcache-core-2.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/beust/jcommander/1.35/jcommander-1.35.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/httpservices/4.5.5/httpservices-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-csv/1.0/commons-csv-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-utility/0.6/sis-utility-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/storage/sis-netcdf/0.6/sis-netcdf-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/storage/sis-storage/0.6/sis-storage-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-referencing/0.6/sis-referencing-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-metadata/0.6/sis-metadata-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/opengis/geoapi/3.0.0/geoapi-3.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/measure/jsr-275/0.9.3/jsr-275-0.9.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/usc/ir/sentiment-analysis-parser/0.1/sentiment-analysis-parser-0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-rule/1.7.1/amos-component-rule-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-cache/1.1.21/tyboot-component-cache-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-redis/1.4.5.RELEASE/spring-boot-starter-redis-1.4.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-redis/2.3.9.RELEASE/spring-data-redis-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-keyvalue/2.3.9.RELEASE/spring-data-keyvalue-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/2.3.9.RELEASE/spring-data-commons-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-oxm/5.2.15.RELEASE/spring-oxm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/redis/clients/jedis/3.3.0/jedis-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-pool2/2.8.1/commons-pool2-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/visual-feign-morphic/1.6.3-SNAPSHOT/visual-feign-morphic-1.6.3-SNAPSHOT.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-foundation/1.1.20/tyboot-core-foundation-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/belerweb/pinyin4j/2.5.0/pinyin4j-2.5.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/2.3.11.RELEASE/spring-boot-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/2.3.11.RELEASE/spring-boot-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/esotericsoftware/reflectasm/reflectasm/1.09/reflectasm-1.09.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/jhlabs/filters/2.0.235/filters-2.0.235.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-feign/1.6.3-SNAPSHOT/amos-component-feign-1.6.3-SNAPSHOT.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-openfeign/2.2.5.RELEASE/spring-cloud-starter-openfeign-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-openfeign-core/2.2.5.RELEASE/spring-cloud-openfeign-core-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-core/10.10.1/feign-core-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-slf4j/10.10.1/feign-slf4j-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-hystrix/10.10.1/feign-hystrix-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/brave/brave/5.12.3/brave-5.12.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter-brave/2.15.0/zipkin-reporter-brave-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter/2.15.0/zipkin-reporter-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/zipkin2/zipkin/2.21.1/zipkin-2.21.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-emq/1.1.20/tyboot-component-emq-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.2/org.eclipse.paho.client.mqttv3-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/2.3.11.RELEASE/spring-boot-starter-logging-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/liquibase/liquibase-core/4.4.3/liquibase-core-4.4.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/pagehelper/pagehelper/5.1.10/pagehelper-5.1.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jsqlparser/jsqlparser/2.0/jsqlparser-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/gavaghan/geodesy/1.1.3/geodesy-1.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-event/1.1.20/tyboot-component-event-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/2.3.11.RELEASE/spring-boot-starter-aop-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/5.2.15.RELEASE/spring-aop-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-mock/2.0.8/spring-mock-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/log4j/log4j/1.2.12/log4j-1.2.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/junit/junit/4.13.2/junit-4.13.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-rdbms/1.1.20/tyboot-core-rdbms-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-restful/1.1.20/tyboot-core-restful-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-auth/1.1.20/tyboot-core-auth-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/2.3.11.RELEASE/spring-boot-starter-jdbc-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/5.2.15.RELEASE/spring-jdbc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.2/mybatis-spring-boot-starter-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.2/mybatis-spring-boot-autoconfigure-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis-spring/2.0.4/mybatis-spring-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-base/4.0.0/easypoi-base-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi/4.0.0/poi-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-collections4/4.2/commons-collections4-4.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ognl/ognl/3.2.6/ognl-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-web/3.0.3/easypoi-web-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-annotation/3.0.3/easypoi-annotation-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itextpdf/5.5.13/itextpdf-5.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/core/3.3.0/core-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-rule/1.7.0/amos-feign-rule-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter/2.2.5.RELEASE/spring-cloud-starter-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/5.3.9.RELEASE/spring-security-crypto-5.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-commons/2.2.5.RELEASE/spring-cloud-commons-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-rsa/1.0.9.RELEASE/spring-security-rsa-1.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-actuator/2.3.11.RELEASE/spring-boot-starter-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator-autoconfigure/2.3.11.RELEASE/spring-boot-actuator-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator/2.3.11.RELEASE/spring-boot-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-core/1.5.14/micrometer-core-1.5.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-freemarker/2.3.11.RELEASE/spring-boot-starter-freemarker-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context-support/5.2.15.RELEASE/spring-context-support-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-hystrix/2.2.5.RELEASE/spring-cloud-netflix-hystrix-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-client/1.9.25/eureka-client-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-eventbus/0.3.0/netflix-eventbus-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-infix/0.3.0/netflix-infix-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math/2.2/commons-math-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/servo/servo-core/0.12.21/servo-core-0.12.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-core/1.19.1/jersey-core-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/contribs/jersey-apache-client4/1.19.1/jersey-apache-client4-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/inject/guice/4.1.0/guice-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-servlet/1.19.1/jersey-servlet-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-server/1.19.1/jersey-server-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-client/1.19.1/jersey-client-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-core/1.9.25/eureka-core-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/woodstox/woodstox-core/5.3.0/woodstox-core-5.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/archaius/archaius-core/0.7.6/archaius-core-0.7.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.4/jackson-dataformat-xml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.4/jackson-module-jaxb-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-archaius/2.2.5.RELEASE/spring-cloud-starter-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-ribbon/2.2.5.RELEASE/spring-cloud-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-archaius/2.2.5.RELEASE/spring-cloud-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-ribbon/2.2.5.RELEASE/spring-cloud-starter-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon/2.3.0/ribbon-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-transport/2.3.0/ribbon-transport-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-core/2.3.0/ribbon-core-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-httpclient/2.3.0/ribbon-httpclient-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-commons-util/0.3.0/netflix-commons-util-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-loadbalancer/2.3.0/ribbon-loadbalancer-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxjava/1.3.8/rxjava-1.3.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-loadbalancer/2.2.5.RELEASE/spring-cloud-starter-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-loadbalancer/2.2.5.RELEASE/spring-cloud-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-validation/2.3.11.RELEASE/spring-boot-starter-validation-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/validator/hibernate-validator/6.1.7.Final/hibernate-validator-6.1.7.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/addons/reactor-extra/3.3.6.RELEASE/reactor-extra-3.3.6.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-cache/2.3.11.RELEASE/spring-boot-starter-cache-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-eureka/2.3.0/ribbon-eureka-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/2.3.4/jaxb-runtime-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/2.3.4/txw2-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/2.3.11.RELEASE/spring-boot-starter-web-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/2.3.11.RELEASE/spring-boot-starter-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/2.3.11.RELEASE/spring-boot-starter-json-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/2.3.11.RELEASE/spring-boot-starter-tomcat-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/5.2.15.RELEASE/spring-web-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/5.2.15.RELEASE/spring-beans-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/5.2.15.RELEASE/spring-webmvc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/5.2.15.RELEASE/spring-context-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/5.2.15.RELEASE/spring-expression-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-javanica/1.5.18/hystrix-javanica-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-core/1.5.18/hystrix-core-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/fastjson/1.2.67/fastjson-1.2.67.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-privilege/1.7.1/amos-feign-privilege-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/easyexcel/2.0.5/easyexcel-2.0.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cglib/cglib/3.1/cglib-3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ehcache/ehcache/3.8.1/ehcache-3.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-scratchpad/4.0.1/poi-scratchpad-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml/4.0.1/poi-ooxml-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/fr/opensagres/xdocreport/xdocreport/1.0.6/xdocreport-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml-schemas/4.0.1/poi-ooxml-schemas-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlbeans/xmlbeans/3.0.2/xmlbeans-3.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/ooxml-schemas/1.3/ooxml-schemas-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/joda-time/joda-time/2.10.4/joda-time-2.10.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/velocity/velocity-engine-core/2.1/velocity-engine-core-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/freemarker/freemarker/2.3.31/freemarker-2.3.31.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-websocket/2.3.11.RELEASE/spring-boot-starter-websocket-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-messaging/5.2.15.RELEASE/spring-messaging-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-websocket/5.2.15.RELEASE/spring-websocket-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-jexl/2.1.1/commons-jexl-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-stream/5.3.7.RELEASE/spring-integration-stream-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-core/5.3.7.RELEASE/spring-integration-core-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/5.2.15.RELEASE/spring-tx-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/reactor-core/3.3.17.RELEASE/reactor-core-3.3.17.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-mqtt/5.3.7.RELEASE/spring-integration-mqtt-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-starter/2.0.7/knife4j-spring-boot-starter-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-autoconfigure/2.0.7/knife4j-spring-boot-autoconfigure-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring/2.0.7/knife4j-spring-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-annotations/2.0.7/knife4j-annotations-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-core/2.0.7/knife4j-core-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-models/1.5.22/swagger-models-1.5.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger-common/2.10.5/springfox-swagger-common-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-web/2.10.5/springfox-spring-web-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/classgraph/classgraph/4.1.7/classgraph-4.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mapstruct/mapstruct/1.3.1.Final/mapstruct-1.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-bean-validators/2.10.5/springfox-bean-validators-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-webmvc/2.10.5/springfox-spring-webmvc-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-ui/2.0.7/knife4j-spring-ui-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-systemctl/1.6.5/amos-feign-systemctl-1.6.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-annotations/1.5.13/swagger-annotations-1.5.13.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-data-jpa/2.3.11.RELEASE/spring-boot-starter-data-jpa-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/2.3.11.RELEASE/spring-boot-starter-jdbc-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/5.2.15.RELEASE/spring-jdbc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/transaction/jakarta.transaction-api/1.3.3/jakarta.transaction-api-1.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/persistence/jakarta.persistence-api/2.2.3/jakarta.persistence-api-2.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/hibernate-core/5.4.31.Final/hibernate-core-5.4.31.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/jandex/2.2.3.Final/jandex-2.2.3.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/dom4j/dom4j/2.1.3/dom4j-2.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/common/hibernate-commons-annotations/5.1.2.Final/hibernate-commons-annotations-5.1.2.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-jpa/2.3.9.RELEASE/spring-data-jpa-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/2.3.9.RELEASE/spring-data-commons-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-orm/5.2.15.RELEASE/spring-orm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aspects/5.2.15.RELEASE/spring-aspects-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-base/3.0.3/easypoi-base-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-web/3.0.3/easypoi-web-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-annotation/3.0.3/easypoi-annotation-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/jpush/api/jpush-client/3.3.10/jpush-client-3.3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/jpush/api/jiguang-common/1.1.3/jiguang-common-1.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-all/4.1.65.Final/netty-all-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-rule/1.7.1/amos-component-rule-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-hystrix/2.2.5.RELEASE/spring-cloud-netflix-hystrix-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-client/1.9.25/eureka-client-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-eventbus/0.3.0/netflix-eventbus-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-infix/0.3.0/netflix-infix-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math/2.2/commons-math-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/servo/servo-core/0.12.21/servo-core-0.12.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-core/1.19.1/jersey-core-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/contribs/jersey-apache-client4/1.19.1/jersey-apache-client4-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/inject/guice/4.1.0/guice-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-core/1.9.25/eureka-core-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/woodstox/woodstox-core/5.3.0/woodstox-core-5.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-redis/1.4.5.RELEASE/spring-boot-starter-redis-1.4.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-redis/2.3.9.RELEASE/spring-data-redis-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-keyvalue/2.3.9.RELEASE/spring-data-keyvalue-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-oxm/5.2.15.RELEASE/spring-oxm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context-support/5.2.15.RELEASE/spring-context-support-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/redis/clients/jedis/3.3.0/jedis-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-pool2/2.8.1/commons-pool2-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-emq/1.1.20/tyboot-component-emq-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-foundation/1.1.20/tyboot-core-foundation-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/belerweb/pinyin4j/2.5.0/pinyin4j-2.5.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/2.3.11.RELEASE/spring-boot-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/2.3.11.RELEASE/spring-boot-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/esotericsoftware/reflectasm/reflectasm/1.09/reflectasm-1.09.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/jhlabs/filters/2.0.235/filters-2.0.235.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.2/org.eclipse.paho.client.mqttv3-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/2.3.11.RELEASE/spring-boot-starter-logging-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-scratchpad/3.15/poi-scratchpad-3.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi/3.15/poi-3.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.14/commons-codec-1.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-collections4/4.1/commons-collections4-4.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/fr/opensagres/xdocreport/xdocreport/1.0.6/xdocreport-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/ooxml-schemas/1.3/ooxml-schemas-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlbeans/xmlbeans/2.3.0/xmlbeans-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml/3.15/poi-ooxml-3.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/virtuald/curvesapi/1.04/curvesapi-1.04.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itextpdf/5.5.9/itextpdf-5.5.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/tool/xmlworker/5.5.9/xmlworker-5.5.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-event/1.1.20/tyboot-component-event-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/2.3.11.RELEASE/spring-boot-starter-aop-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/5.2.15.RELEASE/spring-aop-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-mock/2.0.8/spring-mock-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/log4j/log4j/1.2.12/log4j-1.2.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/junit/junit/4.13.2/junit-4.13.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-rdbms/1.1.20/tyboot-core-rdbms-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-restful/1.1.20/tyboot-core-restful-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-auth/1.1.20/tyboot-core-auth-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.2/mybatis-spring-boot-starter-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.2/mybatis-spring-boot-autoconfigure-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis-spring/2.0.4/mybatis-spring-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/core/3.3.0/core-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/pagehelper/pagehelper/5.1.10/pagehelper-5.1.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jsqlparser/jsqlparser/2.0/jsqlparser-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-rule/1.7.0/amos-feign-rule-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-feign/1.7.0/amos-component-feign-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-openfeign/2.2.5.RELEASE/spring-cloud-starter-openfeign-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-openfeign-core/2.2.5.RELEASE/spring-cloud-openfeign-core-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-io/commons-io/2.2/commons-io-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-core/10.10.1/feign-core-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-slf4j/10.10.1/feign-slf4j-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-hystrix/10.10.1/feign-hystrix-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-cache/1.1.21/tyboot-component-cache-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/brave/brave/5.12.3/brave-5.12.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter-brave/2.15.0/zipkin-reporter-brave-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter/2.15.0/zipkin-reporter-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/zipkin2/zipkin/2.21.1/zipkin-2.21.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter/2.2.5.RELEASE/spring-cloud-starter-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/5.3.9.RELEASE/spring-security-crypto-5.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-commons/2.2.5.RELEASE/spring-cloud-commons-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-rsa/1.0.9.RELEASE/spring-security-rsa-1.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcpkix-jdk15on/1.64/bcpkix-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcprov-jdk15on/1.64/bcprov-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-actuator/2.3.11.RELEASE/spring-boot-starter-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator-autoconfigure/2.3.11.RELEASE/spring-boot-actuator-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator/2.3.11.RELEASE/spring-boot-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-core/1.5.14/micrometer-core-1.5.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-freemarker/2.3.11.RELEASE/spring-boot-starter-freemarker-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-servlet/1.19.1/jersey-servlet-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-server/1.19.1/jersey-server-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-client/1.19.1/jersey-client-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/archaius/archaius-core/0.7.6/archaius-core-0.7.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.4/jackson-dataformat-xml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.4/jackson-module-jaxb-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-archaius/2.2.5.RELEASE/spring-cloud-starter-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-ribbon/2.2.5.RELEASE/spring-cloud-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-archaius/2.2.5.RELEASE/spring-cloud-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-ribbon/2.2.5.RELEASE/spring-cloud-starter-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon/2.3.0/ribbon-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-transport/2.3.0/ribbon-transport-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-core/2.3.0/ribbon-core-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-httpclient/2.3.0/ribbon-httpclient-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-commons-util/0.3.0/netflix-commons-util-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-loadbalancer/2.3.0/ribbon-loadbalancer-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxjava/1.3.8/rxjava-1.3.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-loadbalancer/2.2.5.RELEASE/spring-cloud-starter-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-loadbalancer/2.2.5.RELEASE/spring-cloud-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-validation/2.3.11.RELEASE/spring-boot-starter-validation-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/validator/hibernate-validator/6.1.7.Final/hibernate-validator-6.1.7.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/addons/reactor-extra/3.3.6.RELEASE/reactor-extra-3.3.6.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-cache/2.3.11.RELEASE/spring-boot-starter-cache-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-eureka/2.3.0/ribbon-eureka-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/2.3.4/jaxb-runtime-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/2.3.4/txw2-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/2.3.11.RELEASE/spring-boot-starter-web-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/2.3.11.RELEASE/spring-boot-starter-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/2.3.11.RELEASE/spring-boot-starter-json-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/2.3.11.RELEASE/spring-boot-starter-tomcat-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/5.2.15.RELEASE/spring-web-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/5.2.15.RELEASE/spring-beans-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/5.2.15.RELEASE/spring-webmvc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/5.2.15.RELEASE/spring-context-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/5.2.15.RELEASE/spring-expression-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-javanica/1.5.18/hystrix-javanica-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-core/1.5.18/hystrix-core-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/fastjson/1.2.67/fastjson-1.2.67.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-privilege/1.7.1/amos-feign-privilege-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/easyexcel/2.0.5/easyexcel-2.0.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cglib/cglib/3.1/cglib-3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ehcache/ehcache/3.8.1/ehcache-3.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml-schemas/4.0.1/poi-ooxml-schemas-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/joda-time/joda-time/2.10.4/joda-time-2.10.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/velocity/velocity-engine-core/2.1/velocity-engine-core-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/freemarker/freemarker/2.3.31/freemarker-2.3.31.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-websocket/2.3.11.RELEASE/spring-boot-starter-websocket-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-messaging/5.2.15.RELEASE/spring-messaging-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-websocket/5.2.15.RELEASE/spring-websocket-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-jexl/2.1.1/commons-jexl-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-stream/5.3.7.RELEASE/spring-integration-stream-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-core/5.3.7.RELEASE/spring-integration-core-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/5.2.15.RELEASE/spring-tx-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/reactor-core/3.3.17.RELEASE/reactor-core-3.3.17.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-mqtt/5.3.7.RELEASE/spring-integration-mqtt-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-starter/2.0.7/knife4j-spring-boot-starter-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-autoconfigure/2.0.7/knife4j-spring-boot-autoconfigure-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring/2.0.7/knife4j-spring-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-annotations/2.0.7/knife4j-annotations-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-core/2.0.7/knife4j-core-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-models/1.5.22/swagger-models-1.5.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger-common/2.10.5/springfox-swagger-common-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-web/2.10.5/springfox-spring-web-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/classgraph/classgraph/4.1.7/classgraph-4.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mapstruct/mapstruct/1.3.1.Final/mapstruct-1.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-bean-validators/2.10.5/springfox-bean-validators-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-webmvc/2.10.5/springfox-spring-webmvc-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-ui/2.0.7/knife4j-spring-ui-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-systemctl/1.6.5/amos-feign-systemctl-1.6.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-annotations/1.5.13/swagger-annotations-1.5.13.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-data-elasticsearch/2.3.11.RELEASE/spring-boot-starter-data-elasticsearch-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-elasticsearch/4.0.9.RELEASE/spring-data-elasticsearch-4.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/2.3.9.RELEASE/spring-data-commons-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/transport-netty4-client/7.6.2/transport-netty4-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/client/elasticsearch-rest-high-level-client/7.6.2/elasticsearch-rest-high-level-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch/7.6.2/elasticsearch-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-core/7.6.2/elasticsearch-core-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-secure-sm/7.6.2/elasticsearch-secure-sm-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-x-content/7.6.2/elasticsearch-x-content-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-smile/2.11.4/jackson-dataformat-smile-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.11.4/jackson-dataformat-yaml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.11.4/jackson-dataformat-cbor-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-geo/7.6.2/elasticsearch-geo-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-core/8.4.0/lucene-core-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-analyzers-common/8.4.0/lucene-analyzers-common-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-backward-codecs/8.4.0/lucene-backward-codecs-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-grouping/8.4.0/lucene-grouping-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-highlighter/8.4.0/lucene-highlighter-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-join/8.4.0/lucene-join-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-memory/8.4.0/lucene-memory-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-misc/8.4.0/lucene-misc-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-queries/8.4.0/lucene-queries-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-queryparser/8.4.0/lucene-queryparser-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-sandbox/8.4.0/lucene-sandbox-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial/8.4.0/lucene-spatial-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial-extras/8.4.0/lucene-spatial-extras-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial3d/8.4.0/lucene-spatial3d-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-suggest/8.4.0/lucene-suggest-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-cli/7.6.2/elasticsearch-cli-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/jopt-simple/jopt-simple/5.0.2/jopt-simple-5.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/carrotsearch/hppc/0.8.1/hppc-0.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/tdunning/t-digest/3.2/t-digest-3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/jna/4.5.1/jna-4.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/client/elasticsearch-rest-client/7.6.2/elasticsearch-rest-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpasyncclient/4.1.4/httpasyncclient-4.1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore-nio/4.4.14/httpcore-nio-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/mapper-extras-client/7.6.2/mapper-extras-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/parent-join-client/7.6.2/parent-join-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/aggs-matrix-stats-client/7.6.2/aggs-matrix-stats-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/rank-eval-client/7.6.2/rank-eval-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/lang-mustache-client/7.6.2/lang-mustache-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/spullara/mustache/java/compiler/0.9.6/compiler-0.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-rule/1.7.1/amos-component-rule-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-emq/1.1.21/tyboot-component-emq-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-cache/1.1.21/tyboot-component-cache-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-redis/1.4.5.RELEASE/spring-boot-starter-redis-1.4.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-redis/2.3.9.RELEASE/spring-data-redis-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-keyvalue/2.3.9.RELEASE/spring-data-keyvalue-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-oxm/5.2.15.RELEASE/spring-oxm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/redis/clients/jedis/3.3.0/jedis-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-pool2/2.8.1/commons-pool2-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/deepoove/poi-tl/1.6.0/poi-tl-1.6.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/e-iceblue/spire.doc/4.9.0/spire.doc-4.9.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/aliyun/aliyun-java-sdk-core/3.7.1/aliyun-java-sdk-core-3.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/json/json/20170516/json-20170516.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/nls/nls-sdk-transcriber/2.2.1/nls-sdk-transcriber-2.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/nls/nls-sdk-common/2.2.1/nls-sdk-common-2.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-transport/4.1.65.Final/netty-transport-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-resolver/4.1.65.Final/netty-resolver-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-handler/4.1.65.Final/netty-handler-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-common/4.1.65.Final/netty-common-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-codec-http/4.1.65.Final/netty-codec-http-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-codec/4.1.65.Final/netty-codec-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-buffer/4.1.65.Final/netty-buffer-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/squareup/okio/okio/1.13.0/okio-1.13.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/squareup/okhttp3/okhttp/3.14.9/okhttp-3.14.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-event/1.1.20/tyboot-component-event-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/2.3.11.RELEASE/spring-boot-starter-aop-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/5.2.15.RELEASE/spring-aop-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/2.3.11.RELEASE/spring-boot-starter-logging-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-mock/2.0.8/spring-mock-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/log4j/log4j/1.2.12/log4j-1.2.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/junit/junit/4.13.2/junit-4.13.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-rdbms/1.1.20/tyboot-core-rdbms-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-restful/1.1.20/tyboot-core-restful-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-auth/1.1.20/tyboot-core-auth-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/2.3.11.RELEASE/spring-boot-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/2.3.11.RELEASE/spring-boot-starter-jdbc-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/5.2.15.RELEASE/spring-jdbc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.2/mybatis-spring-boot-starter-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.2/mybatis-spring-boot-autoconfigure-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis-spring/2.0.4/mybatis-spring-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-base/4.0.0/easypoi-base-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi/4.0.0/poi-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.14/commons-codec-1.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-collections4/4.2/commons-collections4-4.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ognl/ognl/3.2.6/ognl-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-web/3.0.3/easypoi-web-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-annotation/3.0.3/easypoi-annotation-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itextpdf/5.5.13/itextpdf-5.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/core/3.3.0/core-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/pagehelper/pagehelper/5.1.10/pagehelper-5.1.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jsqlparser/jsqlparser/2.0/jsqlparser-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-rule/1.7.0/amos-feign-rule-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-foundation/1.1.21/tyboot-core-foundation-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/belerweb/pinyin4j/2.5.0/pinyin4j-2.5.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/2.3.11.RELEASE/spring-boot-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/esotericsoftware/reflectasm/reflectasm/1.09/reflectasm-1.09.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/jhlabs/filters/2.0.235/filters-2.0.235.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-feign/1.7.0/amos-component-feign-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-openfeign/2.2.5.RELEASE/spring-cloud-starter-openfeign-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-openfeign-core/2.2.5.RELEASE/spring-cloud-openfeign-core-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-io/commons-io/2.2/commons-io-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-core/10.10.1/feign-core-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-slf4j/10.10.1/feign-slf4j-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-hystrix/10.10.1/feign-hystrix-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/brave/brave/5.12.3/brave-5.12.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter-brave/2.15.0/zipkin-reporter-brave-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter/2.15.0/zipkin-reporter-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/zipkin2/zipkin/2.21.1/zipkin-2.21.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter/2.2.5.RELEASE/spring-cloud-starter-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/5.3.9.RELEASE/spring-security-crypto-5.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-commons/2.2.5.RELEASE/spring-cloud-commons-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-rsa/1.0.9.RELEASE/spring-security-rsa-1.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcpkix-jdk15on/1.64/bcpkix-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcprov-jdk15on/1.64/bcprov-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-actuator/2.3.11.RELEASE/spring-boot-starter-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator-autoconfigure/2.3.11.RELEASE/spring-boot-actuator-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator/2.3.11.RELEASE/spring-boot-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-core/1.5.14/micrometer-core-1.5.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-freemarker/2.3.11.RELEASE/spring-boot-starter-freemarker-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context-support/5.2.15.RELEASE/spring-context-support-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-hystrix/2.2.5.RELEASE/spring-cloud-netflix-hystrix-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-client/1.9.25/eureka-client-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-eventbus/0.3.0/netflix-eventbus-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-infix/0.3.0/netflix-infix-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math/2.2/commons-math-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/servo/servo-core/0.12.21/servo-core-0.12.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-core/1.19.1/jersey-core-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/contribs/jersey-apache-client4/1.19.1/jersey-apache-client4-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/inject/guice/4.1.0/guice-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-servlet/1.19.1/jersey-servlet-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-server/1.19.1/jersey-server-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-client/1.19.1/jersey-client-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-core/1.9.25/eureka-core-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/woodstox/woodstox-core/5.3.0/woodstox-core-5.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/archaius/archaius-core/0.7.6/archaius-core-0.7.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.4/jackson-dataformat-xml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.4/jackson-module-jaxb-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-archaius/2.2.5.RELEASE/spring-cloud-starter-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-ribbon/2.2.5.RELEASE/spring-cloud-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-archaius/2.2.5.RELEASE/spring-cloud-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-ribbon/2.2.5.RELEASE/spring-cloud-starter-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon/2.3.0/ribbon-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-transport/2.3.0/ribbon-transport-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-core/2.3.0/ribbon-core-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-httpclient/2.3.0/ribbon-httpclient-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-commons-util/0.3.0/netflix-commons-util-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-loadbalancer/2.3.0/ribbon-loadbalancer-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxjava/1.3.8/rxjava-1.3.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-loadbalancer/2.2.5.RELEASE/spring-cloud-starter-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-loadbalancer/2.2.5.RELEASE/spring-cloud-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-validation/2.3.11.RELEASE/spring-boot-starter-validation-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/validator/hibernate-validator/6.1.7.Final/hibernate-validator-6.1.7.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/addons/reactor-extra/3.3.6.RELEASE/reactor-extra-3.3.6.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-cache/2.3.11.RELEASE/spring-boot-starter-cache-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-eureka/2.3.0/ribbon-eureka-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/2.3.4/jaxb-runtime-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/2.3.4/txw2-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/2.3.11.RELEASE/spring-boot-starter-web-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/2.3.11.RELEASE/spring-boot-starter-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/2.3.11.RELEASE/spring-boot-starter-json-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/2.3.11.RELEASE/spring-boot-starter-tomcat-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/5.2.15.RELEASE/spring-web-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/5.2.15.RELEASE/spring-beans-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/5.2.15.RELEASE/spring-webmvc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/5.2.15.RELEASE/spring-context-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/5.2.15.RELEASE/spring-expression-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-javanica/1.5.18/hystrix-javanica-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-core/1.5.18/hystrix-core-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/fastjson/1.2.67/fastjson-1.2.67.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-privilege/1.7.1/amos-feign-privilege-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/easyexcel/2.0.5/easyexcel-2.0.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cglib/cglib/3.1/cglib-3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ehcache/ehcache/3.8.1/ehcache-3.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-scratchpad/4.0.1/poi-scratchpad-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml/4.0.1/poi-ooxml-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/fr/opensagres/xdocreport/xdocreport/1.0.6/xdocreport-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml-schemas/4.0.1/poi-ooxml-schemas-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlbeans/xmlbeans/3.0.2/xmlbeans-3.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/ooxml-schemas/1.3/ooxml-schemas-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/joda-time/joda-time/2.10.4/joda-time-2.10.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/velocity/velocity-engine-core/2.1/velocity-engine-core-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/freemarker/freemarker/2.3.31/freemarker-2.3.31.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-websocket/2.3.11.RELEASE/spring-boot-starter-websocket-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-messaging/5.2.15.RELEASE/spring-messaging-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-websocket/5.2.15.RELEASE/spring-websocket-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-jexl/2.1.1/commons-jexl-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-stream/5.3.7.RELEASE/spring-integration-stream-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-core/5.3.7.RELEASE/spring-integration-core-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/5.2.15.RELEASE/spring-tx-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/reactor-core/3.3.17.RELEASE/reactor-core-3.3.17.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-mqtt/5.3.7.RELEASE/spring-integration-mqtt-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.4/org.eclipse.paho.client.mqttv3-1.2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-starter/2.0.7/knife4j-spring-boot-starter-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-autoconfigure/2.0.7/knife4j-spring-boot-autoconfigure-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring/2.0.7/knife4j-spring-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-annotations/2.0.7/knife4j-annotations-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-core/2.0.7/knife4j-core-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-models/1.5.22/swagger-models-1.5.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger-common/2.10.5/springfox-swagger-common-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-web/2.10.5/springfox-spring-web-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/classgraph/classgraph/4.1.7/classgraph-4.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mapstruct/mapstruct/1.3.1.Final/mapstruct-1.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-bean-validators/2.10.5/springfox-bean-validators-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-webmvc/2.10.5/springfox-spring-webmvc-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-ui/2.0.7/knife4j-spring-ui-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-systemctl/1.6.5/amos-feign-systemctl-1.6.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-annotations/1.5.13/swagger-annotations-1.5.13.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-emq/1.1.20/tyboot-component-emq-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-rule/1.7.1/amos-component-rule-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-cache/1.1.21/tyboot-component-cache-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-redis/1.4.5.RELEASE/spring-boot-starter-redis-1.4.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-redis/2.3.9.RELEASE/spring-data-redis-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-keyvalue/2.3.9.RELEASE/spring-data-keyvalue-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-oxm/5.2.15.RELEASE/spring-oxm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/redis/clients/jedis/3.3.0/jedis-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-pool2/2.8.1/commons-pool2-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/docx4j/docx4j/3.3.6/docx4j-3.3.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/plutext/jaxb-svg11/1.0.2/jaxb-svg11-1.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/engio/mbassador/1.2.4.2/mbassador-1.2.4.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jcl-over-slf4j/1.7.30/jcl-over-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/log4j/log4j/1.2.17/log4j-1.2.17.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.14/commons-codec-1.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-io/commons-io/2.4/commons-io-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/xmlgraphics-commons/2.1/xmlgraphics-commons-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/avalon/framework/avalon-framework-api/4.3.1/avalon-framework-api-4.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/avalon/framework/avalon-framework-impl/4.3.1/avalon-framework-impl-4.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xalan/xalan/2.7.2/xalan-2.7.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xalan/serializer/2.7.2/serializer-2.7.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/arnx/wmf2svg/0.9.8/wmf2svg-0.9.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thedeanda/lorem/2.0/lorem-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/docx4j/docx4j-ImportXHTML/3.3.6/docx4j-ImportXHTML-3.3.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/docx4j/xhtmlrenderer/3.0.0/xhtmlrenderer-3.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/lowagie/itext/2.1.7/itext-2.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/docx4j/docx4j-export-fo/3.3.6/docx4j-export-fo-3.3.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/plutext/jaxb-xslfo/1.0.1/jaxb-xslfo-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/fop/2.2/fop-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-svg-dom/1.9/batik-svg-dom-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-css/1.9/batik-css-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-dom/1.9/batik-dom-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-parser/1.9/batik-parser-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-util/1.9/batik-util-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-constants/1.9/batik-constants-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-i18n/1.9/batik-i18n-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-bridge/1.9/batik-bridge-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-anim/1.9/batik-anim-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-script/1.9/batik-script-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-xml/1.9/batik-xml-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-awt-util/1.9/batik-awt-util-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-gvt/1.9/batik-gvt-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-transcoder/1.9/batik-transcoder-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-svggen/1.9/batik-svggen-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-extension/1.9/batik-extension-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlgraphics/batik-ext/1.9/batik-ext-1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/fontbox/2.0.4/fontbox-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/kernel/7.1.1/kernel-7.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/io/7.1.1/io-7.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/layout/7.1.1/layout-7.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/html2pdf/2.0.1/html2pdf-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/forms/7.1.1/forms-7.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi/4.0.1/poi-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-collections4/4.2/commons-collections4-4.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-data-elasticsearch/2.3.11.RELEASE/spring-boot-starter-data-elasticsearch-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-elasticsearch/4.0.9.RELEASE/spring-data-elasticsearch-4.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/2.3.9.RELEASE/spring-data-commons-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/transport-netty4-client/7.6.2/transport-netty4-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-buffer/4.1.65.Final/netty-buffer-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-codec/4.1.65.Final/netty-codec-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-codec-http/4.1.65.Final/netty-codec-http-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-common/4.1.65.Final/netty-common-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-handler/4.1.65.Final/netty-handler-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-resolver/4.1.65.Final/netty-resolver-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-transport/4.1.65.Final/netty-transport-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/client/elasticsearch-rest-high-level-client/7.6.2/elasticsearch-rest-high-level-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch/7.6.2/elasticsearch-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-core/7.6.2/elasticsearch-core-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-secure-sm/7.6.2/elasticsearch-secure-sm-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-x-content/7.6.2/elasticsearch-x-content-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-smile/2.11.4/jackson-dataformat-smile-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.11.4/jackson-dataformat-yaml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.11.4/jackson-dataformat-cbor-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-geo/7.6.2/elasticsearch-geo-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-core/8.4.0/lucene-core-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-analyzers-common/8.4.0/lucene-analyzers-common-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-backward-codecs/8.4.0/lucene-backward-codecs-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-grouping/8.4.0/lucene-grouping-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-highlighter/8.4.0/lucene-highlighter-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-join/8.4.0/lucene-join-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-memory/8.4.0/lucene-memory-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-misc/8.4.0/lucene-misc-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-queries/8.4.0/lucene-queries-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-queryparser/8.4.0/lucene-queryparser-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-sandbox/8.4.0/lucene-sandbox-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial/8.4.0/lucene-spatial-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial-extras/8.4.0/lucene-spatial-extras-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial3d/8.4.0/lucene-spatial3d-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-suggest/8.4.0/lucene-suggest-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-cli/7.6.2/elasticsearch-cli-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/jopt-simple/jopt-simple/5.0.2/jopt-simple-5.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/carrotsearch/hppc/0.8.1/hppc-0.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/tdunning/t-digest/3.2/t-digest-3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/jna/4.5.1/jna-4.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/client/elasticsearch-rest-client/7.6.2/elasticsearch-rest-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpasyncclient/4.1.4/httpasyncclient-4.1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore-nio/4.4.14/httpcore-nio-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/mapper-extras-client/7.6.2/mapper-extras-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/parent-join-client/7.6.2/parent-join-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/aggs-matrix-stats-client/7.6.2/aggs-matrix-stats-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/rank-eval-client/7.6.2/rank-eval-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/lang-mustache-client/7.6.2/lang-mustache-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/spullara/mustache/java/compiler/0.9.6/compiler-0.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-event/1.1.20/tyboot-component-event-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/2.3.11.RELEASE/spring-boot-starter-aop-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/5.2.15.RELEASE/spring-aop-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/2.3.11.RELEASE/spring-boot-starter-logging-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-mock/2.0.8/spring-mock-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/junit/junit/4.13.2/junit-4.13.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-rdbms/1.1.20/tyboot-core-rdbms-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-restful/1.1.20/tyboot-core-restful-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-auth/1.1.20/tyboot-core-auth-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/2.3.11.RELEASE/spring-boot-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/2.3.11.RELEASE/spring-boot-starter-jdbc-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/5.2.15.RELEASE/spring-jdbc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.2/mybatis-spring-boot-starter-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.2/mybatis-spring-boot-autoconfigure-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis-spring/2.0.4/mybatis-spring-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-base/4.0.0/easypoi-base-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ognl/ognl/3.2.6/ognl-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-web/3.0.3/easypoi-web-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-annotation/3.0.3/easypoi-annotation-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itextpdf/5.5.13/itextpdf-5.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/core/3.3.0/core-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/pagehelper/pagehelper/5.1.10/pagehelper-5.1.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jsqlparser/jsqlparser/2.0/jsqlparser-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-rule/1.7.0/amos-feign-rule-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-foundation/1.1.21/tyboot-core-foundation-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/belerweb/pinyin4j/2.5.0/pinyin4j-2.5.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/2.3.11.RELEASE/spring-boot-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/esotericsoftware/reflectasm/reflectasm/1.09/reflectasm-1.09.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/jhlabs/filters/2.0.235/filters-2.0.235.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-feign/1.7.0/amos-component-feign-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-openfeign/2.2.5.RELEASE/spring-cloud-starter-openfeign-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-openfeign-core/2.2.5.RELEASE/spring-cloud-openfeign-core-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-core/10.10.1/feign-core-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-slf4j/10.10.1/feign-slf4j-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-hystrix/10.10.1/feign-hystrix-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/brave/brave/5.12.3/brave-5.12.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter-brave/2.15.0/zipkin-reporter-brave-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter/2.15.0/zipkin-reporter-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/zipkin2/zipkin/2.21.1/zipkin-2.21.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter/2.2.5.RELEASE/spring-cloud-starter-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/5.3.9.RELEASE/spring-security-crypto-5.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-commons/2.2.5.RELEASE/spring-cloud-commons-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-rsa/1.0.9.RELEASE/spring-security-rsa-1.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcpkix-jdk15on/1.64/bcpkix-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcprov-jdk15on/1.64/bcprov-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-actuator/2.3.11.RELEASE/spring-boot-starter-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator-autoconfigure/2.3.11.RELEASE/spring-boot-actuator-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator/2.3.11.RELEASE/spring-boot-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-core/1.5.14/micrometer-core-1.5.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-freemarker/2.3.11.RELEASE/spring-boot-starter-freemarker-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context-support/5.2.15.RELEASE/spring-context-support-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-hystrix/2.2.5.RELEASE/spring-cloud-netflix-hystrix-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-client/1.9.25/eureka-client-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-eventbus/0.3.0/netflix-eventbus-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-infix/0.3.0/netflix-infix-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math/2.2/commons-math-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/servo/servo-core/0.12.21/servo-core-0.12.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-core/1.19.1/jersey-core-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/contribs/jersey-apache-client4/1.19.1/jersey-apache-client4-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/inject/guice/4.1.0/guice-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-servlet/1.19.1/jersey-servlet-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-server/1.19.1/jersey-server-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-client/1.19.1/jersey-client-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-core/1.9.25/eureka-core-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/woodstox/woodstox-core/5.3.0/woodstox-core-5.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/archaius/archaius-core/0.7.6/archaius-core-0.7.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.4/jackson-dataformat-xml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.4/jackson-module-jaxb-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-archaius/2.2.5.RELEASE/spring-cloud-starter-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-ribbon/2.2.5.RELEASE/spring-cloud-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-archaius/2.2.5.RELEASE/spring-cloud-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-ribbon/2.2.5.RELEASE/spring-cloud-starter-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon/2.3.0/ribbon-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-transport/2.3.0/ribbon-transport-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-core/2.3.0/ribbon-core-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-httpclient/2.3.0/ribbon-httpclient-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-commons-util/0.3.0/netflix-commons-util-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-loadbalancer/2.3.0/ribbon-loadbalancer-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxjava/1.3.8/rxjava-1.3.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-loadbalancer/2.2.5.RELEASE/spring-cloud-starter-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-loadbalancer/2.2.5.RELEASE/spring-cloud-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-validation/2.3.11.RELEASE/spring-boot-starter-validation-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/validator/hibernate-validator/6.1.7.Final/hibernate-validator-6.1.7.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/addons/reactor-extra/3.3.6.RELEASE/reactor-extra-3.3.6.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-cache/2.3.11.RELEASE/spring-boot-starter-cache-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-eureka/2.3.0/ribbon-eureka-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/2.3.4/jaxb-runtime-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/2.3.4/txw2-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/2.3.11.RELEASE/spring-boot-starter-web-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/2.3.11.RELEASE/spring-boot-starter-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/2.3.11.RELEASE/spring-boot-starter-json-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/2.3.11.RELEASE/spring-boot-starter-tomcat-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/5.2.15.RELEASE/spring-web-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/5.2.15.RELEASE/spring-beans-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/5.2.15.RELEASE/spring-webmvc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/5.2.15.RELEASE/spring-context-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/5.2.15.RELEASE/spring-expression-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-javanica/1.5.18/hystrix-javanica-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-core/1.5.18/hystrix-core-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/fastjson/1.2.67/fastjson-1.2.67.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-privilege/1.7.1/amos-feign-privilege-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/easyexcel/2.0.5/easyexcel-2.0.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cglib/cglib/3.1/cglib-3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ehcache/ehcache/3.8.1/ehcache-3.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-scratchpad/4.0.1/poi-scratchpad-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml/4.0.1/poi-ooxml-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/fr/opensagres/xdocreport/xdocreport/1.0.6/xdocreport-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml-schemas/4.0.1/poi-ooxml-schemas-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlbeans/xmlbeans/3.0.2/xmlbeans-3.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/ooxml-schemas/1.3/ooxml-schemas-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/joda-time/joda-time/2.10.4/joda-time-2.10.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/velocity/velocity-engine-core/2.1/velocity-engine-core-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/freemarker/freemarker/2.3.31/freemarker-2.3.31.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-websocket/2.3.11.RELEASE/spring-boot-starter-websocket-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-messaging/5.2.15.RELEASE/spring-messaging-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-websocket/5.2.15.RELEASE/spring-websocket-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-jexl/2.1.1/commons-jexl-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-stream/5.3.7.RELEASE/spring-integration-stream-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-core/5.3.7.RELEASE/spring-integration-core-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/5.2.15.RELEASE/spring-tx-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/reactor-core/3.3.17.RELEASE/reactor-core-3.3.17.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-mqtt/5.3.7.RELEASE/spring-integration-mqtt-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.4/org.eclipse.paho.client.mqttv3-1.2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-starter/2.0.7/knife4j-spring-boot-starter-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-autoconfigure/2.0.7/knife4j-spring-boot-autoconfigure-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring/2.0.7/knife4j-spring-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-annotations/2.0.7/knife4j-annotations-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-core/2.0.7/knife4j-core-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-models/1.5.22/swagger-models-1.5.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger-common/2.10.5/springfox-swagger-common-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-web/2.10.5/springfox-spring-web-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/classgraph/classgraph/4.1.7/classgraph-4.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mapstruct/mapstruct/1.3.1.Final/mapstruct-1.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-bean-validators/2.10.5/springfox-bean-validators-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-webmvc/2.10.5/springfox-spring-webmvc-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-ui/2.0.7/knife4j-spring-ui-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-systemctl/1.6.5/amos-feign-systemctl-1.6.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-annotations/1.5.13/swagger-annotations-1.5.13.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-data-elasticsearch/2.3.11.RELEASE/spring-boot-starter-data-elasticsearch-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-elasticsearch/4.0.9.RELEASE/spring-data-elasticsearch-4.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/transport-netty4-client/7.6.2/transport-netty4-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-buffer/4.1.65.Final/netty-buffer-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-codec/4.1.65.Final/netty-codec-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-codec-http/4.1.65.Final/netty-codec-http-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-common/4.1.65.Final/netty-common-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-handler/4.1.65.Final/netty-handler-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-resolver/4.1.65.Final/netty-resolver-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-transport/4.1.65.Final/netty-transport-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/client/elasticsearch-rest-high-level-client/7.6.2/elasticsearch-rest-high-level-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch/7.6.2/elasticsearch-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-core/7.6.2/elasticsearch-core-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-secure-sm/7.6.2/elasticsearch-secure-sm-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-x-content/7.6.2/elasticsearch-x-content-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-smile/2.11.4/jackson-dataformat-smile-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.11.4/jackson-dataformat-yaml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.11.4/jackson-dataformat-cbor-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-geo/7.6.2/elasticsearch-geo-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-core/8.4.0/lucene-core-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-analyzers-common/8.4.0/lucene-analyzers-common-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-backward-codecs/8.4.0/lucene-backward-codecs-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-grouping/8.4.0/lucene-grouping-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-highlighter/8.4.0/lucene-highlighter-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-join/8.4.0/lucene-join-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-memory/8.4.0/lucene-memory-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-misc/8.4.0/lucene-misc-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-queries/8.4.0/lucene-queries-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-queryparser/8.4.0/lucene-queryparser-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-sandbox/8.4.0/lucene-sandbox-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial/8.4.0/lucene-spatial-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial-extras/8.4.0/lucene-spatial-extras-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial3d/8.4.0/lucene-spatial3d-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-suggest/8.4.0/lucene-suggest-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-cli/7.6.2/elasticsearch-cli-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/jopt-simple/jopt-simple/5.0.2/jopt-simple-5.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/carrotsearch/hppc/0.8.1/hppc-0.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/tdunning/t-digest/3.2/t-digest-3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/jna/4.5.1/jna-4.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/client/elasticsearch-rest-client/7.6.2/elasticsearch-rest-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpasyncclient/4.1.4/httpasyncclient-4.1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore-nio/4.4.14/httpcore-nio-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/mapper-extras-client/7.6.2/mapper-extras-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/parent-join-client/7.6.2/parent-join-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/aggs-matrix-stats-client/7.6.2/aggs-matrix-stats-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/rank-eval-client/7.6.2/rank-eval-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/lang-mustache-client/7.6.2/lang-mustache-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/spullara/mustache/java/compiler/0.9.6/compiler-0.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-base/3.0.3/easypoi-base-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-web/3.0.3/easypoi-web-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-annotation/3.0.3/easypoi-annotation-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-rule/1.7.1/amos-component-rule-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-foundation/1.1.21/tyboot-core-foundation-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/belerweb/pinyin4j/2.5.0/pinyin4j-2.5.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/2.3.11.RELEASE/spring-boot-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/2.3.11.RELEASE/spring-boot-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/esotericsoftware/reflectasm/reflectasm/1.09/reflectasm-1.09.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/jhlabs/filters/2.0.235/filters-2.0.235.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-emq/1.1.21/tyboot-component-emq-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-hystrix/2.2.5.RELEASE/spring-cloud-netflix-hystrix-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-client/1.9.25/eureka-client-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-eventbus/0.3.0/netflix-eventbus-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-infix/0.3.0/netflix-infix-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math/2.2/commons-math-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/servo/servo-core/0.12.21/servo-core-0.12.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-core/1.19.1/jersey-core-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/contribs/jersey-apache-client4/1.19.1/jersey-apache-client4-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/inject/guice/4.1.0/guice-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-core/1.9.25/eureka-core-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/woodstox/woodstox-core/5.3.0/woodstox-core-5.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-cache/1.1.21/tyboot-component-cache-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-redis/1.4.5.RELEASE/spring-boot-starter-redis-1.4.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-redis/2.3.9.RELEASE/spring-data-redis-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-keyvalue/2.3.9.RELEASE/spring-data-keyvalue-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-oxm/5.2.15.RELEASE/spring-oxm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/redis/clients/jedis/3.3.0/jedis-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-pool2/2.8.1/commons-pool2-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-data-jpa/2.3.11.RELEASE/spring-boot-starter-data-jpa-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/2.3.11.RELEASE/spring-boot-starter-aop-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/5.2.15.RELEASE/spring-aop-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/2.3.11.RELEASE/spring-boot-starter-jdbc-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/5.2.15.RELEASE/spring-jdbc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/transaction/jakarta.transaction-api/1.3.3/jakarta.transaction-api-1.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/persistence/jakarta.persistence-api/2.2.3/jakarta.persistence-api-2.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/hibernate-core/5.4.31.Final/hibernate-core-5.4.31.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/jandex/2.2.3.Final/jandex-2.2.3.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/dom4j/dom4j/2.1.3/dom4j-2.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/common/hibernate-commons-annotations/5.1.2.Final/hibernate-commons-annotations-5.1.2.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-jpa/2.3.9.RELEASE/spring-data-jpa-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/2.3.9.RELEASE/spring-data-commons-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-orm/5.2.15.RELEASE/spring-orm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/5.2.15.RELEASE/spring-context-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/5.2.15.RELEASE/spring-tx-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/5.2.15.RELEASE/spring-beans-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aspects/5.2.15.RELEASE/spring-aspects-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/fastjson/1.2.15/fastjson-1.2.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/quartz-scheduler/quartz/2.3.2/quartz-2.3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/mchange/mchange-commons-java/0.2.15/mchange-commons-java-0.2.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/core/3.3.0/core-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/javase/3.3.0/javase-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/beust/jcommander/1.48/jcommander-1.48.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jai-imageio/jai-imageio-core/1.3.1/jai-imageio-core-1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/json-lib/json-lib/2.4/json-lib-2.4-jdk15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-beanutils/commons-beanutils/1.8.0/commons-beanutils-1.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/ezmorph/ezmorph/1.0.6/ezmorph-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/assertj/assertj-core/3.11.1/assertj-core-3.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-scratchpad/3.15/poi-scratchpad-3.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi/3.15/poi-3.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-collections4/4.1/commons-collections4-4.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/fr/opensagres/xdocreport/xdocreport/1.0.6/xdocreport-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tika/tika-core/1.13/tika-core-1.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tika/tika-parsers/1.13/tika-parsers-1.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/gagravarr/vorbis-java-tika/0.8/vorbis-java-tika-0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/healthmarketscience/jackcess/jackcess/2.1.3/jackcess-2.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/healthmarketscience/jackcess/jackcess-encrypt/2.1.1/jackcess-encrypt-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sourceforge/jmatio/jmatio/1.0/jmatio-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/james/apache-mime4j-core/0.7.2/apache-mime4j-core-0.7.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/james/apache-mime4j-dom/0.7.2/apache-mime4j-dom-0.7.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/tukaani/xz/1.5/xz-1.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.14/commons-codec-1.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/pdfbox/2.0.1/pdfbox-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/fontbox/2.0.1/fontbox-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/pdfbox-tools/2.0.1/pdfbox-tools-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/pdfbox-debugger/2.0.1/pdfbox-debugger-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/jempbox/1.8.12/jempbox-1.8.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcmail-jdk15on/1.54/bcmail-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcpkix-jdk15on/1.54/bcpkix-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/mp4parser/isoparser/1.1.18/isoparser-1.1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/drewnoakes/metadata-extractor/2.8.1/metadata-extractor-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/adobe/xmp/xmpcore/5.1.2/xmpcore-5.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/de/l3s/boilerpipe/boilerpipe/1.1.0/boilerpipe-1.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/rometools/rome/1.5.1/rome-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/rometools/rome-utils/1.5.1/rome-utils-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/gagravarr/vorbis-java-core/0.8/vorbis-java-core-0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/juniversalchardet/juniversalchardet/1.0.3/juniversalchardet-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codelibs/jhighlight/1.0.2/jhighlight-1.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/pff/java-libpst/0.8.1/java-libpst-0.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/junrar/junrar/0.7/junrar-0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-vfs2/2.0/commons-vfs2-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/maven/scm/maven-scm-api/1.4/maven-scm-api-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/maven/scm/maven-scm-provider-svnexe/1.4/maven-scm-provider-svnexe-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/maven/scm/maven-scm-provider-svn-commons/1.4/maven-scm-provider-svn-commons-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/regexp/regexp/1.3/regexp-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-rs-client/3.0.3/cxf-rt-rs-client-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-transports-http/3.0.3/cxf-rt-transports-http-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-core/3.0.3/cxf-core-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/woodstox-core-asl/4.4.1/woodstox-core-asl-4.4.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/ws/xmlschema/xmlschema-core/2.1.0/xmlschema-core-2.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-frontend-jaxrs/3.0.3/cxf-rt-frontend-jaxrs-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/javax.ws.rs-api/2.0.1/javax.ws.rs-api-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/opennlp/opennlp-tools/1.5.3/opennlp-tools-1.5.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/opennlp/opennlp-maxent/3.0.3/opennlp-maxent-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/jwordnet/jwnl/1.3.3/jwnl-1.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-io/commons-io/2.4/commons-io-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/json/json/20140107/json-20140107.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/netcdf4/4.5.5/netcdf4-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/jcip/jcip-annotations/1.0/jcip-annotations-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/java/dev/jna/jna/4.1.0/jna-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/grib/4.5.5/grib-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/protobuf/protobuf-java/3.12.2/protobuf-java-3.12.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/jj2000/5.2/jj2000-5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/itadaki/bzip2/0.9.1/bzip2-0.9.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/cdm/4.5.5/cdm-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/udunits/4.5.5/udunits-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/ehcache/ehcache-core/2.6.2/ehcache-core-2.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/httpservices/4.5.5/httpservices-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-csv/1.0/commons-csv-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-utility/0.6/sis-utility-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/storage/sis-netcdf/0.6/sis-netcdf-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/storage/sis-storage/0.6/sis-storage-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-referencing/0.6/sis-referencing-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-metadata/0.6/sis-metadata-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/opengis/geoapi/3.0.0/geoapi-3.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/measure/jsr-275/0.9.3/jsr-275-0.9.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-mail/2.3.11.RELEASE/spring-boot-starter-mail-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/2.3.11.RELEASE/spring-boot-starter-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context-support/5.2.15.RELEASE/spring-context-support-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/mail/jakarta.mail/1.6.7/jakarta.mail-1.6.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/jpush/api/jpush-client/3.3.10/jpush-client-3.3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/jpush/api/jiguang-common/1.1.3/jiguang-common-1.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-all/4.1.65.Final/netty-all-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/hutool/hutool-all/5.5.1/hutool-all-5.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/liquibase/liquibase-core/4.4.3/liquibase-core-4.4.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-event/1.1.20/tyboot-component-event-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/2.3.11.RELEASE/spring-boot-starter-logging-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-mock/2.0.8/spring-mock-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/junit/junit/4.13.2/junit-4.13.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-rdbms/1.1.20/tyboot-core-rdbms-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-restful/1.1.20/tyboot-core-restful-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-auth/1.1.20/tyboot-core-auth-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.2/mybatis-spring-boot-starter-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.2/mybatis-spring-boot-autoconfigure-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis-spring/2.0.4/mybatis-spring-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itextpdf/5.5.13/itextpdf-5.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/pagehelper/pagehelper/5.1.10/pagehelper-5.1.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jsqlparser/jsqlparser/2.0/jsqlparser-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-rule/1.7.0/amos-feign-rule-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-feign/1.7.0/amos-component-feign-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-openfeign/2.2.5.RELEASE/spring-cloud-starter-openfeign-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-openfeign-core/2.2.5.RELEASE/spring-cloud-openfeign-core-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-core/10.10.1/feign-core-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-slf4j/10.10.1/feign-slf4j-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-hystrix/10.10.1/feign-hystrix-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/brave/brave/5.12.3/brave-5.12.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter-brave/2.15.0/zipkin-reporter-brave-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter/2.15.0/zipkin-reporter-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/zipkin2/zipkin/2.21.1/zipkin-2.21.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter/2.2.5.RELEASE/spring-cloud-starter-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/5.3.9.RELEASE/spring-security-crypto-5.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-commons/2.2.5.RELEASE/spring-cloud-commons-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-rsa/1.0.9.RELEASE/spring-security-rsa-1.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-actuator/2.3.11.RELEASE/spring-boot-starter-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator-autoconfigure/2.3.11.RELEASE/spring-boot-actuator-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator/2.3.11.RELEASE/spring-boot-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-core/1.5.14/micrometer-core-1.5.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-freemarker/2.3.11.RELEASE/spring-boot-starter-freemarker-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-servlet/1.19.1/jersey-servlet-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-server/1.19.1/jersey-server-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-client/1.19.1/jersey-client-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/archaius/archaius-core/0.7.6/archaius-core-0.7.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.4/jackson-dataformat-xml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.4/jackson-module-jaxb-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-archaius/2.2.5.RELEASE/spring-cloud-starter-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-ribbon/2.2.5.RELEASE/spring-cloud-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-archaius/2.2.5.RELEASE/spring-cloud-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-ribbon/2.2.5.RELEASE/spring-cloud-starter-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon/2.3.0/ribbon-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-transport/2.3.0/ribbon-transport-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-core/2.3.0/ribbon-core-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-httpclient/2.3.0/ribbon-httpclient-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-commons-util/0.3.0/netflix-commons-util-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-loadbalancer/2.3.0/ribbon-loadbalancer-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxjava/1.3.8/rxjava-1.3.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-loadbalancer/2.2.5.RELEASE/spring-cloud-starter-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-loadbalancer/2.2.5.RELEASE/spring-cloud-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-validation/2.3.11.RELEASE/spring-boot-starter-validation-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/validator/hibernate-validator/6.1.7.Final/hibernate-validator-6.1.7.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/addons/reactor-extra/3.3.6.RELEASE/reactor-extra-3.3.6.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-cache/2.3.11.RELEASE/spring-boot-starter-cache-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-eureka/2.3.0/ribbon-eureka-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/2.3.4/jaxb-runtime-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/2.3.4/txw2-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/2.3.11.RELEASE/spring-boot-starter-web-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/2.3.11.RELEASE/spring-boot-starter-json-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/2.3.11.RELEASE/spring-boot-starter-tomcat-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/5.2.15.RELEASE/spring-web-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/5.2.15.RELEASE/spring-webmvc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/5.2.15.RELEASE/spring-expression-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-javanica/1.5.18/hystrix-javanica-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-core/1.5.18/hystrix-core-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-privilege/1.7.1/amos-feign-privilege-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/easyexcel/2.0.5/easyexcel-2.0.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cglib/cglib/3.1/cglib-3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ehcache/ehcache/3.8.1/ehcache-3.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml/4.0.1/poi-ooxml-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml-schemas/4.0.1/poi-ooxml-schemas-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlbeans/xmlbeans/3.0.2/xmlbeans-3.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/ooxml-schemas/1.3/ooxml-schemas-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/joda-time/joda-time/2.10.4/joda-time-2.10.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/velocity/velocity-engine-core/2.1/velocity-engine-core-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/freemarker/freemarker/2.3.31/freemarker-2.3.31.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-websocket/2.3.11.RELEASE/spring-boot-starter-websocket-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-messaging/5.2.15.RELEASE/spring-messaging-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-websocket/5.2.15.RELEASE/spring-websocket-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-jexl/2.1.1/commons-jexl-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-stream/5.3.7.RELEASE/spring-integration-stream-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-core/5.3.7.RELEASE/spring-integration-core-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/reactor-core/3.3.17.RELEASE/reactor-core-3.3.17.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-mqtt/5.3.7.RELEASE/spring-integration-mqtt-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.4/org.eclipse.paho.client.mqttv3-1.2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-starter/2.0.7/knife4j-spring-boot-starter-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-autoconfigure/2.0.7/knife4j-spring-boot-autoconfigure-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring/2.0.7/knife4j-spring-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-annotations/2.0.7/knife4j-annotations-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-core/2.0.7/knife4j-core-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-models/1.5.22/swagger-models-1.5.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger-common/2.10.5/springfox-swagger-common-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-web/2.10.5/springfox-spring-web-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/classgraph/classgraph/4.1.7/classgraph-4.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mapstruct/mapstruct/1.3.1.Final/mapstruct-1.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-bean-validators/2.10.5/springfox-bean-validators-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-webmvc/2.10.5/springfox-spring-webmvc-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-ui/2.0.7/knife4j-spring-ui-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-systemctl/1.6.5/amos-feign-systemctl-1.6.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-annotations/1.5.13/swagger-annotations-1.5.13.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-web/3.0.3/easypoi-web-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-annotation/3.0.3/easypoi-annotation-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-rule/1.7.1/amos-component-rule-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-foundation/1.1.21/tyboot-core-foundation-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/belerweb/pinyin4j/2.5.0/pinyin4j-2.5.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/2.3.11.RELEASE/spring-boot-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/2.3.11.RELEASE/spring-boot-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/esotericsoftware/reflectasm/reflectasm/1.09/reflectasm-1.09.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/jhlabs/filters/2.0.235/filters-2.0.235.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-emq/1.1.21/tyboot-component-emq-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-hystrix/2.2.5.RELEASE/spring-cloud-netflix-hystrix-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-client/1.9.25/eureka-client-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-eventbus/0.3.0/netflix-eventbus-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-infix/0.3.0/netflix-infix-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math/2.2/commons-math-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/servo/servo-core/0.12.21/servo-core-0.12.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-core/1.19.1/jersey-core-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/contribs/jersey-apache-client4/1.19.1/jersey-apache-client4-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/inject/guice/4.1.0/guice-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-core/1.9.25/eureka-core-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/woodstox/woodstox-core/5.3.0/woodstox-core-5.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-cache/1.1.21/tyboot-component-cache-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-redis/1.4.5.RELEASE/spring-boot-starter-redis-1.4.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-redis/2.3.9.RELEASE/spring-data-redis-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-keyvalue/2.3.9.RELEASE/spring-data-keyvalue-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-oxm/5.2.15.RELEASE/spring-oxm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/redis/clients/jedis/3.3.0/jedis-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-pool2/2.8.1/commons-pool2-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-data-jpa/2.3.11.RELEASE/spring-boot-starter-data-jpa-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/2.3.11.RELEASE/spring-boot-starter-aop-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/5.2.15.RELEASE/spring-aop-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/2.3.11.RELEASE/spring-boot-starter-jdbc-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/5.2.15.RELEASE/spring-jdbc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/transaction/jakarta.transaction-api/1.3.3/jakarta.transaction-api-1.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/persistence/jakarta.persistence-api/2.2.3/jakarta.persistence-api-2.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/hibernate-core/5.4.31.Final/hibernate-core-5.4.31.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/jandex/2.2.3.Final/jandex-2.2.3.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/dom4j/dom4j/2.1.3/dom4j-2.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/common/hibernate-commons-annotations/5.1.2.Final/hibernate-commons-annotations-5.1.2.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-jpa/2.3.9.RELEASE/spring-data-jpa-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/2.3.9.RELEASE/spring-data-commons-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-orm/5.2.15.RELEASE/spring-orm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/5.2.15.RELEASE/spring-context-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/5.2.15.RELEASE/spring-tx-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/5.2.15.RELEASE/spring-beans-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aspects/5.2.15.RELEASE/spring-aspects-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/quartz-scheduler/quartz/2.3.2/quartz-2.3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/mchange/mchange-commons-java/0.2.15/mchange-commons-java-0.2.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/core/3.3.0/core-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/javase/3.3.0/javase-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/beust/jcommander/1.48/jcommander-1.48.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jai-imageio/jai-imageio-core/1.3.1/jai-imageio-core-1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/json-lib/json-lib/2.4/json-lib-2.4-jdk15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-beanutils/commons-beanutils/1.8.0/commons-beanutils-1.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/ezmorph/ezmorph/1.0.6/ezmorph-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/assertj/assertj-core/3.11.1/assertj-core-3.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-scratchpad/3.15/poi-scratchpad-3.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/fr/opensagres/xdocreport/xdocreport/1.0.6/xdocreport-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tika/tika-core/1.13/tika-core-1.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tika/tika-parsers/1.13/tika-parsers-1.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/gagravarr/vorbis-java-tika/0.8/vorbis-java-tika-0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/healthmarketscience/jackcess/jackcess/2.1.3/jackcess-2.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/healthmarketscience/jackcess/jackcess-encrypt/2.1.1/jackcess-encrypt-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sourceforge/jmatio/jmatio/1.0/jmatio-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/james/apache-mime4j-core/0.7.2/apache-mime4j-core-0.7.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/james/apache-mime4j-dom/0.7.2/apache-mime4j-dom-0.7.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/tukaani/xz/1.5/xz-1.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.14/commons-codec-1.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/pdfbox/2.0.1/pdfbox-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/fontbox/2.0.1/fontbox-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/pdfbox-tools/2.0.1/pdfbox-tools-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/pdfbox-debugger/2.0.1/pdfbox-debugger-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/jempbox/1.8.12/jempbox-1.8.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcmail-jdk15on/1.54/bcmail-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcpkix-jdk15on/1.54/bcpkix-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/mp4parser/isoparser/1.1.18/isoparser-1.1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/drewnoakes/metadata-extractor/2.8.1/metadata-extractor-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/adobe/xmp/xmpcore/5.1.2/xmpcore-5.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/de/l3s/boilerpipe/boilerpipe/1.1.0/boilerpipe-1.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/rometools/rome/1.5.1/rome-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/rometools/rome-utils/1.5.1/rome-utils-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/gagravarr/vorbis-java-core/0.8/vorbis-java-core-0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/juniversalchardet/juniversalchardet/1.0.3/juniversalchardet-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codelibs/jhighlight/1.0.2/jhighlight-1.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/pff/java-libpst/0.8.1/java-libpst-0.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/junrar/junrar/0.7/junrar-0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-vfs2/2.0/commons-vfs2-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/maven/scm/maven-scm-api/1.4/maven-scm-api-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/maven/scm/maven-scm-provider-svnexe/1.4/maven-scm-provider-svnexe-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/maven/scm/maven-scm-provider-svn-commons/1.4/maven-scm-provider-svn-commons-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/regexp/regexp/1.3/regexp-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-rs-client/3.0.3/cxf-rt-rs-client-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-transports-http/3.0.3/cxf-rt-transports-http-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-core/3.0.3/cxf-core-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/woodstox-core-asl/4.4.1/woodstox-core-asl-4.4.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/ws/xmlschema/xmlschema-core/2.1.0/xmlschema-core-2.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-frontend-jaxrs/3.0.3/cxf-rt-frontend-jaxrs-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/javax.ws.rs-api/2.0.1/javax.ws.rs-api-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/opennlp/opennlp-tools/1.5.3/opennlp-tools-1.5.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/opennlp/opennlp-maxent/3.0.3/opennlp-maxent-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/jwordnet/jwnl/1.3.3/jwnl-1.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-io/commons-io/2.4/commons-io-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/json/json/20140107/json-20140107.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/netcdf4/4.5.5/netcdf4-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/jcip/jcip-annotations/1.0/jcip-annotations-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/java/dev/jna/jna/4.1.0/jna-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/grib/4.5.5/grib-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/protobuf/protobuf-java/3.12.2/protobuf-java-3.12.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/jj2000/5.2/jj2000-5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/itadaki/bzip2/0.9.1/bzip2-0.9.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/cdm/4.5.5/cdm-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/udunits/4.5.5/udunits-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/ehcache/ehcache-core/2.6.2/ehcache-core-2.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/httpservices/4.5.5/httpservices-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-csv/1.0/commons-csv-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-utility/0.6/sis-utility-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/storage/sis-netcdf/0.6/sis-netcdf-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/storage/sis-storage/0.6/sis-storage-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-referencing/0.6/sis-referencing-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-metadata/0.6/sis-metadata-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/opengis/geoapi/3.0.0/geoapi-3.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/measure/jsr-275/0.9.3/jsr-275-0.9.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-mail/2.3.11.RELEASE/spring-boot-starter-mail-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/2.3.11.RELEASE/spring-boot-starter-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context-support/5.2.15.RELEASE/spring-context-support-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/mail/jakarta.mail/1.6.7/jakarta.mail-1.6.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/liquibase/liquibase-core/4.4.3/liquibase-core-4.4.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/jpush/api/jpush-client/3.3.10/jpush-client-3.3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/jpush/api/jiguang-common/1.1.3/jiguang-common-1.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-all/4.1.65.Final/netty-all-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-event/1.1.20/tyboot-component-event-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/2.3.11.RELEASE/spring-boot-starter-logging-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-mock/2.0.8/spring-mock-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/junit/junit/4.13.2/junit-4.13.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-rdbms/1.1.20/tyboot-core-rdbms-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-restful/1.1.20/tyboot-core-restful-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-auth/1.1.20/tyboot-core-auth-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.2/mybatis-spring-boot-starter-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.2/mybatis-spring-boot-autoconfigure-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis-spring/2.0.4/mybatis-spring-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-base/4.0.0/easypoi-base-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi/4.0.0/poi-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-collections4/4.2/commons-collections4-4.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ognl/ognl/3.2.6/ognl-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itextpdf/5.5.13/itextpdf-5.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/pagehelper/pagehelper/5.1.10/pagehelper-5.1.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jsqlparser/jsqlparser/2.0/jsqlparser-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-rule/1.7.0/amos-feign-rule-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-feign/1.7.0/amos-component-feign-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-openfeign/2.2.5.RELEASE/spring-cloud-starter-openfeign-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-openfeign-core/2.2.5.RELEASE/spring-cloud-openfeign-core-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-core/10.10.1/feign-core-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-slf4j/10.10.1/feign-slf4j-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-hystrix/10.10.1/feign-hystrix-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/brave/brave/5.12.3/brave-5.12.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter-brave/2.15.0/zipkin-reporter-brave-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter/2.15.0/zipkin-reporter-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/zipkin2/zipkin/2.21.1/zipkin-2.21.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter/2.2.5.RELEASE/spring-cloud-starter-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/5.3.9.RELEASE/spring-security-crypto-5.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-commons/2.2.5.RELEASE/spring-cloud-commons-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-rsa/1.0.9.RELEASE/spring-security-rsa-1.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-actuator/2.3.11.RELEASE/spring-boot-starter-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator-autoconfigure/2.3.11.RELEASE/spring-boot-actuator-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator/2.3.11.RELEASE/spring-boot-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-core/1.5.14/micrometer-core-1.5.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-freemarker/2.3.11.RELEASE/spring-boot-starter-freemarker-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-servlet/1.19.1/jersey-servlet-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-server/1.19.1/jersey-server-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-client/1.19.1/jersey-client-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/archaius/archaius-core/0.7.6/archaius-core-0.7.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.4/jackson-dataformat-xml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.4/jackson-module-jaxb-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-archaius/2.2.5.RELEASE/spring-cloud-starter-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-ribbon/2.2.5.RELEASE/spring-cloud-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-archaius/2.2.5.RELEASE/spring-cloud-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-ribbon/2.2.5.RELEASE/spring-cloud-starter-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon/2.3.0/ribbon-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-transport/2.3.0/ribbon-transport-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-core/2.3.0/ribbon-core-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-httpclient/2.3.0/ribbon-httpclient-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-commons-util/0.3.0/netflix-commons-util-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-loadbalancer/2.3.0/ribbon-loadbalancer-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxjava/1.3.8/rxjava-1.3.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-loadbalancer/2.2.5.RELEASE/spring-cloud-starter-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-loadbalancer/2.2.5.RELEASE/spring-cloud-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-validation/2.3.11.RELEASE/spring-boot-starter-validation-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/validator/hibernate-validator/6.1.7.Final/hibernate-validator-6.1.7.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/addons/reactor-extra/3.3.6.RELEASE/reactor-extra-3.3.6.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-cache/2.3.11.RELEASE/spring-boot-starter-cache-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-eureka/2.3.0/ribbon-eureka-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/2.3.4/jaxb-runtime-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/2.3.4/txw2-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/2.3.11.RELEASE/spring-boot-starter-web-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/2.3.11.RELEASE/spring-boot-starter-json-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/2.3.11.RELEASE/spring-boot-starter-tomcat-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/5.2.15.RELEASE/spring-web-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/5.2.15.RELEASE/spring-webmvc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/5.2.15.RELEASE/spring-expression-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-javanica/1.5.18/hystrix-javanica-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-core/1.5.18/hystrix-core-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/fastjson/1.2.67/fastjson-1.2.67.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-privilege/1.7.1/amos-feign-privilege-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/easyexcel/2.0.5/easyexcel-2.0.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cglib/cglib/3.1/cglib-3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ehcache/ehcache/3.8.1/ehcache-3.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml/4.0.1/poi-ooxml-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml-schemas/4.0.1/poi-ooxml-schemas-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlbeans/xmlbeans/3.0.2/xmlbeans-3.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/ooxml-schemas/1.3/ooxml-schemas-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/joda-time/joda-time/2.10.4/joda-time-2.10.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/velocity/velocity-engine-core/2.1/velocity-engine-core-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/freemarker/freemarker/2.3.31/freemarker-2.3.31.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-websocket/2.3.11.RELEASE/spring-boot-starter-websocket-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-messaging/5.2.15.RELEASE/spring-messaging-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-websocket/5.2.15.RELEASE/spring-websocket-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-jexl/2.1.1/commons-jexl-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-stream/5.3.7.RELEASE/spring-integration-stream-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-core/5.3.7.RELEASE/spring-integration-core-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/reactor-core/3.3.17.RELEASE/reactor-core-3.3.17.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-mqtt/5.3.7.RELEASE/spring-integration-mqtt-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.4/org.eclipse.paho.client.mqttv3-1.2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-starter/2.0.7/knife4j-spring-boot-starter-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-autoconfigure/2.0.7/knife4j-spring-boot-autoconfigure-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring/2.0.7/knife4j-spring-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-annotations/2.0.7/knife4j-annotations-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-core/2.0.7/knife4j-core-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-models/1.5.22/swagger-models-1.5.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger-common/2.10.5/springfox-swagger-common-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-web/2.10.5/springfox-spring-web-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/classgraph/classgraph/4.1.7/classgraph-4.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mapstruct/mapstruct/1.3.1.Final/mapstruct-1.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-bean-validators/2.10.5/springfox-bean-validators-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-webmvc/2.10.5/springfox-spring-webmvc-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-ui/2.0.7/knife4j-spring-ui-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-systemctl/1.6.5/amos-feign-systemctl-1.6.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-annotations/1.5.13/swagger-annotations-1.5.13.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-base/3.0.3/easypoi-base-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-web/3.0.3/easypoi-web-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-annotation/3.0.3/easypoi-annotation-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-rule/1.7.1/amos-component-rule-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-foundation/1.1.21/tyboot-core-foundation-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/belerweb/pinyin4j/2.5.0/pinyin4j-2.5.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/2.3.11.RELEASE/spring-boot-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/2.3.11.RELEASE/spring-boot-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/esotericsoftware/reflectasm/reflectasm/1.09/reflectasm-1.09.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/jhlabs/filters/2.0.235/filters-2.0.235.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-emq/1.1.21/tyboot-component-emq-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-hystrix/2.2.5.RELEASE/spring-cloud-netflix-hystrix-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-client/1.9.25/eureka-client-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-eventbus/0.3.0/netflix-eventbus-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-infix/0.3.0/netflix-infix-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math/2.2/commons-math-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/servo/servo-core/0.12.21/servo-core-0.12.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-core/1.19.1/jersey-core-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/contribs/jersey-apache-client4/1.19.1/jersey-apache-client4-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/inject/guice/4.1.0/guice-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-core/1.9.25/eureka-core-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/woodstox/woodstox-core/5.3.0/woodstox-core-5.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-cache/1.1.21/tyboot-component-cache-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-redis/1.4.5.RELEASE/spring-boot-starter-redis-1.4.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-redis/2.3.9.RELEASE/spring-data-redis-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-keyvalue/2.3.9.RELEASE/spring-data-keyvalue-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-oxm/5.2.15.RELEASE/spring-oxm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/redis/clients/jedis/3.3.0/jedis-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-pool2/2.8.1/commons-pool2-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-data-jpa/2.3.11.RELEASE/spring-boot-starter-data-jpa-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/2.3.11.RELEASE/spring-boot-starter-aop-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/5.2.15.RELEASE/spring-aop-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/2.3.11.RELEASE/spring-boot-starter-jdbc-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/5.2.15.RELEASE/spring-jdbc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/transaction/jakarta.transaction-api/1.3.3/jakarta.transaction-api-1.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/persistence/jakarta.persistence-api/2.2.3/jakarta.persistence-api-2.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/hibernate-core/5.4.31.Final/hibernate-core-5.4.31.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/jandex/2.2.3.Final/jandex-2.2.3.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/dom4j/dom4j/2.1.3/dom4j-2.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/common/hibernate-commons-annotations/5.1.2.Final/hibernate-commons-annotations-5.1.2.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-jpa/2.3.9.RELEASE/spring-data-jpa-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/2.3.9.RELEASE/spring-data-commons-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-orm/5.2.15.RELEASE/spring-orm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/5.2.15.RELEASE/spring-context-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/5.2.15.RELEASE/spring-tx-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/5.2.15.RELEASE/spring-beans-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aspects/5.2.15.RELEASE/spring-aspects-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/fastjson/1.2.15/fastjson-1.2.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/quartz-scheduler/quartz/2.3.2/quartz-2.3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/mchange/mchange-commons-java/0.2.15/mchange-commons-java-0.2.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/core/3.3.0/core-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/javase/3.3.0/javase-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/beust/jcommander/1.48/jcommander-1.48.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jai-imageio/jai-imageio-core/1.3.1/jai-imageio-core-1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/json-lib/json-lib/2.4/json-lib-2.4-jdk15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-beanutils/commons-beanutils/1.8.0/commons-beanutils-1.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/ezmorph/ezmorph/1.0.6/ezmorph-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/assertj/assertj-core/3.11.1/assertj-core-3.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-scratchpad/3.15/poi-scratchpad-3.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi/3.15/poi-3.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-collections4/4.1/commons-collections4-4.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/fr/opensagres/xdocreport/xdocreport/1.0.6/xdocreport-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tika/tika-core/1.13/tika-core-1.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tika/tika-parsers/1.13/tika-parsers-1.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/gagravarr/vorbis-java-tika/0.8/vorbis-java-tika-0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/healthmarketscience/jackcess/jackcess/2.1.3/jackcess-2.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/healthmarketscience/jackcess/jackcess-encrypt/2.1.1/jackcess-encrypt-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sourceforge/jmatio/jmatio/1.0/jmatio-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/james/apache-mime4j-core/0.7.2/apache-mime4j-core-0.7.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/james/apache-mime4j-dom/0.7.2/apache-mime4j-dom-0.7.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/tukaani/xz/1.5/xz-1.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.14/commons-codec-1.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/pdfbox/2.0.1/pdfbox-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/fontbox/2.0.1/fontbox-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/pdfbox-tools/2.0.1/pdfbox-tools-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/pdfbox-debugger/2.0.1/pdfbox-debugger-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/jempbox/1.8.12/jempbox-1.8.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcmail-jdk15on/1.54/bcmail-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcpkix-jdk15on/1.54/bcpkix-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/mp4parser/isoparser/1.1.18/isoparser-1.1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/drewnoakes/metadata-extractor/2.8.1/metadata-extractor-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/adobe/xmp/xmpcore/5.1.2/xmpcore-5.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/de/l3s/boilerpipe/boilerpipe/1.1.0/boilerpipe-1.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/rometools/rome/1.5.1/rome-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/rometools/rome-utils/1.5.1/rome-utils-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/gagravarr/vorbis-java-core/0.8/vorbis-java-core-0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/juniversalchardet/juniversalchardet/1.0.3/juniversalchardet-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codelibs/jhighlight/1.0.2/jhighlight-1.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/pff/java-libpst/0.8.1/java-libpst-0.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/junrar/junrar/0.7/junrar-0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-vfs2/2.0/commons-vfs2-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/maven/scm/maven-scm-api/1.4/maven-scm-api-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/maven/scm/maven-scm-provider-svnexe/1.4/maven-scm-provider-svnexe-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/maven/scm/maven-scm-provider-svn-commons/1.4/maven-scm-provider-svn-commons-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/regexp/regexp/1.3/regexp-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-rs-client/3.0.3/cxf-rt-rs-client-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-transports-http/3.0.3/cxf-rt-transports-http-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-core/3.0.3/cxf-core-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/woodstox-core-asl/4.4.1/woodstox-core-asl-4.4.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/ws/xmlschema/xmlschema-core/2.1.0/xmlschema-core-2.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-frontend-jaxrs/3.0.3/cxf-rt-frontend-jaxrs-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/javax.ws.rs-api/2.0.1/javax.ws.rs-api-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/opennlp/opennlp-tools/1.5.3/opennlp-tools-1.5.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/opennlp/opennlp-maxent/3.0.3/opennlp-maxent-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/jwordnet/jwnl/1.3.3/jwnl-1.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-io/commons-io/2.4/commons-io-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/json/json/20140107/json-20140107.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/netcdf4/4.5.5/netcdf4-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/jcip/jcip-annotations/1.0/jcip-annotations-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/java/dev/jna/jna/4.1.0/jna-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/grib/4.5.5/grib-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/protobuf/protobuf-java/3.12.2/protobuf-java-3.12.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/jj2000/5.2/jj2000-5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/itadaki/bzip2/0.9.1/bzip2-0.9.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/cdm/4.5.5/cdm-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/udunits/4.5.5/udunits-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/ehcache/ehcache-core/2.6.2/ehcache-core-2.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/httpservices/4.5.5/httpservices-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-csv/1.0/commons-csv-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-utility/0.6/sis-utility-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/storage/sis-netcdf/0.6/sis-netcdf-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/storage/sis-storage/0.6/sis-storage-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-referencing/0.6/sis-referencing-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-metadata/0.6/sis-metadata-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/opengis/geoapi/3.0.0/geoapi-3.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/measure/jsr-275/0.9.3/jsr-275-0.9.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-mail/2.3.11.RELEASE/spring-boot-starter-mail-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/2.3.11.RELEASE/spring-boot-starter-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context-support/5.2.15.RELEASE/spring-context-support-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/mail/jakarta.mail/1.6.7/jakarta.mail-1.6.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/jpush/api/jpush-client/3.3.10/jpush-client-3.3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/jpush/api/jiguang-common/1.1.3/jiguang-common-1.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-all/4.1.65.Final/netty-all-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/hutool/hutool-all/5.5.1/hutool-all-5.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/liquibase/liquibase-core/4.4.3/liquibase-core-4.4.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-event/1.1.20/tyboot-component-event-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/2.3.11.RELEASE/spring-boot-starter-logging-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-mock/2.0.8/spring-mock-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/junit/junit/4.13.2/junit-4.13.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-rdbms/1.1.20/tyboot-core-rdbms-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-restful/1.1.20/tyboot-core-restful-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-auth/1.1.20/tyboot-core-auth-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.2/mybatis-spring-boot-starter-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.2/mybatis-spring-boot-autoconfigure-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis-spring/2.0.4/mybatis-spring-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itextpdf/5.5.13/itextpdf-5.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/pagehelper/pagehelper/5.1.10/pagehelper-5.1.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jsqlparser/jsqlparser/2.0/jsqlparser-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-rule/1.7.0/amos-feign-rule-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-feign/1.7.0/amos-component-feign-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-openfeign/2.2.5.RELEASE/spring-cloud-starter-openfeign-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-openfeign-core/2.2.5.RELEASE/spring-cloud-openfeign-core-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-core/10.10.1/feign-core-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-slf4j/10.10.1/feign-slf4j-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-hystrix/10.10.1/feign-hystrix-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/brave/brave/5.12.3/brave-5.12.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter-brave/2.15.0/zipkin-reporter-brave-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter/2.15.0/zipkin-reporter-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/zipkin2/zipkin/2.21.1/zipkin-2.21.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter/2.2.5.RELEASE/spring-cloud-starter-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/5.3.9.RELEASE/spring-security-crypto-5.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-commons/2.2.5.RELEASE/spring-cloud-commons-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-rsa/1.0.9.RELEASE/spring-security-rsa-1.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-actuator/2.3.11.RELEASE/spring-boot-starter-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator-autoconfigure/2.3.11.RELEASE/spring-boot-actuator-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator/2.3.11.RELEASE/spring-boot-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-core/1.5.14/micrometer-core-1.5.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-freemarker/2.3.11.RELEASE/spring-boot-starter-freemarker-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-servlet/1.19.1/jersey-servlet-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-server/1.19.1/jersey-server-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-client/1.19.1/jersey-client-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/archaius/archaius-core/0.7.6/archaius-core-0.7.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.4/jackson-dataformat-xml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.4/jackson-module-jaxb-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-archaius/2.2.5.RELEASE/spring-cloud-starter-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-ribbon/2.2.5.RELEASE/spring-cloud-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-archaius/2.2.5.RELEASE/spring-cloud-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-ribbon/2.2.5.RELEASE/spring-cloud-starter-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon/2.3.0/ribbon-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-transport/2.3.0/ribbon-transport-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-core/2.3.0/ribbon-core-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-httpclient/2.3.0/ribbon-httpclient-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-commons-util/0.3.0/netflix-commons-util-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-loadbalancer/2.3.0/ribbon-loadbalancer-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxjava/1.3.8/rxjava-1.3.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-loadbalancer/2.2.5.RELEASE/spring-cloud-starter-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-loadbalancer/2.2.5.RELEASE/spring-cloud-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-validation/2.3.11.RELEASE/spring-boot-starter-validation-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/validator/hibernate-validator/6.1.7.Final/hibernate-validator-6.1.7.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/addons/reactor-extra/3.3.6.RELEASE/reactor-extra-3.3.6.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-cache/2.3.11.RELEASE/spring-boot-starter-cache-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-eureka/2.3.0/ribbon-eureka-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/2.3.4/jaxb-runtime-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/2.3.4/txw2-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/2.3.11.RELEASE/spring-boot-starter-web-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/2.3.11.RELEASE/spring-boot-starter-json-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/2.3.11.RELEASE/spring-boot-starter-tomcat-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/5.2.15.RELEASE/spring-web-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/5.2.15.RELEASE/spring-webmvc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/5.2.15.RELEASE/spring-expression-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-javanica/1.5.18/hystrix-javanica-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-core/1.5.18/hystrix-core-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-privilege/1.7.1/amos-feign-privilege-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/easyexcel/2.0.5/easyexcel-2.0.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cglib/cglib/3.1/cglib-3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ehcache/ehcache/3.8.1/ehcache-3.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml/4.0.1/poi-ooxml-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml-schemas/4.0.1/poi-ooxml-schemas-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlbeans/xmlbeans/3.0.2/xmlbeans-3.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/ooxml-schemas/1.3/ooxml-schemas-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/joda-time/joda-time/2.10.4/joda-time-2.10.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/velocity/velocity-engine-core/2.1/velocity-engine-core-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/freemarker/freemarker/2.3.31/freemarker-2.3.31.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-websocket/2.3.11.RELEASE/spring-boot-starter-websocket-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-messaging/5.2.15.RELEASE/spring-messaging-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-websocket/5.2.15.RELEASE/spring-websocket-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-jexl/2.1.1/commons-jexl-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-stream/5.3.7.RELEASE/spring-integration-stream-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-core/5.3.7.RELEASE/spring-integration-core-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/reactor-core/3.3.17.RELEASE/reactor-core-3.3.17.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-mqtt/5.3.7.RELEASE/spring-integration-mqtt-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.4/org.eclipse.paho.client.mqttv3-1.2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-starter/2.0.7/knife4j-spring-boot-starter-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-autoconfigure/2.0.7/knife4j-spring-boot-autoconfigure-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring/2.0.7/knife4j-spring-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-annotations/2.0.7/knife4j-annotations-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-core/2.0.7/knife4j-core-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-models/1.5.22/swagger-models-1.5.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger-common/2.10.5/springfox-swagger-common-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-web/2.10.5/springfox-spring-web-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/classgraph/classgraph/4.1.7/classgraph-4.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mapstruct/mapstruct/1.3.1.Final/mapstruct-1.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-bean-validators/2.10.5/springfox-bean-validators-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-webmvc/2.10.5/springfox-spring-webmvc-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-ui/2.0.7/knife4j-spring-ui-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-systemctl/1.6.5/amos-feign-systemctl-1.6.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-annotations/1.5.13/swagger-annotations-1.5.13.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-event/1.1.20/tyboot-component-event-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/2.3.11.RELEASE/spring-boot-starter-aop-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/5.2.15.RELEASE/spring-aop-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/2.3.11.RELEASE/spring-boot-starter-logging-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-mock/2.0.8/spring-mock-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/log4j/log4j/1.2.12/log4j-1.2.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-rdbms/1.1.20/tyboot-core-rdbms-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-restful/1.1.20/tyboot-core-restful-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-auth/1.1.20/tyboot-core-auth-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/2.3.11.RELEASE/spring-boot-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/2.3.11.RELEASE/spring-boot-starter-jdbc-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/5.2.15.RELEASE/spring-jdbc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.2/mybatis-spring-boot-starter-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.2/mybatis-spring-boot-autoconfigure-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis-spring/2.0.4/mybatis-spring-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-base/4.0.0/easypoi-base-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi/4.0.0/poi-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.14/commons-codec-1.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-collections4/4.2/commons-collections4-4.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ognl/ognl/3.2.6/ognl-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-web/3.0.3/easypoi-web-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-annotation/3.0.3/easypoi-annotation-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itextpdf/5.5.13/itextpdf-5.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/core/3.3.0/core-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/pagehelper/pagehelper/5.1.10/pagehelper-5.1.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jsqlparser/jsqlparser/2.0/jsqlparser-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-rule/1.7.0/amos-feign-rule-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-foundation/1.1.21/tyboot-core-foundation-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/belerweb/pinyin4j/2.5.0/pinyin4j-2.5.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/2.3.11.RELEASE/spring-boot-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/esotericsoftware/reflectasm/reflectasm/1.09/reflectasm-1.09.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/jhlabs/filters/2.0.235/filters-2.0.235.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-feign/1.7.0/amos-component-feign-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-openfeign/2.2.5.RELEASE/spring-cloud-starter-openfeign-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-openfeign-core/2.2.5.RELEASE/spring-cloud-openfeign-core-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-io/commons-io/2.2/commons-io-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-core/10.10.1/feign-core-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-slf4j/10.10.1/feign-slf4j-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-hystrix/10.10.1/feign-hystrix-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-cache/1.1.21/tyboot-component-cache-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-redis/1.4.5.RELEASE/spring-boot-starter-redis-1.4.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-redis/2.3.9.RELEASE/spring-data-redis-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-keyvalue/2.3.9.RELEASE/spring-data-keyvalue-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/2.3.9.RELEASE/spring-data-commons-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-oxm/5.2.15.RELEASE/spring-oxm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/redis/clients/jedis/3.3.0/jedis-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-pool2/2.8.1/commons-pool2-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/brave/brave/5.12.3/brave-5.12.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter-brave/2.15.0/zipkin-reporter-brave-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter/2.15.0/zipkin-reporter-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/zipkin2/zipkin/2.21.1/zipkin-2.21.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter/2.2.5.RELEASE/spring-cloud-starter-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/5.3.9.RELEASE/spring-security-crypto-5.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-commons/2.2.5.RELEASE/spring-cloud-commons-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-rsa/1.0.9.RELEASE/spring-security-rsa-1.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcpkix-jdk15on/1.64/bcpkix-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcprov-jdk15on/1.64/bcprov-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-actuator/2.3.11.RELEASE/spring-boot-starter-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator-autoconfigure/2.3.11.RELEASE/spring-boot-actuator-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator/2.3.11.RELEASE/spring-boot-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-core/1.5.14/micrometer-core-1.5.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-freemarker/2.3.11.RELEASE/spring-boot-starter-freemarker-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context-support/5.2.15.RELEASE/spring-context-support-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-hystrix/2.2.5.RELEASE/spring-cloud-netflix-hystrix-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-client/1.9.25/eureka-client-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-eventbus/0.3.0/netflix-eventbus-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-infix/0.3.0/netflix-infix-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math/2.2/commons-math-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/servo/servo-core/0.12.21/servo-core-0.12.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-core/1.19.1/jersey-core-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/contribs/jersey-apache-client4/1.19.1/jersey-apache-client4-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/inject/guice/4.1.0/guice-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-servlet/1.19.1/jersey-servlet-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-server/1.19.1/jersey-server-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-client/1.19.1/jersey-client-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-core/1.9.25/eureka-core-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/woodstox/woodstox-core/5.3.0/woodstox-core-5.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/archaius/archaius-core/0.7.6/archaius-core-0.7.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.4/jackson-dataformat-xml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.4/jackson-module-jaxb-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-archaius/2.2.5.RELEASE/spring-cloud-starter-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-ribbon/2.2.5.RELEASE/spring-cloud-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-archaius/2.2.5.RELEASE/spring-cloud-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-ribbon/2.2.5.RELEASE/spring-cloud-starter-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon/2.3.0/ribbon-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-transport/2.3.0/ribbon-transport-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-core/2.3.0/ribbon-core-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-httpclient/2.3.0/ribbon-httpclient-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-commons-util/0.3.0/netflix-commons-util-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-loadbalancer/2.3.0/ribbon-loadbalancer-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxjava/1.3.8/rxjava-1.3.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-loadbalancer/2.2.5.RELEASE/spring-cloud-starter-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-loadbalancer/2.2.5.RELEASE/spring-cloud-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-validation/2.3.11.RELEASE/spring-boot-starter-validation-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/validator/hibernate-validator/6.1.7.Final/hibernate-validator-6.1.7.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/addons/reactor-extra/3.3.6.RELEASE/reactor-extra-3.3.6.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-cache/2.3.11.RELEASE/spring-boot-starter-cache-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-eureka/2.3.0/ribbon-eureka-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/2.3.4/jaxb-runtime-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/2.3.4/txw2-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/2.3.11.RELEASE/spring-boot-starter-web-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/2.3.11.RELEASE/spring-boot-starter-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/2.3.11.RELEASE/spring-boot-starter-json-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/2.3.11.RELEASE/spring-boot-starter-tomcat-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/5.2.15.RELEASE/spring-web-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/5.2.15.RELEASE/spring-beans-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/5.2.15.RELEASE/spring-webmvc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/5.2.15.RELEASE/spring-context-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/5.2.15.RELEASE/spring-expression-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-javanica/1.5.18/hystrix-javanica-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-core/1.5.18/hystrix-core-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/fastjson/1.2.67/fastjson-1.2.67.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-privilege/1.7.1/amos-feign-privilege-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/easyexcel/2.0.5/easyexcel-2.0.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cglib/cglib/3.1/cglib-3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ehcache/ehcache/3.8.1/ehcache-3.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-scratchpad/4.0.1/poi-scratchpad-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml/4.0.1/poi-ooxml-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/fr/opensagres/xdocreport/xdocreport/1.0.6/xdocreport-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml-schemas/4.0.1/poi-ooxml-schemas-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlbeans/xmlbeans/3.0.2/xmlbeans-3.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/ooxml-schemas/1.3/ooxml-schemas-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/joda-time/joda-time/2.10.4/joda-time-2.10.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/velocity/velocity-engine-core/2.1/velocity-engine-core-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/freemarker/freemarker/2.3.31/freemarker-2.3.31.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-websocket/2.3.11.RELEASE/spring-boot-starter-websocket-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-messaging/5.2.15.RELEASE/spring-messaging-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-websocket/5.2.15.RELEASE/spring-websocket-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-jexl/2.1.1/commons-jexl-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-stream/5.3.7.RELEASE/spring-integration-stream-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-core/5.3.7.RELEASE/spring-integration-core-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/5.2.15.RELEASE/spring-tx-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/reactor-core/3.3.17.RELEASE/reactor-core-3.3.17.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-mqtt/5.3.7.RELEASE/spring-integration-mqtt-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.4/org.eclipse.paho.client.mqttv3-1.2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-starter/2.0.7/knife4j-spring-boot-starter-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-autoconfigure/2.0.7/knife4j-spring-boot-autoconfigure-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring/2.0.7/knife4j-spring-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-annotations/2.0.7/knife4j-annotations-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-core/2.0.7/knife4j-core-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-models/1.5.22/swagger-models-1.5.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger-common/2.10.5/springfox-swagger-common-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-web/2.10.5/springfox-spring-web-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/classgraph/classgraph/4.1.7/classgraph-4.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mapstruct/mapstruct/1.3.1.Final/mapstruct-1.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-bean-validators/2.10.5/springfox-bean-validators-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-webmvc/2.10.5/springfox-spring-webmvc-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-ui/2.0.7/knife4j-spring-ui-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-systemctl/1.6.5/amos-feign-systemctl-1.6.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-annotations/1.5.13/swagger-annotations-1.5.13.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-biz</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>amos-boot-module-precontrol-biz</artifactId>
<name>amos-boot-module-precontrol-biz</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.amosframework.boot</groupId>
<artifactId>amos-boot-module-precontrol-api</artifactId>
<version>${amos-biz-boot.version}</version>
</dependency>
</dependencies>
</project>
package com.yeejoin.precontrol.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @program: api
* @description:
* @author: duanwei
* @create: 2019-12-13 11:16
**/
@Order(Ordered.HIGHEST_PRECEDENCE)
@Configuration
public class CORSFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS,PUT,DELETE,PATCH,HEAD");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers",
"Origin, X-Requested-With, X-Access-Token, X-Api-Key, Content-Type, Accept, Cache-Control,appkey,token,product");
//response.setHeader("Access-Control-Allow-Headers","*");
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
response.setStatus(HttpServletResponse.SC_OK);
} else {
filterChain.doFilter(servletRequest, servletResponse);
}
}
@Override
public void destroy() {
}
}
package com.yeejoin.precontrol.config;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.springframework.boot.jackson.JsonComponent;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @description:
* @author: duanwei
* @date: 2020-07-09 14:11
**/
@JsonComponent
public class DateFormatConfig {
private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// /**
// * 日期格式化
// */
// public static class DateJsonSerializer extends JsonSerializer<Date> {
// @Override
// public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
// jsonGenerator.writeString(dateFormat.format(date));
// }
// }
//
// /**
// * 解析日期字符串
// */
// public static class DateJsonDeserializer extends JsonDeserializer<Date> {
// @Override
// public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
// try {
// return dateFormat.parse(jsonParser.getText());
// } catch (ParseException e) {
// throw new RuntimeException(e);
// }
// }
// }
/**
* id主键
*/
public static class LongJsonSerializer extends JsonSerializer<Long> {
@Override
public void serialize(Long id, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeString(String.valueOf(id));
}
}
}
package com.yeejoin.precontrol.config;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.yeejoin.precontrol.common.utils.RedisUtil;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* @description: 处理mybatis业务处理, 新增和更新的基础数据填充,配合BaseEntity和MyBatisPlusConfig使用
* @author: duanwei
* @create: 2020-05-28 13:57
**/
@Primary
@Component("metaHandlerPrecontrol")
public class MetaHandler implements MetaObjectHandler, InitializingBean {
@Autowired
RedisUtil redisUtil;
/**
* 新增数据拦截
*
* @param metaObject
*/
@Override
public void insertFill(MetaObject metaObject) {
Date currentDate = new Date();
this.setFieldValByName("createDate", currentDate, metaObject);
this.setFieldValByName("updateTime", currentDate, metaObject);
}
/**
* 更新拦截
*
* @param metaObject
*/
@Override
public void updateFill(MetaObject metaObject) {
Date currentDate = new Date();
this.setFieldValByName("updateTime", currentDate, metaObject);
}
@Override
public void afterPropertiesSet() throws Exception {
}
}
\ No newline at end of file
package com.yeejoin.precontrol.config;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* @description: 分页插件
* @author: duanwei
* @create: 2020-06-30 13:57
**/
@EnableTransactionManagement
@Configuration("MybatisPlusConfigPrecontrol")
@Primary
public class MybatisPlusConfig {
/**
* plus分页插件支持
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor page = new PaginationInterceptor();
//设置方言类型
page.setDialectType("mysql");
//不限制
page.setLimit(-1);
return page;
}
/**
* pageHelper插件支持
*
* @return
*/
@Bean
ConfigurationCustomizer mybatisConfigurationCustomizer() {
return new ConfigurationCustomizer() {
@Override
public void customize(MybatisConfiguration configuration) {
configuration.addInterceptor(new com.github.pagehelper.PageInterceptor());
}
};
}
/**
* mp参数切面
*
* @return
*/
@Bean
public GlobalConfig globalConfig() {
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setMetaObjectHandler(new MetaHandler());
return globalConfig;
}
}
//package com.yeejoin.precontrol.config;
//
//import com.fasterxml.jackson.annotation.JsonAutoDetect;
//import com.fasterxml.jackson.annotation.JsonTypeInfo;
//import com.fasterxml.jackson.annotation.PropertyAccessor;
//import com.fasterxml.jackson.databind.ObjectMapper;
//import com.fasterxml.jackson.databind.SerializationFeature;
//import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.Primary;
//import org.springframework.data.redis.cache.RedisCacheConfiguration;
//import org.springframework.data.redis.cache.RedisCacheManager;
//import org.springframework.data.redis.cache.RedisCacheWriter;
//import org.springframework.data.redis.connection.RedisConnectionFactory;
//import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
//import org.springframework.data.redis.serializer.RedisSerializationContext;
//import org.springframework.data.redis.serializer.StringRedisSerializer;
//
//import java.time.Duration;
//
///**
// * @description:
// * @author: duanwei
// **/
//@Configuration("redisConfigPrecontrol")
//@Primary
//public class RedisConfig {
// @Bean
// public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory factory) {
// RedisTemplate<String, Object> template = new RedisTemplate<>();
// template.setConnectionFactory(factory);
// Jackson2JsonRedisSerializer<Object> j2jrs = new Jackson2JsonRedisSerializer<>(Object.class);
// ObjectMapper om = new ObjectMapper();
// om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
// // 解决jackson2无法反序列化LocalDateTime的问题
// om.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
// om.registerModule(new JavaTimeModule());
// om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
// j2jrs.setObjectMapper(om);
// // 序列化 value 时使用此序列化方法
// template.setValueSerializer(j2jrs);
// template.setHashValueSerializer(j2jrs);
// // 序列化 key 时
// StringRedisSerializer srs = new StringRedisSerializer();
// template.setKeySerializer(srs);
// template.setHashKeySerializer(srs);
// template.afterPropertiesSet();
// return template;
// }
//
// /**
// * 配置redis缓存管理器,将序列化机制设置为json格式 设置为默认缓存管理器
// *
// * @param redisConnectionFactory
// * @return
// */
// @Primary
// @Bean
// public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectionFactory) {
// RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
// // 设置缓存有效期一小时
// .entryTtl(Duration.ofHours(1));
// Jackson2JsonRedisSerializer ser = new Jackson2JsonRedisSerializer(Object.class);
// redisCacheConfiguration = redisCacheConfiguration.serializeValuesWith(RedisSerializationContext.SerializationPair
// .fromSerializer(ser));
// return RedisCacheManager
// .builder(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory))
// .cacheDefaults(redisCacheConfiguration).build();
// }
//}
package com.yeejoin.precontrol.config;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.SwaggerDefinition;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import java.util.ArrayList;
import java.util.List;
/**
* swagger配置类 模块如果需要引入则引入
*
* @author duanwei
*/
@Configuration
//@SwaggerDefinition
public class SwaggerConfig {
@Bean
public Docket api() {
ParameterBuilder tokenPar1 = new ParameterBuilder();
ParameterBuilder tokenPar2 = new ParameterBuilder();
ParameterBuilder tokenPar3 = new ParameterBuilder();
//header中的ticket参数非必填,传空也可以
//根据每个方法名也知道当前方法在设置什么参数
List<Parameter> pars = new ArrayList<Parameter>();
tokenPar1.name("token").description("用户token")
.modelRef(new ModelRef("string")).parameterType("header")
.required(false).build();
tokenPar2.name("appKey").description("appkey").modelRef(new ModelRef("string")).parameterType("header").defaultValue("studio_normalapp_2075166")
.required(false).build();
tokenPar3.name("product").description("product").modelRef(new ModelRef("string")).parameterType("header").defaultValue("STUDIO_APP_WEB")
.required(false).build();
pars.add(tokenPar1.build());
pars.add(tokenPar2.build());
pars.add(tokenPar3.build());
return new Docket(DocumentationType.SWAGGER_2)
.enable(true)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build().globalOperationParameters(pars);
}
/**
* 构建api文档
*
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//页面标题
.title("RestFul API")
//创建人
.contact(new Contact("duanwei", "", ""))
//版本号
.version("1.0")
//描述
.description("API 描述")
.build();
}
}
\ No newline at end of file
//package com.yeejoin.precontrol.config;
//
//
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.PostConstruct;
//import javax.websocket.*;
//import javax.websocket.server.ServerEndpoint;
//import java.io.IOException;
//import java.util.concurrent.CopyOnWriteArraySet;
//import java.util.concurrent.atomic.AtomicInteger;
//
//
///**
// * @author zhengkai.blog.csdn.net
// */
//@ServerEndpoint(value = "/ws/asset")
//@Component
//@Slf4j
//public class WebSocketServer {
//
// @PostConstruct
// public void init() {
// log.info("websocket 加载");
// }
//
// private static final AtomicInteger ONLINECOUNT = new AtomicInteger(0);
//
// /**
// * concurrent包的线程安全Set,用来存放每个客户端对应的Session对象。
// */
// private static CopyOnWriteArraySet<Session> SessionSet = new CopyOnWriteArraySet<Session>();
//
//
// /**
// * 连接建立成功调用的方法
// */
// @OnOpen
// public void onOpen(Session session) {
// SessionSet.add(session);
// // 在线数加1
// int cnt = ONLINECOUNT.incrementAndGet();
// log.info("有连接加入,当前连接数为:{}", cnt);
// sendMessage(session, "连接成功");
// }
//
// /**
// * 连接关闭调用的方法
// */
// @OnClose
// public void onClose(Session session) {
// SessionSet.remove(session);
// int cnt = ONLINECOUNT.decrementAndGet();
// log.info("有连接关闭,当前连接数为:{}", cnt);
// }
//
// /**
// * 收到客户端消息后调用的方法
// *
// * @param message 客户端发送过来的消息
// */
// @OnMessage
// public void onMessage(String message, Session session) {
// log.info("来自客户端的消息:{}", message);
// sendMessage(session, "收到消息,消息内容:" + message);
//
// }
//
// /**
// * 出现错误
// *
// * @param session
// * @param error
// */
// @OnError
// public void onError(Session session, Throwable error) {
// log.error("发生错误:{},Session ID: {}", error.getMessage(), session.getId());
// error.printStackTrace();
// }
//
// /**
// * 发送消息,实践表明,每次浏览器刷新,session会发生变化。
// *
// * @param session
// * @param message
// */
// public static void sendMessage(Session session, String message) {
// try {
// session.getBasicRemote().sendText(String.format("%s (From Server,Session ID=%s)", message, session.getId()));
// } catch (IOException e) {
// log.error("发送消息出错:{}", e.getMessage());
// e.printStackTrace();
// }
// }
//
// /**
// * 群发消息
// *
// * @param message
// * @throws IOException
// */
// public static void broadCastInfo(String message) throws IOException {
// for (Session session : SessionSet) {
// if (session.isOpen()) {
// sendMessage(session, message);
// }
// }
// }
//
// /**
// * 指定Session发送消息
// *
// * @param sessionId
// * @param message
// * @throws IOException
// */
// public static void sendMessage(String message, String sessionId) throws IOException {
// Session session = null;
// for (Session s : SessionSet) {
// if (s.getId().equals(sessionId)) {
// session = s;
// break;
// }
// }
// if (session != null) {
// sendMessage(session, message);
// } else {
// log.warn("没有找到你指定ID的会话:{}", sessionId);
// }
// }
//
//}
\ No newline at end of file
package com.yeejoin.precontrol.controller;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.PersonAscription;
import com.yeejoin.precontrol.common.entity.PersonClock;
import com.yeejoin.precontrol.common.entity.Project;
import com.yeejoin.precontrol.common.entity.ProjectDevice;
import com.yeejoin.precontrol.common.entity.access.AccessInfo;
import com.yeejoin.precontrol.common.entity.access.CommInfo;
import com.yeejoin.precontrol.common.entity.access.DoorOpenAndShowTips;
import com.yeejoin.precontrol.common.entity.access.Event;
import com.yeejoin.precontrol.common.entity.access.HttpAccessVerifyParam;
import com.yeejoin.precontrol.common.entity.access.HttpAccessVerifyResult;
import com.yeejoin.precontrol.common.entity.access.PersonInfo;
import com.yeejoin.precontrol.common.entity.access.PictureAck;
import com.yeejoin.precontrol.common.entity.access.RecognizeResult;
import com.yeejoin.precontrol.common.exception.BaseException;
import com.yeejoin.precontrol.common.service.IPersonAccessService;
import com.yeejoin.precontrol.common.service.IPersonAscriptionService;
import com.yeejoin.precontrol.common.service.IPersonClockService;
import com.yeejoin.precontrol.common.service.IPersonService;
import com.yeejoin.precontrol.common.service.IProjectDeviceService;
import com.yeejoin.precontrol.common.service.IProjectService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import springfox.documentation.annotations.ApiIgnore;
/**
* 门禁
*
* @author duanwei
* @date 2020-07-06
*/
@RestController
@ApiIgnore
@Api(tags = " 门禁")
@RequestMapping(value = "/access", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class AccessController {
@Autowired
IPersonAccessService iPersonAccessService;
@Autowired
IPersonService iPersonService;
@Autowired
IProjectDeviceService iProjectDeviceService;
@Autowired
IPersonAscriptionService iPersonAscriptionService;
@Autowired
IProjectService iProjectService;
@Autowired
IPersonClockService iPersonClockService;
/**
* 门禁信令连接
*
* @return
*/
@RequestMapping(value = "/connect", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = " 门禁信令连接", notes = "门禁信令连接")
public Object connect() {
System.out.println("门禁心跳运行中...");
return null;
}
/**
* 人脸认证推送
*
* @return
*/
@RequestMapping(value = "/faceVerify", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "人脸认证推送", notes = "人脸认证推送")
public Object faceVerify(String json) {
System.out.println(json);
HttpAccessVerifyParam param = JSONObject.parseObject(json, HttpAccessVerifyParam.class);
int PicID = param.getPicID();
List<Event> Events = param.getEvents();
List<RecognizeResult> RecognizeResults = Events.get(0).getRecognizeResults();
AccessInfo AccessInfo = Events.get(0).getAccessInfo();
CommInfo CommInfo = Events.get(0).getCommInfo();
HttpAccessVerifyResult result = new HttpAccessVerifyResult();
if (AccessInfo.getPassResult() == 1) {
ProjectDevice projectDevice = iProjectDeviceService.getOne(
new LambdaQueryWrapper<ProjectDevice>().eq(ProjectDevice::getNumber, CommInfo.getSerialNo()));
PersonInfo personInfo = RecognizeResults.get(0).getPersonInfo();
PictureAck pictureAck = new PictureAck();
pictureAck.setPicID(PicID);
pictureAck.setResult(true);
DoorOpenAndShowTips doorOpenAndShowTips = new DoorOpenAndShowTips();
doorOpenAndShowTips.setType("both");
if (projectDevice == null) {
doorOpenAndShowTips.setCustomtip("设备未绑定项目");
} else {
Person person = iPersonService
.getOne(new LambdaQueryWrapper<Person>().eq(Person::getUserId, personInfo.getID()));
try {
if ("入向".equals(projectDevice.getDirect())) {
iPersonAccessService.enterJudge(person);
doorOpenAndShowTips.setCustomtip("入场成功");
saveClock(person, 0);
} else if ("出向".equals(projectDevice.getDirect())) {
doorOpenAndShowTips.setCustomtip("出场成功");
saveClock(person, 1);
} else {
doorOpenAndShowTips.setCustomtip("设备未选择方向");
}
} catch (BaseException e) {
doorOpenAndShowTips.setCustomtip(e.getMessage());
}
}
result.setPictureAck(pictureAck);
result.setDoorOpenAndShowTips(doorOpenAndShowTips);
} else if (AccessInfo.getPassResult() == 16) {
PictureAck pictureAck = new PictureAck();
pictureAck.setPicID(PicID);
pictureAck.setResult(true);
DoorOpenAndShowTips doorOpenAndShowTips = new DoorOpenAndShowTips();
doorOpenAndShowTips.setType("both");
doorOpenAndShowTips.setCustomtip("未识别的人员");
result.setPictureAck(pictureAck);
result.setDoorOpenAndShowTips(doorOpenAndShowTips);
}
return JSONObject.toJSON(result);
}
private void saveClock(Person person,int direct) {
PersonAscription personAscription = iPersonAscriptionService
.getOne(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, person.getId()));
Project project = iProjectService
.getOne(new LambdaQueryWrapper<Project>().eq(Project::getId, personAscription.getProjectId()));
PersonClock personClock = new PersonClock();
personClock.setPersonId(Long.valueOf(person.getId()));
personClock.setInOrOut(direct);
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
personClock.setClockDate(dateFormat.parse(dateFormat.format(new Date())));
} catch (ParseException e) {
throw new BaseException("日期转换错误");
}
personClock.setClockCompanyId(personAscription != null ? personAscription.getCompanyId() : null);
personClock.setClockTime(new Date());
personClock
.setClockProjectId(personAscription != null ? String.valueOf(personAscription.getProjectId()) : null);
personClock.setClockProject(project.getName());
personClock.setClockAddress(project.getAddress());
personClock.setOrgCode(person.getOrgCode());
iPersonClockService.save(personClock);
}
}
package com.yeejoin.precontrol.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.precontrol.common.service.IBadManagementService;
import com.yeejoin.precontrol.common.vo.BadManagementVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@RestController
@ApiIgnore
@Api(tags = " 分包商违章Api")
@RequestMapping(value = "/badManagement", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class BadManagementController {
@Autowired
IBadManagementService IBadManagementService;
@ApiOperation(httpMethod = "GET", value = "根据公司ID分页查询违章信息")
@RequestMapping(value = "/list", method = RequestMethod.GET)
public Page<BadManagementVo> pageList(Long pageNum, Long pageSize, String companyId) {
return IBadManagementService.pageList(pageNum, pageSize, companyId);
}
}
package com.yeejoin.precontrol.controller;
import com.yeejoin.precontrol.common.enums.TaskStatusEnum;
import com.yeejoin.precontrol.common.enums.TaskTypeEnum;
import com.yeejoin.precontrol.common.service.IBaseService;
import com.yeejoin.precontrol.common.service.SmallProService;
import com.yeejoin.precontrol.common.utils.CommonResponseUtil;
import com.yeejoin.precontrol.common.utils.RedisUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 项目信息
*
* @author duanwei
* @date 2020-06-30
*/
@RestController
@Api(tags = "公共API")
@RequestMapping(value = "/common", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class CommonController {
/**
* 小程序应用id
*/
@Value("${smallProgram.appid}")
private String appId;
/**
* 小程序应用secret
*/
@Value("${smallProgram.secret}")
private String secret;
/**
* 缓存工具类
*/
@Autowired
RedisUtil redisUtil;
/**
* 通用查询服务
*/
@Autowired
IBaseService iBaseService;
/**
* 小程序服务
*/
@Autowired
SmallProService smallProService;
/**
* 获取token
*
* @return
*/
@RequestMapping(value = "/getToken", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取token", notes = "获取token")
public Object getToken() {
String token = smallProService.getSmallProToken();
return token;
}
/**
* 通过code换 请求openId链接
*
* @return
*/
@RequestMapping(value = "/exchangeSmallProMesssage", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "通过code换 请求openId链接", notes = "通过code换 请求openId链接")
public Object exchangeSmallProMesssage(String json_code) {
String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appId + "&secret=" + secret + "&js_code=" + json_code
+ "&grant_type=authorization_code";
return url;
}
/**
* 获取作业活动类型
* @return
*/
@GetMapping(value = "get/activity/type")
@ApiOperation(value = "获取作业活动类型", notes = "获取作业活动类型")
public Object getActivityType() {
TaskTypeEnum[] values = TaskTypeEnum.values();
List<Map<String, Object>> list = new ArrayList<>();
for (TaskTypeEnum value : values) {
if(value.getValue().equals(4L)){
continue;
}
Map<String, Object> map = new HashMap();
map.put("key",value.getValue());
map.put("value", value.getLabel());
list.add(map);
}
return CommonResponseUtil.success(list);
}
/**
* 获取作业活动状态
* @return
*/
@GetMapping(value = "get/activity/status")
@ApiOperation(value = "获取作业活动状态", notes = "获取作业活动状态")
public Object getActivityStatus() {
TaskStatusEnum[] values = TaskStatusEnum.values();
List<Map<String, Object>> list = new ArrayList<>();
for (TaskStatusEnum value : values) {
Map<String, Object> map = new HashMap();
map.put("key",value.getType());
map.put("value", value.getName());
list.add(map);
}
return CommonResponseUtil.success(list);
}
}
package com.yeejoin.precontrol.controller;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.liangbaika.validate.annations.ValidateParam;
import com.github.liangbaika.validate.annations.ValidateParams;
import com.github.liangbaika.validate.enums.Check;
import com.yeejoin.precontrol.common.annotations.OpsLog;
import com.yeejoin.precontrol.common.constant.Constant;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.dto.CompanyDto;
import com.yeejoin.precontrol.common.dto.CompanyblackDto;
import com.yeejoin.precontrol.common.entity.Company;
import com.yeejoin.precontrol.common.entity.CompanyAcount;
import com.yeejoin.precontrol.common.entity.CompanyBusiness;
import com.yeejoin.precontrol.common.entity.CompanyQualifications;
import com.yeejoin.precontrol.common.entity.PersonAscription;
import com.yeejoin.precontrol.common.entity.ProjectCompany;
import com.yeejoin.precontrol.common.enums.OpsLogEnum;
import com.yeejoin.precontrol.common.enums.SmallProPageEnum;
import com.yeejoin.precontrol.common.exception.BaseException;
import com.yeejoin.precontrol.common.exception.errorEnum.BaseExceptionEnum;
import com.yeejoin.precontrol.common.param.CompanyParam;
import com.yeejoin.precontrol.common.publish.TranslateEventPublish;
import com.yeejoin.precontrol.common.service.ICompanyAcountService;
import com.yeejoin.precontrol.common.service.ICompanyBusinessService;
import com.yeejoin.precontrol.common.service.ICompanyQualificationAttachmentService;
import com.yeejoin.precontrol.common.service.ICompanyQualificationService;
import com.yeejoin.precontrol.common.service.ICompanyService;
import com.yeejoin.precontrol.common.service.IDistrictsService;
import com.yeejoin.precontrol.common.service.IPersonAscriptionService;
import com.yeejoin.precontrol.common.service.IProjectCompanyService;
import com.yeejoin.precontrol.common.service.IStatisticsService;
import com.yeejoin.precontrol.common.service.SmallProService;
import com.yeejoin.precontrol.common.utils.CommonResponseUtil;
import com.yeejoin.precontrol.common.utils.FileHelper;
import com.yeejoin.precontrol.common.utils.PlatformUtils;
import com.yeejoin.precontrol.common.vo.BadCompanyVo;
import com.yeejoin.precontrol.common.vo.ReginParams;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
/**
* 企业基本信息
*
* @author duanwei
* @date 2020-06-30
*/
@RestController
@Api(tags = "企业基本信息Api")
@RequestMapping(value = "/company", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Slf4j
public class CompanyController extends BaseController {
/**
* 企业服务
*/
@Autowired
ICompanyService iCompanyService;
/**
* 企业账户服务
*/
@Autowired
ICompanyAcountService iCompanyAcountService;
/**
* 小程序服务
*/
@Autowired
SmallProService smallProService;
/**
* 企业工商服务
*/
@Autowired
ICompanyBusinessService iBusinessService;
/**
* 企业资质服务
*/
@Autowired
ICompanyQualificationService iCompanyQualificationService;
/**
* 企业资质服务附件
*/
@Autowired
ICompanyQualificationAttachmentService qualificationAttachService;
/**
* 省市区服务
*/
@Autowired
IDistrictsService districtsService;
/**
* 翻译事件推送服务
*/
@Autowired
TranslateEventPublish translateEventPublish;
@Autowired
PlatformUtils platformUtils;
@Autowired
IStatisticsService statisticsService;
@Autowired
IProjectCompanyService iProjectCompanyService;
@Autowired
IPersonAscriptionService iPersonAscriptionService;
/**
* 新增企业基本信息
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增企业基本信息", notes = "新增企业基本信息")
@Transactional
public Object saveCompany(@RequestBody @Valid CompanyDto companyDto) {
Company company = iCompanyService.saveOrUpdateCompany(companyDto);
translateEventPublish.publish(company);
statisticsService.initWs("0", Constant.WS_COMPOSITESUM);
return true;
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public Object deleteById(HttpServletRequest request, @PathVariable Long id) {
HashMap filters = new HashMap<String, Long>();
filters.put("company_id", id);
try {
iBusinessService.removeByMap(filters);
iCompanyQualificationService.removeByMap(filters);
iCompanyService.removeById(id);
iCompanyAcountService.removeByMap(filters);
statisticsService.initWs("0", Constant.WS_COMPOSITESUM);
return true;
} catch (Exception e) {
return CommonResponseUtil.failure(e.getMessage());
}
}
/**
* 根据ids删除
*
* @param ids
* @return
*/
@RequestMapping(value = "/ids/{ids}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据ids删除", notes = "根据ids删除")
@OpsLog(value = OpsLogEnum.DELETE_COMPANY)
public Object deleteByIds(HttpServletRequest request, @PathVariable String ids) {
if (StringUtils.isNotBlank(ids)) {
String[] idsSplit = ids.split(",");
Set<Long> comIds = Arrays.stream(idsSplit).map(Long::parseLong).collect(Collectors.toSet());
int count = iProjectCompanyService
.count(new LambdaQueryWrapper<ProjectCompany>().in(ProjectCompany::getCompanyId, comIds));
if (count > 0) {
throw new BaseException("所选分包商存在关联项目,无法删除");
}
int acount = iPersonAscriptionService
.count(new LambdaQueryWrapper<PersonAscription>().in(PersonAscription::getCompanyId, comIds));
if (acount > 0) {
throw new BaseException("所选分包商存在关联人员,无法删除");
}
// 工商信息
iBusinessService
.remove(new QueryWrapper<CompanyBusiness>().lambda().in(CompanyBusiness::getCompanyId, comIds));
// 资质信息
iCompanyQualificationService.remove(
new QueryWrapper<CompanyQualifications>().lambda().in(CompanyQualifications::getCompanyId, comIds));
// 银行账户
iCompanyAcountService
.remove(new LambdaQueryWrapper<CompanyAcount>().in(CompanyAcount::getCompanyId, comIds));
iCompanyService.removeByIds(comIds);
return true;
} else {
throw new BaseException(BaseExceptionEnum.PARAMETER_ERROR);
}
}
/**
* 导入分包商信息
*
* @return
*/
@RequestMapping(value = "/import", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "导入分包商信息", notes = "导入分包商信息")
public Object companyImport(
@ApiParam(value = "导入数据文件", required = true) @RequestBody(required = true) MultipartFile file)
throws Exception {
String fileName = file.getOriginalFilename();
if (!fileName.endsWith(".xls")) {
throw new BaseException("文件格式错误");
}
iCompanyService.companyImport(file);
return true;
}
/**
* 修改企业基本信息
*
* @return
*/
@ValidateParams(value = {
@ValidateParam(value = Check.le, express = "50", argName = "companyDto.companyBusiness.companyAddress"),
@ValidateParam(value = Check.le, express = "200", argName = "companyDto.companyBusiness.businessScope") })
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@OpsLog(value = OpsLogEnum.EDIT_COMPANY)
@ApiOperation(httpMethod = "PUT", value = "修改企业基本信息", notes = "修改企业基本信息")
public Object updateByIdCompany(@RequestBody @Valid CompanyDto companyDto) {
Company company = iCompanyService.saveOrUpdateCompany(companyDto);
translateEventPublish.publish(company);
return true;
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public Object selectById(@PathVariable Long id) {
return iCompanyService.selectById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public Object listPage(CommonPageableDto pageable, CompanyParam param, String ids) {
if (StringUtils.isNotBlank(ids)) {
String[] idsSplit = ids.split(",");
Set<Long> queryIds = Arrays.stream(idsSplit).map(Long::parseLong).collect(Collectors.toSet());
if (queryIds != null || queryIds.size() > 0) {
param.setIds(queryIds);
}
}
getUserInfo();
ReginParams reginInfo = getReginInfo();
if (isFbsRole(reginInfo)) {
Company company = reginInfo.getCompany();
if (company != null) {
Long companyId = company.getId();
param.setId(companyId);
}
}
if (param.getIsAllCode()) {
param.setOrgCode(null);
}
return iCompanyService.pageInfo(pageable, param);
}
/**
* 公司二维码
*
* @return
*/
@RequestMapping(value = "/companyQrCode", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "公司二维码", notes = "公司二维码")
public void companyQrCode(HttpServletResponse response, @RequestParam(required = true) Long companyId, Long size,
@RequestParam(value = "type", required = false, defaultValue = "png") String type) {
String smallProToken = smallProService.getSmallProToken();
String scene = companyId.toString();
Company company = iCompanyService.getById(companyId);
if (company != null) {
String fileName = companyId.toString();
String page = SmallProPageEnum.companyDetail.getPath();
smallProService.getSmallProQrCodeResponse(smallProToken, scene, page, size, false, null, false, response,
fileName, type);
} else {
throw new BaseException("该公司不存在");
}
}
/**
* 公司下拉框
*
* @return
*/
@RequestMapping(value = "/companySelect", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "公司列表下拉框", notes = "公司下拉框")
public Object companySelect() {
return iCompanyService.companySelect();
}
/**
* 黑名单操作
*
* @return
*/
@RequestMapping(value = "/blacklist/operation", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "黑名单操作", notes = "黑名单操作")
@Transactional
public Object blacklistOperation(@RequestBody CompanyblackDto blackDto) {
Company company = iCompanyService.getById(blackDto.getId());
if (company != null) {
company.setInBlackList(blackDto.getInBlackList());
iCompanyService.updateById(company);
return true;
} else {
return CommonResponseUtil.failure("所选公司不存在!");
}
}
/**
* 首页违章项目
*
* @return
*/
@RequestMapping(value = "/badCompany", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "首页违章分包商", notes = "首页违章分包商")
public Object badCompany(@ApiParam(value = "是否查询所有违章和0违章", required = false) boolean isAllStatus,
@ApiParam(value = "是否0违章", required = true) boolean isBad,
@ApiParam(value = "分页") CommonPageableDto pageable, @ApiParam(value = "查询参数") BadCompanyVo badCompanyVo,
@ApiParam(value = "类型 0查询列表 1 导出列表") @RequestParam Long operType, HttpServletResponse response) {
String fileName = UUID.randomUUID().toString() + ".xls";
String title = isAllStatus ? "分包商信息" : isBad ? "违章分包商信息" : "0违章分包商信息";
badCompanyVo.setOrgCode(platformUtils.getOrgCode());
if (badCompanyVo.getKey() != null) {
switch (badCompanyVo.getKey()) {
case "scale":
if ("asc".equals(badCompanyVo.getSortType())) {
badCompanyVo.setScaleOrder(true);
} else {
badCompanyVo.setScaleOrder(false);
}
break;
case "count":
if ("asc".equals(badCompanyVo.getSortType())) {
badCompanyVo.setCountOrder(true);
} else {
badCompanyVo.setCountOrder(false);
}
break;
case "money":
if ("asc".equals(badCompanyVo.getSortType())) {
badCompanyVo.setMoneyOrder(true);
} else {
badCompanyVo.setMoneyOrder(false);
}
break;
default:
badCompanyVo.setScaleOrder(false);
}
} else {
badCompanyVo.setScaleOrder(false);
}
IPage<BadCompanyVo> page = iCompanyService.pageBadCompany(isBad, isAllStatus, pageable, badCompanyVo);
if (operType == 1) {
List<BadCompanyVo> excelList = page.getRecords();
FileHelper.exportExcel(excelList, title, title, BadCompanyVo.class, fileName, response);
return null;
} else {
return page;
}
}
/**
* 根据分包商查询部门以及账户信息
*
* @return
*/
@RequestMapping(value = "/deptQueryWithAccount", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据分包商查询部门以及账户信息", notes = "根据分包商查询部门以及账户信息")
public Object deptQueryWithAccount(Long companyId) {
return iCompanyService.deptQueryWithAccount(companyId);
}
/**
* 根据分包商查询部门 (查询人员 分两步 写成2个接口的原因是平台调用的接口是两个)
*
* @return
*/
@RequestMapping(value = "/deptQuery", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据分包商查询部门", notes = "根据分包商查询部门")
public Object deptQuery(Long companyId, String roleName, Long projectId) {
return iCompanyService.deptQuery(companyId, roleName, projectId);
}
/**
* 根据部门查询班组
*
* @return
*/
@RequestMapping(value = "/teamQuery", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据部门查询班组", notes = "根据部门查询班组")
public Object teamQuery(Long deptId, String roleName, Long projectId) {
return iCompanyService.teamQuery(deptId, roleName, projectId);
}
/**
* 根据部门查询班组
*
* @return
*/
@RequestMapping(value = "/platDeptQuery", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "平台部门树", notes = "平台部门树")
public Object platDeptQuery(String orgCode,Boolean noFbs) {
return iCompanyService.platDeptQuery(orgCode,noFbs);
}
/**
* 根据登陆人查询分包商
*
* @return
*/
@RequestMapping(value = "/byOrgCode", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "项目部分包商", notes = "项目部分包商")
public Object byOrgCode() {
String orgCode = platformUtils.getOrgCode();
return iCompanyService.getByOrgCode(orgCode);
}
/**
* 根据平台分包商部门查询分包商
*
* @return
*/
@RequestMapping(value = "/byPlatFbsDeptOrgCode", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "项目部分包商", notes = "项目部分包商")
public Object byPlatFbsDeptOrgCode(String orgCode) {
return iCompanyService.byPlatFbsDeptOrgCode(orgCode);
}
}
package com.yeejoin.precontrol.controller;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
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.yeejoin.precontrol.common.dto.CompanyDepartmentDto;
import com.yeejoin.precontrol.common.entity.CompanyDepartment;
import com.yeejoin.precontrol.common.service.ICompanyDepartmentService;
import com.yeejoin.precontrol.common.utils.NameUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 部门信息
*
* @author duanwei
* @date 2021-09-07
*/
@RestController
@Api(tags = "部门信息Api")
@RequestMapping(value = "/company-department", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class CompanyDepartmentController {
@Autowired
ICompanyDepartmentService iCompanyDepartmentService;
/**
* 新增部门信息
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增部门信息", notes = "新增部门信息")
public boolean saveCompanyDepartment(HttpServletRequest request, @RequestBody CompanyDepartment companyDepartment) {
return iCompanyDepartmentService.saveOne(companyDepartment);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iCompanyDepartmentService.removeTreeById(id);
}
/**
* 修改部门信息
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改部门信息", notes = "修改部门信息")
public boolean updateByIdCompanyDepartment(HttpServletRequest request,
@RequestBody CompanyDepartment companyDepartment) {
return iCompanyDepartmentService.updateOneById(companyDepartment);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public CompanyDepartment selectById(HttpServletRequest request, @PathVariable Long id) {
return iCompanyDepartmentService.getById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<CompanyDepartment> listPage(String pageNum, String pageSize, CompanyDepartment companyDepartment) {
Page<CompanyDepartment> pageBean;
QueryWrapper<CompanyDepartment> companyDepartmentQueryWrapper = new QueryWrapper<>();
Class<? extends CompanyDepartment> aClass = companyDepartment.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(companyDepartment);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(companyDepartment);
companyDepartmentQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(companyDepartment);
companyDepartmentQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(companyDepartment);
companyDepartmentQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(companyDepartment);
companyDepartmentQueryWrapper.eq(name, fileValue);
}
}
} catch (Exception e) {
}
});
IPage<CompanyDepartment> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iCompanyDepartmentService.page(pageBean, companyDepartmentQueryWrapper);
return page;
}
/**
* 查询部门树
*
* @param id
* @return
*/
@RequestMapping(value = "/tree/{companyId}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public List<CompanyDepartmentDto> treeById(HttpServletRequest request, @PathVariable Long companyId, String name) {
return iCompanyDepartmentService.treeByCompanyId(companyId, name);
}
}
package com.yeejoin.precontrol.controller;
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.yeejoin.precontrol.common.entity.CompanyEvaluationLog;
import com.yeejoin.precontrol.common.entity.UserEvaluationLog;
import com.yeejoin.precontrol.common.service.ICompanyEvaluationLogService;
import com.yeejoin.precontrol.common.utils.NameUtils;
import com.yeejoin.precontrol.common.vo.CompanyEvaluationLogVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
/**
* 分包商评价记录表
*
* @author tb
* @date 2021-01-28
*/
@RestController
@Api(tags = "分包商评价记录表Api")
@RequestMapping(value = "/company-evaluation-log", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class CompanyEvaluationLogController {
@Autowired
ICompanyEvaluationLogService iCompanyEvaluationLogService;
/**
* 新增分包商评价记录表
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增分包商评价记录表", notes = "新增分包商评价记录表")
public boolean saveCompanyEvaluationLog(HttpServletRequest request, @RequestBody CompanyEvaluationLog companyEvaluationLog) {
Optional.ofNullable(companyEvaluationLog.getEvaluationUserId()).orElseThrow(() -> new BadRequest("评价人不能为空"));
Optional.ofNullable(companyEvaluationLog.getCompanyId()).orElseThrow(() -> new BadRequest("分包商不能为空"));
Optional.ofNullable(companyEvaluationLog.getRate()).orElseThrow(() -> new BadRequest("评分不能为空"));
return iCompanyEvaluationLogService.save(companyEvaluationLog);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iCompanyEvaluationLogService.removeById(id);
}
/**
* 根据分包商id查询列表分页
*
* @return
*/
@RequestMapping(value = "/{companyId}/page/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据分包商id查询列表分页", notes = "根据分包商id查询列表分页")
public IPage<CompanyEvaluationLog> listByCompanyId(String pageNum, String pageSize, @PathVariable String companyId) {
return iCompanyEvaluationLogService.listByCompanyId(pageNum, pageSize, companyId);
}
/**
* 根据分包商id查询列表分页
*
* @return
*/
@RequestMapping(value = "/{companyId}/page/list/vo", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据分包商id查询列表分页", notes = "根据分包商id查询列表分页")
public IPage<CompanyEvaluationLogVo> listVoByCompanyId(String pageNum, String pageSize, @PathVariable String companyId) {
return iCompanyEvaluationLogService.listVoByCompanyId(pageNum, pageSize, companyId);
}
/**
* 根据被评价人id查询列表分页
*
* @return
*/
@RequestMapping(value = "/{taskId}/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据被任务id查询列表分页", notes = "根据被任务id查询列表分页")
public List<CompanyEvaluationLog> listByTaskId(@PathVariable String taskId) {
return iCompanyEvaluationLogService.listByTaskId(taskId);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<CompanyEvaluationLog> listPage(String pageNum, String pageSize,
CompanyEvaluationLog companyEvaluationLog) {
Page<CompanyEvaluationLog> pageBean;
QueryWrapper<CompanyEvaluationLog> companyEvaluationLogQueryWrapper = new QueryWrapper<>();
Class<? extends CompanyEvaluationLog> aClass = companyEvaluationLog.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(companyEvaluationLog);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(companyEvaluationLog);
companyEvaluationLogQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(companyEvaluationLog);
companyEvaluationLogQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(companyEvaluationLog);
companyEvaluationLogQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(companyEvaluationLog);
companyEvaluationLogQueryWrapper.eq(name, fileValue);
}
}
} catch (Exception e) {
}
});
IPage<CompanyEvaluationLog> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iCompanyEvaluationLogService.page(pageBean, companyEvaluationLogQueryWrapper);
return page;
}
}
\ No newline at end of file
package com.yeejoin.precontrol.controller;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import com.yeejoin.precontrol.common.utils.CommonResponseUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
/**
* 字典controller
*
* @author sqy
*/
@ApiIgnore
@RestController
@RequestMapping(value = "/dictionarie", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class DictionarieController {
@RequestMapping(value = "/{dictCode}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据code查询字典", notes = "根据code查询字典")
public Object getDictValues(@PathVariable String dictCode) {
try {
List<DictionarieValueModel> result = Systemctl.dictionarieClient.dictValues(dictCode).getResult();
return result;
} catch (Exception e) {
return CommonResponseUtil.failure("查询失败");
}
}
}
package com.yeejoin.precontrol.controller;
import com.yeejoin.precontrol.common.entity.Districts;
import com.yeejoin.precontrol.common.service.IDistrictsService;
import com.yeejoin.precontrol.common.utils.RedisUtil;
import com.yeejoin.precontrol.common.vo.DistrictVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
/**
* 地区
*
* @author duanwei
* @date 2020-07-06
*/
@RestController
@ApiIgnore
@Api(tags = "地区Api")
@RequestMapping(value = "/districts", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class DistrictsController {
/**
* 省市区服务
*/
@Autowired
IDistrictsService iDistrictsService;
/**
* 缓存服务
*/
@Autowired
RedisUtil redisUtil;
/**
* 新增地区
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增地区", notes = "新增地区")
public Object saveDistricts(HttpServletRequest request, @RequestBody Districts districts) {
return iDistrictsService.save(districts);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iDistrictsService.removeById(id);
}
/**
* 根据ids删除
*
* @param ids
* @return
*/
@RequestMapping(value = "/ids/{ids}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据ids删除", notes = "根据ids删除")
public boolean deleteById(HttpServletRequest request, @PathVariable List<String> ids) {
return iDistrictsService.removeByIds(ids);
}
/**
* 修改地区
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改地区", notes = "修改地区")
public boolean updateByIdDistricts(HttpServletRequest request, @RequestBody Districts districts) {
return iDistrictsService.updateById(districts);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public Districts selectById(HttpServletRequest request, @PathVariable Long id) {
return iDistrictsService.getById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/tree", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表tree查询", notes = "列表tree查询")
public Object tree() {
if (redisUtil.hasKey("city")) {
return redisUtil.get("city");
}
List<Districts> list = iDistrictsService.list();
List<DistrictVo> districtVos = new ArrayList<>();
list.forEach(d -> {
DistrictVo districtVo = new DistrictVo();
districtVo.setLabel(d.getExtName());
districtVo.setValue(String.valueOf(d.getId()));
districtVo.setId(d.getId());
districtVo.setPid(d.getPid());
districtVos.add(districtVo);
});
List<DistrictVo> menuTreeList = getMenuTreeList(0L, districtVos);
redisUtil.set("city", menuTreeList, 3600);
return menuTreeList;
}
/**
* 递归循环
*
* @param pid
* @param list
* @return
*/
private List<DistrictVo> getMenuTreeList(Long pid, List<DistrictVo> list) {
List<DistrictVo> childrenList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
DistrictVo districtVo = list.get(i);
if (districtVo.getPid().equals(pid)) {
districtVo.setChildren(getMenuTreeList(districtVo.getId(), list));
childrenList.add(districtVo);
}
}
return childrenList;
}
}
package com.yeejoin.precontrol.controller;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.precontrol.common.annotations.OpsLog;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.dto.HazardousWorkDto;
import com.yeejoin.precontrol.common.dto.HazardousWorkPageDto;
import com.yeejoin.precontrol.common.dto.InputItemDto;
import com.yeejoin.precontrol.common.entity.HazardousWork;
import com.yeejoin.precontrol.common.entity.HazardousWorkRefInputItem;
import com.yeejoin.precontrol.common.entity.InputItem;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.RiskWorkHazadousWork;
import com.yeejoin.precontrol.common.enums.OpsLogEnum;
import com.yeejoin.precontrol.common.exception.BaseException;
import com.yeejoin.precontrol.common.service.IHazardousWorkRefInputItemService;
import com.yeejoin.precontrol.common.service.IHazardousWorkService;
import com.yeejoin.precontrol.common.service.IInputItemService;
import com.yeejoin.precontrol.common.service.IPersonService;
import com.yeejoin.precontrol.common.service.IRiskWorkHazadousWorkService;
import com.yeejoin.precontrol.common.utils.FileHelper;
import com.yeejoin.precontrol.common.utils.StringUtil;
import com.yeejoin.precontrol.common.vo.HazardousWorkPageVo;
import com.yeejoin.precontrol.common.vo.HazardousWorkVo;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
* 危险作业表
*
* @author duanwei
* @date 2020-08-24
*/
@RestController
@Api(tags = "危险作业表Api")
@RequestMapping(value = "/hazardous-work", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class HazardousWorkController extends BaseController {
/**
* 危险作业服务
*/
@Autowired
IHazardousWorkService iHazardousWorkService;
/**
* 检查项服务
*/
@Autowired
IInputItemService iInputItemService;
/**
* 用户服务
*/
@Autowired
IPersonService iPersonService;
/**
* 检查项关联危险作业服务
*/
@Autowired
IHazardousWorkRefInputItemService iHazardousWorkRefInputItemService;
@Autowired
IRiskWorkHazadousWorkService iRiskWorkHazadousWorkService;
/**
* 新增危险作业表
*
* @return
*/
@RequestMapping(value = "/saveOrUpdate", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增危险作业表", notes = "新增危险作业表")
@OpsLog(value = OpsLogEnum.EDIT_HAZARDOUSWORK)
public boolean saveOrUpdate(HttpServletRequest request, @RequestBody HazardousWorkDto hazardousWorkDto) {
Person person = getPerson();
HazardousWork hazardousWork = new HazardousWork();
BeanUtils.copyProperties(hazardousWorkDto, hazardousWork);
hazardousWork.setCPersonId(person.getId());
if (hazardousWorkDto.getId() == null) {
// 存储
List<HazardousWork> list = iHazardousWorkService.list(
new LambdaQueryWrapper<HazardousWork>().eq(HazardousWork::getName, hazardousWorkDto.getName()));
if (StringUtil.isNotEmpty(list)) {
throw new BaseException("作业名称重复,已经存在");
}
iHazardousWorkService.save(hazardousWork);
} else {
iHazardousWorkService.updateById(hazardousWork);
deleteHazarDousWork(hazardousWork.getId());
}
saveHazarDousWork(hazardousWorkDto, hazardousWork);
return true;
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
// 删除风险作业
iHazardousWorkService.removeById(id);
// 根据风险作业id删除 检查项和关联关系
deleteHazarDousWork(id);
return true;
}
/**
* 根据ids删除 多个
*
* @return
*/
@RequestMapping(value = "/ids/{ids}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据ids删除", notes = "根据ids删除")
@OpsLog(value = OpsLogEnum.DELETE_HAZARDOUSWORK)
public boolean deleteById(HttpServletRequest request, @PathVariable List<Long> ids) {
int count = iRiskWorkHazadousWorkService.count(
new LambdaQueryWrapper<RiskWorkHazadousWork>().in(RiskWorkHazadousWork::getHarzadousWorkId, ids));
if (count > 0) {
throw new BaseException("被风险作业引用,无法删除");
}
for (Long id : ids) {
// 删除风险作业
iHazardousWorkService.removeById(id);
// 根据风险作业id删除 检查项和关联关系
deleteHazarDousWork(id);
}
return true;
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public Object selectById(HttpServletRequest request, @PathVariable Long id) {
HazardousWorkVo hazardousWorkVo = iHazardousWorkService.getHazardousWorkVo(id);
return hazardousWorkVo;
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public Object listPage(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") HazardousWorkPageDto hazardousWorkPageDto,
@ApiParam(value = "类型 0查询列表 1 导出列表") @RequestParam Long operType,
@ApiParam(value = "查询Ids") @RequestParam(required = false) List<Long> ids, HttpServletResponse response) {
String fileName = UUID.randomUUID().toString() + ".xls";
if (StringUtil.isNotEmpty(ids)) {
hazardousWorkPageDto.setIds(ids);
}
IPage<HazardousWorkPageVo> page = iHazardousWorkService.listByPage(pageable, hazardousWorkPageDto);
if (operType == 1) {
List<HazardousWorkPageVo> excelList = page.getRecords();
for (HazardousWorkPageVo hazardousWorkPageVo : excelList) {
Long cPersonId = hazardousWorkPageVo.getCreatePersonId();
Person person = iPersonService.getById(cPersonId);
if (person != null) {
hazardousWorkPageVo.setCreatePersonName(person.getName());
}
}
FileHelper.exportExcel(excelList, "危险作业管理", "危险作业管理信息", HazardousWorkPageVo.class, fileName, response);
return null;
} else {
return page;
}
}
@RequestMapping(value = "/list-all", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "下拉列表查询", notes = "下拉列表查询")
public List<HazardousWork> listAll() {
return iHazardousWorkService.list();
}
/**
* 保存风险作业和检查项
*
* @param hazardousWorkDto
*/
public void saveHazarDousWork(HazardousWorkDto hazardousWorkDto, HazardousWork hazardousWork) {
List<InputItemDto> inputItemDtos = hazardousWorkDto.getInputItemDtos();
if (StringUtil.isNotEmpty(inputItemDtos)) {
inputItemDtos.forEach(inputItemDto -> {
InputItem inputItem = new InputItem();
BeanUtils.copyProperties(inputItemDto, inputItem);
iInputItemService.save(inputItem);
HazardousWorkRefInputItem hazardousWorkRefInputItem = new HazardousWorkRefInputItem();
hazardousWorkRefInputItem.setHazardousWorkId(hazardousWork.getId());
hazardousWorkRefInputItem.setInputItemId(inputItem.getId());
hazardousWorkRefInputItem.setOrders(0L);
iHazardousWorkRefInputItemService.save(hazardousWorkRefInputItem);
});
}
}
/**
* 根据风险作业id删除 检查项和关联关系
*
* @param id
*/
public void deleteHazarDousWork(Long id) {
// 删除检查项
List<HazardousWorkRefInputItem> list = iHazardousWorkRefInputItemService.list(
new LambdaQueryWrapper<HazardousWorkRefInputItem>().select(HazardousWorkRefInputItem::getInputItemId)
.eq(HazardousWorkRefInputItem::getHazardousWorkId, id));
if (StringUtil.isNotEmpty(list)) {
List<Long> collect = list.stream().map(l -> l.getInputItemId()).collect(Collectors.toList());
iInputItemService.removeByIds(collect);
}
// 删除关联关系
List<HazardousWorkRefInputItem> hazardousWorkRefInputItemServices = iHazardousWorkRefInputItemService
.list(new LambdaQueryWrapper<HazardousWorkRefInputItem>().select(HazardousWorkRefInputItem::getId)
.eq(HazardousWorkRefInputItem::getHazardousWorkId, id));
if (StringUtil.isNotEmpty(hazardousWorkRefInputItemServices)) {
List<Long> collect = hazardousWorkRefInputItemServices.stream().map(l -> l.getId())
.collect(Collectors.toList());
iHazardousWorkRefInputItemService.removeByIds(collect);
}
}
}
package com.yeejoin.precontrol.controller;
import com.yeejoin.precontrol.common.dto.StudioPageableDto;
import com.yeejoin.precontrol.common.entity.PersonClock;
import com.yeejoin.precontrol.common.entity.publics.CommonPageable;
import com.yeejoin.precontrol.common.fileparser.utils.DateUtil;
import com.yeejoin.precontrol.common.service.IPersonClockService;
import com.yeejoin.precontrol.common.vo.PersonClockVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.HashMap;
/**
* 人员履历信息(打卡)
*
* @author duanwei
* @date 2020-06-30
*/
@RestController
@Api(tags = "人员履历信息(打卡)Api")
@RequestMapping(value = "/person-clock", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class PersonClockController {
/**
* 用户打卡服务
*/
@Autowired
IPersonClockService iPersonClockService;
/**
* 新增人员履历信息(打卡)
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增人员履历信息(打卡)", notes = "新增人员履历信息(打卡)")
public boolean savePersonClock(HttpServletRequest request, @RequestBody PersonClock personClock) {
return iPersonClockService.save(personClock);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iPersonClockService.removeById(id);
}
/**
* 修改人员履历信息(打卡)
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改人员履历信息(打卡)", notes = "修改人员履历信息(打卡)")
public boolean updateByIdPersonClock(HttpServletRequest request, @RequestBody PersonClock personClock) {
return iPersonClockService.updateById(personClock);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public Object selectById(HttpServletRequest request, @PathVariable Long id) {
return iPersonClockService.getById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "考勤列表分页查询", notes = "考勤列表分页查询")
public Object listPage(CommonPageable pageable,
@ApiParam("查询时间开始") @RequestParam(value = "clockTimeStart", required = false) String clockTimeStart,
@ApiParam("查询时间结束") @RequestParam(value = "clockTimeEnd", required = false) String clockTimeEnd,
@ApiParam("用户id") @RequestParam(value = "personId", required = true) Long personId) {
HashMap<String, Object> param = new HashMap<>(2);
param.put("clockTimeStart", clockTimeStart);
param.put("clockTimeEnd", clockTimeEnd);
param.put("personId", personId);
return iPersonClockService.pageInfo(pageable, param);
}
/**
* 对接闸机生成数字签名
*
* @param deviceNo
* @return ResponseModel
*/
@GetMapping("/signature")
@ApiOperation(httpMethod = "GET", value = "对接闸机生成数字签名", notes = "对接闸机生成数字签名")
public ResponseModel getSignature(@RequestParam("deviceNo") String deviceNo) {
return iPersonClockService.getSignature(deviceNo);
}
/**
* 对接三合闸机人员出入场打卡
*
* @param PersonClockVo
* @return ResponseModel
*/
@PostMapping("/clock")
@ApiOperation(httpMethod = "POST", value = "三合闸机出入场回调接口", notes = "三合闸机出入场回调接口")
public ResponseModel personClock(@RequestBody PersonClockVo PersonClockVo) {
return iPersonClockService.personClock(PersonClockVo);
}
/**
* 开发接口
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/listByDevice", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "考勤列表分页查询", notes = "考勤列表分页查询")
public Object listPage(StudioPageableDto pageable,PersonClockVo personClockVo ) {
return iPersonClockService.listByDevice(pageable, personClockVo);
}
}
package com.yeejoin.precontrol.controller;
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.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.dto.EnterpriseLocusDto;
import com.yeejoin.precontrol.common.entity.PersonContract;
import com.yeejoin.precontrol.common.service.IPersonContractService;
import com.yeejoin.precontrol.common.utils.NameUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
/**
* 人员合同信息
*
* @author duanwei
* @date 2020-06-30
*/
@RestController
@Api(tags = "人员合同信息Api")
@RequestMapping(value = "/person-contract", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class PersonContractController {
/**
* 人员合同服务
*/
@Autowired
IPersonContractService iPersonContractService;
/**
* 新增人员合同信息
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增人员合同信息", notes = "新增人员合同信息")
public boolean savePersonContract(HttpServletRequest request, @RequestBody PersonContract personContract) {
return iPersonContractService.save(personContract);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iPersonContractService.removeById(id);
}
/**
* 修改人员合同信息
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改人员合同信息", notes = "修改人员合同信息")
public boolean updateByIdPersonContract(HttpServletRequest request, @RequestBody PersonContract personContract) {
return iPersonContractService.updateById(personContract);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public Object selectById(HttpServletRequest request, @PathVariable Long id) {
return iPersonContractService.getById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public Object listPage(String pageNum, String pageSize, PersonContract personContract) {
Page<PersonContract> pageBean;
QueryWrapper<PersonContract> personContractQueryWrapper = new QueryWrapper<>();
Class<? extends PersonContract> aClass = personContract.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(personContract);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(personContract);
personContractQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(personContract);
personContractQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(personContract);
personContractQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(personContract);
personContractQueryWrapper.eq(name, fileValue);
}
}
} catch (Exception e) {
}
});
IPage<PersonContract> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iPersonContractService.page(pageBean, personContractQueryWrapper);
return page;
}
@GetMapping("/EnterpriseLocus")
@ApiOperation(httpMethod = "GET", value = "人员企业轨迹", notes = "人员企业轨迹")
public Object enterpriseLocusByPersonId(@ApiParam(value = "分页参数")CommonPageableDto pageableDto, EnterpriseLocusDto enterpriseLocusDto) {
return iPersonContractService.enterpriseLocusByPersonId(enterpriseLocusDto,pageableDto);
}
}
package com.yeejoin.precontrol.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.PropertyUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.feign.KnowledgebaseFeignClient;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.component.rule.RuleTrigger;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.feign.privilege.model.PermissionModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import com.yeejoin.precontrol.common.annotations.OpsLog;
import com.yeejoin.precontrol.common.constant.Constant;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.dto.OutOccupationDto;
import com.yeejoin.precontrol.common.dto.PersonDto;
import com.yeejoin.precontrol.common.dto.SingBadManagementDto;
import com.yeejoin.precontrol.common.dto.TeamPersonSearchDto;
import com.yeejoin.precontrol.common.entity.BadManagementPerson;
import com.yeejoin.precontrol.common.entity.Company;
import com.yeejoin.precontrol.common.entity.CompanyAcount;
import com.yeejoin.precontrol.common.entity.CompanyDepartment;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.PersonAccount;
import com.yeejoin.precontrol.common.entity.PersonAscription;
import com.yeejoin.precontrol.common.entity.PersonContract;
import com.yeejoin.precontrol.common.entity.PersonContractAttachment;
import com.yeejoin.precontrol.common.entity.PersonExam;
import com.yeejoin.precontrol.common.entity.PersonExamination;
import com.yeejoin.precontrol.common.entity.PersonExaminationAttachment;
import com.yeejoin.precontrol.common.entity.PersonInsurance;
import com.yeejoin.precontrol.common.entity.PersonInsuranceAttachment;
import com.yeejoin.precontrol.common.entity.PersonQualifications;
import com.yeejoin.precontrol.common.entity.PersonQualificationsAttachment;
import com.yeejoin.precontrol.common.entity.PersonSkillEducation;
import com.yeejoin.precontrol.common.entity.Project;
import com.yeejoin.precontrol.common.entity.ProjectDevice;
import com.yeejoin.precontrol.common.entity.TaskPerson;
import com.yeejoin.precontrol.common.entity.UserRegistration;
import com.yeejoin.precontrol.common.enums.AscriptionStatusEum;
import com.yeejoin.precontrol.common.enums.ContractTypeEum;
import com.yeejoin.precontrol.common.enums.ContractUsefulEum;
import com.yeejoin.precontrol.common.enums.ExpiryTypeEum;
import com.yeejoin.precontrol.common.enums.HealthStatusEum;
import com.yeejoin.precontrol.common.enums.IdTypeEum;
import com.yeejoin.precontrol.common.enums.OfflineExamEnum;
import com.yeejoin.precontrol.common.enums.OpsLogEnum;
import com.yeejoin.precontrol.common.enums.PersonActiveStatusEnum;
import com.yeejoin.precontrol.common.enums.RoleEnum;
import com.yeejoin.precontrol.common.enums.SexEum;
import com.yeejoin.precontrol.common.enums.SmallProPageEnum;
import com.yeejoin.precontrol.common.enums.SmallProQrColorEum;
import com.yeejoin.precontrol.common.enums.TaskTypeEnum;
import com.yeejoin.precontrol.common.enums.TypeKeyEnum;
import com.yeejoin.precontrol.common.enums.WordTemplateTypeEum;
import com.yeejoin.precontrol.common.exception.BaseException;
import com.yeejoin.precontrol.common.exception.errorEnum.BaseExceptionEnum;
import com.yeejoin.precontrol.common.feign.IntegralFeign;
import com.yeejoin.precontrol.common.param.PersonParam;
import com.yeejoin.precontrol.common.param.VerityPersonParam;
import com.yeejoin.precontrol.common.publish.TranslateEventPublish;
import com.yeejoin.precontrol.common.service.FileService;
import com.yeejoin.precontrol.common.service.IBadManagementPersonService;
import com.yeejoin.precontrol.common.service.IBadManagementService;
import com.yeejoin.precontrol.common.service.ICompanyAcountService;
import com.yeejoin.precontrol.common.service.ICompanyDepartmentService;
import com.yeejoin.precontrol.common.service.ICompanyService;
import com.yeejoin.precontrol.common.service.IDistrictsService;
import com.yeejoin.precontrol.common.service.IPersonAscriptionService;
import com.yeejoin.precontrol.common.service.IPersonContractAttachmentService;
import com.yeejoin.precontrol.common.service.IPersonContractService;
import com.yeejoin.precontrol.common.service.IPersonExamService;
import com.yeejoin.precontrol.common.service.IPersonExaminationAttachmentService;
import com.yeejoin.precontrol.common.service.IPersonExaminationService;
import com.yeejoin.precontrol.common.service.IPersonInsuranceAttachmentService;
import com.yeejoin.precontrol.common.service.IPersonInsuranceService;
import com.yeejoin.precontrol.common.service.IPersonQualificationsAttachmentService;
import com.yeejoin.precontrol.common.service.IPersonQualificationsService;
import com.yeejoin.precontrol.common.service.IPersonService;
import com.yeejoin.precontrol.common.service.IPersonSkillEducationService;
import com.yeejoin.precontrol.common.service.IProjectDeviceService;
import com.yeejoin.precontrol.common.service.IProjectService;
import com.yeejoin.precontrol.common.service.IStatisticsService;
import com.yeejoin.precontrol.common.service.ITaskPersonService;
import com.yeejoin.precontrol.common.service.IUserRegistrationService;
import com.yeejoin.precontrol.common.service.SmallProService;
import com.yeejoin.precontrol.common.utils.CommonResponseUtil;
import com.yeejoin.precontrol.common.utils.FileHelper;
import com.yeejoin.precontrol.common.utils.RedisUtil;
import com.yeejoin.precontrol.common.utils.StringUtil;
import com.yeejoin.precontrol.common.utils.WordTemplateUtils;
import com.yeejoin.precontrol.common.vo.ApprovalPersonVo;
import com.yeejoin.precontrol.common.vo.PersonMsgVo;
import com.yeejoin.precontrol.common.vo.PersonSalaryExcelVo;
import com.yeejoin.precontrol.common.vo.PersonVo;
import com.yeejoin.precontrol.common.vo.ReginParams;
import com.yeejoin.precontrol.common.vo.TeamVo;
import com.yeejoin.precontrol.common.ws.WebSocket;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import sun.misc.BASE64Encoder;
/**
* 人员基本信息
*
* @author duanwei
* @date 2020-06-30
*/
@RestController
@Api(tags = "人员api")
@RequestMapping(value = "/person", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Slf4j
public class PersonController extends BaseController {
/**
* 用户服务
*/
@Autowired
IPersonService iPersonService;
/**
* 关系表服务
*/
@Autowired
IPersonAscriptionService ascriptionService;
/**
* 人员技能和学历服务
*/
@Autowired
IPersonSkillEducationService skillEducationService;
/**
* 人员资质信息服务
*/
@Autowired
IPersonQualificationsService qualificationService;
/**
* 人员资质信息附件服务
*/
@Autowired
IPersonQualificationsAttachmentService qualificAttachService;
/**
* 人员合同信息服务
*/
@Autowired
IPersonContractService contractService;
/**
* 人员合同信息附件服务
*/
@Autowired
IPersonContractAttachmentService contractAttachService;
/**
* 人员体检信息服务类
*/
@Autowired
IPersonExaminationService examinnationService;
/**
* 人员体检信息附件服务
*/
@Autowired
IPersonExaminationAttachmentService examinatiAttachService;
/**
* 人员保险信息服务
*/
@Autowired
IPersonInsuranceService insuranceService;
/**
* 人员保险信息附件服务
*/
@Autowired
IPersonInsuranceAttachmentService insuranceAttachService;
/**
* 小程序服务
*/
@Autowired
SmallProService smallProService;
/**
* 文件服务
*/
@Autowired
FileService fileService;
/**
* 地区服务
*/
@Autowired
IDistrictsService districtsService;
/**
* 公司服务
*/
@Autowired
ICompanyService companyService;
/**
* 项目服务
*/
@Autowired
IProjectService projectService;
/**
* 翻译事件服务
*/
@Autowired
TranslateEventPublish translateEventPublish;
/**
* 文件服务器地址
*/
@Value("${fileserver.domain}")
String fileServerUrl;
/**
* 公司服务
*/
@Autowired
ICompanyService iCompanyService;
/**
* 关系表服务
*/
@Autowired
IPersonAscriptionService iPersonAscriptionService;
/**
* 公司账户服务
*/
@Autowired
ICompanyAcountService iCompanyAcountService;
/**
* 考试成绩服务
*/
@Autowired
IPersonExamService iPersonExamService;
/**
* 产品号
*/
@Value("${admin.product}")
String product;
/**
* 产品密钥
*/
@Value("${admin.appkey}")
String appkey;
/**
* 账户
*/
@Value("${admin.user}")
String user;
/**
* 密码
*/
@Value("${admin.password}")
String password;
@Autowired
IBadManagementService iBadManagementService;
@Autowired
IBadManagementPersonService iBadManagementPersonService;
@Autowired
KnowledgebaseFeignClient KnowledgeBaseFeign;
@Autowired
IProjectDeviceService iProjectDeviceService;
@Autowired
RuleTrigger ruleTrigger;
@Autowired
IPersonExamService personExamService;
@Autowired
RedisUtil redisUtil;
@Autowired
IStatisticsService statisticsService;
@Autowired
IntegralFeign integralFeign;
@Autowired
IUserRegistrationService userRegistrationService;
@Autowired
ICompanyDepartmentService companyDepartmentService;
@Autowired
ITaskPersonService taskPersonService;
/**
* 新增人员基本信息
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增人员基本信息", notes = "新增人员基本信息")
public Object savePerson(@RequestBody PersonDto personDto) {
Person person = iPersonService.queryByIdNumber(personDto.getIdNumber());
if (person != null) {
throw new BaseException("该身份证号已存在");
}
Person resultPerson = this.saveOrUpdatePerson(personDto);
translateEventPublish.publish(resultPerson);
return true;
}
/**
* 修改人员基本信息
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改人员基本信息", notes = "修改人员基本信息")
@OpsLog(value = OpsLogEnum.EDIT_PERSON)
public Object updateByIdPerson(HttpServletRequest request, @RequestBody PersonDto personDto) {
Person person = this.saveOrUpdatePerson(personDto);
translateEventPublish.publish(person);
return true;
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public Object deleteById(@PathVariable Long id) {
HashMap filters = new HashMap<String, Long>();
filters.put("person_id", id);
try {
// 归属信息
ascriptionService.removeByMap(filters);
// 技能学历
skillEducationService.removeByMap(filters);
// 资质信息
qualificationService.removeByMap(filters);
// 合同信息
contractService.removeByMap(filters);
// 体检信息
examinnationService.removeByMap(filters);
// 保险信息
insuranceService.removeByMap(filters);
// 人员信息
iPersonService.removeById(id);
return true;
} catch (Exception e) {
throw new BaseException("删除失败:" + e.toString());
}
}
/**
* 根据ids删除
*
* @param ids
* @return
*/
@RequestMapping(value = "/ids/{ids}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据ids删除", notes = "根据ids删除")
@OpsLog(value = OpsLogEnum.DELETE_PERSON)
public Object deleteByIds(HttpServletRequest request, @PathVariable List<Long> ids) {
int count = iPersonAscriptionService.count(new LambdaQueryWrapper<PersonAscription>()
.in(PersonAscription::getPersonId, ids).isNotNull(PersonAscription::getProjectId));
if (count > 0) {
throw new BaseException("人员未离岗,无法删除");
}
List<Person> list = iPersonService.list(new LambdaQueryWrapper<Person>().in(Person::getId, ids));
List<String> phones = list.stream().map(i -> i.getPhone()).collect(Collectors.toList());
List<String> userIds = list.stream().map(i -> i.getUserId().toString()).collect(Collectors.toList());
String users = Arrays.toString(userIds.toArray());
users = users.replace("[", "").replace("]", "");
FeignClientResult<List<String>> result = Privilege.agencyUserClient.multDeleteUser(users);
if (result.getStatus() == 200 && StringUtil.isNotEmpty(ids)) {
// 归属信息
ascriptionService
.remove(new QueryWrapper<PersonAscription>().lambda().in(PersonAscription::getPersonId, ids));
// 技能学历
skillEducationService.remove(
new QueryWrapper<PersonSkillEducation>().lambda().in(PersonSkillEducation::getPersonId, ids));
// 资质信息
qualificationService.remove(
new QueryWrapper<PersonQualifications>().lambda().in(PersonQualifications::getPersonId, ids));
// 合同信息
contractService.remove(new QueryWrapper<PersonContract>().lambda().in(PersonContract::getPersonId, ids));
// 体检信息
examinnationService
.remove(new QueryWrapper<PersonExamination>().lambda().in(PersonExamination::getPersonId, ids));
// 保险信息
insuranceService.remove(new QueryWrapper<PersonInsurance>().lambda().in(PersonInsurance::getPersonId, ids));
// 注册信息
userRegistrationService
.remove(new LambdaQueryWrapper<UserRegistration>().in(UserRegistration::getPhoneNo, phones));
// 积分信息
try {
integralFeign.deleteByUserIds(ids);
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
}
iPersonService.removeByIds(ids);
return true;
} else {
throw new BaseException(BaseExceptionEnum.PARAMETER_ERROR);
}
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public Object selectById(HttpServletRequest request, @PathVariable Long id) {
return this.getPersonDtoById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public Object listPage(CommonPageableDto pageable, PersonParam personParam) {
long a = System.currentTimeMillis();
// 分包商角色
ReginParams reginParams = getReginInfo();
if (personParam.getCompanyId() == null) {
if (this.isFbsRole(reginParams)) {
personParam.setCompanyId(this.getCompanyId(reginParams));
personParam.setNoneOrgCode(true);
}
}
long b = System.currentTimeMillis();
new Thread(new Runnable() {
@Override
public void run() {
SingBadManagementDto singBadManagementDto = new SingBadManagementDto();
singBadManagementDto.setNature("一类违章");
singBadManagementDto.setId(1L);
try {
ruleTrigger.publish(singBadManagementDto, "施工安全预控/award", new String[0]);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
// ResponseModel<Object> reponse = KnowledgeBaseFeign.getDocListByCategoryId(false,
// 1356609229319413761L, 0, 99, "electrical_engineering");
// Object obj = reponse.getResult();
// List<Map<String,Object>> list = (List<Map<String, Object>>) obj;
Object result = iPersonService.pageInfo(personParam, pageable);
long c = System.currentTimeMillis();
System.out.println("1:" + (b - a));
System.out.println("2:" + (c - b));
return result;
}
/**
* 查询所有安全员
*
* @return
*/
@RequestMapping(value = "/securityPerson/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "查询所有安全员", notes = "查询所有安全员")
public List<Person> listAllSecurityPerson(Long projectId) {
// Person person = getPerson();
return iPersonService.listAllSecurityPerson(projectId);
}
/**
* 查询所有技术员
*
* @return
*/
@RequestMapping(value = "/technicianPerson/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "查询所有技术员", notes = "查询所有技术员")
public List<Person> listAllTechnicianPerson(Long projectId) {
// Person person = getPerson();
return iPersonService.listAllTechnicianPerson(projectId);
}
/**
* 人员二维码
*
* @return
*/
@RequestMapping(value = "/personQrCode", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "人员二维码", notes = "人员二维码")
public void personQrCode(HttpServletResponse response, @RequestParam(required = true) Long personId,
@RequestParam(value = "type", required = false, defaultValue = "png") String type) {
Person person = iPersonService.getById(personId);
if (person != null) {
String fileName = System.currentTimeMillis() + "_" + personId;
String smallProToken = smallProService.getSmallProToken();
String scene = personId.toString();
String page = SmallProPageEnum.personDetail.getPath();
iPersonService.getQrCodeColorByPersonId(personId);
JSONObject color = iPersonService.getQrCodeColorByPersonId(personId);
smallProService.getSmallProQrCodeResponse(smallProToken, scene, page, 280L, false, color, false, response,
fileName, type);
} else {
throw new BaseException("该人员不存在");
}
}
/**
* 离职
*
* @param id
* @return
*/
@RequestMapping(value = "/departure/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "离职", notes = "离职")
public Object departureByPersonId(@PathVariable Long id) {
iPersonService.departureByPersonId(id);
return true;
}
/**
* 导出简历
*
* @param id
* @return
*/
@RequestMapping(value = "/resume/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "导出简历", notes = "导出简历")
public synchronized void resume(HttpServletRequest request, HttpServletResponse response, @PathVariable Long id) {
try {
PersonDto person = this.getPersonDtoById(id);
WordTemplateUtils instance = WordTemplateUtils.getInstance();
if (person.getHeadPhoto() != null) {
person.setHeadPhoto(fileService.getImageBase64(person.getHeadPhoto()));
}
if (person.getFrontCertificatePhoto() != null) {
person.setFrontCertificatePhoto(fileService.getImageBase64(person.getFrontCertificatePhoto()));
}
if (person.getBackCertificatePhoto() != null) {
person.setBackCertificatePhoto(fileService.getImageBase64(person.getBackCertificatePhoto()));
}
// 资质图片转换
List<PersonQualifications> qualifications = person.getPersonQualifications();
if (qualifications != null && !qualifications.isEmpty()) {
qualifications.forEach(q -> {
// 附件
List<PersonQualificationsAttachment> attachment = q.getAttachment();
if (attachment != null && !attachment.isEmpty()) {
attachment.forEach(a -> {
// 附件地址
String path = a.getAttachment();
if (path != null) {
a.setAttachment(fileService.getImageBase64(path));
}
});
}
});
}
// 合同图片转换
PersonContract contract = person.getPersonContract();
if (contract != null) {
List<PersonContractAttachment> attachment = contract.getAttachment();
if (attachment != null && !attachment.isEmpty()) {
attachment.forEach(a -> {
String path = a.getAttachment();
if (path != null) {
a.setAttachment(fileService.getImageBase64(path));
}
});
}
}
// 保险信息图片转换
PersonInsurance insurance = person.getPersonInsurance();
if (insurance != null) {
List<PersonInsuranceAttachment> attachment = insurance.getAttachment();
if (attachment != null && !attachment.isEmpty()) {
attachment.forEach(a -> {
String path = a.getAttachment();
if (path != null) {
a.setAttachment(fileService.getImageBase64(path));
}
});
}
}
// 体检信息图片转换
PersonExamination examination = person.getPersonExamination();
if (examination != null) {
List<PersonExaminationAttachment> attachment = examination.getAttachment();
if (attachment != null && !attachment.isEmpty()) {
attachment.forEach(a -> {
String path = a.getAttachment();
if (path != null) {
a.setAttachment(fileService.getImageBase64(path));
}
});
}
}
Date birthday = person.getBirthday();
Map<String, Object> map = WordTemplateUtils.beanToMap(person);
// 获取人员二维码
Long personId = person.getId();
String fileName = String.valueOf(personId);
String smallProToken = smallProService.getSmallProToken();
String scene = "personId=" + personId;
String page = SmallProPageEnum.personDetail.getPath();
JSONObject color = iPersonService.getQrCodeColorByPersonId(personId);
page = "";
byte[] qrCode = smallProService.getSmallProQrCodeByte(smallProToken, scene, page, 1280L, false, color,
false);
BASE64Encoder encoder = new BASE64Encoder();
map.put("personQrCode", encoder.encode(qrCode));
instance.exportMillCertificateWord(request, response, map, person.getName(),
WordTemplateTypeEum.resume.getTemplateFile());
} catch (Exception e) {
e.printStackTrace();
throw new BaseException("用户信息不完整,无法导出简历");
}
}
/**
* 民族下拉框
*
* @return
*/
@RequestMapping(value = "/nation", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "民族下拉框", notes = "民族下拉框")
public Object nationSelect() {
return iPersonService.nationSelect();
}
/**
* 分包商-人树查询(技术库用)
*
* @return
*/
@RequestMapping(value = "/tree", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "分包商-人树查询", notes = "分包商-人树查询")
public Object tree() {
// Map<String, Object> map = new HashMap<String, Object>();
// map.put("name", "江西电建");
// map.put("type", "group");
List<Map<String, Object>> companyList = new ArrayList<Map<String, Object>>();
// map.put("children", companyList);
List<Company> clist = companyService.list();
for (Company company : clist) {
Map<String, Object> cmap = new HashMap<String, Object>();
cmap.put("name", company.getName());
cmap.put("type", "group");
cmap.put("id", company.getId());
List<Map<String, Object>> personList = new ArrayList<Map<String, Object>>();
cmap.put("children", personList);
companyList.add(cmap);
List<PersonAscription> personAscriptionList = ascriptionService.list(
new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getCompanyId, company.getId()));
Set<Long> personIds = personAscriptionList.stream().map(p -> p.getPersonId()).collect(Collectors.toSet());
if (!personIds.isEmpty()) {
List<Person> pList = iPersonService.list(new LambdaQueryWrapper<Person>().in(Person::getId, personIds));
for (Person person : pList) {
Map<String, Object> pmap = new HashMap<String, Object>();
pmap.put("name", person.getName());
pmap.put("type", "user");
pmap.put("id", person.getId());
personList.add(pmap);
}
}
}
return companyList;
}
/**
* 人列表名称搜索(技术库用)
*
* @return
*/
@RequestMapping(value = "/search", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "人列表名称搜索", notes = "人列表名称搜索")
public Object search(String name) {
List<Map<String, Object>> personList = new ArrayList<Map<String, Object>>();
List<PersonAscription> personAscriptionList = ascriptionService
.list(new LambdaQueryWrapper<PersonAscription>());
Set<Long> personIds = personAscriptionList.stream().map(p -> p.getPersonId()).collect(Collectors.toSet());
if (!personIds.isEmpty()) {
LambdaQueryWrapper<Person> wapper = new LambdaQueryWrapper<Person>();
wapper.in(Person::getId, personIds);
if (name != null) {
wapper.like(Person::getName, name);
}
List<Person> pList = iPersonService.list(wapper);
for (Person person : pList) {
Map<String, Object> pmap = new HashMap<String, Object>();
pmap.put("name", person.getName());
pmap.put("type", "user");
pmap.put("id", person.getId());
personList.add(pmap);
}
}
return personList;
}
/**
* 入职
*
* @return
*/
@RequestMapping(value = "/inOccupation", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "入职", notes = "入职")
public Object inOccupation(PersonAccount personAccount) {
setPlatFormAccess();
iPersonService.inOccupation(personAccount);
return true;
}
/**
* 离职
*
* @return
*/
@RequestMapping(value = "/outOccupation", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "离职", notes = "离职")
public Object outOccupation(OutOccupationDto outOccupationDto) {
Long userId = outOccupationDto.getUserId();
Person person = iPersonService.getOne(new LambdaQueryWrapper<Person>().eq(Person::getUserId, userId));
if (person == null) {
throw new BaseException("用户不存在,请检查是否与平台同步!");
}
PersonAscription personAscription = iPersonAscriptionService
.getOne(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, person.getId()));
if (personAscription != null) {
Long projectId = personAscription.getProjectId();
if (projectId != null) {
Project project = projectService.getById(projectId);
throw new BaseException("您已经加入到" + (project != null ? project.getName() : "已被删除的") + "项目中,请先离岗");
}
}
setPlatFormAccess();
FeignClientResult<AgencyUserModel> agencyUserModelFeignClientResult = Privilege.agencyUserClient
.queryByUserId(String.valueOf(outOccupationDto.getUserId()));
AgencyUserModel userModel = agencyUserModelFeignClientResult.getResult();
Map<Long, List<Long>> maps = new HashMap<>();
Map<Long, List<DepartmentModel>> depts = new HashMap<>();
userModel.setOrgRoleSeqs(maps);
userModel.setCompanyDepartments(depts);
userModel.setLockStatus("LOCK");
FeignClientResult<AgencyUserModel> update = Privilege.agencyUserClient.update(userModel,
String.valueOf(userId));
int status = update.getStatus();
if (status == 200) {
// sequenceNbr代表我们系统的userId
Long sequenceNbr = update.getResult().getSequenceNbr();
if (sequenceNbr != null) {
if (personAscription != null) {
iPersonAscriptionService.update(null,
Wrappers.<PersonAscription>lambdaUpdate().set(PersonAscription::getCompanyId, null)
.set(PersonAscription::getPostName, null)
.set(PersonAscription::getDepartmentId, null)
.eq(PersonAscription::getId, personAscription.getId()));
}
// 当前合同作废
PersonContract contract = new PersonContract();
contract.setUseful(ContractUsefulEum.作废.getValue());
contract.setDepartureTime(new Date());
contractService.update(contract,
new LambdaQueryWrapper<PersonContract>().eq(PersonContract::getPersonId, sequenceNbr)
.eq(PersonContract::getUseful, ContractUsefulEum.生效.getValue()));
// 资质信息
List<PersonQualifications> qList = qualificationService
.list(new LambdaQueryWrapper<PersonQualifications>().eq(PersonQualifications::getPersonId,
person.getId()));
List<Long> qidList = qList.stream().map(i -> i.getId()).collect(Collectors.toList());
if (!qidList.isEmpty()) {
qualificAttachService.remove(new LambdaQueryWrapper<PersonQualificationsAttachment>()
.in(PersonQualificationsAttachment::getPersonQualificationsId, qidList));
}
// 体检信息
List<PersonExamination> eList = examinnationService.list(
new LambdaQueryWrapper<PersonExamination>().eq(PersonExamination::getPersonId, person.getId()));
List<Long> eidList = eList.stream().map(i -> i.getId()).collect(Collectors.toList());
if (!eidList.isEmpty()) {
examinatiAttachService.remove(new LambdaQueryWrapper<PersonExaminationAttachment>()
.in(PersonExaminationAttachment::getPersonExaminationId, eidList));
}
// 保险信息
List<PersonInsurance> iList = insuranceService.list(
new LambdaQueryWrapper<PersonInsurance>().eq(PersonInsurance::getPersonId, person.getId()));
List<Long> iidList = iList.stream().map(i -> i.getId()).collect(Collectors.toList());
if (!iidList.isEmpty()) {
insuranceAttachService.remove(new LambdaQueryWrapper<PersonInsuranceAttachment>()
.in(PersonInsuranceAttachment::getPersonInsuranceId, iidList));
}
}
}
// try {
// FeignClientResult<List<String>> result= Privilege.agencyUserClient.lockUsers(outOccupationDto.getUserId().toString());
// } catch (Exception e) {
// throw new BaseException(e.getMessage());
// }
return true;
}
/**
* 根据分包商查询部门 (查询人员 分两步 写成2个接口的原因是平台调用的接口是两个)
*
* @return
*/
@RequestMapping(value = "/deptQuery", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据分包商查询部门", notes = "根据分包商查询部门")
public Object deptQuery(Long companyId, String roleName, Long projectId) {
List<String> roleNames = new ArrayList<>();
if (StringUtil.isNotEmpty(roleName)) {
String[] split = roleName.split(",");
for (String s : split) {
roleNames.add(s);
}
}
setPlatFormAccess();
Map<String, Object> map = new HashMap<>();
// // 根据分包商查询人员
// List<AgencyUserModel> queryUser = (List<AgencyUserModel>) redisUtil.get(Constant.COMPANY_LIST + companyId);
// if (queryUser == null) {
// FeignClientResult<List<AgencyUserModel>> companyList = Privilege.agencyUserClient
// .queryByCompanyId(companyId, null, null, true);
// queryUser = companyList.getResult();
// redisUtil.set(Constant.COMPANY_LIST + companyId, queryUser);
// }
// Set<Long> companyUserIds = new HashSet<>();
//
// // 将人员数据组装
// for (AgencyUserModel agencyUserModel : queryUser) {
// Map<Long, List<RoleModel>> orgRoles = agencyUserModel.getOrgRoles();
// if (StringUtil.isNotEmpty(orgRoles)) {
// for (Map.Entry<Long, List<RoleModel>> m : orgRoles.entrySet()) {
// Long key = m.getKey();
// List<RoleModel> value = m.getValue();
// for (RoleModel roleModel : value) {
// // 过滤到当前部门的 否则会查询到子部门
// if (key.equals(companyId)) {
// for (String s : roleNames) {
// if (null == roleNames) {
// companyUserIds.add(agencyUserModel.getSequenceNbr());
// continue;
// }
// if (roleModel.getRoleName().equals(s)) {
// companyUserIds.add(agencyUserModel.getSequenceNbr());
// }
// }
// }
// }
// }
// }
// }
// // 获取部门的人员信息
// List<PersonVo> companyPersonVoList = new ArrayList<>();
// if (StringUtil.isNotEmpty(companyUserIds)) {
// Collection<Person> companyUser = iPersonService.listByIds(companyUserIds);
// if (StringUtil.isNotEmpty(companyUser)) {
// for (Person person : companyUser) {
// List<PersonAscription> isExit = getPersonAscriptions(projectId, person);
// if (StringUtil.isNotEmpty(isExit)) {
// PersonVo personVo = getCompanyPersonVo(person);
// companyPersonVoList.add(personVo);
// }
// }
// }
// }
map.put("companyPersonVoList", new ArrayList<>());
Set<String> ids = new HashSet<>();
List<RoleModel> roleModels = (List<RoleModel>) redisUtil.get(Constant.ROLE_LIST);
if (roleModels == null) {
FeignClientResult<List<RoleModel>> roles = Privilege.roleClient.queryRoleList(null, null);
roleModels = roles.getResult();
redisUtil.set(Constant.ROLE_LIST, roleModels);
}
if (StringUtil.isNotEmpty(roleNames)) {
if (StringUtil.isNotEmpty(roleModels)) {
roleModels.forEach(role -> {
if (roleNames.contains(role.getRoleName())) {
ids.add(String.valueOf(role.getSequenceNbr()));
}
});
}
} else {
if (StringUtil.isNotEmpty(roleModels)) {
roleModels.forEach(role -> ids.add(String.valueOf(role.getSequenceNbr())));
}
}
List<TeamVo> teamVos = new ArrayList<>();
CompanyModel companyModel = (CompanyModel) redisUtil.get(Constant.COMPANY_CHILDRES_LIST + companyId);
if (companyModel == null) {
FeignClientResult<CompanyModel> companyChildres = Privilege.departmentClient
.queryByCompanyChilds(companyId);
companyModel = companyChildres.getResult();
redisUtil.set(Constant.COMPANY_CHILDRES_LIST + companyId, companyModel);
}
Collection dept = null;
if (companyModel != null) {
dept = companyModel.getChildren();
}
if (dept != null) {
List<Map> children = (List<Map>) dept;
// List<Map> children=new ArrayList<>();
for (Map child : children) {
DepartmentModel departmentModel = JSONObject.parseObject(JSONObject.toJSONString(child),
DepartmentModel.class);
List<PersonVo> personVoList = new ArrayList<>();
TeamVo teamVo = new TeamVo();
String departmentName = departmentModel.getDepartmentName();
Long sequenceNbr = departmentModel.getSequenceNbr();
String orgCode = departmentModel.getOrgCode();
teamVo.setId(sequenceNbr);
teamVo.setName(departmentName);
teamVo.setOrgCode(orgCode);
List<AgencyUserModel> userListWithChildren = departmentModel.getUserListWithChildren();
if (StringUtil.isNotEmpty(userListWithChildren)) {
List<Long> userIds = userListWithChildren.stream().map(m -> m.getSequenceNbr())
.collect(Collectors.toList());
personVoList = iPersonAscriptionService.getUsers(ids, userIds, projectId);
}
teamVo.setPersonVo(personVoList);
teamVo.setNumber(personVoList.size());
teamVos.add(teamVo);
}
}
if (StringUtil.isNotEmpty(teamVos)) {
List<CompanyAcount> companyAcountList = iCompanyAcountService.list();
teamVos.forEach(teamVo -> {
String teamName = teamVo.getName();
CompanyAcount companyAcount = null;
if (companyAcountList != null && companyAcountList.size() > 0) {
List<CompanyAcount> list = companyAcountList.stream()
.filter(company -> companyId.equals(company.getCompanyId())
&& teamName.equals(company.getTeamName()))
.collect(Collectors.toList());
if (list != null && list.size() == 1) {
companyAcount = list.get(0);
}
}
if (companyAcount != null) {
teamVo.setAcountNumber(companyAcount.getAcountNumber());
teamVo.setBankName(companyAcount.getBankName());
teamVo.setRemark(companyAcount.getRemark());
}
});
}
map.put("teamPersonVoList", teamVos);
return map;
}
private List<PersonVo> getUserList(Set<String> ids, Long deptId, Long projectId) {
// 查询部门下的所有人员数量 暂时不确定是否包含当前部门
FeignClientResult<Collection<DepartmentModel>> collectionFeignClientResult1 = Privilege.departmentClient
.querySubAgencyTreeWithUser(deptId);
List<DepartmentModel> departmentModels = (List<DepartmentModel>) collectionFeignClientResult1.getResult();
List<AgencyUserModel> userList = new ArrayList<>();
if (StringUtil.isNotEmpty(departmentModels)) {
List<AgencyUserModel> userListWithChildren = departmentModels.get(0).getUserListWithChildren();
userList.addAll(userListWithChildren);
}
// 得到的用户
List<Long> userListIds = userList.stream().map(user -> user.getSequenceNbr()).collect(Collectors.toList());
List<PersonVo> users;
if (StringUtil.isNotEmpty(userListIds)) {
return iPersonAscriptionService.getUsers(ids, userListIds, projectId);
} else {
return null;
}
}
/**
* 根据部门查询班组
*
* @return
*/
@RequestMapping(value = "/teamQuery", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据部门查询班组", notes = "根据部门查询班组")
public Object teamQuery(Long deptId, String roleName, Long projectId,boolean fbs) {
setPlatFormAccess();
List<String> roleNames = new ArrayList<>();
if (StringUtils.isNotEmpty(roleName)) {
String[] split = roleName.split(",");
for (String s : split) {
roleNames.add(s);
}
}
// 前端传递过来的是平台的roleName
Set<String> ids = new HashSet<>();
if (StringUtil.isNotEmpty(roleNames)) {
for (String name : roleNames) {
getRoleIdByName(ids, name);
}
} else {
getRoleIdByName(ids, null);
}
String roleIds = getRoleIds(ids);
Map<String, Object> map = new HashMap<>();
// 查询部门的人
FeignClientResult<List<AgencyUserModel>> queryByDepartmentData = Privilege.agencyUserClient
.queryByDeptRoles(deptId, roleIds, null, null);
List<AgencyUserModel> queryByDepartmentUser = queryByDepartmentData.getResult();
Set<Long> companyUserIds = new HashSet<>();
// 过滤部门的人
for (AgencyUserModel agencyUserModel : queryByDepartmentUser) {
companyUserIds.add(agencyUserModel.getSequenceNbr());
}
List<PersonVo> companyPersonVoList = new ArrayList<>();
if (StringUtil.isNotEmpty(companyUserIds)) {
Collection<Person> companyUser = iPersonService.listByIds(companyUserIds);
if (StringUtil.isNotEmpty(companyUser)) {
for (Person person : companyUser) {
List<PersonAscription> isExit = getPersonAscriptions(projectId, person);
if (StringUtil.isNotEmpty(isExit)) {
PersonVo personVo = getCompanyPersonVo(person);
companyPersonVoList.add(personVo);
}
}
}
}
map.put("companyPersonVoList", companyPersonVoList);
// 查询班组的人
FeignClientResult<Collection<DepartmentModel>> collectionFeignClientResult = Privilege.departmentClient
.querySubAgencyTree(deptId);
Collection<DepartmentModel> result = collectionFeignClientResult.getResult();
List<TeamVo> teamVos = new ArrayList<>();
if (StringUtil.isNotEmpty(result)) {
result.forEach(r -> {
if(!fbs&&"fbs".equals(r.getLevel()))
{
}else
{
List<PersonVo> personVoList = getUserList(ids, r.getSequenceNbr(), projectId);
TeamVo teamVo = new TeamVo();
String departmentName = r.getDepartmentName();
teamVo.setId(r.getSequenceNbr());
teamVo.setName(departmentName);
if (StringUtil.isNotEmpty(personVoList)) {
teamVo.setNumber(personVoList.size());
} else {
teamVo.setNumber(0);
}
teamVo.setOrgCode(r.getOrgCode());
teamVo.setPersonVo(personVoList);
teamVos.add(teamVo);
}
});
}
map.put("teamPersonVoList", teamVos);
return map;
}
/**
* 根据名称获取roleId
*
* @param ids
* @param name
*/
private void getRoleIdByName(Set<String> ids, String name) {
// if (name == null) {
// return;
// }
FeignClientResult<List<RoleModel>> listFeignClientResult = Privilege.roleClient.queryRoleList(name, null);
List<RoleModel> roleModels = listFeignClientResult.getResult();
if (StringUtil.isNotEmpty(roleModels)) {
roleModels.forEach(role -> {
if(name==null)
{
ids.add(String.valueOf(role.getSequenceNbr()));
}else
{
if (name.equals(role.getRoleName())) {
ids.add(String.valueOf(role.getSequenceNbr()));
}
}
});
}
}
/**
* 查询人员-通过平台
*
* @return
*/
@RequestMapping(value = "/teamPersonSearch", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "查询人员-通过平台", notes = "查询人员-通过平台")
public Object teamQuery(TeamPersonSearchDto teamPersonSearchDto, CommonPageableDto pageable) {
setPlatFormAccess();
List<String> ids = new ArrayList<>();
if (pageable.getIsAll() == 1) {
pageable.setPageNumber(0);
pageable.setPageSize(Integer.MAX_VALUE);
}
Page<Person> page = new Page<>(pageable.getPageNumber(), pageable.getPageSize());
List<Long> userIds = new ArrayList<>();
IPage<PersonVo> personVos = null;
LambdaQueryWrapper<PersonAscription> personAscriptionLambdaQueryWrapper = new LambdaQueryWrapper<>();
personAscriptionLambdaQueryWrapper.select(PersonAscription::getPersonId);
if (StringUtil.isNotEmpty(teamPersonSearchDto.getProjectId())) {
personAscriptionLambdaQueryWrapper.eq(PersonAscription::getProjectId, teamPersonSearchDto.getProjectId());
}
if (StringUtil.isNotEmpty(teamPersonSearchDto.getCompanyId())) {
personAscriptionLambdaQueryWrapper.eq(PersonAscription::getCompanyId, teamPersonSearchDto.getCompanyId());
// 违章人员列表搜索 如果传过来两个roleName,请求平台接口会返回空,根据公司是否分包商进行区分后
Company company = companyService.getById(teamPersonSearchDto.getCompanyId());
// 技术交底安全员的角色进行处理
if (StringUtil.isNotEmpty(teamPersonSearchDto.getRoleName())
&& teamPersonSearchDto.getRoleName().contains("security")) {
if (company.getTypeKey().equals(TypeKeyEnum.JXDJ.getLongType() + "")) {
teamPersonSearchDto.setRoleName("security");
} else if (company.getTypeKey().equals(TypeKeyEnum.COMPANY.getLongType() + "")) {
teamPersonSearchDto.setRoleName(RoleEnum.FBS_SECURITY.getValue());
}
}
// 三交三查技术员的角色进行处理
if (StringUtil.isNotEmpty(teamPersonSearchDto.getRoleName())
&& teamPersonSearchDto.getRoleName().contains("technician")) {
if (company.getTypeKey().equals(TypeKeyEnum.JXDJ.getLongType() + "")) {
teamPersonSearchDto.setRoleName("technician");
} else if (company.getTypeKey().equals(TypeKeyEnum.COMPANY.getLongType() + "")) {
teamPersonSearchDto.setRoleName(RoleEnum.FBS_TECHNICIAN.getValue());
}
}
// 三交三查工程人员的角色进行处理
if (StringUtil.isNotEmpty(teamPersonSearchDto.getRoleName())
&& teamPersonSearchDto.getRoleName().contains("project")) {
if (company.getTypeKey().equals(TypeKeyEnum.JXDJ.getLongType() + "")) {
teamPersonSearchDto.setRoleName("project");
} else if (company.getTypeKey().equals(TypeKeyEnum.COMPANY.getLongType() + "")) {
teamPersonSearchDto.setRoleName(RoleEnum.FBS_DIRECTOR.getValue());
}
}
}
List<PersonAscription> personAscriptionList = iPersonAscriptionService.list(personAscriptionLambdaQueryWrapper);
if (StringUtil.isNotEmpty(personAscriptionList)) {
personAscriptionList.forEach(p -> userIds.add(p.getPersonId()));
LambdaQueryWrapper<Person> personLambdaQueryWrapper = new LambdaQueryWrapper<>();
personLambdaQueryWrapper.in(Person::getId, userIds);
if (StringUtils.isNotEmpty(teamPersonSearchDto.getUserName())) {
personLambdaQueryWrapper.like(Person::getName, teamPersonSearchDto.getUserName());
}
if (StringUtils.isNotEmpty(teamPersonSearchDto.getRoleName())) {
personLambdaQueryWrapper.apply("FIND_IN_SET({0},role_key)", teamPersonSearchDto.getRoleName());
}
IPage<Person> personPageData = iPersonService.page(page, personLambdaQueryWrapper);
List<Person> records = personPageData.getRecords();
List<PersonVo> personVoList = new ArrayList<>();
for (Person person : records) {
PersonVo personVo = new PersonVo();
BeanUtils.copyProperties(person, personVo);
personVo.setJxdj(person.getIsJxdj() == 1L);
if (person.getQualified() != null) {
if (personVo.getQualified()) {
personVo.setQualifiedName("已通过");
} else {
personVo.setQualifiedName("未通过");
}
} else {
personVo.setQualifiedName("未通过");
}
List<PersonAscription> list = iPersonAscriptionService.list(
new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, personVo.getId()));
if (StringUtil.isNotEmpty(list)) {
PersonAscription personAscription = list.get(0);
if (personAscription != null) {
Long companyId = personAscription.getCompanyId();
if (companyId != null) {
Company company = iCompanyService.getById(companyId);
personVo.setCompanyName(company.getName());
}
personVo.setPostName(personAscription.getPostName());
}
personVo.setStatusLabel("在岗");
} else {
personVo.setStatusLabel("不在岗");
}
personVoList.add(personVo);
}
personVos = new Page<>();
personVos.setRecords(personVoList);
personVos.setTotal(personVoList.size());
personVos.setSize(pageable.getPageSize());
personVos.setCurrent(pageable.getPageNumber());
}
return personVos;
}
/**
* 拷贝获取人员数据
*
* @param person
* @return
*/
private PersonVo getCompanyPersonVo(Person person) {
PersonVo personVo = new PersonVo();
BeanUtils.copyProperties(person, personVo);
personVo.setJxdj(person.getIsJxdj() == 1L);
if (personVo.getHeadPhoto() != null) {
personVo.setHeadPhoto(fileServerUrl + personVo.getHeadPhoto());
}
if (personVo.getQualified() != null) {
if (personVo.getQualified()) {
personVo.setQualifiedName("已通过");
} else {
personVo.setQualifiedName("未通过");
}
}
List<PersonAscription> list = iPersonAscriptionService
.list(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, personVo.getId()));
if (StringUtil.isNotEmpty(list)) {
PersonAscription personAscription = list.get(0);
if (personAscription != null) {
personVo.setPostName(personAscription.getPostName());
}
Long queryCompanyId = personAscription.getCompanyId();
if (queryCompanyId != null) {
Company company = iCompanyService.getById(queryCompanyId);
personVo.setCompanyName(company.getName());
}
personVo.setPostName(personAscription.getPostName());
personVo.setStatusLabel("在岗");
} else {
personVo.setStatusLabel("不在岗");
}
return personVo;
}
/**
* 根据ids转换字符串
*
* @param ids
* @return
*/
private String getRoleIds(Set<String> ids) {
String roleIds = null;
if (StringUtil.isNotEmpty(ids)) {
roleIds="";
for (String id : ids) {
roleIds += id + ",";
}
roleIds = roleIds.substring(0, roleIds.length() - 1);
}
return roleIds;
}
/**
* 根据项目id和人员信息返回关系表对象
*
* @param person
* @return
*/
private List<PersonAscription> getPersonAscriptions(Long projectId, Person person) {
Long personId = person.getId();
LambdaQueryWrapper<PersonAscription> personAscriptionLambdaQueryWrapper = new LambdaQueryWrapper<>();
personAscriptionLambdaQueryWrapper.eq(PersonAscription::getPersonId, personId);
if (projectId != null) {
personAscriptionLambdaQueryWrapper.eq(PersonAscription::getProjectId, projectId);
}
return iPersonAscriptionService.list(personAscriptionLambdaQueryWrapper);
}
/**
* 保存或者更新人员
*
* @param personDto
* @return
*/
private Person saveOrUpdatePerson(PersonDto personDto) {
if (StringUtil.isNotEmpty(personDto.getIdNumber())) {
int idCount = iPersonService
.count(new LambdaQueryWrapper<Person>().eq(Person::getIdNumber, personDto.getIdNumber()));
if (idCount > 1) {
throw new BaseException("无法编辑,人员身份证号重复");
}
}
Person person = new Person();
try {
PropertyUtils.copyProperties(person, personDto);
} catch (Exception e) {
e.printStackTrace();
}
// // 0红 1黄 2绿
// if (person.getQualified() == null) {
// person.setColor(2L);
// } else {
// if (person.getQualified()) {
// person.setColor(2L);
// } else {
// person.setColor(0L);
// }
// }
// boolean saveFlag = personDto.getId() == null;
Long userId = person.getUserId();
if (userId != null) {
Person one = iPersonService.getOne(new QueryWrapper<Person>().lambda().eq(Person::getUserId, userId));
// 修改用户
if (one != null && person.getId() != null && one.getId().longValue() != person.getId().longValue()) {
throw new BaseException("该平台账号已被绑定");
}
// 新增用户
if (one != null && person.getId() == null) {
throw new BaseException("该平台账号已被绑定");
}
}
Person oldPerson = iPersonService.getById(personDto.getId());
// 账户信息
PersonAccount personAccount = personDto.getPersonAccount();
// 判断角色是否改变
if (!oldPerson.getRoles().equals(Arrays.toString(personAccount.getRoleIdList().toArray()))) {
int count = taskPersonService.count(new LambdaQueryWrapper<TaskPerson>()
.eq(TaskPerson::getPersonId, oldPerson.getId()).eq(TaskPerson::getReadStatus, 0L));
if (count > 0) {
throw new BaseException("存在未处理的任务,无法进行角色变更");
}
}
// 基本信息
if (person.getHeadPhoto() != null) {
person.setHeadPhoto(person.getHeadPhoto().replace(fileServerUrl, ""));
}
if (person.getBackCertificatePhoto() != null) {
person.setBackCertificatePhoto(person.getBackCertificatePhoto().replace(fileServerUrl, ""));
}
if (person.getFrontCertificatePhoto() != null) {
person.setFrontCertificatePhoto(person.getFrontCertificatePhoto().replace(fileServerUrl, ""));
}
iPersonService.saveOrUpdate(person);
// 如果图片是null 至为null
iPersonService.updatePhoto(person);
Long personId = person.getId();
PersonAscription ascription = personDto.getPersonAscription();
// 归属信息
if (ascription != null) {
ascription.setPersonId(personId);
if (ascription.getProjectId() != null) {
ascription.setStatus(AscriptionStatusEum.在岗.getValue());
} else {
ascription.setStatus(AscriptionStatusEum.离岗.getValue());
}
// 修复bug 把>名称存进去了,导致重复
if (ascription.getDepartmentName()!=null&&ascription.getDepartmentName().contains(">") && oldPerson.getIsJxdj() == 1) {
ascription.setDepartmentName(null);
}
ascriptionService.saveOrUpdate(ascription);
}
// 账户信息
// PersonAccount personAccount = personDto.getPersonAccount();
AgencyUserModel userModel = new AgencyUserModel();
userModel.setAppCodes(personAccount.getApplicationList());
Map<Long, List<Long>> map = new HashMap<>();
map.put(personAccount.getPlatformDepartmentId(), personAccount.getRoleIdList());
userModel.setOrgRoleSeqs(map);
userModel.setLockStatus("UNLOCK");
person.setRoles(Arrays.toString(personAccount.getRoleIdList().toArray()));
iPersonService.setNewRoleName(person, personAccount.getRoleList());
person.setDeptType(personAccount.getPlatformDepartmentType());
iPersonService.updateById(person);
try {
FeignClientResult<AgencyUserModel> result = Privilege.agencyUserClient.update(userModel,
oldPerson.getUserId().toString());
} catch (Exception e) {
log.error(e.getMessage());
throw new BaseException("平台更新账户失败");
}
// 如果是江西电建人员不做后面处理
if (oldPerson != null && oldPerson.getIsJxdj() == TypeKeyEnum.JXDJ.getLongType()) {
return oldPerson;
}
Long companyId = ascription != null ? ascription.getCompanyId() : null;
if (companyId != null) {
PersonContract contract = personDto.getPersonContract();
// 合同信息
if (contract != null) {
contract.setPersonId(personId);
// 合同归属公司
Long oldContractCompanyId = contract.getContractCompanyId();
// 公司没变或入职,进行新增/更改合同信息
if (companyId.equals(oldContractCompanyId) || oldContractCompanyId == null) {
contract.setUseful(ContractUsefulEum.生效.getValue());
contract.setContractCompanyId(companyId);
contractService.saveOrUpdate(contract);
contractAttachService.saveAttach(contract.getId(), contract.getAttachment());
} else {
throw new BaseException("合同的公司名称与所在单位不一致!");
}
}
} else {
throw new BaseException("请选择所在单位!");
}
PersonSkillEducation skillEducation = personDto.getPersonSkillEducation();
// 技能学历
if (skillEducation != null) {
skillEducation.setPersonId(personId);
skillEducationService.saveOrUpdate(skillEducation);
}
qualificationService
.remove(new LambdaQueryWrapper<PersonQualifications>().eq(PersonQualifications::getPersonId, personId));
List<PersonQualifications> qualifications = personDto.getPersonQualifications();
// 资质信息
if (qualifications != null) {
qualifications.forEach(q -> {
q.setPersonId(personId);
qualificationService.saveOrUpdate(q);
qualificAttachService.saveAttach(q.getId(), q.getAttachment());
});
}
PersonExamination examination = personDto.getPersonExamination();
// 体检信息
if (examination != null) {
examination.setPersonId(personId);
examinnationService.saveOrUpdate(examination);
examinatiAttachService.saveAttach(examination.getId(), examination.getAttachment());
}
PersonInsurance insurance = personDto.getPersonInsurance();
// 保险信息
if (insurance != null) {
insurance.setPersonId(personId);
insuranceService.saveOrUpdate(insurance);
insuranceAttachService.saveAttach(insurance.getId(), insurance.getAttachment());
}
// 如果最新安全考试通过则变为绿码 如果不通过则变为红码
List<PersonExam> exams = personDto.getPersonExams();
List<PersonExam> oldExams = iPersonExamService
.list(new LambdaQueryWrapper<PersonExam>().eq(PersonExam::getPersonId, personId));
exams.removeAll(oldExams);
boolean reEduQualified = false;
if (exams.size() > 0) {
PersonExam item = exams.get(exams.size() - 1);
if (item.getType().equals(OfflineExamEnum.THREE_SEC.getLabel())) {
if (item.getQualified()) {
person.setColor(SmallProQrColorEum.green.getSqlCode());
} else {
person.setColor(SmallProQrColorEum.red.getSqlCode());
}
} else if (item.getType().equals(OfflineExamEnum.SEC_RE_TRAIN.getLabel())) {
if (item.getQualified()) {
reEduQualified = true;
person.setColor(SmallProQrColorEum.green.getSqlCode());
} else {
person.setColor(SmallProQrColorEum.red.getSqlCode());
}
}
person.setQualified(item.getQualified());
person.setExamineScore(Long.valueOf(item.getScore()));
}
iPersonService.saveOrUpdate(person);
// 更新推送
if (oldPerson.getColor() != person.getColor()) {
statisticsService.initWs(oldPerson.getOrgCode(), Constant.WS_REDORGREENCODE);
}
// 如果有再教育考试合格使红码变绿 并且有三次以上违章 则修改之前的违章为失效统计违章
int count = iBadManagementPersonService.count(new LambdaQueryWrapper<BadManagementPerson>()
.eq(BadManagementPerson::getPersonId, person.getId()).eq(BadManagementPerson::getValid, true));
if (reEduQualified && SmallProQrColorEum.green.getSqlCode() == person.getColor() && count >= 3) {
BadManagementPerson badManagementPerson = new BadManagementPerson();
badManagementPerson.setValid(false);
iBadManagementPersonService.update(badManagementPerson,
new LambdaQueryWrapper<BadManagementPerson>().eq(BadManagementPerson::getPersonId, person.getId()));
}
// 考试信息
if (exams != null) {
exams.forEach(exam -> {
if ("ThreeLevelSafety".equals(exam.getExamSubjectType())) {
exam.setExamSubjectType(OfflineExamEnum.THREE_SEC.getType());
}
exam.setPersonId(personId);
iPersonExamService.saveOrUpdate(exam);
});
}
// 同步门禁人脸数据
Person newPerson = iPersonService.getById(person.getId());
PersonAscription personAscription = ascriptionService
.getOne(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, person.getId()));
List<ProjectDevice> list = iProjectDeviceService.list(new LambdaQueryWrapper<ProjectDevice>()
.eq(ProjectDevice::getProjectId, personAscription.getProjectId()));
List<String> sessonNames = list.stream().map(ProjectDevice::getNumber).collect(Collectors.toList());
if (StringUtil.isNotEmpty(sessonNames)) {
WebSocket.addPerson(newPerson, sessonNames);
}
return person;
}
/**
* 根据id获取人员
*
* @param id
* @return
*/
private PersonDto getPersonDtoById(Long id) {
Person person = iPersonService.getById(id);
PersonDto personDto = new PersonDto();
if (person != null) {
if (person.getSex() != null) {
person.setSexLabel(SexEum.getLabelByValue(person.getSex()));
}
if (person.getIdType() != null) {
person.setIdTypeLabel(IdTypeEum.getLabelByValue(person.getIdType()));
}
String nativePlace = person.getNativePlace();
if (nativePlace != null) {
person.setNativePlaceLabel(districtsService.selectLabelByIds(nativePlace.split(",")));
}
String employPlaceLabel = person.getEmployPlace();
if (employPlaceLabel != null) {
person.setEmployPlaceLabel(districtsService.selectLabelByIds(employPlaceLabel.split(",")));
}
BeanUtils.copyProperties(person, personDto);
personDto.setJxdj(person.getIsJxdj() == 1L);
personDto.setActiveStatusLabel(PersonActiveStatusEnum
.getNameByType(personDto.getActiveStatus() != null ? personDto.getActiveStatus().intValue() : 0));
String filterColum = "person_id";
PersonAscription ascription = ascriptionService
.getOne(new QueryWrapper<PersonAscription>().eq(filterColum, id));
if (ascription != null) {
String workPlaceKey = ascription.getWorkPlaceKey();
if (workPlaceKey != null) {
if ("0".equals(workPlaceKey)) {
ascription.setWorkPlaceKeyLabel("国内");
}
if ("1".equals(workPlaceKey)) {
ascription.setWorkPlaceKeyLabel("国外");
}
}
Integer status = ascription.getStatus();
if (status != null) {
ascription.setStatusLabel(AscriptionStatusEum.getLabelByValue(status));
} else {
ascription.setStatus(AscriptionStatusEum.离岗.getValue());
ascription.setStatusLabel(AscriptionStatusEum.离岗.getLabel());
}
Long companyId = ascription.getCompanyId();
if (companyId != null) {
Company company = companyService.getById(companyId);
personDto.setCompany(company);
ascription.setCompanyName(company != null ? company.getName() : null);
}
Long projectId = ascription.getProjectId();
if (projectId != null) {
Project project = projectService.getById(projectId);
personDto.setProject(project);
ascription.setProjectName(project != null ? project.getName() : null);
}
Long departmentId = ascription.getDepartmentId();
if (departmentId != null) {
// DepartmentModel department = getDepartment(departmentId);
if (person.getIsJxdj() == 0) {
CompanyDepartment companyDepartment = companyDepartmentService.getById(departmentId);
String departmentName = companyDepartment != null ? companyDepartment.getName() : null;
ascription.setDepartmentName(departmentName);
} else {
StringBuffer sb = new StringBuffer();
FeignClientResult<Collection<DepartmentModel>> fr = Privilege.departmentClient
.queryListByChild(departmentId);
Collection<DepartmentModel> collection = fr.getResult();
List<DepartmentModel> list = new ArrayList<DepartmentModel>(collection);
Collections.reverse(list);
if (!list.isEmpty()) {
for (DepartmentModel departmentModel : list) {
sb.append(departmentModel.getDepartmentName()).append(">");
}
}
sb.append(ascription.getDepartmentName());
ascription.setDepartmentName(sb.toString());
}
} else {
ascription.setDepartmentName(null);
}
}
// 归属信息
personDto.setPersonAscription(ascription);
// 技能学历
PersonSkillEducation skillEducation = skillEducationService
.getOne(new QueryWrapper<PersonSkillEducation>().eq(filterColum, id));
// if (skillEducation == null) {
// skillEducation = new PersonSkillEducation();
// }
personDto.setPersonSkillEducation(skillEducation);
// 资质信息
List<PersonQualifications> qualifications = qualificationService
.list(new QueryWrapper<PersonQualifications>().eq(filterColum, id));
if (qualifications != null) {
qualifications.forEach(q -> {
List<PersonQualificationsAttachment> list = qualificAttachService
.list(new QueryWrapper<PersonQualificationsAttachment>().eq("person_qualifications_id",
q.getId()));
q.setAttachment(list);
});
}
// if (qualifications == null) {
// qualifications = new ArrayList<PersonQualifications>();
// }
personDto.setPersonQualifications(qualifications);
// 合同信息
PersonContract contract = contractService.getOne(new QueryWrapper<PersonContract>().eq(filterColum, id)
.eq("useful", ContractUsefulEum.生效.getValue()));
if (contract != null) {
String contractTypeKey = contract.getContractTypeKey();
if (contractTypeKey != null) {
contract.setContractTypeKeyLabel(ContractTypeEum.getLabelByValue(contractTypeKey));
}
String expiryTypeKey = contract.getExpiryTypeKey();
if (expiryTypeKey != null) {
contract.setExpiryTypeKeyLabel(ExpiryTypeEum.getLabelByValue(expiryTypeKey));
}
List<PersonContractAttachment> list = contractAttachService
.list(new QueryWrapper<PersonContractAttachment>().eq("person_contract_id", contract.getId()));
contract.setAttachment(list);
Long companyId = contract.getContractCompanyId();
if (companyId != null) {
Company company = companyService.getById(companyId);
contract.setContractCompanyName(company != null ? company.getName() : null);
}
}
// if (contract == null) {
// contract = new PersonContract();
// }
personDto.setPersonContract(contract);
// 体检信息
PersonExamination examination = examinnationService
.getOne(new QueryWrapper<PersonExamination>().eq(filterColum, id));
if (examination != null) {
String healthStatus = examination.getHealthStatus();
if (healthStatus != null) {
examination.setHealthStatusLabel(HealthStatusEum.getLabelByValue(healthStatus));
}
List<PersonExaminationAttachment> list = examinatiAttachService
.list(new QueryWrapper<PersonExaminationAttachment>().eq("person_examination_id",
examination.getId()));
examination.setAttachment(list);
}
// if (examination == null) {
// examination = new PersonExamination();
// }
personDto.setPersonExamination(examination);
// 保险信息
PersonInsurance insurance = insuranceService
.getOne(new QueryWrapper<PersonInsurance>().eq(filterColum, id));
if (insurance != null) {
List<PersonInsuranceAttachment> list = insuranceAttachService.list(
new QueryWrapper<PersonInsuranceAttachment>().eq("person_insurance_id", insurance.getId()));
insurance.setAttachment(list);
}
// if (insurance == null) {
// insurance = new PersonInsurance();
// }
personDto.setPersonInsurance(insurance);
// 考试信息
List<PersonExam> exams = iPersonExamService.list(new QueryWrapper<PersonExam>().eq(filterColum, id));
personDto.setPersonExams(exams);
// 调用积分系统 获取个人积分
// try {
// ResponseModel<Double> personIntegral = integralFeign.getPersonIntegral(person.getId());
// if (personIntegral != null && personIntegral.getResult() != null) {
// Double result = personIntegral.getResult();
// personDto.setIntegral(result);
// }
// } catch (Exception e) {
// log.error("积分系统 调用失败", e);
// }
// 账户信息
FeignClientResult<AgencyUserModel> result = Privilege.agencyUserClient
.queryByUserId(person.getUserId().toString());
if (result == null || result.getResult() == null) {
throw new BaseException("平台账户不存在!");
}
PersonAccount personAccount = new PersonAccount();
result.getResult().getOrgRoleSeqs().forEach((key, value) -> {
personAccount.setPlatformDepartmentId(key);
});
personAccount.setAccount(person.getAccountName());
personAccount.setApplicationList(result.getResult().getAppCodes());
Map<Long, List<Long>> map = result.getResult().getOrgRoleSeqs();
map.forEach((key, value) -> {
personAccount.setRoleIdList(value);
});
personDto.setPersonAccount(personAccount);
} else {
throw new BaseException("用户不存在!");
}
return personDto;
}
/**
* 积分记录
*
* @param personId
* @param pageSize
* @param pageNumber
* @return
*/
@RequestMapping(value = "/integral/page", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "积分记录", notes = "积分记录")
public Object personIntegralPage(@RequestParam("personId") Long personId,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(value = "pageNumber", defaultValue = "1") Integer pageNumber) {
ResponseModel<Object> personIntegralPage = integralFeign.getIntegralPage(personId, pageNumber, pageSize);
Object result = personIntegralPage.getResult();
return result;
}
/**
* 判断人员是否可以发起任务
*
* @return
*/
@RequestMapping(value = "/canSendTask/{type}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "判断人员是否可以发起任务", notes = "判断人员是否可以发起任务")
public Object canSend(@PathVariable Long type) {
Person person = iPersonService.getById(getPerson().getId());
PersonAscription personAscription = iPersonAscriptionService
.getOne(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, person.getId()));
Map<String, Object> map = new HashMap<String, Object>();
map.put("result", true);
if (person.getIsJxdj() != 1L) {
if (TaskTypeEnum.TASKPAYCHECK.getValue() == type) {
if (person.getActiveStatus() == null || person.getActiveStatus() != 1L) {
map.put("result", false);
map.put("message", "分包商人员未入场,无法发起任务");
return map;
}
} else {
if (personAscription == null || personAscription.getProjectId() == null) {
map.put("result", false);
map.put("message", "分包商人员未上岗,无法发起任务");
return map;
}
}
} else {
if (personAscription == null || personAscription.getProjectId() == null) {
map.put("result", false);
map.put("message", "江西电建人员未上岗,无法发起任务");
return map;
}
}
return map;
}
/**
* 查询时间段内参与考勤的人
*
* @return
*/
@RequestMapping(value = "/period", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = " 查询时间段内参与考勤的人", notes = "查询时间段内参与考勤的人")
public Object period(CommonPageableDto pageable, PersonParam personParam,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date payStartTime,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date payEndTime, Long operType, HttpServletResponse response) {
IPage<PersonVo> page = new Page<PersonVo>();
if (personParam.getCompanyId() == null || personParam.getProjectId() == null || payStartTime == null
|| payEndTime == null) {
} else {
page = iPersonService.period(pageable, personParam, payStartTime, payEndTime);
}
if (operType == 1) {
String fileName = UUID.randomUUID().toString() + ".xls";
List<PersonVo> excelList = page.getRecords();
List<PersonSalaryExcelVo> list = new ArrayList<PersonSalaryExcelVo>();
excelList.forEach(item -> {
PersonSalaryExcelVo personSalaryExcelVo = new PersonSalaryExcelVo();
BeanUtils.copyProperties(item, personSalaryExcelVo);
list.add(personSalaryExcelVo);
});
FileHelper.exportExcel(list, "薪资人员信息", "薪资人员信息", PersonSalaryExcelVo.class, fileName, response);
return null;
} else {
return page;
}
}
@ApiOperation("待审核列表")
@GetMapping(value = "/waitVerity/list")
public Page<ApprovalPersonVo> getWaitVerityList(@RequestParam int pageSize, @RequestParam int pageNumber,
@RequestParam Long companyId, @RequestParam Long projectId, @RequestParam(required = false) String name) {
// 1.特殊處理,為空不然查詢
if (companyId == null || projectId == null) {
return new Page<>(pageSize, pageNumber);
}
Person person = getPerson();
return iPersonService.verityPageList(pageSize, pageNumber, name, companyId, projectId, person);
}
@ApiOperation("人员审核")
@PostMapping(value = "/verity")
public boolean verityPersonInfo(@RequestBody VerityPersonParam param) {
buildRequestContext();
Person verifyPerson = getPerson();
boolean b = iPersonService.verityPersonInfo(param, verifyPerson);
// if (Boolean.TRUE.equals(b) && param.getStatus() == PersonCheckStatus.INITED.getStatus()) {
// UserRegistration userRegistration = userRegistrationService.getById(param.getId());
// iPersonService.updatePlatformUser(userRegistration);
// }
return b;
}
@ApiOperation("人员简单信息")
@GetMapping(value = "/simple")
public Object simple(Person person) {
LambdaQueryWrapper<Person> wrapper = new LambdaQueryWrapper<>();
if (StringUtil.isNotEmpty(person.getId()) || StringUtil.isNotEmpty(person.getIdNumber())) {
if (StringUtil.isNotEmpty(person.getId())) {
wrapper.eq(Person::getId, person.getId());
}
if (StringUtil.isNotEmpty(person.getIdNumber())) {
wrapper.eq(Person::getIdNumber, person.getIdNumber());
}
return iPersonService.getOne(wrapper);
} else {
return null;
}
}
/**
* @param
* @Description 檢查人員信息是否完成
* @Return Boolean
* @Date 2021/4/8 15:08
*/
@ApiOperation("檢查人員信息是否完成")
@GetMapping("/checkPersonMessage")
public Boolean checkPersonMessageIsFinish() {
return iPersonService.checkPersonMessageIsFinish(getPerson().getId());
}
@GetMapping("/personMsg/{userId}")
public PersonMsgVo personMsg(@PathVariable Long userId) {
return iPersonService.personMsg(userId);
}
@GetMapping("/personTree")
public Object personTree() {
AgencyUserModel agencyUserModel = getUserInfo();
String userId = agencyUserModel.getUserId();
return iPersonService.personTree(userId);
}
/**
* 获取监控屏-安全 菜单权限
*
* @return
*/
@GetMapping(value = "menu/list")
@ApiOperation(value = "获取监控屏-安全 菜单权限", notes = "获取监控屏-安全 菜单权限")
public Object getMenuList() {
RequestContext.setToken(getToken());
RequestContext.setProduct("AMOS_STUDIO_WEB");
RequestContext.setAppKey("studio_normalapp_2941403");
List<PermissionModel> permissionModels = (List) Privilege.permissionClient
.currentPermissionTree("WEB", null, null, null).getResult();
Collection<PermissionModel> children = permissionModels.get(0).getChildren();
return CommonResponseUtil.success(children);
}
/**
* 新增人员账号信息
*
* @return
*/
@RequestMapping(value = "/saveNew", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增人员账号信息", notes = "新增人员账号信息")
public Object savePersonNew(@RequestBody PersonAccount personAccount) {
return iPersonService.savePersonNew(personAccount);
}
/**
* 新增人员账号信息
*
* @return
*/
@RequestMapping(value = "/updateDept", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增人员账号信息", notes = "新增人员账号信息")
public Object updateDept(@RequestBody PersonAccount personAccount) {
return iPersonService.updateDept(personAccount);
}
/**
* 获取人员是否入岗
*
* @return
*/
@RequestMapping(value = "/isInProject", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取人员是否入岗", notes = "获取人员是否入岗")
public Object updateDept() {
Person person = getPerson();
PersonAscription pa = iPersonAscriptionService
.getOne(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, person.getId()));
if (pa == null) {
throw new BaseException("人员信息有错误,无归属数据");
}
if (pa.getProjectId() != null) {
return true;
} else {
return false;
}
}
}
package com.yeejoin.precontrol.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.entity.PersonExamRecord;
import com.yeejoin.precontrol.common.service.IPersonExamRecordService;
import com.yeejoin.precontrol.common.vo.PersonExamRecordVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 考试记录表
*
* @author duanwei
* @date 2021-02-23
*/
@RestController
@Api(tags = "考试记录表Api")
@RequestMapping(value = "/person-exam-record", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class PersonExamRecordController {
@Autowired
IPersonExamRecordService iPersonExamRecordService;
/**
* 新增考试记录表
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增考试记录表", notes = "新增考试记录表")
public boolean savePersonExamRecord(HttpServletRequest request, @RequestBody PersonExamRecord personExamRecord) {
return iPersonExamRecordService.save(personExamRecord);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iPersonExamRecordService.removeById(id);
}
/**
* 修改考试记录表
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改考试记录表", notes = "修改考试记录表")
public boolean updateByIdPersonExamRecord(HttpServletRequest request,
@RequestBody PersonExamRecord personExamRecord) {
return iPersonExamRecordService.updateById(personExamRecord);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public PersonExamRecord selectById(HttpServletRequest request, @PathVariable Long id) {
return iPersonExamRecordService.getById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<PersonExamRecordVo> listPage(CommonPageableDto pageable, PersonExamRecordVo personExamRecordVo) {
Page<PersonExamRecordVo> page = iPersonExamRecordService.pageInfo(pageable, personExamRecordVo);
return page;
}
}
package com.yeejoin.precontrol.controller;
import java.text.ParseException;
import java.util.*;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import com.yeejoin.precontrol.common.entity.publics.BaseEntity;
import com.yeejoin.precontrol.common.publish.MessageEventPublish;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.entity.BadManagementPerson;
import com.yeejoin.precontrol.common.entity.Company;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.PersonAscription;
import com.yeejoin.precontrol.common.entity.PersonMessage;
import com.yeejoin.precontrol.common.entity.Project;
import com.yeejoin.precontrol.common.enums.MessageSalaryTypeEnum;
import com.yeejoin.precontrol.common.enums.MessageSubTypeEnum;
import com.yeejoin.precontrol.common.enums.MessageTypeEnum;
import com.yeejoin.precontrol.common.exception.BaseException;
import com.yeejoin.precontrol.common.service.IBadManagementPersonService;
import com.yeejoin.precontrol.common.service.IBadManagementService;
import com.yeejoin.precontrol.common.service.ICompanyService;
import com.yeejoin.precontrol.common.service.IPersonAscriptionService;
import com.yeejoin.precontrol.common.service.IPersonMessageService;
import com.yeejoin.precontrol.common.service.IPersonService;
import com.yeejoin.precontrol.common.service.IProjectService;
import com.yeejoin.precontrol.common.service.ITaskService;
import com.yeejoin.precontrol.common.utils.DateUtils;
import com.yeejoin.precontrol.common.utils.StringUtil;
import com.yeejoin.precontrol.common.vo.PersonMessageOneVo;
import com.yeejoin.precontrol.common.vo.PersonVo;
import com.yeejoin.precontrol.common.vo.SingTaskBadManagementVo;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
* @author duanwei
* @date 2020-06-30
*/
@RestController
@Api(tags = "我的消息Api")
@RequestMapping(value = "/person-message", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class PersonMessageController extends BaseController {
/**
* 人员消息服务
*/
@Autowired
IPersonMessageService iPersonMessageService;
/**
* 人员关系表服务
*/
@Autowired
IPersonAscriptionService iPersonAscriptionService;
@Autowired
IPersonService iPersonService;
@Autowired
ICompanyService iCompanyService;
@Autowired
ITaskService iTaskService;
@Autowired
IBadManagementService iBadManagementService;
/**
* 文件服务器地址
*/
@Value("${fileserver.domain}")
String fileServerUrl;
@Autowired
IBadManagementPersonService iBadManagementPersonService;
@Autowired
IProjectService iProjectService;
@Autowired
MessageEventPublish messageEventPublish;
/**
* 新增
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public boolean savePersonMessage(HttpServletRequest request, @RequestBody PersonMessage personMessage) {
return iPersonMessageService.save(personMessage);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iPersonMessageService.removeById(id);
}
/**
* 修改
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改", notes = "修改")
public boolean updateByIdPersonMessage(HttpServletRequest request, @RequestBody PersonMessage personMessage) {
return iPersonMessageService.updateById(personMessage);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public PersonMessage selectById(HttpServletRequest request, @PathVariable Long id) {
PersonMessage personMessage = iPersonMessageService.getById(id);
personMessage.setTypeName(MessageTypeEnum.getNameByType(personMessage.getType()));
return personMessage;
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public Object listPage(String pageNum, String pageSize, PersonMessage personMessage) {
Person person = getPerson();
Page<PersonMessage> pageBean;
LambdaQueryWrapper<PersonMessage> personMessageQueryWrapper = new LambdaQueryWrapper<>();
if (personMessage.getType() != null) {
personMessageQueryWrapper.eq(PersonMessage::getType, personMessage.getType());
}
if (personMessage.getContent() != null) {
personMessageQueryWrapper.like(PersonMessage::getContent, personMessage.getContent());
}
IPage<PersonMessage> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
personMessageQueryWrapper.eq(PersonMessage::getPersonId, person.getId())
.orderByDesc(PersonMessage::getCreateDate);
page = iPersonMessageService.page(pageBean, personMessageQueryWrapper);
List<PersonMessage> list = page.getRecords();
list.stream().forEach(data -> {
if (data.getType() == MessageTypeEnum.SALARY.getType()) {
data.setTypeName(MessageSalaryTypeEnum.getNameByType(data.getSubType().intValue()));
} else {
data.setTypeName(MessageTypeEnum.getNameByType(data.getType()));
}
if (data.getProjectId() != null) {
Project project = iProjectService.getById(data.getProjectId());
data.setProjectName(project.getName());
}
});
return page;
}
/**
* 技术库分享
*
* @return
*/
@SuppressWarnings("unchecked")
@RequestMapping(value = "/share", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "技术库分享", notes = "技术库分享")
public Object share(@RequestBody Map<String, Object> map) {
List<Map<String, Object>> content = (List<Map<String, Object>>) map.get("content");
List<Map<String, Object>> target = (List<Map<String, Object>>) map.get("target");
if (content == null || target == null) {
throw new BaseException("分享失败,内容或者目标对象未空");
}
Set<Long> personIds = new HashSet<Long>();
for (Map<String, Object> targetOne : target) {
String type = (String) targetOne.get("type");
// 如果是人 就添加单人
if ("user".equals(type)) {
personIds.add(Long.valueOf((String) targetOne.get("id")));
}
// 如果是公司 就添加公司下所有人
else if ("group".equals(type)) {
Long companyId = Long.valueOf((String) targetOne.get("id"));
List<PersonAscription> personAscriptionList = iPersonAscriptionService
.list(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getCompanyId, companyId));
Set<Long> cPersonIds = personAscriptionList.stream().map(p -> p.getPersonId())
.collect(Collectors.toSet());
personIds.addAll(cPersonIds);
}
}
List<PersonMessage> messageList = new ArrayList<PersonMessage>();
for (Map<String, Object> contentOne : content) {
Long objectId = Long.valueOf((String) contentOne.get("sequenceNbr"));
String title = null;
if (contentOne.get("docTitle") != null) {
// Map<String, Object> docBaseInfo = (Map<String, Object>) contentOne.get("docBaseInfo");
title = (String) contentOne.get("docTitle");
}
// 消息通知--知识分享
for (Long personId : personIds) {
PersonMessage message = new PersonMessage();
message.setContent(title);
message.setPersonId(personId);
message.setTaskId(objectId);
message.setType(MessageTypeEnum.KNOWLEDGE_SHARE.getType());
message.setSubType(Long.valueOf(MessageSubTypeEnum.KNOWLEDGE_SHARE_MSG.getType()));
message.setReadStatus(0);
messageList.add(message);
}
}
return iPersonMessageService.saveBatch(messageList);
}
/**
* 标记已读
*
* @param id
* @return
*/
@RequestMapping(value = "/read", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "标记已读", notes = "标记已读")
public Object read(@RequestBody Long id) {
PersonMessage personMessage = new PersonMessage();
personMessage.setId(id);
personMessage.setReadStatus(1);
return iPersonMessageService.updateById(personMessage);
}
/**
* 未读信息数量
*
* @return
*/
@RequestMapping(value = "/unReadCount", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = " 未读信息数量", notes = "未读信息数量")
public Object unReadCount() {
Person peron = getPerson();
return iPersonMessageService.count(new LambdaQueryWrapper<PersonMessage>()
.eq(PersonMessage::getPersonId, peron.getId()).eq(PersonMessage::getReadStatus, 0));
}
/**
* 红码人员
*
* @return
*/
@RequestMapping(value = "/redColorPerson", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "红码人员", notes = "红码人员")
public Object listPage(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable, Long companyId) {
return iPersonService.redPerson(pageable,companyId).getRecords();
}
/**
* 群体违章
*
* @return
*/
@RequestMapping(value = "/badGroup", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "群体违章", notes = "群体违章")
public Object badGroup(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable, Long companyId) {
LambdaQueryWrapper<PersonMessage> personMessageLambdaQueryWrapper = new LambdaQueryWrapper<>();
personMessageLambdaQueryWrapper.eq(PersonMessage::getObjectId, companyId);
personMessageLambdaQueryWrapper.eq(PersonMessage::getType, MessageTypeEnum.COMPANY.getType());
personMessageLambdaQueryWrapper.eq(PersonMessage::getSubType, MessageSubTypeEnum.MANY_PERSON.getType());
List<PersonMessage> list = iPersonMessageService.list(personMessageLambdaQueryWrapper);
List<SingTaskBadManagementVo> singTaskBadManagementVos = new ArrayList<>();
if (StringUtil.isNotEmpty(list)) {
Set<Long> taskId = list.stream().map(m -> m.getTaskId()).collect(Collectors.toSet());
for (Long id : taskId) {
SingTaskBadManagementVo singTaskBadManagementVo = (SingTaskBadManagementVo) iTaskService
.getBadManagement(id, null,null);
singTaskBadManagementVos.add(singTaskBadManagementVo);
}
}
//根据创建时间排序
List<SingTaskBadManagementVo> sortedCollections = singTaskBadManagementVos.stream()
.sorted(Comparator.comparing(SingTaskBadManagementVo::getCreateTime).reversed())
.collect(Collectors.toList());
return sortedCollections;
}
/**
* 消息告警分包商信息
*
* @return
*/
@RequestMapping(value = "/companyInfo", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "消息告警分包商信息", notes = "消息告警分包商信息")
public Object companyInfo(Long id) {
Map<String, Object> map = new HashMap<>();
PersonMessage personMessage = iPersonMessageService.getById(id);
Long projectId = personMessage.getProjectId();
Project project = iProjectService.getById(projectId);
map.put("projectName", null != projectId ? project.getName() : null);
Long companyId = personMessage.getObjectId();
Company company = iCompanyService.getById(companyId);
map.put("companyName", company != null ? company.getName() : null);
map.put("alarmTime", personMessage.getCreateDate());
return map;
}
/**
* 一周违章人员
*
* @return
*/
@RequestMapping(value = "/weekBadPerson", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "一周违章人员", notes = "一周违章人员")
public Object weekBadPerson(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable, Long companyId)
throws ParseException {
LambdaQueryWrapper<BadManagementPerson> badManagementPersonLambdaQueryWrapper = new LambdaQueryWrapper<>();
badManagementPersonLambdaQueryWrapper.eq(BadManagementPerson::getCompanyId, companyId);
List<String> thirtyDay = getDay(-7);
badManagementPersonLambdaQueryWrapper.between(BadManagementPerson::getCreateDate, thirtyDay.get(0),
thirtyDay.get(1));
List<BadManagementPerson> list = iBadManagementPersonService.list(badManagementPersonLambdaQueryWrapper);
List<PersonVo> personVoList = new ArrayList<>();
if (StringUtil.isNotEmpty(list)) {
Set<Long> userIds = list.stream().map(m -> m.getPersonId()).collect(Collectors.toSet());
List<Person> user = iPersonService.list(new LambdaQueryWrapper<Person>().in(Person::getId, userIds));
for (Person person : user) {
PersonVo personVo = new PersonVo();
BeanUtils.copyProperties(person, personVo);
Long personId = personVo.getId();
PersonAscription personAscription = iPersonAscriptionService
.getOne(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, personId));
if (personAscription != null) {
Company company = iCompanyService.getById(personAscription.getCompanyId());
if (company != null) {
personVo.setCompanyName(company.getName());
}
}
personVo.setHeadPhoto(person.getHeadPhoto());
personVoList.add(personVo);
}
}
return personVoList;
}
/**
* 个人违章
*
* @return
*/
@RequestMapping(value = "/badPerson", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "个人违章", notes = "个人违章")
public Object badPerson(Long id) throws ParseException {
PersonMessage personMessage = iPersonMessageService.getById(id);
Long badPersonId = personMessage.getObjectId();
PersonMessageOneVo personMessageOneVo = new PersonMessageOneVo();
List<BadManagementPerson> list = iBadManagementPersonService
.list(new LambdaQueryWrapper<BadManagementPerson>().eq(BadManagementPerson::getPersonId, badPersonId)
.orderByDesc(BadManagementPerson::getCreateDate));
List<SingTaskBadManagementVo> singTaskBadManagementVos = new ArrayList<>();
if (StringUtil.isNotEmpty(list)) {
for (BadManagementPerson badManagementPerson : list) {
Long taskId = badManagementPerson.getTaskId();
SingTaskBadManagementVo singTaskBadManagementVo = (SingTaskBadManagementVo) iTaskService
.getBadManagement(taskId, null,null);
singTaskBadManagementVos.add(singTaskBadManagementVo);
}
}
//按照创建时间进行倒序
List<SingTaskBadManagementVo> collect = singTaskBadManagementVos.stream().sorted(Comparator.comparing(SingTaskBadManagementVo::getCreateTime).reversed()).collect(Collectors.toList());
personMessageOneVo.setAlarmTime(personMessage.getCreateDate());
personMessageOneVo.setSingTaskBadManagementVoList(collect);
Person person = iPersonService.getById(badPersonId);
if (person != null) {
String name = person.getName();
personMessageOneVo.setName(name);
}
personMessageOneVo.setNum(list.size());
PersonAscription personAscription = iPersonAscriptionService
.getOne(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, badPersonId));
Company company = iCompanyService.getById(personAscription.getCompanyId());
personMessageOneVo.setCompanyName(company != null ? company.getName() : null);
return personMessageOneVo;
}
private List<String> getDay(int i) throws ParseException {
Calendar calendar = new GregorianCalendar();
LinkedList<String> day = new LinkedList<>();
Date e = new Date();
calendar.setTime(e);
calendar.add(Calendar.DAY_OF_MONTH, i);
Date s = calendar.getTime();
String start = DateUtils.dateFormat(s, "yyyy-MM-dd 00:00:00");
String end = DateUtils.dateFormat(e, "yyyy-MM-dd 23:59:59");
day.add(start);
day.add(end);
return day;
}
@ApiOperation(value = "消息下拉枚举",notes = "消息下拉枚举")
@GetMapping("/option/list")
public List optionList(){
return MessageTypeEnum.appOptionList();
}
@ApiOperation(value = "消息分页查询",notes = "消息分页查询")
@GetMapping("/page/list")
public Page messagePageList(@RequestParam Integer pageNumber,
@RequestParam Integer pageSize,
@RequestParam(required = false) Integer type){
Long personId = getUserInfo().getSequenceNbr();
return iPersonMessageService.messagePageList(pageNumber,pageSize,personId,type);
}
}
package com.yeejoin.precontrol.controller;
import com.yeejoin.precontrol.common.service.IPersonWorkingHoursService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 工时信息
*
* @author duanwei
* @date 2020-06-30
*/
@RestController
@Api(tags = "工时信息Api")
@RequestMapping(value = "/person-working-hours", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class PersonWorkingHoursController {
/**
* 工时服务
*/
@Autowired
IPersonWorkingHoursService iPersonWorkingHoursService;
@RequestMapping(value = "/workHourStatistical", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "人员工时统计", notes = "人员工时统计")
public Object workHourStatisticalByPersonId(
@RequestParam(value = "personId", required = true) Long personId,
@RequestParam(value = "curTime", required = false) String curTime) {
return iPersonWorkingHoursService.workHourStatisticalByPersonId(personId, curTime);
}
}
package com.yeejoin.precontrol.controller;
//import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.forwardedUrl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections4.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.precontrol.common.entity.Company;
import com.yeejoin.precontrol.common.entity.MessageException;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.PersonAscription;
import com.yeejoin.precontrol.common.entity.Project;
import com.yeejoin.precontrol.common.service.ICompanyService;
import com.yeejoin.precontrol.common.service.IMessageExceptionService;
import com.yeejoin.precontrol.common.service.IPersonAscriptionService;
import com.yeejoin.precontrol.common.service.IPersonService;
import com.yeejoin.precontrol.common.service.IProjectService;
import com.yeejoin.precontrol.common.utils.PlatformUtils;
import com.yeejoin.precontrol.common.utils.StringUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 项目信息
*
* @author duanwei
* @date 2020-06-30
*/
@RestController
@Api(tags = "平台接口")
@RequestMapping(value = "/platform", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class PlatformController {
/**
* 江西电建公司id
*/
@Value("${jxdj.id}")
private String companyId;
@Autowired
private IPersonService iPersonService;
@Autowired
private PlatformUtils platformUtils;
@Autowired
private IPersonAscriptionService iPersonAscriptionService;
@Autowired
private IProjectService iProjectService;
@Autowired
private IMessageExceptionService iMessageExceptionService;
@Autowired
private ICompanyService iCompanyService;
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/projectList", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "项目部一级部门查询", notes = "项目部一级部门查询")
public Object projectList() {
FeignClientResult<Collection<DepartmentModel>> collectionFeignClientResult = Privilege.departmentClient
.treeByUser(null, Long.valueOf(companyId));
Collection<DepartmentModel> result = new ArrayList<>();
if (StringUtil.isNotEmpty(collectionFeignClientResult)) {
result = collectionFeignClientResult.getResult();
// List<DepartmentModel> project = result.stream().filter(res ->
// "project".equals(res.getLevel())).collect(Collectors.toList());
}
return result;
}
@RequestMapping(value = "/initNewOrg", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "项目部一级部门查询", notes = "项目部一级部门查询")
public void initNewOrg() {
iMessageExceptionService
.remove(new LambdaQueryWrapper<MessageException>().eq(MessageException::getMethod, "init_orgcode"));
Long companySeq = Long.valueOf(companyId);
platformUtils.setPlatFormAccess();
List<Person> list = iPersonService.list(new LambdaQueryWrapper<Person>().eq(Person::getIsJxdj, 0L));
FeignClientResult<Collection<DepartmentModel>> deptModel = Privilege.departmentClient.queryDeptTree(null,
companySeq);
DepartmentModel pltfbs = null;
for (DepartmentModel departmentModel : deptModel.getResult()) {
if ("fbs".equals(departmentModel.getLevel())) {
pltfbs = departmentModel;
break;
}
}
if (pltfbs == null) {
DepartmentModel newfbs = new DepartmentModel();
newfbs.setCompanySeq(companySeq);
newfbs.setDepartmentName("分包商");
newfbs.setLevel("fbs");
newfbs.setParentId(1L);
FeignClientResult<DepartmentModel> fdfbs = Privilege.departmentClient.create(newfbs);
pltfbs = fdfbs.getResult();
}
Long platDeptId = pltfbs.getSequenceNbr();
int i = 0;
for (Person person : list) {
if (person.getUserId() == null) {
continue;
}
FeignClientResult<AgencyUserModel> fa = Privilege.agencyUserClient
.queryByUserId(person.getUserId().toString());
if (fa == null) {
continue;
}
AgencyUserModel usr = fa.getResult();
if (usr == null || usr.getOrgRoleSeqs() == null) {
continue;
}
Map<Long, List<Long>> seqs = usr.getOrgRoleSeqs();
Long deptId;
List<Long> roleIds = null;
for (Long deptId1 : seqs.keySet()) {
deptId = deptId1;
roleIds = seqs.get(deptId1);
break;
}
Long newDeptId = null;
String orgCode = null;
if (person.getOrgCode() != null) {
orgCode = person.getOrgCode();
} else {
PersonAscription ascription = iPersonAscriptionService.getOne(
new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, person.getId()));
Project project = iProjectService.getById(ascription.getProjectId());
orgCode = project != null ? project.getOrgCode() : null;
}
if (orgCode != null) {
FeignClientResult<DepartmentModel> fd = Privilege.departmentClient.queryByOrgcode(orgCode);
DepartmentModel dept = fd.getResult();
if (dept != null && "project".equals(dept.getLevel())) {
FeignClientResult<Collection<DepartmentModel>> fc = Privilege.departmentClient
.querySubAgencyTree(dept.getSequenceNbr());
Collection<DepartmentModel> collect = fc.getResult();
DepartmentModel fbs = null;
for (DepartmentModel departmentModel : collect) {
if ("fbs".equals(departmentModel.getLevel())) {
fbs = departmentModel;
break;
}
}
if (fbs == null) {
DepartmentModel newfbs = new DepartmentModel();
newfbs.setCompanySeq(companySeq);
newfbs.setDepartmentName("分包商");
newfbs.setLevel("fbs");
newfbs.setParentId(dept.getSequenceNbr());
FeignClientResult<DepartmentModel> fdfbs = Privilege.departmentClient.create(newfbs);
fbs = fdfbs.getResult();
}
newDeptId = fbs.getSequenceNbr();
} else {
newDeptId = platDeptId;
}
} else {
newDeptId = platDeptId;
}
Map<Long, List<Long>> newSeqs = new HashedMap<>();
newSeqs.put(newDeptId, roleIds);
Object old = usr.getOrgRoleSeqs();
usr.setOrgRoleSeqs(newSeqs);
try {
Privilege.agencyUserClient.update(usr, usr.getUserId());
} catch (Exception e) {
MessageException message = new MessageException();
message.setJson(JSONObject.toJSONString(usr));
message.setMessage(JSONObject.toJSONString(old));
message.setMethod("init_orgcode");
iMessageExceptionService.save(message);
System.out.println(JSONObject.toJSONString(usr));
e.printStackTrace();
}
System.out.println("==========================================" + ++i + "/" + list.size());
System.out.println("==========================================" + i + "/" + list.size());
System.out.println("==========================================" + i + "/" + list.size());
}
}
@RequestMapping(value = "/deparments", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "GET", value = "项目部一级部门查询", notes = "项目部一级部门查询")
public void deparments() {
platformUtils.setPlatFormAccess();
FeignClientResult<Collection<CompanyModel>> result1 = Privilege.companyClient
.querySubAgencyTree(Long.valueOf(companyId));
Collection<CompanyModel> collections1 = result1.getResult();
int i = 0;
StringBuffer sb = new StringBuffer();
for (CompanyModel companyModel : collections1) {
FeignClientResult<Collection<DepartmentModel>> result2 = Privilege.departmentClient.queryDeptTree(null,
companyModel.getSequenceNbr());
Collection<DepartmentModel> collections2 = result2.getResult();
StringBuffer sd = new StringBuffer();
for (DepartmentModel departmentModel : collections2) {
sd.append(departmentModel.getSequenceNbr());
sd.append(",");
}
if (sd.toString().contains(",")) {
sd.deleteCharAt(sd.length() - 1);
Privilege.departmentClient.delete(sd.toString());
}
System.out.println("==========================================" + ++i + "/" + collections1.size());
System.out.println("==========================================" + i + "/" + collections1.size());
System.out.println("==========================================" + i + "/" + collections1.size());
sb.append(companyModel.getSequenceNbr());
sb.append(",");
}
if (sb.toString().contains(",")) {
sb.deleteCharAt(sb.length() - 1);
Privilege.companyClient.deleteCompany(sb.toString());
}
}
@RequestMapping(value = "/updateNewOrg", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "项目部一级部门查询", notes = "项目部一级部门查询")
public void updateNewOrg() {
iMessageExceptionService
.remove(new LambdaQueryWrapper<MessageException>().eq(MessageException::getMethod, "update_orgcode"));
Long companySeq = Long.valueOf(companyId);
platformUtils.setPlatFormAccess();
List<Person> list = iPersonService.list(new LambdaQueryWrapper<Person>());
int i = 0;
Company company = null;
Project project = null;
for (Person p : list) {
System.out.println("==========================================" + ++i + "/" + list.size());
System.out.println("==========================================" + i + "/" + list.size());
System.out.println("==========================================" + i + "/" + list.size());
if (p.getUserId() == null || p.getUserId().equals("")) {
MessageException message = new MessageException();
message.setJson(p.getName());
message.setPath(p.getPhone());
// message.setExtend1(extend1);
// message.setExtend2(extend2);
message.setMessage("userId is null");
message.setMethod("update_orgcode");
iMessageExceptionService.save(message);
System.out.println(JSONObject.toJSONString(message));
continue;
}
try {
FeignClientResult<AgencyUserModel> result = Privilege.agencyUserClient
.queryByUserId(p.getUserId().toString());
AgencyUserModel usr = result.getResult();
try {
if (usr == null) {
MessageException message = new MessageException();
message.setJson(p.getName());
message.setPath(p.getPhone());
// message.setExtend1(extend1);
// message.setExtend2(extend2);
message.setMessage("user is null");
message.setMethod("update_orgcode");
iMessageExceptionService.save(message);
continue;
}
Map<Long, List<Long>> map = usr.getOrgRoleSeqs();
if (!map.isEmpty()) {
continue;
}
PersonAscription personAscription = iPersonAscriptionService.getOne(
new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, p.getId()));
company = iCompanyService.getById(personAscription.getCompanyId());
project = iProjectService.getById(personAscription.getProjectId());
if (p.getRoles() == null) {
MessageException message = new MessageException();
message.setJson(p.getName());
message.setPath(p.getPhone());
message.setExtend1(company != null ? company.getName() : null);
message.setExtend2(project != null ? project.getName() : null);
message.setMessage("roles is null");
message.setMethod("update_orgcode");
iMessageExceptionService.save(message);
continue;
}
String roles = p.getRoles().replace("[", "").replace("]", "");
String[] roles1 = roles.split(",");
List<Long> roles2 = Arrays.asList(roles1).stream().map(m -> Long.valueOf(m))
.collect(Collectors.toList());
if (p.getIsJxdj() == 1) {
if (personAscription.getDepartmentId() == null) {
MessageException message = new MessageException();
message.setJson(p.getName());
message.setPath(p.getPhone());
message.setExtend1(company != null ? company.getName() : null);
message.setExtend2(project != null ? project.getName() : null);
message.setMessage("jxdj departmentId is null");
message.setMethod("update_orgcode");
iMessageExceptionService.save(message);
continue;
}
map.put(personAscription.getDepartmentId(), roles2);
} else {
Long newDeptId = null;
String orgCode = null;
if (p.getOrgCode() != null) {
orgCode = p.getOrgCode();
} else {
orgCode = project != null ? project.getOrgCode() : null;
}
if (orgCode != null) {
FeignClientResult<DepartmentModel> fd = Privilege.departmentClient.queryByOrgcode(orgCode);
DepartmentModel dept = fd.getResult();
FeignClientResult<Collection<DepartmentModel>> fc = Privilege.departmentClient
.querySubAgencyTree(dept.getSequenceNbr());
Collection<DepartmentModel> collect = fc.getResult();
DepartmentModel fbs = null;
for (DepartmentModel departmentModel : collect) {
if ("fbs".equals(departmentModel.getLevel())) {
fbs = departmentModel;
break;
}
}
if (fbs == null) {
DepartmentModel newfbs = new DepartmentModel();
newfbs.setCompanySeq(companySeq);
newfbs.setDepartmentName("分包商");
newfbs.setLevel("fbs");
newfbs.setParentId(dept.getSequenceNbr());
FeignClientResult<DepartmentModel> fdfbs = Privilege.departmentClient.create(newfbs);
fbs = fdfbs.getResult();
}
newDeptId = fbs.getSequenceNbr();
map.put(newDeptId, roles2);
} else {
MessageException message = new MessageException();
message.setJson(p.getName());
message.setPath(p.getPhone());
message.setExtend1(company != null ? company.getName() : null);
message.setExtend2(project != null ? project.getName() : null);
message.setMessage("orgcode is null");
message.setMethod("update_orgcode");
iMessageExceptionService.save(message);
continue;
}
}
usr.setOrgRoleSeqs(map);
Privilege.agencyUserClient.update(usr, usr.getUserId());
} catch (Exception e) {
MessageException message = new MessageException();
message.setJson(p.getName());
message.setPath(p.getPhone());
message.setExtend1(company != null ? company.getName() : null);
message.setExtend2(project != null ? project.getName() : null);
message.setMessage("uppdate user error");
message.setMethod("update_orgcode");
iMessageExceptionService.save(message);
System.out.println(JSONObject.toJSONString(usr));
e.printStackTrace();
}
} catch (Exception e) {
MessageException message = new MessageException();
message.setJson(p.getName());
message.setPath(p.getPhone());
message.setExtend1(company != null ? company.getName() : null);
message.setExtend2(project != null ? project.getName() : null);
message.setMessage("get user error");
message.setMethod("update_orgcode");
iMessageExceptionService.save(message);
System.out.println(JSONObject.toJSONString(message));
}
}
}
@RequestMapping(value = "/updateApps", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "项目部一级部门查询", notes = "项目部一级部门查询")
public void updateApps() {
iMessageExceptionService
.remove(new LambdaQueryWrapper<MessageException>().eq(MessageException::getMethod, "update_apps"));
platformUtils.setPlatFormAccess();
List<Person> list = iPersonService.list(new LambdaQueryWrapper<Person>());
int i = 0;
List<String> codes = new ArrayList<>();
List<String> codesjxdj = new ArrayList<>();
codesjxdj.add("studio_normalapp_2135110");
codesjxdj.add("studio_normalapp_2075166");
codesjxdj.add("studio_normalapp_2941403");
for (Person p : list) {
System.out.println("==========================================" + ++i + "/" + list.size());
System.out.println("==========================================" + i + "/" + list.size());
System.out.println("==========================================" + i + "/" + list.size());
if (p.getUserId() == null || p.getUserId().equals("")) {
MessageException message = new MessageException();
message.setJson(JSONObject.toJSONString(p));
message.setMessage("userId is null");
message.setMethod("update_apps");
iMessageExceptionService.save(message);
System.out.println(JSONObject.toJSONString(message));
continue;
}
FeignClientResult<AgencyUserModel> result = Privilege.agencyUserClient
.queryByUserId(p.getUserId().toString());
AgencyUserModel usr = result.getResult();
if (usr == null) {
MessageException message = new MessageException();
message.setJson(JSONObject.toJSONString(p));
message.setMessage("user is null");
message.setMethod("update_apps");
iMessageExceptionService.save(message);
continue;
}
if (p.getIsJxdj() == 1L) {
usr.setAppCodes(codesjxdj);
} else {
usr.setAppCodes(codes);
}
try {
Privilege.agencyUserClient.update(usr, usr.getUserId());
} catch (Exception e) {
MessageException message = new MessageException();
message.setJson(JSONObject.toJSONString(p));
message.setMessage("update user error");
message.setMethod("update_apps");
iMessageExceptionService.save(message);
}
}
}
@RequestMapping(value = "/updateAdmin", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "项目部一级部门查询", notes = "项目部一级部门查询")
public void updateAdmin() {
platformUtils.setPlatFormAccess();
FeignClientResult<List<RoleModel>> roleList = Privilege.roleClient.queryRoleList(null, null);
RoleModel admin = null, operation = null, director = null;
for (RoleModel roleModel : roleList.getResult()) {
if (roleModel.getRoleName().equals("admin")) {
admin = roleModel;
continue;
} else if (roleModel.getRoleName().equals("operation")) {
operation = roleModel;
continue;
} else if (roleModel.getRoleName().equals("director")) {
director = roleModel;
continue;
}
}
String[] s = { "管理员", "杜广锋", "贺曦", "赵峰", "祝昌贵", "吴江" };
List<Person> list = iPersonService.list(new LambdaQueryWrapper<Person>().like(Person::getRoleKey, "admin")
.notLike(Person::getRoleKey, "fbs_admin").notIn(Person::getName, s));
List<Person> list2 = iPersonService
.list(new LambdaQueryWrapper<Person>().like(Person::getRoleKey, "operation").notIn(Person::getName, s));
List<Person> list3 = iPersonService
.list(new LambdaQueryWrapper<Person>().like(Person::getRoleName, "admin").notIn(Person::getName, s));
List<Person> list4 = iPersonService
.list(new LambdaQueryWrapper<Person>().like(Person::getRoleName, "运维").notIn(Person::getName, s));
list.addAll(list2);
list.addAll(list3);
list.addAll(list4);
HashSet<Person> set = new HashSet(list);
for (Person p : set) {
FeignClientResult<AgencyUserModel> result = Privilege.agencyUserClient
.queryByUserId(p.getUserId().toString());
AgencyUserModel usr = result.getResult();
if (usr == null) {
continue;
}
Map<Long, List<Long>> map = usr.getOrgRoleSeqs();
for (Entry<Long, List<Long>> a : map.entrySet()) {
a.getValue().remove(admin.getSequenceNbr());
a.getValue().remove(operation.getSequenceNbr());
if (a.getValue().size() == 0) {
a.getValue().add(director.getSequenceNbr());
}
String roleName = "";
String roleKey = "";
String roles = Arrays.toString(a.getValue().toArray());
if (StringUtils.isNotEmpty(roles)) {
// 去除[]
if(roles.contains("["))
{
roles = roles.substring(1, roles.length() - 1);
}
// 去除空格
roles = roles.replaceAll(" ", "");
FeignClientResult<List<RoleModel>> listFeignClientResult = Privilege.roleClient.queyrForMult(roles);
List<RoleModel> result1 = listFeignClientResult.getResult();
if (StringUtil.isNotEmpty(result1)) {
for (RoleModel roleModel : result1) {
String roleDesc = roleModel.getRoleDesc();
roleName += roleDesc + ",";
roleKey += roleModel.getRoleName() + ",";
}
if (roleName.lastIndexOf(",") > 0) {
roleName = roleName.substring(0, roleName.length() - 1);
}
if (roleKey.lastIndexOf(",") > 0) {
roleKey = roleKey.substring(0, roleKey.length() - 1);
}
}
p.setRoleKey(roleKey);
p.setRoles(roles);
p.setRoleName(roleName);
}
break;
}
FeignClientResult<AgencyUserModel> result1 = Privilege.agencyUserClient.update(usr, usr.getUserId());
iPersonService.updateById(p);
}
}
}
package com.yeejoin.precontrol.controller;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.*;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.yeejoin.precontrol.common.entity.*;
import com.yeejoin.precontrol.common.enums.OpsLogEnum;
import com.yeejoin.precontrol.common.service.*;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.precontrol.common.annotations.OpsLog;
import com.yeejoin.precontrol.common.component.SpringContextHolder;
import com.yeejoin.precontrol.common.constant.Constant;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.dto.ProjectDto;
import com.yeejoin.precontrol.common.event.RegionAddEvent;
import com.yeejoin.precontrol.common.exception.BaseException;
import com.yeejoin.precontrol.common.mapper.PersonAscriptionMapper;
import com.yeejoin.precontrol.common.publish.TranslateEventPublish;
import com.yeejoin.precontrol.common.utils.FileHelper;
import com.yeejoin.precontrol.common.utils.PlatformUtils;
import com.yeejoin.precontrol.common.utils.StringUtil;
import com.yeejoin.precontrol.common.vo.BadProjectVo;
import com.yeejoin.precontrol.common.vo.ProjectVo;
import com.yeejoin.precontrol.common.vo.ReginParams;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
/**
* 项目信息
*
* @author duanwei
* @date 2020-06-30
*/
@RestController
@Api(tags = "项目信息Api")
@RequestMapping(value = "/project", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Slf4j
public class ProjectController extends BaseController {
/**
* 工程服务
*/
@Autowired
IProjectService iProjectService;
/**
* 二维码服务
*/
@Autowired
IProjectQrcodeService iProjectQrcodeService;
/**
* 项目坐标信息服务
*/
@Autowired
IProjectCoordinateService iProjectCoordinateService;
/**
* 关系表mapper
*/
@Autowired
PersonAscriptionMapper personAscriptionMapper;
/**
* 地区服务
*/
@Autowired
IDistrictsService iDistrictsService;
/**
* 人员关系表服务
*/
@Autowired
IPersonAscriptionService iPersonAscriptionService;
/**
* 人员服务
*/
@Autowired
IPersonService iPersonService;
/**
* 翻译事件服务
*/
@Autowired
TranslateEventPublish translateEventPublish;
@Autowired
PlatformUtils platformUtils;
@Autowired
IProjectCompanyService iProjectCompanyService;
@Autowired
IProjectDeviceService iProjectDeviceService;
@Autowired
IStatisticsService statisticsService;
@Autowired
IProjectCameraService projectCameraService;
@Autowired
ITaskPersonService iTaskPersonService;
@Autowired
ITaskService iTaskService;
/**
* 新增项目信息
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增项目信息", notes = "新增项目信息")
public boolean saveProject(@RequestBody ProjectDto project) {
if (project.getName().equals(project.getProjectNum())) {
throw new BaseException("项目名称和项目编号不能重复!");
}
List<Project> list = iProjectService.list(new QueryWrapper<Project>().lambda()
.eq(Project::getName, project.getName()).or().eq(Project::getProjectNum, project.getProjectNum()));
if (StringUtil.isNotEmpty(list)) {
throw new BaseException("项目名称或项目编号已经存在!");
}
List<Project> projects = iProjectService
.list(new QueryWrapper<Project>().lambda().eq(Project::getProjectRegion, project.getProjectRegion()));
if (CollectionUtils.isNotEmpty(projects)) {
throw new BaseException("该区域已关联项目!");
}
// 地图终点
project.setPointType("endmost");
project.setJobNum(0L);
iProjectService.saveProject(project);
// 保存项目的时候发布事件同步海康平台区域
SpringContextHolder.publishEvent(new RegionAddEvent(this, project));
if (CollectionUtils.isNotEmpty(project.getCameraList())) {
projectCameraService.saveBatch(project.getCameraList());
}
List<ProjectCompany> companyList = project.getProjectCompanyList();
if (StringUtil.isNotEmpty(companyList)) {
companyList.forEach(item -> item.setProjectId(project.getId()));
iProjectCompanyService.saveBatch(companyList);
}
List<ProjectDevice> deviceList = project.getProjectDeviceList();
if (StringUtil.isNotEmpty(deviceList)) {
List<String> numbers = deviceList.stream().map(ProjectDevice::getNumber).collect(Collectors.toList());
List<ProjectDevice> dList = iProjectDeviceService
.list(new LambdaQueryWrapper<ProjectDevice>().in(ProjectDevice::getNumber, numbers));
if (dList.size() > 0) {
StringBuffer sb = new StringBuffer();
dList.forEach(i -> sb.append(i.getNumber()).append(","));
throw new BaseException(sb + "设备编号已经存在!");
}
deviceList.forEach(item -> item.setProjectId(project.getId()));
iProjectDeviceService.saveBatch(deviceList);
}
Project project1 = new Project();
BeanUtils.copyProperties(project, project1, "id");
translateEventPublish.publish(project1);
// 更新推送
List<String> status = new ArrayList<String>(Arrays.asList("开发", "在建", "策划"));
if (status.contains(project.getStatus())) {
statisticsService.initWs(project.getOrgCode(), Constant.WS_COMPOSITESUM);
statisticsService.initWs(project.getOrgCode(), Constant.WS_MAPPROJECTSUM);
}
return true;
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iProjectService.removeById(id);
}
/**
* 根据ids删除
*
* @param ids
* @return
*/
@RequestMapping(value = "/ids/{ids}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据ids删除", notes = "根据ids删除")
@OpsLog(value=OpsLogEnum.DELETE_PROJECT)
public boolean deleteByIds(HttpServletRequest request, @PathVariable List<Long> ids) {
return iProjectService.removeByIds(ids);
}
/**
* 区域是否已经关联其他项目 TRUE 未关联 FALSE 已关联
*
* @param region
* @return
*/
@GetMapping("/checkProjectRegion/{region}")
public Boolean checkProjectRegion(@PathVariable String region) {
List<Project> projects = iProjectService
.list(new QueryWrapper<Project>().lambda().eq(Project::getProjectRegion, region));
return CollectionUtils.isNotEmpty(projects) ? Boolean.FALSE : Boolean.TRUE;
}
/**
* 修改项目信息
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改项目信息", notes = "修改项目信息")
@OpsLog(value=OpsLogEnum.EDIT_PROJECT)
public boolean updateByIdProject(@RequestBody ProjectDto project) {
if (project.getName().equals(project.getProjectNum())) {
throw new BaseException("项目名称和项目编号不能重复!");
}
List<Project> list = iProjectService.list(new QueryWrapper<Project>().lambda()
.eq(Project::getName, project.getName()).or().eq(Project::getProjectNum, project.getProjectNum()));
if (StringUtil.isNotEmpty(list)) {
if (!list.get(0).getId().equals(project.getId())) {
throw new BaseException("项目名称或项目编号已经存在!");
}
}
List<Project> projects = iProjectService
.list(new QueryWrapper<Project>().lambda().eq(Project::getProjectRegion, project.getProjectRegion()));
projects.removeIf(item -> item.getId().equals(project.getId()));
if (CollectionUtils.isNotEmpty(projects)) {
throw new BaseException("该区域已关联项目!");
}
// 设置一下项目的未交底次数
Project resultProject = iProjectService.getById(project.getId());
project.setPointType("endmost");
project.setJobNum(resultProject.getJobNum());
iProjectService.updateById(project);
//更新区域
if(project.getProjectRegion()==null)
{
iProjectService.update(new LambdaUpdateWrapper<Project>().set(Project::getProjectRegion, null).eq(Project::getId, project.getId()));
}
List<ProjectCompany> companyList = project.getProjectCompanyList();
if (StringUtil.isNotEmpty(companyList)) {
companyList.forEach(item -> item.setProjectId(project.getId()));
iProjectCompanyService.saveOrUpdateBatch(companyList);
}
List<ProjectDevice> deviceList = project.getProjectDeviceList();
if (StringUtil.isNotEmpty(deviceList)) {
List<String> numbers = deviceList.stream().map(ProjectDevice::getNumber).collect(Collectors.toList());
iProjectDeviceService
.remove(new LambdaQueryWrapper<ProjectDevice>().eq(ProjectDevice::getProjectId, project.getId()));
List<ProjectDevice> dList = iProjectDeviceService
.list(new LambdaQueryWrapper<ProjectDevice>().in(ProjectDevice::getNumber, numbers));
if (dList.size() > 0) {
StringBuffer sb = new StringBuffer();
dList.forEach(i -> sb.append(i.getNumber()).append(","));
throw new BaseException(sb + "设备编号已经存在!");
}
deviceList.forEach(item -> item.setProjectId(project.getId()));
iProjectDeviceService.saveBatch(deviceList);
}
Project project1 = new Project();
BeanUtils.copyProperties(project, project1, "id");
translateEventPublish.publish(project1);
if (CollectionUtils.isNotEmpty(project.getCameraList())
&& !resultProject.getProjectRegion().equals(project.getProjectRegion())) {
projectCameraService.saveBatch(project.getCameraList());
}
statisticsService.initWs(resultProject.getOrgCode(), Constant.WS_COMPOSITESUM);
statisticsService.initWs(resultProject.getOrgCode(), Constant.WS_MAPPROJECTSUM);
return true;
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public Object selectById(HttpServletRequest request, @PathVariable Long id) {
ReginParams reginParams = getReginInfo();
Long companyId = null;
if (this.isFbsRole(reginParams)) {
companyId = this.getCompanyId(reginParams);
}
return iProjectService.selectById(id, companyId);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public Object listPage(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") ProjectDto projectDto,
@ApiParam(value = "查询Ids") @RequestParam(required = false) List<Long> ids,
@ApiParam(value = "类型 0查询列表 1 导出列表") @RequestParam Long operType, HttpServletResponse response)
throws UnsupportedEncodingException {
String fileName = java.net.URLEncoder.encode("工程信息表", "UTF-8") + ".xls";
if (null != ids && ids.size() > 0) {
projectDto.setProjectIds(ids);
}
if (projectDto.getProjectId() != null) {
projectDto.setId(projectDto.getProjectId());
}
// getUserInfo();
ReginParams reginInfo = getReginInfo();
if (isFbsRole(reginInfo)) {
Company company = reginInfo.getCompany();
if (company != null) {
Long companyId = company.getId();
projectDto.setCompanyId(companyId);
}
String roleName = null;
if (reginInfo.getRole() != null) {
roleName = reginInfo.getRole().getRoleName();
}
if (!roleName.contains("fbs_admin")) {
PersonAscription ascription = iPersonAscriptionService.getOne(new LambdaQueryWrapper<PersonAscription>()
.eq(PersonAscription::getPersonId, reginInfo.getPerson().getId()));
projectDto.setProjectIds(Arrays.asList(ascription.getProjectId()));
}
}
IPage<ProjectVo> page = iProjectService.listByPage(pageable, projectDto);
if (operType == 1) {
List<ProjectVo> excelList = page.getRecords();
for (ProjectVo vo : excelList) {
if (null != vo.getOrgCode()) {
vo.setPlatformProjectName(platformUtils.getDepartmentNameByOrgCode(vo.getOrgCode()));
}
}
FileHelper.exportExcel(excelList, "工程信息", "工程信息", ProjectVo.class, fileName, response);
return null;
} else {
return page;
}
}
/**
* 导入工程信息
*
* @return
*/
@RequestMapping(value = "/import", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "导入工程信息", notes = "导入工程信息")
public Object projectImport(
@ApiParam(value = "导入数据文件", required = true) @RequestBody(required = true) MultipartFile file,
HttpServletResponse response) throws Exception {
String fileName = file.getOriginalFilename();
if (!fileName.endsWith(".xls")) {
throw new BaseException("文件格式错误");
}
List<Project> data = iProjectService.projectImport(file);
return iProjectService.saveProjectImportData(data);
}
/**
* 项目列表下拉框
*
* @return
*/
@RequestMapping(value = "/select", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "项目列表下拉框", notes = "项目列表下拉框")
public List<HashMap<String, Object>> projectSelect() {
return iProjectService.projectSelect();
}
/**
* 监控屏地图连线
*
* @return
*/
@RequestMapping(value = "/mapLine", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "监控屏地图连线", notes = "监控屏地图连线")
public Object mapLine() throws IOException {
String orgCode = platformUtils.getOrgCode();
return iProjectService.getMapLine(orgCode, null);
}
/**
* 首页违章项目
*
* @return
*/
@RequestMapping(value = "/badProject", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "首页违章项目", notes = "首页违章项目")
public Object badProject(@ApiParam(value = "是否查询所有违章和0违章", required = false) boolean isAllStatus,
@ApiParam(value = "是否0违章", required = true) boolean isBad,
@ApiParam(value = "分页") CommonPageableDto pageable, @ApiParam(value = "查询参数") BadProjectVo badProjectVo,
@ApiParam(value = "类型 0查询列表 1 导出列表") @RequestParam Long operType, HttpServletResponse response) {
String fileName = UUID.randomUUID().toString() + ".xls";
String title = isAllStatus ? "在建工程信息" : isBad ? "违章工程信息" : "0违章工程信息";
badProjectVo.setOrgCode(platformUtils.getOrgCode());
IPage<BadProjectVo> page = iProjectService.pageBadProject(isBad, isAllStatus, pageable, badProjectVo);
if (operType == 1) {
List<BadProjectVo> excelList = page.getRecords();
FileHelper.exportExcel(excelList, title, title, BadProjectVo.class, fileName, response);
return null;
} else {
return page;
}
}
/**
* 首页违章项目
*
* @return
*/
@RequestMapping(value = "/name", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "项目名称", notes = "项目名称")
public String name(@ApiParam(value = "项目id", required = true) Long projectId) {
Project project = iProjectService.getById(projectId);
return project == null ? null : project.getName();
}
/**
* 查询所有项目列表
*
* @return
*/
@RequestMapping(value = "/all/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "查询所有项目列表", notes = "查询所有项目列表")
public List<Project> listAll() {
return iProjectService.list();
}
/**
* 获取该用户拥有的项目列表
*
* @return
*/
@RequestMapping(value = "/orgcode", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取该用户拥有的项目列表", notes = "获取该用户拥有的项目列表")
public List<Map> listByOrgcode() {
List<Map> listRet = new ArrayList<Map>();
List<Project> list = iProjectService.list();
String personOrgCode = getPerson().getOrgCode();
if (list != null && list.size() > 0) {
for (Project project : list) {
String projectOrgCod = project.getOrgCode();
Map map = new HashMap();
map.put("id", project.getId());
map.put("name", project.getName());
if (personOrgCode == null) {
listRet.add(map);
} else if (projectOrgCod != null && personOrgCode.contains(projectOrgCod)) {
listRet.add(map);
}
}
}
return listRet;
}
/**
* 删除项目分包商
*
* @return
*/
@RequestMapping(value = "/company/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "删除项目分包商", notes = " 删除项目分包商")
public boolean deleteCompany(@PathVariable Long id) {
ProjectCompany projectCompany = iProjectCompanyService.getById(id);
if(projectCompany==null) {
return false;
}
List<Task> list = iTaskService
.list(new LambdaQueryWrapper<Task>().eq(Task::getProjectId, projectCompany.getProjectId()));
Set<Long> ids = list.stream().map(i -> i.getId()).collect(Collectors.toSet());
int count = iTaskPersonService.count(new LambdaQueryWrapper<TaskPerson>()
.eq(TaskPerson::getCompanyId, projectCompany.getCompanyId()).in(TaskPerson::getTaskId, ids));
if (count > 0) {
throw new BaseException("分包商已关联任务,无法删除");
}
iProjectCompanyService.removeById(id);
return true;
}
}
package com.yeejoin.precontrol.controller;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import com.yeejoin.precontrol.common.entity.publics.CommonResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.precontrol.common.service.IProjectDeviceService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.precontrol.common.entity.ProjectDevice;
import com.yeejoin.precontrol.common.utils.NameUtils;
import java.lang.reflect.Field;
import java.util.Arrays;
/**
* 项目设备表
*
* @author duanwei
* @date 2021-03-22
*/
@RestController
@Api(tags = "项目设备表Api")
@RequestMapping(value = "/project-device", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class ProjectDeviceController {
@Autowired
IProjectDeviceService iProjectDeviceService;
/**
* 新增项目设备表
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增项目设备表", notes = "新增项目设备表")
public boolean saveProjectDevice(HttpServletRequest request, @RequestBody ProjectDevice projectDevice){
return iProjectDeviceService.save(projectDevice);
}
/**
* 根据id删除
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id){
return iProjectDeviceService.removeById(id);
}
/**
* 修改项目设备表
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改项目设备表", notes = "修改项目设备表")
public boolean updateByIdProjectDevice(HttpServletRequest request, @RequestBody ProjectDevice projectDevice){
return iProjectDeviceService.updateById(projectDevice);
}
/**
* 根据id查询
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public ProjectDevice selectById(HttpServletRequest request, @PathVariable Long id){
return iProjectDeviceService.getById(id);
}
/**
* 列表分页查询
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<ProjectDevice> listPage(String pageNum,String pageSize,
ProjectDevice projectDevice){
Page<ProjectDevice> pageBean;
QueryWrapper<ProjectDevice> projectDeviceQueryWrapper = new QueryWrapper<>();
Class<? extends ProjectDevice> aClass = projectDevice.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(projectDevice);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(projectDevice);
projectDeviceQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(projectDevice);
projectDeviceQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(projectDevice);
projectDeviceQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(projectDevice);
projectDeviceQueryWrapper.eq(name, fileValue);
}
}
}catch (Exception e) {
}
});
IPage<ProjectDevice> page;
if (StringUtils.isBlank(pageNum) ||StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
}else{
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iProjectDeviceService.page(pageBean, projectDeviceQueryWrapper);
return page;
}
}
package com.yeejoin.precontrol.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.dto.ProjectHistroyDto;
import com.yeejoin.precontrol.common.entity.ProjectHistory;
import com.yeejoin.precontrol.common.service.IProjectHistoryService;
import com.yeejoin.precontrol.common.utils.FileHelper;
import com.yeejoin.precontrol.common.vo.ProjectHistoryVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.UUID;
/**
* 项目历史轨迹
*
* @author duanwei
* @date 2020-07-16
*/
@RestController
@Api(tags = "项目历史轨迹Api")
@RequestMapping(value = "/project-history", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class ProjectHistoryController {
/**
* 项目历史服务
*/
@Autowired
IProjectHistoryService iProjectHistoryService;
/**
* 新增项目历史轨迹
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增项目历史轨迹", notes = "新增项目历史轨迹")
public boolean saveProjectHistory(HttpServletRequest request, @RequestBody ProjectHistory projectHistory) {
return iProjectHistoryService.save(projectHistory);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iProjectHistoryService.removeById(id);
}
/**
* 修改项目历史轨迹
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改项目历史轨迹", notes = "修改项目历史轨迹")
public boolean updateByIdProjectHistory(HttpServletRequest request, @RequestBody ProjectHistory projectHistory) {
return iProjectHistoryService.updateById(projectHistory);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public ProjectHistory selectById(HttpServletRequest request, @PathVariable Long id) {
return iProjectHistoryService.getById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public Object listPage(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") ProjectHistroyDto projectHistroyDto,
@ApiParam(value = "类型 0查询列表 1 导出列表") @RequestParam Long operType,
@ApiParam(value = "查询Ids") @RequestParam(required = false) List<Long> ids,
HttpServletResponse response) {
String fileName = UUID.randomUUID().toString() + ".xls";
if (null != ids && ids.size() > 0) {
projectHistroyDto.setIds(ids);
}
IPage<ProjectHistoryVo> page = iProjectHistoryService.listByPage(pageable, projectHistroyDto);
if (operType == 1) {
List<ProjectHistoryVo> excelList = page.getRecords();
FileHelper.exportExcel(excelList, "项目历史轨迹", "项目历史轨迹信息", ProjectHistoryVo.class, fileName, response);
return null;
} else {
return page;
}
}
}
package com.yeejoin.precontrol.controller;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.precontrol.common.constant.Constant;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.dto.IsClockOkDto;
import com.yeejoin.precontrol.common.entity.BadManagement;
import com.yeejoin.precontrol.common.entity.BadManagementPerson;
import com.yeejoin.precontrol.common.entity.Company;
import com.yeejoin.precontrol.common.entity.CompanyDepartment;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.PersonAccount;
import com.yeejoin.precontrol.common.entity.PersonAscription;
import com.yeejoin.precontrol.common.entity.PersonClock;
import com.yeejoin.precontrol.common.entity.PersonContract;
import com.yeejoin.precontrol.common.entity.PersonWorkingHours;
import com.yeejoin.precontrol.common.entity.Project;
import com.yeejoin.precontrol.common.entity.ProjectClock;
import com.yeejoin.precontrol.common.entity.ProjectCompany;
import com.yeejoin.precontrol.common.entity.ProjectCoordinate;
import com.yeejoin.precontrol.common.entity.ProjectDevice;
import com.yeejoin.precontrol.common.entity.ProjectHistory;
import com.yeejoin.precontrol.common.entity.ProjectQrcode;
import com.yeejoin.precontrol.common.entity.Task;
import com.yeejoin.precontrol.common.entity.TaskPerson;
import com.yeejoin.precontrol.common.entity.TaskPersonFile;
import com.yeejoin.precontrol.common.enums.ContractUsefulEum;
import com.yeejoin.precontrol.common.enums.DeptTypeEnum;
import com.yeejoin.precontrol.common.enums.InRiskRegionEnum;
import com.yeejoin.precontrol.common.enums.TypeKeyEnum;
import com.yeejoin.precontrol.common.exception.BaseException;
import com.yeejoin.precontrol.common.exception.errorEnum.BaseExceptionEnum;
import com.yeejoin.precontrol.common.service.IBadManagementPersonService;
import com.yeejoin.precontrol.common.service.IBadManagementService;
import com.yeejoin.precontrol.common.service.ICompanyService;
import com.yeejoin.precontrol.common.service.IPersonAccessService;
import com.yeejoin.precontrol.common.service.IPersonAscriptionService;
import com.yeejoin.precontrol.common.service.IPersonClockService;
import com.yeejoin.precontrol.common.service.IPersonExamService;
import com.yeejoin.precontrol.common.service.IPersonService;
import com.yeejoin.precontrol.common.service.IPersonWorkingHoursService;
import com.yeejoin.precontrol.common.service.IProjectClockService;
import com.yeejoin.precontrol.common.service.IProjectCompanyService;
import com.yeejoin.precontrol.common.service.IProjectCoordinateService;
import com.yeejoin.precontrol.common.service.IProjectDeviceService;
import com.yeejoin.precontrol.common.service.IProjectHistoryService;
import com.yeejoin.precontrol.common.service.IProjectQrcodeService;
import com.yeejoin.precontrol.common.service.IProjectService;
import com.yeejoin.precontrol.common.service.IStatisticsService;
import com.yeejoin.precontrol.common.service.ITaskPersonFileService;
import com.yeejoin.precontrol.common.service.ITaskPersonService;
import com.yeejoin.precontrol.common.service.ITaskRiskControlService;
import com.yeejoin.precontrol.common.service.ITaskService;
import com.yeejoin.precontrol.common.service.SmallProService;
import com.yeejoin.precontrol.common.utils.DateTools;
import com.yeejoin.precontrol.common.utils.DistanceUtil;
import com.yeejoin.precontrol.common.utils.PlatformUtils;
import com.yeejoin.precontrol.common.utils.RedisUtil;
import com.yeejoin.precontrol.common.utils.StringUtil;
import com.yeejoin.precontrol.common.vo.AdmissionVo;
import com.yeejoin.precontrol.common.vo.DepartureVo;
import com.yeejoin.precontrol.common.vo.EntryVo;
import com.yeejoin.precontrol.common.vo.IsClockOkVo;
import com.yeejoin.precontrol.common.vo.LeaveJobVo;
import com.yeejoin.precontrol.common.vo.MyClockExceptionVo;
import com.yeejoin.precontrol.common.vo.MyClockVo;
import com.yeejoin.precontrol.common.vo.MyHoursClockVo;
import com.yeejoin.precontrol.common.vo.ProjectQrBaseVo;
import com.yeejoin.precontrol.common.vo.ProjectQrCodeClockVo;
import com.yeejoin.precontrol.common.vo.UserBadManangerVo;
import com.yeejoin.precontrol.common.ws.WebSocket;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
/**
* 项目出入场二维码
*
* @author duanwei
* @date 2020-06-30
*/
@RestController
@Api(tags = "项目出入场二维码Api")
@RequestMapping(value = "/project-qrcode", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Slf4j
public class ProjectQrcodeController extends BaseController {
/**
* 项目二维码服务
*/
@Autowired
IProjectQrcodeService iProjectQrcodeService;
/**
* 人员打卡服务
*/
@Autowired
IPersonClockService iPersonClockService;
/**
* 小程序二维码服务
*/
@Autowired
SmallProService smallProService;
/**
* 项目历史服务
*/
@Autowired
IProjectHistoryService iProjectHistoryService;
/**
* 项目服务
*/
@Autowired
IProjectService iProjectService;
/**
* 项目坐标信息服务
*/
@Autowired
IProjectCoordinateService iProjectCoordinateService;
/**
* 人员服务
*/
@Autowired
IPersonService iPersonService;
/**
* 人员关系表服务
*/
@Autowired
IPersonAscriptionService iPersonAscriptionService;
/**
* 项目打卡服务
*/
@Autowired
IProjectClockService iProjectClockService;
/**
* 任务与附件服务
*/
@Autowired
ITaskPersonFileService iTaskPersonFileService;
/**
* 任务与人员服务
*/
@Autowired
ITaskPersonService iTaskPersonService;
/**
* 任务服务
*/
@Autowired
ITaskService iTaskService;
/**
* 违规管理服务
*/
@Autowired
IBadManagementService iBadManagementService;
@Autowired
IBadManagementPersonService iBadManagementPersonService;
/**
* 人员与工时服务
*/
@Autowired
IPersonWorkingHoursService iPersonWorkingHoursService;
/**
* 缓存服务
*/
@Autowired
RedisUtil redisUtil;
/**
* 考试服务
*/
@Autowired
IPersonExamService iPersonExamService;
@Autowired
ICompanyService icompanyService;
@Autowired
PlatformUtils platformUtils;
@Autowired
IProjectCompanyService iProjectCompanyService;
@Autowired
ITaskRiskControlService iTaskRiskControlService;
@Autowired
IPersonAccessService iPersonAccessService;
@Autowired
IProjectDeviceService iProjectDeviceService;
@Autowired
IStatisticsService statisticsService;
/**
* 江西电建公司id
*/
@Value("${jxdj.id}")
private String companyId;
/**
* 新增项目出入场二维码
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增项目出入场二维码", notes = "新增项目出入场二维码")
public Object saveProjectQrcode(HttpServletRequest request, @RequestBody ProjectQrcode projectQrcode) {
return iProjectQrcodeService.save(projectQrcode);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iProjectQrcodeService.removeById(id);
}
/**
* 修改项目出入场二维码
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改项目出入场二维码", notes = "修改项目出入场二维码")
public boolean updateByIdProjectQrcode(HttpServletRequest request, @RequestBody ProjectQrcode projectQrcode) {
return iProjectQrcodeService.updateById(projectQrcode);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public ProjectQrcode selectById(HttpServletRequest request, @PathVariable Long id) {
return iProjectQrcodeService.getById(id);
}
/**
* 获取项目二维码 type = "0 入场 1离场 2入岗 3离岗",
*
* @return
*/
@RequestMapping(value = "/getQrCode", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取项目二维码", notes = "获取项目二维码")
public void getQrCode(@RequestParam(value = "type") String type,
@RequestParam(value = "fileType", required = false, defaultValue = "png") String fileType,
@RequestParam(value = "width", required = false) String width,
@RequestParam(value = "projectId") Long projectId, HttpServletResponse response) {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
String token = smallProService.getSmallProToken();
ProjectQrBaseVo projectQrBaseVo = getProjectQrCodeVo(type, projectId, "", cal, token);
String uuid = String.valueOf(projectId) + "_" + type;
redisUtil.set(Constant.SMALL_PRO_PRCODE + uuid, projectQrBaseVo);
String page = "view/mine/ClockIn";
smallProService.getSmallProQrCodeResponse(token, uuid, page, Long.valueOf(width), null, null, null, response,
String.valueOf(projectId), fileType);
}
/**
* 获取分包商二维码
*
* @return
*/
@RequestMapping(value = "/getCompanyQrCode", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = " 获取分包商二维码", notes = " 获取分包商二维码")
public void getCompanyQrCode(
@RequestParam(value = "fileType", required = false, defaultValue = "png") String fileType,
@RequestParam(value = "width", required = false) String width,
@RequestParam(value = "projectId") Long projectId, @RequestParam(value = "companyId") Long companyId,
HttpServletResponse response) {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
String token = smallProService.getSmallProToken();
Project project = iProjectService.getById(projectId);
Company company = icompanyService.getById(companyId);
Map<String, Object> map = new HashMap<>();
map.put("projectId", projectId.toString());
map.put("projectName", project != null ? project.getName() : "");
map.put("companyId", companyId.toString());
map.put("companyName", company != null ? company.getName() : "");
String proAndCom = JSON.toJSONString(map);
String projectPre = projectId.toString().substring(projectId.toString().length() - 3,
projectId.toString().length());
String uuid = String.valueOf(projectId + companyId) + "_" + projectPre;
redisUtil.set(Constant.SMALL_PRO_COMPANY_PRCODE + uuid, proAndCom);
String page = "view/mine/minepage/Login";
smallProService.getSmallProQrCodeResponse(token, uuid, page, Long.valueOf(width), null, null, null, response,
String.valueOf(projectId + "-" + companyId), fileType);
}
/**
* 根据随机数来查询二维码信息
*
* @return
*/
@RequestMapping(value = "/getPrCodeInfo", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据随机数来查询二维码信息", notes = "根据随机数来查询二维码信息")
public Object listPage(String pId) {
if (redisUtil.hasKey(Constant.SMALL_PRO_PRCODE + pId)) {
ProjectQrBaseVo projectQrBaseVo = (ProjectQrBaseVo) redisUtil.get(Constant.SMALL_PRO_PRCODE + pId);
Project project = iProjectService.getById(projectQrBaseVo.getPId());
projectQrBaseVo.setProjectName(project.getName());
return projectQrBaseVo;
} else if (redisUtil.hasKey(Constant.SMALL_PRO_COMPANY_PRCODE + pId)) {
return redisUtil.get(Constant.SMALL_PRO_COMPANY_PRCODE + pId);
} else {
throw new BaseException(BaseExceptionEnum.DATA_NOT_EXISTS);
}
}
/**
* 判断是否处于打卡范围
*
* @return
*/
@RequestMapping(value = "/isClockOk", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "判断是否处于打卡范围", notes = "判断是否处于打卡范围")
public Object isClockOk(@RequestBody IsClockOkDto isClockOkDto) {
String clockAddress = isClockOkDto.getClockAddress();
Double longitude = isClockOkDto.getLongitude();
Double latitude = isClockOkDto.getLatitude();
Long projectId = isClockOkDto.getProjectId();
List<ProjectCoordinate> projectCoordinateList = iProjectCoordinateService
.list(new QueryWrapper<ProjectCoordinate>().lambda().eq(ProjectCoordinate::getProjectId, projectId));
IsClockOkVo isClockOkVo = new IsClockOkVo();
AtomicInteger result = new AtomicInteger();
log.info("打卡位置" + longitude + "," + latitude);
projectCoordinateList.forEach(projectCoordinate -> {
String distance = DistanceUtil.getDistance(latitude, longitude, projectCoordinate.getLatitude(),
projectCoordinate.getLongitude());
if (Double.valueOf(distance) < projectCoordinate.getClockScope()) {
result.addAndGet(1);
}
});
if (result.get() > 0) {
isClockOkVo.setStatus(true);
isClockOkVo.setClockAdrress(clockAddress);
} else {
// 当前位置大于范围
isClockOkVo.setStatus(false);
isClockOkVo.setClockAdrress(clockAddress);
}
return isClockOkVo;
}
/**
* 打卡类型 0 入场 1 离场 2上岗 3离岗
*
* @return
*/
@RequestMapping(value = "/parseQrCode", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "项目打卡", notes = "项目打卡")
public Object parseQrCode(@RequestBody ProjectQrCodeClockVo projectQrCodeClockVo) {
Person person = getPerson();
Long personId = person.getId();
Person curPerson = iPersonService.getById(personId);
Long projectId = projectQrCodeClockVo.getPId();
String type = projectQrCodeClockVo.getType();
Project project = iProjectService.getById(projectId);
if (project == null) {
throw new BaseException("项目不存在");
}
String addressName = projectQrCodeClockVo.getClockAddress();
if (Constant.ZERO.equals(type)) {
// 入场打卡
iPersonAccessService.enterJudge(curPerson);
clockByTypeAndProject(personId, projectQrCodeClockVo);
} else if (Constant.ONE.equals(type)) {
// 离场打卡
// 加判断 判断当前项目 如果离岗了 不准打卡
List<ProjectHistory> list = iProjectHistoryService.list(new LambdaQueryWrapper<ProjectHistory>()
.eq(ProjectHistory::getPersonId, personId).eq(ProjectHistory::getProjectId, projectId));
AtomicBoolean isJob = new AtomicBoolean(false);
if (StringUtil.isNotEmpty(list)) {
list.forEach(projectHistory -> {
Date endTime = projectHistory.getEndTime();
if (endTime == null) {
isJob.set(true);
}
});
} else {
throw new BaseException("离场失败,请先入岗打卡");
}
// 企业轨迹中有数据 没有离岗 说明可以打卡
if (isJob.get()) {
clockByTypeAndProject(personId, projectQrCodeClockVo);
} else {
throw new BaseException("离场失败,请先入岗打卡");
}
// 退出风险作业区域
List<TaskPerson> taskPersonlist = iTaskPersonService
.list(new LambdaQueryWrapper<TaskPerson>().eq(TaskPerson::getPersonId, personId)
.eq(TaskPerson::getInRiskRegion, InRiskRegionEnum.inRiskRegion.getStatus()));
if (StringUtil.isNotEmpty(taskPersonlist)) {
taskPersonlist.forEach(i -> i.setInRiskRegion(InRiskRegionEnum.outRiskRegion.getStatus()));
iTaskPersonService.updateBatchById(taskPersonlist);
}
} else if (Constant.TWO.equals(type)) {
platformUtils.setPlatFormAccess();
// 入岗打卡
if (curPerson.getIsBlack() == 1L) {
throw new BaseException("黑名单人员,禁止上岗");
}
// 如果有数据查询一下 项目历史轨迹 如果轨迹中 确实离岗了 才能再入岗
List<ProjectHistory> list = iProjectHistoryService
.list(new LambdaQueryWrapper<ProjectHistory>().eq(ProjectHistory::getPersonId, personId));
if (StringUtil.isNotEmpty(list)) {
list.forEach(projectHistory -> {
Date endTime = projectHistory.getEndTime();
if (endTime == null) {
Project p = iProjectService.getById(projectHistory.getProjectId());
String name = "";
if (p != null) {
name = p.getName().length() > 6 ? p.getName().substring(0, 6) + "..." : p.getName();
}
throw new BaseException("入岗失败,仍处于" + name + "项目中,请先离岗!");
}
});
}
PersonAscription ascription = iPersonAscriptionService
.getOne(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, personId));
Company company = icompanyService.getById(ascription.getCompanyId());
// 判断是否是当前人的所在的分包商 是否属于这个项目
int count = iProjectCompanyService.count(
new LambdaQueryWrapper<ProjectCompany>().eq(ProjectCompany::getCompanyId, ascription.getCompanyId())
.eq(ProjectCompany::getProjectId, projectId));
if (company != null) {
if (TypeKeyEnum.COMPANY.getType() == Integer.valueOf(company.getTypeKey()) && count == 0) {
throw new BaseException("入岗失败,该项目没有关联当前人员的分包商");
}
} else {
throw new BaseException("入岗失败,当前人员没有所属分包商");
}
// // 判断是否是当前项目部的项目
// if (!iPersonService.canJoinProject(personId, projectId)) {
// throw new BaseException("入岗失败,该项目不属于当前人员所在的项目部");
// }
// 修改身份配置
PersonAccount personAccount = projectQrCodeClockVo.getPersonAccount();
if (personAccount != null) {
String orgCode = project.getOrgCode();
if (orgCode == null) {
throw new BaseException("入岗失败,该项目没有所属项目部");
}
String userId = String.valueOf(curPerson.getUserId());
FeignClientResult<AgencyUserModel> agencyUserModelFeignClientResult = Privilege.agencyUserClient
.queryByUserId(userId);
AgencyUserModel userModel = agencyUserModelFeignClientResult.getResult();
Long companySeq = Long.valueOf(companyId);
Map<Long, List<Long>> map = new HashMap<>();
if (curPerson.getIsJxdj() == TypeKeyEnum.JXDJ.getLongType()) {
map.put(personAccount.getPlatformDepartmentId(), personAccount.getRoleIdList());
} else {
Long newDeptId = null;
FeignClientResult<DepartmentModel> fd = Privilege.departmentClient.queryByOrgcode(orgCode);
DepartmentModel dept = fd.getResult();
FeignClientResult<Collection<DepartmentModel>> fc = Privilege.departmentClient
.querySubAgencyTree(dept.getSequenceNbr());
Collection<DepartmentModel> collect = fc.getResult();
DepartmentModel fbs = null;
for (DepartmentModel departmentModel : collect) {
if ("fbs".equals(departmentModel.getLevel())) {
fbs = departmentModel;
break;
}
}
if (fbs == null) {
DepartmentModel newfbs = new DepartmentModel();
newfbs.setCompanySeq(companySeq);
newfbs.setDepartmentName("分包商");
newfbs.setLevel("fbs");
newfbs.setParentId(dept.getSequenceNbr());
FeignClientResult<DepartmentModel> fdfbs = Privilege.departmentClient.create(newfbs);
fbs = fdfbs.getResult();
}
newDeptId = fbs.getSequenceNbr();
map.put(newDeptId, personAccount.getRoleIdList());
}
userModel.setOrgRoleSeqs(map);
FeignClientResult<AgencyUserModel> result = new FeignClientResult<>();
// 修改身份配置
try {
result = Privilege.agencyUserClient.update(userModel, userId);
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
throw new BaseException("平台更新账户失败");
}
int status = result.getStatus();
if (status == 200) {
iPersonService.setRoleName(curPerson, Arrays.toString(personAccount.getRoleIdList().toArray()));
iPersonService.updateById(curPerson);
if (curPerson.getIsJxdj() == TypeKeyEnum.JXDJ.getLongType()) {
PersonAscription personAscription = iPersonAscriptionService
.getOne(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId,
person.getId()));
personAscription.setDepartmentId(personAccount.getPlatformDepartmentId());
personAscription.setDepartmentName(personAccount.getPlatformDepartmentName());
iPersonAscriptionService.updateById(personAscription);
}
}
}
iProjectQrcodeService.projectClock(personId, projectId, addressName);
// 同步数据到新项目门禁
List<ProjectDevice> devicelist = iProjectDeviceService
.list(new LambdaQueryWrapper<ProjectDevice>().eq(ProjectDevice::getProjectId, projectId));
List<String> sessonNames = devicelist.stream().map(ProjectDevice::getNumber).collect(Collectors.toList());
if (StringUtil.isNotEmpty(sessonNames)) {
WebSocket.addPerson(curPerson, sessonNames);
}
} else if (Constant.THREE.equals(type)) {
// 离岗打卡
// // 如果有人来打下岗卡 先查有没有上岗记录 有上岗才准打下岗
// List<ProjectClock> projectClockList = iProjectClockService.list(new LambdaQueryWrapper<ProjectClock>()
// .eq(ProjectClock::getType, Constant.TWO).eq(ProjectClock::getPersonId, personId));
// if (StringUtil.isEmpty(projectClockList)) {
// throw new BaseException("当前人员未存在上岗记录");
// }
// // 代办任务没做完 不准离岗
// List<TaskPerson> task = iTaskPersonService.list(new LambdaQueryWrapper<TaskPerson>()
// .eq(TaskPerson::getPersonId, personId).eq(TaskPerson::getReadStatus, 0));
// if (StringUtil.isNotEmpty(task)) {
// throw new BaseException("待办任务未完成,请先完成代办任务再离岗!");
// }
List<ProjectHistory> projectHistoryList = iProjectHistoryService.list(
new LambdaQueryWrapper<ProjectHistory>().eq(ProjectHistory::getProjectId, Long.valueOf(projectId))
.eq(ProjectHistory::getPersonId, personId).orderByDesc(ProjectHistory::getCreateDate));
if (StringUtil.isNotEmpty(projectHistoryList)) {
ProjectHistory projectHistory = projectHistoryList.get(0);
if (projectHistory.getEndTime() != null) {
throw new BaseException("请先上岗!");
}
projectHistory.setEndTime(new Date());
iProjectHistoryService.updateById(projectHistory);
ProjectClock projectClock = new ProjectClock();
projectClock.setPersonId(personId);
projectClock.setType(3);
projectClock.setClockTime(new Date());
projectClock.setClockProject(project.getName());
projectClock.setClockProjectId(Long.valueOf(projectId));
projectClock.setClockAddress(addressName);
iProjectClockService.save(projectClock);
// 离岗离开项目
PersonAscription personAscription = iPersonAscriptionService
.getOne(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, personId));
if (personAscription == null) {
throw new BaseException("人员的关联信息不存在");
}
iPersonAscriptionService.update(null,
Wrappers.<PersonAscription>lambdaUpdate().set(PersonAscription::getProjectId, null)
.set(PersonAscription::getOrgCode, null).set(PersonAscription::getStatus, 1)
.eq(PersonAscription::getId, personAscription.getId()));
boolean jxdj = person.getIsJxdj().equals(1L) ? true : false;
String currentOrgCode = jxdjLeave(person, jxdj);
// 设置人员orgCode为空 江西电建的人特殊处理 暂时没处理
iPersonService.update(null, Wrappers.<Person>lambdaUpdate().set(Person::getOrgCode, currentOrgCode)
.eq(Person::getId, personAscription.getPersonId()));
// 江西电建激活状态入岗就调整为1
if (jxdj) {
// 如果人员的部门类型是公共部门,org_code设置为null
if (DeptTypeEnum.PUBLIC.getLabel().equals(person.getDeptType())) {
person.setOrgCode(null);
}
person.setActiveStatus(1L);
iPersonService.updateById(person);
}
// 同步数据到新项目门禁
List<ProjectDevice> devicelist = iProjectDeviceService
.list(new LambdaQueryWrapper<ProjectDevice>().eq(ProjectDevice::getProjectId, projectId));
List<String> sessonNames = devicelist.stream().map(ProjectDevice::getNumber)
.collect(Collectors.toList());
if (StringUtil.isNotEmpty(sessonNames)) {
WebSocket.delPerson(Arrays.asList(curPerson.getUserId()));
}
} else {
throw new BaseException("人员项目历史数据不存在");
}
} else {
throw new BaseException(BaseExceptionEnum.PARAMETER_ERROR);
}
projectQrCodeClockVo.setClockTime(new Date());
projectQrCodeClockVo.setClockAddress(addressName);
Long pId = projectQrCodeClockVo.getPId();
Project project1 = iProjectService.getById(pId);
projectQrCodeClockVo.setProjectName(project1.getName());
return projectQrCodeClockVo;
}
/**
* 打卡按月异常情况展示
*
* @return
*/
@RequestMapping(value = "/clockExcetionList", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "打卡按月异常情况展示", notes = "打卡按月异常情况展示")
public Object clockExcetionList(@DateTimeFormat(pattern = "yyyy-MM") Date month) {
Person person = getPerson();
Long userId = person.getId();
boolean thisTime = true;
if (month != null) {
thisTime = DateTools.isThisTime(month);
}
LinkedList<String> monthDays;
if (thisTime) {
// 是本月
monthDays = DateTools.getMonthDays();
} else {
monthDays = DateTools.getMonthEveryDays(month);
}
LinkedHashMap<String, Object> maps = new LinkedHashMap<>();
monthDays.forEach(day -> {
// 查询每天的数据情况
String start = day + " 00:00:00";
String end = day + " 23:59:59";
List<PersonClock> personClockStartList = iPersonClockService.list(new LambdaQueryWrapper<PersonClock>()
.eq(PersonClock::getPersonId, userId).between(PersonClock::getClockTime, start, end)
.eq(PersonClock::getInOrOut, 0).orderByAsc(PersonClock::getClockTime));
List<PersonClock> personClockEndList = iPersonClockService.list(new LambdaQueryWrapper<PersonClock>()
.eq(PersonClock::getPersonId, userId).between(PersonClock::getClockTime, start, end)
.eq(PersonClock::getInOrOut, 1).orderByDesc(PersonClock::getClockTime));
MyClockExceptionVo myClockExceptionVo = new MyClockExceptionVo();
// 打卡数据必须一天有两次 才代表无异常
if (StringUtil.isEmpty(personClockStartList) || StringUtil.isEmpty(personClockEndList)) {
myClockExceptionVo.setStatus(0);
} else {
myClockExceptionVo.setStatus(1);
}
maps.put(day, myClockExceptionVo);
});
return maps;
}
/**
* 查询个人违章信息
*
* @return
*/
@RequestMapping(value = "/badList", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "查询个人违章信息", notes = "查询个人违章信息")
public Object badList(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "人员id") Long personId, @ApiParam(value = "开始时间 举例 2020-07-01 00:00:00") String startDate,
@ApiParam(value = "结束时间 举例 2020-07-30 23:59:59") String endDate) {
// 获取用户id 创建人的
if (pageable.getIsAll() == 1) {
pageable.setPageNumber(0);
pageable.setPageSize(Integer.MAX_VALUE);
}
Page<BadManagementPerson> page = new Page<>(pageable.getPageNumber(), pageable.getPageSize());
if (personId == null) {
Person person = getPerson();
personId = person.getId();
}
LambdaQueryWrapper<BadManagementPerson> badManagementLambdaQueryWrapper = new LambdaQueryWrapper<BadManagementPerson>()
.eq(BadManagementPerson::getPersonId, personId).orderByDesc(BadManagementPerson::getCreateDate);
if (StringUtils.isNotEmpty(startDate) && StringUtil.isNotEmpty(endDate)) {
badManagementLambdaQueryWrapper.between(BadManagementPerson::getCreateDate, startDate, endDate);
}
IPage<BadManagementPerson> badManagementList = iBadManagementPersonService.page(page,
badManagementLambdaQueryWrapper);
List<BadManagementPerson> records = badManagementList.getRecords();
// 自己违规的情况
List<UserBadManangerVo> userBadManangerVos = new ArrayList<>();
if (StringUtil.isEmpty(records)) {
return badManagementList;
} else {
records.forEach(badManagementPerson -> {
Long taskId = badManagementPerson.getTaskId();
Task task = iTaskService.getById(taskId);
UserBadManangerVo userBadManangerVo = new UserBadManangerVo();
userBadManangerVo.setTaskId(taskId);
if (task != null) {
userBadManangerVo.setProjectName(task.getProjectName());
}
BadManagement badManagement = iBadManagementService
.getOne(new LambdaQueryWrapper<BadManagement>().eq(BadManagement::getTaskId, taskId));
if (badManagement != null) {
userBadManangerVo.setBody(badManagement.getBody());
}
List<TaskPersonFile> taskPersonFiles = iTaskPersonFileService
.list(new LambdaQueryWrapper<TaskPersonFile>().eq(TaskPersonFile::getTaskId, taskId)
.eq(TaskPersonFile::getPersonType, 99));
if (StringUtil.isNotEmpty(taskPersonFiles)) {
List<String> filePath = new ArrayList<>();
for (TaskPersonFile taskPersonFile : taskPersonFiles) {
filePath.add(taskPersonFile.getFilePath());
}
userBadManangerVo.setFilePath(filePath);
}
userBadManangerVo.setBadDate(badManagement.getCreateDate());
userBadManangerVos.add(userBadManangerVo);
});
}
IPage<UserBadManangerVo> userBadManangerVoIPage = new Page<>();
userBadManangerVoIPage.setRecords(userBadManangerVos);
userBadManangerVoIPage.setTotal(userBadManangerVos.size());
userBadManangerVoIPage.setSize(pageable.getPageSize());
userBadManangerVoIPage.setCurrent(pageable.getPageNumber());
return userBadManangerVoIPage;
}
/**
* app端我的工时
*
* @return
*/
@RequestMapping(value = "/myHours", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "app端我的工时", notes = "app端我的工时")
public Object myHours(@DateTimeFormat(pattern = "yyyy-MM-dd") Date day) {
if (day == null) {
day = new Date();
}
Person person = getPerson();
// 获取用户id 创建人的
Long userId = person.getId();
Date startDayDate = day;
Date endDayDate = day;
SimpleDateFormat startFormat = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
SimpleDateFormat endFormat = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
String start = startFormat.format(startDayDate);
String end = endFormat.format(endDayDate);
// 当天的打卡记录
List<PersonClock> list = iPersonClockService.list(new LambdaQueryWrapper<PersonClock>()
.eq(PersonClock::getPersonId, userId).between(PersonClock::getClockTime, start, end));
int size = list.size();
MyHoursClockVo myHoursClockVo = new MyHoursClockVo();
myHoursClockVo.setClockNum(String.valueOf(size));
// 获取最早打卡时间
List<PersonClock> personClockStartList = iPersonClockService.list(new LambdaQueryWrapper<PersonClock>()
.eq(PersonClock::getPersonId, userId).between(PersonClock::getClockTime, start, end)
.eq(PersonClock::getInOrOut, 0).orderByAsc(PersonClock::getClockTime));
List<PersonClock> personClockEndList = iPersonClockService.list(new LambdaQueryWrapper<PersonClock>()
.eq(PersonClock::getPersonId, userId).between(PersonClock::getClockTime, start, end)
.eq(PersonClock::getInOrOut, 1).orderByDesc(PersonClock::getClockTime));
List<MyClockVo> myClock = new ArrayList<>();
MyClockVo endClockVo = new MyClockVo();
MyClockVo startClockVo = new MyClockVo();
// 如果没有对应时间的记录
if (StringUtil.isEmpty(personClockStartList) && StringUtil.isNotEmpty(personClockEndList)) {
PersonClock personClock2 = personClockEndList.get(0);
// 最晚打卡
endClockVo.setPersonId(userId);
endClockVo.setInOrOut(personClock2.getInOrOut());
endClockVo.setClockTime(personClock2.getClockTime());
endClockVo.setClockProjectId(personClock2.getClockProjectId());
endClockVo.setClockProject(personClock2.getClockProject());
myClock.add(endClockVo);
myHoursClockVo.setMyClock(myClock);
return myHoursClockVo;
} else if (StringUtil.isEmpty(personClockEndList) && StringUtil.isNotEmpty(personClockStartList)) {
PersonClock personClock1 = personClockStartList.get(0);
startClockVo.setPersonId(userId);
startClockVo.setInOrOut(personClock1.getInOrOut());
startClockVo.setClockTime(personClock1.getClockTime());
startClockVo.setClockProjectId(personClock1.getClockProjectId());
startClockVo.setClockProject(personClock1.getClockProject());
myClock.add(startClockVo);
myHoursClockVo.setMyClock(myClock);
return myHoursClockVo;
} else if (StringUtil.isEmpty(personClockEndList) && StringUtil.isEmpty(personClockStartList)) {
return myHoursClockVo;
} else {
PersonClock personClock1 = personClockStartList.get(0);
PersonClock personClock2 = personClockEndList.get(0);
// 计算工时
if (personClock1 != null && personClock2 != null) {
Long hour = (personClock2.getClockTime().getTime() - personClock1.getClockTime().getTime()) / 1000 / 60
/ 60;
myHoursClockVo.setHour(hour);
}
startClockVo.setPersonId(userId);
startClockVo.setInOrOut(personClock1.getInOrOut());
startClockVo.setClockTime(personClock1.getClockTime());
startClockVo.setClockProjectId(personClock1.getClockProjectId());
startClockVo.setClockProject(personClock1.getClockProject());
myClock.add(startClockVo);
endClockVo.setPersonId(userId);
endClockVo.setInOrOut(personClock2.getInOrOut());
endClockVo.setClockTime(personClock2.getClockTime());
endClockVo.setClockProjectId(personClock2.getClockProjectId());
endClockVo.setClockProject(personClock2.getClockProject());
myClock.add(endClockVo);
myHoursClockVo.setMyClock(myClock);
}
return myHoursClockVo;
}
/**
* web端专用我的工时查询
*
* @param pageable
* @param startTime
* @param endTime
* @return
*/
@RequestMapping(value = "/workHourStatistical", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "web端专用我的工时查询", notes = "web专用我的工时查询")
public Object workHourStatistical(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@DateTimeFormat(pattern = "yyyy-MM-dd 00:00:00") String startTime,
@DateTimeFormat(pattern = "yyyy-MM-dd 23:59:59") String endTime, @ApiParam(value = "用户id") Long id) {
if (pageable.getIsAll() == 1) {
pageable.setPageNumber(0);
pageable.setPageSize(Integer.MAX_VALUE);
}
Page<PersonClock> page = new Page<>(pageable.getPageNumber(), pageable.getPageSize());
IPage<PersonClock> pageData = null;
if (startTime == null || endTime == null) {
pageData = iPersonClockService.page(page,
new LambdaQueryWrapper<PersonClock>().eq(PersonClock::getPersonId, id));
} else {
pageData = iPersonClockService.page(page, new LambdaQueryWrapper<PersonClock>()
.eq(PersonClock::getPersonId, id).between(PersonClock::getClockTime, startTime, endTime));
}
if (!StringUtil.isEmpty(pageData.getRecords())) {
pageData.getRecords().forEach(i -> i.setInOrOutLabel(i.getInOrOut() == 0 ? "入场" : "离场"));
}
return pageData;
}
/**
* web端专用我的工时数量查询
*
* @param startTime
* @param endTime
* @return
*/
@RequestMapping(value = "/workHourStatisticalNum", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "web端专用我的工时数量查询", notes = "web端专用我的工时数量查询")
public Object workHourStatisticalNum(@DateTimeFormat(pattern = "yyyy-MM-dd 00:00:00") Date startTime,
@DateTimeFormat(pattern = "yyyy-MM-dd 23:59:59") Date endTime, @ApiParam(value = "用户id") Long id) {
// List<PersonWorkingHours> list;
// if (startTime == null || endTime == null) {
// list = iPersonWorkingHoursService
// .list(new LambdaQueryWrapper<PersonWorkingHours>().eq(PersonWorkingHours::getPersonId, id));
// } else {
// list = iPersonWorkingHoursService.list(new LambdaQueryWrapper<PersonWorkingHours>()
// .eq(PersonWorkingHours::getPersonId, id).between(PersonWorkingHours::getDate, startTime, endTime));
// }
//
// int day = 0;
// AtomicReference<Double> hour = new AtomicReference<>(0.0);
// if (StringUtil.isNotEmpty(list)) {
// day = list.size();
// list.forEach(l -> {
// hour.updateAndGet(v -> v + l.getWorkingHours());
// });
// }
CommonPageableDto pageable = new CommonPageableDto();
pageable.setPageNumber(0);
pageable.setPageSize(Integer.MAX_VALUE);
Page<PersonClock> page = new Page<>(pageable.getPageNumber(), pageable.getPageSize());
IPage<PersonClock> pageData = null;
List<PersonClock> dayList = new ArrayList<PersonClock>();
if (startTime == null || endTime == null) {
dayList = iPersonClockService.list(new LambdaQueryWrapper<PersonClock>().eq(PersonClock::getPersonId, id)
.groupBy(PersonClock::getClockDate));
} else {
dayList = iPersonClockService.list(new LambdaQueryWrapper<PersonClock>().eq(PersonClock::getPersonId, id)
.between(PersonClock::getClockTime, startTime, endTime).groupBy(PersonClock::getClockDate));
}
Map<String, Object> map = new HashMap<>();
map.put("day", dayList.size());
List<PersonClock> inList = iPersonClockService.getEveryDayMinList(id, startTime, endTime);
List<PersonClock> outList = iPersonClockService.getEveryDayMaxList(id, startTime, endTime);
Map<Date, Date> dateMap = new HashMap<>();
inList.forEach(i -> dateMap.put(i.getClockDate(), i.getClockTime()));
Double hour = 0.0;
// 一天的毫秒数
Long nd = (long) (1000 * 60 * 60 * 24);
// 一小时的毫秒数
Long nh = (long) (1000 * 60 * 60);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (PersonClock i : outList) {
Date inTime = dateMap.get(i.getClockDate());
Date outTime = i.getClockTime();
if (inTime != null && outTime != null) {
Long diff = (long) 0;
diff = outTime.getTime() - inTime.getTime();
hour += diff.doubleValue() % nd.doubleValue() / nh.doubleValue();
}
}
BigDecimal b = new BigDecimal(hour);
hour = b.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
map.put("hour", hour);
return map;
}
/**
* 根据工程id和类型进行打卡
*
* @param personId 用户id
* @param projectQrCodeClockVo 打卡对象 类型 0 入场 1离场 2入岗 3离岗
*/
private void clockByTypeAndProject(Long personId, ProjectQrCodeClockVo projectQrCodeClockVo) {
String type = projectQrCodeClockVo.getType();
Long pId = projectQrCodeClockVo.getPId();
Double longitude = projectQrCodeClockVo.getLongitude();
Double latitude = projectQrCodeClockVo.getLatitude();
String addressName = projectQrCodeClockVo.getClockAddress();
Project project = iProjectService.getById(pId);
log.info("打卡位置" + longitude + "," + latitude);
List<ProjectCoordinate> projectCoordinateList = iProjectCoordinateService
.list(new QueryWrapper<ProjectCoordinate>().lambda().eq(ProjectCoordinate::getProjectId, pId));
AtomicInteger result = new AtomicInteger();
projectCoordinateList.forEach(projectCoordinate -> {
String distance = DistanceUtil.getDistance(latitude, longitude, projectCoordinate.getLatitude(),
projectCoordinate.getLongitude());
// 当前位置打卡距离小于打卡半径
if (Double.valueOf(distance) < projectCoordinate.getClockScope()) {
result.addAndGet(1);
}
});
Person person = iPersonService.getById(personId);
PersonAscription ascription = iPersonAscriptionService
.getOne(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, personId));
Date currentDate = new Date();
long currentDateTime = currentDate.getTime();
if (result.get() < 1) {
throw new BaseException("打卡位置大于项目设定的最远距离");
}
PersonClock personClock = new PersonClock();
personClock.setPersonId(Long.valueOf(personId));
if (Constant.ZERO.equals(type)) {
personClock.setInOrOut(0);
} else {
personClock.setInOrOut(1);
}
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
personClock.setClockDate(dateFormat.parse(dateFormat.format(new Date())));
} catch (ParseException e) {
throw new BaseException("日期转换错误");
}
personClock.setClockCompanyId(ascription.getCompanyId());
personClock.setClockTime(new Date());
personClock.setClockProjectId(String.valueOf(pId));
personClock.setClockProject(project.getName());
personClock.setClockAddress(addressName);
personClock.setOrgCode(person.getOrgCode());
iPersonClockService.save(personClock);
String day = DateTools.getPastDate(0);
String start = day + " 00:00:00";
String end = day + " 23:59:59";
double resultTime;
if (Constant.ZERO.equals(type)) {
// 入场进行激活状态调整
if (person != null) {
person.setActiveStatus(1L);
iPersonService.updateById(person);
}
} else if (Constant.ONE.equals(type)) {
if (person != null) {
person.setActiveStatus(0L);
iPersonService.updateById(person);
}
// 离场 计算出工时数据
PersonWorkingHours personWorkingHours = iPersonWorkingHoursService
.getOne(new LambdaQueryWrapper<PersonWorkingHours>().eq(PersonWorkingHours::getPersonId, personId)
.eq(PersonWorkingHours::getProjectId, pId).eq(PersonWorkingHours::getDate, day));
// 获取最小打卡时间
List<PersonClock> personClockList = iPersonClockService
.list(new LambdaQueryWrapper<PersonClock>().eq(PersonClock::getClockProjectId, pId)
.eq(PersonClock::getPersonId, personId).between(PersonClock::getClockTime, start, end)
.eq(PersonClock::getInOrOut, 0).orderByAsc(PersonClock::getClockTime));
if (StringUtil.isNotEmpty(personClockList)) {
PersonClock personClock1 = personClockList.get(0);
long minTime = personClock1.getClockTime().getTime();
resultTime = (currentDateTime - minTime) / 1000 / 60 / 60.0;
if (personWorkingHours == null) {
personWorkingHours = new PersonWorkingHours();
if (StringUtil.isNotEmpty(personClockList)) {
personWorkingHours.setPersonId(personId);
personWorkingHours.setDate(currentDate);
personWorkingHours.setProjectId(Long.valueOf(pId));
personWorkingHours.setWorkingHours(resultTime);
iPersonWorkingHoursService.save(personWorkingHours);
}
} else {
// 更新
personWorkingHours.setWorkingHours(resultTime);
iPersonWorkingHoursService.updateById(personWorkingHours);
}
} else {
log.error("未打入场卡,直接打了离场卡:{}", personId);
}
}
// 更新推送
statisticsService.initWs(person.getOrgCode(), Constant.WS_COMPOSITESUM);
}
/**
* 根据类型、工程id、频率计算返回对象 部分参数根据需求调整 暂时不考虑去除
*
* @param type
* @param projectId
* @param frequency
* @param cal
* @return
*/
private ProjectQrBaseVo getProjectQrCodeVo(String type, Long projectId, String frequency, Calendar cal,
String accessToken) {
switch (type) {
case Constant.ZERO:
AdmissionVo adminssionVo = new AdmissionVo();
adminssionVo.setType(type);
adminssionVo.setPId(projectId);
return adminssionVo;
case Constant.ONE:
DepartureVo departureVo = new DepartureVo();
departureVo.setType(type);
departureVo.setPId(projectId);
return departureVo;
case Constant.TWO:
EntryVo entryVo = new EntryVo();
entryVo.setType(type);
entryVo.setPId(projectId);
return entryVo;
case Constant.THREE:
LeaveJobVo leaveJobVo = new LeaveJobVo();
leaveJobVo.setType(type);
leaveJobVo.setPId(projectId);
return leaveJobVo;
default:
throw new BaseException(BaseExceptionEnum.PARAMETER_ERROR);
}
}
private String jxdjLeave(Person person, boolean jxdj) {
try {
String currentOrgCode = null;
Long companyId;
String departmentOrgCode = null;
Long departmentId = null;
Long userId = person.getUserId();
log.info("江西电建离岗人员userId:" + userId);
AgencyUserModel userModel = platformUtils.getSyncPlatformUser(String.valueOf(userId));
companyId = (userModel.getCompanys() != null && userModel.getCompanys().get(0) != null)
? userModel.getCompanys().get(0).getSequenceNbr()
: null;
log.info("江西电建离岗人员companyId:" + companyId);
List<DepartmentModel> departmentList = null;
Map<Long, List<DepartmentModel>> companyDepartments = userModel.getCompanyDepartments();
if (null != companyDepartments) {
departmentList = userModel.getCompanyDepartments().get(companyId);
}
if (departmentList != null && departmentList.get(0) != null) {
departmentId = departmentList.get(0).getSequenceNbr();
departmentOrgCode = departmentList.get(0).getOrgCode();
}
log.info("江西电建离岗人员departmentId:" + departmentId);
log.info("江西电建离岗人员departmentOrgCode:" + departmentOrgCode);
if (!platformUtils.isBelongDept(departmentId, companyId, "public")) {
boolean hasChild = platformUtils.hasChild(departmentId);
log.info("江西电建离岗人员是否有上级部门:" + hasChild);
currentOrgCode = hasChild ? departmentOrgCode
: departmentOrgCode.substring(0, departmentOrgCode.lastIndexOf("*"));
log.info("江西电建离岗人员orgCode:" + currentOrgCode);
}
return currentOrgCode;
} catch (Exception e) {
return null;
}
}
/**
* 获取项目二维码 type = "0 入场 1离场 2入岗 3离岗",
*
* @return
*/
@RequestMapping(value = "/getJoinQrCode", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取加入部门二维码", notes = "获取加入部门二维码")
public void getJoinQrCode(
@RequestParam(value = "fileType", required = false, defaultValue = "png") String fileType,
@RequestParam(value = "width", required = false, defaultValue = "20") String width,HttpServletResponse response) {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
String token = smallProService.getSmallProToken();
// String uuid = String.valueOf(projectId) + "_" + type;
// redisUtil.set(Constant.SMALL_PRO_PRCODE + uuid, projectQrBaseVo);
long uuid= System.currentTimeMillis();
String page = "view/mine/JoinDepart";
//String page = "view/mine/ClockIn";
smallProService.getSmallProQrCodeResponse(token, String.valueOf(uuid), page, Long.valueOf(width), null, null, null, response,
String.valueOf(uuid), fileType);
}
}
package com.yeejoin.precontrol.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.precontrol.common.entity.Project;
import com.yeejoin.precontrol.common.entity.ProjectVideo;
import com.yeejoin.precontrol.common.service.IProjectService;
import com.yeejoin.precontrol.common.service.IProjectVideoService;
import com.yeejoin.precontrol.common.utils.StringUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
* 项目视频表
*
* @author duanwei
* @date 2020-08-06
*/
@RestController
@Api(tags = "项目视频表Api")
@RequestMapping(value = "/project-video", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class ProjectVideoController {
/**
* 工程视频服务
*/
@Autowired
IProjectVideoService iProjectVideoService;
/**
* 工程服务
*/
@Autowired
IProjectService iProjectService;
/**
* 文件服务器
*/
@Value("${fileserver.domain}")
private String fileserver;
@Value("${camera-conf.protocol}")
private String protocol;
@Value("${camera-conf.socket}")
private String socket;
/**
* 新增项目视频表
*
* @return
*/
@RequestMapping(value = "", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增项目视频表", notes = "新增项目视频表")
public boolean saveProjectVideo(@RequestBody ProjectVideo projectVideo) {
if (ValidationUtil.isEmpty(projectVideo.getIp()) || ValidationUtil.isEmpty(projectVideo.getPort())
|| ValidationUtil.isEmpty(projectVideo.getUsername()) || ValidationUtil.isEmpty(projectVideo.getPassword())
|| ValidationUtil.isEmpty(projectVideo.getProjectId())) {
throw new BadRequest("参数不正确");
}
projectVideo.setProtocol(protocol);
projectVideo.setSocket(socket);
updateToken(projectVideo);
return iProjectVideoService.save(projectVideo);
}
private void updateToken(ProjectVideo projectVideo) {
String token = UUID.randomUUID().toString();
projectVideo.setToken(token);
// TODO-调用第三方注册摄像头
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iProjectVideoService.removeById(id);
}
/**
* 修改项目视频表
*
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改项目视频表", notes = "修改项目视频表")
public boolean updateByIdProjectVideo(@PathVariable("id") Long id, @RequestBody ProjectVideo projectVideo) {
if (null == id) {
throw new BadRequest("缺少目标");
}
ProjectVideo old = iProjectVideoService.getById(id);
if (null == old) {
throw new BadRequest("目标不存在");
}
if (ValidationUtil.isEmpty(projectVideo) || ValidationUtil.isEmpty(projectVideo.getIp())
|| ValidationUtil.isEmpty(projectVideo.getPort()) || ValidationUtil.isEmpty(projectVideo.getUsername())
|| ValidationUtil.isEmpty(projectVideo.getPassword()) || ValidationUtil.isEmpty(projectVideo.getProjectId())
) {
throw new BadRequest("参数不正确");
}
projectVideo.setProtocol(protocol);
projectVideo.setSocket(socket);
if (StringUtils.equals(old.getUsername(), projectVideo.getUsername()) && StringUtils.equals(old.getPassword(), projectVideo.getPassword())
&& StringUtils.equals(old.getIp(), projectVideo.getIp()) && projectVideo.getPort().equals(old.getPort())) {
}else {
updateToken(projectVideo);
}
return iProjectVideoService.updateById(projectVideo);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public Object selectById(@PathVariable Long id) {
ProjectVideo res = iProjectVideoService.getById(id);
return res;
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public Object listPage(String projectId) {
List<ProjectVideo> projectVideoList;
Map<String, Object> map = new HashMap<>(2);
map.put("title", "");
if (StringUtils.isEmpty(projectId)) {
projectVideoList = iProjectVideoService.list();
} else {
Project project = iProjectService.getById(projectId);
if (project != null) {
map.put("title", project.getName());
}
projectVideoList = iProjectVideoService.list(new LambdaQueryWrapper<ProjectVideo>().eq(ProjectVideo::getProjectId, projectId));
}
if (StringUtil.isNotEmpty(projectVideoList)) {
projectVideoList.forEach(projectVideo -> projectVideo.setUsername(null).setPassword(null));
}
map.put("videoList", projectVideoList);
return map;
}
}
package com.yeejoin.precontrol.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.dto.StudioPageableDto;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.Retribution;
import com.yeejoin.precontrol.common.service.IRetributionService;
import com.yeejoin.precontrol.common.utils.Response;
import com.yeejoin.precontrol.common.utils.StringUtil;
import com.yeejoin.precontrol.common.vo.RetributionVo;
import com.yeejoin.precontrol.common.vo.RewardListVo;
import com.yeejoin.precontrol.common.vo.RewardOrgCodeVo;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 惩罚表
*
* @author duanwei
* @date 2021-04-06
*/
@RestController
@Api(tags = "惩罚表Api")
@RequestMapping(value = "/retribution", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class RetributionController extends BaseController {
@Autowired
IRetributionService iRetributionService;
/**
* 新增惩罚表
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增惩罚表", notes = "新增惩罚表")
public boolean saveRetribution(HttpServletRequest request, @RequestBody Retribution retribution) {
return iRetributionService.save(retribution);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iRetributionService.removeById(id);
}
/**
* 修改惩罚表
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改惩罚表", notes = "修改惩罚表")
public boolean updateByIdRetribution(HttpServletRequest request, @RequestBody Retribution retribution) {
return iRetributionService.updateById(retribution);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public Retribution selectById(HttpServletRequest request, @PathVariable Long id) {
return iRetributionService.getById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<RetributionVo> listPage(CommonPageableDto pageable, RetributionVo retributionVo) {
Person person = getPerson();
if (person != null) {
retributionVo.setPersonId(person.getId());
}
if (StringUtil.isNotEmpty(retributionVo.getTaskName())) {
retributionVo.setTaskName("%" + retributionVo.getTaskName() + "%");
}
if (StringUtil.isNotEmpty(retributionVo.getTaskNo())) {
retributionVo.setTaskNo("%" + retributionVo.getTaskNo() + "%");
}
return iRetributionService.pageInfo(pageable, retributionVo);
}
/**
* 查处违章总数查询
*
* @return
*/
@RequestMapping(value = "/total", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "查处违章总数查询", notes = "查处违章总数查询")
public Object listTotal() {
Response response = new Response();
Map ret = new HashMap();
Person person = getPerson();
if (person != null) {
Map map = new HashMap();
map.put("person_id", person.getId());
List<Retribution> list = (List<Retribution>) iRetributionService.listByMap(map);
BigDecimal sumMoney = BigDecimal.ZERO;
if (list != null && list.size() > 0) {
sumMoney = list.stream().map(Retribution::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
}
ret.put("total", list.size());
ret.put("sumMoney", sumMoney.toPlainString());
} else {
ret.put("sumMoney", Integer.MIN_VALUE);
ret.put("total", Integer.MIN_VALUE);
}
response.setData(ret);
return response;
}
/**
* 所有分包商违章统计排名 以人员违章表为主,该表有该分包商下的人员则该分包商出现
*/
@GetMapping("/list/company")
@ApiOperation(httpMethod = "GET", value = "所有分包商违章统计排名 以人员违章表为主,该表有该分包商下的人员则该分包商出现", notes = "所有分包商违章统计排名 以人员违章表为主,该表有该分包商下的人员则该分包商出现")
public IPage<RewardOrgCodeVo> listPageByOrgCode(StudioPageableDto pageable,
@RequestParam(value = "companyName", required = false) String companyName) {
return iRetributionService.listPageComcany(pageable, companyName, null);
}
/**
* 根据人员id查询该人员的违章列表
*/
@GetMapping("/list/user/detail")
@ApiOperation(httpMethod = "GET", value = "根据人员id查询该人员的奖励详情列表", notes = "根据人员id查询该人员的奖励详情列表")
public IPage<RewardListVo> rewardUserListDetail(StudioPageableDto pageable, RewardListVo rewardVo) {
return iRetributionService.rewardUserListDetail(pageable, rewardVo);
}
/**
* 根据分包商companyId 查询该分包商下的所有 人员违章列表
*
* @return
*/
@RequestMapping(value = "/person/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "某个用户惩罚 列表分页查询", notes = "某个用户惩罚 列表分页查询")
public IPage<RetributionVo> listPageByPersonId(CommonPageableDto pageable, RetributionVo retributionVo) {
if (StringUtils.isEmpty(retributionVo.getCompanyId())) {
return new Page<>(pageable.getPageNumber(), pageable.getPageSize());
}
if (StringUtil.isNotEmpty(retributionVo.getProjectName())) {
retributionVo.setProjectName("%" + retributionVo.getProjectName() + "%");
}
return iRetributionService.pageCompanyInfo(pageable, retributionVo);
}
/**
* 分包商违章排名列表
*/
@GetMapping("/list/company/bad")
@ApiOperation(httpMethod = "GET", value = "所有分包商违章统计排名 以人员违章表为主,该表有该分包商下的人员则该分包商出现", notes = "所有分包商违章统计排名 以人员违章表为主,该表有该分包商下的人员则该分包商出现")
public IPage<RewardOrgCodeVo> listBadPageByOrgCode(StudioPageableDto pageable,
RewardOrgCodeVo rewardOrgCodeVo) {
return iRetributionService.listBadPageCompany(pageable, rewardOrgCodeVo, null);
}
}
package com.yeejoin.precontrol.controller;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import com.yeejoin.precontrol.common.entity.publics.CommonResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.precontrol.common.service.IRewardConfigService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.precontrol.common.entity.RewardConfig;
import com.yeejoin.precontrol.common.utils.NameUtils;
import java.lang.reflect.Field;
import java.util.Arrays;
/**
* 奖励惩罚配置表
*
* @author duanwei
* @date 2021-04-06
*/
@RestController
@Api(tags = "奖励惩罚配置表Api")
@RequestMapping(value = "/reward-config", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class RewardConfigController {
@Autowired
IRewardConfigService iRewardConfigService;
/**
* 新增奖励惩罚配置表
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增奖励惩罚配置表", notes = "新增奖励惩罚配置表")
public boolean saveRewardConfig(HttpServletRequest request, @RequestBody RewardConfig rewardConfig){
return iRewardConfigService.save(rewardConfig);
}
/**
* 根据id删除
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id){
return iRewardConfigService.removeById(id);
}
/**
* 修改奖励惩罚配置表
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改奖励惩罚配置表", notes = "修改奖励惩罚配置表")
public boolean updateByIdRewardConfig(HttpServletRequest request, @RequestBody RewardConfig rewardConfig){
return iRewardConfigService.updateById(rewardConfig);
}
/**
* 根据id查询
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public RewardConfig selectById(HttpServletRequest request, @PathVariable Long id){
return iRewardConfigService.getById(id);
}
/**
* 列表分页查询
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<RewardConfig> listPage(String pageNum,String pageSize,
RewardConfig rewardConfig){
Page<RewardConfig> pageBean;
QueryWrapper<RewardConfig> rewardConfigQueryWrapper = new QueryWrapper<>();
Class<? extends RewardConfig> aClass = rewardConfig.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(rewardConfig);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(rewardConfig);
rewardConfigQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(rewardConfig);
rewardConfigQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(rewardConfig);
rewardConfigQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(rewardConfig);
rewardConfigQueryWrapper.eq(name, fileValue);
}
}
}catch (Exception e) {
}
});
IPage<RewardConfig> page;
if (StringUtils.isBlank(pageNum) ||StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
}else{
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iRewardConfigService.page(pageBean, rewardConfigQueryWrapper);
return page;
}
}
package com.yeejoin.precontrol.controller;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.dto.StudioPageableDto;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.Reward;
import com.yeejoin.precontrol.common.service.IRewardService;
import com.yeejoin.precontrol.common.utils.FileHelper;
import com.yeejoin.precontrol.common.utils.Response;
import com.yeejoin.precontrol.common.utils.StringUtil;
import com.yeejoin.precontrol.common.vo.RewardAndRetributionListVo;
import com.yeejoin.precontrol.common.vo.RewardListVo;
import com.yeejoin.precontrol.common.vo.RewardOrgCodeVo;
import com.yeejoin.precontrol.common.vo.RewardVo;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
/**
* 奖励表
*
* @author duanwei
* @date 2021-04-06
*/
@RestController
@Api(tags = "奖励表Api")
@RequestMapping(value = "/reward", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class RewardController extends BaseController {
@Autowired
IRewardService iRewardService;
/**
* 新增奖励表
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增奖励表", notes = "新增奖励表")
public boolean saveReward(HttpServletRequest request, @RequestBody Reward reward) {
return iRewardService.save(reward);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iRewardService.removeById(id);
}
/**
* 修改奖励表
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改奖励表", notes = "修改奖励表")
public boolean updateByIdReward(HttpServletRequest request, @RequestBody Reward reward) {
return iRewardService.updateById(reward);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public Reward selectById(HttpServletRequest request, @PathVariable Long id) {
return iRewardService.getById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<RewardVo> listPage(CommonPageableDto pageable, RewardVo rewardVo) {
Person person = getPerson();
if (person != null) {
rewardVo.setPersonId(person.getId());
}
if (StringUtil.isNotEmpty(rewardVo.getTaskName())) {
rewardVo.setTaskName("%" + rewardVo.getTaskName() + "%");
}
if (StringUtil.isNotEmpty(rewardVo.getTaskNo())) {
rewardVo.setTaskNo("%" + rewardVo.getTaskNo() + "%");
}
return iRewardService.pageInfo(pageable, rewardVo);
}
/**
* 人员详情页面 查询该用户的检查违章数据
* @param pageable
* @param rewardVo
* @return
*/
@RequestMapping(value = "/list/page", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public Object pageByPersonId(CommonPageableDto pageable, RewardVo rewardVo) {
Map map = new HashMap();
BigDecimal totalSum = BigDecimal.ZERO;
BigDecimal sendSum = BigDecimal.ZERO;
if(StringUtils.isEmpty(rewardVo.getPersonId())){
map.put("code","-1");
map.put("message","没有数据");
map.put("pageData", new Page<>(pageable.getPageNumber(), pageable.getPageSize()));
map.put("totalSum", totalSum);
map.put("sendSum", sendSum);
return map;
}
IPage<RewardVo> rewardVoPage = iRewardService.pageInfo(pageable, rewardVo);
Map ret = iRewardService.sumMoneyTotalByPersonId(rewardVo.getPersonId());
map.put("totalSum", ret.get("totalSum"));
map.put("sendSum", ret.get("sendSum"));
map.put("code","0");
map.put("message","查询成功");
map.put("pageData", rewardVoPage);
return map;
}
/**
* 查处违章总数查询
*
* @return
*/
@RequestMapping(value = "/total", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "查处违章总数查询", notes = "查处违章总数查询")
public Object listTotal() {
Response response = new Response();
Map ret = new HashMap();
Person person = getPerson();
if (person != null) {
RewardVo rewardVo = new RewardVo();
rewardVo.setPersonId(person.getId());
List<RewardVo> list = iRewardService.rewardAllList(rewardVo);
ret.put("total", list.size());
BigDecimal sumMoney = BigDecimal.ZERO;
if (null != list && list.size() > 0) {
sumMoney = list.stream().map(RewardVo::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
}
ret.put("sumMoney", sumMoney.toPlainString());
} else {
ret.put("sumMoney", Integer.MIN_VALUE);
ret.put("total", Integer.MIN_VALUE);
}
response.setData(ret);
return response;
}
/**
* 根据人员id查询该人员的奖励违章列表
*
* @throws UnsupportedEncodingException
*/
@GetMapping("/list/by/personId")
@ApiOperation(httpMethod = "GET", value = "根据人员id查询该人员的奖励违章列表", notes = "列表分页查询")
public IPage<RewardVo> listPageByUid(CommonPageableDto pageable, RewardVo rewardVo, HttpServletResponse response)
throws UnsupportedEncodingException {
String fileName = java.net.URLEncoder.encode("奖励信息表", "UTF-8") + ".xls";
IPage<RewardVo> page = iRewardService.listPageByUid(pageable, rewardVo);
if (rewardVo != null && rewardVo.getOperType() == 1) {
List<RewardVo> excelList = page.getRecords();
if (StringUtils.isEmpty(rewardVo.getBeforeCreateDate())
&& StringUtils.isEmpty(rewardVo.getEndCreateDate())) {
excelList = new ArrayList<RewardVo>();
}
FileHelper.exportExcel(excelList, "奖励信息", "奖励信息", RewardVo.class, fileName, response);
return null;
} else {
return page;
}
}
/**
* 根据人员id查询该人员的奖励违章数量统计
*/
@PostMapping(value = "/exchange/by/personId")
@ApiOperation(httpMethod = "GET", value = "根据人员id查询该人员的奖励违章数量统计", notes = "根据人员id查询该人员的奖励违章数量统计")
public RewardVo getRewardExchangeCount(@RequestBody RewardVo rewardVo) {
return iRewardService.getRewardExchangeCount(rewardVo);
}
/**
* 根据orgcode查询该orgcode下的人员奖励违章列表
*/
@GetMapping("/list/user")
@ApiOperation(httpMethod = "GET", value = "根据orgcode查询该orgcode下的人员奖励列表", notes = "根据orgcode查询该orgcode下的人员奖励列表")
public IPage<RewardOrgCodeVo> listPageByOrgCode(StudioPageableDto pageable, RewardOrgCodeVo rewardVo) {
Person person = getPerson();
String orgCode = person != null ? person.getOrgCode() : null;
return iRewardService.listPageByOrgCode(pageable, rewardVo, orgCode);
}
/**
* 根据人员id查询该人员的奖励列表
*/
@GetMapping("/list/user/detail")
@ApiOperation(httpMethod = "GET", value = "根据人员id查询该人员的奖励详情列表", notes = "根据人员id查询该人员的奖励详情列表")
public IPage<RewardListVo> rewardUserListDetail(StudioPageableDto pageable, RewardListVo rewardVo) {
return iRewardService.rewardUserListDetail(pageable, rewardVo);
}
/**
* 奖励惩罚 列表
*
* @param pageable
* @param rewardVo
* @return
*/
@GetMapping("/retribution/list")
@ApiOperation(httpMethod = "GET", value = "奖励惩罚 列表", notes = "奖励惩罚 列表")
public IPage<RewardAndRetributionListVo> rewardAndRetributionList(StudioPageableDto pageable,
RewardAndRetributionListVo rewardVo) {
return iRewardService.rewardAndRetributionList(pageable, rewardVo);
}
/**
* 奖励惩罚金额统计
*
* @param type retributionAllTotal-所有惩罚总金额 retributionDayTotal-今日惩罚总金额
* rewardAllTotal-所有奖励总金额 rewardDayTotal-今日奖励总金额
* @return
*/
@GetMapping("/report/total/money")
@ApiOperation(httpMethod = "GET", value = "奖励惩罚金额统计", notes = "奖励惩罚金额统计")
@ApiImplicitParam(name = "type", example = "retributionAllTotal-所有惩罚总金额 retributionDayTotal-今日惩罚总金额 rewardAllTotal-所有奖励总金额 rewardDayTotal-今日奖励总金额")
public Object reportTotalMoney(@RequestParam("type") String type) {
if (StringUtils.isEmpty(type)) {
return "参数为空";
}
return iRewardService.reportTotalMoney(type);
}
/**
* 某个用户奖励 列表分页查询
*
* @return
*/
@RequestMapping(value = "/person/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "某个用户奖励 列表分页查询", notes = "某个用户奖励 列表分页查询")
public IPage<RewardVo> listPageByPersonId(CommonPageableDto pageable, RewardVo rewardVo) {
if (StringUtils.isEmpty(rewardVo.getPersonId())) {
return new Page<>(pageable.getPageNumber(), pageable.getPageSize());
}
return iRewardService.pageUserInfo(pageable, rewardVo);
}
/**
* 查处违章排名列表
*
* @return
*/
@RequestMapping(value = "/list/user/bad", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = " 查处违章排名列表", notes = " 查处违章排名列表")
public IPage<RewardOrgCodeVo> listBadPageByPersonId(StudioPageableDto pageable, RewardOrgCodeVo rewardVo) {
Person person = getPerson();
String orgCode = person != null ? person.getOrgCode() : null;
return iRewardService.listBadPageByOrgCode(pageable, rewardVo, null);
}
}
package com.yeejoin.precontrol.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.precontrol.common.dto.StudioPageableDto;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.RewardExchange;
import com.yeejoin.precontrol.common.fileparser.utils.DateUtil;
import com.yeejoin.precontrol.common.service.IRewardExchangeService;
import com.yeejoin.precontrol.common.service.IRewardService;
import com.yeejoin.precontrol.common.utils.DateUtils;
import com.yeejoin.precontrol.common.utils.LocalDateTimeUtils;
import com.yeejoin.precontrol.common.utils.Response;
import com.yeejoin.precontrol.common.utils.StringUtil;
import com.yeejoin.precontrol.common.vo.RewardExchangeVo;
import com.yeejoin.precontrol.common.vo.RewardExchangeWechatVo;
import com.yeejoin.precontrol.common.vo.RewardListVo;
import com.yeejoin.precontrol.common.vo.RewardVo;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.*;
import java.util.stream.Collectors;
/**
* 奖励兑换api
*
* @author wbin
* @date 2021-04-06
*/
@RestController
@Api(tags = "奖励兑换api")
@RequestMapping(value = "/reward/exchange", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class RewardExchangeController extends BaseController {
@Autowired
IRewardExchangeService iRewardExchangeService;
@Autowired
IRewardService rewardService;
/**
* 奖励兑换
*/
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "奖励兑换", notes = "奖励兑换")
public boolean saveExchange(@RequestBody RewardExchangeVo rewardExchangeVo) {
AgencyUserModel userInfo = getUserInfo();
if (userInfo != null) {
rewardExchangeVo.setCreateUserId(Long.valueOf(getUserId()));
}
return iRewardExchangeService.saveExchange(rewardExchangeVo);
}
/**
* 奖励兑换统计图
*/
@GetMapping(value = "/report")
@ApiOperation(httpMethod = "GET", value = "奖励兑换统计图", notes = "奖励兑换统计图")
public Object report(Integer count) throws Exception {
if (count == null) {
count = 30;
}
Map<String, Object> map = new HashMap<String, Object>();
// 统计的日期 数据
List<String> dateList = DateUtils.getAfterDateByNowDate(count);
Person person = getPerson();
String startDate = dateList.get(0);
String endDate = dateList.get(dateList.size() - 1);
List<RewardExchange> list = iRewardExchangeService.reportByUserIdAndBetweenDate(startDate, endDate, person.getId());
List<String> moneyList = new ArrayList();
for (String date : dateList) {
moneyList.add(processList(list, date));
}
// 日期
map.put("dateList", dateList);
// 金额
map.put("moneyList", moneyList);
//累计奖励总金额
String total = rewardService.selectTotalMoney(person.getId());
//已兑换总金额
String money = iRewardExchangeService.selectTotalMoney(person.getId());
processMoney(total, money, map);
return new Response(map);
}
/**
* 累计奖励总金额,已兑换总金额
*
* @param count
* @return
* @throws Exception
*/
@GetMapping(value = "/report/money")
@ApiOperation(httpMethod = "GET", value = "累计奖励总金额,已兑换总金额 ", notes = "累计奖励总金额,已兑换总金额")
public Object moneyTotal(Integer count) throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
Person person = getPerson();
//累计奖励总金额
String total = rewardService.selectTotalMoney(person.getId());
//已兑换总金额
String money = iRewardExchangeService.selectTotalMoney(person.getId());
processMoney(total, money, map);
return new Response(map);
}
/**
* 处理金额
* @param total
* @param money
* @param map
*/
public static void processMoney(String total,String money, Map<String, Object> map){
if (StringUtil.isNotEmpty(total)) {
map.put("moneyTotal", new BigDecimal(total).setScale( 0, BigDecimal.ROUND_DOWN ).toPlainString());
} else {
map.put("moneyTotal", "0");
}
if(StringUtil.isNotEmpty(money)){
map.put("rewardTotal", new BigDecimal(money).setScale( 0, BigDecimal.ROUND_DOWN ).toPlainString());
}else{
map.put("rewardTotal", "0");
}
}
/**
* 计算每个日期兑换的金额总和
*
* @param dataList
* @param date
* @return
*/
public String processList(List<RewardExchange> dataList, String date) {
BigDecimal total = new BigDecimal("0");
if (dataList != null && dataList.size() > 0) {
List<BigDecimal> collect = dataList.stream().filter(item -> LocalDateTimeUtils.format(item.getCreateDate()).substring(0, 10).replace("-", "").equals(date.replace("-", "")))
.map(RewardExchange::getMoney).collect(Collectors.toList());
if (collect != null && collect.size() > 0) {
for (BigDecimal bigDecimal : collect) {
total = total.add(bigDecimal);
}
}
}
return total.toPlainString();
}
/**
* 选择日期的奖励兑换详情
*/
@GetMapping(value = "/report/detail")
@ApiOperation(httpMethod = "POST", value = "选择日期的奖励兑换详情", notes = "选择日期的奖励兑换详情")
public Object rewardDate(String date) {
Person person = getPerson();
List<RewardExchangeWechatVo> list = iRewardExchangeService.selectByDate(date, person.getId());
List<Object> retList = new ArrayList<Object>();
if (list != null && list.size() > 0) {
Map<String, List<RewardExchangeWechatVo>> collect = list.stream().collect(Collectors.groupingBy(RewardExchangeWechatVo::getBatchNo));
for (List<RewardExchangeWechatVo> arr : collect.values()) {
Map<String, Object> objectMap = new HashMap<String, Object>();
BigDecimal total = new BigDecimal("0");
if (arr != null && arr.size() > 0) {
for (RewardExchangeWechatVo bigDecimal : arr) {
total = total.add(bigDecimal.getMoney());
}
}
objectMap.put("count", arr.size());
objectMap.put("sumMoeny", total);
objectMap.put("list", arr);
retList.add(objectMap);
}
}
return new Response(retList);
}
@GetMapping(value = "/record")
@ApiOperation(httpMethod = "GET", value = "发放记录", notes = "发放记录")
public IPage<RewardExchangeWechatVo> exchangeRecord (StudioPageableDto pageable, Long personId)
{
IPage<RewardExchangeWechatVo> list = iRewardExchangeService.exchangeRecord(pageable, personId);
return list;
}
}
package com.yeejoin.precontrol.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject;
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.google.common.base.Joiner;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.precontrol.common.annotations.OpsLog;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.RiskWork;
import com.yeejoin.precontrol.common.enums.OpsLogEnum;
import com.yeejoin.precontrol.common.param.RiskWorkParam;
import com.yeejoin.precontrol.common.service.IRiskWorkService;
import com.yeejoin.precontrol.common.utils.StringUtil;
import com.yeejoin.precontrol.common.vo.RiskWorkPersonVo;
import com.yeejoin.precontrol.common.vo.RiskWorkVo;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
/**
* 风险作业管理表
*
* @author duanwei
* @date 2021-01-28
*/
@Slf4j
@RestController
@Api(tags = "风险作业管理表Api")
@RequestMapping(value = "/risk-work", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class RiskWorkController extends BaseController {
@Autowired
IRiskWorkService iRiskWorkService;
/**
* 新增风险作业管理表
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增风险作业管理表", notes = "新增风险作业管理表")
@OpsLog(value=OpsLogEnum.EDIT_RISKWORK)
public RiskWorkParam saveRiskWork(@RequestBody @Valid RiskWorkParam riskWorkParam) {
if(log.isInfoEnabled()){
log.info("新增风险作业管理表:{}", JSONObject.toJSONString(riskWorkParam));
}
Person person = getPerson();
riskWorkParam.getRiskWork().setOrgCode(person!=null?person.getOrgCode():null);
return iRiskWorkService.saveWithChild(riskWorkParam, getUserId());
}
/**
* 根据id删除
*
* @param ids
* @return
*/
@RequestMapping(value = "/{ids}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除,批量刪除", notes = "根据id删除,批量刪除")
@OpsLog(value=OpsLogEnum.DELETE_RISKWORK)
public boolean deleteById(@PathVariable String ids) {
if(log.isInfoEnabled()){
log.info("根据id删除,批量刪除:{}", JSONObject.toJSONString(ids));
}
List<Long> idList = Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList());
return iRiskWorkService.removeWithChild(idList);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public RiskWorkParam selectById(@PathVariable Long id) {
return iRiskWorkService.getWithChildById(id);
}
/**
* 列表分页查询
*
* @return QUALIFICATION_REQUIREMENT
*/
@RequestMapping(value = "/page/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<RiskWork> listPage(@RequestParam Integer pageNumber,
@RequestParam Integer pageSize,
@RequestParam(required = false) @ApiParam("风险作业名称") String name,
@RequestParam(required = false) @ApiParam("风险等级id") Integer level) {
buildRequestContext();
Person person = getPerson();
Page<RiskWork> pageBean = new Page<>(pageNumber, pageSize);
QueryWrapper<RiskWork> riskWorkQueryWrapper = new QueryWrapper<>();
if (StringUtil.isNotEmpty(name)) {
riskWorkQueryWrapper.lambda().like(RiskWork::getName, name);
}
if (StringUtil.isNotEmpty(level)) {
riskWorkQueryWrapper.lambda().eq(RiskWork::getLevel, level);
}
String orgCode=person!=null?person.getOrgCode():null;
if(orgCode!=null)
{
riskWorkQueryWrapper.lambda().like(RiskWork::getOrgCode, orgCode);
}
riskWorkQueryWrapper.orderByDesc("create_date");
IPage<RiskWork> page = iRiskWorkService.page(pageBean, riskWorkQueryWrapper);
Set<String> userIds = page.getRecords().stream().map(RiskWork::getCreateId).collect(Collectors.toSet());
userIds.remove(null);
userIds.remove("");
FeignClientResult<List<AgencyUserModel>> result = CollectionUtils.isEmpty(userIds) ? null : Privilege.agencyUserClient.queryByIds(Joiner.on(",").join(userIds),true);
if (result != null) {
List<AgencyUserModel> userModels = result.getResult();
Map<String, String> userMap = userModels.stream().collect(Collectors.toMap(AgencyUserModel::getUserId, AgencyUserModel::getRealName));
page.getRecords().forEach(r -> {
r.setCreateName(userMap.get(r.getCreateId()));
});
}
return page;
}
@ApiOperation(httpMethod = "GET", value = "风险作业列表查询,不分页", notes = "风险作业列表查询,不分页")
@RequestMapping(value = "/list-all", method = RequestMethod.GET)
public List<RiskWork> listAll(@RequestParam(required = false) String name){
Person person = getPerson();
String orgCode=person!=null?person.getOrgCode():null;
return iRiskWorkService.listAllWithDangerWork(name,orgCode);
}
@ApiOperation(httpMethod = "GET", value = "查询符合条件的人")
@GetMapping(value = "/person/list")
public List<RiskWorkPersonVo> matchConditionPerson(
@ApiParam(required = true,value = "风险作业id") @RequestParam Long riskWorkId,
@ApiParam(required = true,value = "人员类型") @RequestParam String personType,
@ApiParam(required = true,value = "公司id") @RequestParam Long companyId,
@ApiParam(value = "人姓名") @RequestParam(required = false) String name,
@ApiParam(required = true,value = "项目id") @RequestParam Long projectId){
buildRequestContext();
return iRiskWorkService.listPersonOfMatchCondition(riskWorkId,personType,companyId,projectId,name);
}
@ApiOperation(httpMethod = "GET", value = "查询关联风险计划的风险作业信息")
@GetMapping(value = "/detail/{taskRiskControlId}")
public RiskWorkVo getRiskWorkInfo(@PathVariable Long taskRiskControlId) {
return iRiskWorkService.getDetailByPlanId(taskRiskControlId);
}
}
package com.yeejoin.precontrol.controller;
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.yeejoin.precontrol.common.entity.RiskWorkHazadousWork;
import com.yeejoin.precontrol.common.service.IRiskWorkHazadousWorkService;
import com.yeejoin.precontrol.common.utils.NameUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
/**
* 风险作业关联危险作业表
*
* @author duanwei
* @date 2021-01-28
*/
@RestController
@Api(tags = "风险作业关联危险作业表Api")
@RequestMapping(value = "/risk-work-hazadous-work", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class RiskWorkHazadousWorkController {
@Autowired
IRiskWorkHazadousWorkService iRiskWorkHazadousWorkService;
/**
* 新增风险作业关联危险作业表
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增风险作业关联危险作业表", notes = "新增风险作业关联危险作业表")
public boolean saveRiskWorkHazadousWork(HttpServletRequest request, @RequestBody RiskWorkHazadousWork riskWorkHazadousWork) {
return iRiskWorkHazadousWorkService.save(riskWorkHazadousWork);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iRiskWorkHazadousWorkService.removeById(id);
}
/**
* 修改风险作业关联危险作业表
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改风险作业关联危险作业表", notes = "修改风险作业关联危险作业表")
public boolean updateByIdRiskWorkHazadousWork(HttpServletRequest request, @RequestBody RiskWorkHazadousWork riskWorkHazadousWork) {
return iRiskWorkHazadousWorkService.updateById(riskWorkHazadousWork);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public RiskWorkHazadousWork selectById(HttpServletRequest request, @PathVariable Long id) {
return iRiskWorkHazadousWorkService.getById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<RiskWorkHazadousWork> listPage(String pageNum, String pageSize,
RiskWorkHazadousWork riskWorkHazadousWork) {
Page<RiskWorkHazadousWork> pageBean;
QueryWrapper<RiskWorkHazadousWork> riskWorkHazadousWorkQueryWrapper = new QueryWrapper<>();
Class<? extends RiskWorkHazadousWork> aClass = riskWorkHazadousWork.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(riskWorkHazadousWork);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(riskWorkHazadousWork);
riskWorkHazadousWorkQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(riskWorkHazadousWork);
riskWorkHazadousWorkQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(riskWorkHazadousWork);
riskWorkHazadousWorkQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(riskWorkHazadousWork);
riskWorkHazadousWorkQueryWrapper.eq(name, fileValue);
}
}
} catch (Exception e) {
}
});
IPage<RiskWorkHazadousWork> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iRiskWorkHazadousWorkService.page(pageBean, riskWorkHazadousWorkQueryWrapper);
return page;
}
}
package com.yeejoin.precontrol.controller;
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.yeejoin.precontrol.common.entity.RiskWorkMeasure;
import com.yeejoin.precontrol.common.service.IRiskWorkMeasureService;
import com.yeejoin.precontrol.common.utils.NameUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
/**
* 管控措施
*
* @author duanwei
* @date 2021-01-28
*/
@RestController
@Api(tags = "管控措施Api")
@RequestMapping(value = "/risk-work-measure", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class RiskWorkMeasureController {
@Autowired
IRiskWorkMeasureService iRiskWorkMeasureService;
/**
* 新增管控措施
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增管控措施", notes = "新增管控措施")
public boolean saveRiskWorkMeasure(HttpServletRequest request, @RequestBody RiskWorkMeasure riskWorkMeasure) {
return iRiskWorkMeasureService.save(riskWorkMeasure);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iRiskWorkMeasureService.removeById(id);
}
/**
* 修改管控措施
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改管控措施", notes = "修改管控措施")
public boolean updateByIdRiskWorkMeasure(HttpServletRequest request, @RequestBody RiskWorkMeasure riskWorkMeasure) {
return iRiskWorkMeasureService.updateById(riskWorkMeasure);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public RiskWorkMeasure selectById(HttpServletRequest request, @PathVariable Long id) {
return iRiskWorkMeasureService.getById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<RiskWorkMeasure> listPage(String pageNum, String pageSize,
RiskWorkMeasure riskWorkMeasure) {
Page<RiskWorkMeasure> pageBean;
QueryWrapper<RiskWorkMeasure> riskWorkMeasureQueryWrapper = new QueryWrapper<>();
Class<? extends RiskWorkMeasure> aClass = riskWorkMeasure.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(riskWorkMeasure);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(riskWorkMeasure);
riskWorkMeasureQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(riskWorkMeasure);
riskWorkMeasureQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(riskWorkMeasure);
riskWorkMeasureQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(riskWorkMeasure);
riskWorkMeasureQueryWrapper.eq(name, fileValue);
}
}
} catch (Exception e) {
}
});
IPage<RiskWorkMeasure> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iRiskWorkMeasureService.page(pageBean, riskWorkMeasureQueryWrapper);
return page;
}
}
package com.yeejoin.precontrol.controller;
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.yeejoin.precontrol.common.entity.RiskWorkPersonRequirement;
import com.yeejoin.precontrol.common.service.IRiskWorkPersonRequirementService;
import com.yeejoin.precontrol.common.utils.NameUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
/**
* 风险作业人员要求表
*
* @author duanwei
* @date 2021-01-28
*/
@RestController
@Api(tags = "风险作业人员要求表Api")
@RequestMapping(value = "/risk-work-person-requirement", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class RiskWorkPersonRequirementController {
@Autowired
IRiskWorkPersonRequirementService iRiskWorkPersonRequirementService;
/**
* 新增风险作业人员要求表
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增风险作业人员要求表", notes = "新增风险作业人员要求表")
public boolean saveRiskWorkPersonRequirement(HttpServletRequest request, @RequestBody RiskWorkPersonRequirement riskWorkPersonRequirement) {
return iRiskWorkPersonRequirementService.save(riskWorkPersonRequirement);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iRiskWorkPersonRequirementService.removeById(id);
}
/**
* 修改风险作业人员要求表
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改风险作业人员要求表", notes = "修改风险作业人员要求表")
public boolean updateByIdRiskWorkPersonRequirement(HttpServletRequest request, @RequestBody RiskWorkPersonRequirement riskWorkPersonRequirement) {
return iRiskWorkPersonRequirementService.updateById(riskWorkPersonRequirement);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public RiskWorkPersonRequirement selectById(HttpServletRequest request, @PathVariable Long id) {
return iRiskWorkPersonRequirementService.getById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<RiskWorkPersonRequirement> listPage(String pageNum, String pageSize,
RiskWorkPersonRequirement riskWorkPersonRequirement) {
Page<RiskWorkPersonRequirement> pageBean;
QueryWrapper<RiskWorkPersonRequirement> riskWorkPersonRequirementQueryWrapper = new QueryWrapper<>();
Class<? extends RiskWorkPersonRequirement> aClass = riskWorkPersonRequirement.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(riskWorkPersonRequirement);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(riskWorkPersonRequirement);
riskWorkPersonRequirementQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(riskWorkPersonRequirement);
riskWorkPersonRequirementQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(riskWorkPersonRequirement);
riskWorkPersonRequirementQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(riskWorkPersonRequirement);
riskWorkPersonRequirementQueryWrapper.eq(name, fileValue);
}
}
} catch (Exception e) {
}
});
IPage<RiskWorkPersonRequirement> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iRiskWorkPersonRequirementService.page(pageBean, riskWorkPersonRequirementQueryWrapper);
return page;
}
}
package com.yeejoin.precontrol.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.util.StringUtil;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.precontrol.common.entity.AppMenuConfig;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.WechatRelation;
import com.yeejoin.precontrol.common.param.MobileLoginParam;
import com.yeejoin.precontrol.common.service.IPersonService;
import com.yeejoin.precontrol.common.service.ISafetyService;
import com.yeejoin.precontrol.common.service.IWechatRelationService;
import com.yeejoin.precontrol.common.utils.CommonResponseUtil;
import com.yeejoin.precontrol.common.utils.HttpUtils;
import com.yeejoin.precontrol.common.utils.RedisUtil;
import com.yeejoin.precontrol.common.utils.XmlUtil;
import com.yeejoin.precontrol.common.utils.aes.WXBizMsgCrypt;
import com.yeejoin.precontrol.common.vo.PersonVo;
import com.yeejoin.precontrol.common.vo.ResponeVo;
import com.yeejoin.precontrol.common.vo.UserRegistrationVo;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import javax.servlet.http.HttpServletRequest;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@RestController
@RequestMapping(value = "/safe")
@Api(tags = "安全api")
public class SafetyController extends BaseController {
private final Logger log = LoggerFactory.getLogger(SafetyController.class);
/**
* 人员服务
*/
@Autowired
private IPersonService personService;
@Autowired
private ISafetyService iSafetyService;
@Value("${amos.agency.code}")
String agencyCode;
@Value("${smallProgram.public.encodingAesKey}")
String encodingAesKey;
/**
* 公众号appid
*/
@Value("${smallProgram.public.appid}")
private String publicAppId;
/**
* 公众号secret
*/
@Value("${smallProgram.public.secret}")
private String publicSecret;
@Autowired
RedisUtil redisUtil;
@Autowired
private IWechatRelationService wechatRelationService;
/**
* 用户选择公司信息
*/
@ApiOperation(value = "登陆用户信息", notes = "登陆用户信息")
@GetMapping(value = "/curPerson")
public Object curPerson() {
AgencyUserModel userInfo = this.getUserInfo();
Long userNumber = userInfo.getSequenceNbr();
PersonVo personVo = personService.getPersonVoByAccountNumber(String.valueOf(userNumber));
if (personVo == null) {
return CommonResponseUtil.failure("账号未绑定!!");
}
return personVo;
}
// /**
// * 移动端登录 - 之前代码,年底驻场修改
// */
// @ApiOperation(value = "移动端登录", notes = "移动端登录")
// @PostMapping(value = "/mobile/login")
// public Object mobileLogin(@ApiParam(value = "账号", required = true) @RequestBody MobileLoginUserParam param) {
//
// try {
// JSONObject jsonObject = null;
// IdPasswordAuthModel dPasswordAuthModel = new IdPasswordAuthModel();
// dPasswordAuthModel.setLoginId(param.getUserName());
// dPasswordAuthModel.setPassword(param.getPassword());
// HttpHeaders headers = new HttpHeaders();
// headers.setContentType(MediaType.APPLICATION_JSON);
// headers.set("Content-Type", "application/json");
// headers.set("product", product);
// HttpEntity httpEntity = new HttpEntity<>(dPasswordAuthModel, headers);
// FeignClientResult feignClientResult = restTemplate.postForObject(
// "http://" + securityName + "/privilege/v1/auth/idpassword", httpEntity, FeignClientResult.class);
// if (feignClientResult.getStatus() == 200) {
// Map map = (Map) feignClientResult.getResult();
// map.put("appKey", appKey);
// map.put("product", product);
// String jsonStr = JSON.toJSONString(map);
// jsonObject = JSONObject.parseObject(jsonStr);
// } else {
// return CommonResponseUtil.failure(feignClientResult.getMessage());
// }
// if (jsonObject != null) {
// JSONObject result = new JSONObject();
// result.put("token", jsonObject.getString("token"));
// result.put("personId", jsonObject.getString("userId"));
// result.put("appKey", jsonObject.getString("appKey"));
// result.put("product", jsonObject.getString("product"));
// return result;
// }
// return CommonResponseUtil.failure("登录失败");
// } catch (Exception e) {
// e.printStackTrace();
// log.error("移动端登录异常", e);
// return CommonResponseUtil.failure("系统繁忙,请稍后再试");
// }
// }
@ApiOperation(value = "移动端登录", notes = "移动端登录")
@PostMapping(value = "/mobile/login")
public Object loginFromApp(@RequestBody MobileLoginParam param) {
buildRequestContext();
return iSafetyService.loginFromApp(param);
}
@ApiOperation(value = "移动端注册提交")
@PostMapping(value = "/mobile/register")
public Object registerFromApp(@RequestBody UserRegistrationVo vo) {
setPlatFormAccess();
return iSafetyService.registerFromApp(vo);
}
@ApiOperation(value = "移动端注册历史")
@PostMapping(value = "/mobile/register/history")
public Object registerHistory(@RequestBody String phoneNo) {
setPlatFormAccess();
return iSafetyService.getRegisterHistory(phoneNo);
}
/**
* 获取平台所有用户
*
* @return
*/
@RequestMapping(value = "/amosUser", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取平台所有用户", notes = "获取平台所有用户")
public Object nationSelect() {
AgencyUserModel userInfo = this.getUserInfo();
List<CompanyModel> companys = userInfo.getCompanys();
if (companys != null && !companys.isEmpty()) {
//获取平台机构
CompanyModel companyModel = companys.get(0);
if (this.getToken() != null) {
RequestContext.setToken(getToken());
RequestContext.setProduct(getProduct());
RequestContext.setAppKey(getAppKey());
try {
FeignClientResult<List<AgencyUserModel>> amosUserList =
Privilege.agencyUserClient.queryByCompanyId(companyModel.getSequenceNbr(), null, null, false);
return amosUserList.getResult();
} catch (Exception e) {
e.printStackTrace();
return CommonResponseUtil.failure(e.getMessage());
}
}
}
return CommonResponseUtil.failure();
}
/**
* 获取未绑定用户
*/
@RequestMapping(value = "/unboundUser", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = " 获取未绑定用户", notes = " 获取未绑定用户")
public Object unboundUser() {
AgencyUserModel userInfo = this.getUserInfo();
List<CompanyModel> companys = userInfo.getCompanys();
if (companys != null && !companys.isEmpty()) {
//获取平台机构
CompanyModel companyModel = companys.get(0);
if (this.getToken() != null) {
RequestContext.setToken(getToken());
RequestContext.setProduct(getProduct());
RequestContext.setAppKey(getAppKey());
try {
FeignClientResult<List<AgencyUserModel>> res =
Privilege.agencyUserClient.queryByCompanyId(companyModel.getSequenceNbr(), null, null, false);
if (200 == res.getStatus()) {
List<AgencyUserModel> result = res.getResult();
List<String> bindUserSeqs = personService.selectBindUserSeqs();
List<AgencyUserModel> unboundUser = result.stream().filter(u -> !bindUserSeqs.contains(String.valueOf(u.getSequenceNbr()))).collect(Collectors.toList());
return unboundUser;
} else {
return CommonResponseUtil.failure(res.getDevMessage());
}
} catch (Exception e) {
e.printStackTrace();
return CommonResponseUtil.failure(e.getMessage());
}
}
}
return CommonResponseUtil.failure();
}
/*@ApiOperation("获取验证码")
@GetMapping("/getAuthCode")
public void getAuthCode(@RequestParam String phoneNo){
iSafetyService.getAuthCode(phoneNo);
}*/
@ApiOperation("获取验证码")
@GetMapping("/getAuthCode")
public void getAuthCode(@RequestParam String phoneNo) {
iSafetyService.getAuthCode(phoneNo);
}
@ApiOperation(value = "小程序菜单查询", notes = "已经配置的菜单")
@GetMapping("/permission/list")
public List getAppMenuList() {
String userId = getUserId();
return iSafetyService.permissionMenuList(userId);
}
@ApiOperation(value = "小程序全部菜单查询", notes = "可选择的菜单")
@GetMapping("/all/permission")
public List getAllMenu() {
String userId = getUserId();
return iSafetyService.allPermissionMenuList(userId);
}
@ApiOperation(value = "小程序菜单配置保存", notes = "小程序菜单配置保存")
@PostMapping("/permission")
public Boolean savePermission(@RequestBody List<AppMenuConfig> list) {
String userId = getUserId();
return iSafetyService.savePermission(userId, list);
}
/**
* 微信验证token
*
* @param signature
* @param timestamp
* @param nonce
* @param echostr
* @return
*/
@ApiOperation(value = "微信验证token", notes = "微信验证token")
@GetMapping(value = "/checkToken")
public String checkToken(@RequestParam("signature") String signature, @RequestParam("timestamp") String timestamp,
@RequestParam("nonce") String nonce, @RequestParam("echostr") String echostr) {
//排序
String[] arr = {agencyCode, timestamp, nonce};
Arrays.sort(arr);
StringBuilder content = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
content.append(arr[i]);
}
//sha1Hex 加密
MessageDigest md = null;
String temp = null;
try {
md = MessageDigest.getInstance("SHA-1");
byte[] digest = md.digest(content.toString().getBytes());
temp = byteToStr(digest);
log.info("加密后的token:" + temp);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
if ((temp.toLowerCase()).equals(signature)) {
return echostr;
}
return null;
}
private static String byteToStr(byte[] byteArray) {
String strDigest = "";
for (int i = 0; i < byteArray.length; i++) {
strDigest += byteToHexStr(byteArray[i]);
}
return strDigest;
}
private static String byteToHexStr(byte mByte) {
char[] Digit = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
char[] tempArr = new char[2];
tempArr[0] = Digit[(mByte >>> 4) & 0X0F];
tempArr[1] = Digit[mByte & 0X0F];
String s = new String(tempArr);
return s;
}
/**
* 用户关注公众号或在公众号点击请求此接口
*/
@ApiOperation(value = "用户关注公众号或在公众号点击请求此接口", notes = "用户关注公众号或在公众号点击请求此接口")
@PostMapping(value = "/checkToken")
public Object wxPublicSend(HttpServletRequest request) {
try {
// 签名
String msgSignature = request.getParameter("msg_signature");
// 时间戳
String timestamp = request.getParameter("timestamp");
// 随机数
String nonce = request.getParameter("nonce");
// 第一次解析
JSONObject jsonObject = XmlUtil.xmlToMap(request);
if (jsonObject != null) {
String encrypt = jsonObject.getString("Encrypt");
WXBizMsgCrypt pc = new WXBizMsgCrypt(agencyCode, encodingAesKey, publicAppId);
String format = "<xml><ToUserName><![CDATA[toUser]]></ToUserName><Encrypt><![CDATA[%1$s]]></Encrypt></xml>";
String fromXML = String.format(format, encrypt);
String result2 = pc.decryptMsg(msgSignature, timestamp, nonce, fromXML);
System.out.println("解密后明文: " + result2);
// 第二次解析
/**
* ToUserName : gh_adf6cc0ea7c6
* FromUserName : omzjg09wxUbgL-aNFaixj4YYr45M
* CreateTime : 1627383303
* MsgType : text
* Content : 滴滴
* MsgId : 23298528794961090
* */
JSONObject jsonInfo = XmlUtil.xmlToMap(result2);
if (jsonInfo != null) {
// 公众号的openId
String openId = jsonInfo.getString("FromUserName");
String accessToken = getAccessToken();
String unionId = getPublicUnionIdByOpenId(accessToken, openId);
// 判断数据是否存在
WechatRelation wechatRelation = wechatRelationService.getOne(new LambdaQueryWrapper<WechatRelation>().eq(WechatRelation::getUnionId, unionId));
if (wechatRelation == null) {
wechatRelation = new WechatRelation();
wechatRelation.setPublicOpenId(openId);
wechatRelation.setUnionId(unionId);
wechatRelation.setCreateDate(new Date());
wechatRelationService.save(wechatRelation);
} else {
// 判断 公众号openId 是否存在
if (StringUtil.isEmpty(wechatRelation.getPublicOpenId())) {
wechatRelation.setPublicOpenId(openId);
wechatRelationService.updateById(wechatRelation);
if(wechatRelation.getPersonId() != null){
Person person = personService.getById(wechatRelation.getPersonId());
if (person != null && StringUtil.isEmpty(person.getOpenId())) {
Person newPerson = new Person();
newPerson.setId(person.getId());
newPerson.setOpenId(openId);
personService.updateById(newPerson);
}
}
}
}
}
}
} catch (Exception e) {
return "ok";
}
return "ok";
}
/*
* 获取公众号 accesstoken
* (non-Javadoc)
* @see com.yspro.service.PubUserService#getAccessToken()
*/
public String getAccessToken() throws Exception {
String accessToken = (String) redisUtil.get("accessToken");
if (StringUtil.isNotEmpty(accessToken)) {
return accessToken;
} else {
String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + publicAppId + "&secret=" + publicSecret;
ResponeVo responeVo = HttpUtils.post(url, "");
JSONObject jsonResult = JSONObject.parseObject(responeVo.getContent());
// 成功后 返回参数中没有 errcode
if (jsonResult != null) {
accessToken = jsonResult.getString("access_token");
if (StringUtil.isNotEmpty(accessToken)) {
// 有效时长 7200s == 2h
String expires_in = jsonResult.getString("expires_in");
redisUtil.set("accessToken", accessToken, Long.valueOf(expires_in));
log.info("accessToken的值为:{} ", accessToken);
} else {
log.info("获取公众号 accessToken 失败, {}", jsonResult.toJSONString());
}
} else {
log.info("获取公众号 accessToken 失败, {}", jsonResult.toJSONString());
}
}
return accessToken;
}
/**
* 通过公众号openId 获取 unionId
*
* @param accessToken
* @return
*/
public String getPublicUnionIdByOpenId(String accessToken, String openId) {
String unionId = "";
if (StringUtil.isEmpty(accessToken) || StringUtil.isEmpty(openId)) {
return null;
}
try {
List<JSONObject> user_list = new ArrayList<>();
JSONObject map = new JSONObject();
map.put("openid", openId);
map.put("lang", "zh_CN");
user_list.add(map);
JSONObject json = new JSONObject();
//根据公众号openid获取公众号unionid
String requestUrl2 = new StringBuffer().append("https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=").append(accessToken).toString();
//json转换成map
json.put("user_list", user_list);
ResponeVo responeVoStr = HttpUtils.post(requestUrl2, json.toJSONString());
JSONObject strArr = JSONObject.parseObject(responeVoStr.getContent());
List<JSONObject> userInfoList = (List<JSONObject>) strArr.get("user_info_list");
if (userInfoList.size() > 0) {
for (JSONObject objectMap : userInfoList) {
System.out.println("****:" + objectMap.toJSONString());
unionId = objectMap.getString("unionid");
}
}
} catch (Exception e) {
log.info(e.getMessage());
return null;
}
return unionId;
}
// public static void main(String[] args) {
// String agencyCode = "JEPCC",
// encodingAesKey = "5lPa0OQzUtEqXXW1mzQTKkPomaPqxgCkrE9WRnuGEF2",
// publicAppId = "wxf6f295ce82aa4aab",
// encrypt = "kmWDvqKLVOM1yS04cx0KG36Swn0Md6CwnRINPgK2FNCIdd0Ks0yMOSYhhhibn8QmcV7bx8PXmxexTs3ukAyq3Z3VFkP8w+O/hARf8Rgx6+x8R6xytN0g2Zry9dMdmoG8+CqZ/qKIYiIysxfr8zPDxljO7+DhOPJbkSqJ547v8vDgtiHCyQ1hjldcCL9IrodELFq/DKKA69dzNTNMgPt65iFm/oVDHfiMOGjOQVfPCRSypJxcR5TlTa+SaFU+LARbytdL7sk/s0kZs0kNR1cpG1LEiQPVQeMdbu8Ie1hLhng99Ze82sRmOzM6QGdDpRNL66Iqgx+l7TtiNlL2OSzqlJLTgtDqWeAih7tPld6ab9MBTzQHxRVK+PwcdsyKHL3CjYLdDmK99oNjzqHUsLA+Oyv60UhaBprIMexKUFTZric=";
// try {
// String msgSignature = "03e9c3e7a141130f751fa674249f300a1299a4f3";
// // 时间戳
// String timestamp ="1627383304";
// // 随机数
// String nonce = "171714103";
// String format = "<xml><ToUserName><![CDATA[toUser]]></ToUserName><Encrypt><![CDATA[%1$s]]></Encrypt></xml>";
// String fromXML = String.format(format, encrypt);
// WXBizMsgCrypt pc = new WXBizMsgCrypt(agencyCode, encodingAesKey, publicAppId);
// String result2 = pc.decryptMsg(msgSignature, timestamp, nonce, fromXML);
// System.out.println("解密后明文: " + result2);
// Document doc = null;
// try {
// doc = DocumentHelper.parseText(result2);
// } catch (DocumentException e) {
// e.printStackTrace();
// }
// Element root = doc.getRootElement();
// Iterator it = root.elementIterator();
// while (it.hasNext()) {
// Element element = (Element) it.next();
// System.out.println(element.getName() + " : " + element.getTextTrim());
// }
//
// } catch (Exception e) {
// e.getStackTrace();
// System.out.println("error");
// }
// }
}
package com.yeejoin.precontrol.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.util.StringUtil;
import com.yeejoin.precontrol.common.dto.small.WxMssDto;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.WechatRelation;
import com.yeejoin.precontrol.common.entity.WechatSendMessage;
import com.yeejoin.precontrol.common.exception.BaseException;
import com.yeejoin.precontrol.common.service.IPersonService;
import com.yeejoin.precontrol.common.service.IWechatRelationService;
import com.yeejoin.precontrol.common.service.IWechatSendMessageService;
import com.yeejoin.precontrol.common.service.SmallProService;
import com.yeejoin.precontrol.common.utils.HttpUtils;
import com.yeejoin.precontrol.common.utils.RedisUtil;
import com.yeejoin.precontrol.common.vo.ResponeVo;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.micrometer.core.instrument.util.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 项目信息
*
* @author duanwei
* @date 2020-06-30
*/
@RestController
@Api(tags = "小程序控制层")
@RequestMapping(value = "/small", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Slf4j
public class SmallController extends BaseController {
/**
* 小程序appid
*/
@Value("${smallProgram.appid}")
private String appId;
/**
* 小程序secret
*/
@Value("${smallProgram.secret}")
private String secret;
/**
* 小程序grantType
*/
@Value("${smallProgram.grant_type}")
private String grantType;
/**
* 小程序secret
*/
@Value("${smallProgram.tutorial_id}")
private String tutorialId;
/**
* 公众号appid
*/
@Value("${smallProgram.public.appid}")
private String publicAppId;
/**
* 公众号secret
*/
@Value("${smallProgram.public.secret}")
private String publicSecret;
/**
* 小程序服务类
*/
@Autowired
SmallProService smallProService;
@Autowired
IPersonService iPersonService;
@Autowired
private IWechatSendMessageService wechatSendMessageService;
@Autowired
private IWechatRelationService wechatRelationService;
@Autowired
RedisUtil redisUtil;
/**
* 获取code
* https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
* 获取openId
* https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html
*
* @return
*/
@RequestMapping(value = "/getOpenId", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "通过code换 请求openId链接", notes = "通过code换 请求openId链接")
public Object exchangeSmallProMesssage(String code) throws IOException {
String url = buildOpenIdUrl(appId, secret, code);
ResponeVo responeVo = HttpUtils.get(url);
JSONObject jsonObject = JSONObject.parseObject(responeVo.getContent());
if (jsonObject != null) {
int errcode = jsonObject.getIntValue("errcode");
if (errcode == 0) {
// session_key 会话秘钥
// String sessionKey = jsonObject.getString("session_key");
String unionid = jsonObject.getString("unionid");
String openId = jsonObject.getString("openid");
Person person = getPerson();
if (person != null && person.getId() != null) {
WechatRelation wechatRelation = wechatRelationService.getOne(new LambdaQueryWrapper<WechatRelation>().eq(WechatRelation::getUnionId, unionid));
if (wechatRelation == null) {
wechatRelation = new WechatRelation();
wechatRelation.setSmallOpenId(openId);
wechatRelation.setUnionId(unionid);
wechatRelation.setPersonId(person.getId());
wechatRelation.setCreateDate(new Date());
wechatRelationService.save(wechatRelation);
} else {
wechatRelation.setPersonId(person.getId());
wechatRelation.setSmallOpenId(openId);
wechatRelationService.updateById(wechatRelation);
}
if (StringUtil.isEmpty(person.getOpenId()) && StringUtil.isNotEmpty(wechatRelation.getPublicOpenId())) {
Person newPerson = new Person();
newPerson.setId(person.getId());
// 公众号的openId
newPerson.setOpenId(wechatRelation.getPublicOpenId());
iPersonService.updateById(newPerson);
}
}
return openId;
} else {
throw new BaseException(jsonObject.getString("errmsg"));
}
} else {
throw new BaseException("微信接口调用失败");
}
}
/**
* 小程序 消息推送
* https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html
*
* @return
*/
@RequestMapping(value = "/subscribeMessage", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "消息推送", notes = "消息推送")
public Object subscribeMessage(@RequestBody WxMssDto wxMssDto)
throws IOException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
String res = buildMessageUrlToPost(wxMssDto);
JSONObject jsonObject = JSONObject.parseObject(res);
int errcode = jsonObject.getIntValue("errcode");
switch (errcode) {
case 40003:
throw new BaseException("touser字段openid为空或者不正确");
case 40037:
throw new BaseException("订阅模板id为空不正确");
case 43101:
throw new BaseException("用户拒绝接受消息,如果用户之前曾经订阅过,则表示用户取消了订阅关系");
case 47003:
throw new BaseException("模板参数不准确,可能为空或者不满足规则,errmsg会提示具体是哪个字段出错");
case 41030:
throw new BaseException("page路径不正确,需要保证在现网版本小程序中存在,与app.json保持一致");
default:
break;
}
return true;
}
/**
* 技术库文档二维码
*
* @return
*/
@RequestMapping(value = "/getQrCode", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "技术库文档二维码", notes = "技术库文档二维码")
public void getQrCode(String scene, Long width,
@RequestParam(value = "fileType", required = false, defaultValue = "png") String fileType,
HttpServletResponse response) {
String token = smallProService.getSmallProToken();
String page = "view/home/infoQuery/technologyQuery/TechnologyDetail";
smallProService.getSmallProQrCodeResponse(token, scene, page, Long.valueOf(width), null, null, null, response,
"技术库文档", fileType);
}
private String buildMessageUrlToPost(WxMssDto wxMssDto)
throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException, IOException {
String token = smallProService.getSmallProToken();
String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + token;
// 处理模板数据
Map dataMap = JSONObject.parseObject(wxMssDto.getData());
JSONObject param = new JSONObject();
param.put("touser", wxMssDto.getTouser());
param.put("template_id", wxMssDto.getTemplate_id());
param.put("page", wxMssDto.getPage());
param.put("data", dataMap);
ResponeVo post = HttpUtils.post(url, param.toJSONString());
log.info("微信数据:" + post.getContent());
String status = "发送失败";
String failMessage = "";
JSONObject jsonObject = JSONObject.parseObject(post.getContent());
int errcode = jsonObject.getIntValue("errcode");
switch (errcode) {
case 40003:
failMessage = "touser字段openid为空或者不正确";
break;
case 40037:
failMessage = "订阅模板id为空不正确";
break;
case 43101:
failMessage = "用户拒绝接受消息,如果用户之前曾经订阅过,则表示用户取消了订阅关系";
break;
case 47003:
failMessage = "模板参数不准确,可能为空或者不满足规则,errmsg会提示具体是哪个字段出错";
break;
case 41030:
failMessage = "page路径不正确,需要保证在现网版本小程序中存在,与app.json保持一致";
default:
status = "发送成功";
break;
}
WechatSendMessage wechatSendMessage = new WechatSendMessage();
wechatSendMessage.setOpenId(wxMssDto.getTouser());
wechatSendMessage.setMessage(param.toJSONString());
wechatSendMessage.setStatus(status);
wechatSendMessage.setTemplateId(wxMssDto.getTemplate_id());
wechatSendMessage.setFailMessage(failMessage);
wechatSendMessage.setResult(post.getContent());
wechatSendMessage.setCreateDate(new Date());
wechatSendMessageService.save(wechatSendMessage);
return post.getContent();
}
private String buildOpenIdUrl(String appId, String secret, String code) {
String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appId + "&secret=" + secret + "&js_code="
+ code + "&grant_type=authorization_code";
return url;
}
/**
* 技术库文档二维码
*
* @return
*/
@RequestMapping(value = "/getTutorial", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取使用指南文档id", notes = "获取使用指南文档id")
public String getTutorial() {
return tutorialId;
}
@RequestMapping(value = "/test/send/message", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "测试微信消息通知", notes = "测试微信消息通知")
public void testSendMessage(@RequestParam("messageData") String messageData) throws Exception {
List<String> openIds = new ArrayList<>();
if (StringUtil.isNotEmpty(messageData)) {
// openIds.add("ocN2g4nkM4KOIKC6rdLKs-1Tt-Rc");
openIds.add("omzjg09wxUbgL-aNFaixj4YYr45M");
String template = "2";
List<String> message = new ArrayList<>();
String[] split = messageData.split("#");
for (String s : split) {
message.add(s);
}
smallProService.sendWeChatUpcomingMessage(openIds, template, message);
}
}
}
package com.yeejoin.precontrol.controller;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.precontrol.common.entity.*;
import com.yeejoin.precontrol.common.enums.TaskPersonTypeEnum;
import com.yeejoin.precontrol.common.service.*;
import com.yeejoin.precontrol.common.utils.*;
import com.yeejoin.precontrol.common.vo.*;
import com.yeejoin.precontrol.common.ws.WebSocketStatistics;
import io.swagger.annotations.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.util.SystemOutLogger;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.yeejoin.precontrol.common.config.GlobalUtils;
import com.yeejoin.precontrol.common.constant.Constant;
import com.yeejoin.precontrol.common.dto.BadPersonDto;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.dto.CompanyPersonAdmissionDto;
import com.yeejoin.precontrol.common.dto.CompanyPersonDto;
import com.yeejoin.precontrol.common.dto.NoJobCompanyDto;
import com.yeejoin.precontrol.common.dto.NoJobDto;
import com.yeejoin.precontrol.common.dto.NoJobPersonDto;
import com.yeejoin.precontrol.common.dto.SafeConstructionDto;
import com.yeejoin.precontrol.common.dto.SafeOperationStatisticsDto;
import com.yeejoin.precontrol.common.dto.StatisticsDto;
import com.yeejoin.precontrol.common.enums.TaskTypeEnum;
import com.yeejoin.precontrol.common.enums.TypeKeyEnum;
import com.yeejoin.precontrol.common.exception.BaseException;
import com.yeejoin.precontrol.common.mapper.StatisticsMapper;
import com.yeejoin.precontrol.common.mapper.TaskMapper;
import com.yeejoin.precontrol.common.param.PersonStatisticParam;
import com.yeejoin.precontrol.common.vo.taskStatistical.BadStatisticalVo;
import com.yeejoin.precontrol.common.vo.taskStatistical.JobStatisticalVo;
import com.yeejoin.precontrol.common.vo.taskStatistical.RiskStatisticalVo;
import com.yeejoin.precontrol.common.vo.taskStatistical.TaskPayStatisticalVo;
import com.yeejoin.precontrol.common.vo.taskStatistical.WorkTicketStatisticalVo;
import com.yeejoin.precontrol.controller.publics.BaseController;
import lombok.extern.slf4j.Slf4j;
/**
* 统计
*
* @author sqy
*/
@RestController
@Api(tags = "统计api")
@RequestMapping(value = "/statistical", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Slf4j
public class StatisticalController extends BaseController {
/**
* 人员服务
*/
@Autowired
IPersonService personService;
/**
* 项目分数服务
*/
@Autowired
IProjectScoreService projectScoreService;
/**
* 项目服务
*/
@Autowired
IProjectService projectService;
/**
* 任务服务
*/
@Autowired
ITaskService taskService;
@Autowired
ITaskRiskControlService taskRiskControlService;
/**
* 企业服务
*/
@Autowired
ICompanyService companyService;
/**
* 人员关系表服务
*/
@Autowired
IPersonAscriptionService personAscriptionService;
/**
* 人员打卡服务
*/
@Autowired
IPersonClockService personClockService;
/**
* 违章管理服务
*/
@Autowired
IBadManagementService badManagementService;
/**
* 任务与人关系服务
*/
@Autowired
ITaskPersonService taskPersonService;
/**
* 地区服务
*/
@Autowired
IDistrictsService districtsService;
/**
* 任务服务
*/
@Autowired
TaskMapper taskMapper;
@Autowired
PlatformUtils platformUtils;
@Autowired
IStatisticsService statistisService;
/**
* 文件服务器地址
*/
@Value("${fileserver.domain}")
String fileServerUrl;
/**
* 人员信息统计根据项目id
*
* @return
*/
@RequestMapping(value = "/person", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "人员信息统计根据项目id", notes = "人员信息统计根据项目id")
public Object personByProjectId(Long projectId) {
return personService.personByProjectId(projectId);
}
/**
* 人员态势(红黄绿)
*
* @return
*/
@RequestMapping(value = "/personSituational", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "人员态势统计", notes = "人员态势统计")
public Map<String, Object> personSituational(Long projectId) {
getUserInfo();
Long companyId = null;
ReginParams reginInfo = getReginInfo();
if (isFbsRole(reginInfo)) {
Company company = reginInfo.getCompany();
if (company != null) {
companyId = company.getId();
}
}
String orgCode = platformUtils.getOrgCode();
return personService.personSituational(projectId, companyId, orgCode);
}
/**
* 人员统计详情列表(点击人员的列表) 业务屏
*/
@RequestMapping(value = "/personlist", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "人员统计详情列表", notes = "人员统计详情列表")
public Object listPage(@ApiParam(value = "分页") CommonPageableDto pageable,
@ApiParam(value = "查询参数") PersonStatisticParam personStatisticParam,
@ApiParam(value = "类型 0查询列表 1 导出列表") @RequestParam Long operType, HttpServletResponse response) {
String fileName = UUID.randomUUID().toString() + ".xls";
String orgCode = platformUtils.getOrgCode();
personStatisticParam.setOrgCode(orgCode);
IPage<PersonStatisticVo> page = personService.statisticPageInfo(personStatisticParam, pageable);
if (operType == 1) {
List<PersonStatisticVo> excelList = page.getRecords();
FileHelper.exportExcel(excelList, "人员安全态势", "人员安全态势", PersonStatisticVo.class, fileName, response);
return null;
} else {
return page;
}
}
/**
* 人员入场统计列表 大屏统计接口
*
* @param pageable
* @param personStatisticParam
* @return
*/
@RequestMapping(value = "/in/person", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "人员入场统计列表", notes = "人员入场统计列表")
public Object inPersonlistPage(@ApiParam(value = "分页") CommonPageableDto pageable,
@ApiParam(value = "查询参数") PersonStatisticParam personStatisticParam) {
String orgCode = platformUtils.getOrgCode();
personStatisticParam.setOrgCode(orgCode);
IPage<PersonStatisticVo> page = null;
// 1-红绿黄码接口 2-入场人员接口
if ("1".equals(personStatisticParam.getTypeFlag())) {
personStatisticParam.setTypeKey(0L);
page = personService.statisticPageInfo(personStatisticParam, pageable);
} else if ("2".equals(personStatisticParam.getTypeFlag())) {
page = personService.statisticInPersonlistPage(personStatisticParam, pageable);
}
return page;
}
/**
* 项目安全态势-监控屏
*
* @return
*/
@RequestMapping(value = "/securityPostureMonitor", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "项目安全态势-监控屏", notes = "项目安全态势-监控屏")
public Object securityPostureMonitor(Long projectId) {
Person me = getPerson();
Person person = personService.getById(me.getId());
if (person != null && person.getIsJxdj() != TypeKeyEnum.JXDJ.getLongType()) {
PersonAscription personAscription = personAscriptionService
.getOne(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, me.getId()));
if (personAscription.getProjectId() == null) {
return 0;
}
}
if (projectId == null) {
String orgCode = platformUtils.getOrgCode();
Integer score = projectScoreService.allProjectAvgScore(orgCode);
return score;
} else {
// return projectService.securityScore(projectId);;
return projectScoreService.getNowDateScore(projectId);
}
}
/**
* 项目安全态势-业务屏
*
* @return
*/
@RequestMapping(value = "/securityPostureBusiness", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "项目安全态势-业务屏", notes = "项目安全态势-业务屏")
public Object securityPostureBusiness(Long projectId) {
// Integer score = projectService.securityScore(projectId);
return projectScoreService.getNowDateScore(projectId);
}
/**
* 项目安全态势按最近七天统计
*
* @return
*/
@RequestMapping(value = "/projectSecurityList", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "项目安全态势按最近七天统计", notes = "项目安全态势按最近七天统计")
public Object clockExcetionList(Long projectId) {
List<String> days = DateTools.getDays(7);
LinkedHashMap<String, Object> maps = new LinkedHashMap<>();
days.forEach(day -> {
// 查询每天的数据情况
String start = day + " 00:00:00";
String end = day + " 23:59:59";
List<ProjectScore> projectScore = projectScoreService.list(new LambdaQueryWrapper<ProjectScore>()
.eq(ProjectScore::getProjectId, projectId).between(ProjectScore::getCreateDate, start, end));
if (StringUtil.isNotEmpty(projectScore)) {
maps.put(day.substring(5), projectScore.get(0).getScore());
} else {
maps.put(day.substring(5), 0);
}
});
return maps;
}
/**
* 安全施工任务数量 0进行中[距离目前2小时以内] 1超时[超出目前2小时] 2未完成[今天没完成的就算未完成])
*
* @return
*/
@RequestMapping(value = "/safeConstructionStatusNum", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "安全施工任务数量", notes = "安全施工任务数量")
public Object safeConstructionStatusNum(Long projectId) {
String orgCode = platformUtils.getOrgCode();
CommonPageableDto pageable = new CommonPageableDto();
pageable.setIsAll(1);
SafeConstructionDto safeConstructionDto = new SafeConstructionDto();
safeConstructionDto.setOrgCode(orgCode);
safeConstructionDto.setProjectId(projectId);
safeConstructionDto.setCurrentStatus(0L);
long processing = taskService.safeConstructionTaskStatusList(pageable, safeConstructionDto).getTotal();
safeConstructionDto.setCurrentStatus(1L);
long risk = taskService.safeConstructionTaskStatusList(pageable, safeConstructionDto).getTotal();
safeConstructionDto.setCurrentStatus(2L);
long undone = taskService.safeConstructionTaskStatusList(pageable, safeConstructionDto).getTotal();
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("processing", processing);
resultMap.put("risk", risk);
resultMap.put("undone", undone);
return resultMap;
}
/**
* 安全施工任务查询
*
* @return
*/
@RequestMapping(value = "/safeConstructionTaskStatusList", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "安全施工任务列表查询", notes = "安全施工任务列表查询")
public Object safeConstructionTaskStatusList(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") SafeConstructionDto safeConstructionDto) {
IPage<TaskPageVo> taskPageVo = taskService.safeConstructionTaskStatusList(pageable, safeConstructionDto);
return taskPageVo;
}
/**
* 统计屏-安全作业统计
*
* @return
*/
@RequestMapping(value = "/safeOperationStatistics", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "安全作业统计", notes = "安全作业统计")
public Object safeOperationStatistics(String date,
@DateTimeFormat(pattern = "yyyy-MM-dd 00:00:00") String startDate,
@DateTimeFormat(pattern = "yyyy-MM-dd 23:59:59") String endDate) throws ParseException {
Map<String, Object> map = new HashMap<>();
map.put("jobDisclosure", Constant.ZERO);
map.put("taskPayCheck", Constant.ZERO);
map.put("badManagement", Constant.ZERO);
map.put("riskTypeNum", Constant.ZERO);
if (StringUtils.isNotEmpty(date)) {
Calendar calendar = new GregorianCalendar();
Date e = new Date();
calendar.setTime(e);
calendar.add(Calendar.DAY_OF_MONTH, -Integer.parseInt(date));
Date s = calendar.getTime();
String start = DateUtils.dateFormat(s, "yyyy-MM-dd 00:00:00");
String end = DateUtils.dateFormat(e, "yyyy-MM-dd 23:59:59");
getTaskStatisticalNum(map, start, end);
return map;
} else {
if (StringUtils.isNotEmpty(startDate)) {
getTaskStatisticalNum(map, startDate, endDate);
} else {
throw new BaseException("请选择开始时间!");
}
return map;
}
}
/**
* 统计屏-安全作业统计列表 0 技术交底 1三交三查 2违规行为 3风险作业 4安全施工作业票
*
* @return
*/
@RequestMapping(value = "/safeOperationStatisticsList", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "安全作业统计列表", notes = "安全作业统计列表")
public Object safeOperationStatisticsList(String date, String type, Long operType,
SafeOperationStatisticsDto safeOperationStatisticsDto, CommonPageableDto commonPageableDto,
@DateTimeFormat(pattern = "yyyy-MM-dd 00:00:00") String startTime,
@DateTimeFormat(pattern = "yyyy-MM-dd 23:59:59") String endTime, HttpServletResponse response)
throws ParseException, IllegalAccessException {
String fileName = UUID.randomUUID().toString() + ".xls";
IPage<TaskPageVo> taskListByType;
if (StringUtils.isNotEmpty(date)) {
Calendar calendar = new GregorianCalendar();
Date e = new Date();
calendar.setTime(e);
calendar.add(Calendar.DAY_OF_MONTH, -Integer.parseInt(date));
Date s = calendar.getTime();
String startDate = DateUtils.dateFormat(s, "yyyy-MM-dd 00:00:00");
String endDate = DateUtils.dateFormat(e, "yyyy-MM-dd 23:59:59");
taskListByType = getTaskListByType(commonPageableDto, type, startDate, endDate, safeOperationStatisticsDto);
} else {
taskListByType = getTaskListByType(commonPageableDto, type, startTime, endTime, safeOperationStatisticsDto);
}
if (operType == 1) {
List<TaskPageVo> excelList = taskListByType.getRecords();
switch (type) {
case "0":
// 技术交底
List<JobStatisticalVo> jobStatisticalList = new ArrayList<>();
if (StringUtil.isNotEmpty(excelList)) {
for (TaskPageVo taskPageVo : excelList) {
JobStatisticalVo jobStatisticalVo = new JobStatisticalVo();
BeanUtils.copyProperties(taskPageVo, jobStatisticalVo);
GlobalUtils.setFormateByOne(jobStatisticalVo);
jobStatisticalList.add(jobStatisticalVo);
}
}
FileHelper.exportExcel(jobStatisticalList, "技术交底列表", "技术交底列表", JobStatisticalVo.class, fileName,
response);
break;
case "1":
// 三交三查
List<TaskPayStatisticalVo> taskPayStatisticalList = new ArrayList<>();
if (StringUtil.isNotEmpty(excelList)) {
for (TaskPageVo taskPageVo : excelList) {
TaskPayStatisticalVo taskPayStatisticalVo = new TaskPayStatisticalVo();
BeanUtils.copyProperties(taskPageVo, taskPayStatisticalVo);
GlobalUtils.setFormateByOne(taskPayStatisticalVo);
taskPayStatisticalList.add(taskPayStatisticalVo);
}
}
FileHelper.exportExcel(taskPayStatisticalList, "安全作业统计列表", "安全作业统计列表", TaskPayStatisticalVo.class,
fileName, response);
break;
case "2":
// 违规作业
List<BadStatisticalVo> badStatisticalList = new ArrayList<>();
if (StringUtil.isNotEmpty(excelList)) {
for (TaskPageVo taskPageVo : excelList) {
BadStatisticalVo badStatisticalVo = new BadStatisticalVo();
BeanUtils.copyProperties(taskPageVo, badStatisticalVo);
GlobalUtils.setFormateByOne(badStatisticalVo);
badStatisticalList.add(badStatisticalVo);
}
}
FileHelper.exportExcel(badStatisticalList, "安全作业统计列表", "安全作业统计列表", BadStatisticalVo.class, fileName,
response);
break;
case "3":
// 风险作业
List<RiskStatisticalVo> riskStatisticalVoList = new ArrayList<>();
if (StringUtil.isNotEmpty(excelList)) {
for (TaskPageVo taskPageVo : excelList) {
RiskStatisticalVo riskStatisticalVo = new RiskStatisticalVo();
BeanUtils.copyProperties(taskPageVo, riskStatisticalVo);
GlobalUtils.setFormateByOne(riskStatisticalVo);
riskStatisticalVoList.add(riskStatisticalVo);
}
}
FileHelper.exportExcel(riskStatisticalVoList, "安全作业统计列表", "安全作业统计列表", RiskStatisticalVo.class, fileName,
response);
break;
case "4":
// 安全施工作业票
List<WorkTicketStatisticalVo> workTicketStatisticalVoList = new ArrayList<>();
if (StringUtil.isNotEmpty(excelList)) {
for (TaskPageVo taskPageVo : excelList) {
WorkTicketStatisticalVo workTicketStatisticalVo = new WorkTicketStatisticalVo();
BeanUtils.copyProperties(taskPageVo, workTicketStatisticalVo);
GlobalUtils.setFormateByOne(workTicketStatisticalVo);
workTicketStatisticalVoList.add(workTicketStatisticalVo);
}
}
FileHelper.exportExcel(workTicketStatisticalVoList, "作业票统计列表", "作业票统计列表", WorkTicketStatisticalVo.class,
fileName, response);
break;
default:
}
return null;
} else {
return taskListByType;
}
}
/**
* 今日未交底项目
*
* @return
*/
@RequestMapping(value = "/noJobProject", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日未交底项目", notes = "今日未交底项目")
public Object noJobProject(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") NoJobDto noJobDto,
@ApiParam(value = "类型 0查询列表 1 导出列表") @RequestParam Long operType,
@ApiParam(value = "查询Ids") @RequestParam(required = false) List<Long> ids, HttpServletResponse response) {
String fileName = UUID.randomUUID().toString() + ".xls";
if (pageable.getIsAll() == 1) {
pageable.setPageNumber(0);
pageable.setPageSize(Integer.MAX_VALUE);
}
Page<?> page = new Page<>(pageable.getPageNumber(), pageable.getPageSize());
IPage<NoJobProjectVo> pageData = taskMapper.noJobProject(page, noJobDto);
if (StringUtil.isNotEmpty(pageData.getRecords())) {
pageData.getRecords().forEach(p -> {
Long projectId = p.getId();
QueryWrapper<PersonAscription> personAscriptionQueryWrapper1 = new QueryWrapper<>();
personAscriptionQueryWrapper1.eq("project_id", projectId);
personAscriptionQueryWrapper1.groupBy("company_id");
List<PersonAscription> list1 = personAscriptionService.list(new LambdaQueryWrapper<PersonAscription>()
.select(PersonAscription::getCompanyId).eq(PersonAscription::getProjectId, projectId)
.isNotNull(PersonAscription::getCompanyId).groupBy(PersonAscription::getCompanyId));
Integer companyNum = list1.size();
if (companyNum == null) {
p.setCompanyNum(0);
} else {
p.setCompanyNum(companyNum);
}
List<PersonAscription> list2 = personAscriptionService
.list(new LambdaQueryWrapper<PersonAscription>().select(PersonAscription::getPersonId)
.eq(PersonAscription::getProjectId, projectId).groupBy(PersonAscription::getPersonId));
Integer personNum = list2.size();
if (personNum == null) {
p.setPersonNum(0);
} else {
p.setPersonNum(personNum);
}
// 转换地区
if (StringUtils.isNotBlank(p.getRegion())) {
String[] split = p.getRegion().split(",");
LinkedList<Long> collect = Arrays.stream(split).map(Long::parseLong)
.collect(Collectors.toCollection(LinkedList::new));
Collection<Districts> districts = districtsService.listByIds(collect);
StringBuffer districtsName = new StringBuffer();
districts.forEach(districts1 -> districtsName.append(districts1.getExtName()).append(","));
districtsName.deleteCharAt(districtsName.length() - 1);
p.setRegionName(districtsName.toString());
}
// p.setSecurityScore(projectService.securityScore(projectId));
p.setSecurityScore(projectScoreService.getNowDateScore(projectId));
p.setTaskType("三交三查");
});
}
if (operType == 1) {
List<NoJobProjectVo> excelList = pageData.getRecords();
FileHelper.exportExcel(excelList, "今日未交底项目", "今日未交底项目", NoJobProjectVo.class, fileName, response);
return null;
} else {
return page;
}
}
/**
* 今日未交底分包商
*
* @return
*/
@RequestMapping(value = "/noJobCompany", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日未交底分包商", notes = "今日未交底分包商")
public Object noJobCompany(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") NoJobCompanyDto noJobCompanyDto,
@ApiParam(value = "类型 0查询列表 1 导出列表") @RequestParam Long operType,
@ApiParam(value = "查询Ids") @RequestParam(required = false) List<Long> ids, HttpServletResponse response) {
String fileName = UUID.randomUUID().toString() + ".xls";
if (pageable.getIsAll() == 1) {
pageable.setPageNumber(0);
pageable.setPageSize(Integer.MAX_VALUE);
}
Page<?> page = new Page<>(pageable.getPageNumber(), pageable.getPageSize());
System.out.println("==========noJobCompany 1" + new Date());
IPage<NoCompanyVo> pageData = taskMapper.noJobCompany(page, noJobCompanyDto);
System.out.println("==========noJobCompany 2" + new Date());
if (StringUtil.isNotEmpty(pageData.getRecords())) {
pageData.getRecords().forEach(p -> {
LambdaQueryWrapper<PersonAscription> personAscriptionLambdaQueryWrapper = new LambdaQueryWrapper<>();
personAscriptionLambdaQueryWrapper.eq(PersonAscription::getCompanyId, p.getId())
.eq(PersonAscription::getProjectId, p.getProjectId());
if (StringUtils.isNotEmpty(noJobCompanyDto.getOrgCode())) {
personAscriptionLambdaQueryWrapper.likeRight(PersonAscription::getOrgCode,
noJobCompanyDto.getOrgCode());
}
int count = personAscriptionService.count(personAscriptionLambdaQueryWrapper);
p.setPersonTotal(count);
p.setTaskType("三交三查");
});
}
System.out.println("==========noJobCompany 3" + new Date());
if (operType == 1) {
List<NoCompanyVo> excelList = pageData.getRecords();
FileHelper.exportExcel(excelList, "今日未交底分包商", "今日未交底分包商", NoCompanyVo.class, fileName, response);
return null;
} else {
return page;
}
}
/**
* 今日统计
*
* @return
*/
@RequestMapping(value = "/statisticsToday", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日统计", notes = "今日统计")
public Object statisticsToday() {
String orgCode = platformUtils.getOrgCode();
StatisticsDto statisticsDto = new StatisticsDto(orgCode, null);
return statistisService.statisticsToday(statisticsDto);
}
/**
* 今日分包商人员
*
* @return
*/
@RequestMapping(value = "/companyPerson", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日分包商人员", notes = "今日分包商人员")
public Object noJobCompanyPerson(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") CompanyPersonDto companyPersonDto,
@ApiParam(value = "类型 0查询列表 1 导出列表") @RequestParam Long operType,
@ApiParam(value = "查询Ids") @RequestParam(required = false) List<Long> ids, HttpServletResponse response) {
String fileName = UUID.randomUUID().toString() + ".xls";
if (pageable.getIsAll() == 1) {
pageable.setPageNumber(0);
pageable.setPageSize(Integer.MAX_VALUE);
}
Page<?> page = new Page<>(pageable.getPageNumber(), pageable.getPageSize());
IPage<CompanyPersonVo> pageData = taskMapper.companyPerson(page, companyPersonDto);
if (operType == 1) {
List<CompanyPersonVo> excelList = pageData.getRecords();
FileHelper.exportExcel(excelList, "今日分包商人员", "今日分包商人员", CompanyPersonVo.class, fileName, response);
return null;
} else {
return page;
}
}
/**
* 今日入场分包商人员
*
* @return
*/
@RequestMapping(value = "/companyPersonAdmission", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日入场分包商人员", notes = "今日入场分包商人员")
public Object companyPersonAdmission(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") CompanyPersonAdmissionDto companyPersonDto,
@ApiParam(value = "类型 0查询列表 1 导出列表") @RequestParam Long operType,
@ApiParam(value = "查询Ids") @RequestParam(required = false) List<Long> ids, HttpServletResponse response) {
String fileName = UUID.randomUUID().toString() + ".xls";
if (pageable.getIsAll() == 1) {
pageable.setPageNumber(0);
pageable.setPageSize(Integer.MAX_VALUE);
}
Page<?> page = new Page<>(pageable.getPageNumber(), pageable.getPageSize());
String orgCode = platformUtils.getOrgCode();
companyPersonDto.setOrgCode(orgCode);
IPage<CompanyPersonAdmissionVo> pageData = taskMapper.companyPersonAdmission(page, companyPersonDto);
if (operType == 1) {
List<CompanyPersonAdmissionVo> excelList = pageData.getRecords();
FileHelper.exportExcel(excelList, "今日入场分包商人员", "今日入场分包商人员", CompanyPersonAdmissionVo.class, fileName,
response);
return null;
} else {
return page;
}
}
/**
* 今日未交底人员
*
* @return
*/
@RequestMapping(value = "/noJobPersonList", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日未交底人员列表", notes = "今日未交底人员列表")
public Object noJobPerson(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") NoJobPersonDto noJobPersonDto,
@ApiParam(value = "类型 0查询列表 1 导出列表") @RequestParam Long operType,
@ApiParam(value = "查询Ids") @RequestParam(required = false) List<Long> ids, HttpServletResponse response) {
String fileName = UUID.randomUUID().toString() + ".xls";
if (pageable.getIsAll() == 1) {
pageable.setPageNumber(0);
pageable.setPageSize(Integer.MAX_VALUE);
}
String orgCode = platformUtils.getOrgCode();
noJobPersonDto.setOrgCode(orgCode);
Page<?> page = new Page<>(pageable.getPageNumber(), pageable.getPageSize());
IPage<NoJobPersonVo> noJobPersonList = taskMapper.noJobPerson(page, noJobPersonDto);
List<NoJobPersonVo> records = noJobPersonList.getRecords();
if (StringUtil.isNotEmpty(records)) {
for (NoJobPersonVo record : records) {
record.setJobName("三交三查");
}
}
if (operType == 1) {
List<NoJobPersonVo> excelList = noJobPersonList.getRecords();
FileHelper.exportExcel(excelList, "今日未交底人员列表", "今日未交底人员列表", NoJobPersonVo.class, fileName, response);
return null;
} else {
return page;
}
}
/**
* 今日违章员项列表
*
* @return
*/
@RequestMapping(value = "/badPersonList", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日违章员项列表", notes = "今日违章员项列表")
public Object badPersonList(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") BadPersonDto badPersonDto,
@ApiParam(value = "类型 0查询列表 1 导出列表") @RequestParam Long operType,
@ApiParam(value = "查询Ids") @RequestParam(required = false) List<Long> ids, HttpServletResponse response) {
String fileName = UUID.randomUUID().toString() + ".xls";
if (pageable.getIsAll() == 1) {
pageable.setPageNumber(0);
pageable.setPageSize(Integer.MAX_VALUE);
}
Page<BadPersonVo> page = new Page<>(0, Integer.MAX_VALUE);
IPage<BadPersonVo> badPersonList = taskMapper.badPersonList(page, new BadPersonDto());
if (operType == 1) {
List<BadPersonVo> records = badPersonList.getRecords();
FileHelper.exportExcel(records, "今日违章员项列表", "今日违章员项列表", BadPersonVo.class, fileName, response);
return null;
} else {
return page;
}
}
/**
* 违章统计
*
* @return
*/
@RequestMapping(value = "/badStatistics", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "违章统计", notes = "违章统计")
public Object badStatistics() {
String orgCode = platformUtils.getOrgCode();
Map<String, Object> map = new HashMap<>();
map.put("projectNum", Constant.ZERO);
map.put("companyNum", Constant.ZERO);
map.put("noBadProject", Constant.ZERO);
map.put("noBadCompany", Constant.ZERO);
LambdaQueryWrapper<Project> projectWrapper = new LambdaQueryWrapper<Project>().in(Project::getStatus, "在建",
"开发", "策划");
if (StringUtils.isNotEmpty(orgCode)) {
projectWrapper = projectWrapper.likeRight(Project::getOrgCode, orgCode);
}
int projectCount = projectService.count(projectWrapper);
map.put("projectNum", projectCount);
BadProjectVo badProjectVo = new BadProjectVo();
badProjectVo.setOrgCode(orgCode);
IPage<BadProjectVo> badProjectVoIpage = projectService.pageBadProject(false, false, new CommonPageableDto(),
badProjectVo);
List<BadProjectVo> badProject = badProjectVoIpage.getRecords();
if (StringUtil.isNotEmpty(badProject)) {
map.put("noBadProject", badProject.size());
}
BadCompanyVo badCompanyVo = new BadCompanyVo();
badCompanyVo.setOrgCode(orgCode);
IPage<BadCompanyVo> page = companyService.pageBadCompany(false, false, new CommonPageableDto(), badCompanyVo);
IPage<BadCompanyVo> badPage = companyService.pageBadCompany(true, true, new CommonPageableDto(), badCompanyVo);
List<BadCompanyVo> noBadCompany = page.getRecords();
List<BadCompanyVo> badCompany = badPage.getRecords();
if (StringUtil.isNotEmpty(noBadCompany)) {
map.put("noBadCompany", noBadCompany.size());
}
if (StringUtil.isNotEmpty(badCompany)) {
map.put("companyNum", badCompany.size());
}
return map;
}
/**
* 获取任务统计数量
*
* @param map
* @param startDate
* @param endDate
*/
private void getTaskStatisticalNum(Map<String, Object> map, String startDate, String endDate) {
String orgCode = platformUtils.getOrgCode();
LambdaQueryWrapper<Task> taskLambdaQueryWrapper = new LambdaQueryWrapper<>();
LambdaQueryWrapper<Task> taskLambdaQueryWrapper1 = new LambdaQueryWrapper<>();
LambdaQueryWrapper<Task> taskLambdaQueryWrapper2 = new LambdaQueryWrapper<>();
taskLambdaQueryWrapper.eq(Task::getType, TaskTypeEnum.JOBDISCLOSURE.getValue()).between(Task::getCreateDate,
startDate, endDate);
taskLambdaQueryWrapper1.eq(Task::getType, TaskTypeEnum.TASKPAYCHECK.getValue()).between(Task::getCreateDate,
startDate, endDate);
taskLambdaQueryWrapper2.eq(Task::getType, TaskTypeEnum.BAD.getValue()).between(Task::getCreateDate, startDate,
endDate);
if (StringUtils.isNotEmpty(orgCode)) {
taskLambdaQueryWrapper.likeRight(Task::getOrgCode, orgCode);
taskLambdaQueryWrapper1.likeRight(Task::getOrgCode, orgCode);
taskLambdaQueryWrapper2.likeRight(Task::getOrgCode, orgCode);
}
int jobDisclosure = taskService.count(taskLambdaQueryWrapper);
int taskPayCheck = taskService.count(taskLambdaQueryWrapper1);
int badManagement = taskService.count(taskLambdaQueryWrapper2);
map.put("jobDisclosure", jobDisclosure);
map.put("taskPayCheck", taskPayCheck);
map.put("badManagement", badManagement);
map.put("riskTypeNum", Constant.ZERO);
map.put("jobTicket", Constant.ZERO);
SafeOperationStatisticsDto safeOperationStatisticsDto = new SafeOperationStatisticsDto();
safeOperationStatisticsDto.setOrgCode(orgCode);
IPage<TaskPageVo> riskType = taskService.riskWork(new CommonPageableDto(), startDate, endDate,
safeOperationStatisticsDto);
if (StringUtil.isNotEmpty(riskType.getRecords())) {
map.put("riskTypeNum", riskType.getRecords().size());
}
IPage<TaskPageVo> jobTicket = taskService.jobTicket(new CommonPageableDto(), startDate, endDate,
safeOperationStatisticsDto);
if (StringUtil.isNotEmpty(jobTicket.getRecords())) {
map.put("jobTicket", jobTicket.getRecords().size());
}
}
/**
* 根据类型返回任务数据
*
* @param type
* @param startTime
* @param endTime
* @return
*/
private IPage<TaskPageVo> getTaskListByType(CommonPageableDto commonPageableDto, String type, String startTime,
String endTime, SafeOperationStatisticsDto safeOperationStatisticsDto) {
IPage<TaskPageVo> taskPageVoIpage = null;
switch (type) {
case "0":
// 技术交底
taskPageVoIpage = taskService.taskList(commonPageableDto, type, startTime, endTime,
safeOperationStatisticsDto);
break;
case "1":
// 三交三查
taskPageVoIpage = taskService.taskPay(commonPageableDto, startTime, endTime, safeOperationStatisticsDto);
break;
case "2":
// 违规任务
taskPageVoIpage = taskService.bad(commonPageableDto, startTime, endTime, safeOperationStatisticsDto);
break;
case "3":
// 风险作业
taskPageVoIpage = taskService.riskWork(commonPageableDto, startTime, endTime, safeOperationStatisticsDto);
break;
case "4":
// 安全施工作业票
taskPageVoIpage = taskService.jobTicket(commonPageableDto, startTime, endTime, safeOperationStatisticsDto);
break;
default:
taskPageVoIpage = taskService.taskList(commonPageableDto, type, startTime, endTime,
safeOperationStatisticsDto);
}
List<TaskPageVo> records = taskPageVoIpage.getRecords();
if (StringUtil.isNotEmpty(records)) {
for (TaskPageVo record : records) {
// 转换地区
if (StringUtils.isNotBlank(record.getRegion())) {
String[] split = record.getRegion().split(",");
LinkedList<Long> collect = Arrays.stream(split).map(Long::parseLong)
.collect(Collectors.toCollection(LinkedList::new));
Collection<Districts> districts = districtsService.listByIds(collect);
StringBuffer districtsName = new StringBuffer();
districts.forEach(districts1 -> districtsName.append(districts1.getExtName()).append(","));
districtsName.deleteCharAt(districtsName.length() - 1);
record.setRegionName(districtsName.toString());
}
}
}
return taskPageVoIpage;
}
/**
* 今日监管
*
* @return
*/
@RequestMapping(value = "/today-regulate", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日监管", notes = "今日监管")
public Object todayRegulate(Long projectId) {
return statistisService.todayRegulate(getStatisticDto(projectId));
}
/**
* 今日监管-在建项目
*
* @return
*/
@RequestMapping(value = "/today-regulate/project", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日监管-在建项目", notes = "今日监管-在建项目")
public Object todayRegulateProject(Long projectId) {
return statistisService.todayRegulateProject(getStatisticDto(projectId));
}
/**
* 今日监管-风险作业
*
* @return
*/
@RequestMapping(value = "/today-regulate/risk", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日监管-风险作业", notes = "今日监管-风险作业")
public Object todayRegulateRisk(Long projectId) {
return statistisService.todayRegulateRisk(getStatisticDto(projectId));
}
/**
* 今日监管-今日违章
*
* @return
*/
@RequestMapping(value = "/today-regulate/bad", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日监管-今日违章", notes = "今日监管-今日违章")
public Object todayRegulateBad(Long projectId) {
return statistisService.todayRegulateBad(getStatisticDto(projectId));
}
/**
* 今日监管-技术交底
*
* @return
*/
@RequestMapping(value = "/today-regulate/tech", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日监管-技术交底", notes = "今日监管-技术交底")
public Object todayRegulateTech(Long projectId) {
return statistisService.todayRegulateTech(getStatisticDto(projectId));
}
/**
* 今日监管-入场人员
*
* @return
*/
@RequestMapping(value = "/today-regulate/person/in", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日监管-入场人员", notes = "今日监管-入场人员")
public Object todayRegulatePersonIn(Long projectId) {
return statistisService.todayRegulatePersonIn(getStatisticDto(projectId));
}
/**
* 今日监管-未交底人员
*
* @return
*/
@RequestMapping(value = "/today-regulate/person/no-tech", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日监管-未交底人员", notes = "今日监管-未交底人员")
public Object todayRegulatePersonNoTech(Long projectId) {
return statistisService.todayRegulatePersonNoTech(getStatisticDto(projectId));
}
/**
* 今日监管-作业票
*
* @return
*/
@RequestMapping(value = "/today-regulate/ticket", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "今日监管-作业票", notes = "今日监管-作业票")
public Object todayRegulateTicket(Long projectId) {
return statistisService.todayRegulateTicket(getStatisticDto(projectId));
}
/**
* 综合统计
*
* @return
*/
@RequestMapping(value = "/comprehensive-statistical", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "统计-综合统计", notes = "统计-综合统计")
public Object comprehensiveStatistical(Long projectId) {
return statistisService.comprehensiveStatistical(getStatisticDto(projectId));
}
/**
* 作业活动
*
* @return
*/
@RequestMapping(value = "/operation-activities", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "统计-作业活动", notes = "统计-作业活动")
public Object operationActivities(Long projectId) {
Person person = personService.getById(getPerson().getId());
StatisticsDto statisticsDto = new StatisticsDto();
// 分包商只看自己的----userId;江西电建查看项目部的----orgCode
if (person.getIsJxdj() == 0) {
statisticsDto.setPersonId(person.getId());
// statisticsDto.setCompanyId(person.getCompanyId());
} else {
statisticsDto.setOrgCode(person.getOrgCode());
}
statisticsDto.setProjectId(projectId);
return statistisService.operationActivities(statisticsDto);
}
@ApiOperation(value = "分包商app任务统计", notes = "分包商首页使用")
@GetMapping("/task")
public Object getTaskStatistics() {
Person person = personService.getById(getPerson().getId());
StatisticsDto statisticsDto = new StatisticsDto();
statisticsDto.setUserId(person.getUserId());
statisticsDto.setPersonId(person.getId());
return statistisService.taskStatistics(statisticsDto);
}
/**
* 安全分析
*
* @return
*/
@RequestMapping(value = "/safety-analysis", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "统计-安全分析", notes = "统计-安全分析")
public Object safetyAnalysis(Long projectId) {
return statistisService.safetyAnalysis(getStatisticDto(projectId));
}
/**
* 知识分享
*
* @return
*/
@RequestMapping(value = "/knowledge-share", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "统计- 知识分享", notes = "统计- 知识分享")
public Object knowledgeShare(Long projectId) {
return statistisService.knowledgeShare(getStatisticDto(projectId));
}
/**
* 生成统计dto
*
* @param projectId
* @return
*/
private StatisticsDto getStatisticDto(Long projectId) {
Person person = personService.getById(getPerson().getId());
PersonAscription ascription = personAscriptionService.getOne(
new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId, getPerson().getId()));
StatisticsDto statisticsDto = new StatisticsDto();
if (projectId != null) {
statisticsDto.setProjectId(projectId);
}
// 分包商只看自己的----userId;江西电建查看项目部的----orgCode
if (person.getIsJxdj() == 0) {
statisticsDto.setPersonId(person.getId());
statisticsDto.setCompanyId(ascription.getCompanyId());
} else {
statisticsDto.setOrgCode(person.getOrgCode());
}
return statisticsDto;
}
/**
* 获取项目部首页统计--小程序使用
*
* @return
*/
@RequestMapping(value = "/home/project/statistics", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "小程序-项目部首页统计", notes = "小程序-项目部首页统计")
public Map<String, Integer> getProjectDepartmentStatistics() {
Person person = personService.getById(getPerson().getId());
StatisticsDto statisticsDto = new StatisticsDto();
// statisticsDto.setPersonId(person.getId());
statisticsDto.setOrgCode(person.getOrgCode());
return statistisService.getProjectStatistics(statisticsDto);
}
@ApiOperation(value = "分包商app任务统计明细", notes = "分包商首页使用")
@GetMapping("/task/detail")
public List getTaskDetail() {
AgencyUserModel userInfo = getUserInfo();
return statistisService.getTaskDetail(userInfo.getSequenceNbr(), userInfo.getUserId());
}
@ApiOperation(value = "热门知识", notes = "热门知识,分包商首页使用")
@GetMapping("/knowledge/random-list")
public List getKnowledgeRandomList(@RequestParam Integer total) {
buildRequestContext();
return statistisService.getKnowledgeRandomList(total);
}
@ApiOperation(value = "待办任务状态", notes = "待办任务状态,首页小红点")
@GetMapping("/myTodo/status")
public Object getTaskDealStatus(@RequestParam(required = false) Long companyId,
@RequestParam(required = false) Long projectId) {
Person person = getPerson();
return statistisService.getTaskDealStatus(person, companyId, projectId);
}
/**
* 违章排名
*
* @return
*/
@GetMapping(value = "violation/rank")
@ApiOperation(value = "违章排名", notes = "违章排名")
public Object violationRank(@ApiParam(value = "排序字段", required = false) Long projectId,
@ApiParam(value = "排序字段", required = true, defaultValue = "num", example = "num") String key,
@ApiParam(value = "排序方式", required = true, defaultValue = "desc", example = "desc 倒序, asc 正序") String sortType,
@ApiParam(value = "分页") CommonPageableDto pageable) {
try {
String orgCode = platformUtils.getOrgCode();
IPage<Object> page = taskService.violationRank(pageable, key, sortType, orgCode, projectId);
return page;
} catch (Exception e) {
return CommonResponseUtil.failure(e.getMessage());
}
}
/**
* 风险作业 分页列表
*
* @param pageable
* @param status
* @return
*/
@GetMapping(value = "risk/list")
@ApiOperation(value = "风险作业 分页列表", notes = "风险作业 分页列表")
@ApiImplicitParam(value = "status", defaultValue = "0", example = "查询状态 0-进行中 1-已完成")
public Object riskList(@ApiParam(value = "分页") CommonPageableDto pageable,
@RequestParam(value = "status", defaultValue = "0") Integer status, TaskRiskControlVo taskRiskControlVo) {
String orgCode = platformUtils.getOrgCode();
if (status == null) {
status = 0;
}
try {
IPage<Object> page = taskRiskControlService.riskWorkPageInfo(pageable, orgCode, status, taskRiskControlVo);
return page;
} catch (Exception e) {
return CommonResponseUtil.failure(e.getMessage());
}
}
/**
* 反违章任务 分页列表
*
* @param pageable
* @param status
* @return
*/
@GetMapping(value = "anti/violation/list")
@ApiOperation(value = "反违章任务 分页列表", notes = "反违章任务 分页列表")
@ApiImplicitParam(value = "status", defaultValue = "0", example = "查询状态 0-进行中 1-已完成")
public Object antViolationList(@ApiParam(value = "分页") CommonPageableDto pageable,
@RequestParam(value = "status", defaultValue = "0") Integer status,
@RequestParam(value = "projectId", required = false) Long projectId) {
String orgCode = platformUtils.getOrgCode();
if (status == null) {
status = 0;
}
try {
IPage<Object> page = taskRiskControlService.antiViolationPageInfo(pageable, orgCode, status, projectId);
return page;
} catch (Exception e) {
return CommonResponseUtil.failure(e.getMessage());
}
}
/**
* 风险作业详情
*
* @param id
* @return
*/
@GetMapping(value = "risk/detail")
@ApiOperation(value = "风险作业详情", notes = "风险作业详情")
public Object riskDetail(@RequestParam(value = "id") Long id) {
if (id == null) {
return CommonResponseUtil.failure("参数 id 为空");
}
Map<String, Object> map = new HashMap<String, Object>();
try {
// 统计累计入场 当前入场
map = (Map<String, Object>) taskRiskControlService.personStatistics(id);
// 专业人员
List<TaskWorkPersonVo> listPro = taskRiskControlService.riskPersonList(id,
TaskPersonTypeEnum.PRO_WORKER.getValue());
listPro.forEach(i -> i.setHeadPhoto(fileServerUrl + i.getHeadPhoto()));
map.put("listPro", listPro);
// 辅助人员
List<TaskWorkPersonVo> listAssist = taskRiskControlService.riskPersonList(id,
TaskPersonTypeEnum.ASSIST_WORKER.getValue());
listAssist.forEach(i -> i.setHeadPhoto(fileServerUrl + i.getHeadPhoto()));
map.put("listAssist", listAssist);
// 详细信息
TaskRiskControlDetailVo taskRiskControlDetailVo = taskRiskControlService.taskRiskDetail(id);
map.put("riskDetailInfo", taskRiskControlDetailVo);
return map;
} catch (Exception e) {
return CommonResponseUtil.failure(e.getMessage());
}
}
/**
* 需要办理的风险作业
*
* @return
*/
@GetMapping(value = "risk/need")
@ApiOperation(value = "需要办理的风险作业", notes = "需要办理的风险作业")
public Object riskNeedProcessList(Long projectId) {
String orgCode = platformUtils.getOrgCode();
try {
// 详细信息
List<TaskRiskControlDetailVo> list = taskRiskControlService.riskNeedProcessList(orgCode, projectId);
return list == null ? new ArrayList<TaskRiskControlDetailVo>() : list;
} catch (Exception e) {
return CommonResponseUtil.failure(e.getMessage());
}
}
/**
* 作业活动分页列表
*
* @param pageable
* @param workActivityVo
* @return
*/
@RequestMapping(value = "/work/activity/page", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "作业活动列表", notes = "作业活动列表")
public Object workActivityPage(@ApiParam(value = "分页") CommonPageableDto pageable,
@ApiParam(value = "查询参数") WorkActivityVo workActivityVo) {
String orgCode = platformUtils.getOrgCode();
workActivityVo.setOrgCode(orgCode);
IPage<WorkActivityVo> page = statistisService.workActivityPageInfo(workActivityVo, pageable);
return page;
}
/**
* 获取orgcode
*
* @return
*/
@GetMapping(value = "get/orgcode")
@ApiOperation(value = "获取orgCode", notes = "获取orgCode")
public Object getOrgCode() {
String orgCode = platformUtils.getOrgCode();
return orgCode == null ? "null" : orgCode;
}
}
package com.yeejoin.precontrol.controller;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.common.api.dto.CreatExamDto;
import com.yeejoin.amos.boot.module.common.api.feign.KnowledgebaseFeignClient;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.dto.SingBadManagementDto;
import com.yeejoin.precontrol.common.dto.SingJobDisclosureDto;
import com.yeejoin.precontrol.common.dto.SingTaskPayCheckDto;
import com.yeejoin.precontrol.common.dto.StudioPageableDto;
import com.yeejoin.precontrol.common.dto.TaskDto;
import com.yeejoin.precontrol.common.dto.TaskPageDto;
import com.yeejoin.precontrol.common.entity.BadManagement;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.PersonCondition;
import com.yeejoin.precontrol.common.entity.Project;
import com.yeejoin.precontrol.common.entity.Task;
import com.yeejoin.precontrol.common.entity.TaskPaycheck;
import com.yeejoin.precontrol.common.entity.TaskPerson;
import com.yeejoin.precontrol.common.entity.TaskPersonFile;
import com.yeejoin.precontrol.common.entity.TaskRiskControl;
import com.yeejoin.precontrol.common.entity.TaskRiskControlPrePerson;
import com.yeejoin.precontrol.common.entity.TaskRiskControlTech;
import com.yeejoin.precontrol.common.entity.TaskTechDocument;
import com.yeejoin.precontrol.common.enums.MessageAttributeEnum;
import com.yeejoin.precontrol.common.enums.MessageSubTypeEnum;
import com.yeejoin.precontrol.common.enums.MessageTypeEnum;
import com.yeejoin.precontrol.common.enums.StatusEnum;
import com.yeejoin.precontrol.common.enums.TaskPersonTypeEnum;
import com.yeejoin.precontrol.common.enums.TaskStatusEnum;
import com.yeejoin.precontrol.common.enums.TaskTypeEnum;
import com.yeejoin.precontrol.common.enums.WeChatMsgTemplateTypeEum;
import com.yeejoin.precontrol.common.exception.BaseException;
import com.yeejoin.precontrol.common.exception.errorEnum.BaseExceptionEnum;
import com.yeejoin.precontrol.common.mapper.PersonMapper;
import com.yeejoin.precontrol.common.publish.MessageEventPublish;
import com.yeejoin.precontrol.common.publish.StatusEventPublish;
import com.yeejoin.precontrol.common.publish.TranslateEventPublish;
import com.yeejoin.precontrol.common.service.FileService;
import com.yeejoin.precontrol.common.service.IBadManagementService;
import com.yeejoin.precontrol.common.service.ICompanyService;
import com.yeejoin.precontrol.common.service.IHazardousWorkResultService;
import com.yeejoin.precontrol.common.service.IHazardousWorkService;
import com.yeejoin.precontrol.common.service.IPersonConditionService;
import com.yeejoin.precontrol.common.service.IPersonService;
import com.yeejoin.precontrol.common.service.IProjectService;
import com.yeejoin.precontrol.common.service.ITaskPaycheckService;
import com.yeejoin.precontrol.common.service.ITaskPersonFileService;
import com.yeejoin.precontrol.common.service.ITaskPersonService;
import com.yeejoin.precontrol.common.service.ITaskRiskControlPrePersonService;
import com.yeejoin.precontrol.common.service.ITaskRiskControlService;
import com.yeejoin.precontrol.common.service.ITaskRiskControlTechService;
import com.yeejoin.precontrol.common.service.ITaskService;
import com.yeejoin.precontrol.common.service.ITaskTechDocumentService;
import com.yeejoin.precontrol.common.service.ITechDocumentAttachmentTemplateService;
import com.yeejoin.precontrol.common.service.PdfService;
import com.yeejoin.precontrol.common.service.SmallProService;
import com.yeejoin.precontrol.common.utils.DateUtils;
import com.yeejoin.precontrol.common.utils.PersonUtils;
import com.yeejoin.precontrol.common.utils.StringUtil;
import com.yeejoin.precontrol.common.vo.ReginParams;
import com.yeejoin.precontrol.common.vo.RewardAndRetributionListVo;
import com.yeejoin.precontrol.common.vo.TaskPageVo;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
/**
* 作业活动
*
* @author duanwei
* @date 2020-06-30
*/
@RestController
@Api(tags = "作业活动Api")
@RequestMapping(value = "/task", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Slf4j
public class TaskController extends BaseController {
/**
* 任务服务
*/
@Autowired
ITaskService iTaskService;
/**
* 任务与附件关系服务
*/
@Autowired
ITaskPersonFileService iTaskPersonFileService;
/**
* 任务与人服务
*/
@Autowired
ITaskPersonService iTaskPersonService;
/**
* 三交三查服务
*/
@Autowired
ITaskPaycheckService iTaskPaycheckService;
/**
* 违章管理服务
*/
@Autowired
IBadManagementService iBadManagementService;
/**
* 人员服务
*/
@Autowired
IPersonService iPersonService;
/**
* 工程服务
*/
@Autowired
IProjectService iProjectService;
/**
* 任务与文档服务
*/
@Autowired
ITaskTechDocumentService iTaskTechDocumentService;
/**
* 企业服务
*/
@Autowired
ICompanyService iCompanyService;
/**
* pdf转换服务
*/
@Autowired
PdfService pdfService;
/**
* 文档与附件服务
*/
@Autowired
ITechDocumentAttachmentTemplateService iTechDocumentAttachmentTemplateService;
/**
* 危险作业服务
*/
@Autowired
IHazardousWorkService iHazardousWorkService;
/**
* 危险作业结果服务
*/
@Autowired
IHazardousWorkResultService iHazardousWorkResultService;
/**
* 文件服务
*/
@Autowired
FileService fileService;
/**
* 翻译事件服务
*/
@Autowired
TranslateEventPublish translateEventPublish;
/**
* 状态事件服务
*/
@Autowired
StatusEventPublish statusEventPublish;
/**
* 知识库服务
*/
@Autowired
KnowledgebaseFeignClient knowledgeBaseFeign;
@Autowired
IPersonConditionService iPersonConditionService;
@Autowired
MessageEventPublish messageEventPublish;
@Autowired
IPersonService personService;
@Autowired
ITaskRiskControlService iTaskRiskControlService;
@Autowired
ITaskRiskControlTechService iTaskRiskControlTechService;
@Autowired
ITaskRiskControlPrePersonService iTaskRiskControlPrePersonService;
/**
* 产品号
*/
@Value("${admin.product}")
String product;
/**
* 产品密钥
*/
@Value("${admin.appkey}")
String appkey;
/**
* 账户
*/
@Value("${admin.user}")
String user;
/**
* 密码
*/
@Value("${admin.password}")
String password;
@Autowired
SmallProService smallProService;
@Autowired
PersonUtils personUtils;
@Autowired
PersonMapper personMapper;
/**
* 新增技术交底
*
* @return
*/
@RequestMapping(value = "/saveJobDisclosure", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增作业活动-技术交底", notes = "新增作业活动-技术交底")
public boolean saveJobDisclosure(@RequestBody SingJobDisclosureDto singJobDisclosureDto) {
Person person = getPerson();
List<Long> safetyOfficerId = singJobDisclosureDto.getSafetyOfficerId();
// 项目部技术员只需判断本项目安全员是否必选
if ("technician".equals(person.getRoleKey())) {
boolean security = checkTaskUser(safetyOfficerId, "security");
if (!security) {
throw new BaseException("必选本项目部安全员");
}
}
// 分包商只需判断本分包商安全员是否必选
if ("fbs_technician".equals(person.getRoleKey())) {
boolean fbs_security = checkTaskUser(safetyOfficerId, "fbs_security");
if (!fbs_security) {
throw new BaseException("必选本分包商安全员");
}
}
iTaskService.saveJobDisclosure(singJobDisclosureDto, person);
return true;
}
/**
* 新增三交三查 业务上属于交底任务
*
* @return
*/
@RequestMapping(value = "/saveTaskPayCheck", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增作业活动-三交三查", notes = "新增作业活动-三交三查")
public boolean saveTaskPayCheck(@RequestBody SingTaskPayCheckDto singTaskPayCheckDto) {
Person person = getPerson();
setPlatFormAccess();
// 校验
if (StringUtil.isNotEmpty(singTaskPayCheckDto.getTechnicianId())) {
checkTaskUser(singTaskPayCheckDto.getTechnicianId(), "项目部和分包商技术员必须各选择1个", "technician", "fbs_technician");
}
if (StringUtil.isNotEmpty(singTaskPayCheckDto.getEngineeringStaffId())) {
checkTaskUser(singTaskPayCheckDto.getEngineeringStaffId(), "项目部工程员和分包商主管必须各选择1个", "project",
"fbs_director");
}
iTaskService.saveTaskPayCheck(singTaskPayCheckDto, person);
return true;
}
/**
* 更新三交三查
*
* @return
*/
@RequestMapping(value = "/updatePayCheck", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "更新作业活动-三交三查", notes = "更新作业活动-三交三查")
public boolean updatePayCheck(@RequestBody SingTaskPayCheckDto singTaskPayCheckDto) {
Person person = getPerson();
iTaskService.updatePayCheck(singTaskPayCheckDto, person);
return true;
}
/**
* 新增违规管理
*
* @return
*/
@RequestMapping(value = "/saveBadManagement", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增作业活动-违规管理", notes = "新增作业活动-违规管理")
public boolean saveSingBadManagement(@RequestBody SingBadManagementDto singBadManagementDto) {
Person curPerson = getPerson();
iTaskService.saveBadManagement(singBadManagementDto, curPerson);
return true;
}
/**
* 更新违规管理
*
* @return
*/
@RequestMapping(value = "/updateBadManagement", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "更新作业活动-违规管理", notes = "更新作业活动-违规管理")
public boolean updateBadManagement(@RequestBody SingBadManagementDto singBadManagementDto) {
Person curPerson = getPerson();
iTaskService.updateBadManagement(singBadManagementDto, curPerson);
return true;
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(@PathVariable Long id) {
if (id == null) {
throw new BaseException(BaseExceptionEnum.DATA_NOT_EXISTS);
}
iTaskService.removeById(id);
iBadManagementService.remove(
new LambdaQueryWrapper<BadManagement>().select(BadManagement::getId).eq(BadManagement::getTaskId, id));
iTaskPaycheckService.remove(
new LambdaQueryWrapper<TaskPaycheck>().select(TaskPaycheck::getId).eq(TaskPaycheck::getTaskId, id));
iTaskPersonService
.remove(new LambdaQueryWrapper<TaskPerson>().select(TaskPerson::getId).eq(TaskPerson::getTaskId, id));
iTaskPersonFileService.remove(new LambdaQueryWrapper<TaskPersonFile>().select(TaskPersonFile::getId)
.eq(TaskPersonFile::getTaskId, id));
iTaskTechDocumentService.remove(new LambdaQueryWrapper<TaskTechDocument>().select(TaskTechDocument::getId)
.eq(TaskTechDocument::getTaskId, id));
iTaskRiskControlService.remove(new LambdaQueryWrapper<TaskRiskControl>().eq(TaskRiskControl::getTaskId, id));
iTaskRiskControlPrePersonService
.remove(new LambdaQueryWrapper<TaskRiskControlPrePerson>().eq(TaskRiskControlPrePerson::getTaskId, id));
iTaskRiskControlTechService
.remove(new LambdaQueryWrapper<TaskRiskControlTech>().eq(TaskRiskControlTech::getTaskId, id));
return true;
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "ids/{ids}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(@PathVariable String ids) {
if (StringUtils.isNotBlank(ids)) {
String[] idsSplit = ids.split(",");
Set<Long> comIds = Arrays.stream(idsSplit).map(Long::parseLong).collect(Collectors.toSet());
for (Long id : comIds) {
iTaskService.removeById(id);
iBadManagementService.remove(new LambdaQueryWrapper<BadManagement>().select(BadManagement::getId)
.eq(BadManagement::getTaskId, id));
iTaskPaycheckService.remove(new LambdaQueryWrapper<TaskPaycheck>().select(TaskPaycheck::getId)
.eq(TaskPaycheck::getTaskId, id));
iTaskPersonService.remove(
new LambdaQueryWrapper<TaskPerson>().select(TaskPerson::getId).eq(TaskPerson::getTaskId, id));
iTaskPersonFileService.remove(new LambdaQueryWrapper<TaskPersonFile>().select(TaskPersonFile::getId)
.eq(TaskPersonFile::getTaskId, id));
iTaskTechDocumentService.remove(new LambdaQueryWrapper<TaskTechDocument>()
.select(TaskTechDocument::getId).eq(TaskTechDocument::getTaskId, id));
iTaskRiskControlService
.remove(new LambdaQueryWrapper<TaskRiskControl>().eq(TaskRiskControl::getTaskId, id));
iTaskRiskControlPrePersonService.remove(
new LambdaQueryWrapper<TaskRiskControlPrePerson>().eq(TaskRiskControlPrePerson::getTaskId, id));
iTaskRiskControlTechService
.remove(new LambdaQueryWrapper<TaskRiskControlTech>().eq(TaskRiskControlTech::getTaskId, id));
}
}
return true;
}
/**
* 查看技术交底
*
* @return
*/
@RequestMapping(value = "/getJobDisclosure", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取作业活动-技术交底", notes = "获取作业活动-技术交底")
public Object getJobDisclosure(Long taskId,Long taskPersonId) {
return iTaskService.getJobDisclosure(taskId,taskPersonId);
}
/**
* 查看三交三查
*
* @return
*/
@RequestMapping(value = "/getTaskPayCheck", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取作业活动-三交三查", notes = "获取作业活动-三交三查")
public Object getTaskPayCheck(Long taskId,Long taskPersonId) {
return iTaskService.getTaskPayCheck(taskId,taskPersonId);
}
/**
* 查看违规管理
*
* @return
*/
@RequestMapping(value = "/getBadManagement", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取作业活动-违规管理", notes = "获取作业活动-违规管理")
public Object getBadManagement(Long taskId,Long taskPersonId) {
Person person = getPerson();
return iTaskService.getBadManagement(taskId, person.getId(),taskPersonId);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public Object selectById(@PathVariable Long id,Long taskPersonId) {
return iTaskService.selectById(id,taskPersonId);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/new/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public Object newSelectById(@PathVariable Long id,Long taskPersonId) {
return iTaskService.newSelectById(id,taskPersonId);
}
/**
* 导出doc 嵌套html渲染
*
* @return
*/
@RequestMapping(value = "/exportDoc", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "任务导出doc", notes = "任务导出doc")
public String exportDoc(HttpServletRequest request, HttpServletResponse response, Long id) throws IOException {
return iTaskService.exportDoc(id, request, response);
}
/**
* 任务阅读反馈
*
* @return
*/
@RequestMapping(value = "/read", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "任务阅读反馈", notes = "任务阅读反馈")
public Object read(Long taskPersonId) {
TaskPerson taskPerson = iTaskPersonService.getById(taskPersonId);
if (taskPerson == null) {
throw new BaseException("taskPersonId为空");
}
taskPerson.setReadStatus(StatusEnum.SUCCESS.getValue());
taskPerson.setReadTime(new Date());
iTaskPersonService.updateById(taskPerson);
Long taskId = taskPerson.getTaskId();
Task task = iTaskService.getById(taskId);
// 技术交底一个人两个角色特殊处理
if (TaskTypeEnum.JOBDISCLOSURE.getValue().equals(task.getType())) {
List<TaskPerson> samePersonList = iTaskPersonService.list(new LambdaQueryWrapper<TaskPerson>()
.eq(TaskPerson::getTaskId, taskId).eq(TaskPerson::getPersonId, taskPerson.getPersonId()));
samePersonList.forEach(i -> {
i.setReadStatus(StatusEnum.SUCCESS.getValue());
taskPerson.setReadTime(new Date());
});
iTaskPersonService.updateBatchById(samePersonList);
}
// 当人员的状态已经都为1的时候 则代表任务完结
List<TaskPerson> list = iTaskPersonService.list(new LambdaQueryWrapper<TaskPerson>()
.eq(TaskPerson::getReadStatus, 0).eq(TaskPerson::getTaskId, taskId));
if (StringUtil.isEmpty(list)) {
task.setStatus(TaskStatusEnum.COMPLETED.getLongType());
task.setEndTime(new Date());
iTaskService.updateById(task);
// 完成消息通知:违章检查任务执行完成之后、知识推送任务执行完成之后、技术交底任务执行完成之后、风险作业任务执行完成之后
JSONArray jsonArray = new JSONArray();
JSONObject msg = new JSONObject();
MessageSubTypeEnum messageSubTypeEnum = this.getMessageSubTypEum(String.valueOf(task.getType()));
if (messageSubTypeEnum != null) {
msg.put(MessageAttributeEnum.MSG_TYPE.getName(), MessageTypeEnum.SERVICE_REMINDER.getType());
msg.put(MessageAttributeEnum.MSG_SUB_TYPE.getName(), messageSubTypeEnum.getType());
msg.put(MessageAttributeEnum.CONTENT.getName(), messageSubTypeEnum.getTip());
msg.put(MessageAttributeEnum.PERSON_ID.getName(), task.getCreatePersonId());
msg.put(MessageAttributeEnum.TASK_ID.getName(), task.getId());
msg.put(MessageAttributeEnum.PARAM.getName(), 99); // 任务已完成 stage = 99
jsonArray.add(msg);
JSONObject obj = new JSONObject();
obj.put("param", jsonArray);
messageEventPublish.publish(obj);
}
Project project = iProjectService.getById(task.getProjectId());
// 微信服务通知
Set<Long> set = personUtils.getWXTaskBasicPerson(taskId);
List<Person> persons = iPersonService
.list(new LambdaQueryWrapper<Person>().in(Person::getId, set).isNotNull(Person::getOpenId));
List<String> openIds = persons.stream().map(Person::getOpenId).collect(Collectors.toList());
List<String> messages = new ArrayList<>();
messages.add(project.getName());
messages.add(TaskTypeEnum.getLabelByValue(task.getType()));
messages.add(DateUtils.getDateNowString());
messages.add(TaskTypeEnum.getLabelByValue(task.getType()) + "任务完成消息通知");
smallProService.sendWeChatUpcomingMessage(openIds, WeChatMsgTemplateTypeEum.SERVICE_COMPLETE.getValue(),
messages);
}
// 更新注册时的知识分享任务状态
if (TaskTypeEnum.KNOWLEDGE_SHARE.getValue().equals(task.getType())) {
PersonCondition personCondition = iPersonConditionService.getOne(
new LambdaQueryWrapper<PersonCondition>().eq(PersonCondition::getPersonId, taskPerson.getPersonId())
.eq(PersonCondition::getKnowledgeTaskId, task.getId()));
if (personCondition != null && personCondition.getKnowledgeStatus() == 0) {
personCondition.setKnowledgeStatus(1);
iPersonConditionService.updateById(personCondition);
}
}
// 推送状态更改消息
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "read");
jsonObject.put("taskId", taskId);
statusEventPublish.publish(jsonObject);
return true;
}
private MessageSubTypeEnum getMessageSubTypEum(String type) {
switch (type) {
case "2":
return MessageSubTypeEnum.SERVICE_REMINDER_VIOLATION_FINISHED;
case "6":
return MessageSubTypeEnum.SERVICE_REMINDER_KNOWLEDGE_PUSH_FINISHED;
case "0":
return MessageSubTypeEnum.SERVICE_REMINDER_TECHNICAL_DISCLOSURE_FINISHED;
case "3":
return MessageSubTypeEnum.SERVICE_REMINDER_RISK_WORK_FINISHED;
default:
return null;
}
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public Object listPage(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") TaskPageDto taskPageDto,
@ApiParam(value = "类型 0查询列表 1 导出列表") @RequestParam Long operType,
@ApiParam(value = "查询Ids") @RequestParam(required = false) List<Long> ids, HttpServletResponse response) {
ReginParams reginInfo = getReginInfo();
boolean fbsRole = isFbsRole(reginInfo);
return iTaskService.list(reginInfo, fbsRole, pageable, taskPageDto, operType, ids, response);
}
/**
* 我的待办
*
* @return
*/
@RequestMapping(value = "/myTodoList", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "我的待办仅仅自己", notes = "我的待办仅仅自己")
public Object myTodoList(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") TaskPageDto taskPageDto, HttpServletResponse response) {
Person person = personService.getById(getPerson().getId());
// 分包商只看自己的----userId;江西电建查看项目部的----orgCode
if (person.getIsJxdj() == 0) {
taskPageDto.setUserId(person.getId());
//taskPageDto.setOrgCode("");
} else {
taskPageDto.setOrgCode(person.getOrgCode());
taskPageDto.setUserId(person.getId());
}
IPage<TaskPageVo> page = iTaskService.myToDoListByPage(pageable, taskPageDto, person.getId());
return page;
}
/**
* 我的待办数量
*
* @return
*/
@RequestMapping(value = "/todoListNum", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "我的待办", notes = "我的待办")
public Object todoListNum(@ApiParam(value = "查询参数") TaskPageDto taskPageDto, HttpServletResponse response) {
// 获取用户id 创建人的
Person person = getPerson();
taskPageDto.setUserId(person.getId());
IPage<TaskPageVo> page = iTaskService.listByPage(new CommonPageableDto(), taskPageDto);
return page.getTotal();
}
/**
* 查看任务是否允许操作
*
* @return
*/
@RequestMapping(value = "/taskIsOperOk", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "任务是否允许操作", notes = "任务是否允许操作")
public Object taskIsOperOk(Long executeUserId) {
Person person = getPerson();
Long personId = person.getId();
if (executeUserId != null && executeUserId.equals(personId)) {
return true;
}
return false;
}
/**
* 审核任务
*
* @return
*/
@RequestMapping(value = "/audit", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "审核任务", notes = "审核任务")
public Object audit(@RequestBody TaskDto taskDto) {
Person curPerson = getPerson();
Task task = new Task();
task.setId(taskDto.getId());
task.setStatus(taskDto.getStatus());
TaskPerson taskPerson = new TaskPerson();
taskPerson.setReadStatus(StatusEnum.SUCCESS.getValue());
taskPerson.setReadTime(new Date());
iTaskPersonService.update(taskPerson, new LambdaQueryWrapper<TaskPerson>()
.eq(TaskPerson::getTaskId, taskDto.getId()).eq(TaskPerson::getPersonId, curPerson.getId()));
if (taskDto.getStatus() == TaskStatusEnum.RETURNED.getLongType()) {
TaskPerson createPerson = new TaskPerson();
createPerson.setReadStatus(StatusEnum.UNFINISHED.getValue());
iTaskPersonService.update(createPerson,
new LambdaQueryWrapper<TaskPerson>().eq(TaskPerson::getTaskId, taskDto.getId())
.eq(TaskPerson::getType, TaskPersonTypeEnum.SPONSORVIOLATION.getValue()));
}
iTaskService.updateById(task);
translateEventPublish.publish(task);
// 审核通过后,通知分包商负责人进行执行--违规任务
Task newTask = iTaskService.getById(taskDto.getId());
if (TaskStatusEnum.UNCOMPLETED.getType() == taskDto.getStatus()
&& newTask.getType().equals(TaskTypeEnum.BAD.getValue())) {
// 保存分包商负责人
TaskPerson liablePerson = new TaskPerson();
BadManagement badManagement = iBadManagementService
.getOne(new LambdaQueryWrapper<BadManagement>().eq(BadManagement::getTaskId, newTask.getId()));
liablePerson.setTaskId(newTask.getId());
liablePerson.setPersonId(badManagement.getPersonLiable());
Person person = iPersonService.getById(badManagement.getPersonLiable());
liablePerson.setPersonName(person.getName());
liablePerson.setType(TaskPersonTypeEnum.SUBCONTRACTOR.getValue());
liablePerson.setReadStatus(StatusEnum.UNFINISHED.getValue());
liablePerson.setCompanyId(badManagement.getCompanyId());
iTaskPersonService.save(liablePerson);
// 发起人发消息
JSONArray jsonArray = new JSONArray();
JSONObject msg = new JSONObject();
msg.put(MessageAttributeEnum.MSG_TYPE.getName(), MessageTypeEnum.VIOLATION_INSPECTION.getType());
msg.put(MessageAttributeEnum.MSG_SUB_TYPE.getName(), MessageSubTypeEnum.VIOLATION_INSPECTION_NEW.getType());
msg.put(MessageAttributeEnum.CONTENT.getName(), MessageSubTypeEnum.VIOLATION_INSPECTION_NEW.getTip());
msg.put(MessageAttributeEnum.TASK_ID.getName(), newTask.getId());
msg.put(MessageAttributeEnum.PERSON_ID.getName(), newTask.getCreatePersonId());
jsonArray.add(msg);
// 分包商发消息
JSONObject liableMsg = new JSONObject();
liableMsg.put(MessageAttributeEnum.MSG_TYPE.getName(), MessageTypeEnum.VIOLATION_INSPECTION.getType());
liableMsg.put(MessageAttributeEnum.MSG_SUB_TYPE.getName(),
MessageSubTypeEnum.VIOLATION_INSPECTION_TODO.getType());
liableMsg.put(MessageAttributeEnum.CONTENT.getName(),
MessageSubTypeEnum.VIOLATION_INSPECTION_TODO.getTip());
liableMsg.put(MessageAttributeEnum.PERSON_ID.getName(), liablePerson.getPersonId());
liableMsg.put(MessageAttributeEnum.TASK_ID.getName(), newTask.getId());
jsonArray.add(liableMsg);
// 分包商违章检查:
JSONObject obj = new JSONObject();
obj.put("param", jsonArray);
messageEventPublish.publish(obj);
// 微信服务通知
List<Person> persons = iPersonService.list(new LambdaQueryWrapper<Person>()
.in(Person::getId, Arrays.asList(badManagement.getPersonLiable())).isNotNull(Person::getOpenId));
List<String> openIds = persons.stream().map(Person::getOpenId).collect(Collectors.toList());
List<String> messages = new ArrayList<>();
messages.add(smallProService.getName());
messages.add(badManagement.getNature());
messages.add(badManagement.getType());
messages.add(DateUtils.getDateNowString());
smallProService.sendWeChatUpcomingMessage(openIds, WeChatMsgTemplateTypeEum.TODO.getValue(), messages);
} else if (TaskStatusEnum.RETURNED.getType() == taskDto.getStatus()
&& newTask.getType().equals(TaskTypeEnum.BAD.getValue())) {
// 发起人发消息
// JSONArray jsonArray = new JSONArray();
// JSONObject msg = new JSONObject();
// msg.put(MessageAttributeEnum.MSG_TYPE.getName(), MessageTypeEnum.VIOLATION_INSPECTION.getType());
// msg.put(MessageAttributeEnum.MSG_SUB_TYPE.getName(),
// MessageSubTypeEnum.VIOLATION_INSPECTION_TODO.getType());
// msg.put(MessageAttributeEnum.CONTENT.getName(), MessageSubTypeEnum.VIOLATION_INSPECTION_TODO.getTip());
// msg.put(MessageAttributeEnum.TASK_ID.getName(), task.getId());
// msg.put(MessageAttributeEnum.PERSON_ID.getName(), task.getCreatePersonId());
// jsonArray.add(msg);
// // 分包商违章检查:
// JSONObject obj = new JSONObject();
// obj.put("param", jsonArray);
// messageEventPublish.publish(obj);
}
return true;
}
/**
* 重新提交作业活动-违规管理
*
* @return
*/
@RequestMapping(value = "/recommitBadManagement", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "重新提交作业活动-违规管理", notes = "重新提交作业活动-违规管理")
public boolean recommitBadManagement(@RequestBody SingBadManagementDto singBadManagementDto) {
Person person = getPerson();
iTaskService.recommitBadManagement(singBadManagementDto, person);
return true;
}
/**
* 发起人查询自己的任务列表
*
* @return
*/
@RequestMapping(value = "/createPersonTask", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "发起人查询自己的任务列表", notes = "发起人查询自己的任务列表")
public Object createPersonTask() {
Person person = getPerson();
return iTaskService.createPersonTask(person);
}
/**
* 校验用户
*
* @param userIds 用户id
* @param message 校验失败弹出消息
* @param roleNames 角色名称
*/
private void checkTaskUser(List<Long> userIds, String message, String... roleNames) {
Set<Long> technicianUserIds = iPersonService.listByIds(userIds).stream().map(p -> p.getUserId())
.collect(Collectors.toSet());
List<AgencyUserModel> result = new ArrayList<>();
technicianUserIds.forEach(item -> {
AgencyUserModel agencyUserModel = Privilege.agencyUserClient.queryByUserId(item + "").getResult();
result.add(agencyUserModel);
});
AtomicInteger user1Num = new AtomicInteger();
AtomicInteger user2Num = new AtomicInteger();
if (StringUtil.isNotEmpty(result)) {
result.forEach(r -> {
if (null != r.getOrgRoles() && r.getOrgRoles().size() > 0) {
Map<Long, List<RoleModel>> orgRoles = r.getOrgRoles();
for (Map.Entry<Long, List<RoleModel>> entry : orgRoles.entrySet()) {
List<RoleModel> value = entry.getValue();
for (RoleModel roleModel : value) {
String roleName = roleModel.getRoleName();
if (roleName.equals(roleNames[0])) {
user1Num.getAndIncrement();
}
if (roleName.equals(roleNames[1])) {
user2Num.getAndIncrement();
}
}
}
}
});
// 两种角色 如果小于1 说明没有 没有传就抛出异常
if (user1Num.get() < 1 || user2Num.get() < 1) {
throw new BaseException(message);
}
}
}
/**
* 校验用户 如果传入的人角色匹配 则数量大于0
*
* @param userIds 用户id
* @param roleName 角色名称
*/
private boolean checkTaskUser(List<Long> userIds, String roleName) {
Set<Long> ids = iPersonService.listByIds(userIds).stream().map(p -> p.getUserId()).collect(Collectors.toSet());
if (StringUtil.isNotEmpty(ids)) {
List<Person> list = iPersonService
.list(new LambdaQueryWrapper<Person>().in(Person::getId, userIds).eq(Person::getRoleKey, roleName));
if (StringUtil.isNotEmpty(list)) {
return true;
}
}
return false;
}
/**
* 获取任务列表新
*
* @return
*/
@RequestMapping(value = "/myList", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "发起人查询自己的任务列表", notes = "发起人查询自己的任务列表")
public Object myList(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") TaskPageDto taskPageDto, HttpServletResponse response) {
Person person = getPerson();
taskPageDto.setUserId(person.getId());
IPage<TaskPageVo> page = iTaskService.myListByPage(pageable, taskPageDto);
return page;
}
@RequestMapping(value = "/exam/template/test", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "通过模板进行考试", notes = "小程序使用")
public Object examTemplateTest(@RequestBody CreatExamDto creatExamDto) {
return iTaskService.examTemplateTest(creatExamDto);
}
/**
* 奖励惩罚 列表
*
* @param pageable
* @param rewardVo
* @return
*/
@GetMapping("/violation/list")
@ApiOperation(httpMethod = "GET", value = "违章 列表", notes = "违章列表")
public IPage<RewardAndRetributionListVo> violationList(StudioPageableDto pageable,
RewardAndRetributionListVo rewardVo) {
return iTaskService.violationList(pageable, rewardVo);
}
}
package com.yeejoin.precontrol.controller;
import java.util.Arrays;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
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.yeejoin.precontrol.common.dto.KnowledgeShareDto;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.Task;
import com.yeejoin.precontrol.common.service.ITaskKnowledgeShareService;
import com.yeejoin.precontrol.common.utils.NameUtils;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 知识分享任务表
*
* @author wujiang
* @date 2020-12-21
*/
@RestController
@Api(tags = "知识分享任务表Api")
@RequestMapping(value = "/task-knowledge-share", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class TaskKnowledgeShareController extends BaseController {
@Autowired
ITaskKnowledgeShareService iTaskKnowledgeShareService;
/**
* 新增知识分享
*
* @return
*
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增知识分享", notes = "新增知识分享")
public boolean save(HttpServletRequest request, @RequestBody KnowledgeShareDto knowledgeShareDto) {
Person peron = getPerson();
knowledgeShareDto.setCreatePersonId(peron.getId());
knowledgeShareDto.setOrgCode(peron.getOrgCode());
knowledgeShareDto = iTaskKnowledgeShareService.saveOne(knowledgeShareDto);
iTaskKnowledgeShareService.knowledgeNotice(knowledgeShareDto); // 发送知识推送消息
return true;
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iTaskKnowledgeShareService.removeById(id);
}
/**
* 修改知识分享
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改知识分享", notes = "修改知识分享")
public boolean updateByIdTaskPersonFeedback(HttpServletRequest request,
@RequestBody KnowledgeShareDto knowledgeShareDto) {
return iTaskKnowledgeShareService.updateOneById(knowledgeShareDto);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public KnowledgeShareDto selectById(HttpServletRequest request, @PathVariable Long id) {
Person person = getPerson();
return iTaskKnowledgeShareService.queryById(person.getId(), id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<Task> listPage(String pageNum, String pageSize, KnowledgeShareDto knowledgeShareDto) {
Page<Task> pageBean;
QueryWrapper<Task> knowledgeShareQueryWrapper = new QueryWrapper<>();
Class<? extends KnowledgeShareDto> aClass = knowledgeShareDto.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(knowledgeShareDto);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(knowledgeShareDto);
knowledgeShareQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(knowledgeShareDto);
knowledgeShareQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(knowledgeShareDto);
knowledgeShareQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(knowledgeShareDto);
knowledgeShareQueryWrapper.eq(name, fileValue);
}
}
} catch (Exception e) {
}
});
IPage<Task> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iTaskKnowledgeShareService.page(pageBean, knowledgeShareQueryWrapper);
return page;
}
}
package com.yeejoin.precontrol.controller;
import java.util.Arrays;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
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.yeejoin.precontrol.common.entity.TaskPersonFeedback;
import com.yeejoin.precontrol.common.service.ITaskPersonFeedbackService;
import com.yeejoin.precontrol.common.utils.NameUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 人员反馈表
*
* @author duanwei
* @date 2020-12-08
*/
@RestController
@Api(tags = "人员反馈表Api")
@RequestMapping(value = "/task-person-feedback", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class TaskPersonFeedbackController {
@Autowired
ITaskPersonFeedbackService iTaskPersonFeedbackService;
/**
* 新增人员反馈表
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增人员反馈表", notes = "新增人员反馈表")
public boolean saveTaskPersonFeedback(HttpServletRequest request,
@RequestBody TaskPersonFeedback taskPersonFeedback) {
return iTaskPersonFeedbackService.saveFeedBack(taskPersonFeedback);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iTaskPersonFeedbackService.removeById(id);
}
/**
* 修改人员反馈表
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改人员反馈表", notes = "修改人员反馈表")
public boolean updateByIdTaskPersonFeedback(HttpServletRequest request,
@RequestBody TaskPersonFeedback taskPersonFeedback) {
return iTaskPersonFeedbackService.updateById(taskPersonFeedback);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public TaskPersonFeedback selectById(HttpServletRequest request, @PathVariable Long id) {
return iTaskPersonFeedbackService.getById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<TaskPersonFeedback> listPage(String pageNum, String pageSize, TaskPersonFeedback taskPersonFeedback) {
Page<TaskPersonFeedback> pageBean;
QueryWrapper<TaskPersonFeedback> taskPersonFeedbackQueryWrapper = new QueryWrapper<>();
Class<? extends TaskPersonFeedback> aClass = taskPersonFeedback.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(taskPersonFeedback);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(taskPersonFeedback);
taskPersonFeedbackQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(taskPersonFeedback);
taskPersonFeedbackQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(taskPersonFeedback);
taskPersonFeedbackQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(taskPersonFeedback);
taskPersonFeedbackQueryWrapper.eq(name, fileValue);
}
}
} catch (Exception e) {
}
});
IPage<TaskPersonFeedback> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iTaskPersonFeedbackService.page(pageBean, taskPersonFeedbackQueryWrapper);
return page;
}
}
package com.yeejoin.precontrol.controller;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.google.common.collect.Maps;
import com.yeejoin.precontrol.common.annotations.OpsLog;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.dto.TaskRiskControlDto;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.TaskRiskControl;
import com.yeejoin.precontrol.common.entity.TaskRiskControlTech;
import com.yeejoin.precontrol.common.entity.publics.CommonPageable;
import com.yeejoin.precontrol.common.enums.OpsLogEnum;
import com.yeejoin.precontrol.common.enums.SmallProPageEnum;
import com.yeejoin.precontrol.common.enums.TaskRiskControlStatusEnum;
import com.yeejoin.precontrol.common.service.IPersonService;
import com.yeejoin.precontrol.common.service.IProjectService;
import com.yeejoin.precontrol.common.service.ITaskRiskControlService;
import com.yeejoin.precontrol.common.service.ITaskRiskControlTechService;
import com.yeejoin.precontrol.common.service.SmallProService;
import com.yeejoin.precontrol.common.utils.NameUtils;
import com.yeejoin.precontrol.common.vo.TaskRiskControlAppVo;
import com.yeejoin.precontrol.common.vo.TaskRiskControlVo;
import com.yeejoin.precontrol.common.vo.TaskWorkPersonVo;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
* 风险管控任务表
*
* @author duanwei
* @date 2021-01-28
*/
@RestController
@Api(tags = "风险管控任务表Api")
@RequestMapping(value = "/task-risk-control", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class TaskRiskControlController extends BaseController {
@Autowired
ITaskRiskControlService iTaskRiskControlService;
@Autowired
ITaskRiskControlTechService iTaskRiskControlTechService;
@Autowired
IProjectService iProjectService;
/**
* 小程序二维码服务
*/
@Autowired
SmallProService smallProService;
@Autowired
IPersonService personService;
/**
* 新增风险管控任务表
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增风险管控任务表", notes = "新增风险管控任务表")
public boolean saveTaskRiskControl(HttpServletRequest request, @RequestBody TaskRiskControlVo taskRiskControlVo) {
iTaskRiskControlService.save(taskRiskControlVo);
return true;
}
/**
* 根据id批量删除
*
* @param ids
* @return
*/
@RequestMapping(value = "/{ids}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id批量删除", notes = "根据id批量删除")
@OpsLog(value=OpsLogEnum.DELETE_RISKCONTROL)
public String deleteById(HttpServletRequest request, @PathVariable String ids) {
String[] idArray = ids.split(",");
Optional.ofNullable(idArray).orElseThrow(() -> new BadRequest("参数错误"));
return iTaskRiskControlService.deleteByIds(Arrays.asList(idArray));
}
/**
* 修改风险管控任务表
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@OpsLog(value=OpsLogEnum.EDIT_RISKCONTROL)
@ApiOperation(httpMethod = "PUT", value = "修改风险管控任务表", notes = "修改风险管控任务表")
public boolean updateByIdTaskRiskControl(HttpServletRequest request, @RequestBody TaskRiskControlVo taskRiskControlVo) {
TaskRiskControl taskRiskControl = new TaskRiskControl();
BeanUtils.copyProperties(taskRiskControlVo, taskRiskControl);
iTaskRiskControlService.nullFiledCheck(taskRiskControl);
Optional.ofNullable(taskRiskControl.getId()).orElseThrow(() -> new BadRequest("风险任务计划不存在"));
if(taskRiskControlVo.getRiskControlTechVo()!=null)
{
TaskRiskControlTech taskRiskControlTech = new TaskRiskControlTech();
BeanUtils.copyProperties(taskRiskControlVo.getRiskControlTechVo(), taskRiskControlTech);
iTaskRiskControlTechService.updateById(taskRiskControlTech);
}
return iTaskRiskControlService.updateById(taskRiskControl);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public TaskRiskControlVo selectById(HttpServletRequest request, @PathVariable Long id) {
return iTaskRiskControlService.getDetailById(id);
}
/**
* 风险作业计划列表分页查询
*
* @return
*/
@RequestMapping(value = "/page/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<TaskRiskControlVo> listByPage(Integer pageNumber, Integer pageSize,
TaskRiskControlDto taskRiskControlDto) {
String orgCode = null;
Person loginPerson = getPerson();
orgCode = loginPerson.getOrgCode();
taskRiskControlDto.setOrgCode(orgCode);
return iTaskRiskControlService.listByPage(pageNumber, pageSize, taskRiskControlDto);
}
/**
* 风险计划二维码
*/
@RequestMapping(value = "/getQrCode", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取风险计划二维码", notes = "获取风险计划二维码")
public void getTaskRiskControlQrCode(
@RequestParam(value = "fileType", required = false, defaultValue = "png") String fileType,
@RequestParam(value = "width", required = false) String width,
@RequestParam(value = "taskRiskControlId") Long taskRiskControlId, HttpServletResponse response) {
String page = SmallProPageEnum.personQr.getPath();
String token = smallProService.getSmallProToken();
String bizId = taskRiskControlId.toString();
smallProService.getSmallProQrCodeResponse(token, bizId, page, Long.valueOf(width), null, null, null, response,
String.valueOf(taskRiskControlId), fileType);
}
/**
* 获取“我的安全码”
*/
@RequestMapping(value = "/safety/qrCode", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取“我的安全码”", notes = "获取“我的安全码”")
public Map<String, Object> getSafetyQrCode(@RequestParam(value = "taskRiskControlId") Long taskRiskControlId,
@RequestParam(value = "personId") Long personId, HttpServletResponse response) {
return iTaskRiskControlService.getRiskWorkTrajectory(taskRiskControlId, personId);
}
@RequestMapping(value = "/status/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "计划状态列表", notes = "计划状态列表")
public Map<String, String> getTaskRiskControlStatusEnum() {
Map<String, String> enumMap = Maps.newHashMap();
for (TaskRiskControlStatusEnum _enum : TaskRiskControlStatusEnum.values()) {
enumMap.put(_enum.getCode(), _enum.getName());
}
return enumMap;
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<TaskRiskControl> listPage(String pageNum, String pageSize, TaskRiskControl taskRiskControl) {
Page<TaskRiskControl> pageBean;
QueryWrapper<TaskRiskControl> taskRiskControlQueryWrapper = new QueryWrapper<>();
Class<? extends TaskRiskControl> aClass = taskRiskControl.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(taskRiskControl);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(taskRiskControl);
taskRiskControlQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(taskRiskControl);
taskRiskControlQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(taskRiskControl);
taskRiskControlQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(taskRiskControl);
taskRiskControlQueryWrapper.eq(name, fileValue);
}
}
} catch (Exception e) {
}
});
IPage<TaskRiskControl> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iTaskRiskControlService.page(pageBean, taskRiskControlQueryWrapper);
return page;
}
/**
* 新增风险管控任务表(江西电建)
*
* @return
*/
@RequestMapping(value = "/createTask", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增风险管控任务表", notes = "新增风险管控任务表")
public TaskRiskControlVo createTask(HttpServletRequest request, @RequestBody TaskRiskControlVo taskRiskControlVo) {
Person person = getPerson();
taskRiskControlVo.setOrgCode(person != null ? person.getOrgCode() : null);
taskRiskControlVo.setCreatePersonId(person.getId());
TaskRiskControlVo riskControlVo = iTaskRiskControlService.createTask(taskRiskControlVo);
iTaskRiskControlService.taskRiskNotice(riskControlVo, riskControlVo.getCompanyPersonId()); // 消息通知--给分包商主管发消息
return riskControlVo;
}
/**
* 新增风险管控任务表(分包商)
*
* @return
*/
@RequestMapping(value = "/createTaskByFbs", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增风险管控任务表", notes = "新增风险管控任务表")
public TaskRiskControlVo createTaskByFbs(HttpServletRequest request,
@RequestBody TaskRiskControlVo taskRiskControlVo) {
return iTaskRiskControlService.createTaskByFbs(taskRiskControlVo);
}
/**
* 下一步
*
* @return
*/
@RequestMapping(value = "/next", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增风险管控任务表", notes = "新增风险管控任务表")
public TaskRiskControlVo next(HttpServletRequest request, @RequestBody TaskRiskControlVo taskRiskControlVo) {
return iTaskRiskControlService.nextStage(taskRiskControlVo);
}
/**
* 上一步
*
* @return
*/
@RequestMapping(value = "/previous", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增风险管控任务表", notes = "新增风险管控任务表")
public TaskRiskControlVo previous(HttpServletRequest request, @RequestBody TaskRiskControlVo taskRiskControlVo) {
return iTaskRiskControlService.previousStage(taskRiskControlVo);
}
/**
* 做现场检查
*
* @return
*/
@RequestMapping(value = "/doCheck", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "检查", notes = "检查")
public TaskRiskControlVo doCheck(HttpServletRequest request, @RequestBody TaskRiskControlVo taskRiskControlVo) {
return iTaskRiskControlService.doCheck(taskRiskControlVo);
}
/**
* 做考试
*
* @return
*/
@RequestMapping(value = "/doExam", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "检查", notes = "检查")
public TaskRiskControlVo doExam(HttpServletRequest request, @RequestBody TaskRiskControlVo taskRiskControlVo,
boolean qualified) {
return iTaskRiskControlService.doExam(taskRiskControlVo, qualified);
}
/**
* 做知识
*
* @return
*/
@RequestMapping(value = "/doKnowledge", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "检查", notes = "检查")
public TaskRiskControlVo doKnowledge(HttpServletRequest request, @RequestBody TaskRiskControlVo taskRiskControlVo) {
Person person = getPerson();
return iTaskRiskControlService.doKnowledge(taskRiskControlVo);
}
/**
* 再次发起
*
* @return
*/
@RequestMapping(value = "/reCreate", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "检查", notes = "检查")
public TaskRiskControlVo reCommit(HttpServletRequest request, @RequestBody TaskRiskControlVo taskRiskControlVo) {
Person person = getPerson();
return iTaskRiskControlService.reCreate(taskRiskControlVo);
}
/**
* 再次发起
*
* @return
*/
@RequestMapping(value = "/reCreateBySec", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "检查", notes = "检查")
public TaskRiskControlVo reCreateBySec(HttpServletRequest request,
@RequestBody TaskRiskControlVo taskRiskControlVo) {
Person person = getPerson();
return iTaskRiskControlService.reCreateBySec(taskRiskControlVo);
}
/**
* 取消
*
* @return
*/
@RequestMapping(value = "/cancel", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "检查", notes = "检查")
public boolean cancel(HttpServletRequest request, @RequestBody TaskRiskControlVo taskRiskControlVo) {
return iTaskRiskControlService.cancel(taskRiskControlVo);
}
/**
* 获取我的风险预控列表
*
* @return
*/
@RequestMapping(value = "/myList", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取我的风险预控列表", notes = "获取我的风险预控列表")
public Page<TaskRiskControlVo> createTask(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") TaskRiskControlDto taskRiskControl, HttpServletResponse response) {
Person person = personService.getById(getPerson().getId());
// 分包商只看自己的----userId;江西电建查看项目部的----orgCode
if (person.getIsJxdj() == 0) {
//taskRiskControl.setOrgCode("");
taskRiskControl.setPersonId(person.getId());
} else {
taskRiskControl.setPersonId(person.getId());
taskRiskControl.setOrgCode(person.getOrgCode());
}
return iTaskRiskControlService.myListByPage(pageable, person.getId(), taskRiskControl);
}
/**
* 获取我的风险预控详情
*
* @return
*/
@RequestMapping(value = "/taskDetail", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取我的风险预控详情", notes = "获取我的风险预控详情")
public TaskRiskControlVo taskDetail(@ApiParam(value = "查询参数") Long id,Long taskPersonId) {
Person person = getPerson();
return iTaskRiskControlService.taskDetail(id, person.getId());
}
/**
* 获取我的风险预控详情
*
* @return
*/
@RequestMapping(value = "/taskDetailByTaskId", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取我的风险预控详情", notes = "获取我的风险预控详情")
public TaskRiskControlVo taskDetailByTaskId(@ApiParam(value = "查询参数") Long taskId,Long taskPersonId) {
//Person person = getPerson();
TaskRiskControl taskRiskControl = iTaskRiskControlService
.getOne(new LambdaQueryWrapper<TaskRiskControl>().eq(TaskRiskControl::getTaskId, taskId));
return iTaskRiskControlService.taskDetail(taskRiskControl.getId(), taskPersonId);
}
@ApiOperation("查询有风险管控任务数据的年")
@GetMapping("/year/list")
public List<String> getYearData(@RequestParam(required = false) String level) {
Person person = getPerson();
String orgCode = person.getOrgCode();
return iTaskRiskControlService.listYear(orgCode, level);
}
@ApiOperation("按照年分页查询,风险管控任务")
@GetMapping("/year/page/list")
public Page<TaskRiskControlAppVo> yearStatisticsPage(CommonPageable pageable,
@RequestParam(required = false) Integer level, @RequestParam(required = false) String name,
@RequestParam(required = false) String status, @RequestParam String beginDate,
@RequestParam String endDate) {
Person person = getPerson();
String orgCode = person.getOrgCode();
return iTaskRiskControlService.listTaskByYearPage(pageable, level, name, status, beginDate, endDate, orgCode);
}
@ApiOperation("按照等级统计风险管控任务")
@GetMapping("/level/statistics")
public Object statisticsByLevel(@RequestParam(required = false) String name,
@RequestParam(required = false) String status, @RequestParam(required = false) String beginDate,
@RequestParam(required = false) String endDate) {
Person person = getPerson();
String orgCode = person.getOrgCode();
Map<String, Object> param = new HashMap<>(5);
param.put("name", name);
param.put("status", status);
param.put("beginDate", beginDate);
param.put("endDate", endDate);
param.put("orgCode", orgCode);
return iTaskRiskControlService.statisticsByLevel(param);
}
@ApiOperation("进出风险区域")
@PostMapping("/region")
public Object inOutRiskRegion(@RequestParam Integer operate, @RequestParam Long taskPersonId,
@RequestParam Long taskRiskControlId) {
iTaskRiskControlService.entryOrExitRiskRegion(operate, taskPersonId, taskRiskControlId);
return true;
}
@ApiOperation(value = "风险作业任务人数统计", notes = "小程序使用")
@GetMapping("/person/{taskRiskControlId}/statistics")
public Object personStatistics(@PathVariable Long taskRiskControlId) {
return iTaskRiskControlService.personStatistics(taskRiskControlId);
}
@ApiOperation(value = "任务下人员列表", notes = "小程序使用")
@GetMapping("/person/{taskRiskControlId}/list")
public List<TaskWorkPersonVo> personListInTaskRisk(@PathVariable Long taskRiskControlId,
@RequestParam(required = false) Integer status) {
return iTaskRiskControlService.personListInTaskRisk(taskRiskControlId, status);
}
@ApiOperation(value = "任务阅读", notes = "任务阅读")
@PostMapping("/read")
public TaskRiskControlVo read(@RequestBody TaskRiskControlVo taskRiskControlVo) {
return iTaskRiskControlService.read(taskRiskControlVo);
}
@ApiOperation(value = "小程序首页-项目部-风险作业列表", notes = "小程序首页-项目部-风险作业列表")
@GetMapping("/home/list")
public List<TaskRiskControlVo> getListByConfig() {
Person person = getPerson();
return iTaskRiskControlService.listByConfig(person.getOrgCode());
}
}
package com.yeejoin.precontrol.controller;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
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.yeejoin.precontrol.common.entity.TaskRiskControlPrePerson;
import com.yeejoin.precontrol.common.service.ITaskRiskControlPrePersonService;
import com.yeejoin.precontrol.common.utils.NameUtils;
import com.yeejoin.precontrol.common.vo.TaskRiskControlPrePersonVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* 风险管控预选人员表
*
* @author duanwei
* @date 2021-01-28
*/
@RestController
@Api(tags = "风险管控预选人员表Api")
@RequestMapping(value = "/task-risk-control-pre-person", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class TaskRiskControlPrePersonController {
@Autowired
ITaskRiskControlPrePersonService iTaskRiskControlPrePersonService;
/**
* 文件服务器地址
*/
@Value("${fileserver.domain}")
String fileServerUrl;
/**
* 新增风险管控预选人员表
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增风险管控预选人员表", notes = "新增风险管控预选人员表")
public boolean saveTaskRiskControlPrePerson(HttpServletRequest request, @RequestBody TaskRiskControlPrePerson taskRiskControlPrePerson){
return iTaskRiskControlPrePersonService.save(taskRiskControlPrePerson);
}
/**
* 根据id删除
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id){
return iTaskRiskControlPrePersonService.removeById(id);
}
/**
* 修改风险管控预选人员表
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改风险管控预选人员表", notes = "修改风险管控预选人员表")
public boolean updateByIdTaskRiskControlPrePerson(HttpServletRequest request, @RequestBody TaskRiskControlPrePerson taskRiskControlPrePerson){
return iTaskRiskControlPrePersonService.updateById(taskRiskControlPrePerson);
}
/**
* 根据id查询
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public TaskRiskControlPrePerson selectById(HttpServletRequest request, @PathVariable Long id){
return iTaskRiskControlPrePersonService.getById(id);
}
/**
* 列表分页查询
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<TaskRiskControlPrePersonVo> listPage(String pageNum,String pageSize,
TaskRiskControlPrePerson taskRiskControlPrePerson){
Page<TaskRiskControlPrePerson> pageBean;
QueryWrapper<TaskRiskControlPrePerson> taskRiskControlPrePersonQueryWrapper = new QueryWrapper<>();
Class<? extends TaskRiskControlPrePerson> aClass = taskRiskControlPrePerson.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(taskRiskControlPrePerson);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(taskRiskControlPrePerson);
taskRiskControlPrePersonQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(taskRiskControlPrePerson);
taskRiskControlPrePersonQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(taskRiskControlPrePerson);
taskRiskControlPrePersonQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(taskRiskControlPrePerson);
taskRiskControlPrePersonQueryWrapper.eq(name, fileValue);
}
}
}catch (Exception e) {
}
});
// IPage<TaskRiskControlPrePerson> page;
// if (StringUtils.isBlank(pageNum) ||StringUtils.isBlank(pageSize)) {
// pageBean = new Page<>(0, Long.MAX_VALUE);
// }else{
// pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
// }
// page = iTaskRiskControlPrePersonService.page(pageBean, taskRiskControlPrePersonQueryWrapper);
List<TaskRiskControlPrePersonVo> list = iTaskRiskControlPrePersonService.listVo(taskRiskControlPrePerson);
IPage<TaskRiskControlPrePersonVo> page1 = new Page<>(0, Long.MAX_VALUE);
list.forEach(i->i.setHeadPhoto(fileServerUrl+i.getHeadPhoto()));
page1.setRecords(list);
return page1;
}
}
package com.yeejoin.precontrol.controller;
import java.util.Arrays;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
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.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.dto.TaskRiskControlTechDto;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.TaskPersonKnowledgeAttachment;
import com.yeejoin.precontrol.common.entity.TaskRiskControlTech;
import com.yeejoin.precontrol.common.service.IPersonService;
import com.yeejoin.precontrol.common.service.ITaskRiskControlTechService;
import com.yeejoin.precontrol.common.utils.NameUtils;
import com.yeejoin.precontrol.common.vo.TaskRiskControlTechVo;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
* 风险管控任务表
*
* @author duanwei
* @date 2021-11-01
*/
@RestController
@Api(tags = "技术交底任务表Api")
@RequestMapping(value = "/task-risk-control-tech", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class TaskRiskControlTechController extends BaseController {
@Autowired
ITaskRiskControlTechService iTaskRiskControlTechService;
@Autowired
IPersonService iPersonService;
/**
* 新增风险管控任务表
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增风险管控任务表", notes = "新增风险管控任务表")
public boolean saveTaskRiskControlTech(HttpServletRequest request,
@RequestBody TaskRiskControlTech taskRiskControlTech) {
return iTaskRiskControlTechService.save(taskRiskControlTech);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iTaskRiskControlTechService.removeById(id);
}
/**
* 修改风险管控任务表
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改风险管控任务表", notes = "修改风险管控任务表")
public boolean updateByIdTaskRiskControlTech(HttpServletRequest request,
@RequestBody TaskRiskControlTech taskRiskControlTech) {
return iTaskRiskControlTechService.updateById(taskRiskControlTech);
}
/**
* 根据id查询
*
* @param id
* @return2
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public TaskRiskControlTechVo selectById(HttpServletRequest request, @PathVariable Long id, Long taskPersonId) {
Person person = getPerson();
return iTaskRiskControlTechService.getDetailById(id, person.getId(), taskPersonId);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<TaskRiskControlTech> listPage(String pageNum, String pageSize,
TaskRiskControlTech taskRiskControlTech) {
Page<TaskRiskControlTech> pageBean;
QueryWrapper<TaskRiskControlTech> taskRiskControlTechQueryWrapper = new QueryWrapper<>();
Class<? extends TaskRiskControlTech> aClass = taskRiskControlTech.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(taskRiskControlTech);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(taskRiskControlTech);
taskRiskControlTechQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(taskRiskControlTech);
taskRiskControlTechQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(taskRiskControlTech);
taskRiskControlTechQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(taskRiskControlTech);
taskRiskControlTechQueryWrapper.eq(name, fileValue);
}
}
} catch (Exception e) {
}
});
IPage<TaskRiskControlTech> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iTaskRiskControlTechService.page(pageBean, taskRiskControlTechQueryWrapper);
return page;
}
/**
* 获取我的风险预控列表
*
* @return
*/
@RequestMapping(value = "/myList", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取我的风险预控列表", notes = "获取我的风险预控列表")
public Page<TaskRiskControlTechVo> createTask(@ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable,
@ApiParam(value = "查询参数") TaskRiskControlTechDto taskRiskControlTechDto, HttpServletResponse response) {
Person person = iPersonService.getById(getPerson().getId());
// 分包商只看自己的----userId;江西电建查看项目部的----orgCode
if (person.getIsJxdj() == 0) {
//taskRiskControl.setOrgCode("");
taskRiskControlTechDto.setPersonId(person.getId());
} else {
taskRiskControlTechDto.setPersonId(person.getId());
taskRiskControlTechDto.setOrgCode(person.getOrgCode());
}
return iTaskRiskControlTechService.myListByPage(pageable, person.getId(), taskRiskControlTechDto);
}
/**
* 新增风险管控任务表(江西电建)
*
* @return
*/
@RequestMapping(value = "/createTask", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增风险管控任务表", notes = "新增风险管控任务表")
public TaskRiskControlTechVo createTask(HttpServletRequest request,
@RequestBody TaskRiskControlTechVo taskRiskControlTechVo) {
Person person = getPerson();
taskRiskControlTechVo.setOrgCode(person != null ? person.getOrgCode() : null);
taskRiskControlTechVo.setCreatePersonId(person.getId());
TaskRiskControlTechVo riskControlVo = iTaskRiskControlTechService.createTask(taskRiskControlTechVo);
// iTaskRiskControlTechService.taskRiskNotice(riskControlVo,
// riskControlVo.getCompanyPersonId()); // 消息通知--给分包商主管发消息
return riskControlVo;
}
/**
* 新增风险管控任务表(分包商)
*
* @return
*/
@RequestMapping(value = "/createTaskByFbs", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增风险管控任务表", notes = "新增风险管控任务表")
public TaskRiskControlTechVo createTaskByFbs(HttpServletRequest request,
@RequestBody TaskRiskControlTechVo taskRiskControlTechVo) {
return iTaskRiskControlTechService.createTaskByFbs(taskRiskControlTechVo);
}
/**
* 下一步
*
* @return
*/
@RequestMapping(value = "/next", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增风险管控任务表", notes = "新增风险管控任务表")
public TaskRiskControlTechVo next(HttpServletRequest request,
@RequestBody TaskRiskControlTechVo taskRiskControlTechVo) {
return iTaskRiskControlTechService.nextStage(taskRiskControlTechVo);
}
/**
* 阅读文件
*
* @return
*/
@RequestMapping(value = "/doDocument", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "检查", notes = "检查")
public TaskRiskControlTechVo doDocument(HttpServletRequest request,
@RequestBody TaskRiskControlTechVo taskRiskControlTechVo) {
return iTaskRiskControlTechService.doDocument(taskRiskControlTechVo);
}
/**
* 阅读文件
*
* @return
*/
@RequestMapping(value = "/doDocumentAttach", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "检查", notes = "检查")
public TaskRiskControlTechVo doDocumentAttach(HttpServletRequest request,
@RequestBody TaskPersonKnowledgeAttachment attachment) {
return iTaskRiskControlTechService.doDocumentAttach(attachment.getId());
}
/**
* 确认任务
*
* @return
*/
@RequestMapping(value = "/confirm", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "检查", notes = "检查")
public TaskRiskControlTechVo confirm(HttpServletRequest request,
@RequestBody TaskRiskControlTechVo taskRiskControlTechVo) {
Person person = getPerson();
return iTaskRiskControlTechService.confirm(taskRiskControlTechVo);
}
/**
* 施工方案查询
*
* @return
*/
@RequestMapping(value = "/construct-list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "POST", value = "检查", notes = "检查")
public Page<TaskRiskControlTechVo> constructList(CommonPageableDto pageable,
TaskRiskControlTechDto taskRiskControlTechDto) {
Person person = getPerson();
taskRiskControlTechDto.setPersonId(person!=null?person.getId():null);
taskRiskControlTechDto.setIsJxdj(person.getIsJxdj());
return iTaskRiskControlTechService.constructList(pageable,taskRiskControlTechDto);
}
}
package com.yeejoin.precontrol.controller;
import java.text.ParseException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.yeejoin.precontrol.common.service.IPersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.dto.TaskPersonDto;
import com.yeejoin.precontrol.common.dto.TaskSalaryConfirmDto;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.Task;
import com.yeejoin.precontrol.common.entity.TaskPerson;
import com.yeejoin.precontrol.common.entity.TaskSalaryConfirm;
import com.yeejoin.precontrol.common.enums.StatusEnum;
import com.yeejoin.precontrol.common.exception.BaseException;
import com.yeejoin.precontrol.common.param.PersonParam;
import com.yeejoin.precontrol.common.service.ITaskPersonService;
import com.yeejoin.precontrol.common.service.ITaskSalaryConfirmService;
import com.yeejoin.precontrol.common.vo.PersonVo;
import com.yeejoin.precontrol.common.vo.TaskSalaryConfirmOneVo;
import com.yeejoin.precontrol.common.vo.TaskSalaryConfirmVo;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
* 薪资确认任务表
*
* @author duanwei
* @date 2020-12-08
*/
@RestController
@Api(tags = "薪资确认任务表Api")
@RequestMapping(value = "/task-salary-confirm", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class TaskSalaryConfirmController extends BaseController {
@Autowired
ITaskSalaryConfirmService iTaskSalaryConfirmService;
@Autowired
ITaskPersonService iTaskPersonService;
@Autowired
IPersonService personService;
/**
* 新增薪资确认任务表
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增薪资确认任务表", notes = "新增薪资确认任务表")
public Task saveTaskSalaryConfirm(HttpServletRequest request,
@RequestBody TaskSalaryConfirmDto taskSalaryConfirmDto) throws ParseException {
Person person = getPerson();
return iTaskSalaryConfirmService.save(taskSalaryConfirmDto, person);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iTaskSalaryConfirmService.removeById(id);
}
/**
* 修改薪资确认任务表
*
* @return
*/
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改薪资确认任务表", notes = "修改薪资确认任务表")
public boolean updateByIdTaskSalaryConfirm(HttpServletRequest request,
@RequestBody TaskSalaryConfirm taskSalaryConfirm) {
return iTaskSalaryConfirmService.updateById(taskSalaryConfirm);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public TaskSalaryConfirmVo selectById(HttpServletRequest request, @PathVariable Long id) {
return iTaskSalaryConfirmService.queryById(id);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public Object listPage(CommonPageableDto pageable, TaskSalaryConfirmDto taskSalaryConfirmDto) {
IPage<TaskSalaryConfirmVo> iPage = iTaskSalaryConfirmService.pageInfo(pageable, taskSalaryConfirmDto);
return iPage;
}
/**
* 确认薪资
*
* @return
*/
@RequestMapping(value = "/confirm", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "确认薪资", notes = "确认薪资")
public boolean confirm(@RequestBody TaskPersonDto taskPersonDto) {
return iTaskSalaryConfirmService.confirm(taskPersonDto);
}
/**
* 薪资确认我的待办
*
* @return
*/
@RequestMapping(value = "/todo", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "我的待办列表分页查询", notes = "我的待办列表分页查询")
public Object todo(CommonPageableDto pageable, TaskSalaryConfirmOneVo taskSalaryConfirmOneVo) {
Person person = personService.getById(getPerson().getId());
//分包商只看自己的----userId;江西电建查看项目部的----orgCode
if (person.getIsJxdj() == 0) {
taskSalaryConfirmOneVo.setPersonId(person.getId());
taskSalaryConfirmOneVo.setOrgCode("");
}else {
taskSalaryConfirmOneVo.setOrgCode(person.getOrgCode());
}
return iTaskSalaryConfirmService.todo(pageable, taskSalaryConfirmOneVo);
}
/**
* 薪资确认我的待办详情
*
* @return
*/
@RequestMapping(value = "/todo/{taskPersonId}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "我的待办详情查询", notes = "我的待办详情查询")
public Object todo(@PathVariable long taskPersonId) {
Long personId = getUserInfo().getSequenceNbr();
return iTaskSalaryConfirmService.todoDetail(taskPersonId,personId);
}
/**
* 薪资确认个人重新修改
*
* @return
*/
@RequestMapping(value = "/person/salary-modify", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "薪资确认个人重新修改", notes = "薪资确认个人重新修改")
public Object salaryModify(TaskPerson taskPerson) {
taskPerson.setReadStatus(StatusEnum.UNFINISHED.getValue());
return iTaskPersonService.updateById(taskPerson);
}
/**
* 薪资确认人员导入
*
* @return
* @throws Exception payAllCount
*/
@RequestMapping(value = "/person/import", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "薪资确认人员导入", notes = "薪资确认人员导入")
public Object personImport(
@ApiParam(value = "导入数据文件", required = true) @RequestBody(required = true) MultipartFile file)
throws Exception {
String fileName = file.getOriginalFilename();
if (!fileName.endsWith(".xls")) {
throw new BaseException("文件格式错误");
}
return iTaskSalaryConfirmService.personImport(file);
}
/**
* 薪资确认已发起的人员
*
* @return
* @throws Exception payAllCount
*/
@RequestMapping(value = "/{id}/person", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "薪资确认已发起的人员", notes = "薪资确认已发起的人员")
public Object persons(CommonPageableDto pageable, PersonParam personParam, @PathVariable("id") Long id) {
IPage<PersonVo> page = iTaskSalaryConfirmService.persons(id, pageable, personParam);
return page;
}
/**
* 薪资确认重新发起
*
* @return
* @throws Exception payAllCount
*/
@RequestMapping(value = "/resend", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "薪资确认重新发起", notes = "薪资确认重新发起")
public boolean resend(@RequestBody TaskSalaryConfirmOneVo salaryConfirmOneVo) {
return iTaskSalaryConfirmService.resend(salaryConfirmOneVo);
}
/**
* 薪资人数统计
*
* @return
*/
@RequestMapping(value = "/statistics/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "薪资人数统计", notes = "薪资人数统计")
public Object statistics(@PathVariable("id") Long id) {
return iTaskSalaryConfirmService.statistics(id);
}
/**
* 获取已发放比例
*/
@RequestMapping(value = "/paidRatio", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "薪资人数统计", notes = "薪资人数统计")
public Object statistics(Long projectId, Long companyId) {
Map<String, Integer> map = new HashMap<>();
map.put("ratio", iTaskSalaryConfirmService.paidRatio(projectId, companyId));
return map;
}
/**
* 是否有未阅读消息
*/
@RequestMapping(value = "/hasfirstRead", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "是否有未阅读消息", notes = "是否有未阅读消息")
public Object hasfirstRead() {
Person person = getPerson();
return iTaskSalaryConfirmService.hasFirstRead(person.getId());
}
/**
* 阅读消息
*/
@RequestMapping(value = "/dofirstRead", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = " 阅读消息", notes = " 阅读消息")
public Object dofirstRead(@RequestBody Long id) {
return iTaskSalaryConfirmService.doFirstRead(id);
}
}
package com.yeejoin.precontrol.controller;
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.yeejoin.precontrol.common.entity.UserEvaluationLog;
import com.yeejoin.precontrol.common.service.IUserEvaluationLogService;
import com.yeejoin.precontrol.common.utils.NameUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.apache.sis.util.collection.BackingStoreException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
/**
* 用户评价记录表
*
* @author tb
* @date 2021-01-28
*/
@RestController
@Api(tags = "用户评价记录表Api")
@RequestMapping(value = "/user-evaluation-log", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class UserEvaluationLogController {
@Autowired
IUserEvaluationLogService iUserEvaluationLogService;
/**
* 新增用户评价记录表
*
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增用户评价记录表", notes = "新增用户评价记录表")
public boolean saveUserEvaluationLog(HttpServletRequest request,
@RequestBody List<UserEvaluationLog> userEvaluationLogs) {
Optional.ofNullable(userEvaluationLogs).orElseThrow(() -> new BadRequest("评价不能为空")).forEach(log -> {
Optional.ofNullable(log.getEvaluationUserId()).orElseThrow(() -> new BadRequest("评价人不能为空"));
Optional.ofNullable(log.getPersonId()).orElseThrow(() -> new BadRequest("被评价人不能为空"));
Optional.ofNullable(log.getRate()).orElseThrow(() -> new BadRequest("评分不能为空"));
});
return iUserEvaluationLogService.saveBatch(userEvaluationLogs);
}
/**
* 根据id删除
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除")
public boolean deleteById(HttpServletRequest request, @PathVariable Long id) {
return iUserEvaluationLogService.removeById(id);
}
/**
* 根据被评价人id查询列表分页
*
* @return
*/
@RequestMapping(value = "/{personId}/page/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据被评价人id查询列表分页", notes = "根据被评价人id查询列表分页")
public IPage<UserEvaluationLog> listByPersonId(String pageNum, String pageSize, @PathVariable String personId) {
return iUserEvaluationLogService.listByPersonId(pageNum, pageSize, personId);
}
/**
* 根据被评价人id查询列表分页
*
* @return
*/
@RequestMapping(value = "/{taskId}/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据被任务id查询列表分页", notes = "根据被任务id查询列表分页")
public List<UserEvaluationLog> listByTaskId(@PathVariable String taskId) {
return iUserEvaluationLogService.listByTaskId(taskId);
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public IPage<UserEvaluationLog> listPage(String pageNum, String pageSize,
UserEvaluationLog userEvaluationLog) {
Page<UserEvaluationLog> pageBean;
QueryWrapper<UserEvaluationLog> userEvaluationLogQueryWrapper = new QueryWrapper<>();
Class<? extends UserEvaluationLog> aClass = userEvaluationLog.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(userEvaluationLog);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(userEvaluationLog);
userEvaluationLogQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(userEvaluationLog);
userEvaluationLogQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
String fileValue = (String) field.get(userEvaluationLog);
userEvaluationLogQueryWrapper.eq(name, fileValue);
} else {
String fileValue = (String) field.get(userEvaluationLog);
userEvaluationLogQueryWrapper.eq(name, fileValue);
}
}
} catch (Exception e) {
}
});
IPage<UserEvaluationLog> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iUserEvaluationLogService.page(pageBean, userEvaluationLogQueryWrapper);
return page;
}
}
\ No newline at end of file
package com.yeejoin.precontrol.controller;
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 com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.service.IVideoBlockService;
import com.yeejoin.precontrol.common.vo.VideoBlockVo;
import com.yeejoin.precontrol.common.ws.WebSocketVideoBlock;
import com.yeejoin.precontrol.controller.publics.BaseController;
/**
* @Author: songLei
* @Description:
* @Date: 2021/10/15 10:08
* @Version: 1.0
*/
@RestController
@RequestMapping("/videoBlock")
public class VideoBlockController extends BaseController {
@Autowired
private IVideoBlockService videoBlockService;
/**
* @Description 记录用户浏览
* @Return Boolean
* @Date 2021/10/15 15:05
*/
@GetMapping("/browseVideo")
public Boolean browseVideo() {
AgencyUserModel model = getUserInfo();
return videoBlockService.browseVideo(model);
}
/**
* @Description 离开浏览
* @Return Boolean
* @Date 2021/10/15 15:28
*/
@GetMapping("/leaveBrowse")
public Boolean leaveBrowse() {
AgencyUserModel model = getUserInfo();
return videoBlockService.leaveBrowse(model);
}
/**
* @Description 列表
* @Return Boolean
* @Date 2021/10/15 15:28
*/
@GetMapping("/getPage")
public IPage<VideoBlockVo> getPage(CommonPageableDto pageable, VideoBlockVo vo) {
Person person =getPerson();
Page page = new Page();
if (pageable.getPageNumber() != null) {
page.setCurrent(pageable.getPageNumber());
}
if (pageable.getPageSize() != null) {
page.setSize(pageable.getPageSize());
}
vo.setOrgCode(person!=null?person.getOrgCode():null);
return videoBlockService.getPage(page, vo);
}
@PostMapping("/stop")
public boolean stop(@RequestBody VideoBlockVo vo) {
WebSocketVideoBlock.stop(vo.getPersonId());
return true;
}
}
package com.yeejoin.precontrol.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.base.Joiner;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.precontrol.common.dto.CommonPageableDto;
import com.yeejoin.precontrol.common.entity.*;
import com.yeejoin.precontrol.common.enums.TaskPersonFileEnum;
import com.yeejoin.precontrol.common.enums.TaskPersonTypeEnum;
import com.yeejoin.precontrol.common.enums.TaskTypeEnum;
import com.yeejoin.precontrol.common.exception.BaseException;
import com.yeejoin.precontrol.common.service.*;
import com.yeejoin.precontrol.common.utils.StringUtil;
import com.yeejoin.precontrol.common.vo.visual.RiskJobItemInputVo;
import com.yeejoin.precontrol.common.vo.visual.WorkTicketVo;
import com.yeejoin.precontrol.controller.publics.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* 可视化作业活动Api
*
* @author duanwei
* @date 2020-11-16
*/
@RestController
@Api(tags = "可视化作业活动Api")
@RequestMapping(value = "/visual", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Slf4j
public class VisualizationController extends BaseController {
/**
* 任务服务
*/
@Autowired
ITaskService iTaskService;
/**
* 任务与附件关系服务
*/
@Autowired
ITaskPersonFileService iTaskPersonFileService;
@Autowired
IPersonAscriptionService iPersonAscriptionService;
@Autowired
ICompanyService iCompanyService;
/**
* 任务与人服务
*/
@Autowired
ITaskPersonService iTaskPersonService;
/**
* 三交三查服务
*/
@Autowired
ITaskPaycheckService iTaskPaycheckService;
/**
* 违章管理服务
*/
@Autowired
IBadManagementService iBadManagementService;
/**
* 人员服务
*/
@Autowired
IPersonService iPersonService;
/**
* 工程服务
*/
@Autowired
IProjectService iProjectService;
@Autowired
IHazardousWorkResultService iHazardousWorkResultService;
@Autowired
ITaskTechDocumentService iTaskTechDocumentService;
/**
* 三交三查可视化
*
* @return
*/
@RequestMapping(value = "/task", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public Object taskPayCheck(Long taskId) {
Task task = iTaskService.getById(taskId);
if (task.getType().equals(TaskTypeEnum.JOBDISCLOSURE.getValue())) {
return iTaskService.visualJobdisclosure(task);
}
if (task.getType().equals(TaskTypeEnum.TASKPAYCHECK.getValue())) {
return iTaskService.visualTaskPayCheck(task);
}
if (task.getType().equals(TaskTypeEnum.BAD.getValue())) {
return iTaskService.visualBad(task);
}
return null;
}
/**
* 违规管理内容
*
* @return
*/
@RequestMapping(value = "/badBody", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "违规管理内容", notes = "违规管理内容")
public Object badBody(Long taskId) {
BadManagement badManagement =
iBadManagementService.getOne(new LambdaQueryWrapper<BadManagement>().eq(BadManagement::getTaskId, taskId));
return badManagement.getBody();
}
/**
* 作业票
*
* @return
*/
@RequestMapping(value = "/workTicket", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "作业票", notes = "作业票")
public Object workTicket(Long taskId) {
WorkTicketVo workTicketVo = new WorkTicketVo();
TaskPaycheck taskPaycheck =
iTaskPaycheckService.getOne(new LambdaQueryWrapper<TaskPaycheck>().eq(TaskPaycheck::getTaskId, taskId));
if (taskPaycheck != null) {
Long workTicketId = taskPaycheck.getWorkTicketId();
String workTicketName = taskPaycheck.getWorkTicketName();
workTicketVo.setWorkTicketId(workTicketId);
workTicketVo.setWorkTicketName(workTicketName);
List<TaskPersonFile> taskPersonFileList =
iTaskPersonFileService.list(new LambdaQueryWrapper<TaskPersonFile>().eq(TaskPersonFile::getTaskId, taskId)
.eq(TaskPersonFile::getPersonType, TaskPersonFileEnum.JOBTICKET.getValue()));
if (StringUtil.isNotEmpty(taskPersonFileList)) {
List<String> collect = taskPersonFileList.stream().map(taskPersonFile -> taskPersonFile.getFilePath()).collect(Collectors.toList());
workTicketVo.setWorkTicketFile(collect);
}
}
return workTicketVo;
}
/**
* 风险作业与检查项
*
* @return
*/
@RequestMapping(value = "/riskJobItemInput", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "风险作业与检查项", notes = "风险作业与检查项")
public Object riskJobItemInput(Long taskId,
Long userId, @ApiParam(value = "分页条件 isAll=0 具体分页必传") CommonPageableDto pageable) {
if (pageable.getIsAll() == 1) {
pageable.setPageNumber(0);
pageable.setPageSize(Integer.MAX_VALUE);
}
Page<HazardousWorkResult> page = new Page<>(pageable.getPageNumber(), pageable.getPageSize());
TaskPaycheck taskPaycheck = iTaskPaycheckService.getOne(new LambdaQueryWrapper<TaskPaycheck>().eq(TaskPaycheck::getTaskId, taskId));
String riskType = taskPaycheck.getRiskType();
//判断任务和角色 如果是项目部安全员就返回项目部安全员检查项数据
TaskPerson taskPerson = iTaskPersonService.getOne(new LambdaQueryWrapper<TaskPerson>().eq(TaskPerson::getTaskId,
taskId).eq(TaskPerson::getPersonId, userId).notIn(TaskPerson::getType,
TaskPersonTypeEnum.CREATEPERSON.getValue()));
RiskJobItemInputVo riskJobItemInputVo = new RiskJobItemInputVo();
riskJobItemInputVo.setRiskType(riskType);
if (taskPerson != null) {
Long type = taskPerson.getType();
LambdaQueryWrapper<HazardousWorkResult> hazardousWorkResultLambdaQueryWrapper = new LambdaQueryWrapper<>();
hazardousWorkResultLambdaQueryWrapper.eq(HazardousWorkResult::getHazardousWorkId, taskPaycheck.getRiskTypeId());
hazardousWorkResultLambdaQueryWrapper.eq(HazardousWorkResult::getTaskId, taskId);
// 项目部安全员
if (type.equals(TaskPersonTypeEnum.PLATFORMSAFETYOFFICER.getValue())) {
hazardousWorkResultLambdaQueryWrapper.eq(HazardousWorkResult::getWeight, 1L);
} else if (type.equals(TaskPersonTypeEnum.SAFETYOFFICER.getValue())) {
hazardousWorkResultLambdaQueryWrapper.eq(HazardousWorkResult::getWeight, 0L);
}
IPage<HazardousWorkResult> hazardousWorkResultPage = iHazardousWorkResultService.page(page, hazardousWorkResultLambdaQueryWrapper);
riskJobItemInputVo.setItemInput(hazardousWorkResultPage);
}
return riskJobItemInputVo;
}
/**
* 交底文件
*
* @return
*/
@RequestMapping(value = "/jobFile", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "交底文件", notes = "交底文件")
public Object jobFile(Long taskId) {
return iTaskTechDocumentService.list(new LambdaQueryWrapper<TaskTechDocument>().eq(TaskTechDocument::getTaskId, taskId));
}
/**
* 公司结构
*
* @return
*/
@RequestMapping(value = "/businessStructure", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "公司结构", notes = "公司结构")
public Object businessStructure(Long taskId) {
setPlatFormAccess();
Task task = iTaskService.getById(taskId);
Long createPersonId = task.getCreatePersonId();
if (createPersonId == null) {
throw new BaseException("发起人不存在!");
}
PersonAscription personAscription =
iPersonAscriptionService.getOne(new LambdaQueryWrapper<PersonAscription>().eq(PersonAscription::getPersonId
, createPersonId));
String companyName = "";
String name = "";
if (personAscription != null) {
Long companyId = personAscription.getCompanyId();
Company company = iCompanyService.getById(companyId);
companyName = company.getName();
Long departmentId = personAscription.getDepartmentId();
FeignClientResult<Collection<DepartmentModel>> feignClientResult = Privilege.departmentClient.queryListByChild(departmentId);
Collection<DepartmentModel> result = feignClientResult.getResult();
if (StringUtil.isNotEmpty(result)) {
Collections.reverse((List<?>) result);
List<String> collect = result.stream().map(r -> r.getDepartmentName()).collect(Collectors.toList());
name = Joiner.on("-").join(collect);
}
}
Long type = task.getType();
String taskTypeName = TaskTypeEnum.getLabelByValue(type);
if (StringUtils.isNotEmpty(companyName) && StringUtils.isNotEmpty(name)) {
return companyName + ">" + name + ">" + taskTypeName;
}
if (StringUtils.isEmpty(companyName) && StringUtils.isNotEmpty(name)) {
return name + ">" + taskTypeName;
}
if (StringUtils.isEmpty(companyName) && StringUtils.isEmpty(name)) {
return taskTypeName;
}
return companyName + ">" + name + ">" + taskTypeName;
}
}
package com.yeejoin.precontrol.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.precontrol.common.entity.WorkTicket;
import com.yeejoin.precontrol.common.service.IWorkTicketService;
import com.yeejoin.precontrol.common.utils.RedisUtil;
import com.yeejoin.precontrol.common.vo.DistrictVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
/**
* 危险作业字典表
*
* @author duanwei
* @date 2020-08-26
*/
@RestController
@Api(tags = "危险作业字典表Api")
@RequestMapping(value = "/work-ticket", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class WorkTicketController {
/**
* 缓存服务
*/
@Autowired
RedisUtil redisUtil;
/**
* 危险作业服务
*/
@Autowired
IWorkTicketService iWorkTicketService;
/**
* 根据id查询
*
* @param id
* @return
*/
@RequestMapping(value = "/p/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public Object selectByParentId(HttpServletRequest request, @PathVariable Long id) {
List<WorkTicket> list = iWorkTicketService.list(new LambdaQueryWrapper<WorkTicket>().eq(WorkTicket::getPid, id));
return list;
}
/**
* 列表分页查询
*
* @return
*/
@RequestMapping(value = "/tree", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表tree查询", notes = "列表tree查询")
public Object tree() {
if (redisUtil.hasKey("workTicket")) {
return redisUtil.get("workTicket");
}
List<WorkTicket> list = iWorkTicketService.list();
List<DistrictVo> districtVos = new ArrayList<>();
list.forEach(d -> {
DistrictVo districtVo = new DistrictVo();
districtVo.setLabel(d.getExtName());
districtVo.setValue(String.valueOf(d.getId()));
districtVo.setId(d.getId());
districtVo.setPid(d.getPid());
districtVos.add(districtVo);
});
List<DistrictVo> menuTreeList = getMenuTreeList(0L, districtVos);
redisUtil.set("workTicket", menuTreeList, 3600);
return menuTreeList;
}
/**
* 递归循环
*
* @param pid
* @param list
* @return
*/
private List<DistrictVo> getMenuTreeList(Long pid, List<DistrictVo> list) {
List<DistrictVo> childrenList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
DistrictVo districtVo = list.get(i);
if (districtVo.getPid().equals(pid)) {
districtVo.setChildren(getMenuTreeList(districtVo.getId(), list));
childrenList.add(districtVo);
}
}
return childrenList;
}
}
package com.yeejoin.precontrol.controller.hk;
import com.yeejoin.precontrol.common.entity.hk.model.dto.HKRequestDto;
import com.yeejoin.precontrol.common.service.hk.HkPlatFormService;
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;
/**
* @Author: songLei
* @Description: 海康平台前端控制器
* @Date: 2021/4/29 11:40
* @Version: 1.0
*/
@RestController
@RequestMapping("/hkPlatForm")
public class HkPlatFormController {
@Autowired
private HkPlatFormService hkPlatFormService;
/**
* @Author songLei
* @Version 1.0
* @Description 根据区域编号获取下级监控点列表
* 根据指定的区域编号获取该区域下的监控点列表信息,返回结果分页展示。
* 注:返回的监控点不包括下级区域的。
* @Date 2021年4月30日10:20:11
*/
@GetMapping("/monitoringPointChildren")
public Object getMonitoringPointChildren(HKRequestDto dto){
return hkPlatFormService.getMonitoringPointChildren(dto);
}
/**
* @Author songLei
* @Version 1.0
* @Description 获取监控点预览取流URL
* @Date 2021/4/29 11:58
*/
@GetMapping("/monitoringPointPreviewURL")
public Object getMonitoringPointPreviewURL(HKRequestDto dto){
return hkPlatFormService.getMonitoringPointPreviewURL(dto);
}
/**
* @Author songLei
* @Version 1.0
* @Description 分页获取监控点资源
* 获取监控点列表接口可用来全量同步监控点信息,返回结果分页展示。
* @Date 2021年4月30日10:06:42
*/
@GetMapping("/getMonitoringPointPage")
public Object getMonitoringPointPage(HKRequestDto dto) {
return hkPlatFormService.getMonitoringPointPage(dto);
}
/**
* @Author songLei
* @Version 1.0
* @Description 获取根区域信息
* @Date 2021年9月15日17:26:13
*/
@GetMapping("/getRootZone")
public Object getRootZone() {
return hkPlatFormService.getRootZone();
}
/**
* @Author songLei
* @Version 1.0
* @Description 分页获取区域列表
* @Date 2021年9月15日17:26:13
*/
@GetMapping("/getRegions")
public Object getRegions (HKRequestDto dto){
dto.setPageNo(1);
dto.setPageSize(1000);
return hkPlatFormService.getRegions(dto);
}
}
package com.yeejoin.precontrol.controller.hk;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.yeejoin.precontrol.common.entity.Project;
import com.yeejoin.precontrol.common.entity.ProjectCamera;
import com.yeejoin.precontrol.common.entity.ProjectDevice;
import com.yeejoin.precontrol.common.entity.hk.model.dto.HKRequestDto;
import com.yeejoin.precontrol.common.entity.hk.model.vo.VideoTreeVo;
import com.yeejoin.precontrol.common.entity.hk.model.vo.VideoVo;
import com.yeejoin.precontrol.common.service.IProjectCameraService;
import com.yeejoin.precontrol.common.service.IProjectDeviceService;
import com.yeejoin.precontrol.common.service.IProjectService;
import com.yeejoin.precontrol.common.service.hk.HkPlatFormService;
import com.yeejoin.precontrol.common.utils.PlatformUtils;
import com.yeejoin.precontrol.common.vo.hik.HKResult;
import com.yeejoin.precontrol.common.vo.hik.Online;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
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 java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Author: songLei
* @Description: 视频监控控制器
* @Date: 2021/5/10 9:19
* @Version: 1.0
*/
@RequestMapping("/videoSurveillance")
@RestController
public class VideoSurveillanceController {
@Autowired
private IProjectService projectService;
@Autowired
private HkPlatFormService hkPlatFormService;
@Autowired
PlatformUtils platformUtils;
@Autowired
private IProjectCameraService projectCameraService;
@GetMapping("/projectIPage")
public IPage<Project> projectIPage(Page page, String name) {
String orgCode = platformUtils.getOrgCode();
LambdaQueryWrapper<Project> wapper = new QueryWrapper<Project>().lambda().isNotNull(Project::getProjectRegion)
.like(Project::getName, name).orderByAsc(Project::getName);
if (orgCode != null) {
wapper.likeRight(Project::getOrgCode, orgCode);
}
return projectService.page(page, wapper);
}
@GetMapping("/getTree")
public Object getTree(Boolean isOnLine, Long projectId) {
String orgCode = platformUtils.getOrgCode();
LambdaQueryWrapper<Project> warpper;
if (StringUtils.isBlank(orgCode)) {
warpper = new QueryWrapper<Project>().lambda().isNotNull(Project::getProjectRegion)
.orderByAsc(Project::getName);
} else {
warpper = new QueryWrapper<Project>().lambda().likeRight(Project::getOrgCode, orgCode)
.isNotNull(Project::getProjectRegion).orderByAsc(Project::getName);
}
if (!StringUtils.isEmpty(orgCode)) {
warpper.like(Project::getOrgCode, orgCode);
}
if (projectId != null) {
warpper.like(Project::getId, projectId);
}
List<Project> projects = projectService.list(warpper);
List<VideoTreeVo> treeVoList = new ArrayList<>();
VideoTreeVo vo = new VideoTreeVo();
vo.setType("-1");
vo.setCode("0");
vo.setId(0l);
vo.setName("项目列表");
List<VideoTreeVo> treeVos = new ArrayList<>();
if (CollectionUtils.isNotEmpty(projects)) {
projects.stream().forEach(item -> {
VideoTreeVo treeVo = new VideoTreeVo();
treeVo.setName(item.getName());
treeVo.setCode(item.getProjectNum());
treeVo.setId(item.getId());
treeVo.setParentId("-1");
treeVo.setType("1");
List<ProjectCamera> projectDevices = projectCameraService.list(new QueryWrapper<ProjectCamera>()
.lambda().eq(ProjectCamera::getRegionIndexCode, item.getProjectRegion())
.orderByAsc(ProjectCamera::getChannelNo));
HKRequestDto dtoV = new HKRequestDto();
dtoV.setPageNo(1);
dtoV.setPageSize(1000);
dtoV.setRegionIndexCode(item.getProjectRegion());
List<HKResult> hkResults = (List<HKResult>) hkPlatFormService.getMonitoringPointChildren(dtoV);
List<String> indexCodes = new ArrayList<>();
projectDevices.stream().forEach(pc -> {
pc.setCameraName(
hkResults.stream().filter(y -> y.getCameraIndexCode().equals(pc.getCameraIndexCode()))
.findFirst().get().getCameraName());
indexCodes.add(pc.getCameraIndexCode());
});
HKRequestDto dto = new HKRequestDto();
dto.setPageNo(1);
dto.setPageSize(1000);
dto.setIndexCodes(indexCodes);
List<Online> onlines = hkPlatFormService.getIsOnline(dto);
List<VideoTreeVo> treeVosChildren = new ArrayList<>();
if (CollectionUtils.isNotEmpty(projectDevices)) {
projectDevices.stream().forEach(O -> {
VideoTreeVo tree = new VideoTreeVo();
tree.setName(O.getCameraName());
tree.setCode(O.getCameraIndexCode());
tree.setId(O.getId());
tree.setParentId(item.getId().toString());
tree.setType("2");
Integer on = onlines.stream().filter(x -> x.getIndexCode().equals(O.getCameraIndexCode()))
.findFirst().get().getOnline();
tree.setOnline(on);
if (isOnLine && 1 != tree.getOnline()) {
} else {
treeVosChildren.add(tree);
}
});
}
treeVo.setChildren(treeVosChildren);
treeVos.add(treeVo);
});
vo.setChildren(treeVos);
treeVoList.add(vo);
}
return treeVoList;
}
@GetMapping("/videoPage")
public IPage<VideoVo> videoPage(Page page, VideoTreeVo vo) {
String orgCode = platformUtils.getOrgCode();
List<Project> projects = projectService.list(
new QueryWrapper<Project>().lambda().eq(StringUtils.isNotBlank(orgCode), Project::getOrgCode, orgCode)
.isNotNull(Project::getProjectRegion));
String projectRegion = projects.stream().filter(a -> StringUtils.isNotBlank(a.getProjectRegion())).findFirst()
.get().getProjectRegion();
IPage<VideoVo> videoVoIPage = new Page<>();
IPage<ProjectCamera> cameraIPage;
if (StringUtils.isNotBlank(vo.getType())) {
if (vo.getType().equals("-1")) {
cameraIPage = projectCameraService.page(page, new QueryWrapper<ProjectCamera>().lambda()
.eq(ProjectCamera::getRegionIndexCode, projectRegion));
} else if (vo.getType().equals("1")) {
Project project = projectService.getById(vo.getId());
cameraIPage = projectCameraService.page(page, new QueryWrapper<ProjectCamera>().lambda()
.eq(ProjectCamera::getRegionIndexCode, project.getProjectRegion()));
} else {
cameraIPage = projectCameraService.page(page,
new QueryWrapper<ProjectCamera>().lambda().eq(ProjectCamera::getId, vo.getId()));
}
} else {
cameraIPage = projectCameraService.page(page,
new QueryWrapper<ProjectCamera>().lambda().eq(ProjectCamera::getRegionIndexCode, projectRegion));
}
if (CollectionUtils.isNotEmpty(cameraIPage.getRecords())) {
List<VideoVo> videoVos = new ArrayList<>();
Map<String, List<HKResult>> hkMap = new HashMap<>();
cameraIPage.getRecords().stream().forEach(item -> {
HKRequestDto dtoV = new HKRequestDto();
dtoV.setPageNo(1);
dtoV.setPageSize(1000);
dtoV.setRegionIndexCode(item.getRegionIndexCode());
List<HKResult> hkResults = hkMap.get(item.getRegionIndexCode());
if (hkResults == null) {
hkResults = (List<HKResult>) hkPlatFormService.getMonitoringPointChildren(dtoV);
hkMap.put(item.getRegionIndexCode(), hkResults);
}
HKRequestDto dto = new HKRequestDto();
dto.setCameraIndexCode(item.getCameraIndexCode());
Map<String, String> path = (Map<String, String>) hkPlatFormService.getMonitoringPointPreviewURL(dto);
String url = path.get("url");
VideoVo videoVo = new VideoVo();
videoVo.setCode(item.getCameraIndexCode());
videoVo.setId(item.getId());
videoVo.setName(hkResults.stream().filter(y -> y.getCameraIndexCode().equals(item.getCameraIndexCode()))
.findFirst().get().getCameraName());
// https://img.jinsom.cn/user_files/14871/publish/video/14794405_1619619953.mp4
videoVo.setUrl(url);
videoVo.setToken("true");
Integer on = hkResults.stream().filter(x -> x.getCameraIndexCode().equals(videoVo.getCode()))
.findFirst().get().getOnline();
if (vo.getOnline() == 1 && on != 1) {
} else {
videoVos.add(videoVo);
}
});
BeanUtils.copyProperties(cameraIPage, videoVoIPage);
videoVoIPage.setRecords(videoVos);
}
return videoVoIPage;
}
}
package com.yeejoin.precontrol.controller.publics;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.feign.privilege.model.IdPasswordAuthModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import com.yeejoin.precontrol.common.entity.Company;
import com.yeejoin.precontrol.common.entity.Person;
import com.yeejoin.precontrol.common.entity.PersonAscription;
import com.yeejoin.precontrol.common.exception.BaseException;
import com.yeejoin.precontrol.common.service.ICompanyService;
import com.yeejoin.precontrol.common.service.IPersonAscriptionService;
import com.yeejoin.precontrol.common.service.IPersonService;
import com.yeejoin.precontrol.common.utils.DesUtil;
import com.yeejoin.precontrol.common.utils.PlatformUtils;
import com.yeejoin.precontrol.common.utils.RedisUtil;
import com.yeejoin.precontrol.common.vo.ReginParams;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 基础控制器
*
* @author
*/
@ApiIgnore
@RestController("baseControllerPrecontrol")
@RequestMapping("/base")
//@Authorization
@Slf4j
public class BaseController {
/**
* 成功返回状态
*/
protected static final String SUCCESS = "SUCCESS";
/**
* 失败返回状态
*/
protected static final String FAILED = "FAILED";
/**
* 默认页大小
*/
protected static final int DEFAULT_PAGE_SIZE = 10;
@Autowired
protected HttpServletRequest request;
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Autowired
private IPersonService personService;
@Autowired
private IPersonAscriptionService ascriptionService;
@Autowired
private ICompanyService companyService;
@Autowired
private PlatformUtils platformUtils;
/**
* 产品号
*/
@Value("${admin.product}")
String product;
/**
* 产品密钥
*/
@Value("${admin.appkey}")
String appkey;
/**
* 账户
*/
@Value("${admin.user}")
String user;
/**
* 密码
*/
@Value("${admin.password}")
String password;
@Value("${amos.secret.key}")
String secretKey;
@Autowired
RedisUtil redisUtil;
protected String getToken() {
String authToken = request.getHeader("token");
if (authToken == null) {
authToken = request.getHeader("X-Access-Token");
}
return authToken;
}
protected String getProduct() {
String authToken = request.getHeader("product");
if (authToken == null) {
authToken = request.getParameter("product");
}
return authToken;
}
protected String getAppKey() {
String authToken = request.getHeader("appKey");
if (authToken == null) {
authToken = request.getParameter("appKey");
}
return authToken;
}
protected ReginParams getReginInfo() {
String token = getToken();
log.info("token-------------------->:" + getToken());
if (StringUtils.isEmpty(token)) {
throw new BaseException("token为空!");
}
AgencyUserModel userInfo = getUserInfo();
if (userInfo == null) {
log.info("请求平台用户为空");
return null;
}
Long userId = userInfo.getSequenceNbr();
if (redisUtil.hasKey(userId + "_" + getToken())) {
ReginParams reginParams = (ReginParams) redisUtil.get(userId + "_" + getToken());
log.info("user------------------>获取缓存用户信息成功");
return reginParams;
}
ReginParams reginParams = new ReginParams();
Person curPerson = personService
.getOne(new QueryWrapper<Person>().lambda().eq(Person::getId, userInfo.getSequenceNbr()));
if (curPerson == null) {
log.info("当前用户未绑定平台,请绑定平台");
return null;
}
reginParams.setPerson(curPerson);
// 获取用户角色
Map<Long, List<RoleModel>> orgRoles = userInfo.getOrgRoles();
if (orgRoles != null) {
Set<Long> keySet = orgRoles.keySet();
if (!keySet.isEmpty()) {
List<RoleModel> list = orgRoles.get(keySet.iterator().next());
RoleModel roleModel = list.get(0);
reginParams.setRole(roleModel);
}
}
// 查询用户所属信息
PersonAscription ascription = ascriptionService.getOne(
new QueryWrapper<PersonAscription>().lambda().eq(PersonAscription::getPersonId, curPerson.getId()));
if (ascription != null) {
Company company = companyService.getById(ascription.getCompanyId());
reginParams.setCompany(company);
}
redisUtil.set(userId + "_" + getToken(), reginParams, 60);
return reginParams;
}
/**
* <pre>
* 判断当前用户是否为分包商角色:true:分包商/false:江西电建
* </pre>
*
* @return
*/
protected boolean isFbsRole(ReginParams reginParams) {
if (reginParams != null) {
if (reginParams.getRole() != null) {
String roleType = reginParams.getRole().getRoleType();
if (roleType != null && "fbs".equals(roleType)) {
return true;
}
}
}
return false;
}
/**
* 当前登录用户信息
*/
protected AgencyUserModel getUserInfo() {
AgencyUserModel agencyUserModel = new AgencyUserModel();
String token = getToken();
if (token != null) {
String product = getProduct();
String appKey = getAppKey();
RequestContext.setToken(token);
RequestContext.setProduct(product);
RequestContext.setAppKey(appKey);
FeignClientResult<AgencyUserModel> feignClientResult;
try {
feignClientResult = Privilege.agencyUserClient.getme();
try {
agencyUserModel = feignClientResult.getResult();
if (agencyUserModel != null) {
log.info("请求平台用户数据,数据result返回:{}", agencyUserModel.toString());
}
} catch (Exception e) {
log.info("请求平台用户数据,对象转换错误 AgencyUserModel-result error:{}", e.toString());
// throw new BaseException("请求平台用户数据,数据转换错误!");
}
} catch (Exception e) {
if (e instanceof InnerInvokException) {
int httpStatus = ((InnerInvokException) e).getHttpStatus();
// throw new BaseException(httpStatus, "请求平台用户信息接口错误:" + e.getMessage());
}
// throw new BaseException("请求平台用户信息接口失败:" + e.getMessage());
log.error("请求平台用户信息接口失败");
}
} else {
log.error("token为空!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
return agencyUserModel;
}
protected String getUserId() {
String userId = null;
if (getUserInfo() != null) {
userId = getUserInfo().getUserId();
}
return userId;
}
protected Long getCompanyId(ReginParams reginParams) {
if (reginParams == null) {
return null;
}
if (reginParams.getCompany() != null) {
return reginParams.getCompany().getId();
}
return null;
}
/**
* 获取请求的cookies
*
* @return
*/
protected HashMap<String, String> getCookInfoMap() {
HashMap<String, String> map = new HashMap<String, String>();
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie ck : cookies) {
map.put(ck.getName(), ck.getValue());
}
}
return map;
}
/**
* 获取平台绑定的用户信息
*
* @return
*/
public Person getPerson() {
ReginParams reginInfo = getReginInfo();
Person person;
if (reginInfo != null) {
person = reginInfo.getPerson();
} else {
person = new Person();
}
return person;
}
public DepartmentModel getDepartment(Long departmentId) {
String token = getToken();
String product = getProduct();
String appKey = getAppKey();
RequestContext.setToken(token);
RequestContext.setProduct(product);
RequestContext.setAppKey(appKey);
FeignClientResult<DepartmentModel> departmentModel = Privilege.departmentClient.seleteOne(departmentId);
return departmentModel.getResult();
}
protected void buildRequestContext() {
String token = getToken();
String product = getProduct();
String appKey = getAppKey();
RequestContext.setToken(token);
RequestContext.setProduct(product);
RequestContext.setAppKey(appKey);
}
/**
* 设置平台接口调用权限
*/
public void setPlatFormAccess() {
platformUtils.setPlatFormAccess();
}
}
package com.yeejoin.precontrol.controller.publics;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
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.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Lists;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.precontrol.common.entity.CompanyDepartment;
import com.yeejoin.precontrol.common.entity.CompanyQualifications;
import com.yeejoin.precontrol.common.entity.Districts;
import com.yeejoin.precontrol.common.param.CompanyParam;
import com.yeejoin.precontrol.common.param.PersonParam;
import com.yeejoin.precontrol.common.service.ICompanyDepartmentService;
import com.yeejoin.precontrol.common.service.ICompanyQualificationService;
import com.yeejoin.precontrol.common.service.ICompanyService;
import com.yeejoin.precontrol.common.service.IDistrictsService;
import com.yeejoin.precontrol.common.service.IPersonService;
import com.yeejoin.precontrol.common.utils.CommonResponseUtil;
import com.yeejoin.precontrol.common.utils.FileHelper;
import com.yeejoin.precontrol.common.vo.CompanyExcelVo;
import com.yeejoin.precontrol.common.vo.PersonExcelVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/**
* @author DELL
*/
@RestController
@RequestMapping(value = "/api/excel")
@Api(tags = "导入导出excel")
public class ExcelController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(ExcelController.class);
@Autowired
private ICompanyService companyService;
@Autowired
private IPersonService personService;
@Autowired
ICompanyQualificationService iCompanyQualificationService;
@Autowired
ICompanyDepartmentService iCompanyDepartmentService;
@Autowired
IDistrictsService iDistrictsService;
@ApiOperation(value = "导入", notes = "导入")
@PostMapping(value = "/import/{modeName}")
public ResponseModel importFireEquipment(@RequestPart("file") MultipartFile file,
@ApiParam(value = "导入资源类型 (person:人员;company:公司)", required = true) @PathVariable("modeName") String modeName) {
String fileName = file.getOriginalFilename();
if (fileName.endsWith(".xls") || fileName.endsWith(".xlsx")) {
if ("person".equals(modeName)) {
List<PersonExcelVo> list = FileHelper.importExcel(file, 1, 1, PersonExcelVo.class);
personService.importExcel(list);
}
return CommonResponseUtil.success();
} else {
return CommonResponseUtil.failure("文件格式错误");
}
}
@ApiOperation(value = "导出数据", notes = "导出数据")
@PostMapping(value = "/export")
public void export(HttpServletResponse response,
@ApiParam(value = "data:导出数据;model:导出模板", required = true) @RequestParam String exportType,
@ApiParam(value = "person:人员;company:公司", required = true) @RequestParam String modelName,
@ApiParam(value = "查询条件") @RequestBody(required = false) Map<String, Object> paramsMap)
throws UnsupportedEncodingException {
String fileName = UUID.randomUUID().toString() + ".xls";
String title = "人员";
Class cls = null;
if ("person".equals(modelName)) {
title = "人员";
fileName = java.net.URLEncoder.encode("人员信息表", "UTF-8") + ".xls";
cls = PersonExcelVo.class;
} else if ("company".equals(modelName)) {
title = "分包商";
fileName = java.net.URLEncoder.encode("分包商信息表", "UTF-8") + ".xls";
cls = CompanyExcelVo.class;
}
if (cls != null) {
List<?> list = Lists.newArrayList();
if ("data".equals(exportType)) {
if ("person".equals(modelName)) {
PersonParam param = JSON.parseObject(JSON.toJSONString(paramsMap), PersonParam.class);
List<PersonExcelVo> exportExcel = personService.exportExcel(param);
// 过滤重复数据
List<PersonExcelVo> data = new ArrayList<>();
Map<Long, Object> idMap = new HashMap<>();
for (PersonExcelVo personExcelVo : exportExcel) {
if (!idMap.containsKey(personExcelVo.getId())) {
// // 用工来源所在地
// if (StringUtils.isNotBlank(personExcelVo.getEmployPlace())) {
// personExcelVo.setEmployPlaceName(getPlaceName(personExcelVo.getEmployPlace()));
// }
// // 籍贯
// if (StringUtils.isNotBlank(personExcelVo.getNativePlace())) {
// personExcelVo.setNativePlaceName(getPlaceName(personExcelVo.getNativePlace()));
// }
// 过滤无效合同
// if (personExcelVo.getUseful()==1) {
// personExcelVo.setNativePlaceName(getPlaceName(personExcelVo.getNativePlace()));
// }
if (personExcelVo.getDepartmentId() != null && personExcelVo.getDepartmentName() == null) {
CompanyDepartment companyDepartment = iCompanyDepartmentService
.getById(personExcelVo.getDepartmentId());
if (companyDepartment != null) {
personExcelVo.setDepartmentName(
companyDepartment != null ? companyDepartment.getName() : null);
} else {
DepartmentModel department = getDepartment(
Long.valueOf(personExcelVo.getDepartmentId()));
personExcelVo.setDepartmentName(
department != null ? department.getDepartmentName() : null);
}
}
// 保障期限
if (personExcelVo.getInsurePeriodStart() != null
&& personExcelVo.getInsurePeriodEnd() != null) {
personExcelVo.setInsurePeriod(personExcelVo.getInsurePeriodStart().replace("-", "/")
+ "~" + personExcelVo.getInsurePeriodEnd().replace("-", "/"));
}
data.add(personExcelVo);
idMap.put(personExcelVo.getId(), "");
}
}
list = data;
} else if ("company".equals(modelName)) {
CompanyParam param = JSON.parseObject(JSON.toJSONString(paramsMap), CompanyParam.class);
List<CompanyExcelVo> exportExcel = companyService.exportExcel(param);
// 资质表有多个数据 只取一个
for (CompanyExcelVo companyExcelVo : exportExcel) {
Long id = companyExcelVo.getId();
CompanyQualifications companyExceptions = iCompanyQualificationService
.getOne(new LambdaQueryWrapper<CompanyQualifications>()
.eq(CompanyQualifications::getCompanyId, id)
.eq(CompanyQualifications::getOrders, 0L));
if (companyExceptions != null) {
companyExcelVo.setCertificateName(companyExceptions.getCertificateName());
companyExcelVo.setCertificateNumber(companyExceptions.getCertificateNumber());
companyExcelVo.setExpireToDate(companyExceptions.getExpireToDate());
companyExcelVo.setIssuingAuthority(companyExceptions.getIssuingAuthority());
}
if (StringUtils.isNotBlank(companyExcelVo.getRegion())) {
String[] split = companyExcelVo.getRegion().split(",");
companyExcelVo.setRegionName(getPlaceName(companyExcelVo.getRegion()));
}
}
list = exportExcel;
}
}
FileHelper.exportExcel(list, title, title, cls, fileName, response);
}
}
private String getPlaceName(String key) {
String[] split = key.split(",");
if (split.length == 0) {
return "";
}
LinkedList<Long> collect = Arrays.stream(split).map(Long::parseLong)
.collect(Collectors.toCollection(LinkedList::new));
Collection<Districts> districts = iDistrictsService.listByIds(collect);
StringBuffer districtsName = new StringBuffer("");
districts.forEach(districts1 -> districtsName.append(districts1.getExtName()).append(","));
if (districtsName.length() > 0) {
districtsName.deleteCharAt(districtsName.length() - 1);
}
return districtsName.toString();
}
}
package com.yeejoin.precontrol.controller.publics;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.precontrol.common.exception.BaseException;
import com.yeejoin.precontrol.common.service.FileService;
import com.yeejoin.precontrol.common.utils.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
/**
* 上传下载管理
*
* @author zcx
*/
@RestController
@RequestMapping(value = "/file")
@Api(tags = "附件Api")
@Slf4j
public class FileController {
@Autowired
FileService fileService;
/**
* 上传路径
*/
@Value("${file.uploadUrl}")
private String fileUploadDir;
/**
* 文件读取参数
*/
@Value("${file.readUrl}")
private String readUrl;
/**
* 文件上传 只返回路径
*
* @param file
* @return
*/
@ApiOperation(httpMethod = "POST", value = "文件上传", notes = "文件上传")
@RequestMapping(value = "/uploadfile", method = RequestMethod.POST)
public Object uploadfile(@RequestPart("file") MultipartFile file) {
try {
Long fileSize = file.getSize() / 1024 / 1024;
String fileName = file.getOriginalFilename();
List<String> fileSuffix = new ArrayList<>();
fileSuffix.add(".png");
fileSuffix.add(".jpg");
fileSuffix.add(".bmp");
fileSuffix.add(".pdf");
fileSuffix.add(".doc");
AtomicReference<Boolean> fileSizeFlag = new AtomicReference<>(false);
fileSuffix.forEach(fs -> {
if (fileName.endsWith(fs)) {
fileSizeFlag.set(true);
}
});
// 如果是图片这一堆的 就直接抛出异常
if (fileSizeFlag.get()) {
if (fileSize > 10) {
throw new BaseException("上传文件过大[单个文件大小不得超过10M]");
}
}
return fileService.uploadfile(file);
} catch (Exception e) {
log.error(e.getMessage());
return CommonResponseUtil.failure(e.getMessage());
}
}
/**
* 文件上传 返回路径带名称
*
* @param file
* @return
*/
@ApiOperation(httpMethod = "POST", value = "文件上传", notes = "文件上传")
@RequestMapping(value = "/uploadFileReturnName", method = RequestMethod.POST)
public Object uploadFileReturnName(@RequestPart("file") MultipartFile file, String name, String personType) {
Map<String, String> map = new HashMap<>();
try {
Long fileSize = file.getSize() / 1024 / 1024;
String fileName = file.getOriginalFilename();
List<String> fileSuffix = new ArrayList<>();
fileSuffix.add(".png");
fileSuffix.add(".jpg");
fileSuffix.add(".bmp");
fileSuffix.add(".pdf");
fileSuffix.add(".doc");
AtomicReference<Boolean> fileSizeFlag = new AtomicReference<>(false);
fileSuffix.forEach(fs -> {
if (fileName.endsWith(fs)) {
fileSizeFlag.set(true);
}
});
// 如果是图片这一堆的 就直接抛出异常
if (fileSizeFlag.get()) {
if (fileSize > 10) {
throw new BaseException("上传文件过大[单个文件大小不得超过10M]");
}
}
String uploadfile = fileService.uploadfile(file);
map.put("filePath", uploadfile);
map.put("fileName", name);
map.put("personType", personType);
return map;
} catch (IOException e) {
throw new BaseException("上传文件失败");
}
}
/**
* 多文件上传
*
* @param files
* @return
*/
@ApiOperation(httpMethod = "POST", value = "多文件上传", notes = "多文件上传")
@RequestMapping(value = "/uploadfiles", method = RequestMethod.POST)
public Object uploadfile(@RequestPart("files") MultipartFile[] files) {
ArrayList<String> filePaths = new ArrayList<>();
try {
filePaths = fileService.uploadfiles(files);
} catch (Exception e) {
return CommonResponseUtil.failure("上传失败");
}
return filePaths;
}
/**
* @return
* @author: nihuanshan
* @date: 2018年11月30日 下午3:15:38
*/
@PostMapping(value = "/lookHtmlText", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "查看文件内容", notes = "查看文件内容")
public Object lookHtmlText(@ApiParam(value = "查看文件内容", required = true) @RequestBody String file) throws Exception {
JSONObject obj = JSONObject.parseObject(file);
String fileName = fileUploadDir;
if (obj.containsKey("file")) {
fileName += obj.getString("file");
}
File fi = new File(fileName);
if (!fi.exists()) {
return CommonResponseUtil.success("访问的文件不存在!", "查询成功");
}
if (fileName.endsWith(".pdf")) {
String data = obj.getString("file");
return CommonResponseUtil.success(data, "查询成功");
} else if (fileName.endsWith(".doc") || fileName.endsWith(".docx")) {
String htmlFileName = fileName.substring(0, fileName.indexOf(".")) + ".html";
File htmlFile = new File(htmlFileName);
WordConverterUtils.wordToHtml(fileName, htmlFileName, readUrl);
FileInputStream fis = new FileInputStream(htmlFile);
// "gb2312"
String data = IOUtils.toString(fis, "utf-8");
fis.close();
return CommonResponseUtil.success(data, "查询成功");
} else {
return CommonResponseUtil.success("访问的文件不存在!", "查询成功");
}
}
/**
* 查看文档(加导航栏)
*
* @param file
* @return
* @throws Exception
*/
@PostMapping(value = "/lookHtmlTextNav", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "查看文件内容(加导航栏)", notes = "查看文件内容(加导航栏)")
public ResponseModel lookHtmlTextNav(@ApiParam(value = "查看文件内容(加导航栏)", required = true) @RequestBody String file) {
JSONObject obj = JSONObject.parseObject(file);
String fileName = fileUploadDir;
if (obj.containsKey("file")) {
fileName += obj.getString("file");
}
File fi = new File(fileName);
if (!fi.exists()) {
return CommonResponseUtil.success("访问的文件不存在!", "查询成功");
}
if (fileName.endsWith(".doc") || fileName.endsWith(".docx")) {
String htmlFileName = fileName.substring(0, fileName.lastIndexOf(".")) + ".html";
File htmlFile = new File(htmlFileName);
String data = WordConverterUtils.wordToHtmlString(fileName, readUrl);
Map<String, Object> processData = null;
if (fileName.endsWith(".doc")) {
processData = DocUtil.processDoc(data);
} else {
processData = DocUtil.processDocx(data);
}
String htmlContent = (String) processData.get("html");
try {
Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(htmlFileName), "UTF-8"));
writer.write(htmlContent);
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
String filePath = obj.getString("file");
processData.put("html", "/" + filePath.substring(0, filePath.lastIndexOf(".")) + ".html");
return CommonResponseUtil.success(processData, "查询成功");
}
if (fileName.endsWith(".pdf")) {
Map<String, Object> processData = new HashMap<String, Object>();
MyNode node = PdfUtil.getPdfNavs(fileName);
processData.put("nodes", node.getChildren());
String filePath = obj.getString("file");
processData.put("html", "/" + filePath.substring(0, filePath.lastIndexOf(".")) + ".pdf");
return CommonResponseUtil.success(processData, "查询成功");
} else {
return CommonResponseUtil.success("文件类型不为doc/docx", "查询成功");
}
}
/**
* 获取文件服务器地址
*
* @param files
* @return
*/
@ApiOperation(httpMethod = "GET", value = "获取文件服务器地址", notes = "获取文件服务器地址")
@RequestMapping(value = "/domain", method = RequestMethod.GET)
public Object uploadfile() {
return fileService.getDomain();
}
}
<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-data-jpa/2.3.11.RELEASE/spring-boot-starter-data-jpa-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/2.3.11.RELEASE/spring-boot-starter-aop-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/5.2.15.RELEASE/spring-aop-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/2.3.11.RELEASE/spring-boot-starter-jdbc-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/5.2.15.RELEASE/spring-jdbc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/transaction/jakarta.transaction-api/1.3.3/jakarta.transaction-api-1.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/persistence/jakarta.persistence-api/2.2.3/jakarta.persistence-api-2.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/hibernate-core/5.4.31.Final/hibernate-core-5.4.31.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/jandex/2.2.3.Final/jandex-2.2.3.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/dom4j/dom4j/2.1.3/dom4j-2.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/common/hibernate-commons-annotations/5.1.2.Final/hibernate-commons-annotations-5.1.2.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-jpa/2.3.9.RELEASE/spring-data-jpa-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/2.3.9.RELEASE/spring-data-commons-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-orm/5.2.15.RELEASE/spring-orm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/5.2.15.RELEASE/spring-context-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/5.2.15.RELEASE/spring-tx-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/5.2.15.RELEASE/spring-beans-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aspects/5.2.15.RELEASE/spring-aspects-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-rule/1.7.1/amos-component-rule-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-foundation/1.1.21/tyboot-core-foundation-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/belerweb/pinyin4j/2.5.0/pinyin4j-2.5.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/2.3.11.RELEASE/spring-boot-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/2.3.11.RELEASE/spring-boot-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/esotericsoftware/reflectasm/reflectasm/1.09/reflectasm-1.09.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/jhlabs/filters/2.0.235/filters-2.0.235.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-emq/1.1.21/tyboot-component-emq-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-hystrix/2.2.5.RELEASE/spring-cloud-netflix-hystrix-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-client/1.9.25/eureka-client-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-eventbus/0.3.0/netflix-eventbus-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-infix/0.3.0/netflix-infix-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math/2.2/commons-math-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/servo/servo-core/0.12.21/servo-core-0.12.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-core/1.19.1/jersey-core-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/contribs/jersey-apache-client4/1.19.1/jersey-apache-client4-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/inject/guice/4.1.0/guice-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-core/1.9.25/eureka-core-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/woodstox/woodstox-core/5.3.0/woodstox-core-5.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-cache/1.1.21/tyboot-component-cache-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-redis/1.4.5.RELEASE/spring-boot-starter-redis-1.4.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-redis/2.3.9.RELEASE/spring-data-redis-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-keyvalue/2.3.9.RELEASE/spring-data-keyvalue-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-oxm/5.2.15.RELEASE/spring-oxm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/redis/clients/jedis/3.3.0/jedis-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-pool2/2.8.1/commons-pool2-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/fastjson/1.2.15/fastjson-1.2.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/quartz-scheduler/quartz/2.3.2/quartz-2.3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/mchange/mchange-commons-java/0.2.15/mchange-commons-java-0.2.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/core/3.3.0/core-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/javase/3.3.0/javase-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/beust/jcommander/1.48/jcommander-1.48.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jai-imageio/jai-imageio-core/1.3.1/jai-imageio-core-1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/json-lib/json-lib/2.4/json-lib-2.4-jdk15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-beanutils/commons-beanutils/1.8.0/commons-beanutils-1.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/ezmorph/ezmorph/1.0.6/ezmorph-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/assertj/assertj-core/3.11.1/assertj-core-3.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-scratchpad/3.15/poi-scratchpad-3.15.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tika/tika-core/1.13/tika-core-1.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tika/tika-parsers/1.13/tika-parsers-1.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/gagravarr/vorbis-java-tika/0.8/vorbis-java-tika-0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/healthmarketscience/jackcess/jackcess/2.1.3/jackcess-2.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/healthmarketscience/jackcess/jackcess-encrypt/2.1.1/jackcess-encrypt-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sourceforge/jmatio/jmatio/1.0/jmatio-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/james/apache-mime4j-core/0.7.2/apache-mime4j-core-0.7.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/james/apache-mime4j-dom/0.7.2/apache-mime4j-dom-0.7.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/tukaani/xz/1.5/xz-1.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.14/commons-codec-1.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/pdfbox/2.0.1/pdfbox-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/fontbox/2.0.1/fontbox-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/pdfbox-tools/2.0.1/pdfbox-tools-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/pdfbox-debugger/2.0.1/pdfbox-debugger-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/pdfbox/jempbox/1.8.12/jempbox-1.8.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcmail-jdk15on/1.54/bcmail-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcpkix-jdk15on/1.54/bcpkix-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/mp4parser/isoparser/1.1.18/isoparser-1.1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/drewnoakes/metadata-extractor/2.8.1/metadata-extractor-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/adobe/xmp/xmpcore/5.1.2/xmpcore-5.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/de/l3s/boilerpipe/boilerpipe/1.1.0/boilerpipe-1.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/rometools/rome/1.5.1/rome-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/rometools/rome-utils/1.5.1/rome-utils-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/gagravarr/vorbis-java-core/0.8/vorbis-java-core-0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/juniversalchardet/juniversalchardet/1.0.3/juniversalchardet-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codelibs/jhighlight/1.0.2/jhighlight-1.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/pff/java-libpst/0.8.1/java-libpst-0.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/junrar/junrar/0.7/junrar-0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-vfs2/2.0/commons-vfs2-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/maven/scm/maven-scm-api/1.4/maven-scm-api-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/maven/scm/maven-scm-provider-svnexe/1.4/maven-scm-provider-svnexe-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/maven/scm/maven-scm-provider-svn-commons/1.4/maven-scm-provider-svn-commons-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/regexp/regexp/1.3/regexp-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-rs-client/3.0.3/cxf-rt-rs-client-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-transports-http/3.0.3/cxf-rt-transports-http-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-core/3.0.3/cxf-core-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/woodstox-core-asl/4.4.1/woodstox-core-asl-4.4.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/ws/xmlschema/xmlschema-core/2.1.0/xmlschema-core-2.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/cxf/cxf-rt-frontend-jaxrs/3.0.3/cxf-rt-frontend-jaxrs-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/javax.ws.rs-api/2.0.1/javax.ws.rs-api-2.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/opennlp/opennlp-tools/1.5.3/opennlp-tools-1.5.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/opennlp/opennlp-maxent/3.0.3/opennlp-maxent-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/jwordnet/jwnl/1.3.3/jwnl-1.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-io/commons-io/2.4/commons-io-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/json/json/20140107/json-20140107.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/netcdf4/4.5.5/netcdf4-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/jcip/jcip-annotations/1.0/jcip-annotations-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/java/dev/jna/jna/4.1.0/jna-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/grib/4.5.5/grib-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/protobuf/protobuf-java/3.12.2/protobuf-java-3.12.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/jj2000/5.2/jj2000-5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/itadaki/bzip2/0.9.1/bzip2-0.9.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/cdm/4.5.5/cdm-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/udunits/4.5.5/udunits-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/ehcache/ehcache-core/2.6.2/ehcache-core-2.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/edu/ucar/httpservices/4.5.5/httpservices-4.5.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-csv/1.0/commons-csv-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-utility/0.6/sis-utility-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/storage/sis-netcdf/0.6/sis-netcdf-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/storage/sis-storage/0.6/sis-storage-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-referencing/0.6/sis-referencing-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/sis/core/sis-metadata/0.6/sis-metadata-0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/opengis/geoapi/3.0.0/geoapi-3.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/measure/jsr-275/0.9.3/jsr-275-0.9.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-mail/2.3.11.RELEASE/spring-boot-starter-mail-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/2.3.11.RELEASE/spring-boot-starter-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context-support/5.2.15.RELEASE/spring-context-support-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/mail/jakarta.mail/1.6.7/jakarta.mail-1.6.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/liquibase/liquibase-core/4.4.3/liquibase-core-4.4.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/jpush/api/jpush-client/3.3.10/jpush-client-3.3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/jpush/api/jiguang-common/1.1.3/jiguang-common-1.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-all/4.1.65.Final/netty-all-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-base/4.0.0/easypoi-base-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ognl/ognl/3.2.6/ognl-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-web/4.0.0/easypoi-web-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-annotation/4.0.0/easypoi-annotation-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/deepoove/poi-tl/1.6.0/poi-tl-1.6.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml/4.0.1/poi-ooxml-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi/4.0.1/poi-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-collections4/4.2/commons-collections4-4.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-event/1.1.20/tyboot-component-event-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/2.3.11.RELEASE/spring-boot-starter-logging-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-mock/2.0.8/spring-mock-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/junit/junit/4.13.2/junit-4.13.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-rdbms/1.1.20/tyboot-core-rdbms-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-restful/1.1.20/tyboot-core-restful-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-auth/1.1.20/tyboot-core-auth-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.2/mybatis-spring-boot-starter-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.2/mybatis-spring-boot-autoconfigure-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis-spring/2.0.4/mybatis-spring-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itextpdf/5.5.13/itextpdf-5.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/pagehelper/pagehelper/5.1.10/pagehelper-5.1.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jsqlparser/jsqlparser/2.0/jsqlparser-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-rule/1.7.0/amos-feign-rule-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-feign/1.7.0/amos-component-feign-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-openfeign/2.2.5.RELEASE/spring-cloud-starter-openfeign-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-openfeign-core/2.2.5.RELEASE/spring-cloud-openfeign-core-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-core/10.10.1/feign-core-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-slf4j/10.10.1/feign-slf4j-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-hystrix/10.10.1/feign-hystrix-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/brave/brave/5.12.3/brave-5.12.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter-brave/2.15.0/zipkin-reporter-brave-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter/2.15.0/zipkin-reporter-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/zipkin2/zipkin/2.21.1/zipkin-2.21.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter/2.2.5.RELEASE/spring-cloud-starter-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/5.3.9.RELEASE/spring-security-crypto-5.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-commons/2.2.5.RELEASE/spring-cloud-commons-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-rsa/1.0.9.RELEASE/spring-security-rsa-1.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-actuator/2.3.11.RELEASE/spring-boot-starter-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator-autoconfigure/2.3.11.RELEASE/spring-boot-actuator-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator/2.3.11.RELEASE/spring-boot-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-core/1.5.14/micrometer-core-1.5.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-freemarker/2.3.11.RELEASE/spring-boot-starter-freemarker-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-servlet/1.19.1/jersey-servlet-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-server/1.19.1/jersey-server-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-client/1.19.1/jersey-client-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/archaius/archaius-core/0.7.6/archaius-core-0.7.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.4/jackson-dataformat-xml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.4/jackson-module-jaxb-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-archaius/2.2.5.RELEASE/spring-cloud-starter-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-ribbon/2.2.5.RELEASE/spring-cloud-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-archaius/2.2.5.RELEASE/spring-cloud-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-ribbon/2.2.5.RELEASE/spring-cloud-starter-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon/2.3.0/ribbon-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-transport/2.3.0/ribbon-transport-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-core/2.3.0/ribbon-core-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-httpclient/2.3.0/ribbon-httpclient-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-commons-util/0.3.0/netflix-commons-util-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-loadbalancer/2.3.0/ribbon-loadbalancer-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxjava/1.3.8/rxjava-1.3.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-loadbalancer/2.2.5.RELEASE/spring-cloud-starter-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-loadbalancer/2.2.5.RELEASE/spring-cloud-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-validation/2.3.11.RELEASE/spring-boot-starter-validation-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/validator/hibernate-validator/6.1.7.Final/hibernate-validator-6.1.7.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/addons/reactor-extra/3.3.6.RELEASE/reactor-extra-3.3.6.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-cache/2.3.11.RELEASE/spring-boot-starter-cache-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-eureka/2.3.0/ribbon-eureka-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/2.3.4/jaxb-runtime-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/2.3.4/txw2-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/2.3.11.RELEASE/spring-boot-starter-web-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/2.3.11.RELEASE/spring-boot-starter-json-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/2.3.11.RELEASE/spring-boot-starter-tomcat-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/5.2.15.RELEASE/spring-web-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/5.2.15.RELEASE/spring-webmvc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/5.2.15.RELEASE/spring-expression-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-javanica/1.5.18/hystrix-javanica-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-core/1.5.18/hystrix-core-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-privilege/1.7.1/amos-feign-privilege-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/easyexcel/2.0.5/easyexcel-2.0.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cglib/cglib/3.1/cglib-3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ehcache/ehcache/3.8.1/ehcache-3.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/fr/opensagres/xdocreport/xdocreport/1.0.6/xdocreport-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml-schemas/4.0.1/poi-ooxml-schemas-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlbeans/xmlbeans/3.0.2/xmlbeans-3.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/ooxml-schemas/1.3/ooxml-schemas-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/joda-time/joda-time/2.10.4/joda-time-2.10.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/velocity/velocity-engine-core/2.1/velocity-engine-core-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/freemarker/freemarker/2.3.31/freemarker-2.3.31.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-websocket/2.3.11.RELEASE/spring-boot-starter-websocket-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-messaging/5.2.15.RELEASE/spring-messaging-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-websocket/5.2.15.RELEASE/spring-websocket-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-jexl/2.1.1/commons-jexl-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-stream/5.3.7.RELEASE/spring-integration-stream-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-core/5.3.7.RELEASE/spring-integration-core-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/reactor-core/3.3.17.RELEASE/reactor-core-3.3.17.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-mqtt/5.3.7.RELEASE/spring-integration-mqtt-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.4/org.eclipse.paho.client.mqttv3-1.2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-starter/2.0.7/knife4j-spring-boot-starter-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-autoconfigure/2.0.7/knife4j-spring-boot-autoconfigure-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring/2.0.7/knife4j-spring-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-annotations/2.0.7/knife4j-annotations-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-core/2.0.7/knife4j-core-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-models/1.5.22/swagger-models-1.5.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger-common/2.10.5/springfox-swagger-common-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-web/2.10.5/springfox-spring-web-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/classgraph/classgraph/4.1.7/classgraph-4.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mapstruct/mapstruct/1.3.1.Final/mapstruct-1.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-bean-validators/2.10.5/springfox-bean-validators-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-webmvc/2.10.5/springfox-spring-webmvc-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-ui/2.0.7/knife4j-spring-ui-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-systemctl/1.6.5/amos-feign-systemctl-1.6.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-annotations/1.5.13/swagger-annotations-1.5.13.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-elasticsearch/4.0.9.RELEASE/spring-data-elasticsearch-4.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context/5.2.15.RELEASE/spring-context-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-tx/5.2.15.RELEASE/spring-tx-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-commons/2.3.9.RELEASE/spring-data-commons-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/client/transport/7.6.2/transport-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch/7.6.2/elasticsearch-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-core/7.6.2/elasticsearch-core-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-secure-sm/7.6.2/elasticsearch-secure-sm-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-x-content/7.6.2/elasticsearch-x-content-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-smile/2.11.4/jackson-dataformat-smile-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.11.4/jackson-dataformat-yaml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.11.4/jackson-dataformat-cbor-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-geo/7.6.2/elasticsearch-geo-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-core/8.4.0/lucene-core-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-analyzers-common/8.4.0/lucene-analyzers-common-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-backward-codecs/8.4.0/lucene-backward-codecs-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-grouping/8.4.0/lucene-grouping-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-highlighter/8.4.0/lucene-highlighter-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-join/8.4.0/lucene-join-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-memory/8.4.0/lucene-memory-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-misc/8.4.0/lucene-misc-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-queries/8.4.0/lucene-queries-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-queryparser/8.4.0/lucene-queryparser-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-sandbox/8.4.0/lucene-sandbox-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial/8.4.0/lucene-spatial-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial-extras/8.4.0/lucene-spatial-extras-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-spatial3d/8.4.0/lucene-spatial3d-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/lucene/lucene-suggest/8.4.0/lucene-suggest-8.4.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-cli/7.6.2/elasticsearch-cli-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/sf/jopt-simple/jopt-simple/5.0.2/jopt-simple-5.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/carrotsearch/hppc/0.8.1/hppc-0.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/tdunning/t-digest/3.2/t-digest-3.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/jna/4.5.1/jna-4.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/reindex-client/7.6.2/reindex-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/elasticsearch-ssl-config/7.6.2/elasticsearch-ssl-config-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/lang-mustache-client/7.6.2/lang-mustache-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/spullara/mustache/java/compiler/0.9.6/compiler-0.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/percolator-client/7.6.2/percolator-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/parent-join-client/7.6.2/parent-join-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/rank-eval-client/7.6.2/rank-eval-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/transport-netty4-client/7.6.2/transport-netty4-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-buffer/4.1.65.Final/netty-buffer-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-codec/4.1.65.Final/netty-codec-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-codec-http/4.1.65.Final/netty-codec-http-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-common/4.1.65.Final/netty-common-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-handler/4.1.65.Final/netty-handler-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-resolver/4.1.65.Final/netty-resolver-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/netty/netty-transport/4.1.65.Final/netty-transport-4.1.65.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/client/elasticsearch-rest-high-level-client/7.6.2/elasticsearch-rest-high-level-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/client/elasticsearch-rest-client/7.6.2/elasticsearch-rest-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpasyncclient/4.1.4/httpasyncclient-4.1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore-nio/4.4.14/httpcore-nio-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/mapper-extras-client/7.6.2/mapper-extras-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/elasticsearch/plugin/aggs-matrix-stats-client/7.6.2/aggs-matrix-stats-client-7.6.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-data-elasticsearch/2.3.11.RELEASE/spring-boot-starter-data-elasticsearch-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-rule/1.7.1/amos-component-rule-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-emq/1.1.21/tyboot-component-emq-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-cache/1.1.21/tyboot-component-cache-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-redis/1.4.5.RELEASE/spring-boot-starter-redis-1.4.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-redis/2.3.9.RELEASE/spring-data-redis-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/data/spring-data-keyvalue/2.3.9.RELEASE/spring-data-keyvalue-2.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-oxm/5.2.15.RELEASE/spring-oxm-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/redis/clients/jedis/3.3.0/jedis-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-pool2/2.8.1/commons-pool2-2.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-codec/commons-codec/1.14/commons-codec-1.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-component-event/1.1.20/tyboot-component-event-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-aop/2.3.11.RELEASE/spring-boot-starter-aop-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-aop/5.2.15.RELEASE/spring-aop-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-logging/2.3.11.RELEASE/spring-boot-starter-logging-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-mock/2.0.8/spring-mock-2.0.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/log4j/log4j/1.2.12/log4j-1.2.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/junit/junit/4.13.2/junit-4.13.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-rdbms/1.1.20/tyboot-core-rdbms-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/mysql/mysql-connector-java/8.0.25/mysql-connector-java-8.0.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-restful/1.1.20/tyboot-core-restful-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-auth/1.1.20/tyboot-core-auth-1.1.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-generator/3.2.0/mybatis-plus-generator-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-extension/3.2.0/mybatis-plus-extension-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-core/3.2.0/mybatis-plus-core-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-annotation/3.2.0/mybatis-plus-annotation-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus-boot-starter/3.2.0/mybatis-plus-boot-starter-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/baomidou/mybatis-plus/3.2.0/mybatis-plus-3.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-autoconfigure/2.3.11.RELEASE/spring-boot-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-jdbc/2.3.11.RELEASE/spring-boot-starter-jdbc-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jdbc/5.2.15.RELEASE/spring-jdbc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-starter/2.1.2/mybatis-spring-boot-starter-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/2.1.2/mybatis-spring-boot-autoconfigure-2.1.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mybatis/mybatis-spring/2.0.4/mybatis-spring-2.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-base/4.0.0/easypoi-base-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi/4.0.0/poi-4.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-collections4/4.2/commons-collections4-4.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/ognl/ognl/3.2.6/ognl-3.2.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-web/3.0.3/easypoi-web-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-core/5.2.15.RELEASE/spring-core-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-jcl/5.2.15.RELEASE/spring-jcl-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cn/afterturn/easypoi-annotation/3.0.3/easypoi-annotation-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itextpdf/5.5.13/itextpdf-5.5.13.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/itextpdf/itext-asian/5.2.0/itext-asian-5.2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/zxing/core/3.3.0/core-3.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/pagehelper/pagehelper/5.1.10/pagehelper-5.1.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/jsqlparser/jsqlparser/2.0/jsqlparser-2.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-rule/1.7.0/amos-feign-rule-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/typroject/tyboot-core-foundation/1.1.21/tyboot-core-foundation-1.1.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/belerweb/pinyin4j/2.5.0/pinyin4j-2.5.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot/2.3.11.RELEASE/spring-boot-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/esotericsoftware/reflectasm/reflectasm/1.09/reflectasm-1.09.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/axet/kaptcha/0.0.9/kaptcha-0.0.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/jhlabs/filters/2.0.235/filters-2.0.235.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-component-feign/1.7.0/amos-component-feign-1.7.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-openfeign/2.2.5.RELEASE/spring-cloud-starter-openfeign-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-openfeign-core/2.2.5.RELEASE/spring-cloud-openfeign-core-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-io/commons-io/2.2/commons-io-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-core/10.10.1/feign-core-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-slf4j/10.10.1/feign-slf4j-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/openfeign/feign-hystrix/10.10.1/feign-hystrix-10.10.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/brave/brave/5.12.3/brave-5.12.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter-brave/2.15.0/zipkin-reporter-brave-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/reporter2/zipkin-reporter/2.15.0/zipkin-reporter-2.15.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/zipkin/zipkin2/zipkin/2.21.1/zipkin-2.21.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter/2.2.5.RELEASE/spring-cloud-starter-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-context/2.2.5.RELEASE/spring-cloud-context-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-crypto/5.3.9.RELEASE/spring-security-crypto-5.3.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-commons/2.2.5.RELEASE/spring-cloud-commons-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/security/spring-security-rsa/1.0.9.RELEASE/spring-security-rsa-1.0.9.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcpkix-jdk15on/1.64/bcpkix-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/bouncycastle/bcprov-jdk15on/1.64/bcprov-jdk15on-1.64.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-server/2.2.5.RELEASE/spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-actuator/2.3.11.RELEASE/spring-boot-starter-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator-autoconfigure/2.3.11.RELEASE/spring-boot-actuator-autoconfigure-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-actuator/2.3.11.RELEASE/spring-boot-actuator-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/micrometer/micrometer-core/1.5.14/micrometer-core-1.5.14.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-freemarker/2.3.11.RELEASE/spring-boot-starter-freemarker-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-context-support/5.2.15.RELEASE/spring-context-support-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-hystrix/2.2.5.RELEASE/spring-cloud-netflix-hystrix-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-eureka-client/2.2.5.RELEASE/spring-cloud-netflix-eureka-client-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-client/1.9.25/eureka-client-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/jettison/jettison/1.3.7/jettison-1.3.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-eventbus/0.3.0/netflix-eventbus-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-infix/0.3.0/netflix-infix-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-math/2.2/commons-math-2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/servo/servo-core/0.12.21/servo-core-0.12.21.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-core/1.19.1/jersey-core-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/contribs/jersey-apache-client4/1.19.1/jersey-apache-client4-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/inject/guice/4.1.0/guice-4.1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-servlet/1.19.1/jersey-servlet-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-server/1.19.1/jersey-server-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/jersey/jersey-client/1.19.1/jersey-client-1.19.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/eureka/eureka-core/1.9.25/eureka-core-1.9.25.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/woodstox/woodstox-core/5.3.0/woodstox-core-5.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/archaius/archaius-core/0.7.6/archaius-core-0.7.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.4/jackson-dataformat-xml-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.4/jackson-module-jaxb-annotations-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-archaius/2.2.5.RELEASE/spring-cloud-starter-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-ribbon/2.2.5.RELEASE/spring-cloud-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-netflix-archaius/2.2.5.RELEASE/spring-cloud-netflix-archaius-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-configuration/commons-configuration/1.8/commons-configuration-1.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-netflix-ribbon/2.2.5.RELEASE/spring-cloud-starter-netflix-ribbon-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon/2.3.0/ribbon-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-transport/2.3.0/ribbon-transport-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-contexts/0.4.9/rxnetty-contexts-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty-servo/0.4.9/rxnetty-servo-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxnetty/0.4.9/rxnetty-0.4.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-core/2.3.0/ribbon-core-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-httpclient/2.3.0/ribbon-httpclient-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-commons-util/0.3.0/netflix-commons-util-0.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-loadbalancer/2.3.0/ribbon-loadbalancer-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/netflix-commons/netflix-statistics/0.1.1/netflix-statistics-0.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/reactivex/rxjava/1.3.8/rxjava-1.3.8.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-starter-loadbalancer/2.2.5.RELEASE/spring-cloud-starter-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/cloud/spring-cloud-loadbalancer/2.2.5.RELEASE/spring-cloud-loadbalancer-2.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-validation/2.3.11.RELEASE/spring-boot-starter-validation-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hibernate/validator/hibernate-validator/6.1.7.Final/hibernate-validator-6.1.7.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/addons/reactor-extra/3.3.6.RELEASE/reactor-extra-3.3.6.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-cache/2.3.11.RELEASE/spring-boot-starter-cache-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/ribbon/ribbon-eureka/2.3.0/ribbon-eureka-2.3.0.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/jaxb-runtime/2.3.4/jaxb-runtime-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jaxb/txw2/2.3.4/txw2-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-web/2.3.11.RELEASE/spring-boot-starter-web-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter/2.3.11.RELEASE/spring-boot-starter-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-json/2.3.11.RELEASE/spring-boot-starter-json-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/2.3.11.RELEASE/spring-boot-starter-tomcat-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/9.0.46/tomcat-embed-core-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.46/tomcat-embed-websocket-9.0.46.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-web/5.2.15.RELEASE/spring-web-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-beans/5.2.15.RELEASE/spring-beans-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-webmvc/5.2.15.RELEASE/spring-webmvc-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-expression/5.2.15.RELEASE/spring-expression-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-javanica/1.5.18/hystrix-javanica-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/netflix/hystrix/hystrix-core/1.5.18/hystrix-core-1.5.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/hdrhistogram/HdrHistogram/2.1.9/HdrHistogram-2.1.9.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/guava/29.0-jre/guava-29.0-jre.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/fastjson/1.2.67/fastjson-1.2.67.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-privilege/1.7.1/amos-feign-privilege-1.7.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/alibaba/easyexcel/2.0.5/easyexcel-2.0.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/cglib/cglib/3.1/cglib-3.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/ehcache/ehcache/3.8.1/ehcache-3.8.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-scratchpad/4.0.1/poi-scratchpad-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml/4.0.1/poi-ooxml-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/virtuald/curvesapi/1.05/curvesapi-1.05.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/fr/opensagres/xdocreport/xdocreport/1.0.6/xdocreport-1.0.6.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/poi-ooxml-schemas/4.0.1/poi-ooxml-schemas-4.0.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/xmlbeans/xmlbeans/3.0.2/xmlbeans-3.0.2.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/poi/ooxml-schemas/1.3/ooxml-schemas-1.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/jsoup/jsoup/1.11.3/jsoup-1.11.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/joda-time/joda-time/2.10.4/joda-time-2.10.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-lang3/3.10/commons-lang3-3.10.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/velocity/velocity-engine-core/2.1/velocity-engine-core-2.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/freemarker/freemarker/2.3.31/freemarker-2.3.31.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/boot/spring-boot-starter-websocket/2.3.11.RELEASE/spring-boot-starter-websocket-2.3.11.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-messaging/5.2.15.RELEASE/spring-messaging-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/spring-websocket/5.2.15.RELEASE/spring-websocket-5.2.15.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/apache/commons/commons-jexl/2.1.1/commons-jexl-2.1.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-stream/5.3.7.RELEASE/spring-integration-stream-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-core/5.3.7.RELEASE/spring-integration-core-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/projectreactor/reactor-core/3.3.17.RELEASE/reactor-core-3.3.17.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/integration/spring-integration-mqtt/5.3.7.RELEASE/spring-integration-mqtt-5.3.7.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.2.4/org.eclipse.paho.client.mqttv3-1.2.4.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-starter/2.0.7/knife4j-spring-boot-starter-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-boot-autoconfigure/2.0.7/knife4j-spring-boot-autoconfigure-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring/2.0.7/knife4j-spring-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-annotations/2.0.7/knife4j-annotations-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-core/2.0.7/knife4j-core-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-models/1.5.22/swagger-models-1.5.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-swagger-common/2.10.5/springfox-swagger-common-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-web/2.10.5/springfox-spring-web-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/github/classgraph/classgraph/4.1.7/classgraph-4.1.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/org/mapstruct/mapstruct/1.3.1.Final/mapstruct-1.3.1.Final.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-bean-validators/2.10.5/springfox-bean-validators-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/springfox/springfox-spring-webmvc/2.10.5/springfox-spring-webmvc-2.10.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/github/xiaoymin/knife4j-spring-ui/2.0.7/knife4j-spring-ui-2.0.7.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/com/yeejoin/amos-feign-systemctl/1.6.5/amos-feign-systemctl-1.6.5.jar" enabled="true" runInBatchMode="false"/>
<factorypathentry kind="VARJAR" id="M2_REPO/io/swagger/swagger-annotations/1.5.13/swagger-annotations-1.5.13.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment