Commit 52efe794 authored by shiyubin's avatar shiyubin 🌼

山西数据推送程序

parents
Pipeline #127 failed with stages
# Getting Started
### Reference Documentation
For further reference, please consider the following sections:
* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.3.2.RELEASE/maven-plugin/reference/html/)
* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.3.2.RELEASE/maven-plugin/reference/html/#build-image)
* [Spring for RabbitMQ](https://docs.spring.io/spring-boot/docs/2.3.2.RELEASE/reference/htmlsingle/#boot-features-amqp)
* [JDBC API](https://docs.spring.io/spring-boot/docs/2.3.2.RELEASE/reference/htmlsingle/#boot-features-sql)
### Guides
The following guides illustrate how to use some features concretely:
* [Messaging with RabbitMQ](https://spring.io/guides/gs/messaging-rabbitmq/)
* [Accessing Relational Data using JDBC with Spring](https://spring.io/guides/gs/relational-data-access/)
* [Managing Transactions](https://spring.io/guides/gs/managing-transactions/)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Cannot create GC thread. Out of system resources.
# Possible reasons:
# The system is out of physical RAM or swap space
# The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
# Out of Memory Error (gcTaskThread.cpp:48), pid=3162, tid=0x00007f3ff1a33700
#
# JRE version: (8.0_251-b08) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.251-b08 mixed mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
--------------- T H R E A D ---------------
Current thread (0x00007f3fec00e000): JavaThread "Unknown thread" [_thread_in_vm, id=3164, stack(0x00007f3ff1934000,0x00007f3ff1a34000)]
Stack: [0x00007f3ff1934000,0x00007f3ff1a34000], sp=0x00007f3ff1a32740, free space=1017k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xad9dc5] VMError::report_and_die()+0x2e5
V [libjvm.so+0x4e1d67] report_vm_out_of_memory(char const*, int, unsigned long, VMErrorType, char const*)+0x67
V [libjvm.so+0x5c53cf] GCTaskThread::GCTaskThread(GCTaskManager*, unsigned int, unsigned int)+0x13f
V [libjvm.so+0x5c459d] GCTaskManager::initialize()+0x36d
V [libjvm.so+0x93d792] ParallelScavengeHeap::initialize()+0x3a2
V [libjvm.so+0xa9d9ea] Universe::initialize_heap()+0x16a
V [libjvm.so+0xa9dcd3] universe_init()+0x33
V [libjvm.so+0x633b60] init_globals()+0x50
V [libjvm.so+0xa80409] Threads::create_vm(JavaVMInitArgs*, bool*)+0x409
V [libjvm.so+0x6d96ef] JNI_CreateJavaVM+0x4f
C [libjli.so+0x7ee4] JavaMain+0x84
C [libpthread.so.0+0x7fa3] start_thread+0xf3
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
Other Threads:
=>0x00007f3fec00e000 (exited) JavaThread "Unknown thread" [_thread_in_vm, id=3164, stack(0x00007f3ff1934000,0x00007f3ff1a34000)]
VM state:not at safepoint (not fully initialized)
VM Mutex/Monitor currently owned by a thread: None
heap address: 0x0000000084400000, size: 1980 MB, Compressed Oops mode: Non-zero based:0x00000000843ff000
Narrow klass base: 0x0000000000000000, Narrow klass shift: 0
GC Heap History (0 events):
No events
Deoptimization events (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (0 events):
No events
Events (0 events):
No events
Dynamic libraries:
84400000-89700000 rw-p 00000000 00:00 0
89700000-d6c00000 ---p 00000000 00:00 0
d6c00000-d9500000 rw-p 00000000 00:00 0
d9500000-100000000 ---p 00000000 00:00 0
562339b74000-562339b75000 r-xp 00000000 103:05 6294736 /home/xiaoshi/environment/jdk1.8/bin/java
562339d74000-562339d75000 r--p 00000000 103:05 6294736 /home/xiaoshi/environment/jdk1.8/bin/java
562339d75000-562339d76000 rw-p 00001000 103:05 6294736 /home/xiaoshi/environment/jdk1.8/bin/java
56233bb6a000-56233bb8b000 rw-p 00000000 00:00 0 [heap]
7f3fdcc6a000-7f3fdceff000 rw-p 00000000 00:00 0
7f3fdceff000-7f3fdcf00000 ---p 00000000 00:00 0
7f3fdcf00000-7f3fdd000000 rw-p 00000000 00:00 0
7f3fdd000000-7f3fdd270000 rwxp 00000000 00:00 0
7f3fdd270000-7f3fec000000 ---p 00000000 00:00 0
7f3fec000000-7f3fec048000 rw-p 00000000 00:00 0
7f3fec048000-7f3ff0000000 ---p 00000000 00:00 0
7f3ff0083000-7f3ff0084000 ---p 00000000 00:00 0
7f3ff0084000-7f3ff0184000 rw-p 00000000 00:00 0
7f3ff0184000-7f3ff0185000 ---p 00000000 00:00 0
7f3ff0185000-7f3ff0285000 rw-p 00000000 00:00 0
7f3ff0285000-7f3ff0286000 ---p 00000000 00:00 0
7f3ff0286000-7f3ff0386000 rw-p 00000000 00:00 0
7f3ff0386000-7f3ff0387000 ---p 00000000 00:00 0
7f3ff0387000-7f3ff0487000 rw-p 00000000 00:00 0
7f3ff0487000-7f3ff0488000 ---p 00000000 00:00 0
7f3ff0488000-7f3ff0588000 rw-p 00000000 00:00 0
7f3ff0588000-7f3ff0589000 ---p 00000000 00:00 0
7f3ff0589000-7f3ff06b3000 rw-p 00000000 00:00 0
7f3ff06b3000-7f3ff091d000 ---p 00000000 00:00 0
7f3ff091d000-7f3ff0947000 rw-p 00000000 00:00 0
7f3ff0947000-7f3ff0bb1000 ---p 00000000 00:00 0
7f3ff0bb1000-7f3ff0bc6000 rw-p 00000000 00:00 0
7f3ff0bc6000-7f3ff0cfb000 ---p 00000000 00:00 0
7f3ff0cfb000-7f3ff0d06000 rw-p 00000000 00:00 0
7f3ff0d06000-7f3ff10bc000 ---p 00000000 00:00 0
7f3ff10bc000-7f3ff10d7000 r-xp 00000000 103:05 9963937 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libzip.so
7f3ff10d7000-7f3ff12d6000 ---p 0001b000 103:05 9963937 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libzip.so
7f3ff12d6000-7f3ff12d7000 r--p 0001a000 103:05 9963937 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libzip.so
7f3ff12d7000-7f3ff12d8000 rw-p 0001b000 103:05 9963937 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libzip.so
7f3ff12d8000-7f3ff12e0000 rw-s 00000000 103:03 149251 /tmp/hsperfdata_xiaoshi/3162
7f3ff12e0000-7f3ff12ea000 r-xp 00000000 103:05 9963919 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libinstrument.so
7f3ff12ea000-7f3ff14e9000 ---p 0000a000 103:05 9963919 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libinstrument.so
7f3ff14e9000-7f3ff14ea000 r--p 00009000 103:05 9963919 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libinstrument.so
7f3ff14ea000-7f3ff14eb000 rw-p 0000a000 103:05 9963919 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libinstrument.so
7f3ff14eb000-7f3ff1517000 r-xp 00000000 103:05 9963948 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libjava.so
7f3ff1517000-7f3ff1717000 ---p 0002c000 103:05 9963948 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libjava.so
7f3ff1717000-7f3ff1718000 r--p 0002c000 103:05 9963948 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libjava.so
7f3ff1718000-7f3ff171a000 rw-p 0002d000 103:05 9963948 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libjava.so
7f3ff171a000-7f3ff1727000 r-xp 00000000 103:05 9963949 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libverify.so
7f3ff1727000-7f3ff1926000 ---p 0000d000 103:05 9963949 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libverify.so
7f3ff1926000-7f3ff1928000 r--p 0000c000 103:05 9963949 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libverify.so
7f3ff1928000-7f3ff1929000 rw-p 0000e000 103:05 9963949 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/libverify.so
7f3ff1929000-7f3ff192b000 r--p 00000000 103:03 3372 /usr/lib/x86_64-linux-gnu/librt-2.28.so
7f3ff192b000-7f3ff192f000 r-xp 00002000 103:03 3372 /usr/lib/x86_64-linux-gnu/librt-2.28.so
7f3ff192f000-7f3ff1931000 r--p 00006000 103:03 3372 /usr/lib/x86_64-linux-gnu/librt-2.28.so
7f3ff1931000-7f3ff1932000 r--p 00007000 103:03 3372 /usr/lib/x86_64-linux-gnu/librt-2.28.so
7f3ff1932000-7f3ff1933000 rw-p 00008000 103:03 3372 /usr/lib/x86_64-linux-gnu/librt-2.28.so
7f3ff1933000-7f3ff1934000 ---p 00000000 00:00 0
7f3ff1934000-7f3ff1937000 ---p 00000000 00:00 0
7f3ff1937000-7f3ff1a34000 rw-p 00000000 00:00 0
7f3ff1a34000-7f3ff1a41000 r--p 00000000 103:03 2948 /usr/lib/x86_64-linux-gnu/libm-2.28.so
7f3ff1a41000-7f3ff1ae0000 r-xp 0000d000 103:03 2948 /usr/lib/x86_64-linux-gnu/libm-2.28.so
7f3ff1ae0000-7f3ff1bb5000 r--p 000ac000 103:03 2948 /usr/lib/x86_64-linux-gnu/libm-2.28.so
7f3ff1bb5000-7f3ff1bb6000 r--p 00180000 103:03 2948 /usr/lib/x86_64-linux-gnu/libm-2.28.so
7f3ff1bb6000-7f3ff1bb7000 rw-p 00181000 103:03 2948 /usr/lib/x86_64-linux-gnu/libm-2.28.so
7f3ff1bb7000-7f3ff28a7000 r-xp 00000000 103:05 9963915 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/server/libjvm.so
7f3ff28a7000-7f3ff2aa6000 ---p 00cf0000 103:05 9963915 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/server/libjvm.so
7f3ff2aa6000-7f3ff2b3c000 r--p 00cef000 103:05 9963915 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/server/libjvm.so
7f3ff2b3c000-7f3ff2b6d000 rw-p 00d85000 103:05 9963915 /home/xiaoshi/environment/jdk1.8/jre/lib/amd64/server/libjvm.so
7f3ff2b6d000-7f3ff2baa000 rw-p 00000000 00:00 0
7f3ff2baa000-7f3ff2bcc000 r--p 00000000 103:03 2167 /usr/lib/x86_64-linux-gnu/libc-2.28.so
7f3ff2bcc000-7f3ff2d14000 r-xp 00022000 103:03 2167 /usr/lib/x86_64-linux-gnu/libc-2.28.so
7f3ff2d14000-7f3ff2d60000 r--p 0016a000 103:03 2167 /usr/lib/x86_64-linux-gnu/libc-2.28.so
7f3ff2d60000-7f3ff2d61000 ---p 001b6000 103:03 2167 /usr/lib/x86_64-linux-gnu/libc-2.28.so
7f3ff2d61000-7f3ff2d65000 r--p 001b6000 103:03 2167 /usr/lib/x86_64-linux-gnu/libc-2.28.so
7f3ff2d65000-7f3ff2d67000 rw-p 001ba000 103:03 2167 /usr/lib/x86_64-linux-gnu/libc-2.28.so
7f3ff2d67000-7f3ff2d6b000 rw-p 00000000 00:00 0
7f3ff2d6b000-7f3ff2d6c000 r--p 00000000 103:03 2315 /usr/lib/x86_64-linux-gnu/libdl-2.28.so
7f3ff2d6c000-7f3ff2d6d000 r-xp 00001000 103:03 2315 /usr/lib/x86_64-linux-gnu/libdl-2.28.so
7f3ff2d6d000-7f3ff2d6e000 r--p 00002000 103:03 2315 /usr/lib/x86_64-linux-gnu/libdl-2.28.so
7f3ff2d6e000-7f3ff2d6f000 r--p 00002000 103:03 2315 /usr/lib/x86_64-linux-gnu/libdl-2.28.so
7f3ff2d6f000-7f3ff2d70000 rw-p 00003000 103:03 2315 /usr/lib/x86_64-linux-gnu/libdl-2.28.so
7f3ff2d70000-7f3ff2d87000 r-xp 00000000 103:05 9964217 /home/xiaoshi/environment/jdk1.8/lib/amd64/jli/libjli.so
7f3ff2d87000-7f3ff2f86000 ---p 00017000 103:05 9964217 /home/xiaoshi/environment/jdk1.8/lib/amd64/jli/libjli.so
7f3ff2f86000-7f3ff2f87000 r--p 00016000 103:05 9964217 /home/xiaoshi/environment/jdk1.8/lib/amd64/jli/libjli.so
7f3ff2f87000-7f3ff2f88000 rw-p 00017000 103:05 9964217 /home/xiaoshi/environment/jdk1.8/lib/amd64/jli/libjli.so
7f3ff2f88000-7f3ff2f8e000 r--p 00000000 103:03 3310 /usr/lib/x86_64-linux-gnu/libpthread-2.28.so
7f3ff2f8e000-7f3ff2f9d000 r-xp 00006000 103:03 3310 /usr/lib/x86_64-linux-gnu/libpthread-2.28.so
7f3ff2f9d000-7f3ff2fa3000 r--p 00015000 103:03 3310 /usr/lib/x86_64-linux-gnu/libpthread-2.28.so
7f3ff2fa3000-7f3ff2fa4000 r--p 0001a000 103:03 3310 /usr/lib/x86_64-linux-gnu/libpthread-2.28.so
7f3ff2fa4000-7f3ff2fa5000 rw-p 0001b000 103:03 3310 /usr/lib/x86_64-linux-gnu/libpthread-2.28.so
7f3ff2fa5000-7f3ff2fab000 rw-p 00000000 00:00 0
7f3ff2fb2000-7f3ff2fb5000 r--p 00000000 103:03 3123 /usr/lib/x86_64-linux-gnu/libnss_files-2.28.so
7f3ff2fb5000-7f3ff2fbc000 r-xp 00003000 103:03 3123 /usr/lib/x86_64-linux-gnu/libnss_files-2.28.so
7f3ff2fbc000-7f3ff2fbe000 r--p 0000a000 103:03 3123 /usr/lib/x86_64-linux-gnu/libnss_files-2.28.so
7f3ff2fbe000-7f3ff2fbf000 ---p 0000c000 103:03 3123 /usr/lib/x86_64-linux-gnu/libnss_files-2.28.so
7f3ff2fbf000-7f3ff2fc0000 r--p 0000c000 103:03 3123 /usr/lib/x86_64-linux-gnu/libnss_files-2.28.so
7f3ff2fc0000-7f3ff2fc1000 rw-p 0000d000 103:03 3123 /usr/lib/x86_64-linux-gnu/libnss_files-2.28.so
7f3ff2fc1000-7f3ff2fc8000 rw-p 00000000 00:00 0
7f3ff2fc8000-7f3ff2fc9000 r--p 00000000 00:00 0
7f3ff2fc9000-7f3ff2fca000 r--p 00000000 103:03 1524 /usr/lib/x86_64-linux-gnu/ld-2.28.so
7f3ff2fca000-7f3ff2fe8000 r-xp 00001000 103:03 1524 /usr/lib/x86_64-linux-gnu/ld-2.28.so
7f3ff2fe8000-7f3ff2ff0000 r--p 0001f000 103:03 1524 /usr/lib/x86_64-linux-gnu/ld-2.28.so
7f3ff2ff0000-7f3ff2ff1000 r--p 00026000 103:03 1524 /usr/lib/x86_64-linux-gnu/ld-2.28.so
7f3ff2ff1000-7f3ff2ff2000 rw-p 00027000 103:03 1524 /usr/lib/x86_64-linux-gnu/ld-2.28.so
7f3ff2ff2000-7f3ff2ff3000 rw-p 00000000 00:00 0
7ffdf6366000-7ffdf6388000 rw-p 00000000 00:00 0 [stack]
7ffdf63d2000-7ffdf63d5000 r--p 00000000 00:00 0 [vvar]
7ffdf63d5000-7ffdf63d6000 r-xp 00000000 00:00 0 [vdso]
VM Arguments:
jvm_args: -XX:TieredStopAtLevel=1 -Xverify:none -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:/home/xiaoshi/software/idea/lib/idea_rt.jar=42333:/home/xiaoshi/software/idea/bin -Dfile.encoding=UTF-8
java_command: com.amqp.shanxi.ShanxiApplication
java_class_path (initial): /home/xiaoshi/environment/jdk1.8/jre/lib/charsets.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/deploy.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/ext/cldrdata.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/ext/dnsns.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/ext/jaccess.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/ext/jfxrt.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/ext/localedata.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/ext/nashorn.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/ext/sunec.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/ext/sunjce_provider.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/ext/sunpkcs11.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/ext/zipfs.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/javaws.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/jce.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/jfr.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/jfxswt.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/jsse.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/management-agent.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/plugin.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/resources.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/rt.jar:/home/xiaoshi/gemhoProject/山西数据推送/shanxi/target/classes:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-starter-amqp/2.3.2.RELEASE/spring-boot-starter-amqp-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-starter/2.3.2.RELEASE/spring-boot-starter-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot/2.3.2.RELEASE/spring-boot-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.3.2.RELEASE/spring-boot-autoconfigure-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.3.2.RELEASE/spring-boot-starter-logging-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/home/xi
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=/home/xiaoshi/environment/jdk1.8
PATH=/home/xiaoshi/environment/apache-maven-3.6.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/sbin:/home/xiaoshi/.local/bin:/home/xiaoshi/bin:/home/xiaoshi/environment/jdk1.8/bin:/home/xiaoshi/environment/go/bin
SHELL=/bin/zsh
DISPLAY=:0
Signal Handlers:
SIGSEGV: [libjvm.so+0xada700], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGBUS: [libjvm.so+0xada700], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGFPE: [libjvm.so+0x90e240], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGPIPE: [libjvm.so+0x90e240], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGXFSZ: [libjvm.so+0x90e240], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGILL: [libjvm.so+0x90e240], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGUSR1: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGUSR2: [libjvm.so+0x90e110], sa_mask[0]=00100000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
SIGHUP: SIG_IGN, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGINT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGTERM: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGQUIT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
--------------- S Y S T E M ---------------
OS:DISTRIB_ID=Deepin
DISTRIB_RELEASE=20
DISTRIB_DESCRIPTION="Deepin 20 Beta"
DISTRIB_CODENAME=apricot
uname:Linux 5.3.0-3-amd64 #1 SMP deepin 5.3.15-6apricot (2020-04-13) x86_64
libc:glibc 2.28 NPTL 2.28
rlimit: STACK 8192k, CORE 0k, NPROC 31135, NOFILE 1048576, AS infinity
load average:1.46 1.94 1.77
/proc/meminfo:
MemTotal: 8104220 kB
MemFree: 662356 kB
MemAvailable: 2466776 kB
Buffers: 222732 kB
Cached: 3374256 kB
SwapCached: 444568 kB
Active: 3269860 kB
Inactive: 2930724 kB
Active(anon): 2316176 kB
Inactive(anon): 1951584 kB
Active(file): 953684 kB
Inactive(file): 979140 kB
Unevictable: 411008 kB
Mlocked: 329820 kB
SwapTotal: 11534332 kB
SwapFree: 8698992 kB
Dirty: 424 kB
Writeback: 0 kB
AnonPages: 2786364 kB
Mapped: 1596052 kB
Shmem: 1511952 kB
KReclaimable: 180424 kB
Slab: 450004 kB
SReclaimable: 180424 kB
SUnreclaim: 269580 kB
KernelStack: 178188 kB
PageTables: 63212 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 15586440 kB
Committed_AS: 25061056 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 212000 kB
VmallocChunk: 0 kB
Percpu: 6368 kB
HardwareCorrupted: 0 kB
AnonHugePages: 745472 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 575988 kB
DirectMap2M: 7694336 kB
DirectMap1G: 0 kB
container (cgroup) information:
container_type: cgroupv1
cpu_cpuset_cpus: 0-7
cpu_memory_nodes: 0
active_processor_count: 8
cpu_quota: -1
cpu_period: 100000
cpu_shares: -1
memory_limit_in_bytes: -1
memory_and_swap_limit_in_bytes: -2
memory_soft_limit_in_bytes: -1
memory_usage_in_bytes: 1835610112
memory_max_usage_in_bytes: 2090500096
CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
/proc/cpuinfo:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
stepping : 10
microcode : 0xca
cpu MHz : 2563.903
cache size : 6144 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 3600.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
stepping : 10
microcode : 0xca
cpu MHz : 2523.735
cache size : 6144 KB
physical id : 0
siblings : 8
core id : 1
cpu cores : 4
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 3600.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
stepping : 10
microcode : 0xca
cpu MHz : 2577.854
cache size : 6144 KB
physical id : 0
siblings : 8
core id : 2
cpu cores : 4
apicid : 4
initial apicid : 4
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 3600.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
stepping : 10
microcode : 0xca
cpu MHz : 2563.847
cache size : 6144 KB
physical id : 0
siblings : 8
core id : 3
cpu cores : 4
apicid : 6
initial apicid : 6
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 3600.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 4
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
stepping : 10
microcode : 0xca
cpu MHz : 2628.648
cache size : 6144 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 3600.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 5
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
stepping : 10
microcode : 0xca
cpu MHz : 2558.984
cache size : 6144 KB
physical id : 0
siblings : 8
core id : 1
cpu cores : 4
apicid : 3
initial apicid : 3
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 3600.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 6
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
stepping : 10
microcode : 0xca
cpu MHz : 2576.048
cache size : 6144 KB
physical id : 0
siblings : 8
core id : 2
cpu cores : 4
apicid : 5
initial apicid : 5
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 3600.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 7
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
stepping : 10
microcode : 0xca
cpu MHz : 2547.337
cache size : 6144 KB
physical id : 0
siblings : 8
core id : 3
cpu cores : 4
apicid : 7
initial apicid : 7
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 3600.00
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
Memory: 4k page, physical 8104220k(661096k free), swap 11534332k(8698992k free)
vm_info: Java HotSpot(TM) 64-Bit Server VM (25.251-b08) for linux-amd64 JRE (1.8.0_251-b08), built on Mar 11 2020 23:20:16 by "java_re" with gcc 7.3.0
time: Tue Aug 4 14:37:10 2020
timezone: CST
elapsed time: 0 seconds (0d 0h 0m 0s)
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.amqp</groupId>
<artifactId>shanxi</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>shanxi</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.10</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-amqp:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.26" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-messaging:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.amqp:spring-rabbit:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.rabbitmq:amqp-client:5.9.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.amqp:spring-amqp:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.retry:spring-retry:1.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.8.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.postgresql:postgresql:42.2.14" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.3.2.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.3.2.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.2.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.16.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.3.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.10.13" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.13" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.3.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.8.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.2.8.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.7.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.amqp:spring-rabbit-test:2.2.9.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.amqp:spring-rabbit-junit:2.2.9.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.rabbitmq:http-client:3.2.0.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-web:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.1" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:1.3.1" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.5" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.3.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.12" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.3.10" level="project" />
</component>
</module>
\ No newline at end of file
package com.amqp.shanxi;
import cn.hutool.json.JSONUtil;
import com.amqp.shanxi.model.DBDeviceInfo;
import com.amqp.shanxi.util.AESUtil;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeoutException;
/*
* 生产者消费确认
*/
public class Sender {
public static final String QUEUE = "test_confirm_queue";
public static void main(String[] args) {
Connection connection = null;
Channel channel = null;
try {
ConnectionFactory factory = new ConnectionFactory();
//ip
factory.setHost("114.115.212.187");
//端口
factory.setPort(5672);
//用户名
factory.setUsername("bhsoft");
//密码
factory.setPassword("bhsoft");
factory.setVirtualHost("/");// rabbitmq默认虚拟机名称为“/”,虚拟机相当于一个独立的mq服务器
// 创建与RabbitMQ服务的TCP连接
connection = factory.newConnection();
// 创建与Exchange的通道,每个连接可以创建多个通道,每个通道代表一个会话任务
channel = connection.createChannel();
// 通道连接交换机
// 通过连接队列 声明队列
channel.queueDeclare(QUEUE, true, false, false, null);
String jsonString = "";
List<DBDeviceInfo> resultList = new ArrayList<DBDeviceInfo>();
DBDeviceInfo dbDeviceInfo = new DBDeviceInfo();
//给DBDeviceInfo实体赋值
dbDeviceInfo.setEquipname("雨量计");
resultList.add(dbDeviceInfo);
//对数据加密
String result = JSONUtil.toJsonStr(resultList);
String encrypt = AESUtil.encrypt(result, "BRlp%IYyTYFntG!g7oPo$N==" , "wP!n$!ZD%0k2g6Gahpdk6l==");
Map<String, Object> resultMap = new HashMap<String, Object>();
//荷载消息内容
while(true) {
resultMap.put("tailingNo","1409240052");
resultMap.put("departmentId","" );
resultMap.put("provinceId", "");
resultMap.put("type","0101");
resultMap.put("sendTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
resultMap.put("datas", encrypt);
jsonString = JSONUtil.toJsonStr(resultMap);
//发送消息
//第一个参数是交换机,第二个参数是routingkey(主题格式)
channel.basicPublish("basicData", "equipInfo.01", null, jsonString.getBytes());
System.out.println("[send] msg " + jsonString);
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("发送成功!");
} else {
System.out.println("发送失败!");
}
Thread.sleep(1000 * 10);
}
} catch (Exception e) {
e.getStackTrace();
} finally {
try {
if (channel != null) {
channel.close();
}
if (connection != null) {
connection.close();
}
} catch (Exception e) {
e.getStackTrace();
}
}
}
}
package com.amqp.shanxi;
import com.amqp.shanxi.service.AlarmDataAMQPService;
import com.amqp.shanxi.service.DeviceStaticDataAMQPService;
import com.amqp.shanxi.service.RealTimeDataAMQPService;
import com.amqp.shanxi.service.ThreadService;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class ShanxiApplication {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(ShanxiApplication.class, args);
DeviceStaticDataAMQPService deviceStaticDataAMQPService = run.getBean(DeviceStaticDataAMQPService.class);
RealTimeDataAMQPService realTimeDataAMQPService = run.getBean(RealTimeDataAMQPService.class);
AlarmDataAMQPService alarmDataAMQPService = run.getBean(AlarmDataAMQPService.class);
try{
ConnectionFactory factory = new ConnectionFactory();
//rabbitmq监听IP
factory.setHost("114.115.212.187");
//rabbitmq监听默认端口
factory.setPort(5672);
//设置访问的用户
factory.setUsername("bhsoft");
factory.setPassword("bhsoft");
factory.setVirtualHost("/");
Connection connection = factory.newConnection();
ThreadService threadService1 = new ThreadService("staticData", connection, deviceStaticDataAMQPService, realTimeDataAMQPService, alarmDataAMQPService);
ThreadService threadService2 = new ThreadService("realTimeData", connection, deviceStaticDataAMQPService, realTimeDataAMQPService,alarmDataAMQPService);
ThreadService threadService3 = new ThreadService("alarmData", connection, deviceStaticDataAMQPService, realTimeDataAMQPService,alarmDataAMQPService);
threadService1.start();
threadService2.start();
threadService3.start();
} catch(Exception e) {
e.printStackTrace();
}
}
}
package com.amqp.shanxi.dao;
import com.amqp.shanxi.model.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface AlarmInfoDao {
/**
* 干滩实时数据
*/
@Select("SELECT c.gantanid AS sensorno, c.jctime AS warningdata, c.gantan AS value, c.ifbj AS warninglevel, b.id AS recordid FROM (" +
" SELECT a.id, a.gantanid, a.jctime, a.gantan, a.bagao, a.podu, a.ifbj from (" +
" SELECT id, gantanid, jctime, gantan, bagao, podu, ifbj, rank() OVER (PARTITION BY gantanid ORDER BY jctime DESC)" +
" FROM tab_gantanweiyi where jctime > now() - INTERVAL '6 hour'" +
" ) a WHERE rank = 1 and ifbj = '1'" +
" ) c INNER JOIN (SELECT id, name FROM tab_sensor) b on c.gantanid = b.name")
List<GantanAlarmInfoModel> findGantanAlarmData();
@Select("SELECT c.sensorname AS sensorno, c.jctime AS warningdata, c.value2 as value, c.ifbj AS warninglevel, b.id AS recordid FROM (" +
" SELECT a.id, a.sensorname, a.jctime, a.value2, a.ifbj FROM (" +
" SELECT id, sensorname, jctime, value2, ifbj, rank() OVER (PARTITION BY sensorname ORDER BY jctime DESC)"+
" FROM tab_kushuiwei WHERE jctime > now() - INTERVAL '6 hour'" +
" ) a WHERE rank = 1 and ifbj = '1'" +
" ) c INNER JOIN (SELECT id, name FROM tab_sensor) b ON c.sensorname = b.name")
List<KushuiweiAlarmInfoModel> findKushuiweiAlarmData();
@Select("SELECT c.sensorname AS sensorno, c.jctime AS warningdata, c.disx AS value, c.ifbj AS warninglevel, b.id AS recordid FROM (" +
" SELECT a.id, a.sensorname, a.jctime, a.disx, a.disy, a.disz, a.ifbj from (" +
" SELECT id, sensorname, jctime, disx, disy, disz, ifbj, rank() OVER (PARTITION BY sensorname ORDER BY jctime DESC)" +
" FROM tab_batidibiaoweiyi where jctime > now() - INTERVAL '6 hour'" +
" ) a WHERE rank = 1 and ifbj = '1'" +
" ) c INNER JOIN (SELECT id, name FROM tab_sensor) b on c.sensorname = b.name")
List<BiaomianweiyiAlarmInfoModel> findBiaomianweiyiAlarmData();
@Select("select c.sensorname AS sensorno, c.jctime AS warningdata, c.value2 as value, c.ifbj AS warninglevel, b.id AS recordid from ("+
" select a.id, a.sensorname, a.jctime, a.value2, a.ifbj from (" +
" select id, sensorname, jctime, value2, ifbj, rank() over (partition by sensorname order by jctime desc)" +
" from tab_jinrunxian where jctime > now() - interval '6 hour'" +
" ) a where rank = 1 and ifbj = '1'" +
" ) c inner join (select id, name from tab_sensor) b on c.sensorname = b.name")
List<JinrunxianAlarmInfoModel> findJinrunxianAlarmData();
@Select("select c.sensorname AS sensorno, c.jctime AS warningdata, c.value2 as value, c.ifbj AS warninglevel, b.id AS recordid from (" +
" select a.id, a.sensorname, a.jctime, a.value2, a.ifbj from (" +
" select id, sensorname, jctime, value2, ifbj, rank() over (partition by sensorname order by jctime desc)" +
" from tab_jiangyuliang where jctime > now() - interval '6 hour'" +
" ) a where rank = 1 and ifbj = '1'" +
" ) c inner join (select id, name from tab_sensor) b on c.sensorname = b.name")
List<JiangyuliangAlarmInfoModel> findJiangyuliangAlarmData();
// 监测项报警
@Select("select a.mark AS itemno,b.id AS recordid, b.yjjb AS rwarninglevel, b.jctime AS warningdata from"+
" (select mark from tab_sensor group by mark) a left join" +
" (select id, alarmtype, yjjb, jctime from tab_alarmtype where status = 0) b on a.mark = b.alarmtype where b.jctime is not null")
List<DeviceAlarmInfoModel> findDeviceAlarmData();
@Select("select alarmname as warningcontent, jctime AS collectdate, yjjb AS rwarninglevel from tab_alarmtype where status = 0")
List<WkkAlarmTimeInfoModel> findWkkAlarmData();
@Select("select c.sensorname AS sensorno, c.jctime AS warningdata, c.value2 as value, c.ifbj AS warninglevel, b.id AS recordid from (" +
" select a.id, a.sensorname, a.jctime, a.value2, a.ifbj from ("+
" select id, sensorname, jctime, value2, ifbj, rank() over (partition by sensorname order by jctime desc)"+
" from tab_shuipingweiyi where jctime > now() - interval '6 hour'" +
" ) a where rank = 1 and ifbj = '1'" +
" ) c inner join (select id, name from tab_sensor) b on c.sensorname = b.name")
List<NeibuweiyiAlarmInfoModel> findNeibushuipingAlarmData();
@Select("select c.sensorname AS sensorno, c.jctime AS warningdata, c.value2 as value, c.ifbj AS warninglevel, b.id AS recordid from (" +
" select a.id, a.sensorname, a.jctime, a.value2, a.ifbj from (" +
" select id, sensorname, jctime, value2, ifbj, rank() over (partition by sensorname order by jctime desc)" +
" from tab_neibuchenjiang where jctime > now() - interval '6 hour'" +
" ) a where rank = 1 and ifbj = '1'" +
" ) c inner join (select id, name from tab_sensor) b on c.sensorname = b.name")
List<NeibuweiyiAlarmInfoModel> findNeibuchenjiangAlarmData();
}
package com.amqp.shanxi.dao;
import com.amqp.shanxi.model.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
public interface DeviceStaticDataInfoDao {
@Select("SELECT id AS equipno, name AS equipname FROM tab_sensor WHERE mark = '干滩2'")
List<GantanDeviceInfoModel> findGantanDeviceInfo();
@Select("SELECT id AS equipno, name AS equipname FROM tab_sensor WHERE mark = '库水位'")
List<KushuiweiDeviceInfoModel> findKushuiweiDeviceInfo();
@Select("SELECT id AS equipno, name AS equipname FROM tab_sensor WHERE mark = '坝体表面位移'")
List<BiaomianweiyiDeviceInfoModel> findBiaomianweiyiDeviceInfo();
@Select("SELECT id AS equipno, name AS equipname FROM tab_sensor WHERE mark = '浸润线'")
List<JinrunxianDeviceInfoModel> findJinrunxianDeviceInfo();
@Select("SELECT id AS equipno, name AS equipname FROM tab_sensor WHERE mark = '雨量计'")
List<JinrunxianDeviceInfoModel> findJiangyuliangDeviceInfo();
@Select("SELECT id AS equipno, name AS equipname FROM tab_sensor WHERE mark = '坝体内部水平位移' or mark = '坝体内部沉降'")
List<NeibuweiyiDeviceInfoModel> findNeibuweiyiDeviceInfo();
}
package com.amqp.shanxi.dao;
import com.amqp.shanxi.model.*;
import lombok.Data;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface RealTimeInfoDao {
/**
* 干滩实时数据
*/
@Select("SELECT c.gantanid AS sensorno, c.jctime AS collectdate, c.gantan AS value, c.bagao AS beachTopHeight, c.podu AS beachLongSlope, c.ifbj AS valuestate, b.id AS recordid FROM (" +
" SELECT a.id, a.gantanid, a.jctime, a.gantan, a.bagao, a.podu, a.ifbj from (" +
" SELECT id, gantanid, jctime, gantan, bagao, podu, ifbj, rank() OVER (PARTITION BY gantanid ORDER BY jctime DESC)" +
" FROM tab_gantanweiyi where jctime > now() - INTERVAL '6 hour'" +
" ) a WHERE rank = 1" +
" ) c INNER JOIN (SELECT id, name FROM tab_sensor) b on c.gantanid = b.name")
List<GantanRealTimeInfoModel> findGantanRealTimeData();
@Select("SELECT c.sensorname AS sensorno, c.jctime AS collectdate, c.value2 as value, c.ifbj AS valuestate, b.id AS recordid FROM (" +
" SELECT a.id, a.sensorname, a.jctime, a.value2, a.ifbj FROM (" +
" SELECT id, sensorname, jctime, value2, ifbj, rank() OVER (PARTITION BY sensorname ORDER BY jctime DESC)"+
" FROM tab_kushuiwei WHERE jctime > now() - INTERVAL '6 hour'" +
" ) a WHERE rank = 1" +
" ) c INNER JOIN (SELECT id, name FROM tab_sensor) b ON c.sensorname = b.name")
List<KushuiweiRealTimeInfoModel> findKushuiweiRealTimeData();
@Select("SELECT c.sensorname AS sensorno, c.jctime AS collectdate, c.disx AS xvalue, c.disy AS yvalue, c.disz AS zvalue, c.ifbj AS displacementstate, b.id AS recordid FROM (" +
" SELECT a.id, a.sensorname, a.jctime, a.disx, a.disy, a.disz, a.ifbj from (" +
" SELECT id, sensorname, jctime, disx, disy, disz, ifbj, rank() OVER (PARTITION BY sensorname ORDER BY jctime DESC)" +
" FROM tab_batidibiaoweiyi where jctime > now() - INTERVAL '6 hour'" +
" ) a WHERE rank = 1" +
" ) c INNER JOIN (SELECT id, name FROM tab_sensor) b on c.sensorname = b.name")
List<BiaomianweiyiRealTimeInfoModel> findBiaomianweiyiRealTimeData();
@Select("select c.sensorname AS sensorno, c.jctime AS collectdate, c.value2 as value, c.ifbj AS valuestate, b.id AS recordid from ("+
" select a.id, a.sensorname, a.jctime, a.value2, a.ifbj from (" +
" select id, sensorname, jctime, value2, ifbj, rank() over (partition by sensorname order by jctime desc)" +
" from tab_jinrunxian where jctime > now() - interval '6 hour'" +
" ) a where rank = 1" +
" ) c inner join (select id, name from tab_sensor) b on c.sensorname = b.name")
List<JinrunxianRealTimeInfoModel> findJinrunxianRealTimeData();
@Select("select c.sensorname AS sensorno, c.jctime AS collectdate, c.value2 as value, c.ifbj AS onehourvaluestate, b.id AS recordid from (" +
" select a.id, a.sensorname, a.jctime, a.value2, a.ifbj from (" +
" select id, sensorname, jctime, value2, ifbj, rank() over (partition by sensorname order by jctime desc)" +
" from tab_jiangyuliang where jctime > now() - interval '6 hour'" +
" ) a where rank = 1" +
" ) c inner join (select id, name from tab_sensor) b on c.sensorname = b.name")
List<JiangyuliangRealTimeInfoModel> findJiangyuliangRealTimeData();
// 监测项报警
@Select("select a.mark AS itemno,b.id AS recordid, b.yjjb AS state, b.jctime AS collectdate from"+
" (select mark from tab_sensor group by mark) a left join" +
" (select id, alarmtype, yjjb, jctime from tab_alarmtype where status = 0) b on a.mark = b.alarmtype")
List<DeviceRealTimeInfoModel> findDeviceRealTimeData();
@Select("select jctime AS collectdate, yjjb AS state from tab_alarmtype where status = 0")
List<WkkRealTimeInfoModel> findWkkRealTimeData();
/**
* 设备离线
* @return
*/
@Select("select b.id AS recordid, b.name, a.jctime from" +
" (select jctime, gantanid from tab_gantanweiyi where jctime > now() - interval '6 hour') a right join" +
" (select id, name from tab_sensor where mark = '干滩2') b on a.gantanid = b.name where jctime is null" +
" union all" +
" select b.id AS recordid, b.name, a.jctime from" +
" (select sensorname, jctime from tab_kushuiwei where jctime > now() - interval '6 hour') a right join" +
" (select id, name from tab_sensor where mark = '库水位') b on a.sensorname = b.name where a.jctime is null" +
" union all" +
" select b.id AS recordid, b.name, a.jctime from" +
" (select sensorname, jctime from tab_batidibiaoweiyi where jctime > now() - interval '6 hour') a right join" +
" (select id, name from tab_sensor where mark = '坝体表面位移') b on a.sensorname = b.name where a.jctime is null" +
" union all"+
" select b.id AS recordid, b.name, a.jctime from" +
" (select sensorname, jctime from tab_jinrunxian where jctime > now() - interval '6 hour') a right join" +
" (select id, name from tab_sensor where mark = '浸润线') b on a.sensorname = b.name where a.jctime is null" +
" union all" +
" select b.id AS recordid, b.name, a.jctime from" +
" (select sensorname, jctime from tab_jiangyuliang where jctime > now() - interval '6 hour') a right join" +
" (select id, name from tab_sensor where mark = '雨量计') b on a.sensorname = b.name where a.jctime is null")
List<DeviceOffLineInfoModel> findDeviceOffLineData();
/**
* 内部位移(水平)
* @return
*/
@Select("select c.sensorname AS sensorno, c.jctime AS collectdate, c.value2 as xvalue, 0 as yvalue, c.ifbj AS valuestate, b.id AS recordid from (" +
" select a.id, a.sensorname, a.jctime, a.value2, a.ifbj from ("+
" select id, sensorname, jctime, value2, ifbj, rank() over (partition by sensorname order by jctime desc)" +
" from tab_shuipingweiyi where jctime > now() - interval '6 hour'" +
" ) a where rank = 1" +
" ) c inner join (select id, name from tab_sensor) b on c.sensorname = b.name")
List<NeibuweiyiRealTimeInfoModel> findNeibuShuipingRealTimeData();
/**
* 内部位移(沉降)
* @return
*/
@Select("select c.sensorname AS sensorno, c.jctime AS collectdate, c.value2 as yvalue, 0 as xvalue, c.ifbj AS valuestate, b.id AS recordid from (" +
" select a.id, a.sensorname, a.jctime, a.value2, a.ifbj from (" +
" select id, sensorname, jctime, value2, ifbj, rank() over (partition by sensorname order by jctime desc)" +
" from tab_neibuchenjiang where jctime > now() - interval '6 hour'" +
" ) a where rank = 1" +
" ) c inner join (select id, name from tab_sensor) b on c.sensorname = b.name")
List<NeibuweiyiRealTimeInfoModel> findNeibuChenjiangRealTimeData();
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class BiaomianweiyiAlarmInfoModel {
private Integer recordid;
private String sensorno;
private String collectdate;
private String value;
private String warninglevel;
private String rvalue;
private String rwarninglevel;
private String warningcontent;
private String warningdata;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class BiaomianweiyiDeviceInfoModel {
private String equipno;
private String equipname;
private String installationdate;
private String installationlocate;
private String manufacture;
private Double longitude;
private Double latitude;
private Double altitude;
private Double onelevelalarm;
private Double twolevelalarm;
private Double threelevelalarm;
private Double rateonelevelalarm;
private Double ratetwolevelalarm;
private Double ratethreelevelalarm;
private String is_used;
private String is_sync;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class BiaomianweiyiRealTimeInfoModel {
private Integer recordid;
private String sensorno;
private String collectdate;
private Double xvalue;
private Double yvalue;
private Double zvalue;
private Double displacement;
private String displacementstate;
private Double displacementrate;
private String displacementratestate;
}
package com.amqp.shanxi.model;
/**
* 干滩设备信息实体类
*/
public class DBDeviceInfo {
private String equipno;//设备编号
private String equipname;//设备名称
private String installationdate;//安装日期
private String manufacture;//安装厂家
private Double installlocation;//安装高度
private String installationlocate;//安装位置
private Double longitude;//经度
private Double latitude;//纬度
private Double altitude;//高程
private Double onelevelalarm;//一级预警阈值
private Double twolevelalarm;//二级预警阈值
private Double threelevelalarm;//三级预警阈值
private Double honelevelalarm;//安全超高一级预警阈值
private Double htwolevelalarm;//安全超高二级预警阈值
private Double hthreelevelalarm;//安全超高三级预警阈值
private String is_used;//设备在用状态
private String is_sync;//同步状态
public String getEquipno() {
return equipno;
}
public void setEquipno(String equipno) {
this.equipno = equipno;
}
public String getEquipname() {
return equipname;
}
public void setEquipname(String equipname) {
this.equipname = equipname;
}
public String getInstallationdate() {
return installationdate;
}
public void setInstallationdate(String installationdate) {
this.installationdate = installationdate;
}
public String getManufacture() {
return manufacture;
}
public void setManufacture(String manufacture) {
this.manufacture = manufacture;
}
public Double getInstalllocation() {
return installlocation;
}
public void setInstalllocation(Double installlocation) {
this.installlocation = installlocation;
}
public String getInstallationlocate() {
return installationlocate;
}
public void setInstallationlocate(String installationlocate) {
this.installationlocate = installationlocate;
}
public Double getLongitude() {
return longitude;
}
public void setLongitude(Double longitude) {
this.longitude = longitude;
}
public Double getLatitude() {
return latitude;
}
public void setLatitude(Double latitude) {
this.latitude = latitude;
}
public Double getAltitude() {
return altitude;
}
public void setAltitude(Double altitude) {
this.altitude = altitude;
}
public Double getOnelevelalarm() {
return onelevelalarm;
}
public void setOnelevelalarm(Double onelevelalarm) {
this.onelevelalarm = onelevelalarm;
}
public Double getTwolevelalarm() {
return twolevelalarm;
}
public void setTwolevelalarm(Double twolevelalarm) {
this.twolevelalarm = twolevelalarm;
}
public Double getThreelevelalarm() {
return threelevelalarm;
}
public void setThreelevelalarm(Double threelevelalarm) {
this.threelevelalarm = threelevelalarm;
}
public Double getHonelevelalarm() {
return honelevelalarm;
}
public void setHonelevelalarm(Double honelevelalarm) {
this.honelevelalarm = honelevelalarm;
}
public Double getHtwolevelalarm() {
return htwolevelalarm;
}
public void setHtwolevelalarm(Double htwolevelalarm) {
this.htwolevelalarm = htwolevelalarm;
}
public Double getHthreelevelalarm() {
return hthreelevelalarm;
}
public void setHthreelevelalarm(Double hthreelevelalarm) {
this.hthreelevelalarm = hthreelevelalarm;
}
public String getIs_used() {
return is_used;
}
public void setIs_used(String is_used) {
this.is_used = is_used;
}
public String getIs_sync() {
return is_sync;
}
public void setIs_sync(String is_sync) {
this.is_sync = is_sync;
}
@Override
public String toString() {
return "DBDeviceInfo [equipno=" + equipno + ", equipname=" + equipname + ", installationdate="
+ installationdate + ", manufacture=" + manufacture + ", installlocation=" + installlocation
+ ", installationlocate=" + installationlocate + ", longitude=" + longitude + ", latitude=" + latitude
+ ", altitude=" + altitude + ", onelevelalarm=" + onelevelalarm + ", twolevelalarm=" + twolevelalarm
+ ", threelevelalarm=" + threelevelalarm + ", honelevelalarm=" + honelevelalarm + ", htwolevelalarm="
+ htwolevelalarm + ", hthreelevelalarm=" + hthreelevelalarm + ", is_used=" + is_used + ", is_sync="
+ is_sync + "]";
}
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class DeviceAlarmInfoModel {
private Integer recordid;
private String itemno;
private String rwarninglevel;
private String warningcontent;
private String warningdata;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class DeviceOffLineInfoModel {
private Integer recordid;
private String sensorno;
private String collectdate;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class DeviceRealTimeInfoModel {
private Integer recordid;
private String itemno;
private String collectdate;
private String state;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class GantanAlarmInfoModel {
private Integer recordid;
private String sensorno;
private String value;
private String warninglevel;
private String hvalue;
private String hwarninglevel;
private String warningcontent;
private String warningdata;
}
package com.amqp.shanxi.model;
import lombok.Data;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@Data
public class GantanDeviceInfoModel {
private String equipno;
private String equipname;
private String installationdate;
private String installationlocate;
private Double installlocation;
private String manufacture;
private Double longitude;
private Double latitude;
private Double altitude;
private Double onelevelalarm;
private Double twolevelalarm;
private Double threelevelalarm;
private Double honelevelalarm;
private Double htwolevelalarm;
private Double hthreelevelalarm;
private String is_used;
private String is_sync;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class GantanRealTimeInfoModel {
private Integer recordid;
private String sensorno;
private String collectdate;
private Double value;
private String valuestate;
private Double freeBoard;
private String freeBoardState;
private String beachLongSlope;
private Double beachTopHeight;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class JiangyuliangAlarmInfoModel {
private Integer recordid;
private String sensorno;
private String value;
private String warninglevel;
private String threevalue;
private String threewarninglevel;
private String sixvalue;
private String sixwarninglevel;
private String twelvevalue;
private String twelvewarninglevel;
private String twentyvalue;
private String twentywarninglevel;
private String warningcontent;
private String warningdata;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class JiangyuliangDeviceInfoModel {
private String equipno;
private String equipname;
private String installationdate;
private String installationlocate;
private String manufacture;
private Double longitude;
private Double latitude;
private Double altitude;
private Double onelevelalarm;
private Double twolevelalarm;
private Double threelevelalarm;
private Double threehoursonelevelalarm;
private Double threehourstwolevelalarm;
private Double threehoursthreelevelalarm;
private Double sixhoursonelevelalarm;
private Double sixhourstwolevelalarm;
private Double sixhoursthreelevelalarm;
private Double twelvehoursonelevelalarm;
private Double twolvehourstwolevelalarm;
private Double twolvehoursthreelevelalarm;
private Double tfhoursonelevelalarm;
private Double tfhourstwolevelalarm;
private Double tfhoursthreelevelalarm;
private String is_used;
private String is_sync;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class JiangyuliangRealTimeInfoModel {
private Integer recordid;
private String sensorno;
private String collectdate;
private Double value;
private Double onehourvalue;
private String onehourvaluestate;
private Double threehoursvalue;
private String threehoursvaluestate;
private Double sixhoursvalue;
private String sixhoursvaluestate;
private Double twelvehoursvalue;
private String twelvehoursvaluestate;
private Double twentyhoursvalue;
private String twentyhoursvaluestate;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class JinrunxianAlarmInfoModel {
private Integer recordid;
private String sensorno;
private String value;
private String warninglevel;
private String warningcontent;
private String warningdata;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class JinrunxianDeviceInfoModel {
private String equipno;
private String equipname;
private String installationdate;
private String installationlocate;
private String manufacture;
private Double holedepth;
private Double burialdepath;
private Double longitude;
private Double latitude;
private Double altitude;
private Double onelevelalarm;
private Double twolevelalarm;
private Double threelevelalarm;
private String is_used;
private String is_sync;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class JinrunxianRealTimeInfoModel {
private Integer recordid;
private String sensorno;
private String collectdate;
private Double value;
private String valuestate;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class KushuiweiAlarmInfoModel {
private Integer recordid;
private String sensorno;
private String value;
private String warninglevel;
private String warningcontent;
private String warningdata;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class KushuiweiDeviceInfoModel {
private String equipno;
private String equipname;
private String installationdate;
private String installationlocate;
private Double installlocation;
private String manufacture;
private Double longitude;
private Double latitude;
private Double altitude;
private Double onelevelalarm;
private Double twolevelalarm;
private Double threelevelalarm;
private String is_used;
private String is_sync;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class KushuiweiRealTimeInfoModel {
private Integer recordid;
private String sensorno;
private String collectdate;
private Double value;
private String valuestate;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class NeibuweiyiAlarmInfoModel {
private Integer recordid;
private String sensorno;
private String value;
private String warninglevel;
private String rvalue;
private String rwarninglevel;
private String warningcontent;
private String warningdata;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class NeibuweiyiDeviceInfoModel {
private String equipno;
private String equipname;
private String installationdate;
private String installationlocate;
private String manufacture;
private Double longitude;
private Double latitude;
private Double altitude;
private Double onelevelalarm;
private Double twolevelalarm;
private Double threelevelalarm;
private Double rateonelevelalarm;
private Double ratetwolevelalarm;
private Double ratethreelevelalarm;
private String is_used;
private String is_sync;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class NeibuweiyiRealTimeInfoModel {
private Integer recordid;
private String sensorno;
private String collectdate;
private Double xvalue;
private Double yvalue;
private Double displacement;
private String displacementstate;
private Double displacementrate;
private String displacementratestate;
}
package com.amqp.shanxi.model;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 荷载 (消息内容)
*/
@Data
public class StaticDataInfoModel implements Serializable {
private String tailingNo;
private String departmentId;
private String provinceId;
private String type;
private String sendTime;
private String datas;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class TabSensorModel {
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class WkkAlarmTimeInfoModel {
private Integer recordid;
private String rwarninglevel;
private String warningcontent;
private String warningdata;
}
package com.amqp.shanxi.model;
import lombok.Data;
@Data
public class WkkRealTimeInfoModel {
private Integer recordid;
private String collectdat;
private String state;
}
package com.amqp.shanxi.service;
import com.amqp.shanxi.util.AMQPTopicStaticDataConfig;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class AlarmDataAMQPService {
@Autowired
private AlarmDataService alarmDataService;
/**
* 实时数据推送入口
*/
public void run(Connection connection) {
publishAlarm("gt", connection);
publishAlarm("ksw", connection);
publishAlarm("bmwy", connection);
publishAlarm("nbwy", connection);
publishAlarm("jrx", connection);
publishAlarm("jyl", connection);
publishAlarm("device", connection);
publishAlarm("wkk", connection);
}
public void publishAlarm(String type, Connection connection) {
try {
if ("gt".equals(type)) {
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEGANtANALARM
, null
, alarmDataService.gantanAlarm().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("干滩报警信息发送成功!");
} else {
System.out.println("干滩报警信息发送失败!");
}
channel.close();
} else if ("ksw".equals(type)) {
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEKUSHUIWEIALARM
, null
, alarmDataService.kushuiweiAlarm().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("库水位报警信息发送成功!");
} else {
System.out.println("库水位报警信息发送失败!");
}
channel.close();
} else if ("bmwy".equals(type)) {
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEBIAOMIANWEIYIALARM
, null
, alarmDataService.biaomianweiyiAlarm().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("表面位移报警信息发送成功!");
} else {
System.out.println("表面位移报警信息发送失败!");
}
channel.close();
} else if ("nbwy".equals(type)) {
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUENEIBUWEIYIALARM
, null
, alarmDataService.neibushuipingAlarm().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("内部水平报警信息发送成功!");
} else {
System.out.println("内部水平报警信息发送失败!");
}
// ====================内部沉降
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUENEIBUWEIYIALARM
, null
, alarmDataService.neibuchenjiangAlarm().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("内部沉降报警信息发送成功!");
} else {
System.out.println("内部沉降报警信息发送失败!");
}
channel.close();
} else if ("jrx".equals(type)) {
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEJINRUNXIANALARM
, null
, alarmDataService.jinrunxianAlarm().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("浸润线报警信息发送成功!");
} else {
System.out.println("浸润线报警信息发送失败!");
}
channel.close();
} else if ("jyl".equals(type)) {
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEJIANGYULIANGALARM
, null
, alarmDataService.jiangyuliangAlarm().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("降雨量报警信息发送成功!");
} else {
System.out.println("降雨量报警信息发送失败!");
}
channel.close();
} else if ("sll".equals(type)) {
} else if ("device".equals(type)) {
// 监测项数据信息
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEDEVICEALARM
, null
, alarmDataService.deviceAlarm().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("检测项报警信息发送成功!");
} else {
System.out.println("检测项报警信息发送失败!");
}
channel.close();
} else if ("wkk".equals(type)) {
// 尾矿库数据信息
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEWKKALARM
, null
, alarmDataService.wkkAlarm().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("尾矿库报警信息发送成功!");
} else {
System.out.println("尾矿库报警信息发送失败!");
}
channel.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/*
@RabbitListener(queues ="equipOfflineInfo" )
public void receiveMessage1(String str){
System.out.println("我是监听干滩topic.message的, dataInfo.01: " + str);
}
*/
}
package com.amqp.shanxi.service;
import org.springframework.stereotype.Service;
@Service
public interface AlarmDataService {
String gantanAlarm();
String kushuiweiAlarm();
String biaomianweiyiAlarm();
String jinrunxianAlarm();
String jiangyuliangAlarm();
String deviceAlarm();
String wkkAlarm();
String neibuchenjiangAlarm();
String neibushuipingAlarm();
}
package com.amqp.shanxi.service;
import cn.hutool.json.JSONUtil;
import com.amqp.shanxi.ShanxiApplication;
import com.amqp.shanxi.model.StaticDataInfoModel;
import com.amqp.shanxi.service.impl.DeviceStaticDataInfoServiceImpl;
import com.amqp.shanxi.util.AMQPTopicStaticDataConfig;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class DeviceStaticDataAMQPService {
@Autowired
private RabbitTemplate amqpTemplate;
@Autowired
private DeviceStaticDataInfoService deviceStaticDataInfoService;
public void run(Connection connection) {
try{
// 设备信息
this.publish("gt", connection);
this.publish("ksw",connection);
this.publish("bmwy", connection);
this.publish("jrx", connection);
this.publish("jyl", connection);
this.publish("nbwy", connection);
}catch(Exception e) {
e.printStackTrace();
}
}
public void publish(String type, Connection connection) {
try {
if ("gt".equals(type)) {
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.TOPIC_EXCHANGE, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.TOPIC_EXCHANGE
, AMQPTopicStaticDataConfig.TOPIC_ROUTINGKEY_GANTAN
, null
, JSONUtil.toJsonStr(deviceStaticDataInfoService.gantanDeviceInfo()).getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("干滩设备信息发送成功!");
} else {
System.out.println("干滩设备信息发送失败!");
}
channel.close();
} else if ("ksw".equals(type)) {
Channel channel = connection.createChannel();
channel.basicPublish(AMQPTopicStaticDataConfig.TOPIC_EXCHANGE
, AMQPTopicStaticDataConfig.TOPIC_ROUTINGKEY_KUSHUIWEI
, null
, JSONUtil.toJsonStr(deviceStaticDataInfoService.kushuiweiDeviceInfo()).getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("库水位设备信息发送成功!");
} else {
System.out.println("库水位设备信息发送失败!");
}
channel.close();
} else if ("bmwy".equals(type)) {
Channel channel = connection.createChannel();
channel.basicPublish(AMQPTopicStaticDataConfig.TOPIC_EXCHANGE
, AMQPTopicStaticDataConfig.TOPIC_ROUTINGKEY_BIAOMIANWEIYI
, null
, JSONUtil.toJsonStr(deviceStaticDataInfoService.biaomianweiyiDeviceInfo()).getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("表面位移设备信息发送成功!");
} else {
System.out.println("表面位移设备信息发送失败!");
}
channel.close();
} else if ("nbwy".equals(type)) {
Channel channel = connection.createChannel();
channel.basicPublish(AMQPTopicStaticDataConfig.TOPIC_EXCHANGE
, AMQPTopicStaticDataConfig.TOPIC_ROUTINGKEY_NEIBUWEIYI
, null
, JSONUtil.toJsonStr(deviceStaticDataInfoService.neibuweiyiDeviceInfo()).getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("内部位移设备信息发送成功!");
} else {
System.out.println("内部位移设备信息发送失败!");
}
channel.close();
} else if ("jrx".equals(type)) {
Channel channel = connection.createChannel();
channel.basicPublish(AMQPTopicStaticDataConfig.TOPIC_EXCHANGE
, AMQPTopicStaticDataConfig.TOPIC_ROUTINGKEY_JINRUNXIAN
, null
, JSONUtil.toJsonStr(deviceStaticDataInfoService.jinrunxianDeviceInfo()).getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("浸润线设备信息发送成功!");
} else {
System.out.println("浸润线设备信息发送失败!");
}
channel.close();
} else if ("jyl".equals(type)) {
Channel channel = connection.createChannel();
channel.basicPublish(AMQPTopicStaticDataConfig.TOPIC_EXCHANGE
, AMQPTopicStaticDataConfig.TOPIC_ROUTINGKEY_JIANGYULIANG
, null
, JSONUtil.toJsonStr(deviceStaticDataInfoService.jiangyuliangDeviceInfo()).getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("降雨量设备信息发送成功!");
} else {
System.out.println("降雨量设备信息发送失败!");
}
channel.close();
} else if ("sll".equals(type)) {
}
}catch(Exception e) {
e.printStackTrace();
}
}
/**
* 以下是监听,接收队列中消息
*
*/
/* @RabbitListener(queues ="equipInfo.01" )
public void receiveMessage1(String str){
System.out.println("我是监听干滩topic.message的, 消息队列equipInfo.01: " + str);
}
@RabbitListener(queues ="equipInfo.02" )
public void receiveMessage2(String str){
System.out.println("我是监听库水位topic.message的, 消息队列equipInfo.02: " + str);
}
@RabbitListener(queues ="equipInfo.03" )
public void receiveMessage3(String str){
System.out.println("我是监听表面位移topic.message的, 消息队列equipInfo.03: " + str);
}
@RabbitListener(queues ="equipInfo.05" )
public void receiveMessage5(String str){
System.out.println("我是监听浸润线topic.message的, 消息队列equipInfo.05: " + str);
}
@RabbitListener(queues ="equipInfo.06" )
public void receiveMessage6(String str){
System.out.println("我是监听降雨量topic.message的, 消息队列equipInfo.06: " + str);
}*/
}
package com.amqp.shanxi.service;
import com.amqp.shanxi.model.StaticDataInfoModel;
import org.springframework.stereotype.Service;
@Service
public interface DeviceStaticDataInfoService {
StaticDataInfoModel gantanDeviceInfo();
StaticDataInfoModel kushuiweiDeviceInfo();
StaticDataInfoModel biaomianweiyiDeviceInfo();
StaticDataInfoModel jinrunxianDeviceInfo();
StaticDataInfoModel jiangyuliangDeviceInfo();
StaticDataInfoModel neibuweiyiDeviceInfo();
}
package com.amqp.shanxi.service;
import cn.hutool.json.JSONUtil;
import com.amqp.shanxi.util.AMQPTopicStaticDataConfig;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class RealTimeDataAMQPService {
@Autowired
private RealTimeInfoService realTimeInfoService;
/**
* 实时数据推送入口
*/
public void run(Connection connection) {
publishRealTime("gt", connection);
publishRealTime("ksw", connection);
publishRealTime("bmwy", connection);
publishRealTime("nbwy", connection);
publishRealTime("jrx", connection);
publishRealTime("jyl", connection);
publishRealTime("device", connection);
publishRealTime("wkk", connection);
publishRealTime("offline", connection);
}
public void publishRealTime(String type, Connection connection) {
try {
if ("gt".equals(type)) {
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEGANTANREALTIME
, null
, realTimeInfoService.gantanRealTimeData().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("干滩实时数据发送成功!");
} else {
System.out.println("干滩实时数据发送失败!");
}
channel.close();
} else if ("ksw".equals(type)) {
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEKUSHUIWEIREALTIME
, null
, realTimeInfoService.kushuiweiRealTimeData().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("库水位实时数据发送成功!");
} else {
System.out.println("库水位实时数据发送失败!");
}
channel.close();
} else if ("bmwy".equals(type)) {
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEBIAOMIANWEIYIREALTIME
, null
, realTimeInfoService.biaomianweiyiRealTimeData().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("表面位移实时数据发送成功!");
} else {
System.out.println("表面位移实时数据发送失败!");
}
channel.close();
} else if ("nbwy".equals(type)) {
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUENEIBUWEIYIREALTIME
, null
, realTimeInfoService.neibuChenJiangRealTimeData().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("内部沉降实时数据发送成功!");
} else {
System.out.println("内部沉降实时数据发送失败!");
}
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUENEIBUWEIYIREALTIME
, null
, realTimeInfoService.neibuShuiPingRealTimeData().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("内部水平实时数据发送成功!");
} else {
System.out.println("内部水平实时数据发送失败!");
}
channel.close();
} else if ("jrx".equals(type)) {
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEJINRUNXIANREALTIME
, null
, realTimeInfoService.jinrunxianRealTimeData().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("浸润线实时数据发送成功!");
} else {
System.out.println("浸润线实时数据发送失败!");
}
channel.close();
} else if ("jyl".equals(type)) {
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEJIANGYULIANGREALTIME
, null
, realTimeInfoService.jiangyuliangRealTimeData().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("降雨量实时数据发送成功!");
} else {
System.out.println("降雨量实时数据发送失败!");
}
channel.close();
} else if ("sll".equals(type)) {
} else if ("device".equals(type)) {
// 监测项数据信息
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEDEVICEREALTIME
, null
, realTimeInfoService.deviceRealTimeData().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("检测项实时数据发送成功!");
} else {
System.out.println("检测项实时数据发送失败!");
}
channel.close();
} else if ("wkk".equals(type)) {
// 尾矿库数据信息
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEWKKREALTIME
, null
, realTimeInfoService.wkkRealTimeData().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("尾矿库实时数据发送成功!");
} else {
System.out.println("尾矿库实时数据发送失败!");
}
channel.close();
} else if ("offline".equals(type)) {
// 设备离线
Channel channel = connection.createChannel();
// channel.exchangeDeclare(AMQPTopicStaticDataConfig.topicExchangeRealTime, "topic", false, true, null);
channel.basicPublish(AMQPTopicStaticDataConfig.topicExchangeRealTime
, AMQPTopicStaticDataConfig.TOPICQUEUEOFFLINEINFO
, null
, realTimeInfoService.deviceOffLineData().getBytes());
//消息确认
channel.confirmSelect();
if (channel.waitForConfirms()) {
System.out.println("设备离线实时数据发送成功!");
} else {
System.out.println("设备离线实时数据发送失败!");
}
channel.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/*
@RabbitListener(queues ="equipOfflineInfo" )
public void receiveMessage1(String str){
System.out.println("我是监听干滩topic.message的, dataInfo.01: " + str);
}
*/
}
package com.amqp.shanxi.service;
import org.springframework.stereotype.Service;
@Service
public interface RealTimeInfoService {
String gantanRealTimeData();
String kushuiweiRealTimeData();
String biaomianweiyiRealTimeData();
String jinrunxianRealTimeData();
String jiangyuliangRealTimeData();
String deviceRealTimeData();
String wkkRealTimeData();
String deviceOffLineData();
String neibuShuiPingRealTimeData();
String neibuChenJiangRealTimeData();
}
package com.amqp.shanxi.service;
import com.amqp.shanxi.model.TabSensorModel;
import java.util.List;
public interface SensorDataService {
List<TabSensorModel> findSensorKind();
}
package com.amqp.shanxi.service;
import com.rabbitmq.client.Connection;
import org.springframework.stereotype.Component;
@Component
public class ThreadService extends Thread{
private String type;
private Connection connection;
private DeviceStaticDataAMQPService deviceStaticDataAMQPService;
private RealTimeDataAMQPService realTimeDataAMQPService;
private AlarmDataAMQPService alarmDataAMQPService;
public ThreadService() {}
public ThreadService(String type, Connection connection, DeviceStaticDataAMQPService deviceStaticDataAMQPService, RealTimeDataAMQPService realTimeDataAMQPService, AlarmDataAMQPService alarmDataAMQPService) {
this.type = type;
this.connection = connection;
this.deviceStaticDataAMQPService = deviceStaticDataAMQPService;
this.realTimeDataAMQPService = realTimeDataAMQPService;
this.alarmDataAMQPService = alarmDataAMQPService;
}
@Override
public void run() {
try{
if("staticData".equals(type)) {
while(true) {
deviceStaticDataAMQPService.run(connection);
System.out.println("设备信息发送完成=====================================================================================");
Thread.sleep(360000 * 24);
}
}else if ("realTimeData".equals(type)) {
while(true) {
realTimeDataAMQPService.run(connection);
System.out.println("实时数据发送完成======================================================================================");
Thread.sleep(60000 * 2);
}
}else if("alarmData".equals(type)){
while(true) {
alarmDataAMQPService.run(connection);
System.out.println("设备报警信息发送完成===================================================================================");
Thread.sleep(60000);
}
}
}catch(Exception e) {
e.printStackTrace();
}
}
}
package com.amqp.shanxi.service.impl;
import cn.hutool.json.JSONUtil;
import com.amqp.shanxi.dao.AlarmInfoDao;
import com.amqp.shanxi.model.*;
import com.amqp.shanxi.service.AlarmDataService;
import com.amqp.shanxi.util.AESUtil;
import com.amqp.shanxi.util.StaticParamUtils;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Service
public class AlarmDataServiceImpl implements AlarmDataService {
@Autowired
private AmqpTemplate amqpTemplate;
@Autowired
private AlarmInfoDao alarmInfoDao;
@Override
public String gantanAlarm() {
try {
StaticDataInfoModel gantanAlarmInfo = new StaticDataInfoModel();
List<GantanAlarmInfoModel> gantanAlarmData = alarmInfoDao.findGantanAlarmData();
for (GantanAlarmInfoModel gantanAlarmInfoModel : gantanAlarmData) {
// 报警
gantanAlarmInfoModel.setSensorno(StaticParamUtils.GANTANNO + (gantanAlarmInfoModel.getRecordid() >= 10 ? String.valueOf(gantanAlarmInfoModel.getRecordid()) : "0" + gantanAlarmInfoModel.getRecordid()));
if (gantanAlarmInfoModel.getWarningdata().contains(".")) {
gantanAlarmInfoModel.setWarningdata(gantanAlarmInfoModel.getWarningdata().substring(0, gantanAlarmInfoModel.getWarningdata().indexOf(".")));
} else {
gantanAlarmInfoModel.setWarningdata(gantanAlarmInfoModel.getWarningdata());
}
}
System.out.println("gt报警======================" + JSONUtil.toJsonStr(gantanAlarmData));
if (gantanAlarmData.size() > 0) {
gantanAlarmInfo.setTailingNo(StaticParamUtils.WKKNO);
gantanAlarmInfo.setDepartmentId("123456789");
gantanAlarmInfo.setProvinceId(StaticParamUtils.PROVINCENO);
gantanAlarmInfo.setType(StaticParamUtils.GANTANALARM);
gantanAlarmInfo.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
gantanAlarmInfo.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(gantanAlarmData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
}
return JSONUtil.toJsonStr(gantanAlarmInfo);
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String kushuiweiAlarm() {
try {
StaticDataInfoModel kswAlarmInfo = new StaticDataInfoModel();
List<KushuiweiAlarmInfoModel> kushuiweiAlarmData = alarmInfoDao.findKushuiweiAlarmData();
for (KushuiweiAlarmInfoModel kswAlarmInfoModel : kushuiweiAlarmData) {
// 报警
kswAlarmInfoModel.setSensorno(StaticParamUtils.KUSHUIWEINO + (kswAlarmInfoModel.getRecordid() >= 10 ? String.valueOf(kswAlarmInfoModel.getRecordid()) : "0" + kswAlarmInfoModel.getRecordid()));
if (kswAlarmInfoModel.getWarningdata().contains(".")) {
kswAlarmInfoModel.setWarningdata(kswAlarmInfoModel.getWarningdata().substring(0, kswAlarmInfoModel.getWarningdata().indexOf(".")));
} else {
kswAlarmInfoModel.setWarningdata(kswAlarmInfoModel.getWarningdata());
}
}
System.out.println("ksw报警======================" + JSONUtil.toJsonStr(kushuiweiAlarmData));
if (kushuiweiAlarmData.size() > 0) {
kswAlarmInfo.setTailingNo(StaticParamUtils.WKKNO);
kswAlarmInfo.setDepartmentId("123456789");
kswAlarmInfo.setProvinceId(StaticParamUtils.PROVINCENO);
kswAlarmInfo.setType(StaticParamUtils.KUSHUIWEIALARM);
kswAlarmInfo.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
kswAlarmInfo.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(kushuiweiAlarmData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
}
return JSONUtil.toJsonStr(kswAlarmInfo);
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String biaomianweiyiAlarm() {
try {
StaticDataInfoModel bmwyAlarmInfo = new StaticDataInfoModel();
List<BiaomianweiyiAlarmInfoModel> biaomianweiyiAlarmData = alarmInfoDao.findBiaomianweiyiAlarmData();
for (BiaomianweiyiAlarmInfoModel bmwyAlarmInfoModel : biaomianweiyiAlarmData) {
// 报警
bmwyAlarmInfoModel.setSensorno(StaticParamUtils.BIAOMIANWEIYINO + (bmwyAlarmInfoModel.getRecordid() >= 10 ? String.valueOf(bmwyAlarmInfoModel.getRecordid()) : "0" + bmwyAlarmInfoModel.getRecordid()));
if (bmwyAlarmInfoModel.getWarningdata().contains(".")) {
bmwyAlarmInfoModel.setWarningdata(bmwyAlarmInfoModel.getWarningdata().substring(0, bmwyAlarmInfoModel.getWarningdata().indexOf(".")));
} else {
bmwyAlarmInfoModel.setWarningdata(bmwyAlarmInfoModel.getWarningdata());
}
}
System.out.println("bmwy报警======================" + JSONUtil.toJsonStr(biaomianweiyiAlarmData));
if (biaomianweiyiAlarmData.size() > 0) {
bmwyAlarmInfo.setTailingNo(StaticParamUtils.WKKNO);
bmwyAlarmInfo.setDepartmentId("123456789");
bmwyAlarmInfo.setProvinceId(StaticParamUtils.PROVINCENO);
bmwyAlarmInfo.setType(StaticParamUtils.BIAOMIANWEIYIALARM);
bmwyAlarmInfo.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
bmwyAlarmInfo.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(biaomianweiyiAlarmData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
}
return JSONUtil.toJsonStr(bmwyAlarmInfo);
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String jinrunxianAlarm() {
try {
StaticDataInfoModel jrxAlarmInfo = new StaticDataInfoModel();
List<JinrunxianAlarmInfoModel> jinrunxianAlarmData = alarmInfoDao.findJinrunxianAlarmData();
for (JinrunxianAlarmInfoModel jrxAlarmInfoModel : jinrunxianAlarmData) {
// 报警
jrxAlarmInfoModel.setSensorno(StaticParamUtils.JINRUNXIANNO + (jrxAlarmInfoModel.getRecordid() >= 10 ? String.valueOf(jrxAlarmInfoModel.getRecordid()) : "0" + jrxAlarmInfoModel.getRecordid()));
if (jrxAlarmInfoModel.getWarningdata().contains(".")) {
jrxAlarmInfoModel.setWarningdata(jrxAlarmInfoModel.getWarningdata().substring(0, jrxAlarmInfoModel.getWarningdata().indexOf(".")));
} else {
jrxAlarmInfoModel.setWarningdata(jrxAlarmInfoModel.getWarningdata());
}
}
System.out.println("jrx报警======================" + JSONUtil.toJsonStr(jinrunxianAlarmData));
if (jinrunxianAlarmData.size() > 0) {
jrxAlarmInfo.setTailingNo(StaticParamUtils.WKKNO);
jrxAlarmInfo.setDepartmentId("123456789");
jrxAlarmInfo.setProvinceId(StaticParamUtils.PROVINCENO);
jrxAlarmInfo.setType(StaticParamUtils.JINRUNXIANALARM);
jrxAlarmInfo.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
jrxAlarmInfo.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(jinrunxianAlarmData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
}
return JSONUtil.toJsonStr(jrxAlarmInfo);
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String jiangyuliangAlarm() {
try {
StaticDataInfoModel jylAlarmInfo = new StaticDataInfoModel();
List<JiangyuliangAlarmInfoModel> jylAlarmData = alarmInfoDao.findJiangyuliangAlarmData();
for (JiangyuliangAlarmInfoModel jylAlarmInfoModel : jylAlarmData) {
// 报警
jylAlarmInfoModel.setSensorno(StaticParamUtils.JIANGYULIANGNO + (jylAlarmInfoModel.getRecordid() >= 10 ? String.valueOf(jylAlarmInfoModel.getRecordid()) : "0" + jylAlarmInfoModel.getRecordid()));
if (jylAlarmInfoModel.getWarningdata().contains(".")) {
jylAlarmInfoModel.setWarningdata(jylAlarmInfoModel.getWarningdata().substring(0, jylAlarmInfoModel.getWarningdata().indexOf(".")));
} else {
jylAlarmInfoModel.setWarningdata(jylAlarmInfoModel.getWarningdata());
}
}
System.out.println("jyl报警======================" + JSONUtil.toJsonStr(jylAlarmData));
if (jylAlarmData.size() > 0) {
jylAlarmInfo.setTailingNo(StaticParamUtils.WKKNO);
jylAlarmInfo.setDepartmentId("123456789");
jylAlarmInfo.setProvinceId(StaticParamUtils.PROVINCENO);
jylAlarmInfo.setType(StaticParamUtils.JIANGYULIANGALARM);
jylAlarmInfo.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
jylAlarmInfo.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(jylAlarmData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
}
return JSONUtil.toJsonStr(jylAlarmInfo);
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String deviceAlarm() {
try {
StaticDataInfoModel deviceAlarmInfo = new StaticDataInfoModel();
List<DeviceAlarmInfoModel> deviceAlarmData = alarmInfoDao.findDeviceAlarmData();
for (int i = 0; i < deviceAlarmData.size(); i++) {
if (deviceAlarmData.get(i).getItemno().contains("干滩")) {
deviceAlarmData.get(i).setItemno("01");
} else if (deviceAlarmData.get(i).getItemno().contains("库水位")) {
deviceAlarmData.get(i).setItemno("02");
} else if (deviceAlarmData.get(i).getItemno().contains("坝体表面位移")) {
deviceAlarmData.get(i).setItemno("03");
} else if (deviceAlarmData.get(i).getItemno().contains("雨量计")) {
deviceAlarmData.get(i).setItemno("06");
} else if (deviceAlarmData.get(i).getItemno().contains("浸润线")) {
deviceAlarmData.get(i).setItemno("05");
} else if (deviceAlarmData.get(i).getItemno().contains("坝体内部")) {
deviceAlarmData.get(i).setItemno("04");
}
deviceAlarmData.get(i).setWarningdata(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
System.out.println("device报警============" + JSONUtil.toJsonStr(deviceAlarmData));
if (deviceAlarmData.size() > 0) {
deviceAlarmInfo.setTailingNo(StaticParamUtils.WKKNO);
deviceAlarmInfo.setDepartmentId("123456789");
deviceAlarmInfo.setProvinceId(StaticParamUtils.PROVINCENO);
deviceAlarmInfo.setType(StaticParamUtils.DEVICEALARM);
deviceAlarmInfo.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
deviceAlarmInfo.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(deviceAlarmData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
}
return JSONUtil.toJsonStr(deviceAlarmInfo);
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String wkkAlarm() {
try {
StaticDataInfoModel wkkAlarmInfo = new StaticDataInfoModel();
List<WkkAlarmTimeInfoModel> wkkAlarmData = alarmInfoDao.findWkkAlarmData();
for (WkkAlarmTimeInfoModel wkkAlarmTimeInfoModel : wkkAlarmData) {
wkkAlarmTimeInfoModel.setWarningdata(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
System.out.println("wkk报警=====================" + JSONUtil.toJsonStr(wkkAlarmData));
if (wkkAlarmData.size() > 0) {
wkkAlarmInfo.setTailingNo(StaticParamUtils.WKKNO);
wkkAlarmInfo.setDepartmentId("123456789");
wkkAlarmInfo.setProvinceId(StaticParamUtils.PROVINCENO);
wkkAlarmInfo.setType(StaticParamUtils.WKKALARM);
wkkAlarmInfo.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
wkkAlarmInfo.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(wkkAlarmData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
}
return JSONUtil.toJsonStr(wkkAlarmInfo);
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 内部沉降
* @return
*/
@Override
public String neibuchenjiangAlarm() {
try {
StaticDataInfoModel nbwyAlarmInfo = new StaticDataInfoModel();
List<NeibuweiyiAlarmInfoModel> neibuchenjiangAlarmData = alarmInfoDao.findNeibuchenjiangAlarmData();
for (NeibuweiyiAlarmInfoModel nbwyAlarmInfoModel : neibuchenjiangAlarmData) {
// 报警
nbwyAlarmInfoModel.setSensorno(StaticParamUtils.NEIBUWEIYINO + (nbwyAlarmInfoModel.getRecordid() >= 10 ? String.valueOf(nbwyAlarmInfoModel.getRecordid()) : "0" + nbwyAlarmInfoModel.getRecordid()));
if (nbwyAlarmInfoModel.getWarningdata().contains(".")) {
nbwyAlarmInfoModel.setWarningdata(nbwyAlarmInfoModel.getWarningdata().substring(0, nbwyAlarmInfoModel.getWarningdata().indexOf(".")));
} else {
nbwyAlarmInfoModel.setWarningdata(nbwyAlarmInfoModel.getWarningdata());
}
}
System.out.println("内部沉降报警======================" + JSONUtil.toJsonStr(neibuchenjiangAlarmData));
if (neibuchenjiangAlarmData.size() > 0) {
nbwyAlarmInfo.setTailingNo(StaticParamUtils.WKKNO);
nbwyAlarmInfo.setDepartmentId("123456789");
nbwyAlarmInfo.setProvinceId(StaticParamUtils.PROVINCENO);
nbwyAlarmInfo.setType(StaticParamUtils.NEIBUWEIYIALARM);
nbwyAlarmInfo.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
nbwyAlarmInfo.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(neibuchenjiangAlarmData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
}
return JSONUtil.toJsonStr(nbwyAlarmInfo);
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 内部水平
* @return
*/
@Override
public String neibushuipingAlarm() {
try {
StaticDataInfoModel nbwyAlarmInfo = new StaticDataInfoModel();
List<NeibuweiyiAlarmInfoModel> neibuchenjiangAlarmData = alarmInfoDao.findNeibuchenjiangAlarmData();
for (NeibuweiyiAlarmInfoModel nbwyAlarmInfoModel : neibuchenjiangAlarmData) {
// 报警
nbwyAlarmInfoModel.setSensorno(StaticParamUtils.JIANGYULIANGNO + (nbwyAlarmInfoModel.getRecordid() >= 10 ? String.valueOf(nbwyAlarmInfoModel.getRecordid()) : "0" + nbwyAlarmInfoModel.getRecordid()));
if (nbwyAlarmInfoModel.getWarningdata().contains(".")) {
nbwyAlarmInfoModel.setWarningdata(nbwyAlarmInfoModel.getWarningdata().substring(0, nbwyAlarmInfoModel.getWarningdata().indexOf(".")));
} else {
nbwyAlarmInfoModel.setWarningdata(nbwyAlarmInfoModel.getWarningdata());
}
}
System.out.println("内部水平报警======================" + JSONUtil.toJsonStr(neibuchenjiangAlarmData));
if (neibuchenjiangAlarmData.size() > 0) {
nbwyAlarmInfo.setTailingNo(StaticParamUtils.WKKNO);
nbwyAlarmInfo.setDepartmentId("123456789");
nbwyAlarmInfo.setProvinceId(StaticParamUtils.PROVINCENO);
nbwyAlarmInfo.setType(StaticParamUtils.NEIBUWEIYIALARM);
nbwyAlarmInfo.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
nbwyAlarmInfo.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(neibuchenjiangAlarmData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
}
return JSONUtil.toJsonStr(nbwyAlarmInfo);
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
package com.amqp.shanxi.service.impl;
import cn.hutool.json.JSONUtil;
import com.amqp.shanxi.dao.DeviceStaticDataInfoDao;
import com.amqp.shanxi.model.*;
import com.amqp.shanxi.service.DeviceStaticDataInfoService;
import com.amqp.shanxi.util.AESUtil;
import com.amqp.shanxi.util.StaticParamUtils;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Service
public class DeviceStaticDataInfoServiceImpl implements DeviceStaticDataInfoService {
@Autowired
public DeviceStaticDataInfoDao deviceStaticDataInfoDao;
/**
* 干滩设备信息
* @return
*/
@Override
public StaticDataInfoModel gantanDeviceInfo() {
try {
StaticDataInfoModel staticDataInfoModel = new StaticDataInfoModel();
List<GantanDeviceInfoModel> gantanDeviceInfos = deviceStaticDataInfoDao.findGantanDeviceInfo();
for (int i = 0; i < gantanDeviceInfos.size(); i++) {
gantanDeviceInfos.get(i).setEquipno(StaticParamUtils.GANTANNO + (Integer.valueOf(gantanDeviceInfos.get(i).getEquipno()) >= 10 ? gantanDeviceInfos.get(i).getEquipno() : "0" + gantanDeviceInfos.get(i).getEquipno()));
gantanDeviceInfos.get(i).setIs_used("1");
gantanDeviceInfos.get(i).setIs_sync("0");
// 经度 纬度
}
staticDataInfoModel.setTailingNo(StaticParamUtils.WKKNO);
staticDataInfoModel.setDepartmentId("123456789");
staticDataInfoModel.setProvinceId(StaticParamUtils.PROVINCENO);
staticDataInfoModel.setType(StaticParamUtils.GANTANDEVICE);
staticDataInfoModel.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
staticDataInfoModel.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(gantanDeviceInfos), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
System.out.println("干滩设备信息===========" + JSONUtil.toJsonStr(staticDataInfoModel));
return staticDataInfoModel;
}catch (Exception e){
e.printStackTrace();
return null;
}
}
/**
* 库水位设备信息
* @return
*/
@Override
public StaticDataInfoModel kushuiweiDeviceInfo() {
try {
StaticDataInfoModel staticDataInfoModel = new StaticDataInfoModel();
List<KushuiweiDeviceInfoModel> kushuiweiDeviceInfo = deviceStaticDataInfoDao.findKushuiweiDeviceInfo();
for (int i = 0; i < kushuiweiDeviceInfo.size(); i++) {
kushuiweiDeviceInfo.get(i).setEquipno(StaticParamUtils.KUSHUIWEINO + (Integer.valueOf(kushuiweiDeviceInfo.get(i).getEquipno()) >= 10 ? kushuiweiDeviceInfo.get(i).getEquipno() : "0" + kushuiweiDeviceInfo.get(i).getEquipno()));
kushuiweiDeviceInfo.get(i).setIs_used("1");
kushuiweiDeviceInfo.get(i).setIs_sync("0");
// 经度 纬度
}
staticDataInfoModel.setTailingNo(StaticParamUtils.WKKNO);
staticDataInfoModel.setDepartmentId("123456789");
staticDataInfoModel.setProvinceId(StaticParamUtils.PROVINCENO);
staticDataInfoModel.setType(StaticParamUtils.KUSHUIWEIDEVICE);
staticDataInfoModel.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
staticDataInfoModel.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(kushuiweiDeviceInfo), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
System.out.println("库水位设备信息===========" + JSONUtil.toJsonStr(staticDataInfoModel));
return staticDataInfoModel;
}catch (Exception e){
e.printStackTrace();
return null;
}
}
/**
* 表面位移设备信息
* @return
*/
@Override
public StaticDataInfoModel biaomianweiyiDeviceInfo() {
try {
StaticDataInfoModel staticDataInfoModel = new StaticDataInfoModel();
List<BiaomianweiyiDeviceInfoModel> biaomianweiyiDeviceInfo = deviceStaticDataInfoDao.findBiaomianweiyiDeviceInfo();
for (int i = 0; i < biaomianweiyiDeviceInfo.size(); i++) {
biaomianweiyiDeviceInfo.get(i).setEquipno(StaticParamUtils.KUSHUIWEINO + (Integer.valueOf(biaomianweiyiDeviceInfo.get(i).getEquipno()) >= 10 ? biaomianweiyiDeviceInfo.get(i).getEquipno() : "0" + biaomianweiyiDeviceInfo.get(i).getEquipno()));
biaomianweiyiDeviceInfo.get(i).setIs_used("1");
biaomianweiyiDeviceInfo.get(i).setIs_sync("0");
// 经度 纬度
}
staticDataInfoModel.setTailingNo(StaticParamUtils.WKKNO);
staticDataInfoModel.setDepartmentId("123456789");
staticDataInfoModel.setProvinceId(StaticParamUtils.PROVINCENO);
staticDataInfoModel.setType(StaticParamUtils.BIAOMIANWEIYIDEVICE);
staticDataInfoModel.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
staticDataInfoModel.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(biaomianweiyiDeviceInfo), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
System.out.println("表面位移设备信息===========" + JSONUtil.toJsonStr(staticDataInfoModel));
return staticDataInfoModel;
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 浸润线设备信息
* @return
*/
@Override
public StaticDataInfoModel jinrunxianDeviceInfo() {
try {
StaticDataInfoModel staticDataInfoModel = new StaticDataInfoModel();
List<JinrunxianDeviceInfoModel> jinrunxianDeviceInfo = deviceStaticDataInfoDao.findJinrunxianDeviceInfo();
for (int i = 0; i < jinrunxianDeviceInfo.size(); i++) {
jinrunxianDeviceInfo.get(i).setEquipno(StaticParamUtils.JINRUNXIANNO + (Integer.valueOf(jinrunxianDeviceInfo.get(i).getEquipno()) >= 10 ? jinrunxianDeviceInfo.get(i).getEquipno() : "0" + jinrunxianDeviceInfo.get(i).getEquipno()));
jinrunxianDeviceInfo.get(i).setIs_used("1");
jinrunxianDeviceInfo.get(i).setIs_sync("0");
// 经度 纬度
}
staticDataInfoModel.setTailingNo(StaticParamUtils.WKKNO);
staticDataInfoModel.setDepartmentId("123456789");
staticDataInfoModel.setProvinceId(StaticParamUtils.PROVINCENO);
staticDataInfoModel.setType(StaticParamUtils.JINRUNXIANDEVICE);
staticDataInfoModel.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
staticDataInfoModel.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(jinrunxianDeviceInfo), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
System.out.println("浸润线设备信息===========" + JSONUtil.toJsonStr(staticDataInfoModel));
return staticDataInfoModel;
}catch (Exception e){
e.printStackTrace();
return null;
}
}
/**
* 降雨量设备信息
* @return
*/
@Override
public StaticDataInfoModel jiangyuliangDeviceInfo() {
try {
StaticDataInfoModel staticDataInfoModel = new StaticDataInfoModel();
List<JinrunxianDeviceInfoModel> jiangyuliangDeviceInfo = deviceStaticDataInfoDao.findJiangyuliangDeviceInfo();
for (int i = 0; i < jiangyuliangDeviceInfo.size(); i++) {
jiangyuliangDeviceInfo.get(i).setEquipno(StaticParamUtils.JIANGYULIANGNO + (Integer.valueOf(jiangyuliangDeviceInfo.get(i).getEquipno()) >= 10 ? jiangyuliangDeviceInfo.get(i).getEquipno() : "0" + jiangyuliangDeviceInfo.get(i).getEquipno()));
jiangyuliangDeviceInfo.get(i).setIs_used("1");
jiangyuliangDeviceInfo.get(i).setIs_sync("0");
// 经度 纬度
}
staticDataInfoModel.setTailingNo(StaticParamUtils.WKKNO);
staticDataInfoModel.setDepartmentId("123456789");
staticDataInfoModel.setProvinceId(StaticParamUtils.PROVINCENO);
staticDataInfoModel.setType(StaticParamUtils.JIANGYULIANGEDEVICE);
staticDataInfoModel.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
staticDataInfoModel.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(jiangyuliangDeviceInfo), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
System.out.println("降雨量设备信息===========" + JSONUtil.toJsonStr(staticDataInfoModel));
return staticDataInfoModel;
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 内部位移
* @return
*/
@Override
public StaticDataInfoModel neibuweiyiDeviceInfo() {
try{
StaticDataInfoModel staticDataInfoModel = new StaticDataInfoModel();
List<NeibuweiyiDeviceInfoModel> neibuweiyiDeviceInfo = deviceStaticDataInfoDao.findNeibuweiyiDeviceInfo();
for (int i = 0; i < neibuweiyiDeviceInfo.size(); i++) {
neibuweiyiDeviceInfo.get(i).setEquipno(StaticParamUtils.NEIBUWEIYINO + (Integer.valueOf(neibuweiyiDeviceInfo.get(i).getEquipno()) >= 10 ? neibuweiyiDeviceInfo.get(i).getEquipno() : "0" + neibuweiyiDeviceInfo.get(i).getEquipno()));
neibuweiyiDeviceInfo.get(i).setIs_used("1");
neibuweiyiDeviceInfo.get(i).setIs_sync("0");
// 经度 纬度
}
staticDataInfoModel.setTailingNo(StaticParamUtils.WKKNO);
staticDataInfoModel.setDepartmentId("123456789");
staticDataInfoModel.setProvinceId(StaticParamUtils.PROVINCENO);
staticDataInfoModel.setType(StaticParamUtils.NEIBUWEIYIDEVICE);
staticDataInfoModel.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
staticDataInfoModel.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(neibuweiyiDeviceInfo), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
System.out.println("内部位移设备信息===========" + JSONUtil.toJsonStr(staticDataInfoModel));
return staticDataInfoModel;
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
package com.amqp.shanxi.service.impl;
import cn.hutool.json.JSONUtil;
import com.amqp.shanxi.dao.RealTimeInfoDao;
import com.amqp.shanxi.model.*;
import com.amqp.shanxi.service.RealTimeInfoService;
import com.amqp.shanxi.util.AESUtil;
import com.amqp.shanxi.util.StaticParamUtils;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Service
public class RealTimeInfoServiceImpl implements RealTimeInfoService {
@Autowired
private AmqpTemplate amqpTemplate;
@Autowired
private RealTimeInfoDao realTimeInfoDao;
@Override
public String gantanRealTimeData() {
try {
List<GantanRealTimeInfoModel> gantanRealTimeInfoModelList = realTimeInfoDao.findGantanRealTimeData();
StaticDataInfoModel gantanRealTime = new StaticDataInfoModel();
for (GantanRealTimeInfoModel gantanRealTimeInfoModel : gantanRealTimeInfoModelList) {
// 未报警
gantanRealTimeInfoModel.setSensorno(StaticParamUtils.GANTANNO + (gantanRealTimeInfoModel.getRecordid() >= 10 ? String.valueOf(gantanRealTimeInfoModel.getRecordid()) : "0" + gantanRealTimeInfoModel.getRecordid()));
if (gantanRealTimeInfoModel.getCollectdate().contains(".")) {
gantanRealTimeInfoModel.setCollectdate(gantanRealTimeInfoModel.getCollectdate().substring(0, gantanRealTimeInfoModel.getCollectdate().indexOf(".")));
}
}
System.out.println("gt实时数据=======================" + JSONUtil.toJsonStr(gantanRealTimeInfoModelList));
gantanRealTime.setTailingNo(StaticParamUtils.WKKNO);
gantanRealTime.setDepartmentId("123456789");
gantanRealTime.setProvinceId(StaticParamUtils.PROVINCENO);
gantanRealTime.setType(StaticParamUtils.GANTANDATA);
gantanRealTime.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
gantanRealTime.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(gantanRealTimeInfoModelList), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
return JSONUtil.toJsonStr(gantanRealTime);
}catch(Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String kushuiweiRealTimeData() {
try {
List<KushuiweiRealTimeInfoModel> kushuiweiRealTimeData = realTimeInfoDao.findKushuiweiRealTimeData();
StaticDataInfoModel kswRealTimeData = new StaticDataInfoModel();
List<KushuiweiAlarmInfoModel> kswAlarmInfoModelList = null;
for (KushuiweiRealTimeInfoModel kushuiweiRealTimeInfoModel : kushuiweiRealTimeData) {
// 未报警
kushuiweiRealTimeInfoModel.setSensorno(StaticParamUtils.KUSHUIWEINO + (kushuiweiRealTimeInfoModel.getRecordid() >= 10 ? String.valueOf(kushuiweiRealTimeInfoModel.getRecordid()) : "0" + kushuiweiRealTimeInfoModel.getRecordid()));
if (kushuiweiRealTimeInfoModel.getCollectdate().contains(".")) {
kushuiweiRealTimeInfoModel.setCollectdate(kushuiweiRealTimeInfoModel.getCollectdate().substring(0, kushuiweiRealTimeInfoModel.getCollectdate().indexOf(".")));
}
}
System.out.println("ksw实时数据=======================" + JSONUtil.toJsonStr(kushuiweiRealTimeData));
kswRealTimeData.setTailingNo(StaticParamUtils.WKKNO);
kswRealTimeData.setDepartmentId("123456789");
kswRealTimeData.setProvinceId(StaticParamUtils.PROVINCENO);
kswRealTimeData.setType(StaticParamUtils.KUSHUIWEIDATA);
kswRealTimeData.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
kswRealTimeData.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(kushuiweiRealTimeData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
return JSONUtil.toJsonStr(kswRealTimeData);
}catch(Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String biaomianweiyiRealTimeData() {
try {
List<BiaomianweiyiRealTimeInfoModel> biaomianweiyiRealTimeData = realTimeInfoDao.findBiaomianweiyiRealTimeData();
StaticDataInfoModel bmwyRealTimeData = new StaticDataInfoModel();
List<BiaomianweiyiAlarmInfoModel> bmwyAlarmInfoModelList = null;
for (int i = 0; i < biaomianweiyiRealTimeData.size(); i++) {
// 未报警
biaomianweiyiRealTimeData.get(i).setSensorno(StaticParamUtils.BIAOMIANWEIYINO + (biaomianweiyiRealTimeData.get(i).getRecordid() >= 10 ? String.valueOf(biaomianweiyiRealTimeData.get(i).getRecordid()) : "0" + biaomianweiyiRealTimeData.get(i).getRecordid()));
if (biaomianweiyiRealTimeData.get(i).getCollectdate().contains(".")) {
biaomianweiyiRealTimeData.get(i).setCollectdate(biaomianweiyiRealTimeData.get(i).getCollectdate().substring(0, biaomianweiyiRealTimeData.get(i).getCollectdate().indexOf(".")));
}
}
System.out.println("bmwy实时数据=======================" + JSONUtil.toJsonStr(biaomianweiyiRealTimeData));
bmwyRealTimeData.setTailingNo(StaticParamUtils.WKKNO);
bmwyRealTimeData.setDepartmentId("123456789");
bmwyRealTimeData.setProvinceId(StaticParamUtils.PROVINCENO);
bmwyRealTimeData.setType(StaticParamUtils.BIAOMIANWEIYIDATA);
bmwyRealTimeData.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
bmwyRealTimeData.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(biaomianweiyiRealTimeData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
return JSONUtil.toJsonStr(bmwyRealTimeData);
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String jinrunxianRealTimeData() {
try {
List<JinrunxianRealTimeInfoModel> jinrunxianRealTimeData = realTimeInfoDao.findJinrunxianRealTimeData();
StaticDataInfoModel jrxRealTimeData = new StaticDataInfoModel();
List<JinrunxianAlarmInfoModel> jrxAlarmInfoModelList = null;
for (int i = 0; i < jinrunxianRealTimeData.size(); i++) {
// 未报警
jinrunxianRealTimeData.get(i).setSensorno(StaticParamUtils.JINRUNXIANNO + (jinrunxianRealTimeData.get(i).getRecordid() >= 10 ? String.valueOf(jinrunxianRealTimeData.get(i).getRecordid()) : "0" + jinrunxianRealTimeData.get(i).getRecordid()));
if (jinrunxianRealTimeData.get(i).getCollectdate().contains(".")) {
jinrunxianRealTimeData.get(i).setCollectdate(jinrunxianRealTimeData.get(i).getCollectdate().substring(0, jinrunxianRealTimeData.get(i).getCollectdate().indexOf(".")));
}
}
System.out.println("jrx实时数据=======================" + JSONUtil.toJsonStr(jinrunxianRealTimeData));
jrxRealTimeData.setTailingNo(StaticParamUtils.WKKNO);
jrxRealTimeData.setDepartmentId("123456789");
jrxRealTimeData.setProvinceId(StaticParamUtils.PROVINCENO);
jrxRealTimeData.setType(StaticParamUtils.JINRUNXIANDATA);
jrxRealTimeData.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
jrxRealTimeData.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(jinrunxianRealTimeData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
return JSONUtil.toJsonStr(jrxRealTimeData);
}catch(Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String jiangyuliangRealTimeData() {
try {
List<JiangyuliangRealTimeInfoModel> jiangyuliangRealTimeData = realTimeInfoDao.findJiangyuliangRealTimeData();
StaticDataInfoModel jylRealTimeData = new StaticDataInfoModel();
List<JiangyuliangAlarmInfoModel> jylAlarmInfoModelList = null;
for (int i = 0; i < jiangyuliangRealTimeData.size(); i++) {
// 未报警
jiangyuliangRealTimeData.get(i).setSensorno(StaticParamUtils.JIANGYULIANGNO + (jiangyuliangRealTimeData.get(i).getRecordid() >= 10 ? String.valueOf(jiangyuliangRealTimeData.get(i).getRecordid()) : "0" + jiangyuliangRealTimeData.get(i).getRecordid()));
if (jiangyuliangRealTimeData.get(i).getCollectdate().contains(".")) {
jiangyuliangRealTimeData.get(i).setCollectdate(jiangyuliangRealTimeData.get(i).getCollectdate().substring(0, jiangyuliangRealTimeData.get(i).getCollectdate().indexOf(".")));
}
}
System.out.println("jyl实时数据=======================" + JSONUtil.toJsonStr(jiangyuliangRealTimeData));
jylRealTimeData.setTailingNo(StaticParamUtils.WKKNO);
jylRealTimeData.setDepartmentId("123456789");
jylRealTimeData.setProvinceId(StaticParamUtils.PROVINCENO);
jylRealTimeData.setType(StaticParamUtils.JIANGYULIANGDATA);
jylRealTimeData.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
jylRealTimeData.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(jiangyuliangRealTimeData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
return JSONUtil.toJsonStr(jylRealTimeData);
}catch (Exception e){
e.printStackTrace();
return null;
}
}
/**
* 监测设备
*/
@Override
public String deviceRealTimeData() {
try {
StaticDataInfoModel deviceRealTimeDataModel = new StaticDataInfoModel();
List<DeviceRealTimeInfoModel> deviceRealTimeData = realTimeInfoDao.findDeviceRealTimeData();
for (int i = 0; i < deviceRealTimeData.size(); i++) {
if (deviceRealTimeData.get(i).getItemno().contains("干滩")) {
deviceRealTimeData.get(i).setItemno("01");
} else if (deviceRealTimeData.get(i).getItemno().contains("库水位")) {
deviceRealTimeData.get(i).setItemno("02");
} else if (deviceRealTimeData.get(i).getItemno().contains("坝体表面位移")) {
deviceRealTimeData.get(i).setItemno("03");
} else if (deviceRealTimeData.get(i).getItemno().contains("雨量计")) {
deviceRealTimeData.get(i).setItemno("06");
} else if (deviceRealTimeData.get(i).getItemno().contains("浸润线")) {
deviceRealTimeData.get(i).setItemno("05");
} else if (deviceRealTimeData.get(i).getItemno().contains("坝体内部")) {
deviceRealTimeData.get(i).setItemno("04");
}
if (deviceRealTimeData.get(i).getState() != null) {
deviceRealTimeData.get(i).setState("1");
} else {
deviceRealTimeData.get(i).setState("0");
}
deviceRealTimeData.get(i).setCollectdate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
System.out.println("device实时数据=======================" + JSONUtil.toJsonStr(deviceRealTimeData));
deviceRealTimeDataModel.setTailingNo(StaticParamUtils.WKKNO);
deviceRealTimeDataModel.setDepartmentId("123456789");
deviceRealTimeDataModel.setProvinceId(StaticParamUtils.PROVINCENO);
deviceRealTimeDataModel.setType(StaticParamUtils.DEVICEDATA);
deviceRealTimeDataModel.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
deviceRealTimeDataModel.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(deviceRealTimeData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
return JSONUtil.toJsonStr(deviceRealTimeDataModel);
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String wkkRealTimeData() {
try{
StaticDataInfoModel wkkRealTimeDataModel = new StaticDataInfoModel();
List<WkkRealTimeInfoModel> wkkRealTimeData = realTimeInfoDao.findWkkRealTimeData();
if (wkkRealTimeData.size() > 0) {
wkkRealTimeData.get(0).setState("1");
wkkRealTimeData.get(0).setCollectdat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
wkkRealTimeDataModel.setTailingNo(StaticParamUtils.WKKNO);
wkkRealTimeDataModel.setDepartmentId("123456789");
wkkRealTimeDataModel.setProvinceId(StaticParamUtils.PROVINCENO);
wkkRealTimeDataModel.setType(StaticParamUtils.WKKDATA);
wkkRealTimeDataModel.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
wkkRealTimeDataModel.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(wkkRealTimeData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
System.out.println("wkk实时数据=======================" + JSONUtil.toJsonStr(wkkRealTimeData));
return JSONUtil.toJsonStr(wkkRealTimeDataModel);
}else {
WkkRealTimeInfoModel wkkRealTimeInfoModel = new WkkRealTimeInfoModel();
wkkRealTimeInfoModel.setCollectdat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
wkkRealTimeInfoModel.setState("0");
wkkRealTimeData.add(wkkRealTimeInfoModel);
wkkRealTimeDataModel.setTailingNo(StaticParamUtils.WKKNO);
wkkRealTimeDataModel.setDepartmentId("123456789");
wkkRealTimeDataModel.setProvinceId(StaticParamUtils.PROVINCENO);
wkkRealTimeDataModel.setType(StaticParamUtils.WKKDATA);
wkkRealTimeDataModel.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
wkkRealTimeDataModel.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(wkkRealTimeData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
System.out.println("wkk实时数据=======================" + JSONUtil.toJsonStr(wkkRealTimeData));
return JSONUtil.toJsonStr(wkkRealTimeDataModel);
}
}catch(Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 设备离线
*/
@Override
public String deviceOffLineData() {
try {
StaticDataInfoModel deviceOffLineDataModel = new StaticDataInfoModel();
List<DeviceOffLineInfoModel> deviceOffLineData = realTimeInfoDao.findDeviceOffLineData();
if(deviceOffLineData.size() > 0) {
// 有离线设备
for(int i = 0; i < deviceOffLineData.size(); i++) {
deviceOffLineData.get(i).setSensorno(StaticParamUtils.JIANGYULIANGNO + (deviceOffLineData.get(i).getRecordid() >= 10 ? String.valueOf(deviceOffLineData.get(i).getRecordid()): "0" + deviceOffLineData.get(i).getRecordid()));
deviceOffLineData.get(i).setCollectdate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
deviceOffLineDataModel.setTailingNo(StaticParamUtils.WKKNO);
deviceOffLineDataModel.setDepartmentId("123456789");
deviceOffLineDataModel.setProvinceId(StaticParamUtils.PROVINCENO);
deviceOffLineDataModel.setType(StaticParamUtils.DEVICEOFFLINE);
deviceOffLineDataModel.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
deviceOffLineDataModel.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(deviceOffLineData), "BRlp%IYyTYFntG!g7oPo$N==" , "wP!n$!ZD%0k2g6Gahpdk6l=="));
}
return JSONUtil.toJsonStr(deviceOffLineData);
}catch(Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String neibuChenJiangRealTimeData() {
try {
List<NeibuweiyiRealTimeInfoModel> neibuChenjiangRealTimeData = realTimeInfoDao.findNeibuChenjiangRealTimeData();
StaticDataInfoModel nbcjRealTimeData = new StaticDataInfoModel();
for (int i = 0; i < neibuChenjiangRealTimeData.size(); i++) {
// 未报警
neibuChenjiangRealTimeData.get(i).setSensorno(StaticParamUtils.BIAOMIANWEIYINO + (neibuChenjiangRealTimeData.get(i).getRecordid() >= 10 ? String.valueOf(neibuChenjiangRealTimeData.get(i).getRecordid()) : "0" + neibuChenjiangRealTimeData.get(i).getRecordid()));
if (neibuChenjiangRealTimeData.get(i).getCollectdate().contains(".")) {
neibuChenjiangRealTimeData.get(i).setCollectdate(neibuChenjiangRealTimeData.get(i).getCollectdate().substring(0, neibuChenjiangRealTimeData.get(i).getCollectdate().indexOf(".")));
}
}
System.out.println("内部沉降实时数据=======================" + JSONUtil.toJsonStr(neibuChenjiangRealTimeData));
nbcjRealTimeData.setTailingNo(StaticParamUtils.WKKNO);
nbcjRealTimeData.setDepartmentId("123456789");
nbcjRealTimeData.setProvinceId(StaticParamUtils.PROVINCENO);
nbcjRealTimeData.setType(StaticParamUtils.NEIBUWEIYIDATA);
nbcjRealTimeData.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
nbcjRealTimeData.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(neibuChenjiangRealTimeData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
return JSONUtil.toJsonStr(nbcjRealTimeData);
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public String neibuShuiPingRealTimeData() {
try {
List<NeibuweiyiRealTimeInfoModel> neibuShuipingRealTimeData = realTimeInfoDao.findNeibuShuipingRealTimeData();
StaticDataInfoModel nbcjRealTimeData = new StaticDataInfoModel();
for (int i = 0; i < neibuShuipingRealTimeData.size(); i++) {
// 未报警
neibuShuipingRealTimeData.get(i).setSensorno(StaticParamUtils.BIAOMIANWEIYINO + (neibuShuipingRealTimeData.get(i).getRecordid() >= 10 ? String.valueOf(neibuShuipingRealTimeData.get(i).getRecordid()) : "0" + neibuShuipingRealTimeData.get(i).getRecordid()));
if (neibuShuipingRealTimeData.get(i).getCollectdate().contains(".")) {
neibuShuipingRealTimeData.get(i).setCollectdate(neibuShuipingRealTimeData.get(i).getCollectdate().substring(0, neibuShuipingRealTimeData.get(i).getCollectdate().indexOf(".")));
}
}
System.out.println("内部水平实时数据=======================" + JSONUtil.toJsonStr(neibuShuipingRealTimeData));
nbcjRealTimeData.setTailingNo(StaticParamUtils.WKKNO);
nbcjRealTimeData.setDepartmentId("123456789");
nbcjRealTimeData.setProvinceId(StaticParamUtils.PROVINCENO);
nbcjRealTimeData.setType(StaticParamUtils.NEIBUWEIYIDATA);
nbcjRealTimeData.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
nbcjRealTimeData.setDatas(AESUtil.encrypt(JSONUtil.toJsonStr(neibuShuipingRealTimeData), "BRlp%IYyTYFntG!g7oPo$N==", "wP!n$!ZD%0k2g6Gahpdk6l=="));
return JSONUtil.toJsonStr(nbcjRealTimeData);
}catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
package com.amqp.shanxi.util;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.io.IOException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* 解密工具类
* @author z0990
*/
public class AESUtil {
/**
* 用于存储已生成的Cipher
*/
private static Map<String, Cipher> ciperCache = new ConcurrentHashMap<>();
/**
* AES解密
* @author z0990
* @param content 待解密的内容
* @param decryptKey 解密秘钥
* @param iv 向量
* @return 解密数据
*/
public static byte[] decrypt(String content, String decryptKey, String iv) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeyException, IOException, BadPaddingException, IllegalBlockSizeException {
Cipher cipher = fetchDecryptCipher(decryptKey, iv);
BASE64Decoder decoder = new BASE64Decoder();
return cipher.doFinal(decoder.decodeBuffer(content));
}
/**
* AES加密
* @param data 待加密的内容
* @param key 解密秘钥
* @param iv 向量
* @return 加密并经base64编码后的数据
*/
public static String encrypt(String data, String key, String iv) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, InvalidKeyException, NoSuchPaddingException, IOException, BadPaddingException, IllegalBlockSizeException {
Cipher cipher = getEncryptCipher(key, iv);
byte[] bytes = cipher.doFinal(data.getBytes(Constants.CHARSET_UTF8));
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(bytes);
}
private static Cipher getEncryptCipher(String key, String iv) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeyException, IOException {
Cipher cipher = ciperCache.get(key);
if (cipher == null) {
cipher = fetchEncryptCipher(key, iv);
ciperCache.put(key, cipher);
}
return cipher;
}
private static Cipher fetchDecryptCipher(String decryptKey, String iv) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, InvalidKeyException, NoSuchPaddingException, IOException {
return createCipher(decryptKey, iv, Cipher.DECRYPT_MODE);
}
private static Cipher fetchEncryptCipher(String encryptKey, String iv) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, InvalidKeyException, NoSuchPaddingException, IOException {
return createCipher(encryptKey, iv, Cipher.ENCRYPT_MODE);
}
private static Cipher createCipher(String key, String iv, int mode) throws NoSuchPaddingException, NoSuchAlgorithmException, IOException, InvalidAlgorithmParameterException, InvalidKeyException {
Cipher cipher = Cipher.getInstance(Constants.DECRYPT_CIPHER_ALGORITHM);
BASE64Decoder decoder = new BASE64Decoder();
SecretKeySpec keySpec = new SecretKeySpec(decoder.decodeBuffer(key), Constants.DECRYPT_ALGORITHM);
IvParameterSpec ivSpec = new IvParameterSpec(decoder.decodeBuffer(iv));
//初始化
cipher.init(mode, keySpec, ivSpec);
return cipher;
}
}
package com.amqp.shanxi.util;
import org.springframework.context.annotation.Configuration;
/**
* Topic模式
*  amqp静态数据推送
*/
@Configuration
public class AMQPTopicStaticDataConfig {
// 基础设备信息 RoutingKey
public static final String TOPIC_EXCHANGE = "basicData";
// 尾矿库基础信息
public static final String TOPIC_ROUTINGKEY_BAISC = "tailingInfo";
// 干滩
public static final String TOPIC_ROUTINGKEY_GANTAN = "equipInfo.01";
// 库水位
public static final String TOPIC_ROUTINGKEY_KUSHUIWEI = "equipInfo.02";
// 表面位移
public static final String TOPIC_ROUTINGKEY_BIAOMIANWEIYI = "equipInfo.03";
// 内部位移
public static final String TOPIC_ROUTINGKEY_NEIBUWEIYI = "equipInfo.04";
// 浸润线
public static final String TOPIC_ROUTINGKEY_JINRUNXIAN = "equipInfo.05";
// 降雨量
public static final String TOPIC_ROUTINGKEY_JIANGYULIANG = "equipInfo.06";
// 渗流量
public static final String TOPIC_ROUTINGKEY_SHENLIULIANG = "equipInfo.07";
/* @Bean
public TopicExchange topicExchange() {
return new TopicExchange(TOPIC_EXCHANGE, false, false);
}
@Bean
public Queue topicQueue() {
return new Queue(TOPIC_ROUTINGKEY_BAISC, false);
}
@Bean
public Queue topicQueueGantan() {
return new Queue(TOPIC_ROUTINGKEY_GANTAN, false);
}
@Bean
public Queue topicQueueKushuiwei() {
return new Queue(TOPIC_ROUTINGKEY_KUSHUIWEI, false);
}
@Bean
public Queue topicQueueBiaomianweiyi() {
return new Queue(TOPIC_ROUTINGKEY_BIAOMIANWEIYI, false);
}
@Bean
public Queue topicQueueNeibuweiyi() {
return new Queue(TOPIC_ROUTINGKEY_NEIBUWEIYI, false);
}
@Bean
public Queue topicQueueJinrunxian() {
return new Queue(TOPIC_ROUTINGKEY_JINRUNXIAN, false);
}
@Bean
public Queue topicQueueJiangyuliang() {
return new Queue(TOPIC_ROUTINGKEY_JIANGYULIANG, false);
}
@Bean
public Queue topicQueueShenliuliang() {
return new Queue(TOPIC_ROUTINGKEY_SHENLIULIANG, false);
}
@Bean
public Binding topicBinding() {
return BindingBuilder.bind(topicQueue()).to(topicExchange()).with("tailingInfo");
}
@Bean
public Binding topicBindingGantan() {
return BindingBuilder.bind(topicQueueGantan()).to(topicExchange()).with("equipInfo.01");
}
@Bean
public Binding topicBindingKushuiwei() {
return BindingBuilder.bind(topicQueueKushuiwei()).to(topicExchange()).with("equipInfo.02");
}
@Bean
public Binding topicBindingBiaomianweiyi() {
return BindingBuilder.bind(topicQueueBiaomianweiyi()).to(topicExchange()).with("equipInfo.03");
}
@Bean
public Binding topicBindingNeibuweiyi() {
return BindingBuilder.bind(topicQueueNeibuweiyi()).to(topicExchange()).with("equipInfo.04");
}
@Bean
public Binding topicBindingJinrunxian() {
return BindingBuilder.bind(topicQueueJinrunxian()).to(topicExchange()).with("equipInfo.05");
}
@Bean
public Binding topicBindingJiangyuliang() {
return BindingBuilder.bind(topicQueueJiangyuliang()).to(topicExchange()).with("equipInfo.06");
}
@Bean
public Binding topicBindingShenliuliang() {
return BindingBuilder.bind(topicQueueShenliuliang()).to(topicExchange()).with("equipInfo.07");
}*/
// 实时数据RoutingKey
public static final String topicExchangeRealTime = "realTimeData";
// 干滩
public static final String TOPICQUEUEGANTANREALTIME = "dataInfo.01";
public static final String TOPICQUEUEGANtANALARM = "warningInfo.01";
// 库水位
public static final String TOPICQUEUEKUSHUIWEIREALTIME = "dataInfo.02";
public static final String TOPICQUEUEKUSHUIWEIALARM = "warningInfo.02";
// 表面位移
public static final String TOPICQUEUEBIAOMIANWEIYIREALTIME = "dataInfo.03";
public static final String TOPICQUEUEBIAOMIANWEIYIALARM = "warningInfo.03";
// 内部位移
public static final String TOPICQUEUENEIBUWEIYIREALTIME = "dataInfo.04";
public static final String TOPICQUEUENEIBUWEIYIALARM = "warningInfo.04";
// 浸润线
public static final String TOPICQUEUEJINRUNXIANREALTIME = "dataInfo.05";
public static final String TOPICQUEUEJINRUNXIANALARM = "warningInfo.05";
// 降雨量
public static final String TOPICQUEUEJIANGYULIANGREALTIME = "dataInfo.06";
public static final String TOPICQUEUEJIANGYULIANGALARM = "warningInfo.06";
// 渗流量
public static final String TOPICQUEUESHENLIULIANGREALTIME = "dataInfo.07";
public static final String TOPICQUEUESHENLIULIANGALARM = "warningInfo.07";
// 监测项数据信息
public static final String TOPICQUEUEDEVICEREALTIME = "dataInfo.20";
public static final String TOPICQUEUEDEVICEALARM = "warningInfo.20";
// 尾矿库数据信息
public static final String TOPICQUEUEWKKREALTIME = "dataInfo.21";
public static final String TOPICQUEUEWKKALARM = "warningInfo.21";
// 设备离线信息
public static final String TOPICQUEUEOFFLINEINFO = "equipOfflineInfo";
/* @Bean
public TopicExchange TopicExchange_RealTime() {
return new TopicExchange(topicExchangeRealTime, false, false);
}
// 干滩队列
@Bean
public Queue Topic_QueueGantanRealTime() {
return new Queue(TOPICQUEUEGANTANREALTIME, false);
}
@Bean
public Queue Topic_QueueGantanAlarm() {
return new Queue(TOPICQUEUEGANtANALARM, false);
}
// 库水位队列
@Bean
public Queue Topic_QueueKushuiweiRealTime() {
return new Queue(TOPICQUEUEKUSHUIWEIREALTIME, false);
}
@Bean
public Queue Topic_QueueKushuiweiAlarm() {
return new Queue(TOPICQUEUEKUSHUIWEIALARM, false);
}
// 表面位移队列
@Bean
public Queue Topic_QueueBiaomianweiyiRealTime() {
return new Queue(TOPICQUEUEBIAOMIANWEIYIREALTIME, false);
}
@Bean
public Queue Topic_QueueBiaomianweiyiAlarm() {
return new Queue(TOPICQUEUEBIAOMIANWEIYIALARM, false);
}
// 内部位移队列
@Bean
public Queue Topic_QueueNeibuweiyiRealTime() {
return new Queue(TOPICQUEUENEIBUWEIYIREALTIME, false);
}
@Bean
public Queue Topic_QueueNeibuweiyiAlarm() {
return new Queue(TOPICQUEUENEIBUWEIYIALARM, false);
}
// 浸润线队列
@Bean
public Queue Topic_QueueJinrunxianRealTime() {
return new Queue(TOPICQUEUEJINRUNXIANREALTIME, false);
}
@Bean
public Queue Topic_QueueJinrunxianAlarm() {
return new Queue(TOPICQUEUEJINRUNXIANALARM, false);
}
// 降雨量队列
@Bean
public Queue Topic_QueueJiangyuliangRealTime() {
return new Queue(TOPICQUEUEJIANGYULIANGREALTIME, false);
}
@Bean
public Queue Topic_QueueJiangyuliangAlarm() {
return new Queue(TOPICQUEUEJIANGYULIANGALARM, false);
}
// 渗流量队列
@Bean
public Queue Topic_QueueShenliuliangRealTime() {
return new Queue(TOPICQUEUESHENLIULIANGREALTIME, false);
}
@Bean
public Queue Topic_QueueShenliuliangAlarm() {
return new Queue(TOPICQUEUESHENLIULIANGALARM, false);
}
// 监测项数据队列
@Bean
public Queue Topic_QueueDeviceRealTime() {
return new Queue(TOPICQUEUEDEVICEREALTIME, false);
}
@Bean
public Queue Topic_QueueDeviceAlarm() {
return new Queue(TOPICQUEUEDEVICEALARM, false);
}
// 尾矿库队列
@Bean
public Queue Topic_QueueWkkRealTime() {
return new Queue(TOPICQUEUEWKKREALTIME, false);
}
@Bean
public Queue Topic_QueueWkkAlarm() {
return new Queue(TOPICQUEUEWKKALARM, false);
}
// 设备离线
@Bean
public Queue Topic_QueueOffLineInfo() {
return new Queue(TOPICQUEUEOFFLINEINFO, false);
}
// 干滩绑定
@Bean
public Binding topicBindingGantan_realTime() {
return BindingBuilder.bind(Topic_QueueGantanRealTime()).to(TopicExchange_RealTime()).with("dataInfo.01");
}
@Bean
public Binding topicBindingGantan_alarm() {
return BindingBuilder.bind(Topic_QueueGantanAlarm()).to(TopicExchange_RealTime()).with("warningInfo.01");
}
// 库水位绑定
@Bean
public Binding topicBindingKushuiwei_realTime() {
return BindingBuilder.bind(Topic_QueueKushuiweiRealTime()).to(TopicExchange_RealTime()).with("dataInfo.02");
}
@Bean
public Binding topicBindingKushuiwei_alarm() {
return BindingBuilder.bind(Topic_QueueKushuiweiAlarm()).to(TopicExchange_RealTime()).with("warningInfo.02");
}
// 表面位移绑定
@Bean
public Binding topicBindingBiaomianweiyi_realTime() {
return BindingBuilder.bind(Topic_QueueBiaomianweiyiRealTime()).to(TopicExchange_RealTime()).with("dataInfo.03");
}
@Bean
public Binding topicBindingBiaomianweiyi_alarm() {
return BindingBuilder.bind(Topic_QueueBiaomianweiyiAlarm()).to(TopicExchange_RealTime()).with("warningInfo.03");
}
// 内部位移绑定
@Bean
public Binding topicBindingNeibuweiyi_realTime() {
return BindingBuilder.bind(Topic_QueueNeibuweiyiRealTime()).to(TopicExchange_RealTime()).with("dataInfo.04");
}
@Bean
public Binding topicBindingNeibuweiyi_alarm() {
return BindingBuilder.bind(Topic_QueueNeibuweiyiAlarm()).to(TopicExchange_RealTime()).with("warningInfo.04");
}
// 浸润线绑定
@Bean
public Binding topicBindingJinrunxian_realTime() {
return BindingBuilder.bind(Topic_QueueJinrunxianRealTime()).to(TopicExchange_RealTime()).with("dataInfo.05");
}
@Bean
public Binding topicBindingJinrunxian_alarm() {
return BindingBuilder.bind(Topic_QueueJinrunxianAlarm()).to(TopicExchange_RealTime()).with("warningInfo.05");
}
// 降雨量绑定
@Bean
public Binding topicBindingJiangyuliang_realTime() {
return BindingBuilder.bind(Topic_QueueJiangyuliangRealTime()).to(TopicExchange_RealTime()).with("dataInfo.06");
}
@Bean
public Binding topicBindingJiangyuliang_alarm() {
return BindingBuilder.bind(Topic_QueueJiangyuliangAlarm()).to(TopicExchange_RealTime()).with("warningInfo.06");
}
// 渗流量绑定
@Bean
public Binding topicBindingShenliuliang_realTime() {
return BindingBuilder.bind(Topic_QueueShenliuliangRealTime()).to(TopicExchange_RealTime()).with("dataInfo.07");
}
@Bean
public Binding topicBindingShenliuliang_alarm() {
return BindingBuilder.bind(Topic_QueueShenliuliangAlarm()).to(TopicExchange_RealTime()).with("warningInfo.07");
}
// 设备信息绑定
@Bean
public Binding topicBindingdevice_realTime() {
return BindingBuilder.bind(Topic_QueueDeviceRealTime()).to(TopicExchange_RealTime()).with("dataInfo.20");
}
@Bean
public Binding topicBindingDevice_alarm() {
return BindingBuilder.bind(Topic_QueueDeviceAlarm()).to(TopicExchange_RealTime()).with("warningInfo.20");
}
// 尾矿库信息绑定
@Bean
public Binding topicBindingWkk_realTime() {
return BindingBuilder.bind(Topic_QueueWkkRealTime()).to(TopicExchange_RealTime()).with("dataInfo.21");
}
@Bean
public Binding topicBindingWkk_alarm() {
return BindingBuilder.bind(Topic_QueueWkkAlarm()).to(TopicExchange_RealTime()).with("warningInfo.21");
}
@Bean
public Binding topicBindingOffLineInfo() {
return BindingBuilder.bind(Topic_QueueOffLineInfo()).to(TopicExchange_RealTime()).with("equipOfflineInfo");
}*/
}
package com.amqp.shanxi.util;/*
* Created by z0990 on 2019/8/1.
*/
public class Constants {
/**
* 加密/解密算法
*/
public static final String DECRYPT_CIPHER_ALGORITHM = "AES/CBC/PKCS5Padding";
/**
* 加密/解密算法
*/
public static final String DECRYPT_ALGORITHM = "AES";
/**
* 编码
*/
public static final String CHARSET_UTF8 = "UTF-8";
/**
* 数据包分隔符
*/
public static final String MESSAGE_SPLITE = "@@";
}
package com.amqp.shanxi.util;
import com.rabbitmq.client.*;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
/*
* 生产者消费确认
*/
public class Sender {
private static final String EXCHANGE_NAME = "basicData";
public static void main(String[] argv) throws IOException, TimeoutException {
new ExchangeTopic("equipInfo.#");
}
static class ExchangeTopic{
public ExchangeTopic(final String routingKey) throws IOException, TimeoutException {
ConnectionFactory factory = new ConnectionFactory();
//rabbitmq监听IP
factory.setHost("192.168.100.252");
//rabbitmq监听默认端口
factory.setPort(5672);
//设置访问的用户
factory.setUsername("root");
factory.setPassword("root");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
//声明路由名字和类型
// channel.exchangeDeclare(EXCHANGE_NAME, "topic", false, true, null);
//队列名称
String queueName = routingKey + ".queue";
//创建队列
channel.queueDeclare(queueName, false, false, true, null);
//把队列绑定到路由上
channel.queueBind(queueName, EXCHANGE_NAME, routingKey);
System.out.println(" [routingKey = "+ routingKey +"] Waiting for msg....");
Consumer consumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope,
AMQP.BasicProperties properties, byte[] body) throws IOException {
String message = new String(body, "UTF-8");
System.out.println("[routingKey = "+ routingKey +"] Received msg is '" + message + "'");
}
};
channel.basicConsume(queueName, true, consumer);
}
}
}
package com.amqp.shanxi.util;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class StaticParamUtils {
// 基础信息
public static String PROVINCENO;
public static String WKKNO;
// 尾矿库设备编码
public static String GANTANNO;
public static String KUSHUIWEINO;
public static String BIAOMIANWEIYINO;
public static String NEIBUWEIYINO;
public static String JINRUNXIANNO;
public static String JIANGYULIANGNO;
public static String SHENLIULIANGNO;
// 数据类型
public static String BASICINFO;
public static String GANTANDEVICE;
public static String KUSHUIWEIDEVICE;
public static String BIAOMIANWEIYIDEVICE;
public static String NEIBUWEIYIDEVICE;
public static String JINRUNXIANDEVICE;
public static String JIANGYULIANGEDEVICE;
public static String SHENLIULIANGDEVICE;
public static String GANTANDATA;
public static String KUSHUIWEIDATA;
public static String BIAOMIANWEIYIDATA;
public static String NEIBUWEIYIDATA;
public static String JINRUNXIANDATA;
public static String JIANGYULIANGDATA;
public static String SHENLIULIANGDATA;
public static String DEVICEDATA;
public static String WKKDATA;
public static String GANTANALARM;
public static String KUSHUIWEIALARM;
public static String BIAOMIANWEIYIALARM;
public static String NEIBUWEIYIALARM;
public static String JINRUNXIANALARM;
public static String JIANGYULIANGALARM;
public static String SHENLIULIANGALARM;
public static String DEVICEALARM;
public static String WKKALARM;
public static String DEVICEOFFLINE;
@Value("${basic.provinceno}")
public void setPROVINCENO(String PROVINCENO) {
StaticParamUtils.PROVINCENO = PROVINCENO;
}
@Value("${basic.wkkno}")
public void setWKKNO(String WKKNO) {
StaticParamUtils.WKKNO = WKKNO;
}
@Value("${device.gantanno}")
public void setGANTANNO(String GANTANNO) {
StaticParamUtils.GANTANNO = GANTANNO;
}
@Value("${device.kushuiweino}")
public void setKUSHUIWEINO(String KUSHUIWEINO) {
StaticParamUtils.KUSHUIWEINO = KUSHUIWEINO;
}
@Value("${device.biaomianweiyino}")
public void setBIAOMIANWEIYINO(String BIAOMIANWEIYINO) {
StaticParamUtils.BIAOMIANWEIYINO = BIAOMIANWEIYINO;
}
@Value("${device.neibuweiyino}")
public void setNEIBUWEIYINO(String NEIBUWEIYINO) {
StaticParamUtils.NEIBUWEIYINO = NEIBUWEIYINO;
}
@Value("${device.jinrunxianno}")
public void setJINRUNXIANNO(String JINRUNXIANNO) {
StaticParamUtils.JINRUNXIANNO = JINRUNXIANNO;
}
@Value("${device.jiangyuliangno}")
public void setJIANGYULIANGNO(String JIANGYULIANGNO) {
StaticParamUtils.JIANGYULIANGNO = JIANGYULIANGNO;
}
@Value("${device.shenliuliangno}")
public void setSHENLIULIANGNO(String SHENLIULIANGNO) {
StaticParamUtils.SHENLIULIANGNO = SHENLIULIANGNO;
}
@Value("${datatype.basicinfo}")
public void setBASICINFO(String BASICINFO) {
StaticParamUtils.BASICINFO = BASICINFO;
}
@Value("${datatype.gantandevice}")
public void setGANTANDEVICE(String GANTANDEVICE) {
StaticParamUtils.GANTANDEVICE = GANTANDEVICE;
}
@Value("${datatype.kushuiweidevice}")
public void setKUSHUIWEIDEVICE(String KUSHUIWEIDEVICE) {
StaticParamUtils.KUSHUIWEIDEVICE = KUSHUIWEIDEVICE;
}
@Value("${datatype.biaomianweiyidevice}")
public void setBIAOMIANWEIYIDEVICE(String BIAOMIANWEIYIDEVICE) {
StaticParamUtils.BIAOMIANWEIYIDEVICE = BIAOMIANWEIYIDEVICE;
}
@Value("${datatype.neibuweiyidevice}")
public void setNEIBUWEIYIDEVICE(String NEIBUWEIYIDEVICE) {
StaticParamUtils.NEIBUWEIYIDEVICE = NEIBUWEIYIDEVICE;
}
@Value("${datatype.jinrunxiandevice}")
public void setJINRUNXIANDEVICE(String JINRUNXIANDEVICE) {
StaticParamUtils.JINRUNXIANDEVICE = JINRUNXIANDEVICE;
}
@Value("${datatype.jiangyuliangdevice}")
public void setJIANGYULIANGEDEVICE(String JIANGYULIANGEDEVICE) {
StaticParamUtils.JIANGYULIANGEDEVICE = JIANGYULIANGEDEVICE;
}
@Value("${datatype.shenliuliangdevice}")
public void setSHENLIULIANGDEVICE(String SHENLIULIANGDEVICE) {
StaticParamUtils.SHENLIULIANGDEVICE = SHENLIULIANGDEVICE;
}
@Value("${datatype.gantandata}")
public void setGANTANDATA(String GANTANDATA) {
StaticParamUtils.GANTANDATA = GANTANDATA;
}
@Value("${datatype.kushuiweidata}")
public void setKUSHUIWEIDATA(String KUSHUIWEIDATA) {
StaticParamUtils.KUSHUIWEIDATA = KUSHUIWEIDATA;
}
@Value("${datatype.biaomianweiyidata}")
public void setBIAOMIANWEIYIDATA(String BIAOMIANWEIYIDATA) {
StaticParamUtils.BIAOMIANWEIYIDATA = BIAOMIANWEIYIDATA;
}
@Value("${datatype.neibuweiyidata}")
public void setNEIBUWEIYIDATA(String NEIBUWEIYIDATA) {
StaticParamUtils.NEIBUWEIYIDATA = NEIBUWEIYIDATA;
}
@Value("${datatype.jinrunxiandata}")
public void setJINRUNXIANDATA(String JINRUNXIANDATA) {
StaticParamUtils.JINRUNXIANDATA = JINRUNXIANDATA;
}
@Value("${datatype.jiangyuliangdata}")
public static void setJIANGYULIANGDATA(String JIANGYULIANGDATA) {
StaticParamUtils.JIANGYULIANGDATA = JIANGYULIANGDATA;
}
@Value("${datatype.shenliuliangdata}")
public void setSHENLIULIANGDATA(String SHENLIULIANGDATA) {
StaticParamUtils.SHENLIULIANGDATA = SHENLIULIANGDATA;
}
@Value("${datatype.devicedata}")
public void setDEVICEDATA(String DEVICEDATA) {
StaticParamUtils.DEVICEDATA = DEVICEDATA;
}
@Value("${datatype.wkkdata}")
public void setWKKDATA(String WKKDATA) {
StaticParamUtils.WKKDATA = WKKDATA;
}
@Value("${datatype.gantanalarm}")
public void setGANTANALARM(String GANTANALARM) {
StaticParamUtils.GANTANALARM = GANTANALARM;
}
@Value("${datatype.kushuiweialarm}")
public void setKUSHUIWEIALARM(String KUSHUIWEIALARM) {
StaticParamUtils.KUSHUIWEIALARM = KUSHUIWEIALARM;
}
@Value("${datatype.biaomianweiyialarm}")
public void setBIAOMIANWEIYIALARM(String BIAOMIANWEIYIALARM) {
StaticParamUtils.BIAOMIANWEIYIALARM = BIAOMIANWEIYIALARM;
}
@Value("${datatype.neibuweiyialarm}")
public void setNEIBUWEIYIALARM(String NEIBUWEIYIALARM) {
StaticParamUtils.NEIBUWEIYIALARM = NEIBUWEIYIALARM;
}
@Value("${datatype.jinrunxianalarm}")
public void setJINRUNXIANALARM(String JINRUNXIANALARM) {
StaticParamUtils.JINRUNXIANALARM = JINRUNXIANALARM;
}
@Value("${datatype.jiangyuliangalarm}")
public static void setJIANGYULIANGALARM(String JIANGYULIANGALARM) {
StaticParamUtils.JIANGYULIANGALARM = JIANGYULIANGALARM;
}
@Value("${datatype.shenliuliangalarm}")
public static void setSHENLIULIANGALARM(String SHENLIULIANGALARM) {
StaticParamUtils.SHENLIULIANGALARM = SHENLIULIANGALARM;
}
@Value("${datatype.devicealarm}")
public static void setDEVICEALARM(String DEVICEALARM) {
StaticParamUtils.DEVICEALARM = DEVICEALARM;
}
@Value("${datatype.wkkalarm}")
public static void setWKKALARM(String WKKALARM) {
StaticParamUtils.WKKALARM = WKKALARM;
}
@Value("${datatype.deviceoffline}")
public static void setDEVICEOFFLINE(String DEVICEOFFLINE) {
StaticParamUtils.DEVICEOFFLINE = DEVICEOFFLINE;
}
}
server:
port: 9999
spring:
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://118.190.98.56:5432/MineTRS_fengshan
username: postgres
password: red___
rabbitmq:
host: 114.115.212.187
port: 5672
username: bhsoft
password: bhsoft
template:
retry:
enabled: true #代理链接丢失, 启动重试AMQPTemplate
initial-interval: 2s
virtual-host: /
publisher-confirms: true
publisher-returns: true
device: # 设备编码
gantanno: '140924005201'
kushuiweino: '140924005202'
biaomianweiyino: '140924005203'
neibuweiyino: '140924005204'
jinrunxianno: '140924005205'
jiangyuliangno: '140924005206'
shenliuliangno: '140924005207'
basic: # 基础信息
provinceno: '14'
wkkno: '1409240052'
datatype:
basicinfo: '0001'
gantandevice: '0101'
kushuiweidevice: '0201'
biaomianweiyidevice: '0301'
neibuweiyidevice: '0401'
jinrunxiandevice: '0501'
jiangyuliangdevice: '0601'
shenliuliangdevice: '0701'
gantandata: '0102'
kushuiweidata: '0202'
biaomianweiyidata: '0302'
neibuweiyidata: '0402'
jinrunxiandata: '0502'
jiangyuliangdata: '0602'
shenliuliangdata: '0702'
devicedata: '2002' # 检测项数据信息
wkkdata: '2102' # 尾矿库数据信息
gantanalarm: '0103'
kushuiweialarm: '0203'
biaomianweiyialarm: '0303'
neibuweiyialarm: '0403'
jinrunxianalarm: '0503'
jiangyuliangalarm: '0603' # 缺失
shenliuliangalarm: '0703'
devicealarm: '2003'
wkkalarm: '2103'
deviceoffline: '2202'
package com.amqp.shanxi;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class ShanxiApplicationTests {
@Test
void contextLoads() {
}
}
server:
port: 9999
spring:
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://118.190.98.56:5432/MineTRS_fengshan
username: postgres
password: red___
rabbitmq:
host: 114.115.212.187
port: 5672
username: bhsoft
password: bhsoft
template:
retry:
enabled: true #代理链接丢失, 启动重试AMQPTemplate
initial-interval: 2s
virtual-host: /
publisher-confirms: true
publisher-returns: true
device: # 设备编码
gantanno: '140924005201'
kushuiweino: '140924005202'
biaomianweiyino: '140924005203'
neibuweiyino: '140924005204'
jinrunxianno: '140924005205'
jiangyuliangno: '140924005206'
shenliuliangno: '140924005207'
basic: # 基础信息
provinceno: '14'
wkkno: '1409240052'
datatype:
basicinfo: '0001'
gantandevice: '0101'
kushuiweidevice: '0201'
biaomianweiyidevice: '0301'
neibuweiyidevice: '0401'
jinrunxiandevice: '0501'
jiangyuliangdevice: '0601'
shenliuliangdevice: '0701'
gantandata: '0102'
kushuiweidata: '0202'
biaomianweiyidata: '0302'
neibuweiyidata: '0402'
jinrunxiandata: '0502'
jiangyuliangdata: '0602'
shenliuliangdata: '0702'
devicedata: '2002' # 检测项数据信息
wkkdata: '2102' # 尾矿库数据信息
gantanalarm: '0103'
kushuiweialarm: '0203'
biaomianweiyialarm: '0303'
neibuweiyialarm: '0403'
jinrunxianalarm: '0503'
jiangyuliangalarm: '0603' # 缺失
shenliuliangalarm: '0703'
devicealarm: '2003'
wkkalarm: '2103'
deviceoffline: '2202'
artifactId=shanxi
groupId=com.amqp
version=0.0.1-SNAPSHOT
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/WkkRealTimeInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/DeviceRealTimeInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/service/AlarmDataAMQPService.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/GantanRealTimeInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/BiaomianweiyiAlarmInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/BiaomianweiyiRealTimeInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/KushuiweiAlarmInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/DeviceAlarmInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/service/ThreadService.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/util/Sender.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/TabSensorModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/util/AMQPTopicStaticDataConfig.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/NeibuweiyiRealTimeInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/service/impl/DeviceStaticDataInfoServiceImpl.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/JiangyuliangRealTimeInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/service/SensorDataService.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/JiangyuliangDeviceInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/JinrunxianRealTimeInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/dao/DeviceStaticDataInfoDao.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/dao/AlarmInfoDao.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/service/impl/AlarmDataServiceImpl.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/WkkAlarmTimeInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/JinrunxianAlarmInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/GantanAlarmInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/Sender.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/service/DeviceStaticDataAMQPService.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/service/RealTimeDataAMQPService.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/DeviceOffLineInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/JiangyuliangAlarmInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/NeibuweiyiDeviceInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/KushuiweiRealTimeInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/util/Constants.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/util/AESUtil.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/util/StaticParamUtils.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/JinrunxianDeviceInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/StaticDataInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/KushuiweiDeviceInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/BiaomianweiyiDeviceInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/NeibuweiyiAlarmInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/service/DeviceStaticDataInfoService.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/service/AlarmDataService.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/service/RealTimeInfoService.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/DBDeviceInfo.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/ShanxiApplication.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/model/GantanDeviceInfoModel.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/service/impl/RealTimeInfoServiceImpl.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/main/java/com/amqp/shanxi/dao/RealTimeInfoDao.java
/home/xiaoshi/gemhoProject/山西数据推送/shanxi/src/test/java/com/amqp/shanxi/ShanxiApplicationTests.java
<?xml version="1.0" encoding="UTF-8"?>
<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="com.amqp.shanxi.ShanxiApplicationTests" time="2.465" tests="1" errors="0" skipped="0" failures="0">
<properties>
<property name="sun.desktop" value="gnome"/>
<property name="awt.toolkit" value="sun.awt.X11.XToolkit"/>
<property name="file.encoding.pkg" value="sun.io"/>
<property name="java.specification.version" value="1.8"/>
<property name="sun.cpu.isalist" value=""/>
<property name="sun.jnu.encoding" value="UTF-8"/>
<property name="java.class.path" value="/home/xiaoshi/gemhoProject/山西数据推送/shanxi/target/test-classes:/home/xiaoshi/gemhoProject/山西数据推送/shanxi/target/classes:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-starter-amqp/2.3.2.RELEASE/spring-boot-starter-amqp-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-starter/2.3.2.RELEASE/spring-boot-starter-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot/2.3.2.RELEASE/spring-boot-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.3.2.RELEASE/spring-boot-autoconfigure-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.3.2.RELEASE/spring-boot-starter-logging-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/home/xiaoshi/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/home/xiaoshi/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar:/home/xiaoshi/.m2/repository/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar:/home/xiaoshi/.m2/repository/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar:/home/xiaoshi/.m2/repository/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar:/home/xiaoshi/.m2/repository/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-messaging/5.2.8.RELEASE/spring-messaging-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-beans/5.2.8.RELEASE/spring-beans-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/amqp/spring-rabbit/2.2.9.RELEASE/spring-rabbit-2.2.9.RELEASE.jar:/home/xiaoshi/.m2/repository/com/rabbitmq/amqp-client/5.9.0/amqp-client-5.9.0.jar:/home/xiaoshi/.m2/repository/org/springframework/amqp/spring-amqp/2.2.9.RELEASE/spring-amqp-2.2.9.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-context/5.2.8.RELEASE/spring-context-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-aop/5.2.8.RELEASE/spring-aop-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-expression/5.2.8.RELEASE/spring-expression-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-tx/5.2.8.RELEASE/spring-tx-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/2.3.2.RELEASE/spring-boot-starter-jdbc-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar:/home/xiaoshi/.m2/repository/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-jdbc/5.2.8.RELEASE/spring-jdbc-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/postgresql/postgresql/42.2.14/postgresql-42.2.14.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-starter-test/2.3.2.RELEASE/spring-boot-starter-test-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-test/2.3.2.RELEASE/spring-boot-test-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-test-autoconfigure/2.3.2.RELEASE/spring-boot-test-autoconfigure-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar:/home/xiaoshi/.m2/repository/net/minidev/json-smart/2.3/json-smart-2.3.jar:/home/xiaoshi/.m2/repository/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar:/home/xiaoshi/.m2/repository/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar:/home/xiaoshi/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar:/home/xiaoshi/.m2/repository/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar:/home/xiaoshi/.m2/repository/org/assertj/assertj-core/3.16.1/assertj-core-3.16.1.jar:/home/xiaoshi/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/home/xiaoshi/.m2/repository/org/junit/jupiter/junit-jupiter/5.6.2/junit-jupiter-5.6.2.jar:/home/xiaoshi/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.6.2/junit-jupiter-api-5.6.2.jar:/home/xiaoshi/.m2/repository/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.jar:/home/xiaoshi/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/home/xiaoshi/.m2/repository/org/junit/platform/junit-platform-commons/1.6.2/junit-platform-commons-1.6.2.jar:/home/xiaoshi/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.6.2/junit-jupiter-params-5.6.2.jar:/home/xiaoshi/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.6.2/junit-jupiter-engine-5.6.2.jar:/home/xiaoshi/.m2/repository/org/junit/platform/junit-platform-engine/1.6.2/junit-platform-engine-1.6.2.jar:/home/xiaoshi/.m2/repository/org/mockito/mockito-core/3.3.3/mockito-core-3.3.3.jar:/home/xiaoshi/.m2/repository/net/bytebuddy/byte-buddy/1.10.13/byte-buddy-1.10.13.jar:/home/xiaoshi/.m2/repository/net/bytebuddy/byte-buddy-agent/1.10.13/byte-buddy-agent-1.10.13.jar:/home/xiaoshi/.m2/repository/org/objenesis/objenesis/2.6/objenesis-2.6.jar:/home/xiaoshi/.m2/repository/org/mockito/mockito-junit-jupiter/3.3.3/mockito-junit-jupiter-3.3.3.jar:/home/xiaoshi/.m2/repository/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0.jar:/home/xiaoshi/.m2/repository/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-core/5.2.8.RELEASE/spring-core-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-jcl/5.2.8.RELEASE/spring-jcl-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-test/5.2.8.RELEASE/spring-test-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/xmlunit/xmlunit-core/2.7.0/xmlunit-core-2.7.0.jar:/home/xiaoshi/.m2/repository/org/springframework/amqp/spring-rabbit-test/2.2.9.RELEASE/spring-rabbit-test-2.2.9.RELEASE.jar:/home/xiaoshi/.m2/repository/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar:/home/xiaoshi/.m2/repository/org/hamcrest/hamcrest-library/2.2/hamcrest-library-2.2.jar:/home/xiaoshi/.m2/repository/org/springframework/amqp/spring-rabbit-junit/2.2.9.RELEASE/spring-rabbit-junit-2.2.9.RELEASE.jar:/home/xiaoshi/.m2/repository/com/rabbitmq/http-client/3.2.0.RELEASE/http-client-3.2.0.RELEASE.jar:/home/xiaoshi/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.11.1/jackson-databind-2.11.1.jar:/home/xiaoshi/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.11.1/jackson-annotations-2.11.1.jar:/home/xiaoshi/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.11.1/jackson-core-2.11.1.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-web/5.2.8.RELEASE/spring-web-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/mybatis/spring/boot/mybatis-spring-boot-starter/1.3.1/mybatis-spring-boot-starter-1.3.1.jar:/home/xiaoshi/.m2/repository/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/1.3.1/mybatis-spring-boot-autoconfigure-1.3.1.jar:/home/xiaoshi/.m2/repository/org/mybatis/mybatis/3.4.5/mybatis-3.4.5.jar:/home/xiaoshi/.m2/repository/org/mybatis/mybatis-spring/1.3.1/mybatis-spring-1.3.1.jar:/home/xiaoshi/.m2/repository/org/projectlombok/lombok/1.18.12/lombok-1.18.12.jar:/home/xiaoshi/.m2/repository/cn/hutool/hutool-all/5.3.10/hutool-all-5.3.10.jar:"/>
<property name="java.vm.vendor" value="Oracle Corporation"/>
<property name="sun.arch.data.model" value="64"/>
<property name="java.vendor.url" value="http://java.oracle.com/"/>
<property name="user.timezone" value=""/>
<property name="java.vm.specification.version" value="1.8"/>
<property name="os.name" value="Linux"/>
<property name="user.country" value="CN"/>
<property name="sun.java.launcher" value="SUN_STANDARD"/>
<property name="sun.boot.library.path" value="/home/xiaoshi/environment/jdk1.8/jre/lib/amd64"/>
<property name="sun.java.command" value="/home/xiaoshi/gemhoProject/山西数据推送/shanxi/target/surefire/surefirebooter6183711216067496521.jar /home/xiaoshi/gemhoProject/山西数据推送/shanxi/target/surefire 2020-08-19T17-24-09_484-jvmRun1 surefire6823492177805163367tmp surefire_03730925136365942795tmp"/>
<property name="surefire.test.class.path" value="/home/xiaoshi/gemhoProject/山西数据推送/shanxi/target/test-classes:/home/xiaoshi/gemhoProject/山西数据推送/shanxi/target/classes:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-starter-amqp/2.3.2.RELEASE/spring-boot-starter-amqp-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-starter/2.3.2.RELEASE/spring-boot-starter-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot/2.3.2.RELEASE/spring-boot-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.3.2.RELEASE/spring-boot-autoconfigure-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.3.2.RELEASE/spring-boot-starter-logging-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/home/xiaoshi/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/home/xiaoshi/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar:/home/xiaoshi/.m2/repository/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar:/home/xiaoshi/.m2/repository/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar:/home/xiaoshi/.m2/repository/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar:/home/xiaoshi/.m2/repository/org/yaml/snakeyaml/1.26/snakeyaml-1.26.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-messaging/5.2.8.RELEASE/spring-messaging-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-beans/5.2.8.RELEASE/spring-beans-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/amqp/spring-rabbit/2.2.9.RELEASE/spring-rabbit-2.2.9.RELEASE.jar:/home/xiaoshi/.m2/repository/com/rabbitmq/amqp-client/5.9.0/amqp-client-5.9.0.jar:/home/xiaoshi/.m2/repository/org/springframework/amqp/spring-amqp/2.2.9.RELEASE/spring-amqp-2.2.9.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/retry/spring-retry/1.2.5.RELEASE/spring-retry-1.2.5.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-context/5.2.8.RELEASE/spring-context-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-aop/5.2.8.RELEASE/spring-aop-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-expression/5.2.8.RELEASE/spring-expression-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-tx/5.2.8.RELEASE/spring-tx-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/2.3.2.RELEASE/spring-boot-starter-jdbc-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar:/home/xiaoshi/.m2/repository/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-jdbc/5.2.8.RELEASE/spring-jdbc-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/postgresql/postgresql/42.2.14/postgresql-42.2.14.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-starter-test/2.3.2.RELEASE/spring-boot-starter-test-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-test/2.3.2.RELEASE/spring-boot-test-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/boot/spring-boot-test-autoconfigure/2.3.2.RELEASE/spring-boot-test-autoconfigure-2.3.2.RELEASE.jar:/home/xiaoshi/.m2/repository/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar:/home/xiaoshi/.m2/repository/net/minidev/json-smart/2.3/json-smart-2.3.jar:/home/xiaoshi/.m2/repository/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar:/home/xiaoshi/.m2/repository/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar:/home/xiaoshi/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar:/home/xiaoshi/.m2/repository/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar:/home/xiaoshi/.m2/repository/org/assertj/assertj-core/3.16.1/assertj-core-3.16.1.jar:/home/xiaoshi/.m2/repository/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:/home/xiaoshi/.m2/repository/org/junit/jupiter/junit-jupiter/5.6.2/junit-jupiter-5.6.2.jar:/home/xiaoshi/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.6.2/junit-jupiter-api-5.6.2.jar:/home/xiaoshi/.m2/repository/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.jar:/home/xiaoshi/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/home/xiaoshi/.m2/repository/org/junit/platform/junit-platform-commons/1.6.2/junit-platform-commons-1.6.2.jar:/home/xiaoshi/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.6.2/junit-jupiter-params-5.6.2.jar:/home/xiaoshi/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.6.2/junit-jupiter-engine-5.6.2.jar:/home/xiaoshi/.m2/repository/org/junit/platform/junit-platform-engine/1.6.2/junit-platform-engine-1.6.2.jar:/home/xiaoshi/.m2/repository/org/mockito/mockito-core/3.3.3/mockito-core-3.3.3.jar:/home/xiaoshi/.m2/repository/net/bytebuddy/byte-buddy/1.10.13/byte-buddy-1.10.13.jar:/home/xiaoshi/.m2/repository/net/bytebuddy/byte-buddy-agent/1.10.13/byte-buddy-agent-1.10.13.jar:/home/xiaoshi/.m2/repository/org/objenesis/objenesis/2.6/objenesis-2.6.jar:/home/xiaoshi/.m2/repository/org/mockito/mockito-junit-jupiter/3.3.3/mockito-junit-jupiter-3.3.3.jar:/home/xiaoshi/.m2/repository/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0.jar:/home/xiaoshi/.m2/repository/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-core/5.2.8.RELEASE/spring-core-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-jcl/5.2.8.RELEASE/spring-jcl-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-test/5.2.8.RELEASE/spring-test-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/xmlunit/xmlunit-core/2.7.0/xmlunit-core-2.7.0.jar:/home/xiaoshi/.m2/repository/org/springframework/amqp/spring-rabbit-test/2.2.9.RELEASE/spring-rabbit-test-2.2.9.RELEASE.jar:/home/xiaoshi/.m2/repository/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar:/home/xiaoshi/.m2/repository/org/hamcrest/hamcrest-library/2.2/hamcrest-library-2.2.jar:/home/xiaoshi/.m2/repository/org/springframework/amqp/spring-rabbit-junit/2.2.9.RELEASE/spring-rabbit-junit-2.2.9.RELEASE.jar:/home/xiaoshi/.m2/repository/com/rabbitmq/http-client/3.2.0.RELEASE/http-client-3.2.0.RELEASE.jar:/home/xiaoshi/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.11.1/jackson-databind-2.11.1.jar:/home/xiaoshi/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.11.1/jackson-annotations-2.11.1.jar:/home/xiaoshi/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.11.1/jackson-core-2.11.1.jar:/home/xiaoshi/.m2/repository/org/springframework/spring-web/5.2.8.RELEASE/spring-web-5.2.8.RELEASE.jar:/home/xiaoshi/.m2/repository/org/mybatis/spring/boot/mybatis-spring-boot-starter/1.3.1/mybatis-spring-boot-starter-1.3.1.jar:/home/xiaoshi/.m2/repository/org/mybatis/spring/boot/mybatis-spring-boot-autoconfigure/1.3.1/mybatis-spring-boot-autoconfigure-1.3.1.jar:/home/xiaoshi/.m2/repository/org/mybatis/mybatis/3.4.5/mybatis-3.4.5.jar:/home/xiaoshi/.m2/repository/org/mybatis/mybatis-spring/1.3.1/mybatis-spring-1.3.1.jar:/home/xiaoshi/.m2/repository/org/projectlombok/lombok/1.18.12/lombok-1.18.12.jar:/home/xiaoshi/.m2/repository/cn/hutool/hutool-all/5.3.10/hutool-all-5.3.10.jar:"/>
<property name="sun.cpu.endian" value="little"/>
<property name="user.home" value="/home/xiaoshi"/>
<property name="user.language" value="zh"/>
<property name="java.specification.vendor" value="Oracle Corporation"/>
<property name="java.home" value="/home/xiaoshi/environment/jdk1.8/jre"/>
<property name="basedir" value="/home/xiaoshi/gemhoProject/山西数据推送/shanxi"/>
<property name="file.separator" value="/"/>
<property name="line.separator" value="&#10;"/>
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
<property name="java.specification.name" value="Java Platform API Specification"/>
<property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"/>
<property name="surefire.real.class.path" value="/home/xiaoshi/gemhoProject/山西数据推送/shanxi/target/surefire/surefirebooter6183711216067496521.jar"/>
<property name="sun.boot.class.path" value="/home/xiaoshi/environment/jdk1.8/jre/lib/resources.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/rt.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/sunrsasign.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/jsse.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/jce.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/charsets.jar:/home/xiaoshi/environment/jdk1.8/jre/lib/jfr.jar:/home/xiaoshi/environment/jdk1.8/jre/classes"/>
<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
<property name="java.runtime.version" value="1.8.0_251-b08"/>
<property name="user.name" value="xiaoshi"/>
<property name="path.separator" value=":"/>
<property name="os.version" value="5.3.0-3-amd64"/>
<property name="java.endorsed.dirs" value="/home/xiaoshi/environment/jdk1.8/jre/lib/endorsed"/>
<property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>
<property name="file.encoding" value="UTF-8"/>
<property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>
<property name="idea.version2020.1" value="true"/>
<property name="localRepository" value="/home/xiaoshi/.m2/repository"/>
<property name="java.vendor.url.bug" value="http://bugreport.sun.com/bugreport/"/>
<property name="java.io.tmpdir" value="/tmp"/>
<property name="java.version" value="1.8.0_251"/>
<property name="user.dir" value="/home/xiaoshi/gemhoProject/山西数据推送/shanxi"/>
<property name="os.arch" value="amd64"/>
<property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
<property name="java.awt.printerjob" value="sun.print.PSPrinterJob"/>
<property name="sun.os.patch.level" value="unknown"/>
<property name="java.library.path" value="/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib"/>
<property name="java.vm.info" value="mixed mode"/>
<property name="java.vendor" value="Oracle Corporation"/>
<property name="java.vm.version" value="25.251-b08"/>
<property name="java.ext.dirs" value="/home/xiaoshi/environment/jdk1.8/jre/lib/ext:/usr/java/packages/lib/ext"/>
<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
<property name="java.class.version" value="52.0"/>
</properties>
<testcase name="contextLoads" classname="com.amqp.shanxi.ShanxiApplicationTests" time="0.266"/>
</testsuite>
\ No newline at end of file
-------------------------------------------------------------------------------
Test set: com.amqp.shanxi.ShanxiApplicationTests
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.465 s - in com.amqp.shanxi.ShanxiApplicationTests
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