Commit e60deedd4faff90c6d6f55dac0a3b7d7c958c96e

Authored by 徐烜
2 parents 55c2a7ae 1dbcf057
Showing 24 changed files with 816 additions and 237 deletions
hs_err_pid6460.log 0 → 100644
  1 +#
  2 +# A fatal error has been detected by the Java Runtime Environment:
  3 +#
  4 +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000535b9f79, pid=6460, tid=4048
  5 +#
  6 +# JRE version: Java(TM) SE Runtime Environment (7.0_80-b15) (build 1.7.0_80-b15)
  7 +# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.80-b11 mixed mode windows-amd64 compressed oops)
  8 +# Problematic frame:
  9 +# V [jvm.dll+0x199f79]
  10 +#
  11 +# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
  12 +#
  13 +# If you would like to submit a bug report, please visit:
  14 +# http://bugreport.java.com/bugreport/crash.jsp
  15 +#
  16 +
  17 +--------------- T H R E A D ---------------
  18 +
  19 +Current thread (0x000000000e39e800): JavaThread "JDWP Transport Listener: dt_socket" daemon [_thread_in_vm, id=4048, stack(0x000000000e960000,0x000000000ea60000)]
  20 +
  21 +siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000
  22 +
  23 +Registers:
  24 +RAX=0x0000000000000000, RBX=0x000000000e3930e8, RCX=0x0000000000000000, RDX=0x0000000000000000
  25 +RSP=0x000000000ea5f250, RBP=0x000000000ea5f2b9, RSI=0x0000000000000000, RDI=0x000000000e3930f0
  26 +R8 =0x0000000762fe21a8, R9 =0x0000000054bb0000, R10=0x0000000000000000, R11=0x0000000000000000
  27 +R12=0x000000000e39e800, R13=0x000000000ea5f730, R14=0x000000000e39e800, R15=0x000000000ea5f730
  28 +RIP=0x00000000535b9f79, EFLAGS=0x0000000000010246
  29 +
  30 +Top of Stack: (sp=0x000000000ea5f250)
  31 +0x000000000ea5f250: 000000000e3930e8 000000000ea5f2b9
  32 +0x000000000ea5f260: 0000000000000000 0000000000000001
  33 +0x000000000ea5f270: 0000000000000008 000000000e39e800
  34 +0x000000000ea5f280: 0000000000000000 0000000054c18d17
  35 +0x000000000ea5f290: 0000000000000002 000000000e39e800
  36 +0x000000000ea5f2a0: 0000000000000008 00000000128b0c20
  37 +0x000000000ea5f2b0: 0000000000000000 00000000535f8b35
  38 +0x000000000ea5f2c0: 0000000000000000 0000000000000000
  39 +0x000000000ea5f2d0: 00000000128628f0 000000000ea5f730
  40 +0x000000000ea5f2e0: 000000000ea5f730 000000000e39e800
  41 +0x000000000ea5f2f0: 000000000c3aef00 000000000e392870
  42 +0x000000000ea5f300: 0000000000000000 000000000e3a7de0
  43 +0x000000000ea5f310: 000000000ea5f3c9 00000000535ba905
  44 +0x000000000ea5f320: 000000000000068c 0000000000000000
  45 +0x000000000ea5f330: 000000000e3930b0 000000000e39e800
  46 +0x000000000ea5f340: 0000000000000000 0000000000000000
  47 +
  48 +Instructions: (pc=0x00000000535b9f79)
  49 +0x00000000535b9f59: 85 c0 75 05 48 8b c6 eb 10 49 8b 8c 24 20 01 00
  50 +0x00000000535b9f69: 00 48 8b d0 e8 ee ad e6 ff 48 89 45 c7 4c 8b 03
  51 +0x00000000535b9f79: 48 8b 08 41 8b 50 3c 85 d2 75 09 41 8b 40 34 89
  52 +0x00000000535b9f89: 41 3c eb 03 89 51 3c 4d 8b a4 24 18 01 00 00 33
  53 +
  54 +
  55 +Register to memory mapping:
  56 +
  57 +RAX=0x0000000000000000 is an unknown value
  58 +RBX=0x000000000e3930e8 is an unknown value
  59 +RCX=0x0000000000000000 is an unknown value
  60 +RDX=0x0000000000000000 is an unknown value
  61 +RSP=0x000000000ea5f250 is pointing into the stack for thread: 0x000000000e39e800
  62 +RBP=0x000000000ea5f2b9 is pointing into the stack for thread: 0x000000000e39e800
  63 +RSI=0x0000000000000000 is an unknown value
  64 +RDI=0x000000000e3930f0 is an unknown value
  65 +R8 =0x0000000762fe21a8 is an oop
  66 +
  67 +[error occurred during error reporting (printing register info), id 0xe0000000]
  68 +
  69 +Stack: [0x000000000e960000,0x000000000ea60000], sp=0x000000000ea5f250, free space=1020k
  70 +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
  71 +V [jvm.dll+0x199f79]
  72 +
  73 +
  74 +--------------- P R O C E S S ---------------
  75 +
  76 +Java Threads: ( => current thread )
  77 + 0x00000000115c3000 JavaThread "WebSocket background processing" daemon [_thread_blocked, id=6088, stack(0x00000000195c0000,0x00000000196c0000)]
  78 + 0x00000000115bb800 JavaThread "SockJS-8" [_thread_blocked, id=12788, stack(0x00000000194c0000,0x00000000195c0000)]
  79 + 0x00000000115c2000 JavaThread "SockJS-7" [_thread_blocked, id=9020, stack(0x00000000193c0000,0x00000000194c0000)]
  80 + 0x00000000115c0000 JavaThread "SockJS-6" [_thread_blocked, id=1068, stack(0x00000000192c0000,0x00000000193c0000)]
  81 + 0x00000000115bf000 JavaThread "SockJS-5" [_thread_blocked, id=6768, stack(0x00000000191c0000,0x00000000192c0000)]
  82 + 0x00000000115bd000 JavaThread "SockJS-4" [_thread_blocked, id=12372, stack(0x00000000190c0000,0x00000000191c0000)]
  83 + 0x00000000115be800 JavaThread "SockJS-3" [_thread_blocked, id=13176, stack(0x0000000018ec0000,0x0000000018fc0000)]
  84 + 0x00000000115c0800 JavaThread "WebSocketServer-localhost-ROOT-1" daemon [_thread_blocked, id=5664, stack(0x0000000018dc0000,0x0000000018ec0000)]
  85 + 0x00000000115bd800 JavaThread "SockJS-2" [_thread_blocked, id=12388, stack(0x0000000018cc0000,0x0000000018dc0000)]
  86 + 0x00000000115ba800 JavaThread "SockJS-1" [_thread_blocked, id=12812, stack(0x0000000018bc0000,0x0000000018cc0000)]
  87 + 0x00000000115c1800 JavaThread "pool-4-thread-2" [_thread_blocked, id=8172, stack(0x00000000189c0000,0x0000000018ac0000)]
  88 + 0x0000000010d23000 JavaThread "pool-4-thread-1" [_thread_blocked, id=8228, stack(0x00000000188c0000,0x00000000189c0000)]
  89 + 0x0000000010d20000 JavaThread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2" daemon [_thread_blocked, id=7532, stack(0x00000000187c0000,0x00000000188c0000)]
  90 + 0x0000000010d1b800 JavaThread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1" daemon [_thread_blocked, id=6200, stack(0x00000000186c0000,0x00000000187c0000)]
  91 + 0x0000000010d1e800 JavaThread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0" daemon [_thread_blocked, id=7872, stack(0x00000000185c0000,0x00000000186c0000)]
  92 + 0x0000000010d1d000 JavaThread "Timer-2" daemon [_thread_blocked, id=10996, stack(0x00000000184c0000,0x00000000185c0000)]
  93 + 0x0000000010d1e000 JavaThread "http-nio-9088-exec-10" daemon [_thread_blocked, id=13928, stack(0x00000000183c0000,0x00000000184c0000)]
  94 + 0x0000000010d21000 JavaThread "http-nio-9088-exec-9" daemon [_thread_blocked, id=9656, stack(0x00000000182c0000,0x00000000183c0000)]
  95 + 0x0000000010d21800 JavaThread "http-nio-9088-exec-8" daemon [_thread_blocked, id=13800, stack(0x00000000181c0000,0x00000000182c0000)]
  96 + 0x0000000010d1f800 JavaThread "http-nio-9088-exec-7" daemon [_thread_blocked, id=12916, stack(0x00000000180c0000,0x00000000181c0000)]
  97 + 0x0000000010d1c800 JavaThread "http-nio-9088-exec-6" daemon [_thread_blocked, id=13056, stack(0x0000000017fc0000,0x00000000180c0000)]
  98 + 0x0000000010d22800 JavaThread "http-nio-9088-exec-5" daemon [_thread_blocked, id=13128, stack(0x0000000017ec0000,0x0000000017fc0000)]
  99 + 0x0000000010d14000 JavaThread "http-nio-9088-exec-4" daemon [_thread_blocked, id=2376, stack(0x0000000017dc0000,0x0000000017ec0000)]
  100 + 0x0000000010d18000 JavaThread "http-nio-9088-exec-3" daemon [_thread_blocked, id=2028, stack(0x0000000017cc0000,0x0000000017dc0000)]
  101 + 0x0000000010d1a000 JavaThread "http-nio-9088-exec-2" daemon [_thread_blocked, id=13288, stack(0x0000000017bc0000,0x0000000017cc0000)]
  102 + 0x0000000010d18800 JavaThread "http-nio-9088-exec-1" daemon [_thread_blocked, id=13336, stack(0x0000000017ac0000,0x0000000017bc0000)]
  103 + 0x0000000010d17000 JavaThread "DestroyJavaVM" [_thread_blocked, id=13188, stack(0x0000000002810000,0x0000000002910000)]
  104 + 0x0000000010d15800 JavaThread "pool-3-thread-8" [_thread_blocked, id=10168, stack(0x00000000177c0000,0x00000000178c0000)]
  105 + 0x0000000010d15000 JavaThread "pool-3-thread-7" [_thread_blocked, id=13976, stack(0x00000000176c0000,0x00000000177c0000)]
  106 + 0x0000000010d16800 JavaThread "pool-3-thread-6" [_thread_blocked, id=6360, stack(0x00000000175c0000,0x00000000176c0000)]
  107 + 0x0000000010d1b000 JavaThread "pool-3-thread-5" [_thread_blocked, id=12004, stack(0x00000000174c0000,0x00000000175c0000)]
  108 + 0x0000000010d19800 JavaThread "pool-3-thread-4" [_thread_blocked, id=2952, stack(0x00000000173c0000,0x00000000174c0000)]
  109 + 0x000000000fe6b000 JavaThread "pool-3-thread-3" [_thread_blocked, id=12564, stack(0x00000000171c0000,0x00000000172c0000)]
  110 + 0x000000000fe6c800 JavaThread "pool-3-thread-2" [_thread_blocked, id=13104, stack(0x00000000170c0000,0x00000000171c0000)]
  111 + 0x000000000fe6b800 JavaThread "pool-3-thread-1" [_thread_blocked, id=11560, stack(0x0000000016fc0000,0x00000000170c0000)]
  112 + 0x000000000fe6e000 JavaThread "http-nio-9088-Acceptor-0" daemon [_thread_in_native, id=9136, stack(0x0000000015d50000,0x0000000015e50000)]
  113 + 0x0000000014c5a000 JavaThread "http-nio-9088-ClientPoller-1" daemon [_thread_in_native, id=7852, stack(0x0000000015c50000,0x0000000015d50000)]
  114 + 0x0000000013dc0000 JavaThread "http-nio-9088-ClientPoller-0" daemon [_thread_in_native, id=12424, stack(0x0000000015b50000,0x0000000015c50000)]
  115 + 0x0000000013dbf000 JavaThread "NioBlockingSelector.BlockPoller-1" daemon [_thread_in_native, id=13700, stack(0x0000000015a50000,0x0000000015b50000)]
  116 + 0x00000000120f5000 JavaThread "commons-pool-EvictionTimer" daemon [_thread_blocked, id=11380, stack(0x0000000015950000,0x0000000015a50000)]
  117 + 0x00000000104e5800 JavaThread "Timer-0" daemon [_thread_blocked, id=12924, stack(0x0000000015650000,0x0000000015750000)]
  118 + 0x0000000010084800 JavaThread "container-0" [_thread_blocked, id=9884, stack(0x00000000144f0000,0x00000000145f0000)]
  119 + 0x00000000135e3000 JavaThread "ContainerBackgroundProcessor[StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]" daemon [_thread_blocked, id=8248, stack(0x0000000013110000,0x0000000013210000)]
  120 + 0x0000000014ac9800 JavaThread "Abandoned connection cleanup thread" daemon [_thread_blocked, id=5796, stack(0x0000000013010000,0x0000000013110000)]
  121 + 0x000000001199d800 JavaThread "Tomcat JDBC Pool Cleaner[169174794:1470299944387]" daemon [_thread_blocked, id=2196, stack(0x0000000012f10000,0x0000000013010000)]
  122 + 0x000000000f1ee800 JavaThread "FileSystemWatcher: files=#243 cl=sun.misc.Launcher$AppClassLoader@a15670a" daemon [_thread_blocked, id=13032, stack(0x00000000109f0000,0x0000000010af0000)]
  123 + 0x000000000eec2000 JavaThread "Service Thread" daemon [_thread_blocked, id=11684, stack(0x000000000f710000,0x000000000f810000)]
  124 + 0x000000000eeca800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=13412, stack(0x000000000f610000,0x000000000f710000)]
  125 + 0x000000000eec9800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=5552, stack(0x000000000f510000,0x000000000f610000)]
  126 + 0x000000000e3ad000 JavaThread "JDWP Command Reader" daemon [_thread_in_native, id=8012, stack(0x000000000ec10000,0x000000000ed10000)]
  127 + 0x000000000e3ac000 JavaThread "JDWP Event Helper Thread" daemon [_thread_blocked, id=6576, stack(0x000000000eb10000,0x000000000ec10000)]
  128 +=>0x000000000e39e800 JavaThread "JDWP Transport Listener: dt_socket" daemon [_thread_in_vm, id=4048, stack(0x000000000e960000,0x000000000ea60000)]
  129 + 0x000000000e396800 JavaThread "Attach Listener" daemon [_thread_blocked, id=6340, stack(0x000000000e860000,0x000000000e960000)]
  130 + 0x000000000e391800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=4020, stack(0x000000000e760000,0x000000000e860000)]
  131 + 0x000000000c399000 JavaThread "Finalizer" daemon [_thread_blocked, id=10992, stack(0x000000000e260000,0x000000000e360000)]
  132 + 0x00000000029fe800 JavaThread "Reference Handler" daemon [_thread_blocked, id=9164, stack(0x000000000e160000,0x000000000e260000)]
  133 +
  134 +Other Threads:
  135 + 0x000000000c395000 VMThread [stack: 0x000000000e060000,0x000000000e160000] [id=2068]
  136 + 0x000000000eed9800 WatcherThread [stack: 0x000000000f810000,0x000000000f910000] [id=3876]
  137 +
  138 +VM state:not at safepoint (normal execution)
  139 +
  140 +VM Mutex/Monitor currently owned by a thread: None
  141 +
  142 +Heap
  143 + PSYoungGen total 765440K, used 370K [0x00000007cba80000, 0x00000007ff180000, 0x0000000800000000)
  144 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cbadc9c0,0x00000007f5980000)
  145 + from space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  146 + to space 74752K, 0% used [0x00000007fa880000,0x00000007fa880000,0x00000007ff180000)
  147 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  148 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494d00,0x00000007cba80000)
  149 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  150 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  151 +
  152 +Card table byte_map: [0x0000000005b10000,0x0000000006030000] byte_map_base: 0x0000000002021000
  153 +
  154 +Polling page: 0x0000000000650000
  155 +
  156 +Code Cache [0x0000000002b10000, 0x00000000035e0000, 0x0000000005b10000)
  157 + total_blobs=3304 nmethods=2730 adapters=532 free_code_cache=38289Kb largest_free_block=39047680
  158 +
  159 +Compilation events (10 events):
  160 +Event: 1149.288 Thread 0x000000000eeca800 nmethod 3358 0x0000000003411550 code [0x00000000034116a0, 0x0000000003411868]
  161 +Event: 1149.288 Thread 0x000000000eeca800 3359 org.springsource.loaded.ri.Invoker::getJavaMethod (20 bytes)
  162 +Event: 1149.289 Thread 0x000000000eeca800 nmethod 3359 0x000000000359bad0 code [0x000000000359bc00, 0x000000000359bc78]
  163 +Event: 1149.301 Thread 0x000000000eec9800 nmethod 3353 0x00000000035b0c50 code [0x00000000035b0f60, 0x00000000035b2538]
  164 +Event: 1155.428 Thread 0x000000000eeca800 3360 sl.org.objectweb.asm.ClassReader::b (1124 bytes)
  165 +Event: 1155.431 Thread 0x000000000eec9800 3361 sl.org.objectweb.asm.ClassWriter::toByteArray (1303 bytes)
  166 +Event: 1155.832 Thread 0x000000000eec9800 nmethod 3361 0x00000000035bb890 code [0x00000000035bbea0, 0x00000000035c1bb8]
  167 +Event: 1155.832 Thread 0x000000000eec9800 3362 % org.springsource.loaded.TypeDescriptor::getByDescriptor @ 12 (60 bytes)
  168 +Event: 1155.840 Thread 0x000000000eec9800 nmethod 3362% 0x000000000359d4d0 code [0x000000000359d640, 0x000000000359e458]
  169 +Event: 1155.856 Thread 0x000000000eeca800 nmethod 3360 0x00000000035c74d0 code [0x00000000035c7900, 0x00000000035cc260]
  170 +
  171 +GC Heap History (10 events):
  172 +Event: 1156.624 GC heap before
  173 +{Heap before GC invocations=25 (full 8):
  174 + PSYoungGen total 764416K, used 0K [0x00000007cba80000, 0x00000007ff880000, 0x0000000800000000)
  175 + eden space 680448K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5300000)
  176 + from space 83968K, 0% used [0x00000007f5300000,0x00000007f5300000,0x00000007fa500000)
  177 + to space 81408K, 0% used [0x00000007fa900000,0x00000007fa900000,0x00000007ff880000)
  178 + ParOldGen total 1714688K, used 70830K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  179 + object space 1714688K, 4% used [0x0000000763000000,0x000000076752bac8,0x00000007cba80000)
  180 + PSPermGen total 83968K, used 83967K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  181 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffffd0,0x0000000763000000)
  182 +Event: 1156.734 GC heap after
  183 +Heap after GC invocations=25 (full 8):
  184 + PSYoungGen total 764416K, used 0K [0x00000007cba80000, 0x00000007ff880000, 0x0000000800000000)
  185 + eden space 680448K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5300000)
  186 + from space 83968K, 0% used [0x00000007f5300000,0x00000007f5300000,0x00000007fa500000)
  187 + to space 81408K, 0% used [0x00000007fa900000,0x00000007fa900000,0x00000007ff880000)
  188 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  189 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494e10,0x00000007cba80000)
  190 + PSPermGen total 83968K, used 83950K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  191 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffb848,0x0000000763000000)
  192 +}
  193 +Event: 1156.734 GC heap before
  194 +{Heap before GC invocations=26 (full 8):
  195 + PSYoungGen total 764416K, used 6940K [0x00000007cba80000, 0x00000007ff880000, 0x0000000800000000)
  196 + eden space 680448K, 1% used [0x00000007cba80000,0x00000007cc1472a0,0x00000007f5300000)
  197 + from space 83968K, 0% used [0x00000007f5300000,0x00000007f5300000,0x00000007fa500000)
  198 + to space 81408K, 0% used [0x00000007fa900000,0x00000007fa900000,0x00000007ff880000)
  199 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  200 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494e10,0x00000007cba80000)
  201 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  202 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  203 +Event: 1156.738 GC heap after
  204 +Heap after GC invocations=26 (full 8):
  205 + PSYoungGen total 762368K, used 0K [0x00000007cba80000, 0x00000007ff280000, 0x0000000800000000)
  206 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5980000)
  207 + from space 75264K, 0% used [0x00000007fa900000,0x00000007fa900000,0x00000007ff280000)
  208 + to space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  209 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  210 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494e10,0x00000007cba80000)
  211 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  212 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  213 +}
  214 +Event: 1156.738 GC heap before
  215 +{Heap before GC invocations=27 (full 9):
  216 + PSYoungGen total 762368K, used 0K [0x00000007cba80000, 0x00000007ff280000, 0x0000000800000000)
  217 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5980000)
  218 + from space 75264K, 0% used [0x00000007fa900000,0x00000007fa900000,0x00000007ff280000)
  219 + to space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  220 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  221 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494e10,0x00000007cba80000)
  222 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  223 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  224 +Event: 1156.915 GC heap after
  225 +Heap after GC invocations=27 (full 9):
  226 + PSYoungGen total 762368K, used 0K [0x00000007cba80000, 0x00000007ff280000, 0x0000000800000000)
  227 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5980000)
  228 + from space 75264K, 0% used [0x00000007fa900000,0x00000007fa900000,0x00000007ff280000)
  229 + to space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  230 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  231 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494d00,0x00000007cba80000)
  232 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  233 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  234 +}
  235 +Event: 1156.915 GC heap before
  236 +{Heap before GC invocations=28 (full 9):
  237 + PSYoungGen total 762368K, used 0K [0x00000007cba80000, 0x00000007ff280000, 0x0000000800000000)
  238 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5980000)
  239 + from space 75264K, 0% used [0x00000007fa900000,0x00000007fa900000,0x00000007ff280000)
  240 + to space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  241 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  242 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494d00,0x00000007cba80000)
  243 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  244 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  245 +Event: 1156.918 GC heap after
  246 +Heap after GC invocations=28 (full 9):
  247 + PSYoungGen total 765440K, used 0K [0x00000007cba80000, 0x00000007ff180000, 0x0000000800000000)
  248 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5980000)
  249 + from space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  250 + to space 74752K, 0% used [0x00000007fa880000,0x00000007fa880000,0x00000007ff180000)
  251 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  252 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494d00,0x00000007cba80000)
  253 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  254 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  255 +}
  256 +Event: 1156.918 GC heap before
  257 +{Heap before GC invocations=29 (full 10):
  258 + PSYoungGen total 765440K, used 0K [0x00000007cba80000, 0x00000007ff180000, 0x0000000800000000)
  259 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5980000)
  260 + from space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  261 + to space 74752K, 0% used [0x00000007fa880000,0x00000007fa880000,0x00000007ff180000)
  262 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  263 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494d00,0x00000007cba80000)
  264 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  265 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  266 +Event: 1157.029 GC heap after
  267 +Heap after GC invocations=29 (full 10):
  268 + PSYoungGen total 765440K, used 0K [0x00000007cba80000, 0x00000007ff180000, 0x0000000800000000)
  269 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5980000)
  270 + from space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  271 + to space 74752K, 0% used [0x00000007fa880000,0x00000007fa880000,0x00000007ff180000)
  272 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  273 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494d00,0x00000007cba80000)
  274 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  275 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  276 +}
  277 +
  278 +Deoptimization events (10 events):
  279 +Event: 938.332 Thread 0x0000000010d21000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000030b552c method=org.springsource.loaded.ri.ReflectiveInterceptor.getReloadableTypeIfHasBeenReloaded(Ljava/lang/Class;)Lorg/springsource/loaded/ReloadableType; @ 3
  280 +Event: 938.335 Thread 0x0000000010d21000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000030b9028 method=org.springsource.loaded.ri.ReflectiveInterceptor.getReloadableTypeIfHasBeenReloaded(Ljava/lang/Class;)Lorg/springsource/loaded/ReloadableType; @ 3
  281 +Event: 938.339 Thread 0x0000000010d21000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002f85038 method=org.springsource.loaded.ri.ReflectiveInterceptor.getReloadableTypeIfHasBeenReloaded(Ljava/lang/Class;)Lorg/springsource/loaded/ReloadableType; @ 3
  282 +Event: 942.703 Thread 0x0000000010d15800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002fd02f4 method=org.springsource.loaded.ri.ReflectiveInterceptor.getReloadableTypeIfHasBeenReloaded(Ljava/lang/Class;)Lorg/springsource/loaded/ReloadableType; @ 3
  283 +Event: 942.703 Thread 0x0000000010d15800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002d56b88 method=org.springsource.loaded.ri.ReflectiveInterceptor.getReloadableTypeIfHasBeenReloaded(Ljava/lang/Class;)Lorg/springsource/loaded/ReloadableType; @ 3
  284 +Event: 942.703 Thread 0x0000000010d15800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000030f0a64 method=org.springsource.loaded.ri.ReflectiveInterceptor.getReloadableTypeIfHasBeenReloaded(Ljava/lang/Class;)Lorg/springsource/loaded/ReloadableType; @ 3
  285 +Event: 948.331 Thread 0x0000000010d1c800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002c56894 method=org.springsource.loaded.ri.ReflectiveInterceptor.getReloadableTypeIfHasBeenReloaded(Ljava/lang/Class;)Lorg/springsource/loaded/ReloadableType; @ 3
  286 +Event: 1155.432 Thread 0x000000000f1ee800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003050388 method=sl.org.objectweb.asm.MethodWriter.visitIntInsn(II)V @ 15
  287 +Event: 1155.759 Thread 0x000000000f1ee800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000032fe19c method=org.springsource.loaded.TypeRegistry.getTypeRegistryFor(Ljava/lang/ClassLoader;)Lorg/springsource/loaded/TypeRegistry; @ 167
  288 +Event: 1155.759 Thread 0x000000000f1ee800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000032fe19c method=org.springsource.loaded.TypeRegistry.getTypeRegistryFor(Ljava/lang/ClassLoader;)Lorg/springsource/loaded/TypeRegistry; @ 167
  289 +
  290 +Internal exceptions (10 events):
  291 +Event: 935.722 Thread 0x000000000f1ee800 Threw 0x00000007cbde06a0 at C:\re\jdk7u80\2329\hotspot\src\share\vm\prims\jvm.cpp:1319
  292 +Event: 935.722 Thread 0x000000000f1ee800 Threw 0x00000007cbdf07b0 at C:\re\jdk7u80\2329\hotspot\src\share\vm\prims\jvm.cpp:1319
  293 +Event: 935.724 Thread 0x000000000f1ee800 Threw 0x00000007cbe22338 at C:\re\jdk7u80\2329\hotspot\src\share\vm\prims\jvm.cpp:1319
  294 +Event: 935.724 Thread 0x000000000f1ee800 Threw 0x00000007cbe2ec08 at C:\re\jdk7u80\2329\hotspot\src\share\vm\prims\jvm.cpp:1319
  295 +Event: 935.726 Thread 0x000000000f1ee800 Threw 0x00000007cbe770f0 at C:\re\jdk7u80\2329\hotspot\src\share\vm\prims\jvm.cpp:1319
  296 +Event: 935.728 Thread 0x000000000f1ee800 Implicit null exception at 0x0000000002de657f to 0x0000000002de6a1d
  297 +Event: 935.729 Thread 0x000000000f1ee800 Threw 0x00000007cbe8bdb8 at C:\re\jdk7u80\2329\hotspot\src\share\vm\prims\jvm.cpp:1319
  298 +Event: 935.730 Thread 0x000000000f1ee800 Implicit null exception at 0x0000000002d52e10 to 0x0000000002d52e5d
  299 +Event: 937.543 Thread 0x000000000fe6c800 Threw 0x00000007ccbe0330 at C:\re\jdk7u80\2329\hotspot\src\share\vm\prims\jvm.cpp:1319
  300 +Event: 1157.029 Thread 0x000000000e39e800 Threw 0x000000075dead638 at C:\re\jdk7u80\2329\hotspot\src\share\vm\gc_interface/collectedHeap.inline.hpp:225
  301 +
  302 +Events (10 events):
  303 +Event: 1155.759 Thread 0x000000000f1ee800 Uncommon trap: trap_request=0xffffffde fr.pc=0x00000000032fe19c
  304 +Event: 1155.759 Thread 0x000000000f1ee800 DEOPT PACKING pc=0x00000000032fe19c sp=0x0000000010aed6b0
  305 +Event: 1155.759 Thread 0x000000000f1ee800 DEOPT UNPACKING pc=0x0000000002b475a4 sp=0x0000000010aed600 mode 2
  306 +Event: 1155.856 Thread 0x000000000eeca800 flushing nmethod 0x0000000002c65150
  307 +Event: 1156.219 Executing VM operation: ParallelGCFailedPermanentAllocation
  308 +Event: 1156.352 Executing VM operation: ParallelGCFailedPermanentAllocation done
  309 +Event: 1156.352 Executing VM operation: ParallelGCFailedPermanentAllocation
  310 +Event: 1156.734 Executing VM operation: ParallelGCFailedPermanentAllocation done
  311 +Event: 1156.734 Executing VM operation: ParallelGCFailedPermanentAllocation
  312 +Event: 1157.029 Executing VM operation: ParallelGCFailedPermanentAllocation done
  313 +
  314 +
  315 +Dynamic libraries:
  316 +0x00007ff7f0560000 - 0x00007ff7f0593000 C:\Program Files\Java\jdk1.7.0_80\bin\javaw.exe
  317 +0x00007fff1e7c0000 - 0x00007fff1e981000 C:\WINDOWS\SYSTEM32\ntdll.dll
  318 +0x00007fff1bbc0000 - 0x00007fff1bc6d000 C:\WINDOWS\system32\KERNEL32.DLL
  319 +0x00007fff1b960000 - 0x00007fff1bb48000 C:\WINDOWS\system32\KERNELBASE.dll
  320 +0x00007fff1bc70000 - 0x00007fff1bd17000 C:\WINDOWS\system32\ADVAPI32.dll
  321 +0x00007fff1da50000 - 0x00007fff1daed000 C:\WINDOWS\system32\msvcrt.dll
  322 +0x00007fff1e490000 - 0x00007fff1e4eb000 C:\WINDOWS\system32\sechost.dll
  323 +0x00007fff1daf0000 - 0x00007fff1dc0c000 C:\WINDOWS\system32\RPCRT4.dll
  324 +0x00007fff1c1b0000 - 0x00007fff1c306000 C:\WINDOWS\system32\USER32.dll
  325 +0x00007fff1e5c0000 - 0x00007fff1e746000 C:\WINDOWS\system32\GDI32.dll
  326 +0x00007fff15b20000 - 0x00007fff15d94000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.10586.494_none_a2d8b04ea53e3145\COMCTL32.dll
  327 +0x00007fff1e1b0000 - 0x00007fff1e42d000 C:\WINDOWS\system32\combase.dll
  328 +0x00007fff1bb50000 - 0x00007fff1bbba000 C:\WINDOWS\system32\bcryptPrimitives.dll
  329 +0x00007fff1e000000 - 0x00007fff1e03b000 C:\WINDOWS\system32\IMM32.DLL
  330 +0x0000000054bb0000 - 0x0000000054c82000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\msvcr100.dll
  331 +0x0000000053420000 - 0x0000000053bf9000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\server\jvm.dll
  332 +0x00007fff1e1a0000 - 0x00007fff1e1a8000 C:\WINDOWS\system32\PSAPI.DLL
  333 +0x00007fff18230000 - 0x00007fff18239000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
  334 +0x00007fff18eb0000 - 0x00007fff18ed3000 C:\WINDOWS\SYSTEM32\WINMM.dll
  335 +0x00007fff1e750000 - 0x00007fff1e7bb000 C:\WINDOWS\system32\WS2_32.dll
  336 +0x00007fff18e30000 - 0x00007fff18e5c000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
  337 +0x00007fff1b240000 - 0x00007fff1b283000 C:\WINDOWS\system32\cfgmgr32.dll
  338 +0x0000000054ba0000 - 0x0000000054baf000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\verify.dll
  339 +0x0000000054b70000 - 0x0000000054b98000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\java.dll
  340 +0x0000000054b30000 - 0x0000000054b65000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\jdwp.dll
  341 +0x0000000054b20000 - 0x0000000054b28000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\npt.dll
  342 +0x0000000054af0000 - 0x0000000054b13000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\instrument.dll
  343 +0x0000000054ad0000 - 0x0000000054ae6000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\zip.dll
  344 +0x0000000054ac0000 - 0x0000000054ac9000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\dt_socket.dll
  345 +0x00007fff08350000 - 0x00007fff08366000 C:\WINDOWS\system32\napinsp.dll
  346 +0x00007fff08310000 - 0x00007fff0832a000 C:\WINDOWS\system32\pnrpnsp.dll
  347 +0x00007fff18e60000 - 0x00007fff18e78000 C:\WINDOWS\system32\NLAapi.dll
  348 +0x00007fff1a6b0000 - 0x00007fff1a70c000 C:\WINDOWS\System32\mswsock.dll
  349 +0x00007fff19760000 - 0x00007fff1980a000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
  350 +0x00007fff1e500000 - 0x00007fff1e508000 C:\WINDOWS\system32\NSI.dll
  351 +0x00007fff09680000 - 0x00007fff0968d000 C:\WINDOWS\System32\winrnr.dll
  352 +0x00000000553e0000 - 0x0000000055406000 C:\Program Files\Bonjour\mdnsNSP.dll
  353 +0x00007fff12600000 - 0x00007fff12638000 C:\WINDOWS\SYSTEM32\Iphlpapi.DLL
  354 +0x00007fff11f80000 - 0x00007fff11fe7000 C:\WINDOWS\System32\fwpuclnt.dll
  355 +0x00007fff1ad10000 - 0x00007fff1ad39000 C:\WINDOWS\SYSTEM32\bcrypt.dll
  356 +0x00007fff0b3c0000 - 0x00007fff0b3ca000 C:\Windows\System32\rasadhlp.dll
  357 +0x0000000054aa0000 - 0x0000000054aba000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\net.dll
  358 +0x0000000054a80000 - 0x0000000054a91000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\nio.dll
  359 +0x0000000054a70000 - 0x0000000054a7b000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\management.dll
  360 +0x00007fff1a760000 - 0x00007fff1a777000 C:\WINDOWS\SYSTEM32\CRYPTSP.dll
  361 +0x00007fff1a3f0000 - 0x00007fff1a424000 C:\WINDOWS\system32\rsaenh.dll
  362 +0x00007fff1a540000 - 0x00007fff1a55f000 C:\WINDOWS\SYSTEM32\USERENV.dll
  363 +0x00007fff1ade0000 - 0x00007fff1adf4000 C:\WINDOWS\system32\profapi.dll
  364 +0x00007fff1a880000 - 0x00007fff1a88b000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
  365 +0x00007fff11c80000 - 0x00007fff11c96000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
  366 +0x00007fff11d40000 - 0x00007fff11d5a000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
  367 +0x0000000054a40000 - 0x0000000054a64000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\sunec.dll
  368 +0x0000000054a30000 - 0x0000000054a3b000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\sunmscapi.dll
  369 +0x00007fff1af30000 - 0x00007fff1b0f8000 C:\WINDOWS\system32\CRYPT32.dll
  370 +0x00007fff1ae50000 - 0x00007fff1ae60000 C:\WINDOWS\system32\MSASN1.dll
  371 +0x0000000054890000 - 0x0000000054a25000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\awt.dll
  372 +0x00007fff1df10000 - 0x00007fff1dfd1000 C:\WINDOWS\system32\OLEAUT32.dll
  373 +0x00007fff195d0000 - 0x00007fff19649000 C:\WINDOWS\system32\apphelp.dll
  374 +0x00007fff17d40000 - 0x00007fff17ecc000 C:\WINDOWS\SYSTEM32\dbghelp.dll
  375 +
  376 +VM Arguments:
  377 +jvm_args: -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:61815 -javaagent:G:\springloaded-1.2.5.RELEASE.jar -Xverify:none -Xms1028m -Xmx2512m -Dfile.encoding=UTF-8
  378 +java_command: com.bsth.Application
  379 +Launcher Type: SUN_STANDARD
  380 +
  381 +Environment Variables:
  382 +JAVA_HOME=C:\Program Files\Java\jdk1.7.0_80
  383 +CLASSPATH=.;C:\Program Files\Java\jdk1.7.0_80\lib;C:\Program Files\Java\jdk1.7.0_80\lib\tools.jar
  384 +PATH=C:\Perl64\site\bin;C:\Perl64\bin;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Intel\IntelSGXPSW\bin\x64\Release\;C:\Program Files\Intel\IntelSGXPSW\bin\win32\Release\;C:\Program Files\Java\jdk1.7.0_80\bin;C:\Program Files\Java\jdk1.7.0_80\jre\bin;G:\apache-maven-3.3.9\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;G:\TortoiseSVN 1.9\bin;G:\Git\cmd;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin;D:\openssl\bin;C:\Program Files\nodejs\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Users\panzhao\AppData\Roaming\npm;C:\Program Files (x86)\SSH Communications Security\SSH Secure Shell
  385 +USERNAME=panzhao
  386 +OS=Windows_NT
  387 +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 94 Stepping 3, GenuineIntel
  388 +
  389 +
  390 +
  391 +--------------- S Y S T E M ---------------
  392 +
  393 +OS: Windows 8.1 , 64 bit Build 9600
  394 +
  395 +CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 94 stepping 3, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, erms, ht, tsc, tscinvbit
  396 +
  397 +Memory: 4k page, physical 8223456k(2856092k free), swap 9599712k(1366128k free)
  398 +
  399 +vm_info: Java HotSpot(TM) 64-Bit Server VM (24.80-b11) for windows-amd64 JRE (1.7.0_80-b15), built on Apr 10 2015 11:26:34 by "java_re" with unknown MS VC++:1600
  400 +
  401 +time: Thu Aug 04 16:58:12 2016
  402 +elapsed time: 1157 seconds
  403 +
