Commit 98fe281e84c3ec101999de09265344c378305fde

Authored by 李强
2 parents efbd3894 e60deedd

Merge branch 'master' of git@192.168.168.201:panzhaov5/bsth_control.git

Showing 36 changed files with 1995 additions and 1571 deletions

Too many changes to show.

To preserve performance only 36 of 64 files are displayed.

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
... ... @@ -133,22 +133,26 @@ public class StartCommand implements CommandLineRunner{
133 133 */
134 134 scheduler.scheduleWithFixedDelay(firstScheduleIssuedThread, 60 , 60 * 2, TimeUnit.SECONDS);
135 135  
136   - //延迟一会
  136 +
137 137 /* new Timer().schedule(new TimerTask() {
138 138  
139 139 @Override
140 140 public void run() {
141   - //临时全量刷车辆线路
142 141 List<CarConfigInfo> ccis = carConfigInfoRepository.findAll();
143 142 Cars car;
144 143 Line line;
145 144 String lineCode;
146   - int code;
  145 + System.out.println("ccis size: " + ccis.size());
147 146 for(CarConfigInfo cci : ccis){
148 147 car = cci.getCl();
149 148 line = cci.getXl();
150 149 lineCode = line.getLineCode();
151   - System.out.println("车辆:" + car.getInsideCode() + "切换线路:" + line.getLineCode());
  150 +
  151 + String data = directiveService.createDeviceRefreshData(CommonMapped.vehicDeviceBiMap.inverse().get(car.getInsideCode())
  152 + , Integer.parseInt(lineCode));
  153 + System.out.println(data);
  154 + int code = HttpUtils.postJson(data);
  155 + System.out.println("车辆:" + car.getInsideCode() + "刷新线路:" + line.getLineCode());
152 156 code = directiveService.lineChange(car.getInsideCode(), Integer.parseInt(lineCode));
153 157 //directiveService.send60Phrase(car.getInsideCode(), "");
154 158 System.out.println("返回值:" + code);
... ...
src/main/java/com/bsth/Test.java 0 → 100644
  1 +//package com.bsth;
  2 +//
  3 +//import java.io.ByteArrayOutputStream;
  4 +//import java.io.IOException;
  5 +//import java.io.InputStream;
  6 +//import java.io.OutputStream;
  7 +//import java.net.HttpURLConnection;
  8 +//import java.net.URL;
  9 +//import java.util.HashMap;
  10 +//import java.util.Map;
  11 +//
  12 +//import org.apache.commons.io.IOUtils;
  13 +//
  14 +//import com.fasterxml.jackson.databind.ObjectMapper;
  15 +//
  16 +//public class Test {
  17 +//
  18 +// public static void main(String[] args) {
  19 +// Map<String, Object> map = new HashMap<>();
  20 +// map.put("timestamp", 1469764939000L);
  21 +// map.put("operCode", 128);
  22 +// map.put("deviceId", "66ML0007");
  23 +//
  24 +// Map<String , Object> dataMap = new HashMap<>();
  25 +// dataMap.put("requestCode", 161);
  26 +// dataMap.put("lineId", 1025);
  27 +// dataMap.put("operCode2", 38);
  28 +//
  29 +// map.put("data", dataMap);
  30 +// request(map, "http://192.168.168.171:9088/control/upstream");
  31 +//
  32 +// }
  33 +//
  34 +// private static Map<String, Object> request(Map<String, Object> map, String url) {
  35 +// InputStream in = null;
  36 +// OutputStream out = null;
  37 +// HttpURLConnection con = null;
  38 +// try {
  39 +// con = (HttpURLConnection)new URL(url).openConnection();
  40 +// con.setRequestMethod("POST");
  41 +// con.setRequestProperty("keep-alive", "true");
  42 +// con.setRequestProperty("accept", "*/*");
  43 +// con.setDoInput(true);
  44 +// con.setDoOutput(true);
  45 +// con.setReadTimeout(2500);
  46 +// con.setConnectTimeout(2500);
  47 +// out = con.getOutputStream();
  48 +// out.write("json=".getBytes());
  49 +// out.write(new ObjectMapper().writeValueAsBytes(map));
  50 +// out.flush();
  51 +// System.out.println("con.getResponseCode(): " + con.getResponseCode());
  52 +// if (con.getResponseCode() == 200) {
  53 +// in = con.getInputStream();
  54 +// ByteArrayOutputStream bout = new ByteArrayOutputStream();
  55 +// IOUtils.copy(in, bout); bout.close();
  56 +// System.out.println("Message:" + new String(bout.toByteArray()));
  57 +// return new ObjectMapper().readValue(bout.toByteArray(), Map.class);
  58 +// }
  59 +// } catch (IOException e) {
  60 +// e.printStackTrace();
  61 +// } finally {
  62 +// con.disconnect();
  63 +// try {
  64 +// if (in != null) in.close();
  65 +// if (out != null) out.close();
  66 +// } catch (IOException e) {
  67 +// e.printStackTrace();
  68 +// }
  69 +// }
  70 +// return null;
  71 +// }
  72 +//}
... ...
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
... ... @@ -255,8 +255,8 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
255 255 * @throws
256 256 */
257 257 @RequestMapping(value = "/findRouteByLine")
258   - public Map<String, Object> findRouteByLine(@RequestParam Integer lineId){
259   - return scheduleRealInfoService.findRouteByLine(lineId);
  258 + public Map<String, Object> findRouteByLine(@RequestParam Integer lineCode){
  259 + return scheduleRealInfoService.findRouteByLine(lineCode);
260 260 }
261 261  
262 262 @RequestMapping(value = "/test/getSch")
... ... @@ -264,6 +264,18 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
264 264 getSchedulePlanThread.start();
265 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/controller/schedule/TTInfoController.java
... ... @@ -7,6 +7,7 @@ import com.bsth.repository.schedule.TTInfoRepository;
7 7 import com.bsth.service.schedule.utils.DataToolsProperties;
8 8 import org.springframework.beans.factory.annotation.Autowired;
9 9 import org.springframework.boot.context.properties.EnableConfigurationProperties;
  10 +import org.springframework.data.domain.Page;
10 11 import org.springframework.web.bind.annotation.*;
11 12  
12 13 import java.util.Map;
... ... @@ -59,4 +60,13 @@ public class TTInfoController extends BaseController&lt;TTInfo, Long&gt; {
59 60 // 一般比较自编号是否重复
60 61 return baseService.validateEquale(map);
61 62 }
  63 +
  64 + @Override
  65 + public Page<TTInfo> list(@RequestParam Map<String, Object> map, @RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "10") int size, @RequestParam(defaultValue = "id") String order, @RequestParam(defaultValue = "DESC") String direction) {
  66 + // 如果有isCancel键值,将其值变成boolean
  67 + if (map.get("isCancel_eq") != null)
  68 + map.put("isCancel_eq", new Boolean(map.get("isCancel_eq").toString()));
  69 +
  70 + return super.list(map, page, size, order, direction);
  71 + }
62 72 }
... ...
src/main/java/com/bsth/entity/realcontrol/ChildTaskPlan.java
... ... @@ -223,5 +223,14 @@ public class ChildTaskPlan {
223 223 public void setEndStationName(String endStationName) {
224 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 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 187 private Set<ChildTaskPlan> cTasks = new HashSet<>();
188 188  
189 189 /** ---------------- */
... ...
src/main/java/com/bsth/entity/schedule/TTInfo.java
... ... @@ -41,6 +41,9 @@ public class TTInfo {
41 41 /** 是否启用调度模版 */
42 42 @Column(nullable = false)
43 43 private Boolean isEnableDisTemplate;
  44 + /** 是否删除(标记) */
  45 + @Column(nullable = false)
  46 + private Boolean isCancel = false;
44 47  
45 48 /** 模版类型(TODO:时刻表,间隔式,这个以后用枚举还是字典再议,现在先用文字) */
46 49 private String templateType;
... ... @@ -193,4 +196,11 @@ public class TTInfo {
193 196 this.updateDate = updateDate;
194 197 }
195 198  
  199 + public Boolean getIsCancel() {
  200 + return isCancel;
  201 + }
  202 +
  203 + public void setIsCancel(Boolean isCancel) {
  204 + this.isCancel = isCancel;
  205 + }
196 206 }
... ...
src/main/java/com/bsth/filter/AccessLogFilter.java
... ... @@ -38,7 +38,7 @@ public class AccessLogFilter extends BaseFilter {
38 38 HttpServletResponse response, FilterChain chain)
39 39 throws IOException, ServletException {
40 40  
41   - String username = SecurityUtils.getCurrentUser().getName(); //等集成shiro之后再取
  41 + String username = /*SecurityUtils.getCurrentUser().getName()*/"test"; //等集成shiro之后再取
42 42 String jsessionId = request.getRequestedSessionId();
43 43 String ip = IpUtils.getIpAddr(request);
44 44 String userAgent = request.getHeader("User-Agent");
... ...
src/main/java/com/bsth/repository/schedule/SchedulePlanInfoRepository.java
... ... @@ -21,4 +21,6 @@ public interface SchedulePlanInfoRepository extends BaseRepository&lt;SchedulePlanI
21 21 @Query(value = "select s from SchedulePlanInfo s where scheduleDate=?1")
22 22 List<SchedulePlanInfo> findByDate(Date date);
23 23  
  24 + Long deleteByXlAndScheduleDateGreaterThanEqualAndScheduleDateLessThanEqual(Integer xlid, Date startDate, Date endDate);
  25 +
24 26 }
... ...
src/main/java/com/bsth/repository/schedule/TTInfoDetailRepository.java
... ... @@ -32,7 +32,7 @@ public interface TTInfoDetailRepository extends BaseRepository&lt;TTInfoDetail, Lon
32 32  
33 33 void deleteByTtinfoId(Long ttid);
34 34  
35   - @Query(value = "select max(tt.fcno) from TTInfoDetail tt where tt.xl.id =?1 and tt.ttinfo.id =?2")
  35 + @Query(value = "select max(tt.fcno) as mx from bsth_c_s_ttinfo_detail tt where tt.xl =?1 and tt.ttinfo =?2", nativeQuery = true)
36 36 Long findMaxFcno(Integer xlid, Long ttinfoid);
37 37  
38 38 }
... ...
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
... ... @@ -80,7 +80,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
80 80  
81 81 Map<String, Object> outgoAdjustAll(String params);
82 82  
83   - Map<String, Object> findRouteByLine(Integer lineId);
  83 + Map<String, Object> findRouteByLine(Integer lineCode);
84 84  
85 85 List<Map<String,String>> findLine(String line);
86 86  
... ... @@ -93,4 +93,6 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
93 93 List<ScheduleRealInfo> correctForm(String line,String startDate,String endDate,String lpName,String code);
94 94  
95 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 9  
10 10 import com.bsth.entity.realcontrol.ChildTaskPlan;
11 11 import com.bsth.entity.realcontrol.ScheduleRealInfo;
  12 +import com.bsth.repository.realcontrol.ChildTaskPlanRepository;
12 13 import com.bsth.service.impl.BaseServiceImpl;
13 14 import com.bsth.service.realcontrol.ChildTaskPlanService;
14 15 import com.bsth.service.realcontrol.buffer.ScheduleBuffer;
... ... @@ -17,8 +18,11 @@ import com.bsth.vehicle.common.CommonMapped;
17 18 @Service
18 19 public class ChildTaskPlanServiceImpl extends BaseServiceImpl<ChildTaskPlan, Long> implements ChildTaskPlanService{
19 20  
  21 + /*@Autowired
  22 + ScheduleRealInfoServiceImpl scheduleRealInfoService;*/
  23 +
20 24 @Autowired
21   - ScheduleRealInfoServiceImpl scheduleRealInfoService;
  25 + ChildTaskPlanRepository childTaskPlanRepository;
22 26  
23 27 @Transactional
24 28 @Override
... ... @@ -29,14 +33,28 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl&lt;ChildTaskPlan, Lon
29 33  
30 34 t.setStartStationName(map.get(t.getStartStation()));
31 35 t.setEndStationName(map.get(t.getEndStation()));
32   -
33   - //rs = super.save(t);
34   -
  36 + //先持久化子任务
  37 + rs = super.save(t);
  38 + //再关联主任务
35 39 ScheduleRealInfo sch = ScheduleBuffer.findOne(t.getSchedule().getId());
36 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 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 25 import com.bsth.entity.Cars;
26 26 import com.bsth.entity.Line;
27 27 import com.bsth.entity.Personnel;
  28 +import com.bsth.entity.realcontrol.ChildTaskPlan;
28 29 import com.bsth.entity.realcontrol.ScheduleRealInfo;
29 30 import com.bsth.entity.schedule.CarConfigInfo;
30 31 import com.bsth.entity.schedule.EmployeeConfigInfo;
31 32 import com.bsth.entity.schedule.GuideboardInfo;
32 33 import com.bsth.entity.sys.SysUser;
33 34 import com.bsth.repository.LineRepository;
  35 +import com.bsth.repository.realcontrol.ChildTaskPlanRepository;
34 36 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
35 37 import com.bsth.repository.schedule.CarConfigInfoRepository;
36 38 import com.bsth.repository.schedule.EmployeeConfigInfoRepository;
... ... @@ -74,6 +76,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
74 76  
75 77 @Autowired
76 78 GuideboardInfoRepository guideboardInfoRepository;
  79 +
  80 + @Autowired
  81 + ChildTaskPlanRepository cTaskPlanRepository;
77 82  
78 83 Logger logger = LoggerFactory.getLogger(this.getClass());
79 84  
... ... @@ -757,9 +762,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
757 762 }
758 763  
759 764 @Override
760   - public Map<String, Object> findRouteByLine(Integer lineId) {
  765 + public Map<String, Object> findRouteByLine(Integer lineCode) {
761 766 Map<String, Object> map = new HashMap<>();
762 767 //上行
  768 + Integer lineId = CommonMapped.lineIdToCode.inverse().get(lineCode);
763 769 map.put("line.id_eq", lineId);
764 770 map.put("directions_eq", 0);
765 771 List<Map<String, Object>> upList = sectionRouteService.getSectionRoute(map);
... ... @@ -923,4 +929,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
923 929 String lpName) {
924 930 return scheduleRealInfoRepository.queryListWaybill(jName,clZbh,lpName);
925 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 + }
926 950 }
... ...
src/main/java/com/bsth/service/schedule/SchedulePlanServiceImpl.java
... ... @@ -3,6 +3,7 @@ package com.bsth.service.schedule;
3 3 import com.bsth.entity.Line;
4 4 import com.bsth.entity.schedule.*;
5 5 import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
  6 +import com.bsth.repository.schedule.SchedulePlanInfoRepository;
6 7 import com.bsth.repository.schedule.SchedulePlanRepository;
7 8 import com.bsth.service.LineService;
8 9 import com.bsth.service.impl.BaseServiceImpl;
... ... @@ -37,20 +38,15 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt;
37 38 private IStrategy strategy;
38 39 @Autowired
39 40 private SchedulePlanRepository schedulePlanRepository;
  41 + @Autowired
  42 + private SchedulePlanInfoRepository schedulePlanInfoRepository;
40 43  
41 44 @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)
42 45 @Override
43 46 public Map<String, Object> save(SchedulePlan schedulePlan) {
44   - // 查询参数
45   - Map<String, Object> param = new HashMap<>();
46   -
47   - // 1、查出指定线路的所有规则
48   - Line xl = lineService.findById(schedulePlan.getXl().getId()); // 查找线路具体信息
49   - param.clear();
50   - param.put("xl.id_eq", xl.getId());
51   - Iterable<ScheduleRule1Flat> scheduleRule1FlatIterable = scheduleRule1FlatService.list(param);
52   - if (!scheduleRule1FlatIterable.iterator().hasNext())
53   - throw new RuntimeException("线路:" + xl.getName() + " 没有配置规则!");
  47 + // 1-1、查找线路具体信息
  48 + Line xl = strategy.getLine(schedulePlan.getXl().getId());
  49 + // 1-2、查出指定线路的所有规则
54 50 TTInfo ttInfo = strategy.getTTInfo(xl.getId()); // 时刻表id
55 51 schedulePlan.setTtInfo(ttInfo); // 关联的时刻表
56 52  
... ... @@ -59,7 +55,7 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt;
59 55 ScheduleCalcuParam_input scheduleCalcuParam_input = new ScheduleCalcuParam_input(schedulePlan);
60 56 // 每个规则对应的输入参数
61 57 List<ScheduleRule_input> scheduleRule_inputs = new ArrayList<>();
62   - Iterator<ScheduleRule1Flat> scheduleRule1FlatIterator = scheduleRule1FlatIterable.iterator();
  58 + Iterator<ScheduleRule1Flat> scheduleRule1FlatIterator = strategy.getScheduleRule(xl.getId()).iterator();
63 59 while (scheduleRule1FlatIterator.hasNext()) {
64 60 ScheduleRule1Flat scheduleRule1Flat_temp = scheduleRule1FlatIterator.next();
65 61 ScheduleRule_input scheduleRule_input = new ScheduleRule_input(scheduleRule1Flat_temp);
... ... @@ -86,6 +82,11 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt;
86 82  
87 83 System.out.println(scheduleResults_output.showGuideboardDesc1());
88 84  
  85 + // 2-3、如果排班的数据之前已经有了,删除之前的数据
  86 + schedulePlanInfoRepository.deleteByXlAndScheduleDateGreaterThanEqualAndScheduleDateLessThanEqual(
  87 + xl.getId(), schedulePlan.getScheduleFromTime(), schedulePlan.getScheduleToTime()
  88 + );
  89 +
89 90 // 3、根据规则返回,组合最后的输出数据
90 91 // 3-1、根据注入的策略服务,获取原始数据
91 92 Multimap<Long, TTInfoDetail> gbdTTinfoMaps = strategy.getGuideboardXlTTInfoDetailMaps(xl.getId()); // 路牌对应时刻明细
... ...
src/main/java/com/bsth/service/schedule/TTInfoDetailServiceImpl.java
... ... @@ -9,7 +9,6 @@ import jxl.Sheet;
9 9 import jxl.Workbook;
10 10 import org.apache.commons.lang3.StringUtils;
11 11 import org.joda.time.DateTime;
12   -import org.pentaho.di.core.logging.LogLevel;
13 12 import org.pentaho.di.trans.Trans;
14 13 import org.pentaho.di.trans.TransMeta;
15 14 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -45,14 +44,26 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl&lt;TTInfoDetail, Long&gt;
45 44 private String fcsj;
46 45 /** 班次类型 */
47 46 private String bc_type;
  47 + /** 线路上下行 */
  48 + private String xldir;
  49 + /** 是偶分班 */
  50 + private Boolean isfb;
48 51  
49 52 public FcInfo() {
50 53 }
51 54  
52   - public FcInfo(Long ttdid, String bc_type, String fcsj) {
53   - this.ttdid = ttdid;
  55 + public FcInfo(String ttdid_str, String bc_type, String fcsj, String xldir, String isfb) {
  56 + this.ttdid = StringUtils.isEmpty(ttdid_str) ? null : Long.valueOf(ttdid_str);
54 57 this.bc_type = bc_type;
55 58 this.fcsj = fcsj;
  59 + this.xldir = xldir;
  60 + if ("N".equals(isfb))
  61 + this.isfb = false;
  62 + else if ("Y".equals(isfb))
  63 + this.isfb = true;
  64 + else
  65 + this.isfb = false;
  66 +
56 67 }
57 68  
58 69 public Long getTtdid() {
... ... @@ -78,6 +89,22 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl&lt;TTInfoDetail, Long&gt;
78 89 public void setBc_type(String bc_type) {
79 90 this.bc_type = bc_type;
80 91 }
  92 +
  93 + public String getXldir() {
  94 + return xldir;
  95 + }
  96 +
  97 + public void setXldir(String xldir) {
  98 + this.xldir = xldir;
  99 + }
  100 +
  101 + public Boolean getIsfb() {
  102 + return isfb;
  103 + }
  104 +
  105 + public void setIsfb(Boolean isfb) {
  106 + this.isfb = isfb;
  107 + }
81 108 }
82 109  
83 110 /**
... ... @@ -119,7 +146,7 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl&lt;TTInfoDetail, Long&gt;
119 146 dataToolsProperties.getTtinfodetailForeditktr()).toURI());
120 147 TransMeta transMeta = new TransMeta(ktrFile.getAbsolutePath());
121 148 Trans trans = new Trans(transMeta);
122   - trans.setLogLevel(LogLevel.DEBUG);
  149 +// trans.setLogLevel(LogLevel.DEBUG);
123 150 // 1.2、设定命名参数,TODO:之后还要添加其他命名参数
124 151 String outputFilePath = "ttinfodetail_" + new DateTime().toString("yyyy-MM-dd_HH-mm-ss");
125 152 trans.setParameterValue("tempfilepath", dataToolsProperties.getTransTempdir() + File.separator + outputFilePath); // 数据输出文件路径
... ... @@ -152,21 +179,22 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl&lt;TTInfoDetail, Long&gt;
152 179 for (int r = 1; r < sheet.getRows(); r++) {
153 180 List<FcInfo> fcInfos = new ArrayList<>();
154 181 // 每行第一列都是路牌
155   - fcInfos.add(new FcInfo(null, null, sheet.getCell(0, r).getContents())); // 用fcsj放置路牌显示
156   - for (int c = 1; c <= maxfcno * 4; ) {
157   - Long ttdid = StringUtils.isEmpty(sheet.getCell(c, r).getContents()) ? null :
158   - Long.valueOf(sheet.getCell(c, r).getContents());
159   - String fcsj = sheet.getCell(c + 1, r).getContents();
160   - String fzdname = sheet.getCell(c + 2, r).getContents();
161   - String bctype = sheet.getCell(c + 3, r).getContents();
162   -
163   - FcInfo fcInfo = new FcInfo(ttdid, bctype, fcsj);
164   -
165   - if (StringUtils.isNotEmpty(fzdname ))
166   - headarrays[(int)(c / 4) + 1] = fzdname;
  182 + fcInfos.add(new FcInfo(null, null, sheet.getCell(0, r).getContents(), null, null)); // 用fcsj放置路牌显示
  183 + for (int c = 1; c <= maxfcno * 6; ) {
  184 + String ttdid_str = sheet.getCell(c, r).getContents(); // 时刻表明细id
  185 + String fcsj = sheet.getCell(c + 1, r).getContents(); // 发车时间
  186 + String fzdname = sheet.getCell(c + 2, r).getContents(); // 发车站点名称
  187 + String bctype = sheet.getCell(c + 3, r).getContents(); // 班次类型
  188 + String xldir = sheet.getCell(c + 4, r).getContents(); // 线路上下行
  189 + String isfb = sheet.getCell(c + 5, r).getContents(); // 是否分班
  190 +
  191 + FcInfo fcInfo = new FcInfo(ttdid_str, bctype, fcsj, xldir, isfb);
  192 +
  193 + if (StringUtils.isNotEmpty(fzdname))
  194 + headarrays[(int)(c / 6) + 1] = fzdname;
167 195 fcInfos.add(fcInfo);
168 196  
169   - c += 4;
  197 + c += 6;
170 198 }
171 199 editInfo.getContents().add(fcInfos);
172 200 }
... ...
src/main/java/com/bsth/service/schedule/TTInfoServiceImpl.java
1 1 package com.bsth.service.schedule;
2 2  
  3 +import com.bsth.common.ResponseCode;
3 4 import com.bsth.entity.schedule.TTInfo;
4   -import com.bsth.repository.schedule.TTInfoDetailRepository;
  5 +import com.bsth.repository.schedule.TTInfoRepository;
5 6 import com.bsth.service.impl.BaseServiceImpl;
6 7 import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.dao.DataIntegrityViolationException;
7 9 import org.springframework.stereotype.Service;
8 10  
9 11 import javax.transaction.Transactional;
  12 +import java.util.HashMap;
10 13 import java.util.Map;
11 14  
12 15 /**
... ... @@ -16,11 +19,21 @@ import java.util.Map;
16 19 @Transactional
17 20 public class TTInfoServiceImpl extends BaseServiceImpl<TTInfo, Long> implements TTInfoService {
18 21 @Autowired
19   - private TTInfoDetailRepository ttInfoDetailRepository;
  22 + private TTInfoRepository ttInfoRepository;
20 23  
21 24 @Override
22 25 public Map<String, Object> delete(Long aLong) {
23   - ttInfoDetailRepository.deleteByTtinfoId(aLong);
24   - return super.delete(aLong);
  26 + TTInfo ttInfo = ttInfoRepository.findOne(aLong);
  27 + ttInfo.setIsCancel(true);
  28 +
  29 + Map<String, Object> map = new HashMap<>();
  30 + try{
  31 + ttInfoRepository.save(ttInfo);
  32 + map.put("status", ResponseCode.SUCCESS);
  33 + }catch(DataIntegrityViolationException de){
  34 + map.put("status", ResponseCode.ERROR);
  35 + map.put("msg", "“完整性约束”校验失败,请检查要删除的对象是否存在外键约束");
  36 + }
  37 + return map;
25 38 }
26 39 }
... ...
src/main/java/com/bsth/service/schedule/rules/strategy/IStrategy.java
1 1 package com.bsth.service.schedule.rules.strategy;
2 2  
  3 +import com.bsth.entity.Line;
3 4 import com.bsth.entity.schedule.CarConfigInfo;
4 5 import com.bsth.entity.schedule.EmployeeConfigInfo;
5 6 import com.bsth.entity.schedule.TTInfo;
6 7 import com.bsth.entity.schedule.TTInfoDetail;
  8 +import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
7 9 import com.google.common.collect.Multimap;
8 10  
9 11 import java.util.Map;
... ... @@ -14,28 +16,42 @@ import java.util.Map;
14 16 public interface IStrategy {
15 17  
16 18 /**
17   - * 查找指定线路下,可用的时刻表;
  19 + * 获取线路信息。
  20 + * @param xlId 线路id
  21 + * @return
  22 + */
  23 + Line getLine(Integer xlId);
  24 +
  25 + /**
  26 + * 获取指定线路下,可用的时刻表。
18 27 * @param xlId 线路id
19 28 * @return 时刻表
20 29 */
21 30 TTInfo getTTInfo(Integer xlId);
22 31  
23 32 /**
24   - * 查找指定线路下,路牌与时刻明细对应的Map。
  33 + * 获取指定线路下,可用的排班规则。
  34 + * @param xlId
  35 + * @return
  36 + */
  37 + Iterable<ScheduleRule1Flat> getScheduleRule(Integer xlId);
  38 +
  39 + /**
  40 + * 获取指定线路下,路牌与时刻明细对应的Map。
25 41 * @param xlId 线路id
26 42 * @return 路牌id为key,时刻明细 Collection<TTInfoDetail> 为value
27 43 */
28 44 Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId);
29 45  
30 46 /**
31   - * 查找指定线路下,车辆配置与车辆信息对应的Map。
  47 + * 获取指定线路下,车辆配置与车辆信息对应的Map。
32 48 * @param xlId 线路id
33 49 * @return 车辆配置id为key,具体车辆配置信息为value。
34 50 */
35 51 Map<Long, CarConfigInfo> getCarConfigMaps(Integer xlId);
36 52  
37 53 /**
38   - * 查找指定线路下,人员配置与人员对应的Map。
  54 + * 获取指定线路下,人员配置与人员对应的Map。
39 55 * @param xlId 线路id
40 56 * @return 人员配置id为key,具体人员配置信息为value。
41 57 */
... ...
src/main/java/com/bsth/service/schedule/rules/strategy/IStrategyImpl.java
1 1 package com.bsth.service.schedule.rules.strategy;
2 2  
  3 +import com.bsth.entity.Line;
3 4 import com.bsth.entity.schedule.CarConfigInfo;
4 5 import com.bsth.entity.schedule.EmployeeConfigInfo;
5 6 import com.bsth.entity.schedule.TTInfo;
6 7 import com.bsth.entity.schedule.TTInfoDetail;
7   -import com.bsth.service.schedule.CarConfigInfoService;
8   -import com.bsth.service.schedule.EmployeeConfigInfoService;
9   -import com.bsth.service.schedule.TTInfoDetailService;
10   -import com.bsth.service.schedule.TTInfoService;
  8 +import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
  9 +import com.bsth.service.LineService;
  10 +import com.bsth.service.schedule.*;
11 11 import com.google.common.collect.ArrayListMultimap;
12 12 import com.google.common.collect.Multimap;
13 13 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -30,13 +30,24 @@ public class IStrategyImpl implements IStrategy {
30 30 private EmployeeConfigInfoService employeeConfigInfoService;
31 31 @Autowired
32 32 private TTInfoDetailService ttInfoDetailService;
  33 + @Autowired
  34 + private LineService lineService;
  35 + @Autowired
  36 + private ScheduleRule1FlatService scheduleRule1FlatService;
  37 +
  38 + @Override
  39 + public Line getLine(Integer xlId) {
  40 + Line xl = lineService.findById(xlId); // 查找线路具体信息
  41 + return xl;
  42 + }
33 43  
34 44 @Override
35 45 public TTInfo getTTInfo(Integer xlId) {
36 46 // TODO:本来要使用规则判定到底使用哪张时刻表,这里选用第一张
37   - // 查询参数
38   - Map<String, Object> param = new HashMap<>();
  47 + Map<String, Object> param = new HashMap<>(); // 查询参数
  48 + param.clear();
39 49 param.put("xl.id_eq", xlId); // 线路id
  50 + param.put("isCancel_eq", false); // 没有作废
40 51 param.put("isEnableDisTemplate_eq", true); // 是否启用
41 52 Iterable<TTInfo> ttInfoIterable = ttInfoService.list(param);
42 53 Iterator<TTInfo> ttInfoIterator = ttInfoIterable.iterator();
... ... @@ -46,6 +57,19 @@ public class IStrategyImpl implements IStrategy {
46 57 }
47 58  
48 59 @Override
  60 + public Iterable<ScheduleRule1Flat> getScheduleRule(Integer xlId) {
  61 + Map<String, Object> param = new HashMap<>(); // 查询参数
  62 + Line xl = lineService.findById(xlId); // 查找线路具体信息
  63 + param.clear();
  64 + param.put("xl.id_eq", xl.getId());
  65 + Iterable<ScheduleRule1Flat> scheduleRule1FlatIterable = scheduleRule1FlatService.list(param);
  66 + if (!scheduleRule1FlatIterable.iterator().hasNext())
  67 + throw new RuntimeException("线路:" + xl.getName() + " 没有配置规则!");
  68 +
  69 + return scheduleRule1FlatIterable;
  70 + }
  71 +
  72 + @Override
49 73 public Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId) {
50 74 TTInfo ttInfo = getTTInfo(xlId);
51 75 // 查询参数
... ...
src/main/java/com/bsth/vehicle/BorrowCenter.java
... ... @@ -73,10 +73,10 @@ public class BorrowCenter {
73 73 @Override
74 74 public void run() {
75 75 logger.info("nbbm " + (type==0?"借出":"归还") + "线路代码 " + lineCode);
76   - directiveService.lineChange(nbbm, lineCode);
  76 + directiveService.lineChange(nbbm, lineCode, null);
77 77 if(upDown != -1){
78 78 //切换走向
79   - directiveService.upDownChange(nbbm, upDown);
  79 + directiveService.upDownChange(nbbm, upDown, null);
80 80 }
81 81 }
82 82 }
... ...
src/main/java/com/bsth/vehicle/UpstreamEntrance.java
... ... @@ -32,7 +32,7 @@ public class UpstreamEntrance {
32 32 DirectiveBuffer directiveBuffer;
33 33  
34 34 @RequestMapping(value = "/upstream", method = RequestMethod.POST)
35   - public int main(@RequestParam String json) {
  35 + public String main(@RequestParam String json) {
36 36 logger.info("upstream: " + json);
37 37 try {
38 38 JSONObject jsonParam = JSONObject.parseObject(json);
... ... @@ -66,6 +66,6 @@ public class UpstreamEntrance {
66 66 } catch (Exception e) {
67 67 logger.error("", e);
68 68 }
69   - return 0;
  69 + return "{\"errCode\":0}";
70 70 }
71 71 }
... ...
src/main/java/com/bsth/vehicle/common/CommonMapped.java
1 1 package com.bsth.vehicle.common;
2 2  
3   -import java.util.List;
4 3 import java.util.Map;
5 4  
6 5 import com.bsth.entity.Line;
7   -import com.bsth.entity.StationRoute;
8   -import com.google.common.collect.ArrayListMultimap;
9 6 import com.google.common.collect.BiMap;
10 7 import com.google.common.collect.TreeMultimap;
11 8  
... ... @@ -54,12 +51,17 @@ public class CommonMapped {
54 51 * 线路站点路由对照
55 52 * (K:线路编码, V:站点路由)
56 53 */
57   - public static Map<Integer, List<StationRoute>> lineStationRouteMap;
  54 + //public static Map<Integer, List<StationRoute>> lineStationRouteMap;
58 55  
59 56 /**
60 57 * 线路和用户名对照
61 58 * 用于webSocket定向推送消息
62 59 */
63 60 public static TreeMultimap<Integer, String> lineUserMap = TreeMultimap.create();
  61 +
  62 + /**
  63 + * 线路ID和code 对照
  64 + */
  65 + public static BiMap<Integer, Integer> lineIdToCode;
64 66  
65 67 }
... ...
src/main/java/com/bsth/vehicle/common/CommonRefreshThread.java
1 1 package com.bsth.vehicle.common;
2 2  
3   -import java.util.ArrayList;
4   -import java.util.Collections;
5 3 import java.util.Comparator;
6 4 import java.util.HashMap;
7 5 import java.util.Iterator;
8   -import java.util.List;
9 6 import java.util.Map;
10 7  
11 8 import org.slf4j.Logger;
... ... @@ -21,6 +18,7 @@ import com.bsth.entity.StationRoute;
21 18 import com.bsth.entity.schedule.CarConfigInfo;
22 19 import com.bsth.repository.CarParkRepository;
23 20 import com.bsth.repository.CarsRepository;
  21 +import com.bsth.repository.LineRepository;
24 22 import com.bsth.repository.StationRepository;
25 23 import com.bsth.repository.StationRouteRepository;
26 24 import com.bsth.repository.schedule.CarConfigInfoRepository;
... ... @@ -53,6 +51,9 @@ public class CommonRefreshThread extends Thread{
53 51 @Autowired
54 52 StationRouteRepository sRouteRepository;
55 53  
  54 + @Autowired
  55 + LineRepository lineRepository;
  56 +
56 57 Logger logger = LoggerFactory.getLogger(this.getClass());
57 58  
58 59 @Override
... ... @@ -62,7 +63,9 @@ public class CommonRefreshThread extends Thread{
62 63 initStationCodeMap();
63 64 initVehicLineMap();
64 65  
65   - initLineStationRouteMap();
  66 + //initLineStationRouteMap();
  67 +
  68 + initLineIdToCode();
66 69 } catch (Exception e) {
67 70 e.printStackTrace();
68 71 logger.error("", e);
... ... @@ -75,7 +78,7 @@ public class CommonRefreshThread extends Thread{
75 78 * @Description: TODO(加载线路站点路由信息)
76 79 * @throws
77 80 */
78   - private void initLineStationRouteMap() {
  81 +/* private void initLineStationRouteMap() {
79 82 List<StationRoute> routes = sRouteRepository.findAll2();
80 83  
81 84 Map<Integer, List<StationRoute>> map = new HashMap<>();
... ... @@ -97,6 +100,19 @@ public class CommonRefreshThread extends Thread{
97 100 temp = iterator.next();
98 101 Collections.sort(temp, sRouteComp);
99 102 }
  103 + }*/
  104 +
  105 + private void initLineIdToCode() {
  106 + Iterator<Line> iterator = lineRepository.findAll().iterator();
  107 +
  108 + Line line;
  109 + BiMap<Integer, Integer> biMap = HashBiMap.create();
  110 + while(iterator.hasNext()){
  111 + line = iterator.next();
  112 + biMap.put(line.getId(), Integer.parseInt(line.getLineCode()));
  113 + }
  114 +
  115 + CommonMapped.lineIdToCode = biMap;
100 116 }
101 117  
102 118 /**
... ...
src/main/java/com/bsth/vehicle/directive/buffer/DirectiveBuffer.java
... ... @@ -5,7 +5,6 @@ import java.util.Calendar;
5 5 import java.util.Collection;
6 6 import java.util.Comparator;
7 7 import java.util.HashMap;
8   -import java.util.Iterator;
9 8 import java.util.LinkedList;
10 9 import java.util.List;
11 10 import java.util.Map;
... ...
src/main/java/com/bsth/vehicle/directive/controller/DirectiveController.java
... ... @@ -9,6 +9,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
9 9 import org.springframework.web.bind.annotation.RequestParam;
10 10 import org.springframework.web.bind.annotation.RestController;
11 11  
  12 +import com.bsth.entity.sys.SysUser;
  13 +import com.bsth.security.util.SecurityUtils;
12 14 import com.bsth.vehicle.directive.entity.Directive80;
13 15 import com.bsth.vehicle.directive.service.DirectiveService;
14 16  
... ... @@ -35,7 +37,8 @@ public class DirectiveController {
35 37 */
36 38 @RequestMapping(value = "/phrase", method = RequestMethod.POST)
37 39 public int send60Phrase(@RequestParam String nbbm, @RequestParam String text){
38   - return directiveService.send60Phrase(nbbm, text);
  40 + SysUser user = SecurityUtils.getCurrentUser();
  41 + return directiveService.send60Phrase(nbbm, text, user.getUserName());
39 42 }
40 43  
41 44 /**
... ... @@ -47,7 +50,8 @@ public class DirectiveController {
47 50 */
48 51 @RequestMapping(value = "/dispatch", method = RequestMethod.POST)
49 52 public int send60Dispatch(@RequestParam Long id){
50   - return directiveService.send60Dispatch(id);
  53 + SysUser user = SecurityUtils.getCurrentUser();
  54 + return directiveService.send60Dispatch(id, user.getUserName());
51 55 }
52 56  
53 57 /**
... ... @@ -60,7 +64,8 @@ public class DirectiveController {
60 64 */
61 65 @RequestMapping(value = "/lineChnage", method = RequestMethod.POST)
62 66 public int lineChange(@RequestParam String nbbm, @RequestParam Integer lineId){
63   - return directiveService.lineChange(nbbm, lineId);
  67 + SysUser user = SecurityUtils.getCurrentUser();
  68 + return directiveService.lineChange(nbbm, lineId, user.getUserName());
64 69 }
65 70  
66 71 /**
... ... @@ -71,9 +76,10 @@ public class DirectiveController {
71 76 * @param @param upDon
72 77 * @throws
73 78 */
74   - @RequestMapping(value = "/upDownChange", method = RequestMethod.POST)
  79 + @RequestMapping(value = "/upDownChange", method = RequestMethod.GET)
75 80 public int upDownChange(@RequestParam String nbbm, @RequestParam Integer upDown){
76   - return directiveService.upDownChange(nbbm, upDown);
  81 + SysUser user = SecurityUtils.getCurrentUser();
  82 + return directiveService.upDownChange(nbbm, upDown, user.getUserName());
77 83 }
78 84  
79 85 /**
... ...
src/main/java/com/bsth/vehicle/directive/entity/Directive.java
... ... @@ -44,6 +44,11 @@ public class Directive {
44 44 private String errorText;
45 45  
46 46 private int httpCode;
  47 +
  48 + /**
  49 + * 发送人
  50 + */
  51 + private String sender;
47 52  
48 53 public short getOperCode() {
49 54 return operCode;
... ... @@ -100,4 +105,12 @@ public class Directive {
100 105 public void setHttpCode(int httpCode) {
101 106 this.httpCode = httpCode;
102 107 }
  108 +
  109 + public String getSender() {
  110 + return sender;
  111 + }
  112 +
  113 + public void setSender(String sender) {
  114 + this.sender = sender;
  115 + }
103 116 }
... ...
src/main/java/com/bsth/vehicle/directive/entity/Directive60.java
... ... @@ -13,7 +13,6 @@ import javax.persistence.Table;
13 13 import javax.persistence.Transient;
14 14  
15 15 import com.bsth.entity.realcontrol.ScheduleRealInfo;
16   -import com.bsth.entity.sys.SysUser;
17 16 import com.fasterxml.jackson.annotation.JsonIgnore;
18 17  
19 18  
... ... @@ -72,12 +71,6 @@ public class Directive60 extends Directive{
72 71 @ManyToOne(fetch = FetchType.LAZY)
73 72 private ScheduleRealInfo sch;
74 73  
75   - /**
76   - * 发送人
77   - */
78   - @ManyToOne
79   - private SysUser sender;
80   -
81 74 @Embeddable
82 75 public static class DirectiveData {
83 76 // 公司代码
... ... @@ -271,12 +264,4 @@ public class Directive60 extends Directive{
271 264 public void setSch(ScheduleRealInfo sch) {
272 265 this.sch = sch;
273 266 }
274   -
275   - public SysUser getSender() {
276   - return sender;
277   - }
278   -
279   - public void setSender(SysUser sender) {
280   - this.sender = sender;
281   - }
282 267 }
... ...
src/main/java/com/bsth/vehicle/directive/service/DirectiveService.java
... ... @@ -20,7 +20,7 @@ public interface DirectiveService extends BaseService&lt;Directive60, Integer&gt;{
20 20 * @return int 返回类型
21 21 * @throws
22 22 */
23   - int send60Phrase(String nbbm, String text);
  23 + int send60Phrase(String nbbm, String text, String sender);
24 24  
25 25 /**
26 26 *
... ... @@ -30,7 +30,7 @@ public interface DirectiveService extends BaseService&lt;Directive60, Integer&gt;{
30 30 * @param @param finish 已完成的班次数
31 31 * @throws
32 32 */
33   - int send60Dispatch(ScheduleRealInfo sch, int finish);
  33 + int send60Dispatch(ScheduleRealInfo sch, int finish, String sender);
34 34  
35 35 /**
36 36 *
... ... @@ -39,10 +39,10 @@ public interface DirectiveService extends BaseService&lt;Directive60, Integer&gt;{
39 39 * @param @param id 班次ID
40 40 * @throws
41 41 */
42   - int send60Dispatch(Long id);
  42 + int send60Dispatch(Long id, String sender);
43 43  
44 44 //60营运指令
45   - int send60Operation(String nbbm, int state, int upDown, ScheduleRealInfo sch);
  45 + int send60Operation(String nbbm, int state, int upDown, ScheduleRealInfo sch, String sender);
46 46  
47 47 /**
48 48 *
... ... @@ -52,7 +52,7 @@ public interface DirectiveService extends BaseService&lt;Directive60, Integer&gt;{
52 52 * @param @param lineId 新线路编码
53 53 * @throws
54 54 */
55   - int lineChange(String nbbm, Integer lineId);
  55 + int lineChange(String nbbm, Integer lineId, String sender);
56 56  
57 57 /**
58 58 *
... ... @@ -62,7 +62,7 @@ public interface DirectiveService extends BaseService&lt;Directive60, Integer&gt;{
62 62 * @param @param upDonw 上下行 0 上行 1 下行
63 63 * @throws
64 64 */
65   - int upDownChange(String nbbm, Integer upDown);
  65 + int upDownChange(String nbbm, Integer upDown, String sender);
66 66  
67 67 /**
68 68 *
... ...
src/main/java/com/bsth/vehicle/directive/service/DirectiveServiceImpl.java
1 1 package com.bsth.vehicle.directive.service;
2 2  
3 3 import java.text.SimpleDateFormat;
  4 +import java.util.ArrayList;
4 5 import java.util.Collections;
5 6 import java.util.Date;
6 7 import java.util.HashMap;
... ... @@ -20,20 +21,17 @@ import com.bsth.entity.realcontrol.ScheduleRealInfo;
20 21 import com.bsth.service.impl.BaseServiceImpl;
21 22 import com.bsth.service.realcontrol.buffer.ScheduleBuffer;
22 23 import com.bsth.vehicle.common.CommonMapped;
23   -import com.bsth.vehicle.directive.Consts;
24   -import com.bsth.vehicle.directive.MsgIdGenerator;
25 24 import com.bsth.vehicle.directive.buffer.DirectiveBuffer;
26 25 import com.bsth.vehicle.directive.entity.Directive;
27 26 import com.bsth.vehicle.directive.entity.Directive60;
28   -import com.bsth.vehicle.directive.entity.Directive60.DirectiveData;
29 27 import com.bsth.vehicle.directive.entity.DirectiveC0.DirectiveC0Data;
30 28 import com.bsth.vehicle.directive.entity.Directive80;
31 29 import com.bsth.vehicle.directive.entity.DirectiveC0;
32 30 import com.bsth.vehicle.directive.entity.Directive64;
33   -import com.bsth.vehicle.directive.entity.Directive64.LineChangeData;
34 31 import com.bsth.vehicle.directive.repository.Directive60Repository;
35 32 import com.bsth.vehicle.directive.repository.Directive80Repository;
36 33 import com.bsth.vehicle.directive.repository.LineChangeRepository;
  34 +import com.bsth.vehicle.directive.util.DirectiveDataFactory;
37 35 import com.bsth.vehicle.directive.util.HttpUtils;
38 36 import com.bsth.vehicle.gpsdata.buffer.GpsRealDataBuffer;
39 37 import com.bsth.vehicle.gpsdata.entity.GpsRealData;
... ... @@ -64,11 +62,8 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
64 62  
65 63 static Long schDiff = 1000 * 60 * 60L;
66 64  
67   - // 城市代码
68   - static final short cityCode = 22;
69   -
70 65 @Override
71   - public int send60Phrase(String nbbm, String text) {
  66 + public int send60Phrase(String nbbm, String text, String sender) {
72 67 Directive60 directive = null;
73 68 try {
74 69 directive = create60Data(nbbm, text, (short) 0x00, null);
... ... @@ -82,6 +77,8 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
82 77  
83 78 // 发送指令
84 79 int code = HttpUtils.postJson(JSON.toJSONString(directive));
  80 + if(null != sender)
  81 + directive.setSender(sender);
85 82 directive.setHttpCode(code);
86 83 // 添加到缓存,等待入库
87 84 DirectiveBuffer.put(directive);
... ... @@ -94,13 +91,13 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
94 91 }
95 92  
96 93 @Override
97   - public int send60Dispatch(ScheduleRealInfo sch, int finish) {
  94 + public int send60Dispatch(ScheduleRealInfo sch, int finish, String sender) {
98 95 Directive60 directive = null;
99 96 try {
100 97 // 如果发车时间距当前时间较远,则不发送
101   - if (Math.abs(sch.getFcsjT() - System.currentTimeMillis()) > schDiff) {
  98 + /*if (Math.abs(sch.getFcsjT() - System.currentTimeMillis()) > schDiff) {
102 99 return -2;
103   - }
  100 + }*/
104 101  
105 102 String text = "已完成" + finish + "个班次,下一发车时间" + sdfHHmm.format(new Date(sch.getFcsjT())) + ",由"
106 103 + sch.getQdzName() + "发往" + sch.getZdzName();
... ... @@ -114,6 +111,10 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
114 111  
115 112 if (null == directive)
116 113 return -1;
  114 + if(null != sender)
  115 + directive.setSender(sender);
  116 + else
  117 + directive.setSender("系统");
117 118  
118 119 // 发送指令
119 120 int code = HttpUtils.postJson(JSON.toJSONString(directive));
... ... @@ -148,22 +149,26 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
148 149 }
149 150  
150 151 @Override
151   - public int send60Dispatch(Long id) {
  152 + public int send60Dispatch(Long id, String sender) {
152 153 ScheduleRealInfo sch = ScheduleBuffer.findOne(id);
153 154 // 车辆已完成班次
154 155 int finish = ScheduleBuffer.getFinishSchNo(sch.getClZbh());
155   - return send60Dispatch(sch, finish);
  156 + return send60Dispatch(sch, finish, sender);
156 157 }
157 158  
158 159 @Override
159   - public int send60Operation(String nbbm, int state, int upDown, ScheduleRealInfo sch) {
  160 + public int send60Operation(String nbbm, int state, int upDown, ScheduleRealInfo sch, String sender) {
160 161 logger.info("切换运营状态, nbbm: " + nbbm + " ,state: " + state + " ,upDown:" + upDown);
161 162  
162 163 String text = "切换为 " + (upDown == 0 ? "上行" : "下行") + (state == 0 ? "营运" : "未营运");
163   - Directive60 directive = createDirective60(nbbm, text, (short) 0x03, upDown, state);
  164 + Directive60 directive = DirectiveDataFactory.createDirective60(nbbm, text, (short) 0x03, upDown, state);
164 165  
165 166 if (null == directive)
166 167 return -1;
  168 + if(null != sender)
  169 + directive.setSender(sender);
  170 + else
  171 + directive.setSender("系统");
167 172 // 发送指令
168 173 int code = HttpUtils.postJson(JSON.toJSONString(directive));
169 174 // 添加到缓存,等待入库
... ... @@ -183,21 +188,28 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
183 188 * 线路切换
184 189 */
185 190 @Override
186   - public int lineChange(String nbbm, Integer lineId) {
  191 + public int lineChange(String nbbm, Integer lineCode, String sender) {
187 192 Long t = System.currentTimeMillis();
188   - String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
  193 + /*String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
189 194  
190 195 Directive64 change = new Directive64();
191 196 LineChangeData data = new LineChangeData();
192 197 data.setCityCode(cityCode);
193 198 data.setDeviceId(deviceId);
194   - data.setLineId("00" + String.valueOf(lineId));
  199 + data.setLineId("00" + String.valueOf(lineCode));
195 200  
196 201 change.setDeviceId(deviceId);
197 202 change.setOperCode((short) 0X64);
198 203 change.setTimestamp(t);
199   - change.setData(data);
  204 + change.setData(data);*/
  205 + Directive64 change = DirectiveDataFactory.createDirective64(nbbm, lineCode, t);
  206 +
  207 + if(null != sender)
  208 + change.setSender(sender);
  209 + else
  210 + change.setSender("系统");
200 211  
  212 + String deviceId = change.getDeviceId();
201 213 int code = HttpUtils.postJson(JSON.toJSONString(change));
202 214 // 入库
203 215 change.setHttpCode(code);
... ... @@ -205,7 +217,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
205 217  
206 218 // 通知设备刷新线路文件,忽略结果
207 219 if (code == 0)
208   - HttpUtils.postJson(createDeviceRefreshData(deviceId, lineId));
  220 + HttpUtils.postJson(DirectiveDataFactory.createDeviceRefreshData(deviceId, lineCode));
209 221 else
210 222 change.setErrorText("网关通讯失败, code: " + code);
211 223  
... ... @@ -215,10 +227,6 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
215 227  
216 228 public Directive60 create60Data(String nbbm, String text, Short dispatchInstruct, ScheduleRealInfo sch) {
217 229  
218   - /*
219   - * //向测试设备发送 String deviceId = "ABCDFEGH"; Short company = 5;
220   - */
221   -
222 230 String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
223 231 if (null == deviceId) {
224 232 logger.error("没有设备号对照的车辆:" + nbbm);
... ... @@ -239,10 +247,10 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
239 247 state = 0;
240 248 }
241 249  
242   - return createDirective60(nbbm, text, dispatchInstruct, upDown, state);
  250 + return DirectiveDataFactory.createDirective60(nbbm, text, dispatchInstruct, upDown, state);
243 251 }
244 252  
245   - 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) {
246 254 Long timestamp = System.currentTimeMillis();
247 255  
248 256 Short company = Short.parseShort(CommonMapped.vehicCompanyMap.get(nbbm));
... ... @@ -277,21 +285,11 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
277 285 data.setTxtContent(text);
278 286  
279 287 return directive;
280   - }
  288 + }*/
281 289  
282 290 @Override
283   - public int upDownChange(String nbbm, Integer upDown) {
284   - /*
285   - * Directive60 directive = createDirective60(nbbm, nbbm + "_" + upDown,
286   - * (short) 0x03, upDown, 0);
287   - *
288   - * if(null == directive) return -1;
289   - *
290   - * int code = HttpUtils.postJson(JSON.toJSONString(directive)); if(code
291   - * == 0){ //添加到缓存,等待入库 DirectiveBuffer.put(directive); }else{
292   - * logger.error("send60 upDownChange error, code: " + code); }
293   - */
294   - return send60Operation(nbbm, 0, upDown, null);
  291 + public int upDownChange(String nbbm, Integer upDown, String sender) {
  292 + return send60Operation(nbbm, 0, upDown, null, sender);
295 293 }
296 294  
297 295 /**
... ... @@ -299,7 +297,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
299 297 * @Title: createDeviceRefreshData @Description:
300 298 * TODO(生成设备线路刷新数据包) @param @return 设定文件 @return String 返回类型 @throws
301 299 */
302   - public String createDeviceRefreshData(String deviceId, Integer lineId) {
  300 +/* public String createDeviceRefreshData(String deviceId, Integer lineId) {
303 301 Long t = System.currentTimeMillis();
304 302 Map<String, Object> param = new HashMap<String, Object>();
305 303 param.put("deviceId", deviceId);
... ... @@ -307,7 +305,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
307 305 param.put("operCode", 0Xc0);
308 306  
309 307 Map<String, Object> data = new HashMap<String, Object>();
310   - data.put("operCode", 0xa1);
  308 + data.put("operCode2", 0xa1);
311 309 data.put("cityCode", cityCode);
312 310 data.put("deviceId", deviceId);
313 311 data.put("timestamp", t);
... ... @@ -318,7 +316,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
318 316 param.put("data", data);
319 317  
320 318 return JSON.toJSONString(param);
321   - }
  319 + }*/
322 320  
323 321 @Override
324 322 public Map<String, List<Directive80>> findNoCofm80(String lineCodes) {
... ... @@ -409,8 +407,15 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
409 407 // 时间倒序
410 408 Collections.sort(list, new DirectiveBuffer.DComparator());
411 409 if(StringUtils.isNotBlank(nbbm)){
  410 + String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
412 411 //按车辆过滤
413   -
  412 + List<Directive> subList = new ArrayList<>();
  413 + for(Directive d : list){
  414 + if(d.getDeviceId().equals(deviceId)){
  415 + subList.add(d);
  416 + }
  417 + }
  418 + list = subList;
414 419 }
415 420  
416 421 int count = list.size();
... ...
src/main/java/com/bsth/vehicle/directive/thread/FirstScheduleIssuedThread.java
... ... @@ -69,7 +69,7 @@ public class FirstScheduleIssuedThread extends Thread{
69 69 //切换营运状态
70 70 directiveService.send60Operation(sch.getClZbh()
71 71 , 0, Integer.parseInt(sch.getXlDir())
72   - , sch);
  72 + , sch, null);
73 73 }
74 74 }
75 75 }
... ...
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 66 for(String lineCode : newSet){
67 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 73 * @throws ParseException
... ... @@ -258,24 +121,4 @@ public class ArrivalThread extends Thread{
258 121 }
259 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/GpsArrivalStationThread_old.java deleted 100644 → 0
1   -package com.bsth.vehicle.gpsdata;
2   -
3   -import java.sql.Connection;
4   -import java.sql.PreparedStatement;
5   -import java.sql.ResultSet;
6   -import java.text.ParseException;
7   -import java.text.SimpleDateFormat;
8   -import java.util.ArrayList;
9   -import java.util.Calendar;
10   -import java.util.Date;
11   -import java.util.Iterator;
12   -import java.util.List;
13   -import java.util.Set;
14   -
15   -import org.slf4j.Logger;
16   -import org.slf4j.LoggerFactory;
17   -import org.springframework.beans.factory.annotation.Autowired;
18   -import org.springframework.stereotype.Component;
19   -
20   -import com.alibaba.fastjson.JSONObject;
21   -import com.bsth.entity.realcontrol.ScheduleRealInfo;
22   -import com.bsth.service.realcontrol.buffer.ScheduleBuffer;
23   -import com.bsth.util.DateUtils;
24   -import com.bsth.util.db.DBUtils_MS;
25   -import com.bsth.vehicle.directive.service.DirectiveService;
26   -import com.bsth.vehicle.gpsdata.buffer.ArrivalDataBuffer;
27   -import com.bsth.vehicle.gpsdata.entity.ArrivalInfo;
28   -import com.bsth.websocket.handler.RealControlSocketHandler;
29   -
30   -/**
31   - *
32   - * @ClassName: GpsArrivalStationThread
33   - * @Description: TODO(GPS到离站)
34   - * @author PanZhao
35   - * @date 2016年6月27日 上午10:58:13
36   - *
37   - */
38   -@Component
39   -public class GpsArrivalStationThread_old extends Thread{
40   -
41   - Logger logger = LoggerFactory.getLogger(this.getClass());
42   - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
43   -
44   - @Autowired
45   - DirectiveService directiveService;
46   -
47   - @Autowired
48   - RealControlSocketHandler socketHandler;
49   -
50   - private static int diff = 1000 * 60 * 20;
51   -
52   - @Override
53   - public void run() {
54   - List<ArrivalInfo> list = null;
55   - try {
56   - list = loadData();
57   - } catch (ParseException e) {
58   - e.printStackTrace();
59   - }
60   - ArrivalDataBuffer.putAll(list);
61   - //实际到离站和计划排班相匹配
62   -
63   - Set<String> keySet = ArrivalDataBuffer.allMap.keySet();
64   - System.out.println("开始...");
65   - List<ScheduleRealInfo> schList;
66   - for(String key : keySet){
67   - schList = extractSched(ScheduleBuffer.carSchListMap.get(key));
68   - if(null != schList)
69   - match(ArrivalDataBuffer.allMap.get(key), schList);
70   - }
71   - System.out.println("结束...");
72   - }
73   -
74   -
75   - /**
76   - *
77   - * @Title: match
78   - * @Description: TODO(实际和计划进行匹配)
79   - * @param @param arrList 实际GPS到离站链表
80   - * @param @param schList 计划排班链表
81   - * @throws
82   - */
83   - public void match(List<ArrivalInfo> arrList, List<ScheduleRealInfo> schList){
84   - Iterator<ScheduleRealInfo> schIterator = schList.iterator();
85   -
86   - while(schIterator.hasNext())
87   - match(schIterator.next(), arrList);
88   - }
89   -
90   -
91   - public void match(ScheduleRealInfo scInfo, List<ArrivalInfo> arrList){
92   - for(ArrivalInfo arr : arrList){
93   - match(scInfo, arr);
94   - }
95   - }
96   -
97   - public void match(ScheduleRealInfo scInfo, ArrivalInfo arr){
98   - try{
99   - //匹配起点
100   - matchStart(scInfo, arr);
101   -
102   - //匹配终点
103   - matchEnd(scInfo, arr);
104   - }catch(Exception e){
105   - e.printStackTrace();
106   - }
107   - }
108   -
109   - /**
110   - *
111   - * @Title: matchStart
112   - * @Description: TODO(匹配起点 出站时间)
113   - * @param @param scInfo
114   - * @throws
115   - */
116   - public void matchStart(ScheduleRealInfo scInfo, ArrivalInfo arr){
117   - if(scInfo.getFcsjT() == null
118   - || arr.getInOut() != 1 || scInfo.getFcsjActual() != null)
119   - return;
120   -
121   - Long ts = arr.getTs();
122   - //起点站和发车时间比比较
123   - if(scInfo.getQdzCode().equals(arr.getStopNo())
124   - && Math.abs(scInfo.getFcsjT() - ts) < diff){
125   - scInfo.setFcsjActualTime(ts);
126   - scInfo.setFcsjActual(sdf.format(ts));
127   -
128   - System.out.println("成功匹配一个起点...");
129   - //班次状态改为正在执行
130   - scInfo.setStatus(1);
131   - ScheduleBuffer.persistentList.add(scInfo);
132   - //推送到页面
133   - sendFcsj(scInfo);
134   - }
135   - }
136   -
137   - /**
138   - * @Title: sendFcsj
139   - * @Description: TODO(推送发车信息)
140   - * @param @param schedule 班次
141   - * @throws
142   - */
143   - public void sendFcsj(ScheduleRealInfo schedule){
144   - JSONObject json = new JSONObject();
145   - json.put("fn", "faChe");
146   - json.put("t", schedule);
147   - json.put("dataStr", sdf.format(new Date()));
148   - socketHandler.sendMessageToLine(Integer.parseInt(schedule.getXlBm()), json.toJSONString());
149   - }
150   -
151   - /**
152   - *
153   - * @Title: matchEnd
154   - * @Description: TODO(匹配终点 进站时间)
155   - * @throws
156   - */
157   - public void matchEnd(ScheduleRealInfo scInfo, ArrivalInfo arr){
158   - if(scInfo.getZdsjT() == null
159   - || arr.getInOut() != 0 || scInfo.getZdsjActual() != null)
160   - return;
161   -
162   - Long ts = arr.getTs();
163   - //终点站和发车时间比较
164   - if(scInfo.getZdzCode().equals(arr.getStopNo())
165   - && Math.abs(scInfo.getZdsjT() - ts) < diff){
166   - scInfo.setZdsjActualTime(ts);
167   - scInfo.setZdsjActual(sdf.format(ts));
168   -
169   - System.out.println("成功匹配一个终点...");
170   - //完成当前班次
171   - ScheduleRealInfo nextSch = ScheduleBuffer.finishSch(scInfo);
172   - //到达终点,发送下一班次的调度指令
173   - int finish = ScheduleBuffer.getFinishSchNo(nextSch.getClZbh());
174   - directiveService.send60Dispatch(nextSch, finish);
175   - //推送到页面
176   - sendZdsj(scInfo, nextSch, finish);
177   - }
178   - }
179   -
180   - /**
181   - * @Title: sendFcsj
182   - * @Description: TODO(推送到达终点时间)
183   - * @param @param schedule 班次
184   - * @throws
185   - */
186   - public void sendZdsj(ScheduleRealInfo schedule,ScheduleRealInfo nextSch, int finish){
187   - JSONObject json = new JSONObject();
188   - json.put("fn", "zhongDian");
189   - json.put("t", schedule);
190   - json.put("nt", nextSch);
191   - json.put("finish", finish);
192   - json.put("dataStr", sdf.format(new Date()));
193   -
194   - socketHandler.sendMessageToLine(Integer.parseInt(schedule.getXlBm()), json.toJSONString());
195   - }
196   -
197   - /**
198   - * @throws ParseException
199   - *
200   - * @Title: loadData
201   - * @Description: TODO(从数据库加载到离站信息)
202   - * @return List<ArrivalInfo> 返回类型
203   - * @throws
204   - */
205   - private List<ArrivalInfo> loadData() throws ParseException{
206   - Calendar cal = Calendar.getInstance();
207   - //周数,表分区字段
208   - int weeks_year = cal.get(Calendar.WEEK_OF_YEAR);
209   - //按时间标记增量加载
210   - if(null == ArrivalDataBuffer.markTime){
211   - //第一次从当天0点开始
212   - ArrivalDataBuffer.markTime = DateUtils.getTimesmorning() * 1000L;
213   - }
214   -
215   - String sql = "select * from bsth_c_arrival_info where weeks_year=? and create_date > ? order by ts";
216   -
217   - List<ArrivalInfo> list = new ArrayList<>();
218   - Connection conn = null;
219   - PreparedStatement ps = null;
220   - ResultSet rs = null;
221   - try {
222   - conn = DBUtils_MS.getConnection();
223   - ps = conn.prepareStatement(sql);
224   - ps.setInt(1, weeks_year);
225   - ps.setLong(2, ArrivalDataBuffer.markTime);
226   -
227   - Long t = System.currentTimeMillis();
228   - rs = ps.executeQuery();
229   -
230   - while(rs.next()){
231   - list.add(new ArrivalInfo(rs.getString("device_id"), rs.getLong("ts"), rs.getString("line_id")
232   - , rs.getInt("up_down"), rs.getString("stop_no"), rs.getInt("in_out"), rs.getLong("create_date"), rs.getInt("weeks_year")));
233   - }
234   -
235   - //重新打时间标记
236   - ArrivalDataBuffer.markTime = t;
237   -
238   - } catch (Exception e) {
239   - logger.error("", e);
240   - }finally {
241   - DBUtils_MS.close(rs, ps, conn);
242   - }
243   - return list;
244   - }
245   -
246   - Long rang = 1000 * 60 * 60L;
247   - /**
248   - *
249   - * @Title: extractSched
250   - * @Description: TODO(提取当前时间前后一小时的计划)
251   - * @param @param allList
252   - * @throws
253   - */
254   - public List<ScheduleRealInfo> extractSched(List<ScheduleRealInfo> allList){
255   - List<ScheduleRealInfo> subList = new ArrayList<>();
256   - System.out.println("原计划:" + allList.size());
257   - Long t = System.currentTimeMillis();
258   - for(ScheduleRealInfo sch : allList){
259   - if(Math.abs(sch.getFcsjT() - t) < rang
260   - || (sch.getZdsjT() != null && Math.abs(sch.getZdsjT()) - t < rang)){
261   - subList.add(sch);
262   - }
263   - }
264   - System.out.println("按时间提取:" + subList.size());
265   - return subList;
266   - }
267   -}
src/main/java/com/bsth/vehicle/gpsdata/arrival/match/ScheduleRealMatcher.java
... ... @@ -155,18 +155,20 @@ public class ScheduleRealMatcher implements ApplicationContextAware{
155 155 }
156 156  
157 157 finish = ScheduleBuffer.getFinishSchNo(sch.getClZbh());
158   - upDown = Integer.parseInt(sch.getXlDir());
  158 +
159 159 if(nextSch != null){
160   - //发送下一班次的调度指令
161   - directiveService.send60Dispatch(nextSch, finish);
  160 + //发送下一班次的调度指令(并切换营运状态)
  161 + directiveService.send60Dispatch(nextSch, finish, null);
  162 +
  163 + //upDown = Integer.parseInt(nextSch.getXlDir());
162 164 //切换下一个班次的走向
163   - logger.info(sch.getClZbh() + " 切换下一班次走向");
164   - directiveService.send60Operation(nextSch.getClZbh(), 0, upDown, nextSch);
  165 + //directiveService.send60Operation(nextSch.getClZbh(), 0, upDown, nextSch, null);
165 166 }
166 167 else{
  168 + upDown = Integer.parseInt(sch.getXlDir());
167 169 //没有下一个班次了,切换为非营运状态
168 170 logger.info(sch.getClZbh() + " 完成所有班次,切换为非营运状态");
169   - directiveService.send60Operation(sch.getClZbh(), 1, upDown, sch);
  171 + directiveService.send60Operation(sch.getClZbh(), 1, upDown, sch, null);
170 172 }
171 173  
172 174 sendZdsj(sch, nextSch, finish);//推送到页面
... ... @@ -183,10 +185,6 @@ public class ScheduleRealMatcher implements ApplicationContextAware{
183 185 * @throws
184 186 */
185 187 public void sendFcsj(ScheduleRealInfo schedule) {
186   - /*JSONObject json = new JSONObject();
187   - json.put("fn", "faChe");
188   - json.put("t", schedule);
189   - json.put("dataStr", sdf.format(new Date()));*/
190 188  
191 189 Map<String, Object> map = new HashMap<>();
192 190 map.put("fn", "faChe");
... ... @@ -212,12 +210,6 @@ public class ScheduleRealMatcher implements ApplicationContextAware{
212 210 * @throws
213 211 */
214 212 public void sendZdsj(ScheduleRealInfo schedule,ScheduleRealInfo nextSch, int finish) {
215   - /*JSONObject json = new JSONObject();
216   - json.put("fn", "zhongDian");
217   - json.put("t", schedule);
218   - json.put("nt", nextSch);
219   - json.put("finish", finish);
220   - json.put("dataStr", sdf.format(new Date()));*/
221 213  
222 214 Map<String, Object> map = new HashMap<>();
223 215 map.put("fn", "zhongDian");
... ...
src/main/java/com/bsth/vehicle/gpsdata/buffer/GpsRealDataBuffer.java
... ... @@ -103,11 +103,9 @@ public class GpsRealDataBuffer {
103 103  
104 104 //更新GPS点
105 105 for(GpsRealData newGps : upGpsList){
106   - if(t - newGps.getTimestamp() < OFFLINE_TIME
107   - && !newGps.isOnline()){
108   - logger.info("设备:" + newGps.getDeviceId() + " 上线");
  106 +
  107 + if(t - newGps.getTimestamp() < OFFLINE_TIME )
109 108 newGps.setOnline(true);
110   - }
111 109  
112 110 deviceGpsMap.put(newGps.getDeviceId(), newGps);
113 111 }
... ...
src/main/resources/datatools/ktrs/ttinfodetailDataInput.ktr
... ... @@ -587,13 +587,31 @@
587 587 <optimizationLevel>9</optimizationLevel>
588 588 <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
589 589 <jsScript_name>Script 1</jsScript_name>
590   - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x4f7f;&#x7528;&#x6b63;&#x5219;&#x8868;&#x8fbe;&#x5f0f;&#x53bb;&#x9664;&#x7ad9;&#x70b9;&#x540d;&#x79f0;&#x4e2d;&#x7684;&#x6570;&#x5b57;&#xa;qdzname &#x3d; qdzname.replace&#x28;&#x2f;&#x5c;d&#x2b;&#x2f;g,&#x27;&#x27;&#x29;&#x3b;&#xa;&#xa;</jsScript_script>
  590 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x4f7f;&#x7528;&#x6b63;&#x5219;&#x8868;&#x8fbe;&#x5f0f;&#x53bb;&#x9664;&#x7ad9;&#x70b9;&#x540d;&#x79f0;&#x4e2d;&#x7684;&#x6570;&#x5b57;&#xa;qdzname &#x3d; qdzname.replace&#x28;&#x2f;&#x5c;d&#x2b;&#x2f;g,&#x27;&#x27;&#x29;&#x3b;&#xa;&#xa;&#x2f;&#x2f; sendtime&#x5904;&#x7406;&#xa;var sendtime_calcu&#x3b;&#xa;if &#x28;sendtime.length &#x21;&#x3d; 5&#x29; &#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa;else &#xa; sendtime_calcu &#x3d; sendtime&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x5206;&#x73ed;&#xa;var isfb &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;isCanceled&#xa;var iscanceled &#x3d; 0&#x3b;</jsScript_script>
591 591 </jsScript> </jsScripts> <fields> <field> <name>qdzname</name>
592 592 <rename>qdzname</rename>
593 593 <type>String</type>
594 594 <length>-1</length>
595 595 <precision>-1</precision>
596 596 <replace>Y</replace>
  597 + </field> <field> <name>isfb</name>
  598 + <rename>isfb</rename>
  599 + <type>Integer</type>
  600 + <length>-1</length>
  601 + <precision>-1</precision>
  602 + <replace>N</replace>
  603 + </field> <field> <name>iscanceled</name>
  604 + <rename>iscanceled</rename>
  605 + <type>Integer</type>
  606 + <length>-1</length>
  607 + <precision>-1</precision>
  608 + <replace>N</replace>
  609 + </field> <field> <name>sendtime_calcu</name>
  610 + <rename>sendtime_calcu</rename>
  611 + <type>String</type>
  612 + <length>-1</length>
  613 + <precision>-1</precision>
  614 + <replace>N</replace>
597 615 </field> </fields> <cluster_schema/>
598 616 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
599 617 <xloc>788</xloc>
... ... @@ -693,76 +711,8 @@
693 711 </step>
694 712  
695 713 <step>
696   - <name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</name>
697   - <type>ExcelInput</type>
698   - <description/>
699   - <distribute>Y</distribute>
700   - <custom_distribution/>
701   - <copies>1</copies>
702   - <partitioning>
703   - <method>none</method>
704   - <schema_name/>
705   - </partitioning>
706   - <header>Y</header>
707   - <noempty>Y</noempty>
708   - <stoponempty>N</stoponempty>
709   - <filefield/>
710   - <sheetfield/>
711   - <sheetrownumfield/>
712   - <rownumfield/>
713   - <sheetfield/>
714   - <filefield/>
715   - <limit>0</limit>
716   - <encoding/>
717   - <add_to_result_filenames>Y</add_to_result_filenames>
718   - <accept_filenames>N</accept_filenames>
719   - <accept_field/>
720   - <accept_stepname/>
721   - <file>
722   - <name/>
723   - <filemask/>
724   - <exclude_filemask/>
725   - <file_required>N</file_required>
726   - <include_subfolders>N</include_subfolders>
727   - </file>
728   - <fields>
729   - </fields>
730   - <sheets>
731   - <sheet>
732   - <name>&#x5de5;&#x4f5c;&#x8868;1</name>
733   - <startrow>0</startrow>
734   - <startcol>0</startcol>
735   - </sheet>
736   - </sheets>
737   - <strict_types>N</strict_types>
738   - <error_ignored>N</error_ignored>
739   - <error_line_skipped>N</error_line_skipped>
740   - <bad_line_files_destination_directory/>
741   - <bad_line_files_extension>warning</bad_line_files_extension>
742   - <error_line_files_destination_directory/>
743   - <error_line_files_extension>error</error_line_files_extension>
744   - <line_number_files_destination_directory/>
745   - <line_number_files_extension>line</line_number_files_extension>
746   - <shortFileFieldName/>
747   - <pathFieldName/>
748   - <hiddenFieldName/>
749   - <lastModificationTimeFieldName/>
750   - <uriNameFieldName/>
751   - <rootUriNameFieldName/>
752   - <extensionFieldName/>
753   - <sizeFieldName/>
754   - <spreadsheet_type>JXL</spreadsheet_type>
755   - <cluster_schema/>
756   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
757   - <xloc>112</xloc>
758   - <yloc>44</yloc>
759   - <draw>Y</draw>
760   - </GUI>
761   - </step>
762   -
763   - <step>
764   - <name>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;1</name>
765   - <type>DBLookup</type>
  714 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail</name>
  715 + <type>InsertUpdate</type>
766 716 <description/>
767 717 <distribute>Y</distribute>
768 718 <custom_distribution/>
... ... @@ -772,141 +722,118 @@
772 722 <schema_name/>
773 723 </partitioning>
774 724 <connection>bus_control_variable</connection>
775   - <cache>N</cache>
776   - <cache_load_all>N</cache_load_all>
777   - <cache_size>0</cache_size>
  725 + <commit>100</commit>
  726 + <update_bypassed>N</update_bypassed>
778 727 <lookup>
779 728 <schema/>
780   - <table>bsth_c_car_park</table>
781   - <orderby/>
782   - <fail_on_multiple>N</fail_on_multiple>
783   - <eat_row_on_failure>N</eat_row_on_failure>
  729 + <table>bsth_c_s_ttinfo_detail</table>
784 730 <key>
785   - <name>tccname_</name>
786   - <field>park_name</field>
  731 + <name>xlid</name>
  732 + <field>xl</field>
787 733 <condition>&#x3d;</condition>
788 734 <name2/>
789 735 </key>
790   - <value>
791   - <name>id</name>
792   - <rename>qdzid</rename>
793   - <default/>
794   - <type>Integer</type>
795   - </value>
796   - </lookup>
797   - <cluster_schema/>
798   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
799   - <xloc>755</xloc>
800   - <yloc>504</yloc>
801   - <draw>Y</draw>
802   - </GUI>
803   - </step>
804   -
805   - <step>
806   - <name>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;2</name>
807   - <type>DBLookup</type>
808   - <description/>
809   - <distribute>Y</distribute>
810   - <custom_distribution/>
811   - <copies>1</copies>
812   - <partitioning>
813   - <method>none</method>
814   - <schema_name/>
815   - </partitioning>
816   - <connection>bus_control_variable</connection>
817   - <cache>N</cache>
818   - <cache_load_all>N</cache_load_all>
819   - <cache_size>0</cache_size>
820   - <lookup>
821   - <schema/>
822   - <table>bsth_c_car_park</table>
823   - <orderby/>
824   - <fail_on_multiple>N</fail_on_multiple>
825   - <eat_row_on_failure>N</eat_row_on_failure>
826 736 <key>
827   - <name>tccname_</name>
828   - <field>park_name</field>
  737 + <name>ttid</name>
  738 + <field>ttinfo</field>
829 739 <condition>&#x3d;</condition>
830 740 <name2/>
831 741 </key>
832   - <value>
833   - <name>id</name>
834   - <rename>zdzid</rename>
835   - <default/>
836   - <type>Integer</type>
837   - </value>
838   - </lookup>
839   - <cluster_schema/>
840   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
841   - <xloc>887</xloc>
842   - <yloc>608</yloc>
843   - <draw>Y</draw>
844   - </GUI>
845   - </step>
846   -
847   - <step>
848   - <name>&#x67e5;&#x627e;&#x51fa;&#x573a;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</name>
849   - <type>DBLookup</type>
850   - <description/>
851   - <distribute>Y</distribute>
852   - <custom_distribution/>
853   - <copies>1</copies>
854   - <partitioning>
855   - <method>none</method>
856   - <schema_name/>
857   - </partitioning>
858   - <connection>bus_control_variable</connection>
859   - <cache>N</cache>
860   - <cache_load_all>N</cache_load_all>
861   - <cache_size>0</cache_size>
862   - <lookup>
863   - <schema/>
864   - <table>bsth_c_stationroute</table>
865   - <orderby/>
866   - <fail_on_multiple>N</fail_on_multiple>
867   - <eat_row_on_failure>N</eat_row_on_failure>
868 742 <key>
869   - <name>xlid</name>
870   - <field>line</field>
  743 + <name>lpid</name>
  744 + <field>lp</field>
871 745 <condition>&#x3d;</condition>
872 746 <name2/>
873 747 </key>
874 748 <key>
875   - <name>zdzname</name>
876   - <field>station_name</field>
  749 + <name>fcno</name>
  750 + <field>fcno</field>
877 751 <condition>&#x3d;</condition>
878 752 <name2/>
879 753 </key>
880 754 <key>
881   - <name>endZdtype</name>
882   - <field>station_mark</field>
  755 + <name>bcs</name>
  756 + <field>bcs</field>
883 757 <condition>&#x3d;</condition>
884 758 <name2/>
885 759 </key>
886 760 <value>
887   - <name>station</name>
  761 + <name>lp</name>
  762 + <rename>lpid</rename>
  763 + <update>Y</update>
  764 + </value>
  765 + <value>
  766 + <name>bc_type</name>
  767 + <rename>bctype_code</rename>
  768 + <update>Y</update>
  769 + </value>
  770 + <value>
  771 + <name>bcs</name>
  772 + <rename>bcs</rename>
  773 + <update>Y</update>
  774 + </value>
  775 + <value>
  776 + <name>bcsj</name>
  777 + <rename>bcsj</rename>
  778 + <update>Y</update>
  779 + </value>
  780 + <value>
  781 + <name>fcno</name>
  782 + <rename>fcno</rename>
  783 + <update>Y</update>
  784 + </value>
  785 + <value>
  786 + <name>jhlc</name>
  787 + <rename>jhlc</rename>
  788 + <update>Y</update>
  789 + </value>
  790 + <value>
  791 + <name>fcsj</name>
  792 + <rename>sendtime_calcu</rename>
  793 + <update>Y</update>
  794 + </value>
  795 + <value>
  796 + <name>ttinfo</name>
  797 + <rename>ttid</rename>
  798 + <update>Y</update>
  799 + </value>
  800 + <value>
  801 + <name>xl</name>
  802 + <rename>xlid</rename>
  803 + <update>Y</update>
  804 + </value>
  805 + <value>
  806 + <name>qdz</name>
  807 + <rename>qdzid</rename>
  808 + <update>Y</update>
  809 + </value>
  810 + <value>
  811 + <name>zdz</name>
888 812 <rename>zdzid</rename>
889   - <default/>
890   - <type>Integer</type>
  813 + <update>Y</update>
891 814 </value>
892 815 <value>
893   - <name>directions</name>
  816 + <name>xl_dir</name>
894 817 <rename>sxx</rename>
895   - <default/>
896   - <type>Integer</type>
  818 + <update>Y</update>
  819 + </value>
  820 + <value>
  821 + <name>isfb</name>
  822 + <rename>isfb</rename>
  823 + <update>Y</update>
897 824 </value>
898 825 </lookup>
899 826 <cluster_schema/>
900 827 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
901   - <xloc>329</xloc>
902   - <yloc>505</yloc>
  828 + <xloc>143</xloc>
  829 + <yloc>860</yloc>
903 830 <draw>Y</draw>
904 831 </GUI>
905 832 </step>
906 833  
907 834 <step>
908   - <name>&#x67e5;&#x627e;&#x65f6;&#x523b;&#x8868;&#x57fa;&#x7840;&#x4fe1;&#x606f;&#x5173;&#x8054;</name>
909   - <type>DBLookup</type>
  835 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail 2</name>
  836 + <type>InsertUpdate</type>
910 837 <description/>
911 838 <distribute>Y</distribute>
912 839 <custom_distribution/>
... ... @@ -916,15 +843,11 @@
916 843 <schema_name/>
917 844 </partitioning>
918 845 <connection>bus_control_variable</connection>
919   - <cache>N</cache>
920   - <cache_load_all>N</cache_load_all>
921   - <cache_size>0</cache_size>
  846 + <commit>100</commit>
  847 + <update_bypassed>N</update_bypassed>
922 848 <lookup>
923 849 <schema/>
924   - <table>bsth_c_s_ttinfo</table>
925   - <orderby/>
926   - <fail_on_multiple>N</fail_on_multiple>
927   - <eat_row_on_failure>N</eat_row_on_failure>
  850 + <table>bsth_c_s_ttinfo_detail</table>
928 851 <key>
929 852 <name>xlid</name>
930 853 <field>xl</field>
... ... @@ -932,89 +855,106 @@
932 855 <name2/>
933 856 </key>
934 857 <key>
935   - <name>ttinfoname_</name>
936   - <field>name</field>
  858 + <name>ttid</name>
  859 + <field>ttinfo</field>
937 860 <condition>&#x3d;</condition>
938 861 <name2/>
939 862 </key>
940   - <value>
941   - <name>id</name>
942   - <rename>ttid</rename>
943   - <default/>
944   - <type>Integer</type>
945   - </value>
946   - </lookup>
947   - <cluster_schema/>
948   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
949   - <xloc>1011</xloc>
950   - <yloc>134</yloc>
951   - <draw>Y</draw>
952   - </GUI>
953   - </step>
954   -
955   - <step>
956   - <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x4e0a;&#x4e0b;&#x884c;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>
957   - <type>DBLookup</type>
958   - <description/>
959   - <distribute>Y</distribute>
960   - <custom_distribution/>
961   - <copies>1</copies>
962   - <partitioning>
963   - <method>none</method>
964   - <schema_name/>
965   - </partitioning>
966   - <connection>bus_control_variable</connection>
967   - <cache>N</cache>
968   - <cache_load_all>N</cache_load_all>
969   - <cache_size>0</cache_size>
970   - <lookup>
971   - <schema/>
972   - <table>bsth_c_line_information</table>
973   - <orderby/>
974   - <fail_on_multiple>N</fail_on_multiple>
975   - <eat_row_on_failure>N</eat_row_on_failure>
976 863 <key>
977   - <name>xlid</name>
978   - <field>line</field>
  864 + <name>lpid</name>
  865 + <field>lp</field>
  866 + <condition>&#x3d;</condition>
  867 + <name2/>
  868 + </key>
  869 + <key>
  870 + <name>fcno</name>
  871 + <field>fcno</field>
  872 + <condition>&#x3d;</condition>
  873 + <name2/>
  874 + </key>
  875 + <key>
  876 + <name>bcs</name>
  877 + <field>bcs</field>
979 878 <condition>&#x3d;</condition>
980 879 <name2/>
981 880 </key>
982 881 <value>
983   - <name>up_mileage</name>
984   - <rename>up_mileage</rename>
985   - <default/>
986   - <type>Number</type>
  882 + <name>tcc</name>
  883 + <rename>qdzid</rename>
  884 + <update>Y</update>
987 885 </value>
988 886 <value>
989   - <name>down_mileage</name>
990   - <rename>down_mileage</rename>
991   - <default/>
992   - <type>Number</type>
  887 + <name>zdz</name>
  888 + <rename>zdzid</rename>
  889 + <update>Y</update>
993 890 </value>
994 891 <value>
995   - <name>up_travel_time</name>
996   - <rename>up_travel_time</rename>
997   - <default/>
998   - <type>Number</type>
  892 + <name>xl</name>
  893 + <rename>xlid</rename>
  894 + <update>Y</update>
999 895 </value>
1000 896 <value>
1001   - <name>down_travel_time</name>
1002   - <rename>down_travel_time</rename>
1003   - <default/>
1004   - <type>Number</type>
  897 + <name>ttinfo</name>
  898 + <rename>ttid</rename>
  899 + <update>Y</update>
  900 + </value>
  901 + <value>
  902 + <name>xl_dir</name>
  903 + <rename>sxx</rename>
  904 + <update>Y</update>
  905 + </value>
  906 + <value>
  907 + <name>lp</name>
  908 + <rename>lpid</rename>
  909 + <update>Y</update>
  910 + </value>
  911 + <value>
  912 + <name>jhlc</name>
  913 + <rename>out_mileage</rename>
  914 + <update>Y</update>
  915 + </value>
  916 + <value>
  917 + <name>fcsj</name>
  918 + <rename>sendtime_calcu</rename>
  919 + <update>Y</update>
  920 + </value>
  921 + <value>
  922 + <name>bcsj</name>
  923 + <rename>out_time</rename>
  924 + <update>Y</update>
  925 + </value>
  926 + <value>
  927 + <name>bcs</name>
  928 + <rename>bcs</rename>
  929 + <update>Y</update>
  930 + </value>
  931 + <value>
  932 + <name>fcno</name>
  933 + <rename>fcno</rename>
  934 + <update>Y</update>
  935 + </value>
  936 + <value>
  937 + <name>bc_type</name>
  938 + <rename>bctype_code</rename>
  939 + <update>Y</update>
  940 + </value>
  941 + <value>
  942 + <name>isfb</name>
  943 + <rename>isfb</rename>
  944 + <update>Y</update>
1005 945 </value>
1006 946 </lookup>
1007 947 <cluster_schema/>
1008 948 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1009   - <xloc>149</xloc>
1010   - <yloc>581</yloc>
  949 + <xloc>340</xloc>
  950 + <yloc>890</yloc>
1011 951 <draw>Y</draw>
1012 952 </GUI>
1013 953 </step>
1014 954  
1015 955 <step>
1016   - <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x5173;&#x8054;</name>
1017   - <type>DBLookup</type>
  956 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail 3</name>
  957 + <type>InsertUpdate</type>
1018 958 <description/>
1019 959 <distribute>Y</distribute>
1020 960 <custom_distribution/>
... ... @@ -1024,39 +964,118 @@
1024 964 <schema_name/>
1025 965 </partitioning>
1026 966 <connection>bus_control_variable</connection>
1027   - <cache>N</cache>
1028   - <cache_load_all>N</cache_load_all>
1029   - <cache_size>0</cache_size>
  967 + <commit>100</commit>
  968 + <update_bypassed>N</update_bypassed>
1030 969 <lookup>
1031 970 <schema/>
1032   - <table>bsth_c_line</table>
1033   - <orderby/>
1034   - <fail_on_multiple>N</fail_on_multiple>
1035   - <eat_row_on_failure>N</eat_row_on_failure>
  971 + <table>bsth_c_s_ttinfo_detail</table>
1036 972 <key>
1037   - <name>xlname_</name>
1038   - <field>name</field>
  973 + <name>xlid</name>
  974 + <field>xl</field>
  975 + <condition>&#x3d;</condition>
  976 + <name2/>
  977 + </key>
  978 + <key>
  979 + <name>ttid</name>
  980 + <field>ttinfo</field>
  981 + <condition>&#x3d;</condition>
  982 + <name2/>
  983 + </key>
  984 + <key>
  985 + <name>lpid</name>
  986 + <field>lp</field>
  987 + <condition>&#x3d;</condition>
  988 + <name2/>
  989 + </key>
  990 + <key>
  991 + <name>fcno</name>
  992 + <field>fcno</field>
  993 + <condition>&#x3d;</condition>
  994 + <name2/>
  995 + </key>
  996 + <key>
  997 + <name>bcs</name>
  998 + <field>bcs</field>
1039 999 <condition>&#x3d;</condition>
1040 1000 <name2/>
1041 1001 </key>
1042 1002 <value>
1043   - <name>id</name>
  1003 + <name>fcno</name>
  1004 + <rename>fcno</rename>
  1005 + <update>Y</update>
  1006 + </value>
  1007 + <value>
  1008 + <name>bcs</name>
  1009 + <rename>bcs</rename>
  1010 + <update>Y</update>
  1011 + </value>
  1012 + <value>
  1013 + <name>xl</name>
1044 1014 <rename>xlid</rename>
1045   - <default/>
1046   - <type>Integer</type>
  1015 + <update>Y</update>
  1016 + </value>
  1017 + <value>
  1018 + <name>ttinfo</name>
  1019 + <rename>ttid</rename>
  1020 + <update>Y</update>
  1021 + </value>
  1022 + <value>
  1023 + <name>lp</name>
  1024 + <rename>lpid</rename>
  1025 + <update>Y</update>
  1026 + </value>
  1027 + <value>
  1028 + <name>bc_type</name>
  1029 + <rename>bctype_code</rename>
  1030 + <update>Y</update>
  1031 + </value>
  1032 + <value>
  1033 + <name>bcsj</name>
  1034 + <rename>parade_time</rename>
  1035 + <update>Y</update>
  1036 + </value>
  1037 + <value>
  1038 + <name>jhlc</name>
  1039 + <rename>parade_mileage</rename>
  1040 + <update>Y</update>
  1041 + </value>
  1042 + <value>
  1043 + <name>fcsj</name>
  1044 + <rename>sendtime_calcu</rename>
  1045 + <update>Y</update>
  1046 + </value>
  1047 + <value>
  1048 + <name>xl_dir</name>
  1049 + <rename>sxx</rename>
  1050 + <update>Y</update>
  1051 + </value>
  1052 + <value>
  1053 + <name>qdz</name>
  1054 + <rename>qdzid</rename>
  1055 + <update>Y</update>
  1056 + </value>
  1057 + <value>
  1058 + <name>tcc</name>
  1059 + <rename>zdzid</rename>
  1060 + <update>Y</update>
  1061 + </value>
  1062 + <value>
  1063 + <name>isfb</name>
  1064 + <rename>isfb</rename>
  1065 + <update>Y</update>
1047 1066 </value>
1048 1067 </lookup>
1049 1068 <cluster_schema/>
1050 1069 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1051   - <xloc>1007</xloc>
1052   - <yloc>43</yloc>
  1070 + <xloc>770</xloc>
  1071 + <yloc>923</yloc>
1053 1072 <draw>Y</draw>
1054 1073 </GUI>
1055 1074 </step>
1056 1075  
1057 1076 <step>
1058   - <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x51fa;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>
1059   - <type>DBLookup</type>
  1077 + <name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</name>
  1078 + <type>ExcelInput</type>
1060 1079 <description/>
1061 1080 <distribute>Y</distribute>
1062 1081 <custom_distribution/>
... ... @@ -1065,45 +1084,65 @@
1065 1084 <method>none</method>
1066 1085 <schema_name/>
1067 1086 </partitioning>
1068   - <connection>bus_control_variable</connection>
1069   - <cache>N</cache>
1070   - <cache_load_all>N</cache_load_all>
1071   - <cache_size>0</cache_size>
1072   - <lookup>
1073   - <schema/>
1074   - <table>bsth_c_line_information</table>
1075   - <orderby/>
1076   - <fail_on_multiple>N</fail_on_multiple>
1077   - <eat_row_on_failure>N</eat_row_on_failure>
1078   - <key>
1079   - <name>xlid</name>
1080   - <field>line</field>
1081   - <condition>&#x3d;</condition>
1082   - <name2/>
1083   - </key>
1084   - <value>
1085   - <name>out_mileage</name>
1086   - <rename>out_mileage</rename>
1087   - <default/>
1088   - <type>Number</type>
1089   - </value>
1090   - <value>
1091   - <name>out_time</name>
1092   - <rename>out_time</rename>
1093   - <default/>
1094   - <type>Number</type>
1095   - </value>
1096   - </lookup>
  1087 + <header>Y</header>
  1088 + <noempty>Y</noempty>
  1089 + <stoponempty>N</stoponempty>
  1090 + <filefield/>
  1091 + <sheetfield/>
  1092 + <sheetrownumfield/>
  1093 + <rownumfield/>
  1094 + <sheetfield/>
  1095 + <filefield/>
  1096 + <limit>0</limit>
  1097 + <encoding/>
  1098 + <add_to_result_filenames>Y</add_to_result_filenames>
  1099 + <accept_filenames>N</accept_filenames>
  1100 + <accept_field/>
  1101 + <accept_stepname/>
  1102 + <file>
  1103 + <name/>
  1104 + <filemask/>
  1105 + <exclude_filemask/>
  1106 + <file_required>N</file_required>
  1107 + <include_subfolders>N</include_subfolders>
  1108 + </file>
  1109 + <fields>
  1110 + </fields>
  1111 + <sheets>
  1112 + <sheet>
  1113 + <name>&#x5de5;&#x4f5c;&#x8868;1</name>
  1114 + <startrow>0</startrow>
  1115 + <startcol>0</startcol>
  1116 + </sheet>
  1117 + </sheets>
  1118 + <strict_types>N</strict_types>
  1119 + <error_ignored>N</error_ignored>
  1120 + <error_line_skipped>N</error_line_skipped>
  1121 + <bad_line_files_destination_directory/>
  1122 + <bad_line_files_extension>warning</bad_line_files_extension>
  1123 + <error_line_files_destination_directory/>
  1124 + <error_line_files_extension>error</error_line_files_extension>
  1125 + <line_number_files_destination_directory/>
  1126 + <line_number_files_extension>line</line_number_files_extension>
  1127 + <shortFileFieldName/>
  1128 + <pathFieldName/>
  1129 + <hiddenFieldName/>
  1130 + <lastModificationTimeFieldName/>
  1131 + <uriNameFieldName/>
  1132 + <rootUriNameFieldName/>
  1133 + <extensionFieldName/>
  1134 + <sizeFieldName/>
  1135 + <spreadsheet_type>JXL</spreadsheet_type>
1097 1136 <cluster_schema/>
1098 1137 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1099   - <xloc>335</xloc>
1100   - <yloc>763</yloc>
  1138 + <xloc>112</xloc>
  1139 + <yloc>44</yloc>
1101 1140 <draw>Y</draw>
1102 1141 </GUI>
1103 1142 </step>
1104 1143  
1105 1144 <step>
1106   - <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x8fdb;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>
  1145 + <name>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;1</name>
1107 1146 <type>DBLookup</type>
1108 1147 <description/>
1109 1148 <distribute>Y</distribute>
... ... @@ -1119,39 +1158,33 @@
1119 1158 <cache_size>0</cache_size>
1120 1159 <lookup>
1121 1160 <schema/>
1122   - <table>bsth_c_line_information</table>
  1161 + <table>bsth_c_car_park</table>
1123 1162 <orderby/>
1124 1163 <fail_on_multiple>N</fail_on_multiple>
1125 1164 <eat_row_on_failure>N</eat_row_on_failure>
1126 1165 <key>
1127   - <name>xlid</name>
1128   - <field>line</field>
  1166 + <name>tccname_</name>
  1167 + <field>park_name</field>
1129 1168 <condition>&#x3d;</condition>
1130 1169 <name2/>
1131 1170 </key>
1132 1171 <value>
1133   - <name>parade_mileage</name>
1134   - <rename>parade_mileage</rename>
1135   - <default/>
1136   - <type>Number</type>
1137   - </value>
1138   - <value>
1139   - <name>parade_time</name>
1140   - <rename>parade_time</rename>
  1172 + <name>id</name>
  1173 + <rename>qdzid</rename>
1141 1174 <default/>
1142   - <type>Number</type>
  1175 + <type>Integer</type>
1143 1176 </value>
1144 1177 </lookup>
1145 1178 <cluster_schema/>
1146 1179 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1147   - <xloc>550</xloc>
1148   - <yloc>920</yloc>
  1180 + <xloc>755</xloc>
  1181 + <yloc>504</yloc>
1149 1182 <draw>Y</draw>
1150 1183 </GUI>
1151 1184 </step>
1152 1185  
1153 1186 <step>
1154   - <name>&#x67e5;&#x627e;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;</name>
  1187 + <name>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;2</name>
1155 1188 <type>DBLookup</type>
1156 1189 <description/>
1157 1190 <distribute>Y</distribute>
... ... @@ -1167,36 +1200,18 @@
1167 1200 <cache_size>0</cache_size>
1168 1201 <lookup>
1169 1202 <schema/>
1170   - <table>bsth_c_stationroute</table>
  1203 + <table>bsth_c_car_park</table>
1171 1204 <orderby/>
1172 1205 <fail_on_multiple>N</fail_on_multiple>
1173 1206 <eat_row_on_failure>N</eat_row_on_failure>
1174 1207 <key>
1175   - <name>xlid</name>
1176   - <field>line</field>
1177   - <condition>&#x3d;</condition>
1178   - <name2/>
1179   - </key>
1180   - <key>
1181   - <name>sxx</name>
1182   - <field>directions</field>
1183   - <condition>&#x3d;</condition>
1184   - <name2/>
1185   - </key>
1186   - <key>
1187   - <name>endZdtype</name>
1188   - <field>station_mark</field>
  1208 + <name>tccname_</name>
  1209 + <field>park_name</field>
1189 1210 <condition>&#x3d;</condition>
1190 1211 <name2/>
1191 1212 </key>
1192 1213 <value>
1193   - <name>station_name</name>
1194   - <rename>zdzname</rename>
1195   - <default/>
1196   - <type>String</type>
1197   - </value>
1198   - <value>
1199   - <name>station</name>
  1214 + <name>id</name>
1200 1215 <rename>zdzid</rename>
1201 1216 <default/>
1202 1217 <type>Integer</type>
... ... @@ -1204,14 +1219,14 @@
1204 1219 </lookup>
1205 1220 <cluster_schema/>
1206 1221 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1207   - <xloc>280</xloc>
1208   - <yloc>404</yloc>
  1222 + <xloc>887</xloc>
  1223 + <yloc>608</yloc>
1209 1224 <draw>Y</draw>
1210 1225 </GUI>
1211 1226 </step>
1212 1227  
1213 1228 <step>
1214   - <name>&#x67e5;&#x627e;&#x8d77;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</name>
  1229 + <name>&#x67e5;&#x627e;&#x51fa;&#x573a;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</name>
1215 1230 <type>DBLookup</type>
1216 1231 <description/>
1217 1232 <distribute>Y</distribute>
... ... @@ -1238,20 +1253,20 @@
1238 1253 <name2/>
1239 1254 </key>
1240 1255 <key>
1241   - <name>qdzname</name>
  1256 + <name>zdzname</name>
1242 1257 <field>station_name</field>
1243 1258 <condition>&#x3d;</condition>
1244 1259 <name2/>
1245 1260 </key>
1246 1261 <key>
1247   - <name>sendZdtype</name>
  1262 + <name>endZdtype</name>
1248 1263 <field>station_mark</field>
1249 1264 <condition>&#x3d;</condition>
1250 1265 <name2/>
1251 1266 </key>
1252 1267 <value>
1253 1268 <name>station</name>
1254   - <rename>qdzid</rename>
  1269 + <rename>zdzid</rename>
1255 1270 <default/>
1256 1271 <type>Integer</type>
1257 1272 </value>
... ... @@ -1264,14 +1279,14 @@
1264 1279 </lookup>
1265 1280 <cluster_schema/>
1266 1281 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1267   - <xloc>430</xloc>
1268   - <yloc>403</yloc>
  1282 + <xloc>329</xloc>
  1283 + <yloc>505</yloc>
1269 1284 <draw>Y</draw>
1270 1285 </GUI>
1271 1286 </step>
1272 1287  
1273 1288 <step>
1274   - <name>&#x67e5;&#x627e;&#x8def;&#x724c;&#x5173;&#x8054;</name>
  1289 + <name>&#x67e5;&#x627e;&#x65f6;&#x523b;&#x8868;&#x57fa;&#x7840;&#x4fe1;&#x606f;&#x5173;&#x8054;</name>
1275 1290 <type>DBLookup</type>
1276 1291 <description/>
1277 1292 <distribute>Y</distribute>
... ... @@ -1287,7 +1302,7 @@
1287 1302 <cache_size>0</cache_size>
1288 1303 <lookup>
1289 1304 <schema/>
1290   - <table>bsth_c_s_gbi</table>
  1305 + <table>bsth_c_s_ttinfo</table>
1291 1306 <orderby/>
1292 1307 <fail_on_multiple>N</fail_on_multiple>
1293 1308 <eat_row_on_failure>N</eat_row_on_failure>
... ... @@ -1298,28 +1313,34 @@
1298 1313 <name2/>
1299 1314 </key>
1300 1315 <key>
1301   - <name>lp</name>
1302   - <field>lp_name</field>
  1316 + <name>ttinfoname_</name>
  1317 + <field>name</field>
  1318 + <condition>&#x3d;</condition>
  1319 + <name2/>
  1320 + </key>
  1321 + <key>
  1322 + <name>iscanceled</name>
  1323 + <field>is_cancel</field>
1303 1324 <condition>&#x3d;</condition>
1304 1325 <name2/>
1305 1326 </key>
1306 1327 <value>
1307 1328 <name>id</name>
1308   - <rename>lpid</rename>
  1329 + <rename>ttid</rename>
1309 1330 <default/>
1310 1331 <type>Integer</type>
1311 1332 </value>
1312 1333 </lookup>
1313 1334 <cluster_schema/>
1314 1335 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1315   - <xloc>1013</xloc>
1316   - <yloc>265</yloc>
  1336 + <xloc>1011</xloc>
  1337 + <yloc>134</yloc>
1317 1338 <draw>Y</draw>
1318 1339 </GUI>
1319 1340 </step>
1320 1341  
1321 1342 <step>
1322   - <name>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ebf;&#x8def;&#x65b9;&#x5411;</name>
  1343 + <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x4e0a;&#x4e0b;&#x884c;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>
1323 1344 <type>DBLookup</type>
1324 1345 <description/>
1325 1346 <distribute>Y</distribute>
... ... @@ -1335,7 +1356,7 @@
1335 1356 <cache_size>0</cache_size>
1336 1357 <lookup>
1337 1358 <schema/>
1338   - <table>bsth_c_stationroute</table>
  1359 + <table>bsth_c_line_information</table>
1339 1360 <orderby/>
1340 1361 <fail_on_multiple>N</fail_on_multiple>
1341 1362 <eat_row_on_failure>N</eat_row_on_failure>
... ... @@ -1345,35 +1366,41 @@
1345 1366 <condition>&#x3d;</condition>
1346 1367 <name2/>
1347 1368 </key>
1348   - <key>
1349   - <name>startZdtype_calcu</name>
1350   - <field>station_mark</field>
1351   - <condition>&#x3d;</condition>
1352   - <name2/>
1353   - </key>
1354   - <key>
1355   - <name>qdzname_calcu</name>
1356   - <field>station_name</field>
1357   - <condition>&#x3d;</condition>
1358   - <name2/>
1359   - </key>
1360 1369 <value>
1361   - <name>directions</name>
1362   - <rename>sxx</rename>
  1370 + <name>up_mileage</name>
  1371 + <rename>up_mileage</rename>
1363 1372 <default/>
1364   - <type>String</type>
  1373 + <type>Number</type>
  1374 + </value>
  1375 + <value>
  1376 + <name>down_mileage</name>
  1377 + <rename>down_mileage</rename>
  1378 + <default/>
  1379 + <type>Number</type>
  1380 + </value>
  1381 + <value>
  1382 + <name>up_travel_time</name>
  1383 + <rename>up_travel_time</rename>
  1384 + <default/>
  1385 + <type>Number</type>
  1386 + </value>
  1387 + <value>
  1388 + <name>down_travel_time</name>
  1389 + <rename>down_travel_time</rename>
  1390 + <default/>
  1391 + <type>Number</type>
1365 1392 </value>
1366 1393 </lookup>
1367 1394 <cluster_schema/>
1368 1395 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1369   - <xloc>548</xloc>
1370   - <yloc>610</yloc>
  1396 + <xloc>149</xloc>
  1397 + <yloc>581</yloc>
1371 1398 <draw>Y</draw>
1372 1399 </GUI>
1373 1400 </step>
1374 1401  
1375 1402 <step>
1376   - <name>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ec8;&#x70b9;&#x7ad9;&#xff0c;&#x5e76;&#x4f5c;&#x4e3a;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;</name>
  1403 + <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x5173;&#x8054;</name>
1377 1404 <type>DBLookup</type>
1378 1405 <description/>
1379 1406 <distribute>Y</distribute>
... ... @@ -1389,46 +1416,34 @@
1389 1416 <cache_size>0</cache_size>
1390 1417 <lookup>
1391 1418 <schema/>
1392   - <table>bsth_c_stationroute</table>
  1419 + <table>bsth_c_line</table>
1393 1420 <orderby/>
1394 1421 <fail_on_multiple>N</fail_on_multiple>
1395 1422 <eat_row_on_failure>N</eat_row_on_failure>
1396 1423 <key>
1397   - <name>xlid</name>
1398   - <field>line</field>
1399   - <condition>&#x3d;</condition>
1400   - <name2/>
1401   - </key>
1402   - <key>
1403   - <name>endZdtype_calcu</name>
1404   - <field>station_mark</field>
1405   - <condition>&#x3d;</condition>
1406   - <name2/>
1407   - </key>
1408   - <key>
1409   - <name>sxx</name>
1410   - <field>directions</field>
  1424 + <name>xlname_</name>
  1425 + <field>name</field>
1411 1426 <condition>&#x3d;</condition>
1412 1427 <name2/>
1413 1428 </key>
1414 1429 <value>
1415   - <name>station</name>
1416   - <rename>qdzid</rename>
  1430 + <name>id</name>
  1431 + <rename>xlid</rename>
1417 1432 <default/>
1418 1433 <type>Integer</type>
1419 1434 </value>
1420 1435 </lookup>
1421 1436 <cluster_schema/>
1422 1437 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1423   - <xloc>550</xloc>
1424   - <yloc>701</yloc>
  1438 + <xloc>1007</xloc>
  1439 + <yloc>43</yloc>
1425 1440 <draw>Y</draw>
1426 1441 </GUI>
1427 1442 </step>
1428 1443  
1429 1444 <step>
1430   - <name>&#x6b63;&#x5e38;&#x73ed;&#x6b21;_&#x5904;&#x7406;&#x6570;&#x636e;</name>
1431   - <type>ScriptValueMod</type>
  1445 + <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x51fa;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>
  1446 + <type>DBLookup</type>
1432 1447 <description/>
1433 1448 <distribute>Y</distribute>
1434 1449 <custom_distribution/>
... ... @@ -1437,34 +1452,46 @@
1437 1452 <method>none</method>
1438 1453 <schema_name/>
1439 1454 </partitioning>
1440   - <compatible>N</compatible>
1441   - <optimizationLevel>9</optimizationLevel>
1442   - <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
1443   - <jsScript_name>Script 1</jsScript_name>
1444   - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x6dfb;&#x52a0;&#x7ad9;&#x70b9;&#x6807;&#x8bc6;&#xa;var sendZdtype &#x3d; &#x27;B&#x27;&#x3b;&#xa;var endZdtype &#x3d; &#x27;E&#x27;&#x3b;&#xa;</jsScript_script>
1445   - </jsScript> </jsScripts> <fields> <field> <name>sendZdtype</name>
1446   - <rename>sendZdtype</rename>
1447   - <type>String</type>
1448   - <length>-1</length>
1449   - <precision>-1</precision>
1450   - <replace>N</replace>
1451   - </field> <field> <name>endZdtype</name>
1452   - <rename>endZdtype</rename>
1453   - <type>String</type>
1454   - <length>-1</length>
1455   - <precision>-1</precision>
1456   - <replace>N</replace>
1457   - </field> </fields> <cluster_schema/>
  1455 + <connection>bus_control_variable</connection>
  1456 + <cache>N</cache>
  1457 + <cache_load_all>N</cache_load_all>
  1458 + <cache_size>0</cache_size>
  1459 + <lookup>
  1460 + <schema/>
  1461 + <table>bsth_c_line_information</table>
  1462 + <orderby/>
  1463 + <fail_on_multiple>N</fail_on_multiple>
  1464 + <eat_row_on_failure>N</eat_row_on_failure>
  1465 + <key>
  1466 + <name>xlid</name>
  1467 + <field>line</field>
  1468 + <condition>&#x3d;</condition>
  1469 + <name2/>
  1470 + </key>
  1471 + <value>
  1472 + <name>out_mileage</name>
  1473 + <rename>out_mileage</rename>
  1474 + <default/>
  1475 + <type>Number</type>
  1476 + </value>
  1477 + <value>
  1478 + <name>out_time</name>
  1479 + <rename>out_time</rename>
  1480 + <default/>
  1481 + <type>Number</type>
  1482 + </value>
  1483 + </lookup>
  1484 + <cluster_schema/>
1458 1485 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1459   - <xloc>588</xloc>
1460   - <yloc>403</yloc>
  1486 + <xloc>335</xloc>
  1487 + <yloc>763</yloc>
1461 1488 <draw>Y</draw>
1462 1489 </GUI>
1463 1490 </step>
1464 1491  
1465 1492 <step>
1466   - <name>&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x6570;&#x636e;</name>
1467   - <type>Dummy</type>
  1493 + <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x8fdb;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>
  1494 + <type>DBLookup</type>
1468 1495 <description/>
1469 1496 <distribute>Y</distribute>
1470 1497 <custom_distribution/>
... ... @@ -1473,17 +1500,46 @@
1473 1500 <method>none</method>
1474 1501 <schema_name/>
1475 1502 </partitioning>
  1503 + <connection>bus_control_variable</connection>
  1504 + <cache>N</cache>
  1505 + <cache_load_all>N</cache_load_all>
  1506 + <cache_size>0</cache_size>
  1507 + <lookup>
  1508 + <schema/>
  1509 + <table>bsth_c_line_information</table>
  1510 + <orderby/>
  1511 + <fail_on_multiple>N</fail_on_multiple>
  1512 + <eat_row_on_failure>N</eat_row_on_failure>
  1513 + <key>
  1514 + <name>xlid</name>
  1515 + <field>line</field>
  1516 + <condition>&#x3d;</condition>
  1517 + <name2/>
  1518 + </key>
  1519 + <value>
  1520 + <name>parade_mileage</name>
  1521 + <rename>parade_mileage</rename>
  1522 + <default/>
  1523 + <type>Number</type>
  1524 + </value>
  1525 + <value>
  1526 + <name>parade_time</name>
  1527 + <rename>parade_time</rename>
  1528 + <default/>
  1529 + <type>Number</type>
  1530 + </value>
  1531 + </lookup>
1476 1532 <cluster_schema/>
1477 1533 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1478   - <xloc>725</xloc>
1479   - <yloc>404</yloc>
  1534 + <xloc>550</xloc>
  1535 + <yloc>920</yloc>
1480 1536 <draw>Y</draw>
1481 1537 </GUI>
1482 1538 </step>
1483 1539  
1484 1540 <step>
1485   - <name>&#x6dfb;&#x52a0;&#x53d1;&#x8f66;&#x987a;&#x5e8f;&#x53f7;</name>
1486   - <type>GroupBy</type>
  1541 + <name>&#x67e5;&#x627e;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;</name>
  1542 + <type>DBLookup</type>
1487 1543 <description/>
1488 1544 <distribute>Y</distribute>
1489 1545 <custom_distribution/>
... ... @@ -1492,32 +1548,58 @@
1492 1548 <method>none</method>
1493 1549 <schema_name/>
1494 1550 </partitioning>
1495   - <all_rows>Y</all_rows>
1496   - <ignore_aggregate>N</ignore_aggregate>
1497   - <field_ignore/>
1498   - <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
1499   - <prefix>grp</prefix>
1500   - <add_linenr>Y</add_linenr>
1501   - <linenr_fieldname>fcno</linenr_fieldname>
1502   - <give_back_row>N</give_back_row>
1503   - <group>
1504   - <field>
1505   - <name>lp</name>
1506   - </field>
1507   - </group>
1508   - <fields>
1509   - </fields>
  1551 + <connection>bus_control_variable</connection>
  1552 + <cache>N</cache>
  1553 + <cache_load_all>N</cache_load_all>
  1554 + <cache_size>0</cache_size>
  1555 + <lookup>
  1556 + <schema/>
  1557 + <table>bsth_c_stationroute</table>
  1558 + <orderby/>
  1559 + <fail_on_multiple>N</fail_on_multiple>
  1560 + <eat_row_on_failure>N</eat_row_on_failure>
  1561 + <key>
  1562 + <name>xlid</name>
  1563 + <field>line</field>
  1564 + <condition>&#x3d;</condition>
  1565 + <name2/>
  1566 + </key>
  1567 + <key>
  1568 + <name>sxx</name>
  1569 + <field>directions</field>
  1570 + <condition>&#x3d;</condition>
  1571 + <name2/>
  1572 + </key>
  1573 + <key>
  1574 + <name>endZdtype</name>
  1575 + <field>station_mark</field>
  1576 + <condition>&#x3d;</condition>
  1577 + <name2/>
  1578 + </key>
  1579 + <value>
  1580 + <name>station_name</name>
  1581 + <rename>zdzname</rename>
  1582 + <default/>
  1583 + <type>String</type>
  1584 + </value>
  1585 + <value>
  1586 + <name>station</name>
  1587 + <rename>zdzid</rename>
  1588 + <default/>
  1589 + <type>Integer</type>
  1590 + </value>
  1591 + </lookup>
1510 1592 <cluster_schema/>
1511 1593 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1512   - <xloc>442</xloc>
1513   - <yloc>44</yloc>
  1594 + <xloc>280</xloc>
  1595 + <yloc>404</yloc>
1514 1596 <draw>Y</draw>
1515 1597 </GUI>
1516 1598 </step>
1517 1599  
1518 1600 <step>
1519   - <name>&#x6dfb;&#x52a0;&#x5bf9;&#x5e94;&#x73ed;&#x6b21;&#x6570;</name>
1520   - <type>GroupBy</type>
  1601 + <name>&#x67e5;&#x627e;&#x8d77;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</name>
  1602 + <type>DBLookup</type>
1521 1603 <description/>
1522 1604 <distribute>Y</distribute>
1523 1605 <custom_distribution/>
... ... @@ -1526,29 +1608,58 @@
1526 1608 <method>none</method>
1527 1609 <schema_name/>
1528 1610 </partitioning>
1529   - <all_rows>Y</all_rows>
1530   - <ignore_aggregate>N</ignore_aggregate>
1531   - <field_ignore/>
1532   - <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
1533   - <prefix>grp</prefix>
1534   - <add_linenr>Y</add_linenr>
1535   - <linenr_fieldname>bcs</linenr_fieldname>
1536   - <give_back_row>N</give_back_row>
1537   - <group>
1538   - </group>
1539   - <fields>
1540   - </fields>
  1611 + <connection>bus_control_variable</connection>
  1612 + <cache>N</cache>
  1613 + <cache_load_all>N</cache_load_all>
  1614 + <cache_size>0</cache_size>
  1615 + <lookup>
  1616 + <schema/>
  1617 + <table>bsth_c_stationroute</table>
  1618 + <orderby/>
  1619 + <fail_on_multiple>N</fail_on_multiple>
  1620 + <eat_row_on_failure>N</eat_row_on_failure>
  1621 + <key>
  1622 + <name>xlid</name>
  1623 + <field>line</field>
  1624 + <condition>&#x3d;</condition>
  1625 + <name2/>
  1626 + </key>
  1627 + <key>
  1628 + <name>qdzname</name>
  1629 + <field>station_name</field>
  1630 + <condition>&#x3d;</condition>
  1631 + <name2/>
  1632 + </key>
  1633 + <key>
  1634 + <name>sendZdtype</name>
  1635 + <field>station_mark</field>
  1636 + <condition>&#x3d;</condition>
  1637 + <name2/>
  1638 + </key>
  1639 + <value>
  1640 + <name>station</name>
  1641 + <rename>qdzid</rename>
  1642 + <default/>
  1643 + <type>Integer</type>
  1644 + </value>
  1645 + <value>
  1646 + <name>directions</name>
  1647 + <rename>sxx</rename>
  1648 + <default/>
  1649 + <type>Integer</type>
  1650 + </value>
  1651 + </lookup>
1541 1652 <cluster_schema/>
1542 1653 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1543   - <xloc>692</xloc>
1544   - <yloc>44</yloc>
  1654 + <xloc>430</xloc>
  1655 + <yloc>403</yloc>
1545 1656 <draw>Y</draw>
1546 1657 </GUI>
1547 1658 </step>
1548 1659  
1549 1660 <step>
1550   - <name>&#x73ed;&#x6b21;&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;</name>
1551   - <type>Normaliser</type>
  1661 + <name>&#x67e5;&#x627e;&#x8def;&#x724c;&#x5173;&#x8054;</name>
  1662 + <type>DBLookup</type>
1552 1663 <description/>
1553 1664 <distribute>Y</distribute>
1554 1665 <custom_distribution/>
... ... @@ -1557,18 +1668,46 @@
1557 1668 <method>none</method>
1558 1669 <schema_name/>
1559 1670 </partitioning>
1560   - <typefield>&#x7ad9;&#x70b9;&#x540d;&#x79f0;</typefield>
1561   - <fields> </fields> <cluster_schema/>
  1671 + <connection>bus_control_variable</connection>
  1672 + <cache>N</cache>
  1673 + <cache_load_all>N</cache_load_all>
  1674 + <cache_size>0</cache_size>
  1675 + <lookup>
  1676 + <schema/>
  1677 + <table>bsth_c_s_gbi</table>
  1678 + <orderby/>
  1679 + <fail_on_multiple>N</fail_on_multiple>
  1680 + <eat_row_on_failure>N</eat_row_on_failure>
  1681 + <key>
  1682 + <name>xlid</name>
  1683 + <field>xl</field>
  1684 + <condition>&#x3d;</condition>
  1685 + <name2/>
  1686 + </key>
  1687 + <key>
  1688 + <name>lp</name>
  1689 + <field>lp_name</field>
  1690 + <condition>&#x3d;</condition>
  1691 + <name2/>
  1692 + </key>
  1693 + <value>
  1694 + <name>id</name>
  1695 + <rename>lpid</rename>
  1696 + <default/>
  1697 + <type>Integer</type>
  1698 + </value>
  1699 + </lookup>
  1700 + <cluster_schema/>
1562 1701 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1563   - <xloc>248</xloc>
1564   - <yloc>44</yloc>
  1702 + <xloc>1013</xloc>
  1703 + <yloc>265</yloc>
1565 1704 <draw>Y</draw>
1566 1705 </GUI>
1567 1706 </step>
1568 1707  
1569 1708 <step>
1570   - <name>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178;</name>
1571   - <type>ValueMapper</type>
  1709 + <name>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ebf;&#x8def;&#x65b9;&#x5411;</name>
  1710 + <type>DBLookup</type>
1572 1711 <description/>
1573 1712 <distribute>Y</distribute>
1574 1713 <custom_distribution/>
... ... @@ -1577,54 +1716,52 @@
1577 1716 <method>none</method>
1578 1717 <schema_name/>
1579 1718 </partitioning>
1580   - <field_to_use>bctype</field_to_use>
1581   - <target_field>bctype_code</target_field>
1582   - <non_match_default>&#x672a;&#x77e5;&#x7c7b;&#x578b;</non_match_default>
1583   - <fields>
1584   - <field>
1585   - <source_value>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</source_value>
1586   - <target_value>normal</target_value>
1587   - </field>
1588   - <field>
1589   - <source_value>&#x51fa;&#x573a;</source_value>
1590   - <target_value>out</target_value>
1591   - </field>
1592   - <field>
1593   - <source_value>&#x8fdb;&#x573a;</source_value>
1594   - <target_value>in</target_value>
1595   - </field>
1596   - <field>
1597   - <source_value>&#x52a0;&#x6cb9;</source_value>
1598   - <target_value>oil</target_value>
1599   - </field>
1600   - <field>
1601   - <source_value>&#x4e34;&#x52a0;</source_value>
1602   - <target_value>temp</target_value>
1603   - </field>
1604   - <field>
1605   - <source_value>&#x533a;&#x95f4;</source_value>
1606   - <target_value>region</target_value>
1607   - </field>
1608   - <field>
1609   - <source_value>&#x653e;&#x7a7a;</source_value>
1610   - <target_value>venting</target_value>
1611   - </field>
1612   - <field>
1613   - <source_value>&#x653e;&#x5927;&#x7ad9;</source_value>
1614   - <target_value>major</target_value>
1615   - </field>
1616   - </fields>
  1719 + <connection>bus_control_variable</connection>
  1720 + <cache>N</cache>
  1721 + <cache_load_all>N</cache_load_all>
  1722 + <cache_size>0</cache_size>
  1723 + <lookup>
  1724 + <schema/>
  1725 + <table>bsth_c_stationroute</table>
  1726 + <orderby/>
  1727 + <fail_on_multiple>N</fail_on_multiple>
  1728 + <eat_row_on_failure>N</eat_row_on_failure>
  1729 + <key>
  1730 + <name>xlid</name>
  1731 + <field>line</field>
  1732 + <condition>&#x3d;</condition>
  1733 + <name2/>
  1734 + </key>
  1735 + <key>
  1736 + <name>startZdtype_calcu</name>
  1737 + <field>station_mark</field>
  1738 + <condition>&#x3d;</condition>
  1739 + <name2/>
  1740 + </key>
  1741 + <key>
  1742 + <name>qdzname_calcu</name>
  1743 + <field>station_name</field>
  1744 + <condition>&#x3d;</condition>
  1745 + <name2/>
  1746 + </key>
  1747 + <value>
  1748 + <name>directions</name>
  1749 + <rename>sxx</rename>
  1750 + <default/>
  1751 + <type>String</type>
  1752 + </value>
  1753 + </lookup>
1617 1754 <cluster_schema/>
1618 1755 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1619   - <xloc>149</xloc>
1620   - <yloc>491</yloc>
  1756 + <xloc>548</xloc>
  1757 + <yloc>610</yloc>
1621 1758 <draw>Y</draw>
1622 1759 </GUI>
1623 1760 </step>
1624 1761  
1625 1762 <step>
1626   - <name>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 2</name>
1627   - <type>ValueMapper</type>
  1763 + <name>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ec8;&#x70b9;&#x7ad9;&#xff0c;&#x5e76;&#x4f5c;&#x4e3a;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;</name>
  1764 + <type>DBLookup</type>
1628 1765 <description/>
1629 1766 <distribute>Y</distribute>
1630 1767 <custom_distribution/>
... ... @@ -1633,54 +1770,52 @@
1633 1770 <method>none</method>
1634 1771 <schema_name/>
1635 1772 </partitioning>
1636   - <field_to_use>bctype</field_to_use>
1637   - <target_field>bctype_code</target_field>
1638   - <non_match_default>&#x672a;&#x77e5;&#x7c7b;&#x578b;</non_match_default>
1639   - <fields>
1640   - <field>
1641   - <source_value>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</source_value>
1642   - <target_value>normal</target_value>
1643   - </field>
1644   - <field>
1645   - <source_value>&#x51fa;&#x573a;</source_value>
1646   - <target_value>out</target_value>
1647   - </field>
1648   - <field>
1649   - <source_value>&#x8fdb;&#x573a;</source_value>
1650   - <target_value>in</target_value>
1651   - </field>
1652   - <field>
1653   - <source_value>&#x52a0;&#x6cb9;</source_value>
1654   - <target_value>oil</target_value>
1655   - </field>
1656   - <field>
1657   - <source_value>&#x4e34;&#x52a0;</source_value>
1658   - <target_value>temp</target_value>
1659   - </field>
1660   - <field>
1661   - <source_value>&#x533a;&#x95f4;</source_value>
1662   - <target_value>region</target_value>
1663   - </field>
1664   - <field>
1665   - <source_value>&#x653e;&#x7a7a;</source_value>
1666   - <target_value>venting</target_value>
1667   - </field>
1668   - <field>
1669   - <source_value>&#x653e;&#x5927;&#x7ad9;</source_value>
1670   - <target_value>major</target_value>
1671   - </field>
1672   - </fields>
  1773 + <connection>bus_control_variable</connection>
  1774 + <cache>N</cache>
  1775 + <cache_load_all>N</cache_load_all>
  1776 + <cache_size>0</cache_size>
  1777 + <lookup>
  1778 + <schema/>
  1779 + <table>bsth_c_stationroute</table>
  1780 + <orderby/>
  1781 + <fail_on_multiple>N</fail_on_multiple>
  1782 + <eat_row_on_failure>N</eat_row_on_failure>
  1783 + <key>
  1784 + <name>xlid</name>
  1785 + <field>line</field>
  1786 + <condition>&#x3d;</condition>
  1787 + <name2/>
  1788 + </key>
  1789 + <key>
  1790 + <name>endZdtype_calcu</name>
  1791 + <field>station_mark</field>
  1792 + <condition>&#x3d;</condition>
  1793 + <name2/>
  1794 + </key>
  1795 + <key>
  1796 + <name>sxx</name>
  1797 + <field>directions</field>
  1798 + <condition>&#x3d;</condition>
  1799 + <name2/>
  1800 + </key>
  1801 + <value>
  1802 + <name>station</name>
  1803 + <rename>qdzid</rename>
  1804 + <default/>
  1805 + <type>Integer</type>
  1806 + </value>
  1807 + </lookup>
1673 1808 <cluster_schema/>
1674 1809 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1675   - <xloc>333</xloc>
1676   - <yloc>681</yloc>
  1810 + <xloc>550</xloc>
  1811 + <yloc>701</yloc>
1677 1812 <draw>Y</draw>
1678 1813 </GUI>
1679 1814 </step>
1680 1815  
1681 1816 <step>
1682   - <name>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 3</name>
1683   - <type>ValueMapper</type>
  1817 + <name>&#x6b63;&#x5e38;&#x73ed;&#x6b21;_&#x5904;&#x7406;&#x6570;&#x636e;</name>
  1818 + <type>ScriptValueMod</type>
1684 1819 <description/>
1685 1820 <distribute>Y</distribute>
1686 1821 <custom_distribution/>
... ... @@ -1689,54 +1824,34 @@
1689 1824 <method>none</method>
1690 1825 <schema_name/>
1691 1826 </partitioning>
1692   - <field_to_use>bctype</field_to_use>
1693   - <target_field>bctype_code</target_field>
1694   - <non_match_default>&#x672a;&#x77e5;&#x7c7b;&#x578b;</non_match_default>
1695   - <fields>
1696   - <field>
1697   - <source_value>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</source_value>
1698   - <target_value>normal</target_value>
1699   - </field>
1700   - <field>
1701   - <source_value>&#x51fa;&#x573a;</source_value>
1702   - <target_value>out</target_value>
1703   - </field>
1704   - <field>
1705   - <source_value>&#x8fdb;&#x573a;</source_value>
1706   - <target_value>in</target_value>
1707   - </field>
1708   - <field>
1709   - <source_value>&#x52a0;&#x6cb9;</source_value>
1710   - <target_value>oil</target_value>
1711   - </field>
1712   - <field>
1713   - <source_value>&#x4e34;&#x52a0;</source_value>
1714   - <target_value>temp</target_value>
1715   - </field>
1716   - <field>
1717   - <source_value>&#x533a;&#x95f4;</source_value>
1718   - <target_value>region</target_value>
1719   - </field>
1720   - <field>
1721   - <source_value>&#x653e;&#x7a7a;</source_value>
1722   - <target_value>venting</target_value>
1723   - </field>
1724   - <field>
1725   - <source_value>&#x653e;&#x5927;&#x7ad9;</source_value>
1726   - <target_value>major</target_value>
1727   - </field>
1728   - </fields>
1729   - <cluster_schema/>
  1827 + <compatible>N</compatible>
  1828 + <optimizationLevel>9</optimizationLevel>
  1829 + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
  1830 + <jsScript_name>Script 1</jsScript_name>
  1831 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x6dfb;&#x52a0;&#x7ad9;&#x70b9;&#x6807;&#x8bc6;&#xa;var sendZdtype &#x3d; &#x27;B&#x27;&#x3b;&#xa;var endZdtype &#x3d; &#x27;E&#x27;&#x3b;&#xa;</jsScript_script>
  1832 + </jsScript> </jsScripts> <fields> <field> <name>sendZdtype</name>
  1833 + <rename>sendZdtype</rename>
  1834 + <type>String</type>
  1835 + <length>-1</length>
  1836 + <precision>-1</precision>
  1837 + <replace>N</replace>
  1838 + </field> <field> <name>endZdtype</name>
  1839 + <rename>endZdtype</rename>
  1840 + <type>String</type>
  1841 + <length>-1</length>
  1842 + <precision>-1</precision>
  1843 + <replace>N</replace>
  1844 + </field> </fields> <cluster_schema/>
1730 1845 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1731   - <xloc>548</xloc>
1732   - <yloc>844</yloc>
  1846 + <xloc>588</xloc>
  1847 + <yloc>403</yloc>
1733 1848 <draw>Y</draw>
1734 1849 </GUI>
1735 1850 </step>
1736 1851  
1737 1852 <step>
1738   - <name>&#x7c7b;&#x578b;&#x4fee;&#x6b63;</name>
1739   - <type>SelectValues</type>
  1853 + <name>&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x6570;&#x636e;</name>
  1854 + <type>Dummy</type>
1740 1855 <description/>
1741 1856 <distribute>Y</distribute>
1742 1857 <custom_distribution/>
... ... @@ -1745,48 +1860,17 @@
1745 1860 <method>none</method>
1746 1861 <schema_name/>
1747 1862 </partitioning>
1748   - <fields> <select_unspecified>N</select_unspecified>
1749   - <meta> <name>jhlc</name>
1750   - <rename>jhlc</rename>
1751   - <type>Number</type>
1752   - <length>-2</length>
1753   - <precision>-2</precision>
1754   - <conversion_mask/>
1755   - <date_format_lenient>false</date_format_lenient>
1756   - <date_format_locale/>
1757   - <date_format_timezone/>
1758   - <lenient_string_to_number>false</lenient_string_to_number>
1759   - <encoding/>
1760   - <decimal_symbol/>
1761   - <grouping_symbol/>
1762   - <currency_symbol/>
1763   - <storage_type/>
1764   - </meta> <meta> <name>bcsj</name>
1765   - <rename>bcsj</rename>
1766   - <type>Integer</type>
1767   - <length>-2</length>
1768   - <precision>-2</precision>
1769   - <conversion_mask/>
1770   - <date_format_lenient>false</date_format_lenient>
1771   - <date_format_locale/>
1772   - <date_format_timezone/>
1773   - <lenient_string_to_number>false</lenient_string_to_number>
1774   - <encoding/>
1775   - <decimal_symbol/>
1776   - <grouping_symbol/>
1777   - <currency_symbol/>
1778   - <storage_type/>
1779   - </meta> </fields> <cluster_schema/>
  1863 + <cluster_schema/>
1780 1864 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1781   - <xloc>146</xloc>
1782   - <yloc>768</yloc>
  1865 + <xloc>725</xloc>
  1866 + <yloc>404</yloc>
1783 1867 <draw>Y</draw>
1784 1868 </GUI>
1785 1869 </step>
1786 1870  
1787 1871 <step>
1788   - <name>&#x8ba1;&#x7b97;&#x73ed;&#x6b21;&#x7c7b;&#x578b;</name>
1789   - <type>ValueMapper</type>
  1872 + <name>&#x6dfb;&#x52a0;&#x53d1;&#x8f66;&#x987a;&#x5e8f;&#x53f7;</name>
  1873 + <type>GroupBy</type>
1790 1874 <description/>
1791 1875 <distribute>Y</distribute>
1792 1876 <custom_distribution/>
... ... @@ -1795,30 +1879,32 @@
1795 1879 <method>none</method>
1796 1880 <schema_name/>
1797 1881 </partitioning>
1798   - <field_to_use>qdzname</field_to_use>
1799   - <target_field>bctype</target_field>
1800   - <non_match_default>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</non_match_default>
1801   - <fields>
1802   - <field>
1803   - <source_value>&#x51fa;&#x573a;</source_value>
1804   - <target_value>&#x51fa;&#x573a;</target_value>
1805   - </field>
1806   - <field>
1807   - <source_value>&#x8fdb;&#x573a;</source_value>
1808   - <target_value>&#x8fdb;&#x573a;</target_value>
1809   - </field>
1810   - </fields>
  1882 + <all_rows>Y</all_rows>
  1883 + <ignore_aggregate>N</ignore_aggregate>
  1884 + <field_ignore/>
  1885 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  1886 + <prefix>grp</prefix>
  1887 + <add_linenr>Y</add_linenr>
  1888 + <linenr_fieldname>fcno</linenr_fieldname>
  1889 + <give_back_row>N</give_back_row>
  1890 + <group>
  1891 + <field>
  1892 + <name>lp</name>
  1893 + </field>
  1894 + </group>
  1895 + <fields>
  1896 + </fields>
1811 1897 <cluster_schema/>
1812 1898 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1813   - <xloc>1014</xloc>
1814   - <yloc>401</yloc>
  1899 + <xloc>442</xloc>
  1900 + <yloc>44</yloc>
1815 1901 <draw>Y</draw>
1816 1902 </GUI>
1817 1903 </step>
1818 1904  
1819 1905 <step>
1820   - <name>&#x8bb0;&#x5f55;&#x5173;&#x8054; &#x28;&#x7b1b;&#x5361;&#x5c14;&#x8f93;&#x51fa;&#x29;</name>
1821   - <type>JoinRows</type>
  1906 + <name>&#x6dfb;&#x52a0;&#x5bf9;&#x5e94;&#x73ed;&#x6b21;&#x6570;</name>
  1907 + <type>GroupBy</type>
1822 1908 <description/>
1823 1909 <distribute>Y</distribute>
1824 1910 <custom_distribution/>
... ... @@ -1827,29 +1913,29 @@
1827 1913 <method>none</method>
1828 1914 <schema_name/>
1829 1915 </partitioning>
  1916 + <all_rows>Y</all_rows>
  1917 + <ignore_aggregate>N</ignore_aggregate>
  1918 + <field_ignore/>
1830 1919 <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
1831   - <prefix>out</prefix>
1832   - <cache_size>500</cache_size>
1833   - <main/>
1834   - <compare>
1835   -<condition>
1836   - <negated>N</negated>
1837   - <leftvalue/>
1838   - <function>&#x3d;</function>
1839   - <rightvalue/>
1840   - </condition>
1841   - </compare>
  1920 + <prefix>grp</prefix>
  1921 + <add_linenr>Y</add_linenr>
  1922 + <linenr_fieldname>bcs</linenr_fieldname>
  1923 + <give_back_row>N</give_back_row>
  1924 + <group>
  1925 + </group>
  1926 + <fields>
  1927 + </fields>
1842 1928 <cluster_schema/>
1843 1929 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1844   - <xloc>310</xloc>
1845   - <yloc>133</yloc>
  1930 + <xloc>692</xloc>
  1931 + <yloc>44</yloc>
1846 1932 <draw>Y</draw>
1847 1933 </GUI>
1848 1934 </step>
1849 1935  
1850 1936 <step>
1851   - <name>&#x8fc7;&#x6ee4;&#x8bb0;&#x5f55;&#xff08;&#x53d1;&#x8f66;&#x65f6;&#x95f4;&#x4e3a;&#x7a7a;&#xff09;</name>
1852   - <type>FilterRows</type>
  1937 + <name>&#x73ed;&#x6b21;&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;</name>
  1938 + <type>Normaliser</type>
1853 1939 <description/>
1854 1940 <distribute>Y</distribute>
1855 1941 <custom_distribution/>
... ... @@ -1858,27 +1944,18 @@
1858 1944 <method>none</method>
1859 1945 <schema_name/>
1860 1946 </partitioning>
1861   -<send_true_to/>
1862   -<send_false_to/>
1863   - <compare>
1864   -<condition>
1865   - <negated>N</negated>
1866   - <leftvalue>sendtime</leftvalue>
1867   - <function>IS NOT NULL</function>
1868   - <rightvalue/>
1869   - </condition>
1870   - </compare>
1871   - <cluster_schema/>
  1947 + <typefield>&#x7ad9;&#x70b9;&#x540d;&#x79f0;</typefield>
  1948 + <fields> </fields> <cluster_schema/>
1872 1949 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1873   - <xloc>571</xloc>
  1950 + <xloc>248</xloc>
1874 1951 <yloc>44</yloc>
1875 1952 <draw>Y</draw>
1876 1953 </GUI>
1877 1954 </step>
1878 1955  
1879 1956 <step>
1880   - <name>&#x8fdb;&#x573a;&#x73ed;&#x6b21;_&#x786e;&#x5b9a;&#x8d77;&#x70b9;&#x7ad9;&#x540d;&#x5b57;</name>
1881   - <type>ScriptValueMod</type>
  1957 + <name>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178;</name>
  1958 + <type>ValueMapper</type>
1882 1959 <description/>
1883 1960 <distribute>Y</distribute>
1884 1961 <custom_distribution/>
... ... @@ -1887,40 +1964,54 @@
1887 1964 <method>none</method>
1888 1965 <schema_name/>
1889 1966 </partitioning>
1890   - <compatible>N</compatible>
1891   - <optimizationLevel>9</optimizationLevel>
1892   - <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
1893   - <jsScript_name>Script 1</jsScript_name>
1894   - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x6dfb;&#x52a0;&#x7ad9;&#x70b9;&#x6807;&#x8bc6;&#xa;var cc_groups &#x3d; qdzgroups.split&#x28;&#x22;,&#x22;&#x29;&#x3b; &#x2f;&#x2f; &#x6240;&#x6709;&#x73ed;&#x6b21;&#x8d77;&#x70b9;&#x7ad9;&#x6570;&#x7ec4;&#xa;var qdzname_calcu &#x3d; cc_groups&#x5b;gno - 2&#x5d;&#x3b; &#x2f;&#x2f; &#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;&#x662f;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ec8;&#x70b9;&#x7ad9;&#xff0c;&#x8fd9;&#x91cc;&#x53ea;&#x6709;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;&#xff0c;&#x8fd8;&#x9700;&#x8981;&#x8ba1;&#x7b97;&#xa;var startZdtype_calcu &#x3d; &#x27;B&#x27;&#x3b;&#xa;var endZdtype_calcu &#x3d; &#x27;E&#x27;&#x3b;</jsScript_script>
1895   - </jsScript> </jsScripts> <fields> <field> <name>qdzname_calcu</name>
1896   - <rename>qdzname_calcu</rename>
1897   - <type>String</type>
1898   - <length>-1</length>
1899   - <precision>-1</precision>
1900   - <replace>N</replace>
1901   - </field> <field> <name>startZdtype_calcu</name>
1902   - <rename>startZdtype_calcu</rename>
1903   - <type>String</type>
1904   - <length>-1</length>
1905   - <precision>-1</precision>
1906   - <replace>N</replace>
1907   - </field> <field> <name>endZdtype_calcu</name>
1908   - <rename>endZdtype_calcu</rename>
1909   - <type>String</type>
1910   - <length>-1</length>
1911   - <precision>-1</precision>
1912   - <replace>N</replace>
1913   - </field> </fields> <cluster_schema/>
  1967 + <field_to_use>bctype</field_to_use>
  1968 + <target_field>bctype_code</target_field>
  1969 + <non_match_default>&#x672a;&#x77e5;&#x7c7b;&#x578b;</non_match_default>
  1970 + <fields>
  1971 + <field>
  1972 + <source_value>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</source_value>
  1973 + <target_value>normal</target_value>
  1974 + </field>
  1975 + <field>
  1976 + <source_value>&#x51fa;&#x573a;</source_value>
  1977 + <target_value>out</target_value>
  1978 + </field>
  1979 + <field>
  1980 + <source_value>&#x8fdb;&#x573a;</source_value>
  1981 + <target_value>in</target_value>
  1982 + </field>
  1983 + <field>
  1984 + <source_value>&#x52a0;&#x6cb9;</source_value>
  1985 + <target_value>oil</target_value>
  1986 + </field>
  1987 + <field>
  1988 + <source_value>&#x4e34;&#x52a0;</source_value>
  1989 + <target_value>temp</target_value>
  1990 + </field>
  1991 + <field>
  1992 + <source_value>&#x533a;&#x95f4;</source_value>
  1993 + <target_value>region</target_value>
  1994 + </field>
  1995 + <field>
  1996 + <source_value>&#x653e;&#x7a7a;</source_value>
  1997 + <target_value>venting</target_value>
  1998 + </field>
  1999 + <field>
  2000 + <source_value>&#x653e;&#x5927;&#x7ad9;</source_value>
  2001 + <target_value>major</target_value>
  2002 + </field>
  2003 + </fields>
  2004 + <cluster_schema/>
1914 2005 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1915   - <xloc>754</xloc>
1916   - <yloc>610</yloc>
  2006 + <xloc>149</xloc>
  2007 + <yloc>491</yloc>
1917 2008 <draw>Y</draw>
1918 2009 </GUI>
1919 2010 </step>
1920 2011  
1921 2012 <step>
1922   - <name>&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</name>
1923   - <type>Dummy</type>
  2013 + <name>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 2</name>
  2014 + <type>ValueMapper</type>
1924 2015 <description/>
1925 2016 <distribute>Y</distribute>
1926 2017 <custom_distribution/>
... ... @@ -1929,17 +2020,54 @@
1929 2020 <method>none</method>
1930 2021 <schema_name/>
1931 2022 </partitioning>
  2023 + <field_to_use>bctype</field_to_use>
  2024 + <target_field>bctype_code</target_field>
  2025 + <non_match_default>&#x672a;&#x77e5;&#x7c7b;&#x578b;</non_match_default>
  2026 + <fields>
  2027 + <field>
  2028 + <source_value>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</source_value>
  2029 + <target_value>normal</target_value>
  2030 + </field>
  2031 + <field>
  2032 + <source_value>&#x51fa;&#x573a;</source_value>
  2033 + <target_value>out</target_value>
  2034 + </field>
  2035 + <field>
  2036 + <source_value>&#x8fdb;&#x573a;</source_value>
  2037 + <target_value>in</target_value>
  2038 + </field>
  2039 + <field>
  2040 + <source_value>&#x52a0;&#x6cb9;</source_value>
  2041 + <target_value>oil</target_value>
  2042 + </field>
  2043 + <field>
  2044 + <source_value>&#x4e34;&#x52a0;</source_value>
  2045 + <target_value>temp</target_value>
  2046 + </field>
  2047 + <field>
  2048 + <source_value>&#x533a;&#x95f4;</source_value>
  2049 + <target_value>region</target_value>
  2050 + </field>
  2051 + <field>
  2052 + <source_value>&#x653e;&#x7a7a;</source_value>
  2053 + <target_value>venting</target_value>
  2054 + </field>
  2055 + <field>
  2056 + <source_value>&#x653e;&#x5927;&#x7ad9;</source_value>
  2057 + <target_value>major</target_value>
  2058 + </field>
  2059 + </fields>
1932 2060 <cluster_schema/>
1933 2061 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1934   - <xloc>997</xloc>
1935   - <yloc>606</yloc>
  2062 + <xloc>333</xloc>
  2063 + <yloc>681</yloc>
1936 2064 <draw>Y</draw>
1937 2065 </GUI>
1938 2066 </step>
1939 2067  
1940 2068 <step>
1941   - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail</name>
1942   - <type>InsertUpdate</type>
  2069 + <name>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 3</name>
  2070 + <type>ValueMapper</type>
1943 2071 <description/>
1944 2072 <distribute>Y</distribute>
1945 2073 <custom_distribution/>
... ... @@ -1948,114 +2076,136 @@
1948 2076 <method>none</method>
1949 2077 <schema_name/>
1950 2078 </partitioning>
1951   - <connection>bus_control_variable</connection>
1952   - <commit>100</commit>
1953   - <update_bypassed>N</update_bypassed>
1954   - <lookup>
1955   - <schema/>
1956   - <table>bsth_c_s_ttinfo_detail</table>
1957   - <key>
1958   - <name>xlid</name>
1959   - <field>xl</field>
1960   - <condition>&#x3d;</condition>
1961   - <name2/>
1962   - </key>
1963   - <key>
1964   - <name>ttid</name>
1965   - <field>ttinfo</field>
1966   - <condition>&#x3d;</condition>
1967   - <name2/>
1968   - </key>
1969   - <key>
1970   - <name>lpid</name>
1971   - <field>lp</field>
1972   - <condition>&#x3d;</condition>
1973   - <name2/>
1974   - </key>
1975   - <key>
1976   - <name>fcno</name>
1977   - <field>fcno</field>
1978   - <condition>&#x3d;</condition>
1979   - <name2/>
1980   - </key>
1981   - <key>
1982   - <name>bcs</name>
1983   - <field>bcs</field>
1984   - <condition>&#x3d;</condition>
1985   - <name2/>
1986   - </key>
1987   - <value>
1988   - <name>lp</name>
1989   - <rename>lpid</rename>
1990   - <update>Y</update>
1991   - </value>
1992   - <value>
1993   - <name>bc_type</name>
1994   - <rename>bctype_code</rename>
1995   - <update>Y</update>
1996   - </value>
1997   - <value>
1998   - <name>bcs</name>
1999   - <rename>bcs</rename>
2000   - <update>Y</update>
2001   - </value>
2002   - <value>
2003   - <name>bcsj</name>
2004   - <rename>bcsj</rename>
2005   - <update>Y</update>
2006   - </value>
2007   - <value>
2008   - <name>fcno</name>
2009   - <rename>fcno</rename>
2010   - <update>Y</update>
2011   - </value>
2012   - <value>
2013   - <name>jhlc</name>
  2079 + <field_to_use>bctype</field_to_use>
  2080 + <target_field>bctype_code</target_field>
  2081 + <non_match_default>&#x672a;&#x77e5;&#x7c7b;&#x578b;</non_match_default>
  2082 + <fields>
  2083 + <field>
  2084 + <source_value>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</source_value>
  2085 + <target_value>normal</target_value>
  2086 + </field>
  2087 + <field>
  2088 + <source_value>&#x51fa;&#x573a;</source_value>
  2089 + <target_value>out</target_value>
  2090 + </field>
  2091 + <field>
  2092 + <source_value>&#x8fdb;&#x573a;</source_value>
  2093 + <target_value>in</target_value>
  2094 + </field>
  2095 + <field>
  2096 + <source_value>&#x52a0;&#x6cb9;</source_value>
  2097 + <target_value>oil</target_value>
  2098 + </field>
  2099 + <field>
  2100 + <source_value>&#x4e34;&#x52a0;</source_value>
  2101 + <target_value>temp</target_value>
  2102 + </field>
  2103 + <field>
  2104 + <source_value>&#x533a;&#x95f4;</source_value>
  2105 + <target_value>region</target_value>
  2106 + </field>
  2107 + <field>
  2108 + <source_value>&#x653e;&#x7a7a;</source_value>
  2109 + <target_value>venting</target_value>
  2110 + </field>
  2111 + <field>
  2112 + <source_value>&#x653e;&#x5927;&#x7ad9;</source_value>
  2113 + <target_value>major</target_value>
  2114 + </field>
  2115 + </fields>
  2116 + <cluster_schema/>
  2117 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2118 + <xloc>548</xloc>
  2119 + <yloc>844</yloc>
  2120 + <draw>Y</draw>
  2121 + </GUI>
  2122 + </step>
  2123 +
  2124 + <step>
  2125 + <name>&#x7c7b;&#x578b;&#x4fee;&#x6b63;</name>
  2126 + <type>SelectValues</type>
  2127 + <description/>
  2128 + <distribute>Y</distribute>
  2129 + <custom_distribution/>
  2130 + <copies>1</copies>
  2131 + <partitioning>
  2132 + <method>none</method>
  2133 + <schema_name/>
  2134 + </partitioning>
  2135 + <fields> <select_unspecified>N</select_unspecified>
  2136 + <meta> <name>jhlc</name>
2014 2137 <rename>jhlc</rename>
2015   - <update>Y</update>
2016   - </value>
2017   - <value>
2018   - <name>fcsj</name>
2019   - <rename>sendtime</rename>
2020   - <update>Y</update>
2021   - </value>
2022   - <value>
2023   - <name>ttinfo</name>
2024   - <rename>ttid</rename>
2025   - <update>Y</update>
2026   - </value>
2027   - <value>
2028   - <name>xl</name>
2029   - <rename>xlid</rename>
2030   - <update>Y</update>
2031   - </value>
2032   - <value>
2033   - <name>qdz</name>
2034   - <rename>qdzid</rename>
2035   - <update>Y</update>
2036   - </value>
2037   - <value>
2038   - <name>zdz</name>
2039   - <rename>zdzid</rename>
2040   - <update>Y</update>
2041   - </value>
2042   - <value>
2043   - <name>xl_dir</name>
2044   - <rename>sxx</rename>
2045   - <update>Y</update>
2046   - </value>
2047   - </lookup>
  2138 + <type>Number</type>
  2139 + <length>-2</length>
  2140 + <precision>-2</precision>
  2141 + <conversion_mask/>
  2142 + <date_format_lenient>false</date_format_lenient>
  2143 + <date_format_locale/>
  2144 + <date_format_timezone/>
  2145 + <lenient_string_to_number>false</lenient_string_to_number>
  2146 + <encoding/>
  2147 + <decimal_symbol/>
  2148 + <grouping_symbol/>
  2149 + <currency_symbol/>
  2150 + <storage_type/>
  2151 + </meta> <meta> <name>bcsj</name>
  2152 + <rename>bcsj</rename>
  2153 + <type>Integer</type>
  2154 + <length>-2</length>
  2155 + <precision>-2</precision>
  2156 + <conversion_mask/>
  2157 + <date_format_lenient>false</date_format_lenient>
  2158 + <date_format_locale/>
  2159 + <date_format_timezone/>
  2160 + <lenient_string_to_number>false</lenient_string_to_number>
  2161 + <encoding/>
  2162 + <decimal_symbol/>
  2163 + <grouping_symbol/>
  2164 + <currency_symbol/>
  2165 + <storage_type/>
  2166 + </meta> </fields> <cluster_schema/>
  2167 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2168 + <xloc>146</xloc>
  2169 + <yloc>768</yloc>
  2170 + <draw>Y</draw>
  2171 + </GUI>
  2172 + </step>
  2173 +
  2174 + <step>
  2175 + <name>&#x8ba1;&#x7b97;&#x73ed;&#x6b21;&#x7c7b;&#x578b;</name>
  2176 + <type>ValueMapper</type>
  2177 + <description/>
  2178 + <distribute>Y</distribute>
  2179 + <custom_distribution/>
  2180 + <copies>1</copies>
  2181 + <partitioning>
  2182 + <method>none</method>
  2183 + <schema_name/>
  2184 + </partitioning>
  2185 + <field_to_use>qdzname</field_to_use>
  2186 + <target_field>bctype</target_field>
  2187 + <non_match_default>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</non_match_default>
  2188 + <fields>
  2189 + <field>
  2190 + <source_value>&#x51fa;&#x573a;</source_value>
  2191 + <target_value>&#x51fa;&#x573a;</target_value>
  2192 + </field>
  2193 + <field>
  2194 + <source_value>&#x8fdb;&#x573a;</source_value>
  2195 + <target_value>&#x8fdb;&#x573a;</target_value>
  2196 + </field>
  2197 + </fields>
2048 2198 <cluster_schema/>
2049 2199 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
2050   - <xloc>143</xloc>
2051   - <yloc>860</yloc>
  2200 + <xloc>1014</xloc>
  2201 + <yloc>401</yloc>
2052 2202 <draw>Y</draw>
2053 2203 </GUI>
2054 2204 </step>
2055 2205  
2056 2206 <step>
2057   - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail 2</name>
2058   - <type>InsertUpdate</type>
  2207 + <name>&#x8bb0;&#x5f55;&#x5173;&#x8054; &#x28;&#x7b1b;&#x5361;&#x5c14;&#x8f93;&#x51fa;&#x29;</name>
  2208 + <type>JoinRows</type>
2059 2209 <description/>
2060 2210 <distribute>Y</distribute>
2061 2211 <custom_distribution/>
... ... @@ -2064,114 +2214,29 @@
2064 2214 <method>none</method>
2065 2215 <schema_name/>
2066 2216 </partitioning>
2067   - <connection>bus_control_variable</connection>
2068   - <commit>100</commit>
2069   - <update_bypassed>N</update_bypassed>
2070   - <lookup>
2071   - <schema/>
2072   - <table>bsth_c_s_ttinfo_detail</table>
2073   - <key>
2074   - <name>xlid</name>
2075   - <field>xl</field>
2076   - <condition>&#x3d;</condition>
2077   - <name2/>
2078   - </key>
2079   - <key>
2080   - <name>ttid</name>
2081   - <field>ttinfo</field>
2082   - <condition>&#x3d;</condition>
2083   - <name2/>
2084   - </key>
2085   - <key>
2086   - <name>lpid</name>
2087   - <field>lp</field>
2088   - <condition>&#x3d;</condition>
2089   - <name2/>
2090   - </key>
2091   - <key>
2092   - <name>fcno</name>
2093   - <field>fcno</field>
2094   - <condition>&#x3d;</condition>
2095   - <name2/>
2096   - </key>
2097   - <key>
2098   - <name>bcs</name>
2099   - <field>bcs</field>
2100   - <condition>&#x3d;</condition>
2101   - <name2/>
2102   - </key>
2103   - <value>
2104   - <name>tcc</name>
2105   - <rename>qdzid</rename>
2106   - <update>Y</update>
2107   - </value>
2108   - <value>
2109   - <name>zdz</name>
2110   - <rename>zdzid</rename>
2111   - <update>Y</update>
2112   - </value>
2113   - <value>
2114   - <name>xl</name>
2115   - <rename>xlid</rename>
2116   - <update>Y</update>
2117   - </value>
2118   - <value>
2119   - <name>ttinfo</name>
2120   - <rename>ttid</rename>
2121   - <update>Y</update>
2122   - </value>
2123   - <value>
2124   - <name>xl_dir</name>
2125   - <rename>sxx</rename>
2126   - <update>Y</update>
2127   - </value>
2128   - <value>
2129   - <name>lp</name>
2130   - <rename>lpid</rename>
2131   - <update>Y</update>
2132   - </value>
2133   - <value>
2134   - <name>jhlc</name>
2135   - <rename>out_mileage</rename>
2136   - <update>Y</update>
2137   - </value>
2138   - <value>
2139   - <name>fcsj</name>
2140   - <rename>sendtime</rename>
2141   - <update>Y</update>
2142   - </value>
2143   - <value>
2144   - <name>bcsj</name>
2145   - <rename>out_time</rename>
2146   - <update>Y</update>
2147   - </value>
2148   - <value>
2149   - <name>bcs</name>
2150   - <rename>bcs</rename>
2151   - <update>Y</update>
2152   - </value>
2153   - <value>
2154   - <name>fcno</name>
2155   - <rename>fcno</rename>
2156   - <update>Y</update>
2157   - </value>
2158   - <value>
2159   - <name>bc_type</name>
2160   - <rename>bctype_code</rename>
2161   - <update>Y</update>
2162   - </value>
2163   - </lookup>
  2217 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  2218 + <prefix>out</prefix>
  2219 + <cache_size>500</cache_size>
  2220 + <main/>
  2221 + <compare>
  2222 +<condition>
  2223 + <negated>N</negated>
  2224 + <leftvalue/>
  2225 + <function>&#x3d;</function>
  2226 + <rightvalue/>
  2227 + </condition>
  2228 + </compare>
2164 2229 <cluster_schema/>
2165 2230 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
2166   - <xloc>340</xloc>
2167   - <yloc>890</yloc>
  2231 + <xloc>310</xloc>
  2232 + <yloc>133</yloc>
2168 2233 <draw>Y</draw>
2169 2234 </GUI>
2170 2235 </step>
2171 2236  
2172 2237 <step>
2173   - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail 3</name>
2174   - <type>InsertUpdate</type>
  2238 + <name>&#x8fc7;&#x6ee4;&#x8bb0;&#x5f55;&#xff08;&#x53d1;&#x8f66;&#x65f6;&#x95f4;&#x4e3a;&#x7a7a;&#xff09;</name>
  2239 + <type>FilterRows</type>
2175 2240 <description/>
2176 2241 <distribute>Y</distribute>
2177 2242 <custom_distribution/>
... ... @@ -2180,107 +2245,81 @@
2180 2245 <method>none</method>
2181 2246 <schema_name/>
2182 2247 </partitioning>
2183   - <connection>bus_control_variable</connection>
2184   - <commit>100</commit>
2185   - <update_bypassed>N</update_bypassed>
2186   - <lookup>
2187   - <schema/>
2188   - <table>bsth_c_s_ttinfo_detail</table>
2189   - <key>
2190   - <name>xlid</name>
2191   - <field>xl</field>
2192   - <condition>&#x3d;</condition>
2193   - <name2/>
2194   - </key>
2195   - <key>
2196   - <name>ttid</name>
2197   - <field>ttinfo</field>
2198   - <condition>&#x3d;</condition>
2199   - <name2/>
2200   - </key>
2201   - <key>
2202   - <name>lpid</name>
2203   - <field>lp</field>
2204   - <condition>&#x3d;</condition>
2205   - <name2/>
2206   - </key>
2207   - <key>
2208   - <name>fcno</name>
2209   - <field>fcno</field>
2210   - <condition>&#x3d;</condition>
2211   - <name2/>
2212   - </key>
2213   - <key>
2214   - <name>bcs</name>
2215   - <field>bcs</field>
2216   - <condition>&#x3d;</condition>
2217   - <name2/>
2218   - </key>
2219   - <value>
2220   - <name>fcno</name>
2221   - <rename>fcno</rename>
2222   - <update>Y</update>
2223   - </value>
2224   - <value>
2225   - <name>bcs</name>
2226   - <rename>bcs</rename>
2227   - <update>Y</update>
2228   - </value>
2229   - <value>
2230   - <name>xl</name>
2231   - <rename>xlid</rename>
2232   - <update>Y</update>
2233   - </value>
2234   - <value>
2235   - <name>ttinfo</name>
2236   - <rename>ttid</rename>
2237   - <update>Y</update>
2238   - </value>
2239   - <value>
2240   - <name>lp</name>
2241   - <rename>lpid</rename>
2242   - <update>Y</update>
2243   - </value>
2244   - <value>
2245   - <name>bc_type</name>
2246   - <rename>bctype_code</rename>
2247   - <update>Y</update>
2248   - </value>
2249   - <value>
2250   - <name>bcsj</name>
2251   - <rename>parade_time</rename>
2252   - <update>Y</update>
2253   - </value>
2254   - <value>
2255   - <name>jhlc</name>
2256   - <rename>parade_mileage</rename>
2257   - <update>Y</update>
2258   - </value>
2259   - <value>
2260   - <name>fcsj</name>
2261   - <rename>sendtime</rename>
2262   - <update>Y</update>
2263   - </value>
2264   - <value>
2265   - <name>xl_dir</name>
2266   - <rename>sxx</rename>
2267   - <update>Y</update>
2268   - </value>
2269   - <value>
2270   - <name>qdz</name>
2271   - <rename>qdzid</rename>
2272   - <update>Y</update>
2273   - </value>
2274   - <value>
2275   - <name>tcc</name>
2276   - <rename>zdzid</rename>
2277   - <update>Y</update>
2278   - </value>
2279   - </lookup>
  2248 +<send_true_to/>
  2249 +<send_false_to/>
  2250 + <compare>
  2251 +<condition>
  2252 + <negated>N</negated>
  2253 + <leftvalue>sendtime</leftvalue>
  2254 + <function>IS NOT NULL</function>
  2255 + <rightvalue/>
  2256 + </condition>
  2257 + </compare>
2280 2258 <cluster_schema/>
2281 2259 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
2282   - <xloc>770</xloc>
2283   - <yloc>923</yloc>
  2260 + <xloc>571</xloc>
  2261 + <yloc>44</yloc>
  2262 + <draw>Y</draw>
  2263 + </GUI>
  2264 + </step>
  2265 +
  2266 + <step>
  2267 + <name>&#x8fdb;&#x573a;&#x73ed;&#x6b21;_&#x786e;&#x5b9a;&#x8d77;&#x70b9;&#x7ad9;&#x540d;&#x5b57;</name>
  2268 + <type>ScriptValueMod</type>
  2269 + <description/>
  2270 + <distribute>Y</distribute>
  2271 + <custom_distribution/>
  2272 + <copies>1</copies>
  2273 + <partitioning>
  2274 + <method>none</method>
  2275 + <schema_name/>
  2276 + </partitioning>
  2277 + <compatible>N</compatible>
  2278 + <optimizationLevel>9</optimizationLevel>
  2279 + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
  2280 + <jsScript_name>Script 1</jsScript_name>
  2281 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x6dfb;&#x52a0;&#x7ad9;&#x70b9;&#x6807;&#x8bc6;&#xa;var cc_groups &#x3d; qdzgroups.split&#x28;&#x22;,&#x22;&#x29;&#x3b; &#x2f;&#x2f; &#x6240;&#x6709;&#x73ed;&#x6b21;&#x8d77;&#x70b9;&#x7ad9;&#x6570;&#x7ec4;&#xa;var qdzname_calcu &#x3d; cc_groups&#x5b;gno - 2&#x5d;&#x3b; &#x2f;&#x2f; &#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;&#x662f;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ec8;&#x70b9;&#x7ad9;&#xff0c;&#x8fd9;&#x91cc;&#x53ea;&#x6709;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;&#xff0c;&#x8fd8;&#x9700;&#x8981;&#x8ba1;&#x7b97;&#xa;var startZdtype_calcu &#x3d; &#x27;B&#x27;&#x3b;&#xa;var endZdtype_calcu &#x3d; &#x27;E&#x27;&#x3b;</jsScript_script>
  2282 + </jsScript> </jsScripts> <fields> <field> <name>qdzname_calcu</name>
  2283 + <rename>qdzname_calcu</rename>
  2284 + <type>String</type>
  2285 + <length>-1</length>
  2286 + <precision>-1</precision>
  2287 + <replace>N</replace>
  2288 + </field> <field> <name>startZdtype_calcu</name>
  2289 + <rename>startZdtype_calcu</rename>
  2290 + <type>String</type>
  2291 + <length>-1</length>
  2292 + <precision>-1</precision>
  2293 + <replace>N</replace>
  2294 + </field> <field> <name>endZdtype_calcu</name>
  2295 + <rename>endZdtype_calcu</rename>
  2296 + <type>String</type>
  2297 + <length>-1</length>
  2298 + <precision>-1</precision>
  2299 + <replace>N</replace>
  2300 + </field> </fields> <cluster_schema/>
  2301 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2302 + <xloc>754</xloc>
  2303 + <yloc>610</yloc>
  2304 + <draw>Y</draw>
  2305 + </GUI>
  2306 + </step>
  2307 +
  2308 + <step>
  2309 + <name>&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</name>
  2310 + <type>Dummy</type>
  2311 + <description/>
  2312 + <distribute>Y</distribute>
  2313 + <custom_distribution/>
  2314 + <copies>1</copies>
  2315 + <partitioning>
  2316 + <method>none</method>
  2317 + <schema_name/>
  2318 + </partitioning>
  2319 + <cluster_schema/>
  2320 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2321 + <xloc>997</xloc>
  2322 + <yloc>606</yloc>
2284 2323 <draw>Y</draw>
2285 2324 </GUI>
2286 2325 </step>
... ...