src/main/java/com/bsth/StartCommand.java
@@ -21,8 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired;
21 import org.springframework.boot.CommandLineRunner; 21 import org.springframework.boot.CommandLineRunner;
22 import org.springframework.stereotype.Component; 22 import org.springframework.stereotype.Component;
23 23
24 -import java.util.Timer;  
25 -import java.util.TimerTask;  
26 import java.util.concurrent.Executors; 24 import java.util.concurrent.Executors;
27 import java.util.concurrent.ScheduledExecutorService; 25 import java.util.concurrent.ScheduledExecutorService;
28 import java.util.concurrent.TimeUnit; 26 import java.util.concurrent.TimeUnit;
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
@@ -264,6 +264,18 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, @@ -264,6 +264,18 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo,
264 getSchedulePlanThread.start(); 264 getSchedulePlanThread.start();
265 return 1; 265 return 1;
266 } 266 }
  267 +
  268 + /**
  269 + *
  270 + * @Title: removeChildTask
  271 + * @Description: TODO(删除子任务)
  272 + * @param @param taskId 子任务ID
  273 + * @throws
  274 + */
  275 + @RequestMapping(value = "/childTask/{taskId}", method = RequestMethod.DELETE)
  276 + public Map<String, Object> removeChildTask(@PathVariable("taskId") Long taskId){
  277 + return scheduleRealInfoService.removeChildTask(taskId);
  278 + }
267 279
268 /** 280 /**
269 * 281 *
src/main/java/com/bsth/entity/realcontrol/ChildTaskPlan.java
@@ -223,5 +223,14 @@ public class ChildTaskPlan { @@ -223,5 +223,14 @@ public class ChildTaskPlan {
223 public void setEndStationName(String endStationName) { 223 public void setEndStationName(String endStationName) {
224 this.endStationName = endStationName; 224 this.endStationName = endStationName;
225 } 225 }
226 - 226 +
  227 + @Override
  228 + public int hashCode() {
  229 + return ("" + this.getId() + this.getSchedule().getId()).hashCode();
  230 + }
  231 +
  232 + @Override
  233 + public boolean equals(Object obj) {
  234 + return this.id.equals(((ChildTaskPlan)obj).getId());
  235 + }
227 } 236 }
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
@@ -183,7 +183,7 @@ public class ScheduleRealInfo { @@ -183,7 +183,7 @@ public class ScheduleRealInfo {
183 private String qdzArrDatesj; 183 private String qdzArrDatesj;
184 184
185 /** 子任务 */ 185 /** 子任务 */
186 - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) 186 + @OneToMany(fetch = FetchType.LAZY/*, cascade = CascadeType.ALL*/)
187 private Set<ChildTaskPlan> cTasks = new HashSet<>(); 187 private Set<ChildTaskPlan> cTasks = new HashSet<>();
188 188
189 /** ---------------- */ 189 /** ---------------- */
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
@@ -93,4 +93,6 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L @@ -93,4 +93,6 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
93 List<ScheduleRealInfo> correctForm(String line,String startDate,String endDate,String lpName,String code); 93 List<ScheduleRealInfo> correctForm(String line,String startDate,String endDate,String lpName,String code);
94 94
95 List<ScheduleRealInfo> queryListWaybill(String jName,String clZbh,String lpName); 95 List<ScheduleRealInfo> queryListWaybill(String jName,String clZbh,String lpName);
  96 +
  97 + Map<String, Object> removeChildTask(Long taskId);
96 } 98 }
src/main/java/com/bsth/service/realcontrol/impl/ChildTaskPlanServiceImpl.java
@@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service;
9 9
10 import com.bsth.entity.realcontrol.ChildTaskPlan; 10 import com.bsth.entity.realcontrol.ChildTaskPlan;
11 import com.bsth.entity.realcontrol.ScheduleRealInfo; 11 import com.bsth.entity.realcontrol.ScheduleRealInfo;
  12 +import com.bsth.repository.realcontrol.ChildTaskPlanRepository;
12 import com.bsth.service.impl.BaseServiceImpl; 13 import com.bsth.service.impl.BaseServiceImpl;
13 import com.bsth.service.realcontrol.ChildTaskPlanService; 14 import com.bsth.service.realcontrol.ChildTaskPlanService;
14 import com.bsth.service.realcontrol.buffer.ScheduleBuffer; 15 import com.bsth.service.realcontrol.buffer.ScheduleBuffer;
@@ -17,8 +18,11 @@ import com.bsth.vehicle.common.CommonMapped; @@ -17,8 +18,11 @@ import com.bsth.vehicle.common.CommonMapped;
17 @Service 18 @Service
18 public class ChildTaskPlanServiceImpl extends BaseServiceImpl<ChildTaskPlan, Long> implements ChildTaskPlanService{ 19 public class ChildTaskPlanServiceImpl extends BaseServiceImpl<ChildTaskPlan, Long> implements ChildTaskPlanService{
19 20
  21 + /*@Autowired
  22 + ScheduleRealInfoServiceImpl scheduleRealInfoService;*/
  23 +
20 @Autowired 24 @Autowired
21 - ScheduleRealInfoServiceImpl scheduleRealInfoService; 25 + ChildTaskPlanRepository childTaskPlanRepository;
22 26
23 @Transactional 27 @Transactional
24 @Override 28 @Override
@@ -29,14 +33,28 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl&lt;ChildTaskPlan, Lon @@ -29,14 +33,28 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl&lt;ChildTaskPlan, Lon
29 33
30 t.setStartStationName(map.get(t.getStartStation())); 34 t.setStartStationName(map.get(t.getStartStation()));
31 t.setEndStationName(map.get(t.getEndStation())); 35 t.setEndStationName(map.get(t.getEndStation()));
32 -  
33 - //rs = super.save(t);  
34 - 36 + //先持久化子任务
  37 + rs = super.save(t);
  38 + //再关联主任务
35 ScheduleRealInfo sch = ScheduleBuffer.findOne(t.getSchedule().getId()); 39 ScheduleRealInfo sch = ScheduleBuffer.findOne(t.getSchedule().getId());
36 sch.getcTasks().add(t); 40 sch.getcTasks().add(t);
37 - rs = scheduleRealInfoService.save(sch); 41 + //rs = scheduleRealInfoService.save(sch);
38 42
  43 + rs.put("t", sch);
  44 + return rs;
  45 + }
  46 +
  47 + @Override
  48 + public Map<String, Object> delete(Long id) {
  49 + Map<String, Object> rs;
  50 +
  51 + ChildTaskPlan cPlan = childTaskPlanRepository.findOne(id);
  52 + //解除和主任务关联
  53 + ScheduleRealInfo sch = ScheduleBuffer.findOne(cPlan.getSchedule().getId());
  54 + sch.getcTasks().remove(cPlan);
  55 + //删除子任务
  56 + rs = super.delete(id);
  57 + rs.put("t", sch);
39 return rs; 58 return rs;
40 } 59 }
41 -  
42 } 60 }
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -25,12 +25,14 @@ import com.bsth.common.ResponseCode; @@ -25,12 +25,14 @@ import com.bsth.common.ResponseCode;
25 import com.bsth.entity.Cars; 25 import com.bsth.entity.Cars;
26 import com.bsth.entity.Line; 26 import com.bsth.entity.Line;
27 import com.bsth.entity.Personnel; 27 import com.bsth.entity.Personnel;
  28 +import com.bsth.entity.realcontrol.ChildTaskPlan;
28 import com.bsth.entity.realcontrol.ScheduleRealInfo; 29 import com.bsth.entity.realcontrol.ScheduleRealInfo;
29 import com.bsth.entity.schedule.CarConfigInfo; 30 import com.bsth.entity.schedule.CarConfigInfo;
30 import com.bsth.entity.schedule.EmployeeConfigInfo; 31 import com.bsth.entity.schedule.EmployeeConfigInfo;
31 import com.bsth.entity.schedule.GuideboardInfo; 32 import com.bsth.entity.schedule.GuideboardInfo;
32 import com.bsth.entity.sys.SysUser; 33 import com.bsth.entity.sys.SysUser;
33 import com.bsth.repository.LineRepository; 34 import com.bsth.repository.LineRepository;
  35 +import com.bsth.repository.realcontrol.ChildTaskPlanRepository;
34 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; 36 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
35 import com.bsth.repository.schedule.CarConfigInfoRepository; 37 import com.bsth.repository.schedule.CarConfigInfoRepository;
36 import com.bsth.repository.schedule.EmployeeConfigInfoRepository; 38 import com.bsth.repository.schedule.EmployeeConfigInfoRepository;
@@ -74,6 +76,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -74,6 +76,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
74 76
75 @Autowired 77 @Autowired
76 GuideboardInfoRepository guideboardInfoRepository; 78 GuideboardInfoRepository guideboardInfoRepository;
  79 +
  80 + @Autowired
  81 + ChildTaskPlanRepository cTaskPlanRepository;
77 82
78 Logger logger = LoggerFactory.getLogger(this.getClass()); 83 Logger logger = LoggerFactory.getLogger(this.getClass());
79 84
@@ -924,4 +929,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -924,4 +929,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
924 String lpName) { 929 String lpName) {
925 return scheduleRealInfoRepository.queryListWaybill(jName,clZbh,lpName); 930 return scheduleRealInfoRepository.queryListWaybill(jName,clZbh,lpName);
926 } 931 }
  932 +
  933 + @Override
  934 + public Map<String, Object> removeChildTask(Long taskId) {
  935 + Map<String, Object> rs = new HashMap<>();
  936 + ChildTaskPlan chTask = cTaskPlanRepository.findOne(taskId);
  937 +
  938 + ScheduleRealInfo sch = ScheduleBuffer.findOne(chTask.getSchedule().getId());
  939 + try {
  940 +
  941 + sch.getcTasks().remove(chTask);
  942 + scheduleRealInfoRepository.save(sch);
  943 + rs.put("status", ResponseCode.SUCCESS);
  944 + } catch (Exception e) {
  945 + logger.error("", e);
  946 + rs.put("status", ResponseCode.ERROR);
  947 + }
  948 + return rs;
  949 + }
927 } 950 }
src/main/java/com/bsth/vehicle/common/CommonMapped.java
1 package com.bsth.vehicle.common; 1 package com.bsth.vehicle.common;
2 2
3 -import java.util.List;  
4 import java.util.Map; 3 import java.util.Map;
5 4
6 import com.bsth.entity.Line; 5 import com.bsth.entity.Line;
7 -import com.bsth.entity.StationRoute;  
8 import com.google.common.collect.BiMap; 6 import com.google.common.collect.BiMap;
9 import com.google.common.collect.TreeMultimap; 7 import com.google.common.collect.TreeMultimap;
10 8
src/main/java/com/bsth/vehicle/common/CommonRefreshThread.java
1 package com.bsth.vehicle.common; 1 package com.bsth.vehicle.common;
2 2
3 -import java.util.ArrayList;  
4 -import java.util.Collections;  
5 import java.util.Comparator; 3 import java.util.Comparator;
6 import java.util.HashMap; 4 import java.util.HashMap;
7 import java.util.Iterator; 5 import java.util.Iterator;
8 -import java.util.List;  
9 import java.util.Map; 6 import java.util.Map;
10 7
11 import org.slf4j.Logger; 8 import org.slf4j.Logger;
src/main/java/com/bsth/vehicle/directive/service/DirectiveService.java
@@ -77,6 +77,4 @@ public interface DirectiveService extends BaseService&lt;Directive60, Integer&gt;{ @@ -77,6 +77,4 @@ public interface DirectiveService extends BaseService&lt;Directive60, Integer&gt;{
77 Map<String, Object> reply80(int id, int reply); 77 Map<String, Object> reply80(int id, int reply);
78 78
79 Map<String, Object> findDirective(String nbbm, int dType, int page, int size); 79 Map<String, Object> findDirective(String nbbm, int dType, int page, int size);
80 -  
81 - String createDeviceRefreshData(String deviceId, Integer lineId);  
82 } 80 }
src/main/java/com/bsth/vehicle/directive/service/DirectiveServiceImpl.java
@@ -21,20 +21,17 @@ import com.bsth.entity.realcontrol.ScheduleRealInfo; @@ -21,20 +21,17 @@ import com.bsth.entity.realcontrol.ScheduleRealInfo;
21 import com.bsth.service.impl.BaseServiceImpl; 21 import com.bsth.service.impl.BaseServiceImpl;
22 import com.bsth.service.realcontrol.buffer.ScheduleBuffer; 22 import com.bsth.service.realcontrol.buffer.ScheduleBuffer;
23 import com.bsth.vehicle.common.CommonMapped; 23 import com.bsth.vehicle.common.CommonMapped;
24 -import com.bsth.vehicle.directive.Consts;  
25 -import com.bsth.vehicle.directive.MsgIdGenerator;  
26 import com.bsth.vehicle.directive.buffer.DirectiveBuffer; 24 import com.bsth.vehicle.directive.buffer.DirectiveBuffer;
27 import com.bsth.vehicle.directive.entity.Directive; 25 import com.bsth.vehicle.directive.entity.Directive;
28 import com.bsth.vehicle.directive.entity.Directive60; 26 import com.bsth.vehicle.directive.entity.Directive60;
29 -import com.bsth.vehicle.directive.entity.Directive60.DirectiveData;  
30 import com.bsth.vehicle.directive.entity.DirectiveC0.DirectiveC0Data; 27 import com.bsth.vehicle.directive.entity.DirectiveC0.DirectiveC0Data;
31 import com.bsth.vehicle.directive.entity.Directive80; 28 import com.bsth.vehicle.directive.entity.Directive80;
32 import com.bsth.vehicle.directive.entity.DirectiveC0; 29 import com.bsth.vehicle.directive.entity.DirectiveC0;
33 import com.bsth.vehicle.directive.entity.Directive64; 30 import com.bsth.vehicle.directive.entity.Directive64;
34 -import com.bsth.vehicle.directive.entity.Directive64.LineChangeData;  
35 import com.bsth.vehicle.directive.repository.Directive60Repository; 31 import com.bsth.vehicle.directive.repository.Directive60Repository;
36 import com.bsth.vehicle.directive.repository.Directive80Repository; 32 import com.bsth.vehicle.directive.repository.Directive80Repository;
37 import com.bsth.vehicle.directive.repository.LineChangeRepository; 33 import com.bsth.vehicle.directive.repository.LineChangeRepository;
  34 +import com.bsth.vehicle.directive.util.DirectiveDataFactory;
38 import com.bsth.vehicle.directive.util.HttpUtils; 35 import com.bsth.vehicle.directive.util.HttpUtils;
39 import com.bsth.vehicle.gpsdata.buffer.GpsRealDataBuffer; 36 import com.bsth.vehicle.gpsdata.buffer.GpsRealDataBuffer;
40 import com.bsth.vehicle.gpsdata.entity.GpsRealData; 37 import com.bsth.vehicle.gpsdata.entity.GpsRealData;
@@ -65,9 +62,6 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -65,9 +62,6 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
65 62
66 static Long schDiff = 1000 * 60 * 60L; 63 static Long schDiff = 1000 * 60 * 60L;
67 64
68 - // 城市代码  
69 - static final short cityCode = 22;  
70 -  
71 @Override 65 @Override
72 public int send60Phrase(String nbbm, String text, String sender) { 66 public int send60Phrase(String nbbm, String text, String sender) {
73 Directive60 directive = null; 67 Directive60 directive = null;
@@ -101,9 +95,9 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -101,9 +95,9 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
101 Directive60 directive = null; 95 Directive60 directive = null;
102 try { 96 try {
103 // 如果发车时间距当前时间较远,则不发送 97 // 如果发车时间距当前时间较远,则不发送
104 - if (Math.abs(sch.getFcsjT() - System.currentTimeMillis()) > schDiff) { 98 + /*if (Math.abs(sch.getFcsjT() - System.currentTimeMillis()) > schDiff) {
105 return -2; 99 return -2;
106 - } 100 + }*/
107 101
108 String text = "已完成" + finish + "个班次,下一发车时间" + sdfHHmm.format(new Date(sch.getFcsjT())) + ",由" 102 String text = "已完成" + finish + "个班次,下一发车时间" + sdfHHmm.format(new Date(sch.getFcsjT())) + ",由"
109 + sch.getQdzName() + "发往" + sch.getZdzName(); 103 + sch.getQdzName() + "发往" + sch.getZdzName();
@@ -167,7 +161,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -167,7 +161,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
167 logger.info("切换运营状态, nbbm: " + nbbm + " ,state: " + state + " ,upDown:" + upDown); 161 logger.info("切换运营状态, nbbm: " + nbbm + " ,state: " + state + " ,upDown:" + upDown);
168 162
169 String text = "切换为 " + (upDown == 0 ? "上行" : "下行") + (state == 0 ? "营运" : "未营运"); 163 String text = "切换为 " + (upDown == 0 ? "上行" : "下行") + (state == 0 ? "营运" : "未营运");
170 - Directive60 directive = createDirective60(nbbm, text, (short) 0x03, upDown, state); 164 + Directive60 directive = DirectiveDataFactory.createDirective60(nbbm, text, (short) 0x03, upDown, state);
171 165
172 if (null == directive) 166 if (null == directive)
173 return -1; 167 return -1;
@@ -194,26 +188,28 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -194,26 +188,28 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
194 * 线路切换 188 * 线路切换
195 */ 189 */
196 @Override 190 @Override
197 - public int lineChange(String nbbm, Integer lineId, String sender) { 191 + public int lineChange(String nbbm, Integer lineCode, String sender) {
198 Long t = System.currentTimeMillis(); 192 Long t = System.currentTimeMillis();
199 - String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm); 193 + /*String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
200 194
201 Directive64 change = new Directive64(); 195 Directive64 change = new Directive64();
202 LineChangeData data = new LineChangeData(); 196 LineChangeData data = new LineChangeData();
203 data.setCityCode(cityCode); 197 data.setCityCode(cityCode);
204 data.setDeviceId(deviceId); 198 data.setDeviceId(deviceId);
205 - data.setLineId("00" + String.valueOf(lineId)); 199 + data.setLineId("00" + String.valueOf(lineCode));
206 200
207 change.setDeviceId(deviceId); 201 change.setDeviceId(deviceId);
208 change.setOperCode((short) 0X64); 202 change.setOperCode((short) 0X64);
209 change.setTimestamp(t); 203 change.setTimestamp(t);
210 - change.setData(data); 204 + change.setData(data);*/
  205 + Directive64 change = DirectiveDataFactory.createDirective64(nbbm, lineCode, t);
211 206
212 if(null != sender) 207 if(null != sender)
213 change.setSender(sender); 208 change.setSender(sender);
214 else 209 else
215 change.setSender("系统"); 210 change.setSender("系统");
216 211
  212 + String deviceId = change.getDeviceId();
217 int code = HttpUtils.postJson(JSON.toJSONString(change)); 213 int code = HttpUtils.postJson(JSON.toJSONString(change));
218 // 入库 214 // 入库
219 change.setHttpCode(code); 215 change.setHttpCode(code);
@@ -221,7 +217,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -221,7 +217,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
221 217
222 // 通知设备刷新线路文件,忽略结果 218 // 通知设备刷新线路文件,忽略结果
223 if (code == 0) 219 if (code == 0)
224 - HttpUtils.postJson(createDeviceRefreshData(deviceId, lineId)); 220 + HttpUtils.postJson(DirectiveDataFactory.createDeviceRefreshData(deviceId, lineCode));
225 else 221 else
226 change.setErrorText("网关通讯失败, code: " + code); 222 change.setErrorText("网关通讯失败, code: " + code);
227 223
@@ -231,10 +227,6 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -231,10 +227,6 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
231 227
232 public Directive60 create60Data(String nbbm, String text, Short dispatchInstruct, ScheduleRealInfo sch) { 228 public Directive60 create60Data(String nbbm, String text, Short dispatchInstruct, ScheduleRealInfo sch) {
233 229
234 - /*  
235 - * //向测试设备发送 String deviceId = "ABCDFEGH"; Short company = 5;  
236 - */  
237 -  
238 String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm); 230 String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
239 if (null == deviceId) { 231 if (null == deviceId) {
240 logger.error("没有设备号对照的车辆:" + nbbm); 232 logger.error("没有设备号对照的车辆:" + nbbm);
@@ -255,10 +247,10 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -255,10 +247,10 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
255 state = 0; 247 state = 0;
256 } 248 }
257 249
258 - return createDirective60(nbbm, text, dispatchInstruct, upDown, state); 250 + return DirectiveDataFactory.createDirective60(nbbm, text, dispatchInstruct, upDown, state);
259 } 251 }
260 252
261 - public Directive60 createDirective60(String nbbm, String text, Short dispatchInstruct, int upDown, int state) { 253 +/* public Directive60 createDirective60(String nbbm, String text, Short dispatchInstruct, int upDown, int state) {
262 Long timestamp = System.currentTimeMillis(); 254 Long timestamp = System.currentTimeMillis();
263 255
264 Short company = Short.parseShort(CommonMapped.vehicCompanyMap.get(nbbm)); 256 Short company = Short.parseShort(CommonMapped.vehicCompanyMap.get(nbbm));
@@ -293,20 +285,10 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -293,20 +285,10 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
293 data.setTxtContent(text); 285 data.setTxtContent(text);
294 286
295 return directive; 287 return directive;
296 - } 288 + }*/
297 289
298 @Override 290 @Override
299 public int upDownChange(String nbbm, Integer upDown, String sender) { 291 public int upDownChange(String nbbm, Integer upDown, String sender) {
300 - /*  
301 - * Directive60 directive = createDirective60(nbbm, nbbm + "_" + upDown,  
302 - * (short) 0x03, upDown, 0);  
303 - *  
304 - * if(null == directive) return -1;  
305 - *  
306 - * int code = HttpUtils.postJson(JSON.toJSONString(directive)); if(code  
307 - * == 0){ //添加到缓存,等待入库 DirectiveBuffer.put(directive); }else{  
308 - * logger.error("send60 upDownChange error, code: " + code); }  
309 - */  
310 return send60Operation(nbbm, 0, upDown, null, sender); 292 return send60Operation(nbbm, 0, upDown, null, sender);
311 } 293 }
312 294
@@ -315,7 +297,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -315,7 +297,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
315 * @Title: createDeviceRefreshData @Description: 297 * @Title: createDeviceRefreshData @Description:
316 * TODO(生成设备线路刷新数据包) @param @return 设定文件 @return String 返回类型 @throws 298 * TODO(生成设备线路刷新数据包) @param @return 设定文件 @return String 返回类型 @throws
317 */ 299 */
318 - public String createDeviceRefreshData(String deviceId, Integer lineId) { 300 +/* public String createDeviceRefreshData(String deviceId, Integer lineId) {
319 Long t = System.currentTimeMillis(); 301 Long t = System.currentTimeMillis();
320 Map<String, Object> param = new HashMap<String, Object>(); 302 Map<String, Object> param = new HashMap<String, Object>();
321 param.put("deviceId", deviceId); 303 param.put("deviceId", deviceId);
@@ -334,7 +316,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -334,7 +316,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
334 param.put("data", data); 316 param.put("data", data);
335 317
336 return JSON.toJSONString(param); 318 return JSON.toJSONString(param);
337 - } 319 + }*/
338 320
339 @Override 321 @Override
340 public Map<String, List<Directive80>> findNoCofm80(String lineCodes) { 322 public Map<String, List<Directive80>> findNoCofm80(String lineCodes) {
src/main/java/com/bsth/vehicle/directive/util/DirectiveDataFactory.java 0 → 100644
  1 +package com.bsth.vehicle.directive.util;
  2 +
  3 +import java.util.HashMap;
  4 +import java.util.Map;
  5 +
  6 +import org.slf4j.Logger;
  7 +import org.slf4j.LoggerFactory;
  8 +
  9 +import com.alibaba.fastjson.JSON;
  10 +import com.bsth.vehicle.common.CommonMapped;
  11 +import com.bsth.vehicle.directive.Consts;
  12 +import com.bsth.vehicle.directive.MsgIdGenerator;
  13 +import com.bsth.vehicle.directive.entity.Directive60;
  14 +import com.bsth.vehicle.directive.entity.Directive64;
  15 +import com.bsth.vehicle.directive.entity.Directive60.DirectiveData;
  16 +import com.bsth.vehicle.directive.entity.Directive64.LineChangeData;
  17 +
  18 +/**
  19 + *
  20 + * @ClassName: DirectiveDataFactory
  21 + * @Description: TODO(生成调度指令数据)
  22 + * @author PanZhao
  23 + * @date 2016年8月3日 下午3:32:27
  24 + *
  25 + */
  26 +public class DirectiveDataFactory {
  27 +
  28 + private DirectiveDataFactory() {}
  29 +
  30 + // 城市代码
  31 + static final short cityCode = 22;
  32 +
  33 + static Logger logger = LoggerFactory.getLogger(DirectiveDataFactory.class);
  34 +
  35 + /**
  36 + *
  37 + * @Title: createDirective60
  38 + * @Description: TODO(创建60数据包)
  39 + * @param @param nbbm 车辆内部编码
  40 + * @param @param text 文本
  41 + * @param @param dispatchInstruct 指令类型(0X00表示信息短语,0X01表示取消上次指令+调度指令(闹钟有效),0x02表示为调度指令(闹钟有效); 0x03表示运营状态指令(闹钟无效);0x04表示其他指令)
  42 + * @param @param upDown 上下行(0 上行 1 下行)
  43 + * @param @param state 营运状态(0 营运 1 非营运)
  44 + * @param @return 设定文件
  45 + * @return Directive60 返回类型
  46 + * @throws
  47 + */
  48 + public static Directive60 createDirective60(String nbbm, String text, Short dispatchInstruct, int upDown, int state) {
  49 + Long timestamp = System.currentTimeMillis();
  50 +
  51 + Short company = Short.parseShort(CommonMapped.vehicCompanyMap.get(nbbm));
  52 + String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
  53 +
  54 + int msgId = MsgIdGenerator.getMsgId();
  55 +
  56 + Directive60 directive = new Directive60();
  57 + DirectiveData data = new DirectiveData();
  58 + // 一级协议
  59 + directive.setOperCode((short) 0x60);
  60 + // 设备号
  61 + directive.setDeviceId(deviceId);
  62 + // 时间戳
  63 + directive.setTimestamp(timestamp);
  64 + directive.setMsgId(msgId);
  65 + // 构造数据
  66 + data.setDeviceId(deviceId);
  67 + data.setDispatchInstruct(dispatchInstruct);
  68 + data.setTimestamp(timestamp);
  69 + data.setCompanyCode(company);
  70 + data.setMsgId(msgId);
  71 + directive.setData(data);
  72 + long serviceState;
  73 + try {
  74 + serviceState = Consts.SERVICE_STATE[upDown][state];
  75 + } catch (IndexOutOfBoundsException e) {
  76 + // 未知营运状态的直接默认为上行非营运
  77 + serviceState = Consts.SERVICE_STATE[0][1];
  78 + }
  79 + data.setServiceState(serviceState);
  80 + data.setTxtContent(text);
  81 +
  82 + return directive;
  83 + }
  84 +
  85 + /**
  86 + *
  87 + * @Title: createDirective64
  88 + * @Description: TODO(创建线路切换指令 64)
  89 + * @param @param nbbm 车辆内部编码
  90 + * @param @param lineId 线路编码
  91 + * @param @param t 时间戳
  92 + * @throws
  93 + */
  94 + public static Directive64 createDirective64(String nbbm, Integer lineCode, long t){
  95 + String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
  96 +
  97 + Directive64 change = new Directive64();
  98 + LineChangeData data = new LineChangeData();
  99 + data.setCityCode(cityCode);
  100 + data.setDeviceId(deviceId);
  101 + //线路编码补满6位数
  102 + if(lineCode > 99999){
  103 + logger.error("线路编码不能超过6位,code:" + lineCode);
  104 + return null;
  105 + }
  106 + String lineCodeStr = String.format("%06d", lineCode.toString());
  107 + data.setLineId(lineCodeStr);
  108 +
  109 + change.setDeviceId(deviceId);
  110 + change.setOperCode((short) 0X64);
  111 + change.setTimestamp(t);
  112 + change.setData(data);
  113 +
  114 + return change;
  115 + }
  116 +
  117 + /**
  118 + *
  119 + * @Title: createDeviceRefreshData
  120 + * @Description: TODO(线路刷新指令(用于切换线路后,要求设置重新下载线路文件))
  121 + * @param @param deviceId 设备编号
  122 + * @param @param lineId 线路ID
  123 + * @throws
  124 + */
  125 + public static String createDeviceRefreshData(String deviceId, Integer lineId) {
  126 + Long t = System.currentTimeMillis();
  127 + Map<String, Object> param = new HashMap<String, Object>();
  128 + param.put("deviceId", deviceId);
  129 + param.put("timestamp", t);
  130 + param.put("operCode", 0Xc0);
  131 +
  132 + Map<String, Object> data = new HashMap<String, Object>();
  133 + data.put("operCode2", 0xa1);
  134 + data.put("cityCode", cityCode);
  135 + data.put("deviceId", deviceId);
  136 + data.put("timestamp", t);
  137 + data.put("centerId", 1);
  138 + data.put("lineId", lineId);
  139 + data.put("lineVersion", 0);
  140 + data.put("carparkDataVersion", 0);
  141 + param.put("data", data);
  142 +
  143 + return JSON.toJSONString(param);
  144 + }
  145 +}
src/main/java/com/bsth/vehicle/gpsdata/ArrivalThread.java
@@ -66,145 +66,8 @@ public class ArrivalThread extends Thread{ @@ -66,145 +66,8 @@ public class ArrivalThread extends Thread{
66 for(String lineCode : newSet){ 66 for(String lineCode : newSet){
67 MatchService.addService(lineCode); 67 MatchService.addService(lineCode);
68 } 68 }
69 -  
70 -  
71 - /*try {  
72 - Bootstrap bs = Bootstrap.instance();  
73 - bs.start();  
74 - } catch (Exception e) {  
75 - e.printStackTrace();  
76 - }*/  
77 -  
78 - /*//车辆  
79 - Set<String> set = new HashSet<>();  
80 - for(ArrivalInfo arr : list)  
81 - set.add(CommonMapped.vehicDeviceBiMap.get(arr.getDeviceId()));  
82 -  
83 - List<ArrivalInfo> rsList = null;  
84 - List<ScheduleRealInfo> subList = null;  
85 - ArrivalInfo[] status;  
86 - for(String nbbm : set){  
87 - rsList = GpsArrivalDataBuffer.pops(nbbm);  
88 - //和该车辆班次进行匹配  
89 - subList = ScheduleBuffer.vehSchListMap.get(nbbm);  
90 -  
91 - if(null == subList || subList.size() == 0)  
92 - continue;  
93 -  
94 - try{  
95 - for(ScheduleRealInfo schedule : subList){  
96 - //匹配结果  
97 - status = match(rsList, schedule);  
98 -  
99 - //发车  
100 - if(status[0] != null){  
101 - //班次状态改为正在执行  
102 - schedule.setStatus(1);  
103 - ScheduleBuffer.persistentList.add(schedule);  
104 - //推送到页面  
105 - sendFcsj(schedule);  
106 -  
107 - rsList.remove(status[0]);  
108 - }  
109 -  
110 - //到达终点  
111 - if(status[1] != null){  
112 - //完成当前班次  
113 - ScheduleRealInfo nextSch = ScheduleBuffer.finishSch(schedule);  
114 - //到达终点,发送下一班次的调度指令  
115 - int finish = ScheduleBuffer.getFinishSchNo(nextSch.getClZbh());  
116 - directiveService.send60Dispatch(nextSch, finish);  
117 - //推送到页面  
118 - sendZdsj(schedule, nextSch, finish);  
119 -  
120 - rsList.remove(status[1]);  
121 - }  
122 - }  
123 - }catch(Exception e){  
124 - e.printStackTrace();  
125 - }  
126 - }*/  
127 - }  
128 -  
129 -/* public ArrivalInfo[] match(List<ArrivalInfo> arrList, ScheduleRealInfo sch){  
130 - //进出分组  
131 - List<ArrivalInfo> in = new ArrayList<>(), out = new ArrayList<>();  
132 - for(ArrivalInfo arr : arrList){  
133 - if(arr.getInOut() == 0)  
134 - in.add(arr);  
135 - else  
136 - out.add(arr);  
137 - }  
138 - ArrivalInfo a1 = null, a2 = null;  
139 - //匹配发车时间  
140 - if(sch.getFcsjActual() == null && sch.getFcsj() != null)  
141 - a1 = matchOut(out, sch);  
142 -  
143 - //匹配终点时间  
144 - if(sch.getZdsjActual() == null && sch.getZdsj() != null)  
145 - a2 = matchIn(in, sch);  
146 -  
147 - return new ArrivalInfo[]{a1,a2};  
148 - }  
149 -  
150 - public ArrivalInfo matchOut(List<ArrivalInfo> arrList, ScheduleRealInfo sch){  
151 - Long space = ScheduleBuffer.schSpaceMap.get(sch.getXlBm() + "_" + sch.getXlDir())diff;  
152 - for(ArrivalInfo arr : arrList){  
153 - if(arr.getStopNo().equals(sch.getQdzCode())  
154 - && Math.abs((arr.getTs() - sch.getFcsjT())) < space){  
155 - sch.setFcsjActualAll(arr.getTs());  
156 -  
157 - return arr;  
158 -  
159 - }  
160 - }  
161 - return null;  
162 } 69 }
163 70
164 - public ArrivalInfo matchIn(List<ArrivalInfo> arrList, ScheduleRealInfo sch){  
165 - Long space = ScheduleBuffer.schSpaceMap.get(sch.getXlBm() + "_" + sch.getXlDir())diff;  
166 - for(ArrivalInfo arr : arrList){  
167 - if(arr.getStopNo().equals(sch.getZdzCode())  
168 - && Math.abs((arr.getTs() - sch.getZdsjT())) < space){  
169 - sch.setZdsjActualAll(arr.getTs());  
170 -  
171 - return arr;  
172 - }  
173 - }  
174 - return null;  
175 - }*/  
176 -  
177 -  
178 - /**  
179 - * @Title: sendFcsj  
180 - * @Description: TODO(推送发车信息)  
181 - * @param @param schedule 班次  
182 - * @throws  
183 - */  
184 -/* public void sendFcsj(ScheduleRealInfo schedule){  
185 - JSONObject json = new JSONObject();  
186 - json.put("fn", "faChe");  
187 - json.put("t", schedule);  
188 - json.put("dataStr", sdf.format(new Date()));  
189 - socketHandler.sendMessageToLine(Integer.parseInt(schedule.getXlBm()), json.toJSONString());  
190 - }  
191 -  
192 - *//**  
193 - * @Title: sendFcsj  
194 - * @Description: TODO(推送到达终点时间)  
195 - * @param @param schedule 班次  
196 - * @throws  
197 - *//*  
198 - public void sendZdsj(ScheduleRealInfo schedule,ScheduleRealInfo nextSch, int finish){  
199 - JSONObject json = new JSONObject();  
200 - json.put("fn", "zhongDian");  
201 - json.put("t", schedule);  
202 - json.put("nt", nextSch);  
203 - json.put("finish", finish);  
204 - json.put("dataStr", sdf.format(new Date()));  
205 -  
206 - socketHandler.sendMessageToLine(Integer.parseInt(schedule.getXlBm()), json.toJSONString());  
207 - }*/  
208 71
209 /** 72 /**
210 * @throws ParseException 73 * @throws ParseException
@@ -258,24 +121,4 @@ public class ArrivalThread extends Thread{ @@ -258,24 +121,4 @@ public class ArrivalThread extends Thread{
258 } 121 }
259 return list; 122 return list;
260 } 123 }
261 -  
262 - Long rang = 1000 * 60 * 60L;  
263 - /**  
264 - *  
265 - * @Title: extractSched  
266 - * @Description: TODO(提取当前时间前后一小时的计划)  
267 - * @param @param allList  
268 - * @throws  
269 -  
270 - public List<ScheduleRealInfo> extractSched(List<ScheduleRealInfo> allList){  
271 - List<ScheduleRealInfo> subList = new ArrayList<>();  
272 - Long t = System.currentTimeMillis();  
273 - for(ScheduleRealInfo sch : allList){  
274 - if(Math.abs(sch.getFcsjT() - t) < rang  
275 - || (sch.getZdsjT() != null && Math.abs(sch.getZdsjT()) - t < rang)){  
276 - subList.add(sch);  
277 - }  
278 - }  
279 - return subList;  
280 - } */  
281 } 124 }
src/main/java/com/bsth/vehicle/gpsdata/arrival/match/ScheduleRealMatcher.java
@@ -157,11 +157,12 @@ public class ScheduleRealMatcher implements ApplicationContextAware{ @@ -157,11 +157,12 @@ public class ScheduleRealMatcher implements ApplicationContextAware{
157 finish = ScheduleBuffer.getFinishSchNo(sch.getClZbh()); 157 finish = ScheduleBuffer.getFinishSchNo(sch.getClZbh());
158 158
159 if(nextSch != null){ 159 if(nextSch != null){
160 - //发送下一班次的调度指令 160 + //发送下一班次的调度指令(并切换营运状态)
161 directiveService.send60Dispatch(nextSch, finish, null); 161 directiveService.send60Dispatch(nextSch, finish, null);
162 - upDown = Integer.parseInt(nextSch.getXlDir()); 162 +
  163 + //upDown = Integer.parseInt(nextSch.getXlDir());
163 //切换下一个班次的走向 164 //切换下一个班次的走向
164 - directiveService.send60Operation(nextSch.getClZbh(), 0, upDown, nextSch, null); 165 + //directiveService.send60Operation(nextSch.getClZbh(), 0, upDown, nextSch, null);
165 } 166 }
166 else{ 167 else{
167 upDown = Integer.parseInt(sch.getXlDir()); 168 upDown = Integer.parseInt(sch.getXlDir());
@@ -184,10 +185,6 @@ public class ScheduleRealMatcher implements ApplicationContextAware{ @@ -184,10 +185,6 @@ public class ScheduleRealMatcher implements ApplicationContextAware{
184 * @throws 185 * @throws
185 */ 186 */
186 public void sendFcsj(ScheduleRealInfo schedule) { 187 public void sendFcsj(ScheduleRealInfo schedule) {
187 - /*JSONObject json = new JSONObject();  
188 - json.put("fn", "faChe");  
189 - json.put("t", schedule);  
190 - json.put("dataStr", sdf.format(new Date()));*/  
191 188
192 Map<String, Object> map = new HashMap<>(); 189 Map<String, Object> map = new HashMap<>();
193 map.put("fn", "faChe"); 190 map.put("fn", "faChe");
@@ -213,12 +210,6 @@ public class ScheduleRealMatcher implements ApplicationContextAware{ @@ -213,12 +210,6 @@ public class ScheduleRealMatcher implements ApplicationContextAware{
213 * @throws 210 * @throws
214 */ 211 */
215 public void sendZdsj(ScheduleRealInfo schedule,ScheduleRealInfo nextSch, int finish) { 212 public void sendZdsj(ScheduleRealInfo schedule,ScheduleRealInfo nextSch, int finish) {
216 - /*JSONObject json = new JSONObject();  
217 - json.put("fn", "zhongDian");  
218 - json.put("t", schedule);  
219 - json.put("nt", nextSch);  
220 - json.put("finish", finish);  
221 - json.put("dataStr", sdf.format(new Date()));*/  
222 213
223 Map<String, Object> map = new HashMap<>(); 214 Map<String, Object> map = new HashMap<>();
224 map.put("fn", "zhongDian"); 215 map.put("fn", "zhongDian");
src/main/resources/static/assets/js/common.js
@@ -12,9 +12,9 @@ function removeConfirm(text, url, success) { @@ -12,9 +12,9 @@ function removeConfirm(text, url, success) {
12 }, function(){ 12 }, function(){
13 layer.msg('正在删除...', {icon: 16}); 13 layer.msg('正在删除...', {icon: 16});
14 14
15 - $post(url, {'_method': 'delete'},function(res){ 15 + $post(url, {'_method': 'delete'},function(rs){
16 layer.msg('删除成功!'); 16 layer.msg('删除成功!');
17 - success && success(); 17 + success && success(rs);
18 }); 18 });
19 }); 19 });
20 } 20 }
src/main/resources/static/pages/control/line/child_pages/child_task.html
@@ -339,7 +339,10 @@ $(function(){ @@ -339,7 +339,10 @@ $(function(){
339 //删除子任务 339 //删除子任务
340 $('#childTaskDiv').on('click','.child_task_delete', function(){ 340 $('#childTaskDiv').on('click','.child_task_delete', function(){
341 var id = $(this).data('id'); 341 var id = $(this).data('id');
342 - removeConfirm('确定删除子任务?', '/childTask/' + id, refreshChildTasks); 342 + removeConfirm('确定删除子任务?', '/childTask/' + id, function(rs){
  343 + _alone.refreshSchedule(rs.t);
  344 + refreshChildTasks();
  345 + });
343 }); 346 });
344 347
345 348
@@ -500,7 +503,6 @@ function refreshChildTasks(){ @@ -500,7 +503,6 @@ function refreshChildTasks(){
500 //主任务id 503 //主任务id
501 var id = $mainTab.find('tr._active').data('id'); 504 var id = $mainTab.find('tr._active').data('id');
502 505
503 -  
504 var htmlStr = template('child_task_sub_table_temp', {list: _data.getSchedulById(id).cTasks}); 506 var htmlStr = template('child_task_sub_table_temp', {list: _data.getSchedulById(id).cTasks});
505 507
506 dictionaryUtils.transformDom( 508 dictionaryUtils.transformDom(
src/main/resources/static/pages/control/line/child_pages/deviceReport.html 0 → 100644
  1 +<div id="historyMessagePanel" style="margin: 15px 0 0 0;">
  2 + <h4 style="padding: 5px 0 10px 15px;margin: 0;"><i class="fa fa-code-fork"></i> 设备请求上报记录</h4>
  3 + <form class="form-inline" >
  4 + <div class="form-group" style="margin: 18px;">
  5 + <label class="" for="directiveSelect">请求代码:</label>
  6 + <select class="form-control" id="requestCodeSelect" name="requestCode">
  7 + <option value="-1">全部</option>
  8 + <option value="0xA1">恢复运营</option>
  9 + <option value="0xA2">申请调档</option>
  10 + <option value="0xA3">出场请求</option>
  11 + <option value="0xA5">进场请求</option>
  12 + <option value="0xA7">加油请求</option>
  13 + <option value="0x50">车辆故障</option>
  14 + <option value="0x70">路阻报告</option>
  15 + <option value="0x60">事故报告</option>
  16 + <option value="0x11">扣证纠纷</option>
  17 + <option value="0x12">报警</option>
  18 + </select>
  19 + </div>
  20 +
  21 + <div class="form-group" >
  22 + <label class="" for="carSelect">车辆:</label>
  23 + <select class="form-control" name="nbbm" id="carSelect" style="width: 170px;"></select>
  24 + </div>
  25 +
  26 + </form>
  27 +
  28 + <div class="table-scrollable" style="min-height: 468px;">
  29 + <table class="table table-hover" style="table-layout: fixed;">
  30 + <thead>
  31 + <tr>
  32 + <th width="9%" style="text-align: center;">位置</th>
  33 + <th width="9%">时间</th>
  34 + <th width="11%">车辆</th>
  35 + <th width="24%">请求代码</th>
  36 + <th width="10%">处理人</th>
  37 + <th width="10%">处理时间</th>
  38 + <th width="9%">处理结果</th>
  39 + </tr>
  40 + </thead>
  41 + <tbody>
  42 + <tr>
  43 + <td width="7%" style="text-align: center;">位置</td>
  44 + <td>05:30</td>
  45 + <td>B-92875</td>
  46 + <td>请求出场</td>
  47 + <td>mh001</td>
  48 + <td>05:31</td>
  49 + <td><span class="label label-sm label-success"> 同意</span></td>
  50 + </tr>
  51 + <tr>
  52 + <td width="7%" style="text-align: center;">位置</td>
  53 + <td>05:30</td>
  54 + <td>B-92875</td>
  55 + <td>请求出场</td>
  56 + <td>mh001</td>
  57 + <td>05:31</td>
  58 + <td><span class="label label-sm label-success"> 同意</span></td>
  59 + </tr>
  60 + <tr>
  61 + <td width="7%" style="text-align: center;">位置</td>
  62 + <td>05:30</td>
  63 + <td>B-92875</td>
  64 + <td>请求出场</td>
  65 + <td>mh001</td>
  66 + <td>05:31</td>
  67 + <td><span class="label label-sm label-success"> 同意</span></td>
  68 + </tr>
  69 + <tr>
  70 + <td width="7%" style="text-align: center;">位置</td>
  71 + <td>05:30</td>
  72 + <td>B-92875</td>
  73 + <td>请求出场</td>
  74 + <td>mh001</td>
  75 + <td>05:31</td>
  76 + <td><span class="label label-sm label-success"> 同意</span></td>
  77 + </tr>
  78 + <tr>
  79 + <td width="7%" style="text-align: center;">位置</td>
  80 + <td>05:30</td>
  81 + <td>B-92875</td>
  82 + <td>请求出场</td>
  83 + <td>mh001</td>
  84 + <td>05:31</td>
  85 + <td><span class="label label-sm label-success"> 同意</span></td>
  86 + </tr>
  87 + <tr>
  88 + <td width="7%" style="text-align: center;">位置</td>
  89 + <td>05:30</td>
  90 + <td>B-92875</td>
  91 + <td>请求出场</td>
  92 + <td>mh001</td>
  93 + <td>05:31</td>
  94 + <td><span class="label label-sm label-success"> 同意</span></td>
  95 + </tr>
  96 + </tbody>
  97 + </table>
  98 + </div>
  99 + <div style="text-align: right;margin: 15px 15px 5px;">
  100 + <ul id="pagination" class="pagination"></ul>
  101 + </div>
  102 +</div>
  103 +<script id="history_directive_list_temp" type="text/html">
  104 +{{each list as item i}}
  105 +<tr>
  106 + <td>{{item.timeHHmm}}</td>
  107 + <td>{{item.nbbm}}</td>
  108 + <td>
  109 + <div class="text-furl">
  110 + {{item.data.txtContent}}
  111 + </div>
  112 + </td>
  113 + <td>{{item.sender}}</td>
  114 + <td>
  115 + {{if item.errorText != null}}
  116 + <span class="label label-sm label-danger">{{item.errorText}}</span>
  117 + {{else}}
  118 + {{if item.reply46 != 0}}
  119 + <span class="label label-sm label-danger">设备无响应</span>
  120 + {{else if item.reply47 != 0}}
  121 + <span class="label label-sm label-warning">驾驶员未确认</span>
  122 + {{/if}}
  123 +
  124 + {{if item.reply46 == 0 && item.reply47 == 0}}
  125 + <span class="label label-sm label-success"> 成功</span>
  126 + {{/if}}
  127 + {{/if}}
  128 + </td>
  129 +</tr>
  130 +{{/each}}
  131 +</script>
  132 +
  133 +<script>
  134 +!function(){
  135 +
  136 +}();
  137 +</script>
0 \ No newline at end of file 138 \ No newline at end of file
src/main/resources/static/pages/control/line/child_pages/historyDirective.html
1 -<div id="historyMessagePanel" style="margin: 17px 0 0 0;">  
2 - 1 +<div id="historyMessagePanel" style="margin: 15px 0 0 0;">
  2 + <h4 style="padding: 5px 0 10px 15px;margin: 0;"><i class="fa fa-bell-o"></i> 指令下发记录</h4>
3 <form class="form-inline" > 3 <form class="form-inline" >
4 <div class="form-group" style="margin: 18px;"> 4 <div class="form-group" style="margin: 18px;">
5 <label class="" for="directiveSelect">指令类型:</label> 5 <label class="" for="directiveSelect">指令类型:</label>
@@ -16,6 +16,7 @@ @@ -16,6 +16,7 @@
16 <label class="" for="carSelect">车辆:</label> 16 <label class="" for="carSelect">车辆:</label>
17 <select class="form-control" name="nbbm" id="carSelect" style="width: 170px;"></select> 17 <select class="form-control" name="nbbm" id="carSelect" style="width: 170px;"></select>
18 </div> 18 </div>
  19 +
19 </form> 20 </form>
20 21
21 <div class="table-scrollable" style="min-height: 468px;"> 22 <div class="table-scrollable" style="min-height: 468px;">
@@ -65,6 +66,11 @@ @@ -65,6 +66,11 @@
65 </td> 66 </td>
66 </tr> 67 </tr>
67 {{/each}} 68 {{/each}}
  69 +{{if list.length == 0}}
  70 +<tr>
  71 + <td colspan=5 class="empty-table-td" style="text-align: center;"></td>
  72 +</tr>
  73 +{{/if}}
68 </script> 74 </script>
69 75
70 <script> 76 <script>
@@ -76,6 +82,7 @@ @@ -76,6 +82,7 @@
76 ,$layer = $('#historyMessagePanel').parents('.layui-layer.layui-layer-page'); 82 ,$layer = $('#historyMessagePanel').parents('.layui-layer.layui-layer-page');
77 //车辆搜索框 83 //车辆搜索框
78 createVehSearch($car).on('change', function(){ 84 createVehSearch($car).on('change', function(){
  85 + page = 0;
79 jsDoQuery(true); 86 jsDoQuery(true);
80 }); 87 });
81 //分页参数 88 //分页参数
@@ -85,6 +92,7 @@ @@ -85,6 +92,7 @@
85 92
86 //指令类型切换 93 //指令类型切换
87 $dType.on('change', function(){ 94 $dType.on('change', function(){
  95 + page = 0;
88 jsDoQuery(true); 96 jsDoQuery(true);
89 }); 97 });
90 98
@@ -93,9 +101,7 @@ @@ -93,9 +101,7 @@
93 params.page = page; 101 params.page = page;
94 params.size = pSize; 102 params.size = pSize;
95 103
96 - console.log(params);  
97 $.get('/directive/list', params, function(rs){ 104 $.get('/directive/list', params, function(rs){
98 - console.log(rs);  
99 105
100 var htmlStr = template('history_directive_list_temp', rs); 106 var htmlStr = template('history_directive_list_temp', rs);
101 $table.find('tbody').html(htmlStr); 107 $table.find('tbody').html(htmlStr);
@@ -108,6 +114,8 @@ @@ -108,6 +114,8 @@
108 } 114 }
109 115
110 function showPagination(data, noQuery){ 116 function showPagination(data, noQuery){
  117 + if(data.totalPages == 0)
  118 + return;
111 //分页 119 //分页
112 $('#pagination').jqPaginator({ 120 $('#pagination').jqPaginator({
113 totalPages: data.totalPages, 121 totalPages: data.totalPages,
src/main/resources/static/pages/control/line/child_pages/js/child_task.js
@@ -353,6 +353,7 @@ function childTaskSubmit(fs, layerIndex){ @@ -353,6 +353,7 @@ function childTaskSubmit(fs, layerIndex){
353 * 同步提交多个表单,无事物,允许中途失败 353 * 同步提交多个表单,无事物,允许中途失败
354 */ 354 */
355 function syncSubmit(fs, cb){ 355 function syncSubmit(fs, cb){
  356 + var index = layer.msg('正在提交...', {icon: 16,shade:0.3});
356 if(fs.length == 0) return; 357 if(fs.length == 0) return;
357 //备注 358 //备注
358 var remarks = $(fs[0]).parents('.custom-anim-modal').find('textarea[name=remarks]').val(); 359 var remarks = $(fs[0]).parents('.custom-anim-modal').find('textarea[name=remarks]').val();
@@ -360,6 +361,7 @@ function syncSubmit(fs, cb){ @@ -360,6 +361,7 @@ function syncSubmit(fs, cb){
360 (function(){ 361 (function(){
361 362
362 if(i == len){ 363 if(i == len){
  364 + layer.close(index);
363 cb && cb(cbRs); 365 cb && cb(cbRs);
364 return; 366 return;
365 } 367 }
@@ -370,7 +372,6 @@ function syncSubmit(fs, cb){ @@ -370,7 +372,6 @@ function syncSubmit(fs, cb){
370 372
371 params.remarks = remarks; 373 params.remarks = remarks;
372 $post('/childTask', params, function(rs){ 374 $post('/childTask', params, function(rs){
373 - console.log('item rs: ' ,rs);  
374 $(form).parent().find('.task-item-close').replaceWith('<a class="task-item-success"><i class="fa fa-check-circle" ></i></a>'); 375 $(form).parent().find('.task-item-close').replaceWith('<a class="task-item-success"><i class="fa fa-check-circle" ></i></a>');
375 i ++; 376 i ++;
376 //做一层防护,防止缺心眼出现无限循环提交 377 //做一层防护,防止缺心眼出现无限循环提交
src/main/resources/static/pages/control/line/css/lineControl.css
@@ -1697,7 +1697,7 @@ label.error{ @@ -1697,7 +1697,7 @@ label.error{
1697 } 1697 }
1698 1698
1699 .empty-table-td:BEFORE{ 1699 .empty-table-td:BEFORE{
1700 - content: "暂无数据"; 1700 + content: "暂无相关数据";
1701 color: #6f6c6c; 1701 color: #6f6c6c;
1702 font-size: 12px; 1702 font-size: 12px;
1703 } 1703 }
src/main/resources/static/pages/control/line/js/toolbarEvent.js
@@ -30,6 +30,18 @@ @@ -30,6 +30,18 @@
30 30
31 //设备上报 31 //设备上报
32 $('#deviceReport').on('click', function(){ 32 $('#deviceReport').on('click', function(){
33 - layer.msg('功能测试中...稍后开放!'); 33 + layer.msg('功能测试中,测试完了就开放...')
  34 + /*$.get('/pages/control/line/child_pages/deviceReport.html', function(content){
  35 + layer.open({
  36 + type: 1,
  37 + area: '930px',
  38 + content: content,
  39 + title : false,
  40 + shift: 5,
  41 + success: function(){
  42 +
  43 + }
  44 + });
  45 + });*/
34 }); 46 });
35 }(); 47 }();
36 \ No newline at end of file 48 \ No newline at end of file
src/main/resources/static/pages/control/line/temps/child_task_case_tp.html
@@ -40,7 +40,7 @@ @@ -40,7 +40,7 @@
40 <td width="6%"> 40 <td width="6%">
41 <div class="dropdown"> 41 <div class="dropdown">
42 <a class="no_and_removeLink" href="javascript:;" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 42 <a class="no_and_removeLink" href="javascript:;" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
43 - {{i + 1}} 43 + {{i + 1}}
44 </a> 44 </a>
45 <ul class="dropdown-menu" aria-labelledby="dLabel"> 45 <ul class="dropdown-menu" aria-labelledby="dLabel">
46 <li class="child_task_delete" data-id="{{item.id}}"> 46 <li class="child_task_delete" data-id="{{item.id}}">
src/main/resources/static/pages/mapmonitor/real/js/playBack.js
@@ -174,13 +174,13 @@ var playBack = (function() { @@ -174,13 +174,13 @@ var playBack = (function() {
174 //点击轨迹回放按钮 174 //点击轨迹回放按钮
175 $('#playBackBtn').on('click', playBackBtnClick); 175 $('#playBackBtn').on('click', playBackBtnClick);
176 176
177 - //默认值,当前时间前后各一个小时 177 + //默认值,当前时间前2小时
178 var m = moment() 178 var m = moment()
179 ,rq='YYYY-MM-DD', sj='HH:mm'; 179 ,rq='YYYY-MM-DD', sj='HH:mm';
180 - $('input[name=sDate]').val(m.format(rq));  
181 - $('input[name=sTime]').val(m.subtract(1, 'hours').format(sj));  
182 - $('input[name=eDate]').val(m.add(2, 'hours').format(rq)); 180 + $('input[name=eDate]').val(m.format(rq));
183 $('input[name=eTime]').val(m.format('HH:mm')); 181 $('input[name=eTime]').val(m.format('HH:mm'));
  182 + $('input[name=sDate]').val(m.subtract(2, 'hour').format(rq));
  183 + $('input[name=sTime]').val(m.format(sj));
184 } 184 }
185 ,setDefaultCar: function(nbbm, lineCode){ 185 ,setDefaultCar: function(nbbm, lineCode){
186 defaultCar = nbbm; 186 defaultCar = nbbm;