Commit 98fe281e84c3ec101999de09265344c378305fde

Authored by 李强
2 parents efbd3894 e60deedd

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

Showing 64 changed files with 4069 additions and 2066 deletions
hs_err_pid6460.log 0 → 100644
  1 +#
  2 +# A fatal error has been detected by the Java Runtime Environment:
  3 +#
  4 +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000535b9f79, pid=6460, tid=4048
  5 +#
  6 +# JRE version: Java(TM) SE Runtime Environment (7.0_80-b15) (build 1.7.0_80-b15)
  7 +# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.80-b11 mixed mode windows-amd64 compressed oops)
  8 +# Problematic frame:
  9 +# V [jvm.dll+0x199f79]
  10 +#
  11 +# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
  12 +#
  13 +# If you would like to submit a bug report, please visit:
  14 +# http://bugreport.java.com/bugreport/crash.jsp
  15 +#
  16 +
  17 +--------------- T H R E A D ---------------
  18 +
  19 +Current thread (0x000000000e39e800): JavaThread "JDWP Transport Listener: dt_socket" daemon [_thread_in_vm, id=4048, stack(0x000000000e960000,0x000000000ea60000)]
  20 +
  21 +siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000
  22 +
  23 +Registers:
  24 +RAX=0x0000000000000000, RBX=0x000000000e3930e8, RCX=0x0000000000000000, RDX=0x0000000000000000
  25 +RSP=0x000000000ea5f250, RBP=0x000000000ea5f2b9, RSI=0x0000000000000000, RDI=0x000000000e3930f0
  26 +R8 =0x0000000762fe21a8, R9 =0x0000000054bb0000, R10=0x0000000000000000, R11=0x0000000000000000
  27 +R12=0x000000000e39e800, R13=0x000000000ea5f730, R14=0x000000000e39e800, R15=0x000000000ea5f730
  28 +RIP=0x00000000535b9f79, EFLAGS=0x0000000000010246
  29 +
  30 +Top of Stack: (sp=0x000000000ea5f250)
  31 +0x000000000ea5f250: 000000000e3930e8 000000000ea5f2b9
  32 +0x000000000ea5f260: 0000000000000000 0000000000000001
  33 +0x000000000ea5f270: 0000000000000008 000000000e39e800
  34 +0x000000000ea5f280: 0000000000000000 0000000054c18d17
  35 +0x000000000ea5f290: 0000000000000002 000000000e39e800
  36 +0x000000000ea5f2a0: 0000000000000008 00000000128b0c20
  37 +0x000000000ea5f2b0: 0000000000000000 00000000535f8b35
  38 +0x000000000ea5f2c0: 0000000000000000 0000000000000000
  39 +0x000000000ea5f2d0: 00000000128628f0 000000000ea5f730
  40 +0x000000000ea5f2e0: 000000000ea5f730 000000000e39e800
  41 +0x000000000ea5f2f0: 000000000c3aef00 000000000e392870
  42 +0x000000000ea5f300: 0000000000000000 000000000e3a7de0
  43 +0x000000000ea5f310: 000000000ea5f3c9 00000000535ba905
  44 +0x000000000ea5f320: 000000000000068c 0000000000000000
  45 +0x000000000ea5f330: 000000000e3930b0 000000000e39e800
  46 +0x000000000ea5f340: 0000000000000000 0000000000000000
  47 +
  48 +Instructions: (pc=0x00000000535b9f79)
  49 +0x00000000535b9f59: 85 c0 75 05 48 8b c6 eb 10 49 8b 8c 24 20 01 00
  50 +0x00000000535b9f69: 00 48 8b d0 e8 ee ad e6 ff 48 89 45 c7 4c 8b 03
  51 +0x00000000535b9f79: 48 8b 08 41 8b 50 3c 85 d2 75 09 41 8b 40 34 89
  52 +0x00000000535b9f89: 41 3c eb 03 89 51 3c 4d 8b a4 24 18 01 00 00 33
  53 +
  54 +
  55 +Register to memory mapping:
  56 +
  57 +RAX=0x0000000000000000 is an unknown value
  58 +RBX=0x000000000e3930e8 is an unknown value
  59 +RCX=0x0000000000000000 is an unknown value
  60 +RDX=0x0000000000000000 is an unknown value
  61 +RSP=0x000000000ea5f250 is pointing into the stack for thread: 0x000000000e39e800
  62 +RBP=0x000000000ea5f2b9 is pointing into the stack for thread: 0x000000000e39e800
  63 +RSI=0x0000000000000000 is an unknown value
  64 +RDI=0x000000000e3930f0 is an unknown value
  65 +R8 =0x0000000762fe21a8 is an oop
  66 +
  67 +[error occurred during error reporting (printing register info), id 0xe0000000]
  68 +
  69 +Stack: [0x000000000e960000,0x000000000ea60000], sp=0x000000000ea5f250, free space=1020k
  70 +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
  71 +V [jvm.dll+0x199f79]
  72 +
  73 +
  74 +--------------- P R O C E S S ---------------
  75 +
  76 +Java Threads: ( => current thread )
  77 + 0x00000000115c3000 JavaThread "WebSocket background processing" daemon [_thread_blocked, id=6088, stack(0x00000000195c0000,0x00000000196c0000)]
  78 + 0x00000000115bb800 JavaThread "SockJS-8" [_thread_blocked, id=12788, stack(0x00000000194c0000,0x00000000195c0000)]
  79 + 0x00000000115c2000 JavaThread "SockJS-7" [_thread_blocked, id=9020, stack(0x00000000193c0000,0x00000000194c0000)]
  80 + 0x00000000115c0000 JavaThread "SockJS-6" [_thread_blocked, id=1068, stack(0x00000000192c0000,0x00000000193c0000)]
  81 + 0x00000000115bf000 JavaThread "SockJS-5" [_thread_blocked, id=6768, stack(0x00000000191c0000,0x00000000192c0000)]
  82 + 0x00000000115bd000 JavaThread "SockJS-4" [_thread_blocked, id=12372, stack(0x00000000190c0000,0x00000000191c0000)]
  83 + 0x00000000115be800 JavaThread "SockJS-3" [_thread_blocked, id=13176, stack(0x0000000018ec0000,0x0000000018fc0000)]
  84 + 0x00000000115c0800 JavaThread "WebSocketServer-localhost-ROOT-1" daemon [_thread_blocked, id=5664, stack(0x0000000018dc0000,0x0000000018ec0000)]
  85 + 0x00000000115bd800 JavaThread "SockJS-2" [_thread_blocked, id=12388, stack(0x0000000018cc0000,0x0000000018dc0000)]
  86 + 0x00000000115ba800 JavaThread "SockJS-1" [_thread_blocked, id=12812, stack(0x0000000018bc0000,0x0000000018cc0000)]
  87 + 0x00000000115c1800 JavaThread "pool-4-thread-2" [_thread_blocked, id=8172, stack(0x00000000189c0000,0x0000000018ac0000)]
  88 + 0x0000000010d23000 JavaThread "pool-4-thread-1" [_thread_blocked, id=8228, stack(0x00000000188c0000,0x00000000189c0000)]
  89 + 0x0000000010d20000 JavaThread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2" daemon [_thread_blocked, id=7532, stack(0x00000000187c0000,0x00000000188c0000)]
  90 + 0x0000000010d1b800 JavaThread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1" daemon [_thread_blocked, id=6200, stack(0x00000000186c0000,0x00000000187c0000)]
  91 + 0x0000000010d1e800 JavaThread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0" daemon [_thread_blocked, id=7872, stack(0x00000000185c0000,0x00000000186c0000)]
  92 + 0x0000000010d1d000 JavaThread "Timer-2" daemon [_thread_blocked, id=10996, stack(0x00000000184c0000,0x00000000185c0000)]
  93 + 0x0000000010d1e000 JavaThread "http-nio-9088-exec-10" daemon [_thread_blocked, id=13928, stack(0x00000000183c0000,0x00000000184c0000)]
  94 + 0x0000000010d21000 JavaThread "http-nio-9088-exec-9" daemon [_thread_blocked, id=9656, stack(0x00000000182c0000,0x00000000183c0000)]
  95 + 0x0000000010d21800 JavaThread "http-nio-9088-exec-8" daemon [_thread_blocked, id=13800, stack(0x00000000181c0000,0x00000000182c0000)]
  96 + 0x0000000010d1f800 JavaThread "http-nio-9088-exec-7" daemon [_thread_blocked, id=12916, stack(0x00000000180c0000,0x00000000181c0000)]
  97 + 0x0000000010d1c800 JavaThread "http-nio-9088-exec-6" daemon [_thread_blocked, id=13056, stack(0x0000000017fc0000,0x00000000180c0000)]
  98 + 0x0000000010d22800 JavaThread "http-nio-9088-exec-5" daemon [_thread_blocked, id=13128, stack(0x0000000017ec0000,0x0000000017fc0000)]
  99 + 0x0000000010d14000 JavaThread "http-nio-9088-exec-4" daemon [_thread_blocked, id=2376, stack(0x0000000017dc0000,0x0000000017ec0000)]
  100 + 0x0000000010d18000 JavaThread "http-nio-9088-exec-3" daemon [_thread_blocked, id=2028, stack(0x0000000017cc0000,0x0000000017dc0000)]
  101 + 0x0000000010d1a000 JavaThread "http-nio-9088-exec-2" daemon [_thread_blocked, id=13288, stack(0x0000000017bc0000,0x0000000017cc0000)]
  102 + 0x0000000010d18800 JavaThread "http-nio-9088-exec-1" daemon [_thread_blocked, id=13336, stack(0x0000000017ac0000,0x0000000017bc0000)]
  103 + 0x0000000010d17000 JavaThread "DestroyJavaVM" [_thread_blocked, id=13188, stack(0x0000000002810000,0x0000000002910000)]
  104 + 0x0000000010d15800 JavaThread "pool-3-thread-8" [_thread_blocked, id=10168, stack(0x00000000177c0000,0x00000000178c0000)]
  105 + 0x0000000010d15000 JavaThread "pool-3-thread-7" [_thread_blocked, id=13976, stack(0x00000000176c0000,0x00000000177c0000)]
  106 + 0x0000000010d16800 JavaThread "pool-3-thread-6" [_thread_blocked, id=6360, stack(0x00000000175c0000,0x00000000176c0000)]
  107 + 0x0000000010d1b000 JavaThread "pool-3-thread-5" [_thread_blocked, id=12004, stack(0x00000000174c0000,0x00000000175c0000)]
  108 + 0x0000000010d19800 JavaThread "pool-3-thread-4" [_thread_blocked, id=2952, stack(0x00000000173c0000,0x00000000174c0000)]
  109 + 0x000000000fe6b000 JavaThread "pool-3-thread-3" [_thread_blocked, id=12564, stack(0x00000000171c0000,0x00000000172c0000)]
  110 + 0x000000000fe6c800 JavaThread "pool-3-thread-2" [_thread_blocked, id=13104, stack(0x00000000170c0000,0x00000000171c0000)]
  111 + 0x000000000fe6b800 JavaThread "pool-3-thread-1" [_thread_blocked, id=11560, stack(0x0000000016fc0000,0x00000000170c0000)]
  112 + 0x000000000fe6e000 JavaThread "http-nio-9088-Acceptor-0" daemon [_thread_in_native, id=9136, stack(0x0000000015d50000,0x0000000015e50000)]
  113 + 0x0000000014c5a000 JavaThread "http-nio-9088-ClientPoller-1" daemon [_thread_in_native, id=7852, stack(0x0000000015c50000,0x0000000015d50000)]
  114 + 0x0000000013dc0000 JavaThread "http-nio-9088-ClientPoller-0" daemon [_thread_in_native, id=12424, stack(0x0000000015b50000,0x0000000015c50000)]
  115 + 0x0000000013dbf000 JavaThread "NioBlockingSelector.BlockPoller-1" daemon [_thread_in_native, id=13700, stack(0x0000000015a50000,0x0000000015b50000)]
  116 + 0x00000000120f5000 JavaThread "commons-pool-EvictionTimer" daemon [_thread_blocked, id=11380, stack(0x0000000015950000,0x0000000015a50000)]
  117 + 0x00000000104e5800 JavaThread "Timer-0" daemon [_thread_blocked, id=12924, stack(0x0000000015650000,0x0000000015750000)]
  118 + 0x0000000010084800 JavaThread "container-0" [_thread_blocked, id=9884, stack(0x00000000144f0000,0x00000000145f0000)]
  119 + 0x00000000135e3000 JavaThread "ContainerBackgroundProcessor[StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]" daemon [_thread_blocked, id=8248, stack(0x0000000013110000,0x0000000013210000)]
  120 + 0x0000000014ac9800 JavaThread "Abandoned connection cleanup thread" daemon [_thread_blocked, id=5796, stack(0x0000000013010000,0x0000000013110000)]
  121 + 0x000000001199d800 JavaThread "Tomcat JDBC Pool Cleaner[169174794:1470299944387]" daemon [_thread_blocked, id=2196, stack(0x0000000012f10000,0x0000000013010000)]
  122 + 0x000000000f1ee800 JavaThread "FileSystemWatcher: files=#243 cl=sun.misc.Launcher$AppClassLoader@a15670a" daemon [_thread_blocked, id=13032, stack(0x00000000109f0000,0x0000000010af0000)]
  123 + 0x000000000eec2000 JavaThread "Service Thread" daemon [_thread_blocked, id=11684, stack(0x000000000f710000,0x000000000f810000)]
  124 + 0x000000000eeca800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=13412, stack(0x000000000f610000,0x000000000f710000)]
  125 + 0x000000000eec9800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=5552, stack(0x000000000f510000,0x000000000f610000)]
  126 + 0x000000000e3ad000 JavaThread "JDWP Command Reader" daemon [_thread_in_native, id=8012, stack(0x000000000ec10000,0x000000000ed10000)]
  127 + 0x000000000e3ac000 JavaThread "JDWP Event Helper Thread" daemon [_thread_blocked, id=6576, stack(0x000000000eb10000,0x000000000ec10000)]
  128 +=>0x000000000e39e800 JavaThread "JDWP Transport Listener: dt_socket" daemon [_thread_in_vm, id=4048, stack(0x000000000e960000,0x000000000ea60000)]
  129 + 0x000000000e396800 JavaThread "Attach Listener" daemon [_thread_blocked, id=6340, stack(0x000000000e860000,0x000000000e960000)]
  130 + 0x000000000e391800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=4020, stack(0x000000000e760000,0x000000000e860000)]
  131 + 0x000000000c399000 JavaThread "Finalizer" daemon [_thread_blocked, id=10992, stack(0x000000000e260000,0x000000000e360000)]
  132 + 0x00000000029fe800 JavaThread "Reference Handler" daemon [_thread_blocked, id=9164, stack(0x000000000e160000,0x000000000e260000)]
  133 +
  134 +Other Threads:
  135 + 0x000000000c395000 VMThread [stack: 0x000000000e060000,0x000000000e160000] [id=2068]
  136 + 0x000000000eed9800 WatcherThread [stack: 0x000000000f810000,0x000000000f910000] [id=3876]
  137 +
  138 +VM state:not at safepoint (normal execution)
  139 +
  140 +VM Mutex/Monitor currently owned by a thread: None
  141 +
  142 +Heap
  143 + PSYoungGen total 765440K, used 370K [0x00000007cba80000, 0x00000007ff180000, 0x0000000800000000)
  144 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cbadc9c0,0x00000007f5980000)
  145 + from space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  146 + to space 74752K, 0% used [0x00000007fa880000,0x00000007fa880000,0x00000007ff180000)
  147 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  148 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494d00,0x00000007cba80000)
  149 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  150 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  151 +
  152 +Card table byte_map: [0x0000000005b10000,0x0000000006030000] byte_map_base: 0x0000000002021000
  153 +
  154 +Polling page: 0x0000000000650000
  155 +
  156 +Code Cache [0x0000000002b10000, 0x00000000035e0000, 0x0000000005b10000)
  157 + total_blobs=3304 nmethods=2730 adapters=532 free_code_cache=38289Kb largest_free_block=39047680
  158 +
  159 +Compilation events (10 events):
  160 +Event: 1149.288 Thread 0x000000000eeca800 nmethod 3358 0x0000000003411550 code [0x00000000034116a0, 0x0000000003411868]
  161 +Event: 1149.288 Thread 0x000000000eeca800 3359 org.springsource.loaded.ri.Invoker::getJavaMethod (20 bytes)
  162 +Event: 1149.289 Thread 0x000000000eeca800 nmethod 3359 0x000000000359bad0 code [0x000000000359bc00, 0x000000000359bc78]
  163 +Event: 1149.301 Thread 0x000000000eec9800 nmethod 3353 0x00000000035b0c50 code [0x00000000035b0f60, 0x00000000035b2538]
  164 +Event: 1155.428 Thread 0x000000000eeca800 3360 sl.org.objectweb.asm.ClassReader::b (1124 bytes)
  165 +Event: 1155.431 Thread 0x000000000eec9800 3361 sl.org.objectweb.asm.ClassWriter::toByteArray (1303 bytes)
  166 +Event: 1155.832 Thread 0x000000000eec9800 nmethod 3361 0x00000000035bb890 code [0x00000000035bbea0, 0x00000000035c1bb8]
  167 +Event: 1155.832 Thread 0x000000000eec9800 3362 % org.springsource.loaded.TypeDescriptor::getByDescriptor @ 12 (60 bytes)
  168 +Event: 1155.840 Thread 0x000000000eec9800 nmethod 3362% 0x000000000359d4d0 code [0x000000000359d640, 0x000000000359e458]
  169 +Event: 1155.856 Thread 0x000000000eeca800 nmethod 3360 0x00000000035c74d0 code [0x00000000035c7900, 0x00000000035cc260]
  170 +
  171 +GC Heap History (10 events):
  172 +Event: 1156.624 GC heap before
  173 +{Heap before GC invocations=25 (full 8):
  174 + PSYoungGen total 764416K, used 0K [0x00000007cba80000, 0x00000007ff880000, 0x0000000800000000)
  175 + eden space 680448K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5300000)
  176 + from space 83968K, 0% used [0x00000007f5300000,0x00000007f5300000,0x00000007fa500000)
  177 + to space 81408K, 0% used [0x00000007fa900000,0x00000007fa900000,0x00000007ff880000)
  178 + ParOldGen total 1714688K, used 70830K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  179 + object space 1714688K, 4% used [0x0000000763000000,0x000000076752bac8,0x00000007cba80000)
  180 + PSPermGen total 83968K, used 83967K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  181 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffffd0,0x0000000763000000)
  182 +Event: 1156.734 GC heap after
  183 +Heap after GC invocations=25 (full 8):
  184 + PSYoungGen total 764416K, used 0K [0x00000007cba80000, 0x00000007ff880000, 0x0000000800000000)
  185 + eden space 680448K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5300000)
  186 + from space 83968K, 0% used [0x00000007f5300000,0x00000007f5300000,0x00000007fa500000)
  187 + to space 81408K, 0% used [0x00000007fa900000,0x00000007fa900000,0x00000007ff880000)
  188 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  189 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494e10,0x00000007cba80000)
  190 + PSPermGen total 83968K, used 83950K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  191 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffb848,0x0000000763000000)
  192 +}
  193 +Event: 1156.734 GC heap before
  194 +{Heap before GC invocations=26 (full 8):
  195 + PSYoungGen total 764416K, used 6940K [0x00000007cba80000, 0x00000007ff880000, 0x0000000800000000)
  196 + eden space 680448K, 1% used [0x00000007cba80000,0x00000007cc1472a0,0x00000007f5300000)
  197 + from space 83968K, 0% used [0x00000007f5300000,0x00000007f5300000,0x00000007fa500000)
  198 + to space 81408K, 0% used [0x00000007fa900000,0x00000007fa900000,0x00000007ff880000)
  199 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  200 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494e10,0x00000007cba80000)
  201 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  202 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  203 +Event: 1156.738 GC heap after
  204 +Heap after GC invocations=26 (full 8):
  205 + PSYoungGen total 762368K, used 0K [0x00000007cba80000, 0x00000007ff280000, 0x0000000800000000)
  206 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5980000)
  207 + from space 75264K, 0% used [0x00000007fa900000,0x00000007fa900000,0x00000007ff280000)
  208 + to space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  209 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  210 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494e10,0x00000007cba80000)
  211 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  212 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  213 +}
  214 +Event: 1156.738 GC heap before
  215 +{Heap before GC invocations=27 (full 9):
  216 + PSYoungGen total 762368K, used 0K [0x00000007cba80000, 0x00000007ff280000, 0x0000000800000000)
  217 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5980000)
  218 + from space 75264K, 0% used [0x00000007fa900000,0x00000007fa900000,0x00000007ff280000)
  219 + to space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  220 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  221 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494e10,0x00000007cba80000)
  222 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  223 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  224 +Event: 1156.915 GC heap after
  225 +Heap after GC invocations=27 (full 9):
  226 + PSYoungGen total 762368K, used 0K [0x00000007cba80000, 0x00000007ff280000, 0x0000000800000000)
  227 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5980000)
  228 + from space 75264K, 0% used [0x00000007fa900000,0x00000007fa900000,0x00000007ff280000)
  229 + to space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  230 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  231 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494d00,0x00000007cba80000)
  232 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  233 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  234 +}
  235 +Event: 1156.915 GC heap before
  236 +{Heap before GC invocations=28 (full 9):
  237 + PSYoungGen total 762368K, used 0K [0x00000007cba80000, 0x00000007ff280000, 0x0000000800000000)
  238 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5980000)
  239 + from space 75264K, 0% used [0x00000007fa900000,0x00000007fa900000,0x00000007ff280000)
  240 + to space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  241 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  242 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494d00,0x00000007cba80000)
  243 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  244 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  245 +Event: 1156.918 GC heap after
  246 +Heap after GC invocations=28 (full 9):
  247 + PSYoungGen total 765440K, used 0K [0x00000007cba80000, 0x00000007ff180000, 0x0000000800000000)
  248 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5980000)
  249 + from space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  250 + to space 74752K, 0% used [0x00000007fa880000,0x00000007fa880000,0x00000007ff180000)
  251 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  252 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494d00,0x00000007cba80000)
  253 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  254 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  255 +}
  256 +Event: 1156.918 GC heap before
  257 +{Heap before GC invocations=29 (full 10):
  258 + PSYoungGen total 765440K, used 0K [0x00000007cba80000, 0x00000007ff180000, 0x0000000800000000)
  259 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5980000)
  260 + from space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  261 + to space 74752K, 0% used [0x00000007fa880000,0x00000007fa880000,0x00000007ff180000)
  262 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  263 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494d00,0x00000007cba80000)
  264 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  265 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  266 +Event: 1157.029 GC heap after
  267 +Heap after GC invocations=29 (full 10):
  268 + PSYoungGen total 765440K, used 0K [0x00000007cba80000, 0x00000007ff180000, 0x0000000800000000)
  269 + eden space 687104K, 0% used [0x00000007cba80000,0x00000007cba80000,0x00000007f5980000)
  270 + from space 78336K, 0% used [0x00000007f5980000,0x00000007f5980000,0x00000007fa600000)
  271 + to space 74752K, 0% used [0x00000007fa880000,0x00000007fa880000,0x00000007ff180000)
  272 + ParOldGen total 1714688K, used 70227K [0x0000000763000000, 0x00000007cba80000, 0x00000007cba80000)
  273 + object space 1714688K, 4% used [0x0000000763000000,0x0000000767494d00,0x00000007cba80000)
  274 + PSPermGen total 83968K, used 83963K [0x000000075de00000, 0x0000000763000000, 0x0000000763000000)
  275 + object space 83968K, 99% used [0x000000075de00000,0x0000000762ffec28,0x0000000763000000)
  276 +}
  277 +
  278 +Deoptimization events (10 events):
  279 +Event: 938.332 Thread 0x0000000010d21000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000030b552c method=org.springsource.loaded.ri.ReflectiveInterceptor.getReloadableTypeIfHasBeenReloaded(Ljava/lang/Class;)Lorg/springsource/loaded/ReloadableType; @ 3
  280 +Event: 938.335 Thread 0x0000000010d21000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000030b9028 method=org.springsource.loaded.ri.ReflectiveInterceptor.getReloadableTypeIfHasBeenReloaded(Ljava/lang/Class;)Lorg/springsource/loaded/ReloadableType; @ 3
  281 +Event: 938.339 Thread 0x0000000010d21000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002f85038 method=org.springsource.loaded.ri.ReflectiveInterceptor.getReloadableTypeIfHasBeenReloaded(Ljava/lang/Class;)Lorg/springsource/loaded/ReloadableType; @ 3
  282 +Event: 942.703 Thread 0x0000000010d15800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002fd02f4 method=org.springsource.loaded.ri.ReflectiveInterceptor.getReloadableTypeIfHasBeenReloaded(Ljava/lang/Class;)Lorg/springsource/loaded/ReloadableType; @ 3
  283 +Event: 942.703 Thread 0x0000000010d15800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002d56b88 method=org.springsource.loaded.ri.ReflectiveInterceptor.getReloadableTypeIfHasBeenReloaded(Ljava/lang/Class;)Lorg/springsource/loaded/ReloadableType; @ 3
  284 +Event: 942.703 Thread 0x0000000010d15800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000030f0a64 method=org.springsource.loaded.ri.ReflectiveInterceptor.getReloadableTypeIfHasBeenReloaded(Ljava/lang/Class;)Lorg/springsource/loaded/ReloadableType; @ 3
  285 +Event: 948.331 Thread 0x0000000010d1c800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002c56894 method=org.springsource.loaded.ri.ReflectiveInterceptor.getReloadableTypeIfHasBeenReloaded(Ljava/lang/Class;)Lorg/springsource/loaded/ReloadableType; @ 3
  286 +Event: 1155.432 Thread 0x000000000f1ee800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003050388 method=sl.org.objectweb.asm.MethodWriter.visitIntInsn(II)V @ 15
  287 +Event: 1155.759 Thread 0x000000000f1ee800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000032fe19c method=org.springsource.loaded.TypeRegistry.getTypeRegistryFor(Ljava/lang/ClassLoader;)Lorg/springsource/loaded/TypeRegistry; @ 167
  288 +Event: 1155.759 Thread 0x000000000f1ee800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000032fe19c method=org.springsource.loaded.TypeRegistry.getTypeRegistryFor(Ljava/lang/ClassLoader;)Lorg/springsource/loaded/TypeRegistry; @ 167
  289 +
  290 +Internal exceptions (10 events):
  291 +Event: 935.722 Thread 0x000000000f1ee800 Threw 0x00000007cbde06a0 at C:\re\jdk7u80\2329\hotspot\src\share\vm\prims\jvm.cpp:1319
  292 +Event: 935.722 Thread 0x000000000f1ee800 Threw 0x00000007cbdf07b0 at C:\re\jdk7u80\2329\hotspot\src\share\vm\prims\jvm.cpp:1319
  293 +Event: 935.724 Thread 0x000000000f1ee800 Threw 0x00000007cbe22338 at C:\re\jdk7u80\2329\hotspot\src\share\vm\prims\jvm.cpp:1319
  294 +Event: 935.724 Thread 0x000000000f1ee800 Threw 0x00000007cbe2ec08 at C:\re\jdk7u80\2329\hotspot\src\share\vm\prims\jvm.cpp:1319
  295 +Event: 935.726 Thread 0x000000000f1ee800 Threw 0x00000007cbe770f0 at C:\re\jdk7u80\2329\hotspot\src\share\vm\prims\jvm.cpp:1319
  296 +Event: 935.728 Thread 0x000000000f1ee800 Implicit null exception at 0x0000000002de657f to 0x0000000002de6a1d
  297 +Event: 935.729 Thread 0x000000000f1ee800 Threw 0x00000007cbe8bdb8 at C:\re\jdk7u80\2329\hotspot\src\share\vm\prims\jvm.cpp:1319
  298 +Event: 935.730 Thread 0x000000000f1ee800 Implicit null exception at 0x0000000002d52e10 to 0x0000000002d52e5d
  299 +Event: 937.543 Thread 0x000000000fe6c800 Threw 0x00000007ccbe0330 at C:\re\jdk7u80\2329\hotspot\src\share\vm\prims\jvm.cpp:1319
  300 +Event: 1157.029 Thread 0x000000000e39e800 Threw 0x000000075dead638 at C:\re\jdk7u80\2329\hotspot\src\share\vm\gc_interface/collectedHeap.inline.hpp:225
  301 +
  302 +Events (10 events):
  303 +Event: 1155.759 Thread 0x000000000f1ee800 Uncommon trap: trap_request=0xffffffde fr.pc=0x00000000032fe19c
  304 +Event: 1155.759 Thread 0x000000000f1ee800 DEOPT PACKING pc=0x00000000032fe19c sp=0x0000000010aed6b0
  305 +Event: 1155.759 Thread 0x000000000f1ee800 DEOPT UNPACKING pc=0x0000000002b475a4 sp=0x0000000010aed600 mode 2
  306 +Event: 1155.856 Thread 0x000000000eeca800 flushing nmethod 0x0000000002c65150
  307 +Event: 1156.219 Executing VM operation: ParallelGCFailedPermanentAllocation
  308 +Event: 1156.352 Executing VM operation: ParallelGCFailedPermanentAllocation done
  309 +Event: 1156.352 Executing VM operation: ParallelGCFailedPermanentAllocation
  310 +Event: 1156.734 Executing VM operation: ParallelGCFailedPermanentAllocation done
  311 +Event: 1156.734 Executing VM operation: ParallelGCFailedPermanentAllocation
  312 +Event: 1157.029 Executing VM operation: ParallelGCFailedPermanentAllocation done
  313 +
  314 +
  315 +Dynamic libraries:
  316 +0x00007ff7f0560000 - 0x00007ff7f0593000 C:\Program Files\Java\jdk1.7.0_80\bin\javaw.exe
  317 +0x00007fff1e7c0000 - 0x00007fff1e981000 C:\WINDOWS\SYSTEM32\ntdll.dll
  318 +0x00007fff1bbc0000 - 0x00007fff1bc6d000 C:\WINDOWS\system32\KERNEL32.DLL
  319 +0x00007fff1b960000 - 0x00007fff1bb48000 C:\WINDOWS\system32\KERNELBASE.dll
  320 +0x00007fff1bc70000 - 0x00007fff1bd17000 C:\WINDOWS\system32\ADVAPI32.dll
  321 +0x00007fff1da50000 - 0x00007fff1daed000 C:\WINDOWS\system32\msvcrt.dll
  322 +0x00007fff1e490000 - 0x00007fff1e4eb000 C:\WINDOWS\system32\sechost.dll
  323 +0x00007fff1daf0000 - 0x00007fff1dc0c000 C:\WINDOWS\system32\RPCRT4.dll
  324 +0x00007fff1c1b0000 - 0x00007fff1c306000 C:\WINDOWS\system32\USER32.dll
  325 +0x00007fff1e5c0000 - 0x00007fff1e746000 C:\WINDOWS\system32\GDI32.dll
  326 +0x00007fff15b20000 - 0x00007fff15d94000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.10586.494_none_a2d8b04ea53e3145\COMCTL32.dll
  327 +0x00007fff1e1b0000 - 0x00007fff1e42d000 C:\WINDOWS\system32\combase.dll
  328 +0x00007fff1bb50000 - 0x00007fff1bbba000 C:\WINDOWS\system32\bcryptPrimitives.dll
  329 +0x00007fff1e000000 - 0x00007fff1e03b000 C:\WINDOWS\system32\IMM32.DLL
  330 +0x0000000054bb0000 - 0x0000000054c82000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\msvcr100.dll
  331 +0x0000000053420000 - 0x0000000053bf9000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\server\jvm.dll
  332 +0x00007fff1e1a0000 - 0x00007fff1e1a8000 C:\WINDOWS\system32\PSAPI.DLL
  333 +0x00007fff18230000 - 0x00007fff18239000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
  334 +0x00007fff18eb0000 - 0x00007fff18ed3000 C:\WINDOWS\SYSTEM32\WINMM.dll
  335 +0x00007fff1e750000 - 0x00007fff1e7bb000 C:\WINDOWS\system32\WS2_32.dll
  336 +0x00007fff18e30000 - 0x00007fff18e5c000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
  337 +0x00007fff1b240000 - 0x00007fff1b283000 C:\WINDOWS\system32\cfgmgr32.dll
  338 +0x0000000054ba0000 - 0x0000000054baf000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\verify.dll
  339 +0x0000000054b70000 - 0x0000000054b98000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\java.dll
  340 +0x0000000054b30000 - 0x0000000054b65000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\jdwp.dll
  341 +0x0000000054b20000 - 0x0000000054b28000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\npt.dll
  342 +0x0000000054af0000 - 0x0000000054b13000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\instrument.dll
  343 +0x0000000054ad0000 - 0x0000000054ae6000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\zip.dll
  344 +0x0000000054ac0000 - 0x0000000054ac9000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\dt_socket.dll
  345 +0x00007fff08350000 - 0x00007fff08366000 C:\WINDOWS\system32\napinsp.dll
  346 +0x00007fff08310000 - 0x00007fff0832a000 C:\WINDOWS\system32\pnrpnsp.dll
  347 +0x00007fff18e60000 - 0x00007fff18e78000 C:\WINDOWS\system32\NLAapi.dll
  348 +0x00007fff1a6b0000 - 0x00007fff1a70c000 C:\WINDOWS\System32\mswsock.dll
  349 +0x00007fff19760000 - 0x00007fff1980a000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
  350 +0x00007fff1e500000 - 0x00007fff1e508000 C:\WINDOWS\system32\NSI.dll
  351 +0x00007fff09680000 - 0x00007fff0968d000 C:\WINDOWS\System32\winrnr.dll
  352 +0x00000000553e0000 - 0x0000000055406000 C:\Program Files\Bonjour\mdnsNSP.dll
  353 +0x00007fff12600000 - 0x00007fff12638000 C:\WINDOWS\SYSTEM32\Iphlpapi.DLL
  354 +0x00007fff11f80000 - 0x00007fff11fe7000 C:\WINDOWS\System32\fwpuclnt.dll
  355 +0x00007fff1ad10000 - 0x00007fff1ad39000 C:\WINDOWS\SYSTEM32\bcrypt.dll
  356 +0x00007fff0b3c0000 - 0x00007fff0b3ca000 C:\Windows\System32\rasadhlp.dll
  357 +0x0000000054aa0000 - 0x0000000054aba000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\net.dll
  358 +0x0000000054a80000 - 0x0000000054a91000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\nio.dll
  359 +0x0000000054a70000 - 0x0000000054a7b000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\management.dll
  360 +0x00007fff1a760000 - 0x00007fff1a777000 C:\WINDOWS\SYSTEM32\CRYPTSP.dll
  361 +0x00007fff1a3f0000 - 0x00007fff1a424000 C:\WINDOWS\system32\rsaenh.dll
  362 +0x00007fff1a540000 - 0x00007fff1a55f000 C:\WINDOWS\SYSTEM32\USERENV.dll
  363 +0x00007fff1ade0000 - 0x00007fff1adf4000 C:\WINDOWS\system32\profapi.dll
  364 +0x00007fff1a880000 - 0x00007fff1a88b000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
  365 +0x00007fff11c80000 - 0x00007fff11c96000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
  366 +0x00007fff11d40000 - 0x00007fff11d5a000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
  367 +0x0000000054a40000 - 0x0000000054a64000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\sunec.dll
  368 +0x0000000054a30000 - 0x0000000054a3b000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\sunmscapi.dll
  369 +0x00007fff1af30000 - 0x00007fff1b0f8000 C:\WINDOWS\system32\CRYPT32.dll
  370 +0x00007fff1ae50000 - 0x00007fff1ae60000 C:\WINDOWS\system32\MSASN1.dll
  371 +0x0000000054890000 - 0x0000000054a25000 C:\Program Files\Java\jdk1.7.0_80\jre\bin\awt.dll
  372 +0x00007fff1df10000 - 0x00007fff1dfd1000 C:\WINDOWS\system32\OLEAUT32.dll
  373 +0x00007fff195d0000 - 0x00007fff19649000 C:\WINDOWS\system32\apphelp.dll
  374 +0x00007fff17d40000 - 0x00007fff17ecc000 C:\WINDOWS\SYSTEM32\dbghelp.dll
  375 +
  376 +VM Arguments:
  377 +jvm_args: -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:61815 -javaagent:G:\springloaded-1.2.5.RELEASE.jar -Xverify:none -Xms1028m -Xmx2512m -Dfile.encoding=UTF-8
  378 +java_command: com.bsth.Application
  379 +Launcher Type: SUN_STANDARD
  380 +
  381 +Environment Variables:
  382 +JAVA_HOME=C:\Program Files\Java\jdk1.7.0_80
  383 +CLASSPATH=.;C:\Program Files\Java\jdk1.7.0_80\lib;C:\Program Files\Java\jdk1.7.0_80\lib\tools.jar
  384 +PATH=C:\Perl64\site\bin;C:\Perl64\bin;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Intel\IntelSGXPSW\bin\x64\Release\;C:\Program Files\Intel\IntelSGXPSW\bin\win32\Release\;C:\Program Files\Java\jdk1.7.0_80\bin;C:\Program Files\Java\jdk1.7.0_80\jre\bin;G:\apache-maven-3.3.9\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;G:\TortoiseSVN 1.9\bin;G:\Git\cmd;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin;D:\openssl\bin;C:\Program Files\nodejs\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Users\panzhao\AppData\Roaming\npm;C:\Program Files (x86)\SSH Communications Security\SSH Secure Shell
  385 +USERNAME=panzhao
  386 +OS=Windows_NT
  387 +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 94 Stepping 3, GenuineIntel
  388 +
  389 +
  390 +
  391 +--------------- S Y S T E M ---------------
  392 +
  393 +OS: Windows 8.1 , 64 bit Build 9600
  394 +
  395 +CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 94 stepping 3, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, erms, ht, tsc, tscinvbit
  396 +
  397 +Memory: 4k page, physical 8223456k(2856092k free), swap 9599712k(1366128k free)
  398 +
  399 +vm_info: Java HotSpot(TM) 64-Bit Server VM (24.80-b11) for windows-amd64 JRE (1.7.0_80-b15), built on Apr 10 2015 11:26:34 by "java_re" with unknown MS VC++:1600
  400 +
  401 +time: Thu Aug 04 16:58:12 2016
  402 +elapsed time: 1157 seconds
  403 +
... ...
src/main/java/com/bsth/StartCommand.java
... ... @@ -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>
... ...
src/main/resources/datatools/ktrs/ttinfodetailoutputforedit.ktr
... ... @@ -309,8 +309,8 @@
309 309 <fields>
310 310 <field>
311 311 <name>lp</name>
312   - <type>Integer</type>
313   - <format>0</format>
  312 + <type>String</type>
  313 + <format/>
314 314 </field>
315 315 <field>
316 316 <name>fcno1_id</name>
... ... @@ -333,6 +333,16 @@
333 333 <format/>
334 334 </field>
335 335 <field>
  336 + <name>fcno1_xldir</name>
  337 + <type>String</type>
  338 + <format/>
  339 + </field>
  340 + <field>
  341 + <name>fcno1_isfb</name>
  342 + <type>String</type>
  343 + <format/>
  344 + </field>
  345 + <field>
336 346 <name>fcno2_id</name>
337 347 <type>String</type>
338 348 <format/>
... ... @@ -353,6 +363,16 @@
353 363 <format/>
354 364 </field>
355 365 <field>
  366 + <name>fcno2_xldir</name>
  367 + <type>String</type>
  368 + <format/>
  369 + </field>
  370 + <field>
  371 + <name>fcno2_isfb</name>
  372 + <type>String</type>
  373 + <format/>
  374 + </field>
  375 + <field>
356 376 <name>fcno3_id</name>
357 377 <type>String</type>
358 378 <format/>
... ... @@ -373,6 +393,16 @@
373 393 <format/>
374 394 </field>
375 395 <field>
  396 + <name>fcno3_xldir</name>
  397 + <type>String</type>
  398 + <format/>
  399 + </field>
  400 + <field>
  401 + <name>fcno3_isfb</name>
  402 + <type>String</type>
  403 + <format/>
  404 + </field>
  405 + <field>
376 406 <name>fcno4_id</name>
377 407 <type>String</type>
378 408 <format/>
... ... @@ -393,6 +423,16 @@
393 423 <format/>
394 424 </field>
395 425 <field>
  426 + <name>fcno4_xldir</name>
  427 + <type>String</type>
  428 + <format/>
  429 + </field>
  430 + <field>
  431 + <name>fcno4_isfb</name>
  432 + <type>String</type>
  433 + <format/>
  434 + </field>
  435 + <field>
396 436 <name>fcno5_id</name>
397 437 <type>String</type>
398 438 <format/>
... ... @@ -413,6 +453,16 @@
413 453 <format/>
414 454 </field>
415 455 <field>
  456 + <name>fcno5_xldir</name>
  457 + <type>String</type>
  458 + <format/>
  459 + </field>
  460 + <field>
  461 + <name>fcno5_isfb</name>
  462 + <type>String</type>
  463 + <format/>
  464 + </field>
  465 + <field>
416 466 <name>fcno6_id</name>
417 467 <type>String</type>
418 468 <format/>
... ... @@ -433,6 +483,16 @@
433 483 <format/>
434 484 </field>
435 485 <field>
  486 + <name>fcno6_xldir</name>
  487 + <type>String</type>
  488 + <format/>
  489 + </field>
  490 + <field>
  491 + <name>fcno6_isfb</name>
  492 + <type>String</type>
  493 + <format/>
  494 + </field>
  495 + <field>
436 496 <name>fcno7_id</name>
437 497 <type>String</type>
438 498 <format/>
... ... @@ -453,6 +513,16 @@
453 513 <format/>
454 514 </field>
455 515 <field>
  516 + <name>fcno7_xldir</name>
  517 + <type>String</type>
  518 + <format/>
  519 + </field>
  520 + <field>
  521 + <name>fcno7_isfb</name>
  522 + <type>String</type>
  523 + <format/>
  524 + </field>
  525 + <field>
456 526 <name>fcno8_id</name>
457 527 <type>String</type>
458 528 <format/>
... ... @@ -473,6 +543,16 @@
473 543 <format/>
474 544 </field>
475 545 <field>
  546 + <name>fcno8_xldir</name>
  547 + <type>String</type>
  548 + <format/>
  549 + </field>
  550 + <field>
  551 + <name>fcno8_isfb</name>
  552 + <type>String</type>
  553 + <format/>
  554 + </field>
  555 + <field>
476 556 <name>fcno9_id</name>
477 557 <type>String</type>
478 558 <format/>
... ... @@ -493,6 +573,16 @@
493 573 <format/>
494 574 </field>
495 575 <field>
  576 + <name>fcno9_xldir</name>
  577 + <type>String</type>
  578 + <format/>
  579 + </field>
  580 + <field>
  581 + <name>fcno9_isfb</name>
  582 + <type>String</type>
  583 + <format/>
  584 + </field>
  585 + <field>
496 586 <name>fcno10_id</name>
497 587 <type>String</type>
498 588 <format/>
... ... @@ -513,6 +603,16 @@
513 603 <format/>
514 604 </field>
515 605 <field>
  606 + <name>fcno10_xldir</name>
  607 + <type>String</type>
  608 + <format/>
  609 + </field>
  610 + <field>
  611 + <name>fcno10_isfb</name>
  612 + <type>String</type>
  613 + <format/>
  614 + </field>
  615 + <field>
516 616 <name>fcno11_id</name>
517 617 <type>String</type>
518 618 <format/>
... ... @@ -533,6 +633,16 @@
533 633 <format/>
534 634 </field>
535 635 <field>
  636 + <name>fcno11_xldir</name>
  637 + <type>String</type>
  638 + <format/>
  639 + </field>
  640 + <field>
  641 + <name>fcno11_isfb</name>
  642 + <type>String</type>
  643 + <format/>
  644 + </field>
  645 + <field>
536 646 <name>fcno12_id</name>
537 647 <type>String</type>
538 648 <format/>
... ... @@ -553,6 +663,16 @@
553 663 <format/>
554 664 </field>
555 665 <field>
  666 + <name>fcno12_xldir</name>
  667 + <type>String</type>
  668 + <format/>
  669 + </field>
  670 + <field>
  671 + <name>fcno12_isfb</name>
  672 + <type>String</type>
  673 + <format/>
  674 + </field>
  675 + <field>
556 676 <name>fcno13_id</name>
557 677 <type>String</type>
558 678 <format/>
... ... @@ -573,6 +693,16 @@
573 693 <format/>
574 694 </field>
575 695 <field>
  696 + <name>fcno13_xldir</name>
  697 + <type>String</type>
  698 + <format/>
  699 + </field>
  700 + <field>
  701 + <name>fcno13_isfb</name>
  702 + <type>String</type>
  703 + <format/>
  704 + </field>
  705 + <field>
576 706 <name>fcno14_id</name>
577 707 <type>String</type>
578 708 <format/>
... ... @@ -593,6 +723,16 @@
593 723 <format/>
594 724 </field>
595 725 <field>
  726 + <name>fcno14_xldir</name>
  727 + <type>String</type>
  728 + <format/>
  729 + </field>
  730 + <field>
  731 + <name>fcno14_isfb</name>
  732 + <type>String</type>
  733 + <format/>
  734 + </field>
  735 + <field>
596 736 <name>fcno15_id</name>
597 737 <type>String</type>
598 738 <format/>
... ... @@ -613,6 +753,16 @@
613 753 <format/>
614 754 </field>
615 755 <field>
  756 + <name>fcno15_xldir</name>
  757 + <type>String</type>
  758 + <format/>
  759 + </field>
  760 + <field>
  761 + <name>fcno15_isfb</name>
  762 + <type>String</type>
  763 + <format/>
  764 + </field>
  765 + <field>
616 766 <name>fcno16_id</name>
617 767 <type>String</type>
618 768 <format/>
... ... @@ -633,6 +783,16 @@
633 783 <format/>
634 784 </field>
635 785 <field>
  786 + <name>fcno16_xldir</name>
  787 + <type>String</type>
  788 + <format/>
  789 + </field>
  790 + <field>
  791 + <name>fcno16_isfb</name>
  792 + <type>String</type>
  793 + <format/>
  794 + </field>
  795 + <field>
636 796 <name>fcno17_id</name>
637 797 <type>String</type>
638 798 <format/>
... ... @@ -653,6 +813,16 @@
653 813 <format/>
654 814 </field>
655 815 <field>
  816 + <name>fcno17_xldir</name>
  817 + <type>String</type>
  818 + <format/>
  819 + </field>
  820 + <field>
  821 + <name>fcno17_isfb</name>
  822 + <type>String</type>
  823 + <format/>
  824 + </field>
  825 + <field>
656 826 <name>fcno18_id</name>
657 827 <type>String</type>
658 828 <format/>
... ... @@ -673,6 +843,16 @@
673 843 <format/>
674 844 </field>
675 845 <field>
  846 + <name>fcno18_xldir</name>
  847 + <type>String</type>
  848 + <format/>
  849 + </field>
  850 + <field>
  851 + <name>fcno18_isfb</name>
  852 + <type>String</type>
  853 + <format/>
  854 + </field>
  855 + <field>
676 856 <name>fcno19_id</name>
677 857 <type>String</type>
678 858 <format/>
... ... @@ -693,6 +873,16 @@
693 873 <format/>
694 874 </field>
695 875 <field>
  876 + <name>fcno19_xldir</name>
  877 + <type>String</type>
  878 + <format/>
  879 + </field>
  880 + <field>
  881 + <name>fcno19_isfb</name>
  882 + <type>String</type>
  883 + <format/>
  884 + </field>
  885 + <field>
696 886 <name>fcno20_id</name>
697 887 <type>String</type>
698 888 <format/>
... ... @@ -713,6 +903,16 @@
713 903 <format/>
714 904 </field>
715 905 <field>
  906 + <name>fcno20_xldir</name>
  907 + <type>String</type>
  908 + <format/>
  909 + </field>
  910 + <field>
  911 + <name>fcno20_isfb</name>
  912 + <type>String</type>
  913 + <format/>
  914 + </field>
  915 + <field>
716 916 <name>fcno21_id</name>
717 917 <type>String</type>
718 918 <format/>
... ... @@ -733,6 +933,16 @@
733 933 <format/>
734 934 </field>
735 935 <field>
  936 + <name>fcno21_xldir</name>
  937 + <type>String</type>
  938 + <format/>
  939 + </field>
  940 + <field>
  941 + <name>fcno21_isfb</name>
  942 + <type>String</type>
  943 + <format/>
  944 + </field>
  945 + <field>
736 946 <name>fcno22_id</name>
737 947 <type>String</type>
738 948 <format/>
... ... @@ -753,6 +963,16 @@
753 963 <format/>
754 964 </field>
755 965 <field>
  966 + <name>fcno22_xldir</name>
  967 + <type>String</type>
  968 + <format/>
  969 + </field>
  970 + <field>
  971 + <name>fcno22_isfb</name>
  972 + <type>String</type>
  973 + <format/>
  974 + </field>
  975 + <field>
756 976 <name>fcno23_id</name>
757 977 <type>String</type>
758 978 <format/>
... ... @@ -773,6 +993,16 @@
773 993 <format/>
774 994 </field>
775 995 <field>
  996 + <name>fcno23_xldir</name>
  997 + <type>String</type>
  998 + <format/>
  999 + </field>
  1000 + <field>
  1001 + <name>fcno23_isfb</name>
  1002 + <type>String</type>
  1003 + <format/>
  1004 + </field>
  1005 + <field>
776 1006 <name>fcno24_id</name>
777 1007 <type>String</type>
778 1008 <format/>
... ... @@ -793,6 +1023,16 @@
793 1023 <format/>
794 1024 </field>
795 1025 <field>
  1026 + <name>fcno24_xldir</name>
  1027 + <type>String</type>
  1028 + <format/>
  1029 + </field>
  1030 + <field>
  1031 + <name>fcno24_isfb</name>
  1032 + <type>String</type>
  1033 + <format/>
  1034 + </field>
  1035 + <field>
796 1036 <name>fcno25_id</name>
797 1037 <type>String</type>
798 1038 <format/>
... ... @@ -813,6 +1053,16 @@
813 1053 <format/>
814 1054 </field>
815 1055 <field>
  1056 + <name>fcno25_xldir</name>
  1057 + <type>String</type>
  1058 + <format/>
  1059 + </field>
  1060 + <field>
  1061 + <name>fcno25_isfb</name>
  1062 + <type>String</type>
  1063 + <format/>
  1064 + </field>
  1065 + <field>
816 1066 <name>fcno26_id</name>
817 1067 <type>String</type>
818 1068 <format/>
... ... @@ -833,6 +1083,16 @@
833 1083 <format/>
834 1084 </field>
835 1085 <field>
  1086 + <name>fcno26_xldir</name>
  1087 + <type>String</type>
  1088 + <format/>
  1089 + </field>
  1090 + <field>
  1091 + <name>fcno26_isfb</name>
  1092 + <type>String</type>
  1093 + <format/>
  1094 + </field>
  1095 + <field>
836 1096 <name>fcno27_id</name>
837 1097 <type>String</type>
838 1098 <format/>
... ... @@ -853,6 +1113,16 @@
853 1113 <format/>
854 1114 </field>
855 1115 <field>
  1116 + <name>fcno27_xldir</name>
  1117 + <type>String</type>
  1118 + <format/>
  1119 + </field>
  1120 + <field>
  1121 + <name>fcno27_isfb</name>
  1122 + <type>String</type>
  1123 + <format/>
  1124 + </field>
  1125 + <field>
856 1126 <name>fcno28_id</name>
857 1127 <type>String</type>
858 1128 <format/>
... ... @@ -873,6 +1143,16 @@
873 1143 <format/>
874 1144 </field>
875 1145 <field>
  1146 + <name>fcno28_xldir</name>
  1147 + <type>String</type>
  1148 + <format/>
  1149 + </field>
  1150 + <field>
  1151 + <name>fcno28_isfb</name>
  1152 + <type>String</type>
  1153 + <format/>
  1154 + </field>
  1155 + <field>
876 1156 <name>fcno29_id</name>
877 1157 <type>String</type>
878 1158 <format/>
... ... @@ -893,6 +1173,16 @@
893 1173 <format/>
894 1174 </field>
895 1175 <field>
  1176 + <name>fcno29_xldir</name>
  1177 + <type>String</type>
  1178 + <format/>
  1179 + </field>
  1180 + <field>
  1181 + <name>fcno29_isfb</name>
  1182 + <type>String</type>
  1183 + <format/>
  1184 + </field>
  1185 + <field>
896 1186 <name>fcno30_id</name>
897 1187 <type>String</type>
898 1188 <format/>
... ... @@ -912,6 +1202,16 @@
912 1202 <type>String</type>
913 1203 <format/>
914 1204 </field>
  1205 + <field>
  1206 + <name>fcno30_xldir</name>
  1207 + <type>String</type>
  1208 + <format/>
  1209 + </field>
  1210 + <field>
  1211 + <name>fcno30_isfb</name>
  1212 + <type>String</type>
  1213 + <format/>
  1214 + </field>
915 1215 </fields>
916 1216 <custom>
917 1217 <header_font_name>arial</header_font_name>
... ... @@ -1013,9 +1313,9 @@
1013 1313 <target_aggregation_type>-</target_aggregation_type>
1014 1314 </field>
1015 1315 <field>
1016   - <field_name>id</field_name>
1017   - <key_value>2</key_value>
1018   - <target_name>fcno2_id</target_name>
  1316 + <field_name>xl_dir</field_name>
  1317 + <key_value>1</key_value>
  1318 + <target_name>fcno1_xldir</target_name>
1019 1319 <target_type>String</target_type>
1020 1320 <target_format/>
1021 1321 <target_length>-1</target_length>
... ... @@ -1027,9 +1327,9 @@
1027 1327 <target_aggregation_type>-</target_aggregation_type>
1028 1328 </field>
1029 1329 <field>
1030   - <field_name>fcsj</field_name>
1031   - <key_value>2</key_value>
1032   - <target_name>fcno2_fcsj</target_name>
  1330 + <field_name>isfb</field_name>
  1331 + <key_value>1</key_value>
  1332 + <target_name>fcno1_isfb</target_name>
1033 1333 <target_type>String</target_type>
1034 1334 <target_format/>
1035 1335 <target_length>-1</target_length>
... ... @@ -1041,9 +1341,9 @@
1041 1341 <target_aggregation_type>-</target_aggregation_type>
1042 1342 </field>
1043 1343 <field>
1044   - <field_name>fczdName</field_name>
  1344 + <field_name>id</field_name>
1045 1345 <key_value>2</key_value>
1046   - <target_name>fcno2_zdname</target_name>
  1346 + <target_name>fcno2_id</target_name>
1047 1347 <target_type>String</target_type>
1048 1348 <target_format/>
1049 1349 <target_length>-1</target_length>
... ... @@ -1055,9 +1355,9 @@
1055 1355 <target_aggregation_type>-</target_aggregation_type>
1056 1356 </field>
1057 1357 <field>
1058   - <field_name>bc_type</field_name>
  1358 + <field_name>fcsj</field_name>
1059 1359 <key_value>2</key_value>
1060   - <target_name>fcno2_bctype</target_name>
  1360 + <target_name>fcno2_fcsj</target_name>
1061 1361 <target_type>String</target_type>
1062 1362 <target_format/>
1063 1363 <target_length>-1</target_length>
... ... @@ -1069,9 +1369,9 @@
1069 1369 <target_aggregation_type>-</target_aggregation_type>
1070 1370 </field>
1071 1371 <field>
1072   - <field_name>id</field_name>
1073   - <key_value>3</key_value>
1074   - <target_name>fcno3_id</target_name>
  1372 + <field_name>fczdName</field_name>
  1373 + <key_value>2</key_value>
  1374 + <target_name>fcno2_zdname</target_name>
1075 1375 <target_type>String</target_type>
1076 1376 <target_format/>
1077 1377 <target_length>-1</target_length>
... ... @@ -1083,9 +1383,9 @@
1083 1383 <target_aggregation_type>-</target_aggregation_type>
1084 1384 </field>
1085 1385 <field>
1086   - <field_name>fcsj</field_name>
1087   - <key_value>3</key_value>
1088   - <target_name>fcno3_fcsj</target_name>
  1386 + <field_name>bc_type</field_name>
  1387 + <key_value>2</key_value>
  1388 + <target_name>fcno2_bctype</target_name>
1089 1389 <target_type>String</target_type>
1090 1390 <target_format/>
1091 1391 <target_length>-1</target_length>
... ... @@ -1097,9 +1397,9 @@
1097 1397 <target_aggregation_type>-</target_aggregation_type>
1098 1398 </field>
1099 1399 <field>
1100   - <field_name>fczdName</field_name>
1101   - <key_value>3</key_value>
1102   - <target_name>fcno3_zdname</target_name>
  1400 + <field_name>xl_dir</field_name>
  1401 + <key_value>2</key_value>
  1402 + <target_name>fcno2_xldir</target_name>
1103 1403 <target_type>String</target_type>
1104 1404 <target_format/>
1105 1405 <target_length>-1</target_length>
... ... @@ -1111,9 +1411,9 @@
1111 1411 <target_aggregation_type>-</target_aggregation_type>
1112 1412 </field>
1113 1413 <field>
1114   - <field_name>bc_type</field_name>
1115   - <key_value>3</key_value>
1116   - <target_name>fcno3_bctype</target_name>
  1414 + <field_name>isfb</field_name>
  1415 + <key_value>2</key_value>
  1416 + <target_name>fcno2_isfb</target_name>
1117 1417 <target_type>String</target_type>
1118 1418 <target_format/>
1119 1419 <target_length>-1</target_length>
... ... @@ -1126,8 +1426,8 @@
1126 1426 </field>
1127 1427 <field>
1128 1428 <field_name>id</field_name>
1129   - <key_value>4</key_value>
1130   - <target_name>fcno4_id</target_name>
  1429 + <key_value>3</key_value>
  1430 + <target_name>fcno3_id</target_name>
1131 1431 <target_type>String</target_type>
1132 1432 <target_format/>
1133 1433 <target_length>-1</target_length>
... ... @@ -1140,8 +1440,8 @@
1140 1440 </field>
1141 1441 <field>
1142 1442 <field_name>fcsj</field_name>
1143   - <key_value>4</key_value>
1144   - <target_name>fcno4_fcsj</target_name>
  1443 + <key_value>3</key_value>
  1444 + <target_name>fcno3_fcsj</target_name>
1145 1445 <target_type>String</target_type>
1146 1446 <target_format/>
1147 1447 <target_length>-1</target_length>
... ... @@ -1154,8 +1454,8 @@
1154 1454 </field>
1155 1455 <field>
1156 1456 <field_name>fczdName</field_name>
1157   - <key_value>4</key_value>
1158   - <target_name>fcno4_zdname</target_name>
  1457 + <key_value>3</key_value>
  1458 + <target_name>fcno3_zdname</target_name>
1159 1459 <target_type>String</target_type>
1160 1460 <target_format/>
1161 1461 <target_length>-1</target_length>
... ... @@ -1168,8 +1468,8 @@
1168 1468 </field>
1169 1469 <field>
1170 1470 <field_name>bc_type</field_name>
1171   - <key_value>4</key_value>
1172   - <target_name>fcno4_bctype</target_name>
  1471 + <key_value>3</key_value>
  1472 + <target_name>fcno3_bctype</target_name>
1173 1473 <target_type>String</target_type>
1174 1474 <target_format/>
1175 1475 <target_length>-1</target_length>
... ... @@ -1181,9 +1481,9 @@
1181 1481 <target_aggregation_type>-</target_aggregation_type>
1182 1482 </field>
1183 1483 <field>
1184   - <field_name>id</field_name>
1185   - <key_value>5</key_value>
1186   - <target_name>fcno5_id</target_name>
  1484 + <field_name>xl_dir</field_name>
  1485 + <key_value>3</key_value>
  1486 + <target_name>fcno3_xldir</target_name>
1187 1487 <target_type>String</target_type>
1188 1488 <target_format/>
1189 1489 <target_length>-1</target_length>
... ... @@ -1195,9 +1495,9 @@
1195 1495 <target_aggregation_type>-</target_aggregation_type>
1196 1496 </field>
1197 1497 <field>
1198   - <field_name>fcsj</field_name>
1199   - <key_value>5</key_value>
1200   - <target_name>fcno5_fcsj</target_name>
  1498 + <field_name>isfb</field_name>
  1499 + <key_value>3</key_value>
  1500 + <target_name>fcno3_isfb</target_name>
1201 1501 <target_type>String</target_type>
1202 1502 <target_format/>
1203 1503 <target_length>-1</target_length>
... ... @@ -1209,9 +1509,9 @@
1209 1509 <target_aggregation_type>-</target_aggregation_type>
1210 1510 </field>
1211 1511 <field>
1212   - <field_name>fczdName</field_name>
1213   - <key_value>5</key_value>
1214   - <target_name>fcno5_zdname</target_name>
  1512 + <field_name>id</field_name>
  1513 + <key_value>4</key_value>
  1514 + <target_name>fcno4_id</target_name>
1215 1515 <target_type>String</target_type>
1216 1516 <target_format/>
1217 1517 <target_length>-1</target_length>
... ... @@ -1223,9 +1523,9 @@
1223 1523 <target_aggregation_type>-</target_aggregation_type>
1224 1524 </field>
1225 1525 <field>
1226   - <field_name>bc_type</field_name>
1227   - <key_value>5</key_value>
1228   - <target_name>fcno5_bctype</target_name>
  1526 + <field_name>fcsj</field_name>
  1527 + <key_value>4</key_value>
  1528 + <target_name>fcno4_fcsj</target_name>
1229 1529 <target_type>String</target_type>
1230 1530 <target_format/>
1231 1531 <target_length>-1</target_length>
... ... @@ -1237,9 +1537,9 @@
1237 1537 <target_aggregation_type>-</target_aggregation_type>
1238 1538 </field>
1239 1539 <field>
1240   - <field_name>id</field_name>
1241   - <key_value>6</key_value>
1242   - <target_name>fcno6_id</target_name>
  1540 + <field_name>fczdName</field_name>
  1541 + <key_value>4</key_value>
  1542 + <target_name>fcno4_zdname</target_name>
1243 1543 <target_type>String</target_type>
1244 1544 <target_format/>
1245 1545 <target_length>-1</target_length>
... ... @@ -1251,9 +1551,9 @@
1251 1551 <target_aggregation_type>-</target_aggregation_type>
1252 1552 </field>
1253 1553 <field>
1254   - <field_name>fcsj</field_name>
1255   - <key_value>6</key_value>
1256   - <target_name>fcno6_fcsj</target_name>
  1554 + <field_name>bc_type</field_name>
  1555 + <key_value>4</key_value>
  1556 + <target_name>fcno4_bctype</target_name>
1257 1557 <target_type>String</target_type>
1258 1558 <target_format/>
1259 1559 <target_length>-1</target_length>
... ... @@ -1265,9 +1565,9 @@
1265 1565 <target_aggregation_type>-</target_aggregation_type>
1266 1566 </field>
1267 1567 <field>
1268   - <field_name>fczdName</field_name>
1269   - <key_value>6</key_value>
1270   - <target_name>fcno6_zdname</target_name>
  1568 + <field_name>xl_dir</field_name>
  1569 + <key_value>4</key_value>
  1570 + <target_name>fcno4_xldir</target_name>
1271 1571 <target_type>String</target_type>
1272 1572 <target_format/>
1273 1573 <target_length>-1</target_length>
... ... @@ -1279,9 +1579,9 @@
1279 1579 <target_aggregation_type>-</target_aggregation_type>
1280 1580 </field>
1281 1581 <field>
1282   - <field_name>bc_type</field_name>
1283   - <key_value>6</key_value>
1284   - <target_name>fcno6_bctype</target_name>
  1582 + <field_name>isfb</field_name>
  1583 + <key_value>4</key_value>
  1584 + <target_name>fcno4_isfb</target_name>
1285 1585 <target_type>String</target_type>
1286 1586 <target_format/>
1287 1587 <target_length>-1</target_length>
... ... @@ -1294,8 +1594,8 @@
1294 1594 </field>
1295 1595 <field>
1296 1596 <field_name>id</field_name>
1297   - <key_value>7</key_value>
1298   - <target_name>fcno7_id</target_name>
  1597 + <key_value>5</key_value>
  1598 + <target_name>fcno5_id</target_name>
1299 1599 <target_type>String</target_type>
1300 1600 <target_format/>
1301 1601 <target_length>-1</target_length>
... ... @@ -1308,8 +1608,8 @@
1308 1608 </field>
1309 1609 <field>
1310 1610 <field_name>fcsj</field_name>
1311   - <key_value>7</key_value>
1312   - <target_name>fcno7_fcsj</target_name>
  1611 + <key_value>5</key_value>
  1612 + <target_name>fcno5_fcsj</target_name>
1313 1613 <target_type>String</target_type>
1314 1614 <target_format/>
1315 1615 <target_length>-1</target_length>
... ... @@ -1322,8 +1622,8 @@
1322 1622 </field>
1323 1623 <field>
1324 1624 <field_name>fczdName</field_name>
1325   - <key_value>7</key_value>
1326   - <target_name>fcno7_zdname</target_name>
  1625 + <key_value>5</key_value>
  1626 + <target_name>fcno5_zdname</target_name>
1327 1627 <target_type>String</target_type>
1328 1628 <target_format/>
1329 1629 <target_length>-1</target_length>
... ... @@ -1336,8 +1636,8 @@
1336 1636 </field>
1337 1637 <field>
1338 1638 <field_name>bc_type</field_name>
1339   - <key_value>7</key_value>
1340   - <target_name>fcno7_bctype</target_name>
  1639 + <key_value>5</key_value>
  1640 + <target_name>fcno5_bctype</target_name>
1341 1641 <target_type>String</target_type>
1342 1642 <target_format/>
1343 1643 <target_length>-1</target_length>
... ... @@ -1349,9 +1649,9 @@
1349 1649 <target_aggregation_type>-</target_aggregation_type>
1350 1650 </field>
1351 1651 <field>
1352   - <field_name>id</field_name>
1353   - <key_value>8</key_value>
1354   - <target_name>fcno8_id</target_name>
  1652 + <field_name>xl_dir</field_name>
  1653 + <key_value>5</key_value>
  1654 + <target_name>fcno5_xldir</target_name>
1355 1655 <target_type>String</target_type>
1356 1656 <target_format/>
1357 1657 <target_length>-1</target_length>
... ... @@ -1363,9 +1663,9 @@
1363 1663 <target_aggregation_type>-</target_aggregation_type>
1364 1664 </field>
1365 1665 <field>
1366   - <field_name>fcsj</field_name>
1367   - <key_value>8</key_value>
1368   - <target_name>fcno8_fcsj</target_name>
  1666 + <field_name>isfb</field_name>
  1667 + <key_value>5</key_value>
  1668 + <target_name>fcno5_isfb</target_name>
1369 1669 <target_type>String</target_type>
1370 1670 <target_format/>
1371 1671 <target_length>-1</target_length>
... ... @@ -1377,9 +1677,9 @@
1377 1677 <target_aggregation_type>-</target_aggregation_type>
1378 1678 </field>
1379 1679 <field>
1380   - <field_name>fczdName</field_name>
1381   - <key_value>8</key_value>
1382   - <target_name>fcno8_zdname</target_name>
  1680 + <field_name>id</field_name>
  1681 + <key_value>6</key_value>
  1682 + <target_name>fcno6_id</target_name>
1383 1683 <target_type>String</target_type>
1384 1684 <target_format/>
1385 1685 <target_length>-1</target_length>
... ... @@ -1391,9 +1691,9 @@
1391 1691 <target_aggregation_type>-</target_aggregation_type>
1392 1692 </field>
1393 1693 <field>
1394   - <field_name>bc_type</field_name>
1395   - <key_value>8</key_value>
1396   - <target_name>fcno8_bctype</target_name>
  1694 + <field_name>fcsj</field_name>
  1695 + <key_value>6</key_value>
  1696 + <target_name>fcno6_fcsj</target_name>
1397 1697 <target_type>String</target_type>
1398 1698 <target_format/>
1399 1699 <target_length>-1</target_length>
... ... @@ -1405,9 +1705,9 @@
1405 1705 <target_aggregation_type>-</target_aggregation_type>
1406 1706 </field>
1407 1707 <field>
1408   - <field_name>id</field_name>
1409   - <key_value>9</key_value>
1410   - <target_name>fcno9_id</target_name>
  1708 + <field_name>fczdName</field_name>
  1709 + <key_value>6</key_value>
  1710 + <target_name>fcno6_zdname</target_name>
1411 1711 <target_type>String</target_type>
1412 1712 <target_format/>
1413 1713 <target_length>-1</target_length>
... ... @@ -1419,9 +1719,9 @@
1419 1719 <target_aggregation_type>-</target_aggregation_type>
1420 1720 </field>
1421 1721 <field>
1422   - <field_name>fcsj</field_name>
1423   - <key_value>9</key_value>
1424   - <target_name>fcno9_fcsj</target_name>
  1722 + <field_name>bc_type</field_name>
  1723 + <key_value>6</key_value>
  1724 + <target_name>fcno6_bctype</target_name>
1425 1725 <target_type>String</target_type>
1426 1726 <target_format/>
1427 1727 <target_length>-1</target_length>
... ... @@ -1433,9 +1733,9 @@
1433 1733 <target_aggregation_type>-</target_aggregation_type>
1434 1734 </field>
1435 1735 <field>
1436   - <field_name>fczdName</field_name>
1437   - <key_value>9</key_value>
1438   - <target_name>fcno9_zdname</target_name>
  1736 + <field_name>xl_dir</field_name>
  1737 + <key_value>6</key_value>
  1738 + <target_name>fcno6_xldir</target_name>
1439 1739 <target_type>String</target_type>
1440 1740 <target_format/>
1441 1741 <target_length>-1</target_length>
... ... @@ -1447,9 +1747,9 @@
1447 1747 <target_aggregation_type>-</target_aggregation_type>
1448 1748 </field>
1449 1749 <field>
1450   - <field_name>bc_type</field_name>
1451   - <key_value>9</key_value>
1452   - <target_name>fcno9_bctype</target_name>
  1750 + <field_name>isfb</field_name>
  1751 + <key_value>6</key_value>
  1752 + <target_name>fcno6_isfb</target_name>
1453 1753 <target_type>String</target_type>
1454 1754 <target_format/>
1455 1755 <target_length>-1</target_length>
... ... @@ -1462,8 +1762,8 @@
1462 1762 </field>
1463 1763 <field>
1464 1764 <field_name>id</field_name>
1465   - <key_value>10</key_value>
1466   - <target_name>fcno10_id</target_name>
  1765 + <key_value>7</key_value>
  1766 + <target_name>fcno7_id</target_name>
1467 1767 <target_type>String</target_type>
1468 1768 <target_format/>
1469 1769 <target_length>-1</target_length>
... ... @@ -1476,8 +1776,8 @@
1476 1776 </field>
1477 1777 <field>
1478 1778 <field_name>fcsj</field_name>
1479   - <key_value>10</key_value>
1480   - <target_name>fcno10_fcsj</target_name>
  1779 + <key_value>7</key_value>
  1780 + <target_name>fcno7_fcsj</target_name>
1481 1781 <target_type>String</target_type>
1482 1782 <target_format/>
1483 1783 <target_length>-1</target_length>
... ... @@ -1490,8 +1790,8 @@
1490 1790 </field>
1491 1791 <field>
1492 1792 <field_name>fczdName</field_name>
1493   - <key_value>10</key_value>
1494   - <target_name>fcno10_zdname</target_name>
  1793 + <key_value>7</key_value>
  1794 + <target_name>fcno7_zdname</target_name>
1495 1795 <target_type>String</target_type>
1496 1796 <target_format/>
1497 1797 <target_length>-1</target_length>
... ... @@ -1504,8 +1804,8 @@
1504 1804 </field>
1505 1805 <field>
1506 1806 <field_name>bc_type</field_name>
1507   - <key_value>10</key_value>
1508   - <target_name>fcno10_bctype</target_name>
  1807 + <key_value>7</key_value>
  1808 + <target_name>fcno7_bctype</target_name>
1509 1809 <target_type>String</target_type>
1510 1810 <target_format/>
1511 1811 <target_length>-1</target_length>
... ... @@ -1517,9 +1817,9 @@
1517 1817 <target_aggregation_type>-</target_aggregation_type>
1518 1818 </field>
1519 1819 <field>
1520   - <field_name>id</field_name>
1521   - <key_value>11</key_value>
1522   - <target_name>fcno11_id</target_name>
  1820 + <field_name>xl_dir</field_name>
  1821 + <key_value>7</key_value>
  1822 + <target_name>fcno7_xldir</target_name>
1523 1823 <target_type>String</target_type>
1524 1824 <target_format/>
1525 1825 <target_length>-1</target_length>
... ... @@ -1531,9 +1831,9 @@
1531 1831 <target_aggregation_type>-</target_aggregation_type>
1532 1832 </field>
1533 1833 <field>
1534   - <field_name>fcsj</field_name>
1535   - <key_value>11</key_value>
1536   - <target_name>fcno11_fcsj</target_name>
  1834 + <field_name>isfb</field_name>
  1835 + <key_value>7</key_value>
  1836 + <target_name>fcno7_isfb</target_name>
1537 1837 <target_type>String</target_type>
1538 1838 <target_format/>
1539 1839 <target_length>-1</target_length>
... ... @@ -1545,9 +1845,9 @@
1545 1845 <target_aggregation_type>-</target_aggregation_type>
1546 1846 </field>
1547 1847 <field>
1548   - <field_name>fczdName</field_name>
1549   - <key_value>11</key_value>
1550   - <target_name>fcno11_zdname</target_name>
  1848 + <field_name>id</field_name>
  1849 + <key_value>8</key_value>
  1850 + <target_name>fcno8_id</target_name>
1551 1851 <target_type>String</target_type>
1552 1852 <target_format/>
1553 1853 <target_length>-1</target_length>
... ... @@ -1559,9 +1859,9 @@
1559 1859 <target_aggregation_type>-</target_aggregation_type>
1560 1860 </field>
1561 1861 <field>
1562   - <field_name>bc_type</field_name>
1563   - <key_value>11</key_value>
1564   - <target_name>fcno11_bctype</target_name>
  1862 + <field_name>fcsj</field_name>
  1863 + <key_value>8</key_value>
  1864 + <target_name>fcno8_fcsj</target_name>
1565 1865 <target_type>String</target_type>
1566 1866 <target_format/>
1567 1867 <target_length>-1</target_length>
... ... @@ -1573,9 +1873,9 @@
1573 1873 <target_aggregation_type>-</target_aggregation_type>
1574 1874 </field>
1575 1875 <field>
1576   - <field_name>id</field_name>
1577   - <key_value>12</key_value>
1578   - <target_name>fcno12_id</target_name>
  1876 + <field_name>fczdName</field_name>
  1877 + <key_value>8</key_value>
  1878 + <target_name>fcno8_zdname</target_name>
1579 1879 <target_type>String</target_type>
1580 1880 <target_format/>
1581 1881 <target_length>-1</target_length>
... ... @@ -1587,9 +1887,9 @@
1587 1887 <target_aggregation_type>-</target_aggregation_type>
1588 1888 </field>
1589 1889 <field>
1590   - <field_name>fcsj</field_name>
1591   - <key_value>12</key_value>
1592   - <target_name>fcno12_fcsj</target_name>
  1890 + <field_name>bc_type</field_name>
  1891 + <key_value>8</key_value>
  1892 + <target_name>fcno8_bctype</target_name>
1593 1893 <target_type>String</target_type>
1594 1894 <target_format/>
1595 1895 <target_length>-1</target_length>
... ... @@ -1601,9 +1901,9 @@
1601 1901 <target_aggregation_type>-</target_aggregation_type>
1602 1902 </field>
1603 1903 <field>
1604   - <field_name>fczdName</field_name>
1605   - <key_value>12</key_value>
1606   - <target_name>fcno12_zdname</target_name>
  1904 + <field_name>xl_dir</field_name>
  1905 + <key_value>8</key_value>
  1906 + <target_name>fcno8_xldir</target_name>
1607 1907 <target_type>String</target_type>
1608 1908 <target_format/>
1609 1909 <target_length>-1</target_length>
... ... @@ -1615,9 +1915,9 @@
1615 1915 <target_aggregation_type>-</target_aggregation_type>
1616 1916 </field>
1617 1917 <field>
1618   - <field_name>bc_type</field_name>
1619   - <key_value>12</key_value>
1620   - <target_name>fcno12_bctype</target_name>
  1918 + <field_name>isfb</field_name>
  1919 + <key_value>8</key_value>
  1920 + <target_name>fcno8_isfb</target_name>
1621 1921 <target_type>String</target_type>
1622 1922 <target_format/>
1623 1923 <target_length>-1</target_length>
... ... @@ -1630,8 +1930,8 @@
1630 1930 </field>
1631 1931 <field>
1632 1932 <field_name>id</field_name>
1633   - <key_value>13</key_value>
1634   - <target_name>fcno13_id</target_name>
  1933 + <key_value>9</key_value>
  1934 + <target_name>fcno9_id</target_name>
1635 1935 <target_type>String</target_type>
1636 1936 <target_format/>
1637 1937 <target_length>-1</target_length>
... ... @@ -1644,8 +1944,8 @@
1644 1944 </field>
1645 1945 <field>
1646 1946 <field_name>fcsj</field_name>
1647   - <key_value>13</key_value>
1648   - <target_name>fcno13_fcsj</target_name>
  1947 + <key_value>9</key_value>
  1948 + <target_name>fcno9_fcsj</target_name>
1649 1949 <target_type>String</target_type>
1650 1950 <target_format/>
1651 1951 <target_length>-1</target_length>
... ... @@ -1658,8 +1958,8 @@
1658 1958 </field>
1659 1959 <field>
1660 1960 <field_name>fczdName</field_name>
1661   - <key_value>13</key_value>
1662   - <target_name>fcno13_zdname</target_name>
  1961 + <key_value>9</key_value>
  1962 + <target_name>fcno9_zdname</target_name>
1663 1963 <target_type>String</target_type>
1664 1964 <target_format/>
1665 1965 <target_length>-1</target_length>
... ... @@ -1672,8 +1972,8 @@
1672 1972 </field>
1673 1973 <field>
1674 1974 <field_name>bc_type</field_name>
1675   - <key_value>13</key_value>
1676   - <target_name>fcno13_bctype</target_name>
  1975 + <key_value>9</key_value>
  1976 + <target_name>fcno9_bctype</target_name>
1677 1977 <target_type>String</target_type>
1678 1978 <target_format/>
1679 1979 <target_length>-1</target_length>
... ... @@ -1685,9 +1985,9 @@
1685 1985 <target_aggregation_type>-</target_aggregation_type>
1686 1986 </field>
1687 1987 <field>
1688   - <field_name>id</field_name>
1689   - <key_value>14</key_value>
1690   - <target_name>fcno14_id</target_name>
  1988 + <field_name>xl_dir</field_name>
  1989 + <key_value>9</key_value>
  1990 + <target_name>fcno9_xldir</target_name>
1691 1991 <target_type>String</target_type>
1692 1992 <target_format/>
1693 1993 <target_length>-1</target_length>
... ... @@ -1699,9 +1999,9 @@
1699 1999 <target_aggregation_type>-</target_aggregation_type>
1700 2000 </field>
1701 2001 <field>
1702   - <field_name>fcsj</field_name>
1703   - <key_value>14</key_value>
1704   - <target_name>fcno14_fcsj</target_name>
  2002 + <field_name>isfb</field_name>
  2003 + <key_value>9</key_value>
  2004 + <target_name>fcno9_isfb</target_name>
1705 2005 <target_type>String</target_type>
1706 2006 <target_format/>
1707 2007 <target_length>-1</target_length>
... ... @@ -1713,9 +2013,9 @@
1713 2013 <target_aggregation_type>-</target_aggregation_type>
1714 2014 </field>
1715 2015 <field>
1716   - <field_name>fczdName</field_name>
1717   - <key_value>14</key_value>
1718   - <target_name>fcno14_zdname</target_name>
  2016 + <field_name>id</field_name>
  2017 + <key_value>10</key_value>
  2018 + <target_name>fcno10_id</target_name>
1719 2019 <target_type>String</target_type>
1720 2020 <target_format/>
1721 2021 <target_length>-1</target_length>
... ... @@ -1727,9 +2027,9 @@
1727 2027 <target_aggregation_type>-</target_aggregation_type>
1728 2028 </field>
1729 2029 <field>
1730   - <field_name>bc_type</field_name>
1731   - <key_value>14</key_value>
1732   - <target_name>fcno14_bctype</target_name>
  2030 + <field_name>fcsj</field_name>
  2031 + <key_value>10</key_value>
  2032 + <target_name>fcno10_fcsj</target_name>
1733 2033 <target_type>String</target_type>
1734 2034 <target_format/>
1735 2035 <target_length>-1</target_length>
... ... @@ -1741,9 +2041,9 @@
1741 2041 <target_aggregation_type>-</target_aggregation_type>
1742 2042 </field>
1743 2043 <field>
1744   - <field_name>id</field_name>
1745   - <key_value>15</key_value>
1746   - <target_name>fcno15_id</target_name>
  2044 + <field_name>fczdName</field_name>
  2045 + <key_value>10</key_value>
  2046 + <target_name>fcno10_zdname</target_name>
1747 2047 <target_type>String</target_type>
1748 2048 <target_format/>
1749 2049 <target_length>-1</target_length>
... ... @@ -1755,9 +2055,9 @@
1755 2055 <target_aggregation_type>-</target_aggregation_type>
1756 2056 </field>
1757 2057 <field>
1758   - <field_name>fcsj</field_name>
1759   - <key_value>15</key_value>
1760   - <target_name>fcno15_fcsj</target_name>
  2058 + <field_name>bc_type</field_name>
  2059 + <key_value>10</key_value>
  2060 + <target_name>fcno10_bctype</target_name>
1761 2061 <target_type>String</target_type>
1762 2062 <target_format/>
1763 2063 <target_length>-1</target_length>
... ... @@ -1769,9 +2069,9 @@
1769 2069 <target_aggregation_type>-</target_aggregation_type>
1770 2070 </field>
1771 2071 <field>
1772   - <field_name>fczdName</field_name>
1773   - <key_value>15</key_value>
1774   - <target_name>fcno15_zdname</target_name>
  2072 + <field_name>xl_dir</field_name>
  2073 + <key_value>10</key_value>
  2074 + <target_name>fcno10_xldir</target_name>
1775 2075 <target_type>String</target_type>
1776 2076 <target_format/>
1777 2077 <target_length>-1</target_length>
... ... @@ -1783,9 +2083,9 @@
1783 2083 <target_aggregation_type>-</target_aggregation_type>
1784 2084 </field>
1785 2085 <field>
1786   - <field_name>bc_type</field_name>
1787   - <key_value>15</key_value>
1788   - <target_name>fcno15_bctype</target_name>
  2086 + <field_name>isfb</field_name>
  2087 + <key_value>10</key_value>
  2088 + <target_name>fcno10_isfb</target_name>
1789 2089 <target_type>String</target_type>
1790 2090 <target_format/>
1791 2091 <target_length>-1</target_length>
... ... @@ -1798,8 +2098,8 @@
1798 2098 </field>
1799 2099 <field>
1800 2100 <field_name>id</field_name>
1801   - <key_value>16</key_value>
1802   - <target_name>fcno16_id</target_name>
  2101 + <key_value>11</key_value>
  2102 + <target_name>fcno11_id</target_name>
1803 2103 <target_type>String</target_type>
1804 2104 <target_format/>
1805 2105 <target_length>-1</target_length>
... ... @@ -1812,8 +2112,8 @@
1812 2112 </field>
1813 2113 <field>
1814 2114 <field_name>fcsj</field_name>
1815   - <key_value>16</key_value>
1816   - <target_name>fcno16_fcsj</target_name>
  2115 + <key_value>11</key_value>
  2116 + <target_name>fcno11_fcsj</target_name>
1817 2117 <target_type>String</target_type>
1818 2118 <target_format/>
1819 2119 <target_length>-1</target_length>
... ... @@ -1826,7 +2126,427 @@
1826 2126 </field>
1827 2127 <field>
1828 2128 <field_name>fczdName</field_name>
1829   - <key_value>16</key_value>
  2129 + <key_value>11</key_value>
  2130 + <target_name>fcno11_zdname</target_name>
  2131 + <target_type>String</target_type>
  2132 + <target_format/>
  2133 + <target_length>-1</target_length>
  2134 + <target_precision>-1</target_precision>
  2135 + <target_decimal_symbol/>
  2136 + <target_grouping_symbol/>
  2137 + <target_currency_symbol/>
  2138 + <target_null_string/>
  2139 + <target_aggregation_type>-</target_aggregation_type>
  2140 + </field>
  2141 + <field>
  2142 + <field_name>bc_type</field_name>
  2143 + <key_value>11</key_value>
  2144 + <target_name>fcno11_bctype</target_name>
  2145 + <target_type>String</target_type>
  2146 + <target_format/>
  2147 + <target_length>-1</target_length>
  2148 + <target_precision>-1</target_precision>
  2149 + <target_decimal_symbol/>
  2150 + <target_grouping_symbol/>
  2151 + <target_currency_symbol/>
  2152 + <target_null_string/>
  2153 + <target_aggregation_type>-</target_aggregation_type>
  2154 + </field>
  2155 + <field>
  2156 + <field_name>xl_dir</field_name>
  2157 + <key_value>11</key_value>
  2158 + <target_name>fcno11_xldir</target_name>
  2159 + <target_type>String</target_type>
  2160 + <target_format/>
  2161 + <target_length>-1</target_length>
  2162 + <target_precision>-1</target_precision>
  2163 + <target_decimal_symbol/>
  2164 + <target_grouping_symbol/>
  2165 + <target_currency_symbol/>
  2166 + <target_null_string/>
  2167 + <target_aggregation_type>-</target_aggregation_type>
  2168 + </field>
  2169 + <field>
  2170 + <field_name>isfb</field_name>
  2171 + <key_value>11</key_value>
  2172 + <target_name>fcno11_isfb</target_name>
  2173 + <target_type>String</target_type>
  2174 + <target_format/>
  2175 + <target_length>-1</target_length>
  2176 + <target_precision>-1</target_precision>
  2177 + <target_decimal_symbol/>
  2178 + <target_grouping_symbol/>
  2179 + <target_currency_symbol/>
  2180 + <target_null_string/>
  2181 + <target_aggregation_type>-</target_aggregation_type>
  2182 + </field>
  2183 + <field>
  2184 + <field_name>id</field_name>
  2185 + <key_value>12</key_value>
  2186 + <target_name>fcno12_id</target_name>
  2187 + <target_type>String</target_type>
  2188 + <target_format/>
  2189 + <target_length>-1</target_length>
  2190 + <target_precision>-1</target_precision>
  2191 + <target_decimal_symbol/>
  2192 + <target_grouping_symbol/>
  2193 + <target_currency_symbol/>
  2194 + <target_null_string/>
  2195 + <target_aggregation_type>-</target_aggregation_type>
  2196 + </field>
  2197 + <field>
  2198 + <field_name>fcsj</field_name>
  2199 + <key_value>12</key_value>
  2200 + <target_name>fcno12_fcsj</target_name>
  2201 + <target_type>String</target_type>
  2202 + <target_format/>
  2203 + <target_length>-1</target_length>
  2204 + <target_precision>-1</target_precision>
  2205 + <target_decimal_symbol/>
  2206 + <target_grouping_symbol/>
  2207 + <target_currency_symbol/>
  2208 + <target_null_string/>
  2209 + <target_aggregation_type>-</target_aggregation_type>
  2210 + </field>
  2211 + <field>
  2212 + <field_name>fczdName</field_name>
  2213 + <key_value>12</key_value>
  2214 + <target_name>fcno12_zdname</target_name>
  2215 + <target_type>String</target_type>
  2216 + <target_format/>
  2217 + <target_length>-1</target_length>
  2218 + <target_precision>-1</target_precision>
  2219 + <target_decimal_symbol/>
  2220 + <target_grouping_symbol/>
  2221 + <target_currency_symbol/>
  2222 + <target_null_string/>
  2223 + <target_aggregation_type>-</target_aggregation_type>
  2224 + </field>
  2225 + <field>
  2226 + <field_name>bc_type</field_name>
  2227 + <key_value>12</key_value>
  2228 + <target_name>fcno12_bctype</target_name>
  2229 + <target_type>String</target_type>
  2230 + <target_format/>
  2231 + <target_length>-1</target_length>
  2232 + <target_precision>-1</target_precision>
  2233 + <target_decimal_symbol/>
  2234 + <target_grouping_symbol/>
  2235 + <target_currency_symbol/>
  2236 + <target_null_string/>
  2237 + <target_aggregation_type>-</target_aggregation_type>
  2238 + </field>
  2239 + <field>
  2240 + <field_name>xl_dir</field_name>
  2241 + <key_value>12</key_value>
  2242 + <target_name>fcno12_xldir</target_name>
  2243 + <target_type>String</target_type>
  2244 + <target_format/>
  2245 + <target_length>-1</target_length>
  2246 + <target_precision>-1</target_precision>
  2247 + <target_decimal_symbol/>
  2248 + <target_grouping_symbol/>
  2249 + <target_currency_symbol/>
  2250 + <target_null_string/>
  2251 + <target_aggregation_type>-</target_aggregation_type>
  2252 + </field>
  2253 + <field>
  2254 + <field_name>isfb</field_name>
  2255 + <key_value>12</key_value>
  2256 + <target_name>fcno12_isfb</target_name>
  2257 + <target_type>String</target_type>
  2258 + <target_format/>
  2259 + <target_length>-1</target_length>
  2260 + <target_precision>-1</target_precision>
  2261 + <target_decimal_symbol/>
  2262 + <target_grouping_symbol/>
  2263 + <target_currency_symbol/>
  2264 + <target_null_string/>
  2265 + <target_aggregation_type>-</target_aggregation_type>
  2266 + </field>
  2267 + <field>
  2268 + <field_name>id</field_name>
  2269 + <key_value>13</key_value>
  2270 + <target_name>fcno13_id</target_name>
  2271 + <target_type>String</target_type>
  2272 + <target_format/>
  2273 + <target_length>-1</target_length>
  2274 + <target_precision>-1</target_precision>
  2275 + <target_decimal_symbol/>
  2276 + <target_grouping_symbol/>
  2277 + <target_currency_symbol/>
  2278 + <target_null_string/>
  2279 + <target_aggregation_type>-</target_aggregation_type>
  2280 + </field>
  2281 + <field>
  2282 + <field_name>fcsj</field_name>
  2283 + <key_value>13</key_value>
  2284 + <target_name>fcno13_fcsj</target_name>
  2285 + <target_type>String</target_type>
  2286 + <target_format/>
  2287 + <target_length>-1</target_length>
  2288 + <target_precision>-1</target_precision>
  2289 + <target_decimal_symbol/>
  2290 + <target_grouping_symbol/>
  2291 + <target_currency_symbol/>
  2292 + <target_null_string/>
  2293 + <target_aggregation_type>-</target_aggregation_type>
  2294 + </field>
  2295 + <field>
  2296 + <field_name>fczdName</field_name>
  2297 + <key_value>13</key_value>
  2298 + <target_name>fcno13_zdname</target_name>
  2299 + <target_type>String</target_type>
  2300 + <target_format/>
  2301 + <target_length>-1</target_length>
  2302 + <target_precision>-1</target_precision>
  2303 + <target_decimal_symbol/>
  2304 + <target_grouping_symbol/>
  2305 + <target_currency_symbol/>
  2306 + <target_null_string/>
  2307 + <target_aggregation_type>-</target_aggregation_type>
  2308 + </field>
  2309 + <field>
  2310 + <field_name>bc_type</field_name>
  2311 + <key_value>13</key_value>
  2312 + <target_name>fcno13_bctype</target_name>
  2313 + <target_type>String</target_type>
  2314 + <target_format/>
  2315 + <target_length>-1</target_length>
  2316 + <target_precision>-1</target_precision>
  2317 + <target_decimal_symbol/>
  2318 + <target_grouping_symbol/>
  2319 + <target_currency_symbol/>
  2320 + <target_null_string/>
  2321 + <target_aggregation_type>-</target_aggregation_type>
  2322 + </field>
  2323 + <field>
  2324 + <field_name>xl_dir</field_name>
  2325 + <key_value>13</key_value>
  2326 + <target_name>fcno13_xldir</target_name>
  2327 + <target_type>String</target_type>
  2328 + <target_format/>
  2329 + <target_length>-1</target_length>
  2330 + <target_precision>-1</target_precision>
  2331 + <target_decimal_symbol/>
  2332 + <target_grouping_symbol/>
  2333 + <target_currency_symbol/>
  2334 + <target_null_string/>
  2335 + <target_aggregation_type>-</target_aggregation_type>
  2336 + </field>
  2337 + <field>
  2338 + <field_name>isfb</field_name>
  2339 + <key_value>13</key_value>
  2340 + <target_name>fcno13_isfb</target_name>
  2341 + <target_type>String</target_type>
  2342 + <target_format/>
  2343 + <target_length>-1</target_length>
  2344 + <target_precision>-1</target_precision>
  2345 + <target_decimal_symbol/>
  2346 + <target_grouping_symbol/>
  2347 + <target_currency_symbol/>
  2348 + <target_null_string/>
  2349 + <target_aggregation_type>-</target_aggregation_type>
  2350 + </field>
  2351 + <field>
  2352 + <field_name>id</field_name>
  2353 + <key_value>14</key_value>
  2354 + <target_name>fcno14_id</target_name>
  2355 + <target_type>String</target_type>
  2356 + <target_format/>
  2357 + <target_length>-1</target_length>
  2358 + <target_precision>-1</target_precision>
  2359 + <target_decimal_symbol/>
  2360 + <target_grouping_symbol/>
  2361 + <target_currency_symbol/>
  2362 + <target_null_string/>
  2363 + <target_aggregation_type>-</target_aggregation_type>
  2364 + </field>
  2365 + <field>
  2366 + <field_name>fcsj</field_name>
  2367 + <key_value>14</key_value>
  2368 + <target_name>fcno14_fcsj</target_name>
  2369 + <target_type>String</target_type>
  2370 + <target_format/>
  2371 + <target_length>-1</target_length>
  2372 + <target_precision>-1</target_precision>
  2373 + <target_decimal_symbol/>
  2374 + <target_grouping_symbol/>
  2375 + <target_currency_symbol/>
  2376 + <target_null_string/>
  2377 + <target_aggregation_type>-</target_aggregation_type>
  2378 + </field>
  2379 + <field>
  2380 + <field_name>fczdName</field_name>
  2381 + <key_value>14</key_value>
  2382 + <target_name>fcno14_zdname</target_name>
  2383 + <target_type>String</target_type>
  2384 + <target_format/>
  2385 + <target_length>-1</target_length>
  2386 + <target_precision>-1</target_precision>
  2387 + <target_decimal_symbol/>
  2388 + <target_grouping_symbol/>
  2389 + <target_currency_symbol/>
  2390 + <target_null_string/>
  2391 + <target_aggregation_type>-</target_aggregation_type>
  2392 + </field>
  2393 + <field>
  2394 + <field_name>bc_type</field_name>
  2395 + <key_value>14</key_value>
  2396 + <target_name>fcno14_bctype</target_name>
  2397 + <target_type>String</target_type>
  2398 + <target_format/>
  2399 + <target_length>-1</target_length>
  2400 + <target_precision>-1</target_precision>
  2401 + <target_decimal_symbol/>
  2402 + <target_grouping_symbol/>
  2403 + <target_currency_symbol/>
  2404 + <target_null_string/>
  2405 + <target_aggregation_type>-</target_aggregation_type>
  2406 + </field>
  2407 + <field>
  2408 + <field_name>xl_dir</field_name>
  2409 + <key_value>14</key_value>
  2410 + <target_name>fcno14_xldir</target_name>
  2411 + <target_type>String</target_type>
  2412 + <target_format/>
  2413 + <target_length>-1</target_length>
  2414 + <target_precision>-1</target_precision>
  2415 + <target_decimal_symbol/>
  2416 + <target_grouping_symbol/>
  2417 + <target_currency_symbol/>
  2418 + <target_null_string/>
  2419 + <target_aggregation_type>-</target_aggregation_type>
  2420 + </field>
  2421 + <field>
  2422 + <field_name>isfb</field_name>
  2423 + <key_value>14</key_value>
  2424 + <target_name>fcno14_isfb</target_name>
  2425 + <target_type>String</target_type>
  2426 + <target_format/>
  2427 + <target_length>-1</target_length>
  2428 + <target_precision>-1</target_precision>
  2429 + <target_decimal_symbol/>
  2430 + <target_grouping_symbol/>
  2431 + <target_currency_symbol/>
  2432 + <target_null_string/>
  2433 + <target_aggregation_type>-</target_aggregation_type>
  2434 + </field>
  2435 + <field>
  2436 + <field_name>id</field_name>
  2437 + <key_value>15</key_value>
  2438 + <target_name>fcno15_id</target_name>
  2439 + <target_type>String</target_type>
  2440 + <target_format/>
  2441 + <target_length>-1</target_length>
  2442 + <target_precision>-1</target_precision>
  2443 + <target_decimal_symbol/>
  2444 + <target_grouping_symbol/>
  2445 + <target_currency_symbol/>
  2446 + <target_null_string/>
  2447 + <target_aggregation_type>-</target_aggregation_type>
  2448 + </field>
  2449 + <field>
  2450 + <field_name>fcsj</field_name>
  2451 + <key_value>15</key_value>
  2452 + <target_name>fcno15_fcsj</target_name>
  2453 + <target_type>String</target_type>
  2454 + <target_format/>
  2455 + <target_length>-1</target_length>
  2456 + <target_precision>-1</target_precision>
  2457 + <target_decimal_symbol/>
  2458 + <target_grouping_symbol/>
  2459 + <target_currency_symbol/>
  2460 + <target_null_string/>
  2461 + <target_aggregation_type>-</target_aggregation_type>
  2462 + </field>
  2463 + <field>
  2464 + <field_name>fczdName</field_name>
  2465 + <key_value>15</key_value>
  2466 + <target_name>fcno15_zdname</target_name>
  2467 + <target_type>String</target_type>
  2468 + <target_format/>
  2469 + <target_length>-1</target_length>
  2470 + <target_precision>-1</target_precision>
  2471 + <target_decimal_symbol/>
  2472 + <target_grouping_symbol/>
  2473 + <target_currency_symbol/>
  2474 + <target_null_string/>
  2475 + <target_aggregation_type>-</target_aggregation_type>
  2476 + </field>
  2477 + <field>
  2478 + <field_name>bc_type</field_name>
  2479 + <key_value>15</key_value>
  2480 + <target_name>fcno15_bctype</target_name>
  2481 + <target_type>String</target_type>
  2482 + <target_format/>
  2483 + <target_length>-1</target_length>
  2484 + <target_precision>-1</target_precision>
  2485 + <target_decimal_symbol/>
  2486 + <target_grouping_symbol/>
  2487 + <target_currency_symbol/>
  2488 + <target_null_string/>
  2489 + <target_aggregation_type>-</target_aggregation_type>
  2490 + </field>
  2491 + <field>
  2492 + <field_name>xl_dir</field_name>
  2493 + <key_value>15</key_value>
  2494 + <target_name>fcno15_xldir</target_name>
  2495 + <target_type>String</target_type>
  2496 + <target_format/>
  2497 + <target_length>-1</target_length>
  2498 + <target_precision>-1</target_precision>
  2499 + <target_decimal_symbol/>
  2500 + <target_grouping_symbol/>
  2501 + <target_currency_symbol/>
  2502 + <target_null_string/>
  2503 + <target_aggregation_type>-</target_aggregation_type>
  2504 + </field>
  2505 + <field>
  2506 + <field_name>isfb</field_name>
  2507 + <key_value>15</key_value>
  2508 + <target_name>fcno15_isfb</target_name>
  2509 + <target_type>String</target_type>
  2510 + <target_format/>
  2511 + <target_length>-1</target_length>
  2512 + <target_precision>-1</target_precision>
  2513 + <target_decimal_symbol/>
  2514 + <target_grouping_symbol/>
  2515 + <target_currency_symbol/>
  2516 + <target_null_string/>
  2517 + <target_aggregation_type>-</target_aggregation_type>
  2518 + </field>
  2519 + <field>
  2520 + <field_name>id</field_name>
  2521 + <key_value>16</key_value>
  2522 + <target_name>fcno16_id</target_name>
  2523 + <target_type>String</target_type>
  2524 + <target_format/>
  2525 + <target_length>-1</target_length>
  2526 + <target_precision>-1</target_precision>
  2527 + <target_decimal_symbol/>
  2528 + <target_grouping_symbol/>
  2529 + <target_currency_symbol/>
  2530 + <target_null_string/>
  2531 + <target_aggregation_type>-</target_aggregation_type>
  2532 + </field>
  2533 + <field>
  2534 + <field_name>fcsj</field_name>
  2535 + <key_value>16</key_value>
  2536 + <target_name>fcno16_fcsj</target_name>
  2537 + <target_type>String</target_type>
  2538 + <target_format/>
  2539 + <target_length>-1</target_length>
  2540 + <target_precision>-1</target_precision>
  2541 + <target_decimal_symbol/>
  2542 + <target_grouping_symbol/>
  2543 + <target_currency_symbol/>
  2544 + <target_null_string/>
  2545 + <target_aggregation_type>-</target_aggregation_type>
  2546 + </field>
  2547 + <field>
  2548 + <field_name>fczdName</field_name>
  2549 + <key_value>16</key_value>
1830 2550 <target_name>fcno16_zdname</target_name>
1831 2551 <target_type>String</target_type>
1832 2552 <target_format/>
... ... @@ -1840,8 +2560,204 @@
1840 2560 </field>
1841 2561 <field>
1842 2562 <field_name>bc_type</field_name>
1843   - <key_value>16</key_value>
1844   - <target_name>fcno16_bctype</target_name>
  2563 + <key_value>16</key_value>
  2564 + <target_name>fcno16_bctype</target_name>
  2565 + <target_type>String</target_type>
  2566 + <target_format/>
  2567 + <target_length>-1</target_length>
  2568 + <target_precision>-1</target_precision>
  2569 + <target_decimal_symbol/>
  2570 + <target_grouping_symbol/>
  2571 + <target_currency_symbol/>
  2572 + <target_null_string/>
  2573 + <target_aggregation_type>-</target_aggregation_type>
  2574 + </field>
  2575 + <field>
  2576 + <field_name>xl_dir</field_name>
  2577 + <key_value>16</key_value>
  2578 + <target_name>fcno16_xldir</target_name>
  2579 + <target_type>String</target_type>
  2580 + <target_format/>
  2581 + <target_length>-1</target_length>
  2582 + <target_precision>-1</target_precision>
  2583 + <target_decimal_symbol/>
  2584 + <target_grouping_symbol/>
  2585 + <target_currency_symbol/>
  2586 + <target_null_string/>
  2587 + <target_aggregation_type>-</target_aggregation_type>
  2588 + </field>
  2589 + <field>
  2590 + <field_name>isfb</field_name>
  2591 + <key_value>16</key_value>
  2592 + <target_name>fcno16_isfb</target_name>
  2593 + <target_type>String</target_type>
  2594 + <target_format/>
  2595 + <target_length>-1</target_length>
  2596 + <target_precision>-1</target_precision>
  2597 + <target_decimal_symbol/>
  2598 + <target_grouping_symbol/>
  2599 + <target_currency_symbol/>
  2600 + <target_null_string/>
  2601 + <target_aggregation_type>-</target_aggregation_type>
  2602 + </field>
  2603 + <field>
  2604 + <field_name>id</field_name>
  2605 + <key_value>17</key_value>
  2606 + <target_name>fcno17_id</target_name>
  2607 + <target_type>String</target_type>
  2608 + <target_format/>
  2609 + <target_length>-1</target_length>
  2610 + <target_precision>-1</target_precision>
  2611 + <target_decimal_symbol/>
  2612 + <target_grouping_symbol/>
  2613 + <target_currency_symbol/>
  2614 + <target_null_string/>
  2615 + <target_aggregation_type>-</target_aggregation_type>
  2616 + </field>
  2617 + <field>
  2618 + <field_name>fcsj</field_name>
  2619 + <key_value>17</key_value>
  2620 + <target_name>fcno17_fcsj</target_name>
  2621 + <target_type>String</target_type>
  2622 + <target_format/>
  2623 + <target_length>-1</target_length>
  2624 + <target_precision>-1</target_precision>
  2625 + <target_decimal_symbol/>
  2626 + <target_grouping_symbol/>
  2627 + <target_currency_symbol/>
  2628 + <target_null_string/>
  2629 + <target_aggregation_type>-</target_aggregation_type>
  2630 + </field>
  2631 + <field>
  2632 + <field_name>fczdName</field_name>
  2633 + <key_value>17</key_value>
  2634 + <target_name>fcno17_zdname</target_name>
  2635 + <target_type>String</target_type>
  2636 + <target_format/>
  2637 + <target_length>-1</target_length>
  2638 + <target_precision>-1</target_precision>
  2639 + <target_decimal_symbol/>
  2640 + <target_grouping_symbol/>
  2641 + <target_currency_symbol/>
  2642 + <target_null_string/>
  2643 + <target_aggregation_type>-</target_aggregation_type>
  2644 + </field>
  2645 + <field>
  2646 + <field_name>bc_type</field_name>
  2647 + <key_value>17</key_value>
  2648 + <target_name>fcno17_bctype</target_name>
  2649 + <target_type>String</target_type>
  2650 + <target_format/>
  2651 + <target_length>-1</target_length>
  2652 + <target_precision>-1</target_precision>
  2653 + <target_decimal_symbol/>
  2654 + <target_grouping_symbol/>
  2655 + <target_currency_symbol/>
  2656 + <target_null_string/>
  2657 + <target_aggregation_type>-</target_aggregation_type>
  2658 + </field>
  2659 + <field>
  2660 + <field_name>xl_dir</field_name>
  2661 + <key_value>17</key_value>
  2662 + <target_name>fcno17_xldir</target_name>
  2663 + <target_type>String</target_type>
  2664 + <target_format/>
  2665 + <target_length>-1</target_length>
  2666 + <target_precision>-1</target_precision>
  2667 + <target_decimal_symbol/>
  2668 + <target_grouping_symbol/>
  2669 + <target_currency_symbol/>
  2670 + <target_null_string/>
  2671 + <target_aggregation_type>-</target_aggregation_type>
  2672 + </field>
  2673 + <field>
  2674 + <field_name>isfb</field_name>
  2675 + <key_value>17</key_value>
  2676 + <target_name>fcno17_isfb</target_name>
  2677 + <target_type>String</target_type>
  2678 + <target_format/>
  2679 + <target_length>-1</target_length>
  2680 + <target_precision>-1</target_precision>
  2681 + <target_decimal_symbol/>
  2682 + <target_grouping_symbol/>
  2683 + <target_currency_symbol/>
  2684 + <target_null_string/>
  2685 + <target_aggregation_type>-</target_aggregation_type>
  2686 + </field>
  2687 + <field>
  2688 + <field_name>id</field_name>
  2689 + <key_value>18</key_value>
  2690 + <target_name>fcno18_id</target_name>
  2691 + <target_type>String</target_type>
  2692 + <target_format/>
  2693 + <target_length>-1</target_length>
  2694 + <target_precision>-1</target_precision>
  2695 + <target_decimal_symbol/>
  2696 + <target_grouping_symbol/>
  2697 + <target_currency_symbol/>
  2698 + <target_null_string/>
  2699 + <target_aggregation_type>-</target_aggregation_type>
  2700 + </field>
  2701 + <field>
  2702 + <field_name>fcsj</field_name>
  2703 + <key_value>18</key_value>
  2704 + <target_name>fcno18_fcsj</target_name>
  2705 + <target_type>String</target_type>
  2706 + <target_format/>
  2707 + <target_length>-1</target_length>
  2708 + <target_precision>-1</target_precision>
  2709 + <target_decimal_symbol/>
  2710 + <target_grouping_symbol/>
  2711 + <target_currency_symbol/>
  2712 + <target_null_string/>
  2713 + <target_aggregation_type>-</target_aggregation_type>
  2714 + </field>
  2715 + <field>
  2716 + <field_name>fczdName</field_name>
  2717 + <key_value>18</key_value>
  2718 + <target_name>fcno18_zdname</target_name>
  2719 + <target_type>String</target_type>
  2720 + <target_format/>
  2721 + <target_length>-1</target_length>
  2722 + <target_precision>-1</target_precision>
  2723 + <target_decimal_symbol/>
  2724 + <target_grouping_symbol/>
  2725 + <target_currency_symbol/>
  2726 + <target_null_string/>
  2727 + <target_aggregation_type>-</target_aggregation_type>
  2728 + </field>
  2729 + <field>
  2730 + <field_name>bc_type</field_name>
  2731 + <key_value>18</key_value>
  2732 + <target_name>fcno18_bctype</target_name>
  2733 + <target_type>String</target_type>
  2734 + <target_format/>
  2735 + <target_length>-1</target_length>
  2736 + <target_precision>-1</target_precision>
  2737 + <target_decimal_symbol/>
  2738 + <target_grouping_symbol/>
  2739 + <target_currency_symbol/>
  2740 + <target_null_string/>
  2741 + <target_aggregation_type>-</target_aggregation_type>
  2742 + </field>
  2743 + <field>
  2744 + <field_name>xl_dir</field_name>
  2745 + <key_value>18</key_value>
  2746 + <target_name>fcno18_xldir</target_name>
  2747 + <target_type>String</target_type>
  2748 + <target_format/>
  2749 + <target_length>-1</target_length>
  2750 + <target_precision>-1</target_precision>
  2751 + <target_decimal_symbol/>
  2752 + <target_grouping_symbol/>
  2753 + <target_currency_symbol/>
  2754 + <target_null_string/>
  2755 + <target_aggregation_type>-</target_aggregation_type>
  2756 + </field>
  2757 + <field>
  2758 + <field_name>isfb</field_name>
  2759 + <key_value>18</key_value>
  2760 + <target_name>fcno18_isfb</target_name>
1845 2761 <target_type>String</target_type>
1846 2762 <target_format/>
1847 2763 <target_length>-1</target_length>
... ... @@ -1854,8 +2770,8 @@
1854 2770 </field>
1855 2771 <field>
1856 2772 <field_name>id</field_name>
1857   - <key_value>17</key_value>
1858   - <target_name>fcno17_id</target_name>
  2773 + <key_value>19</key_value>
  2774 + <target_name>fcno19_id</target_name>
1859 2775 <target_type>String</target_type>
1860 2776 <target_format/>
1861 2777 <target_length>-1</target_length>
... ... @@ -1868,8 +2784,204 @@
1868 2784 </field>
1869 2785 <field>
1870 2786 <field_name>fcsj</field_name>
1871   - <key_value>17</key_value>
1872   - <target_name>fcno17_fcsj</target_name>
  2787 + <key_value>19</key_value>
  2788 + <target_name>fcno19_fcsj</target_name>
  2789 + <target_type>String</target_type>
  2790 + <target_format/>
  2791 + <target_length>-1</target_length>
  2792 + <target_precision>-1</target_precision>
  2793 + <target_decimal_symbol/>
  2794 + <target_grouping_symbol/>
  2795 + <target_currency_symbol/>
  2796 + <target_null_string/>
  2797 + <target_aggregation_type>-</target_aggregation_type>
  2798 + </field>
  2799 + <field>
  2800 + <field_name>fczdName</field_name>
  2801 + <key_value>19</key_value>
  2802 + <target_name>fcno19_zdname</target_name>
  2803 + <target_type>String</target_type>
  2804 + <target_format/>
  2805 + <target_length>-1</target_length>
  2806 + <target_precision>-1</target_precision>
  2807 + <target_decimal_symbol/>
  2808 + <target_grouping_symbol/>
  2809 + <target_currency_symbol/>
  2810 + <target_null_string/>
  2811 + <target_aggregation_type>-</target_aggregation_type>
  2812 + </field>
  2813 + <field>
  2814 + <field_name>bc_type</field_name>
  2815 + <key_value>19</key_value>
  2816 + <target_name>fcno19_bctype</target_name>
  2817 + <target_type>String</target_type>
  2818 + <target_format/>
  2819 + <target_length>-1</target_length>
  2820 + <target_precision>-1</target_precision>
  2821 + <target_decimal_symbol/>
  2822 + <target_grouping_symbol/>
  2823 + <target_currency_symbol/>
  2824 + <target_null_string/>
  2825 + <target_aggregation_type>-</target_aggregation_type>
  2826 + </field>
  2827 + <field>
  2828 + <field_name>xl_dir</field_name>
  2829 + <key_value>19</key_value>
  2830 + <target_name>fcno19_xldir</target_name>
  2831 + <target_type>String</target_type>
  2832 + <target_format/>
  2833 + <target_length>-1</target_length>
  2834 + <target_precision>-1</target_precision>
  2835 + <target_decimal_symbol/>
  2836 + <target_grouping_symbol/>
  2837 + <target_currency_symbol/>
  2838 + <target_null_string/>
  2839 + <target_aggregation_type>-</target_aggregation_type>
  2840 + </field>
  2841 + <field>
  2842 + <field_name>isfb</field_name>
  2843 + <key_value>19</key_value>
  2844 + <target_name>fcno19_isfb</target_name>
  2845 + <target_type>String</target_type>
  2846 + <target_format/>
  2847 + <target_length>-1</target_length>
  2848 + <target_precision>-1</target_precision>
  2849 + <target_decimal_symbol/>
  2850 + <target_grouping_symbol/>
  2851 + <target_currency_symbol/>
  2852 + <target_null_string/>
  2853 + <target_aggregation_type>-</target_aggregation_type>
  2854 + </field>
  2855 + <field>
  2856 + <field_name>id</field_name>
  2857 + <key_value>20</key_value>
  2858 + <target_name>fcno20_id</target_name>
  2859 + <target_type>String</target_type>
  2860 + <target_format/>
  2861 + <target_length>-1</target_length>
  2862 + <target_precision>-1</target_precision>
  2863 + <target_decimal_symbol/>
  2864 + <target_grouping_symbol/>
  2865 + <target_currency_symbol/>
  2866 + <target_null_string/>
  2867 + <target_aggregation_type>-</target_aggregation_type>
  2868 + </field>
  2869 + <field>
  2870 + <field_name>fcsj</field_name>
  2871 + <key_value>20</key_value>
  2872 + <target_name>fcno20_fcsj</target_name>
  2873 + <target_type>String</target_type>
  2874 + <target_format/>
  2875 + <target_length>-1</target_length>
  2876 + <target_precision>-1</target_precision>
  2877 + <target_decimal_symbol/>
  2878 + <target_grouping_symbol/>
  2879 + <target_currency_symbol/>
  2880 + <target_null_string/>
  2881 + <target_aggregation_type>-</target_aggregation_type>
  2882 + </field>
  2883 + <field>
  2884 + <field_name>fczdName</field_name>
  2885 + <key_value>20</key_value>
  2886 + <target_name>fcno20_zdname</target_name>
  2887 + <target_type>String</target_type>
  2888 + <target_format/>
  2889 + <target_length>-1</target_length>
  2890 + <target_precision>-1</target_precision>
  2891 + <target_decimal_symbol/>
  2892 + <target_grouping_symbol/>
  2893 + <target_currency_symbol/>
  2894 + <target_null_string/>
  2895 + <target_aggregation_type>-</target_aggregation_type>
  2896 + </field>
  2897 + <field>
  2898 + <field_name>bc_type</field_name>
  2899 + <key_value>20</key_value>
  2900 + <target_name>fcno20_bctype</target_name>
  2901 + <target_type>String</target_type>
  2902 + <target_format/>
  2903 + <target_length>-1</target_length>
  2904 + <target_precision>-1</target_precision>
  2905 + <target_decimal_symbol/>
  2906 + <target_grouping_symbol/>
  2907 + <target_currency_symbol/>
  2908 + <target_null_string/>
  2909 + <target_aggregation_type>-</target_aggregation_type>
  2910 + </field>
  2911 + <field>
  2912 + <field_name>xl_dir</field_name>
  2913 + <key_value>20</key_value>
  2914 + <target_name>fcno20_xldir</target_name>
  2915 + <target_type>String</target_type>
  2916 + <target_format/>
  2917 + <target_length>-1</target_length>
  2918 + <target_precision>-1</target_precision>
  2919 + <target_decimal_symbol/>
  2920 + <target_grouping_symbol/>
  2921 + <target_currency_symbol/>
  2922 + <target_null_string/>
  2923 + <target_aggregation_type>-</target_aggregation_type>
  2924 + </field>
  2925 + <field>
  2926 + <field_name>isfb</field_name>
  2927 + <key_value>20</key_value>
  2928 + <target_name>fcno20_isfb</target_name>
  2929 + <target_type>String</target_type>
  2930 + <target_format/>
  2931 + <target_length>-1</target_length>
  2932 + <target_precision>-1</target_precision>
  2933 + <target_decimal_symbol/>
  2934 + <target_grouping_symbol/>
  2935 + <target_currency_symbol/>
  2936 + <target_null_string/>
  2937 + <target_aggregation_type>-</target_aggregation_type>
  2938 + </field>
  2939 + <field>
  2940 + <field_name>id</field_name>
  2941 + <key_value>21</key_value>
  2942 + <target_name>fcno21_id</target_name>
  2943 + <target_type>String</target_type>
  2944 + <target_format/>
  2945 + <target_length>-1</target_length>
  2946 + <target_precision>-1</target_precision>
  2947 + <target_decimal_symbol/>
  2948 + <target_grouping_symbol/>
  2949 + <target_currency_symbol/>
  2950 + <target_null_string/>
  2951 + <target_aggregation_type>-</target_aggregation_type>
  2952 + </field>
  2953 + <field>
  2954 + <field_name>fcsj</field_name>
  2955 + <key_value>21</key_value>
  2956 + <target_name>fcno21_fcsj</target_name>
  2957 + <target_type>String</target_type>
  2958 + <target_format/>
  2959 + <target_length>-1</target_length>
  2960 + <target_precision>-1</target_precision>
  2961 + <target_decimal_symbol/>
  2962 + <target_grouping_symbol/>
  2963 + <target_currency_symbol/>
  2964 + <target_null_string/>
  2965 + <target_aggregation_type>-</target_aggregation_type>
  2966 + </field>
  2967 + <field>
  2968 + <field_name>fczdName</field_name>
  2969 + <key_value>21</key_value>
  2970 + <target_name>fcno21_zdname</target_name>
  2971 + <target_type>String</target_type>
  2972 + <target_format/>
  2973 + <target_length>-1</target_length>
  2974 + <target_precision>-1</target_precision>
  2975 + <target_decimal_symbol/>
  2976 + <target_grouping_symbol/>
  2977 + <target_currency_symbol/>
  2978 + <target_null_string/>
  2979 + <target_aggregation_type>-</target_aggregation_type>
  2980 + </field>
  2981 + <field>
  2982 + <field_name>bc_type</field_name>
  2983 + <key_value>21</key_value>
  2984 + <target_name>fcno21_bctype</target_name>
1873 2985 <target_type>String</target_type>
1874 2986 <target_format/>
1875 2987 <target_length>-1</target_length>
... ... @@ -1881,9 +2993,9 @@
1881 2993 <target_aggregation_type>-</target_aggregation_type>
1882 2994 </field>
1883 2995 <field>
1884   - <field_name>fczdName</field_name>
1885   - <key_value>17</key_value>
1886   - <target_name>fcno17_zdname</target_name>
  2996 + <field_name>xl_dir</field_name>
  2997 + <key_value>21</key_value>
  2998 + <target_name>fcno21_xldir</target_name>
1887 2999 <target_type>String</target_type>
1888 3000 <target_format/>
1889 3001 <target_length>-1</target_length>
... ... @@ -1895,9 +3007,9 @@
1895 3007 <target_aggregation_type>-</target_aggregation_type>
1896 3008 </field>
1897 3009 <field>
1898   - <field_name>bc_type</field_name>
1899   - <key_value>17</key_value>
1900   - <target_name>fcno17_bctype</target_name>
  3010 + <field_name>isfb</field_name>
  3011 + <key_value>21</key_value>
  3012 + <target_name>fcno21_isfb</target_name>
1901 3013 <target_type>String</target_type>
1902 3014 <target_format/>
1903 3015 <target_length>-1</target_length>
... ... @@ -1910,8 +3022,8 @@
1910 3022 </field>
1911 3023 <field>
1912 3024 <field_name>id</field_name>
1913   - <key_value>18</key_value>
1914   - <target_name>fcno18_id</target_name>
  3025 + <key_value>22</key_value>
  3026 + <target_name>fcno22_id</target_name>
1915 3027 <target_type>String</target_type>
1916 3028 <target_format/>
1917 3029 <target_length>-1</target_length>
... ... @@ -1924,8 +3036,8 @@
1924 3036 </field>
1925 3037 <field>
1926 3038 <field_name>fcsj</field_name>
1927   - <key_value>18</key_value>
1928   - <target_name>fcno18_fcsj</target_name>
  3039 + <key_value>22</key_value>
  3040 + <target_name>fcno22_fcsj</target_name>
1929 3041 <target_type>String</target_type>
1930 3042 <target_format/>
1931 3043 <target_length>-1</target_length>
... ... @@ -1938,8 +3050,8 @@
1938 3050 </field>
1939 3051 <field>
1940 3052 <field_name>fczdName</field_name>
1941   - <key_value>18</key_value>
1942   - <target_name>fcno18_zdname</target_name>
  3053 + <key_value>22</key_value>
  3054 + <target_name>fcno22_zdname</target_name>
1943 3055 <target_type>String</target_type>
1944 3056 <target_format/>
1945 3057 <target_length>-1</target_length>
... ... @@ -1952,8 +3064,8 @@
1952 3064 </field>
1953 3065 <field>
1954 3066 <field_name>bc_type</field_name>
1955   - <key_value>18</key_value>
1956   - <target_name>fcno18_bctype</target_name>
  3067 + <key_value>22</key_value>
  3068 + <target_name>fcno22_bctype</target_name>
1957 3069 <target_type>String</target_type>
1958 3070 <target_format/>
1959 3071 <target_length>-1</target_length>
... ... @@ -1965,9 +3077,9 @@
1965 3077 <target_aggregation_type>-</target_aggregation_type>
1966 3078 </field>
1967 3079 <field>
1968   - <field_name>id</field_name>
1969   - <key_value>19</key_value>
1970   - <target_name>fcno19_id</target_name>
  3080 + <field_name>xl_dir</field_name>
  3081 + <key_value>22</key_value>
  3082 + <target_name>fcno22_xldir</target_name>
1971 3083 <target_type>String</target_type>
1972 3084 <target_format/>
1973 3085 <target_length>-1</target_length>
... ... @@ -1979,9 +3091,9 @@
1979 3091 <target_aggregation_type>-</target_aggregation_type>
1980 3092 </field>
1981 3093 <field>
1982   - <field_name>fcsj</field_name>
1983   - <key_value>19</key_value>
1984   - <target_name>fcno19_fcsj</target_name>
  3094 + <field_name>isfb</field_name>
  3095 + <key_value>22</key_value>
  3096 + <target_name>fcno22_isfb</target_name>
1985 3097 <target_type>String</target_type>
1986 3098 <target_format/>
1987 3099 <target_length>-1</target_length>
... ... @@ -1993,9 +3105,9 @@
1993 3105 <target_aggregation_type>-</target_aggregation_type>
1994 3106 </field>
1995 3107 <field>
1996   - <field_name>fczdName</field_name>
1997   - <key_value>19</key_value>
1998   - <target_name>fcno19_zdname</target_name>
  3108 + <field_name>id</field_name>
  3109 + <key_value>23</key_value>
  3110 + <target_name>fcno23_id</target_name>
1999 3111 <target_type>String</target_type>
2000 3112 <target_format/>
2001 3113 <target_length>-1</target_length>
... ... @@ -2007,9 +3119,9 @@
2007 3119 <target_aggregation_type>-</target_aggregation_type>
2008 3120 </field>
2009 3121 <field>
2010   - <field_name>bc_type</field_name>
2011   - <key_value>19</key_value>
2012   - <target_name>fcno19_bctype</target_name>
  3122 + <field_name>fcsj</field_name>
  3123 + <key_value>23</key_value>
  3124 + <target_name>fcno23_fcsj</target_name>
2013 3125 <target_type>String</target_type>
2014 3126 <target_format/>
2015 3127 <target_length>-1</target_length>
... ... @@ -2021,9 +3133,9 @@
2021 3133 <target_aggregation_type>-</target_aggregation_type>
2022 3134 </field>
2023 3135 <field>
2024   - <field_name>id</field_name>
2025   - <key_value>20</key_value>
2026   - <target_name>fcno20_id</target_name>
  3136 + <field_name>fczdName</field_name>
  3137 + <key_value>23</key_value>
  3138 + <target_name>fcno23_zdname</target_name>
2027 3139 <target_type>String</target_type>
2028 3140 <target_format/>
2029 3141 <target_length>-1</target_length>
... ... @@ -2035,9 +3147,9 @@
2035 3147 <target_aggregation_type>-</target_aggregation_type>
2036 3148 </field>
2037 3149 <field>
2038   - <field_name>fcsj</field_name>
2039   - <key_value>20</key_value>
2040   - <target_name>fcno20_fcsj</target_name>
  3150 + <field_name>bc_type</field_name>
  3151 + <key_value>23</key_value>
  3152 + <target_name>fcno23_bctype</target_name>
2041 3153 <target_type>String</target_type>
2042 3154 <target_format/>
2043 3155 <target_length>-1</target_length>
... ... @@ -2049,9 +3161,9 @@
2049 3161 <target_aggregation_type>-</target_aggregation_type>
2050 3162 </field>
2051 3163 <field>
2052   - <field_name>fczdName</field_name>
2053   - <key_value>20</key_value>
2054   - <target_name>fcno20_zdname</target_name>
  3164 + <field_name>xl_dir</field_name>
  3165 + <key_value>23</key_value>
  3166 + <target_name>fcno23_xldir</target_name>
2055 3167 <target_type>String</target_type>
2056 3168 <target_format/>
2057 3169 <target_length>-1</target_length>
... ... @@ -2063,9 +3175,9 @@
2063 3175 <target_aggregation_type>-</target_aggregation_type>
2064 3176 </field>
2065 3177 <field>
2066   - <field_name>bc_type</field_name>
2067   - <key_value>20</key_value>
2068   - <target_name>fcno20_bctype</target_name>
  3178 + <field_name>isfb</field_name>
  3179 + <key_value>23</key_value>
  3180 + <target_name>fcno23_isfb</target_name>
2069 3181 <target_type>String</target_type>
2070 3182 <target_format/>
2071 3183 <target_length>-1</target_length>
... ... @@ -2078,8 +3190,8 @@
2078 3190 </field>
2079 3191 <field>
2080 3192 <field_name>id</field_name>
2081   - <key_value>21</key_value>
2082   - <target_name>fcno21_id</target_name>
  3193 + <key_value>24</key_value>
  3194 + <target_name>fcno24_id</target_name>
2083 3195 <target_type>String</target_type>
2084 3196 <target_format/>
2085 3197 <target_length>-1</target_length>
... ... @@ -2092,8 +3204,8 @@
2092 3204 </field>
2093 3205 <field>
2094 3206 <field_name>fcsj</field_name>
2095   - <key_value>21</key_value>
2096   - <target_name>fcno21_fcsj</target_name>
  3207 + <key_value>24</key_value>
  3208 + <target_name>fcno24_fcsj</target_name>
2097 3209 <target_type>String</target_type>
2098 3210 <target_format/>
2099 3211 <target_length>-1</target_length>
... ... @@ -2106,8 +3218,8 @@
2106 3218 </field>
2107 3219 <field>
2108 3220 <field_name>fczdName</field_name>
2109   - <key_value>21</key_value>
2110   - <target_name>fcno21_zdname</target_name>
  3221 + <key_value>24</key_value>
  3222 + <target_name>fcno24_zdname</target_name>
2111 3223 <target_type>String</target_type>
2112 3224 <target_format/>
2113 3225 <target_length>-1</target_length>
... ... @@ -2120,8 +3232,8 @@
2120 3232 </field>
2121 3233 <field>
2122 3234 <field_name>bc_type</field_name>
2123   - <key_value>21</key_value>
2124   - <target_name>fcno21_bctype</target_name>
  3235 + <key_value>24</key_value>
  3236 + <target_name>fcno24_bctype</target_name>
2125 3237 <target_type>String</target_type>
2126 3238 <target_format/>
2127 3239 <target_length>-1</target_length>
... ... @@ -2133,9 +3245,9 @@
2133 3245 <target_aggregation_type>-</target_aggregation_type>
2134 3246 </field>
2135 3247 <field>
2136   - <field_name>id</field_name>
2137   - <key_value>22</key_value>
2138   - <target_name>fcno22_id</target_name>
  3248 + <field_name>xl_dir</field_name>
  3249 + <key_value>24</key_value>
  3250 + <target_name>fcno24_xldir</target_name>
2139 3251 <target_type>String</target_type>
2140 3252 <target_format/>
2141 3253 <target_length>-1</target_length>
... ... @@ -2147,9 +3259,9 @@
2147 3259 <target_aggregation_type>-</target_aggregation_type>
2148 3260 </field>
2149 3261 <field>
2150   - <field_name>fcsj</field_name>
2151   - <key_value>22</key_value>
2152   - <target_name>fcno22_fcsj</target_name>
  3262 + <field_name>isfb</field_name>
  3263 + <key_value>24</key_value>
  3264 + <target_name>fcno24_isfb</target_name>
2153 3265 <target_type>String</target_type>
2154 3266 <target_format/>
2155 3267 <target_length>-1</target_length>
... ... @@ -2161,9 +3273,9 @@
2161 3273 <target_aggregation_type>-</target_aggregation_type>
2162 3274 </field>
2163 3275 <field>
2164   - <field_name>fczdName</field_name>
2165   - <key_value>22</key_value>
2166   - <target_name>fcno22_zdname</target_name>
  3276 + <field_name>id</field_name>
  3277 + <key_value>25</key_value>
  3278 + <target_name>fcno25_id</target_name>
2167 3279 <target_type>String</target_type>
2168 3280 <target_format/>
2169 3281 <target_length>-1</target_length>
... ... @@ -2175,9 +3287,9 @@
2175 3287 <target_aggregation_type>-</target_aggregation_type>
2176 3288 </field>
2177 3289 <field>
2178   - <field_name>bc_type</field_name>
2179   - <key_value>22</key_value>
2180   - <target_name>fcno22_bctype</target_name>
  3290 + <field_name>fcsj</field_name>
  3291 + <key_value>25</key_value>
  3292 + <target_name>fcno25_fcsj</target_name>
2181 3293 <target_type>String</target_type>
2182 3294 <target_format/>
2183 3295 <target_length>-1</target_length>
... ... @@ -2189,9 +3301,9 @@
2189 3301 <target_aggregation_type>-</target_aggregation_type>
2190 3302 </field>
2191 3303 <field>
2192   - <field_name>id</field_name>
2193   - <key_value>23</key_value>
2194   - <target_name>fcno23_id</target_name>
  3304 + <field_name>fczdName</field_name>
  3305 + <key_value>25</key_value>
  3306 + <target_name>fcno25_zdname</target_name>
2195 3307 <target_type>String</target_type>
2196 3308 <target_format/>
2197 3309 <target_length>-1</target_length>
... ... @@ -2203,9 +3315,9 @@
2203 3315 <target_aggregation_type>-</target_aggregation_type>
2204 3316 </field>
2205 3317 <field>
2206   - <field_name>fcsj</field_name>
2207   - <key_value>23</key_value>
2208   - <target_name>fcno23_fcsj</target_name>
  3318 + <field_name>bc_type</field_name>
  3319 + <key_value>25</key_value>
  3320 + <target_name>fcno25_bctype</target_name>
2209 3321 <target_type>String</target_type>
2210 3322 <target_format/>
2211 3323 <target_length>-1</target_length>
... ... @@ -2217,9 +3329,9 @@
2217 3329 <target_aggregation_type>-</target_aggregation_type>
2218 3330 </field>
2219 3331 <field>
2220   - <field_name>fczdName</field_name>
2221   - <key_value>23</key_value>
2222   - <target_name>fcno23_zdname</target_name>
  3332 + <field_name>xl_dir</field_name>
  3333 + <key_value>25</key_value>
  3334 + <target_name>fcno25_xldir</target_name>
2223 3335 <target_type>String</target_type>
2224 3336 <target_format/>
2225 3337 <target_length>-1</target_length>
... ... @@ -2231,9 +3343,9 @@
2231 3343 <target_aggregation_type>-</target_aggregation_type>
2232 3344 </field>
2233 3345 <field>
2234   - <field_name>bc_type</field_name>
2235   - <key_value>23</key_value>
2236   - <target_name>fcno23_bctype</target_name>
  3346 + <field_name>isfb</field_name>
  3347 + <key_value>25</key_value>
  3348 + <target_name>fcno25_isfb</target_name>
2237 3349 <target_type>String</target_type>
2238 3350 <target_format/>
2239 3351 <target_length>-1</target_length>
... ... @@ -2246,8 +3358,8 @@
2246 3358 </field>
2247 3359 <field>
2248 3360 <field_name>id</field_name>
2249   - <key_value>24</key_value>
2250   - <target_name>fcno24_id</target_name>
  3361 + <key_value>26</key_value>
  3362 + <target_name>fcno26_id</target_name>
2251 3363 <target_type>String</target_type>
2252 3364 <target_format/>
2253 3365 <target_length>-1</target_length>
... ... @@ -2260,8 +3372,8 @@
2260 3372 </field>
2261 3373 <field>
2262 3374 <field_name>fcsj</field_name>
2263   - <key_value>24</key_value>
2264   - <target_name>fcno24_fcsj</target_name>
  3375 + <key_value>26</key_value>
  3376 + <target_name>fcno26_fcsj</target_name>
2265 3377 <target_type>String</target_type>
2266 3378 <target_format/>
2267 3379 <target_length>-1</target_length>
... ... @@ -2274,8 +3386,8 @@
2274 3386 </field>
2275 3387 <field>
2276 3388 <field_name>fczdName</field_name>
2277   - <key_value>24</key_value>
2278   - <target_name>fcno24_zdname</target_name>
  3389 + <key_value>26</key_value>
  3390 + <target_name>fcno26_zdname</target_name>
2279 3391 <target_type>String</target_type>
2280 3392 <target_format/>
2281 3393 <target_length>-1</target_length>
... ... @@ -2288,8 +3400,8 @@
2288 3400 </field>
2289 3401 <field>
2290 3402 <field_name>bc_type</field_name>
2291   - <key_value>24</key_value>
2292   - <target_name>fcno24_bctype</target_name>
  3403 + <key_value>26</key_value>
  3404 + <target_name>fcno26_bctype</target_name>
2293 3405 <target_type>String</target_type>
2294 3406 <target_format/>
2295 3407 <target_length>-1</target_length>
... ... @@ -2301,9 +3413,9 @@
2301 3413 <target_aggregation_type>-</target_aggregation_type>
2302 3414 </field>
2303 3415 <field>
2304   - <field_name>id</field_name>
2305   - <key_value>25</key_value>
2306   - <target_name>fcno25_id</target_name>
  3416 + <field_name>xl_dir</field_name>
  3417 + <key_value>26</key_value>
  3418 + <target_name>fcno26_xldir</target_name>
2307 3419 <target_type>String</target_type>
2308 3420 <target_format/>
2309 3421 <target_length>-1</target_length>
... ... @@ -2315,9 +3427,9 @@
2315 3427 <target_aggregation_type>-</target_aggregation_type>
2316 3428 </field>
2317 3429 <field>
2318   - <field_name>fcsj</field_name>
2319   - <key_value>25</key_value>
2320   - <target_name>fcno25_fcsj</target_name>
  3430 + <field_name>isfb</field_name>
  3431 + <key_value>26</key_value>
  3432 + <target_name>fcno26_isfb</target_name>
2321 3433 <target_type>String</target_type>
2322 3434 <target_format/>
2323 3435 <target_length>-1</target_length>
... ... @@ -2329,9 +3441,9 @@
2329 3441 <target_aggregation_type>-</target_aggregation_type>
2330 3442 </field>
2331 3443 <field>
2332   - <field_name>fczdName</field_name>
2333   - <key_value>25</key_value>
2334   - <target_name>fcno25_zdname</target_name>
  3444 + <field_name>id</field_name>
  3445 + <key_value>27</key_value>
  3446 + <target_name>fcno27_id</target_name>
2335 3447 <target_type>String</target_type>
2336 3448 <target_format/>
2337 3449 <target_length>-1</target_length>
... ... @@ -2343,9 +3455,9 @@
2343 3455 <target_aggregation_type>-</target_aggregation_type>
2344 3456 </field>
2345 3457 <field>
2346   - <field_name>bc_type</field_name>
2347   - <key_value>25</key_value>
2348   - <target_name>fcno25_bctype</target_name>
  3458 + <field_name>fcsj</field_name>
  3459 + <key_value>27</key_value>
  3460 + <target_name>fcno27_fcsj</target_name>
2349 3461 <target_type>String</target_type>
2350 3462 <target_format/>
2351 3463 <target_length>-1</target_length>
... ... @@ -2357,9 +3469,9 @@
2357 3469 <target_aggregation_type>-</target_aggregation_type>
2358 3470 </field>
2359 3471 <field>
2360   - <field_name>id</field_name>
2361   - <key_value>26</key_value>
2362   - <target_name>fcno26_id</target_name>
  3472 + <field_name>fczdName</field_name>
  3473 + <key_value>27</key_value>
  3474 + <target_name>fcno27_zdname</target_name>
2363 3475 <target_type>String</target_type>
2364 3476 <target_format/>
2365 3477 <target_length>-1</target_length>
... ... @@ -2371,9 +3483,9 @@
2371 3483 <target_aggregation_type>-</target_aggregation_type>
2372 3484 </field>
2373 3485 <field>
2374   - <field_name>fcsj</field_name>
2375   - <key_value>26</key_value>
2376   - <target_name>fcno26_fcsj</target_name>
  3486 + <field_name>bc_type</field_name>
  3487 + <key_value>27</key_value>
  3488 + <target_name>fcno27_bctype</target_name>
2377 3489 <target_type>String</target_type>
2378 3490 <target_format/>
2379 3491 <target_length>-1</target_length>
... ... @@ -2385,9 +3497,9 @@
2385 3497 <target_aggregation_type>-</target_aggregation_type>
2386 3498 </field>
2387 3499 <field>
2388   - <field_name>fczdName</field_name>
2389   - <key_value>26</key_value>
2390   - <target_name>fcno26_zdname</target_name>
  3500 + <field_name>xl_dir</field_name>
  3501 + <key_value>27</key_value>
  3502 + <target_name>fcno27_xldir</target_name>
2391 3503 <target_type>String</target_type>
2392 3504 <target_format/>
2393 3505 <target_length>-1</target_length>
... ... @@ -2399,9 +3511,9 @@
2399 3511 <target_aggregation_type>-</target_aggregation_type>
2400 3512 </field>
2401 3513 <field>
2402   - <field_name>bc_type</field_name>
2403   - <key_value>26</key_value>
2404   - <target_name>fcno26_bctype</target_name>
  3514 + <field_name>isfb</field_name>
  3515 + <key_value>27</key_value>
  3516 + <target_name>fcno27_isfb</target_name>
2405 3517 <target_type>String</target_type>
2406 3518 <target_format/>
2407 3519 <target_length>-1</target_length>
... ... @@ -2414,8 +3526,8 @@
2414 3526 </field>
2415 3527 <field>
2416 3528 <field_name>id</field_name>
2417   - <key_value>27</key_value>
2418   - <target_name>fcno27_id</target_name>
  3529 + <key_value>28</key_value>
  3530 + <target_name>fcno28_id</target_name>
2419 3531 <target_type>String</target_type>
2420 3532 <target_format/>
2421 3533 <target_length>-1</target_length>
... ... @@ -2428,8 +3540,8 @@
2428 3540 </field>
2429 3541 <field>
2430 3542 <field_name>fcsj</field_name>
2431   - <key_value>27</key_value>
2432   - <target_name>fcno27_fcsj</target_name>
  3543 + <key_value>28</key_value>
  3544 + <target_name>fcno28_fcsj</target_name>
2433 3545 <target_type>String</target_type>
2434 3546 <target_format/>
2435 3547 <target_length>-1</target_length>
... ... @@ -2442,8 +3554,8 @@
2442 3554 </field>
2443 3555 <field>
2444 3556 <field_name>fczdName</field_name>
2445   - <key_value>27</key_value>
2446   - <target_name>fcno27_zdname</target_name>
  3557 + <key_value>28</key_value>
  3558 + <target_name>fcno28_zdname</target_name>
2447 3559 <target_type>String</target_type>
2448 3560 <target_format/>
2449 3561 <target_length>-1</target_length>
... ... @@ -2456,8 +3568,8 @@
2456 3568 </field>
2457 3569 <field>
2458 3570 <field_name>bc_type</field_name>
2459   - <key_value>27</key_value>
2460   - <target_name>fcno27_bctype</target_name>
  3571 + <key_value>28</key_value>
  3572 + <target_name>fcno28_bctype</target_name>
2461 3573 <target_type>String</target_type>
2462 3574 <target_format/>
2463 3575 <target_length>-1</target_length>
... ... @@ -2469,9 +3581,9 @@
2469 3581 <target_aggregation_type>-</target_aggregation_type>
2470 3582 </field>
2471 3583 <field>
2472   - <field_name>id</field_name>
  3584 + <field_name>xl_dir</field_name>
2473 3585 <key_value>28</key_value>
2474   - <target_name>fcno28_id</target_name>
  3586 + <target_name>fcno28_xldir</target_name>
2475 3587 <target_type>String</target_type>
2476 3588 <target_format/>
2477 3589 <target_length>-1</target_length>
... ... @@ -2483,9 +3595,9 @@
2483 3595 <target_aggregation_type>-</target_aggregation_type>
2484 3596 </field>
2485 3597 <field>
2486   - <field_name>fcsj</field_name>
  3598 + <field_name>isfb</field_name>
2487 3599 <key_value>28</key_value>
2488   - <target_name>fcno28_fcsj</target_name>
  3600 + <target_name>fcno28_isfb</target_name>
2489 3601 <target_type>String</target_type>
2490 3602 <target_format/>
2491 3603 <target_length>-1</target_length>
... ... @@ -2497,9 +3609,9 @@
2497 3609 <target_aggregation_type>-</target_aggregation_type>
2498 3610 </field>
2499 3611 <field>
2500   - <field_name>fczdName</field_name>
2501   - <key_value>28</key_value>
2502   - <target_name>fcno28_zdname</target_name>
  3612 + <field_name>id</field_name>
  3613 + <key_value>29</key_value>
  3614 + <target_name>fcno29_id</target_name>
2503 3615 <target_type>String</target_type>
2504 3616 <target_format/>
2505 3617 <target_length>-1</target_length>
... ... @@ -2511,9 +3623,9 @@
2511 3623 <target_aggregation_type>-</target_aggregation_type>
2512 3624 </field>
2513 3625 <field>
2514   - <field_name>bc_type</field_name>
2515   - <key_value>28</key_value>
2516   - <target_name>fcno28_bctype</target_name>
  3626 + <field_name>fcsj</field_name>
  3627 + <key_value>29</key_value>
  3628 + <target_name>fcno29_fcsj</target_name>
2517 3629 <target_type>String</target_type>
2518 3630 <target_format/>
2519 3631 <target_length>-1</target_length>
... ... @@ -2525,9 +3637,9 @@
2525 3637 <target_aggregation_type>-</target_aggregation_type>
2526 3638 </field>
2527 3639 <field>
2528   - <field_name>id</field_name>
  3640 + <field_name>fczdName</field_name>
2529 3641 <key_value>29</key_value>
2530   - <target_name>fcno29_id</target_name>
  3642 + <target_name>fcno29_zdname</target_name>
2531 3643 <target_type>String</target_type>
2532 3644 <target_format/>
2533 3645 <target_length>-1</target_length>
... ... @@ -2539,9 +3651,9 @@
2539 3651 <target_aggregation_type>-</target_aggregation_type>
2540 3652 </field>
2541 3653 <field>
2542   - <field_name>fcsj</field_name>
  3654 + <field_name>bc_type</field_name>
2543 3655 <key_value>29</key_value>
2544   - <target_name>fcno29_fcsj</target_name>
  3656 + <target_name>fcno29_bctype</target_name>
2545 3657 <target_type>String</target_type>
2546 3658 <target_format/>
2547 3659 <target_length>-1</target_length>
... ... @@ -2553,9 +3665,9 @@
2553 3665 <target_aggregation_type>-</target_aggregation_type>
2554 3666 </field>
2555 3667 <field>
2556   - <field_name>fczdName</field_name>
  3668 + <field_name>xl_dir</field_name>
2557 3669 <key_value>29</key_value>
2558   - <target_name>fcno29_zdname</target_name>
  3670 + <target_name>fcno29_xldir</target_name>
2559 3671 <target_type>String</target_type>
2560 3672 <target_format/>
2561 3673 <target_length>-1</target_length>
... ... @@ -2567,9 +3679,9 @@
2567 3679 <target_aggregation_type>-</target_aggregation_type>
2568 3680 </field>
2569 3681 <field>
2570   - <field_name>bc_type</field_name>
  3682 + <field_name>isfb</field_name>
2571 3683 <key_value>29</key_value>
2572   - <target_name>fcno29_bctype</target_name>
  3684 + <target_name>fcno29_isfb</target_name>
2573 3685 <target_type>String</target_type>
2574 3686 <target_format/>
2575 3687 <target_length>-1</target_length>
... ... @@ -2636,6 +3748,34 @@
2636 3748 <target_null_string/>
2637 3749 <target_aggregation_type>-</target_aggregation_type>
2638 3750 </field>
  3751 + <field>
  3752 + <field_name>xl_dir</field_name>
  3753 + <key_value>30</key_value>
  3754 + <target_name>fcno30_xldir</target_name>
  3755 + <target_type>String</target_type>
  3756 + <target_format/>
  3757 + <target_length>-1</target_length>
  3758 + <target_precision>-1</target_precision>
  3759 + <target_decimal_symbol/>
  3760 + <target_grouping_symbol/>
  3761 + <target_currency_symbol/>
  3762 + <target_null_string/>
  3763 + <target_aggregation_type>-</target_aggregation_type>
  3764 + </field>
  3765 + <field>
  3766 + <field_name>isfb</field_name>
  3767 + <key_value>30</key_value>
  3768 + <target_name>fcno30_isfb</target_name>
  3769 + <target_type>String</target_type>
  3770 + <target_format/>
  3771 + <target_length>-1</target_length>
  3772 + <target_precision>-1</target_precision>
  3773 + <target_decimal_symbol/>
  3774 + <target_grouping_symbol/>
  3775 + <target_currency_symbol/>
  3776 + <target_null_string/>
  3777 + <target_aggregation_type>-</target_aggregation_type>
  3778 + </field>
2639 3779 </fields>
2640 3780 <cluster_schema/>
2641 3781 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
... ... @@ -2711,6 +3851,14 @@
2711 3851 <rename/>
2712 3852 <length>-2</length>
2713 3853 <precision>-2</precision>
  3854 + </field> <field> <name>xl_dir</name>
  3855 + <rename/>
  3856 + <length>-2</length>
  3857 + <precision>-2</precision>
  3858 + </field> <field> <name>isfb</name>
  3859 + <rename/>
  3860 + <length>-2</length>
  3861 + <precision>-2</precision>
2714 3862 </field> <select_unspecified>N</select_unspecified>
2715 3863 </fields> <cluster_schema/>
2716 3864 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
... ... @@ -2763,6 +3911,14 @@
2763 3911 <rename/>
2764 3912 <length>-2</length>
2765 3913 <precision>-2</precision>
  3914 + </field> <field> <name>xl_dir</name>
  3915 + <rename/>
  3916 + <length>-2</length>
  3917 + <precision>-2</precision>
  3918 + </field> <field> <name>isfb</name>
  3919 + <rename/>
  3920 + <length>-2</length>
  3921 + <precision>-2</precision>
2766 3922 </field> <select_unspecified>N</select_unspecified>
2767 3923 </fields> <cluster_schema/>
2768 3924 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
... ... @@ -3007,7 +4163,7 @@
3007 4163 <schema_name/>
3008 4164 </partitioning>
3009 4165 <connection>bus_control_variable</connection>
3010   - <sql>select &#xa;t.id as id&#xa;, g.lp_name as lp&#xa;, g.xl as xl&#xa;, qdz&#xa;, zdz&#xa;, tcc&#xa;, fcsj&#xa;, bc_type &#xa;, bcs&#xa;, fcno&#xa;, xl_dir&#xa;from bsth_c_s_ttinfo_detail t left join &#xa;bsth_c_s_gbi g on t.lp &#x3d; g.id &#xa;where &#xa;g.xl &#x3d; &#x3f; and&#xa;t.ttinfo &#x3d; &#x3f; &#xa;order by t.bcs asc</sql>
  4166 + <sql>select &#xa;t.id as id&#xa;, g.lp_name as lp&#xa;, g.xl as xl&#xa;, qdz&#xa;, zdz&#xa;, tcc&#xa;, fcsj&#xa;, bc_type &#xa;, bcs&#xa;, fcno&#xa;, xl_dir&#xa;, isfb&#xa;from bsth_c_s_ttinfo_detail t left join &#xa;bsth_c_s_gbi g on t.lp &#x3d; g.id &#xa;where &#xa;g.xl &#x3d; &#x3f; and&#xa;t.ttinfo &#x3d; &#x3f; &#xa;order by t.bcs asc</sql>
3011 4167 <limit>0</limit>
3012 4168 <lookup>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</lookup>
3013 4169 <execute_each_row>N</execute_each_row>
... ...
src/main/resources/fatso/start.js
... ... @@ -89,7 +89,7 @@ ep.tail(&#39;minifier-js&#39;, function(){
89 89  
90 90 //打包
91 91 ep.tail('package-jar', function(file){
92   - var packageCom = 'mvn clean package';
  92 + var packageCom = 'mvn clean package -DskipTests';
93 93 cProcess = child_process.exec(packageCom,{maxBuffer: 5000*1024, cwd: dest},function(error){
94 94 if(error)
95 95 logError(error);
... ...
src/main/resources/rules/shiftloop.drl
... ... @@ -361,12 +361,12 @@ end
361 361  
362 362 rule "calcu_guideboard_range_loop_1_1"
363 363 when
364   - Calcu_guideboard_range_loop_param($ruleId : ruleId, $sdays : sdays, sdays <= temp)
  364 + Calcu_guideboard_range_loop_param($ruleId : ruleId, $sdays : sdays, (sdays - 1) <= temp)
365 365 Calcu_guideboard_index_result(ruleId == $ruleId, $index : calcu_index)
366 366 then
367 367 Calcu_guideboard_range_loop_result cgrlr = new Calcu_guideboard_range_loop_result();
368 368 cgrlr.setRuleId($ruleId);
369   - cgrlr.setFirstLoopSize($index + $sdays);
  369 + cgrlr.setFirstLoopSize($index + $sdays - 1);
370 370 cgrlr.setMiddelLoopCount(0);
371 371 cgrlr.setRangeSize(0);
372 372 cgrlr.setLastLoopSize(0);
... ... @@ -382,7 +382,7 @@ end
382 382  
383 383 rule "calcu_guideboard_range_loop_1_2"
384 384 when
385   - Calcu_guideboard_range_loop_param($ruleId : ruleId, $sdays : sdays, $temp : temp, sdays > temp)
  385 + Calcu_guideboard_range_loop_param($ruleId : ruleId, $sdays : sdays, $temp : temp, (sdays - 1) > temp)
386 386 Calcu_guideboard_index_result(ruleId == $ruleId, $index : calcu_index)
387 387 ScheduleRule_input(ruleId == $ruleId, $rangesize : guideboardIds.size())
388 388 then
... ... @@ -390,7 +390,7 @@ rule &quot;calcu_guideboard_range_loop_1_2&quot;
390 390 cgrlr.setRuleId($ruleId);
391 391 cgrlr.setFirstLoopSize($index + $temp);
392 392  
393   - int gbd_days_temp_minus = $sdays - $temp;
  393 + int gbd_days_temp_minus = $sdays - 1 - $temp;
394 394 int gbd_days_temp_minus_svalue = (int) (gbd_days_temp_minus / new Integer($rangesize));
395 395 int gbd_days_temp_minus_yvalue = gbd_days_temp_minus % new Integer($rangesize);
396 396  
... ... @@ -438,12 +438,12 @@ end
438 438  
439 439 rule "calcu_employee_range_loop_1_1"
440 440 when
441   - Calcu_employee_range_loop_param($ruleId : ruleId, $sdays : sdays, sdays <= temp)
  441 + Calcu_employee_range_loop_param($ruleId : ruleId, $sdays : sdays, sdays - 1 <= temp)
442 442 Calcu_employee_index_result(ruleId == $ruleId, $index : calcu_index)
443 443 then
444 444 Calcu_employee_range_loop_result cgrlr = new Calcu_employee_range_loop_result();
445 445 cgrlr.setRuleId($ruleId);
446   - cgrlr.setFirstLoopSize($index + $sdays);
  446 + cgrlr.setFirstLoopSize($index + $sdays - 1);
447 447 cgrlr.setMiddelLoopCount(0);
448 448 cgrlr.setRangeSize(0);
449 449 cgrlr.setLastLoopSize(0);
... ... @@ -459,7 +459,7 @@ end
459 459  
460 460 rule "calcu_employee_range_loop_1_2"
461 461 when
462   - Calcu_employee_range_loop_param($ruleId : ruleId, $sdays : sdays, $temp : temp, sdays > temp)
  462 + Calcu_employee_range_loop_param($ruleId : ruleId, $sdays : sdays, $temp : temp, sdays - 1 > temp)
463 463 Calcu_employee_index_result(ruleId == $ruleId, $index : calcu_index)
464 464 ScheduleRule_input(ruleId == $ruleId, $rangesize : employeeConfigIds.size())
465 465 then
... ... @@ -467,7 +467,7 @@ rule &quot;calcu_employee_range_loop_1_2&quot;
467 467 cgrlr.setRuleId($ruleId);
468 468 cgrlr.setFirstLoopSize($index + $temp);
469 469  
470   - int gbd_days_temp_minus = $sdays - $temp;
  470 + int gbd_days_temp_minus = $sdays - 1 - $temp;
471 471 int gbd_days_temp_minus_svalue = (int) (gbd_days_temp_minus / new Integer($rangesize));
472 472 int gbd_days_temp_minus_yvalue = gbd_days_temp_minus % new Integer($rangesize);
473 473  
... ... @@ -546,6 +546,8 @@ rule &quot;calcu_loop_guideboard&quot;
546 546 clgr.setRuleId($ruleId);
547 547 clgr.setGo_list(scheduleResult_outputs);
548 548  
  549 + System.out.println(scheduleResult_outputs.size());
  550 +
549 551 insert(clgr);
550 552 end
551 553  
... ... @@ -608,6 +610,8 @@ rule &quot;calcu_loop_employee&quot;
608 610 clgr.setRuleId($ruleId);
609 611 clgr.setEo_list(scheduleResult_outputs);
610 612  
  613 + System.out.println(scheduleResult_outputs.size());
  614 +
611 615 insert(clgr);
612 616 end
613 617  
... ...
src/main/resources/static/assets/js/common.js
... ... @@ -12,9 +12,9 @@ function removeConfirm(text, url, success) {
12 12 }, function(){
13 13 layer.msg('正在删除...', {icon: 16});
14 14  
15   - $post(url, {'_method': 'delete'},function(res){
  15 + $post(url, {'_method': 'delete'},function(rs){
16 16 layer.msg('删除成功!');
17   - success && success();
  17 + success && success(rs);
18 18 });
19 19 });
20 20 }
... ...
src/main/resources/static/pages/control/line/child_pages/child_task.html
... ... @@ -339,7 +339,10 @@ $(function(){
339 339 //删除子任务
340 340 $('#childTaskDiv').on('click','.child_task_delete', function(){
341 341 var id = $(this).data('id');
342   - removeConfirm('确定删除子任务?', '/childTask/' + id, refreshChildTasks);
  342 + removeConfirm('确定删除子任务?', '/childTask/' + id, function(rs){
  343 + _alone.refreshSchedule(rs.t);
  344 + refreshChildTasks();
  345 + });
343 346 });
344 347  
345 348  
... ... @@ -500,7 +503,6 @@ function refreshChildTasks(){
500 503 //主任务id
501 504 var id = $mainTab.find('tr._active').data('id');
502 505  
503   -
504 506 var htmlStr = template('child_task_sub_table_temp', {list: _data.getSchedulById(id).cTasks});
505 507  
506 508 dictionaryUtils.transformDom(
... ...
src/main/resources/static/pages/control/line/child_pages/deviceReport.html 0 → 100644
  1 +<div id="historyMessagePanel" style="margin: 15px 0 0 0;">
  2 + <h4 style="padding: 5px 0 10px 15px;margin: 0;"><i class="fa fa-code-fork"></i> 设备请求上报记录</h4>
  3 + <form class="form-inline" >
  4 + <div class="form-group" style="margin: 18px;">
  5 + <label class="" for="directiveSelect">请求代码:</label>
  6 + <select class="form-control" id="requestCodeSelect" name="requestCode">
  7 + <option value="-1">全部</option>
  8 + <option value="0xA1">恢复运营</option>
  9 + <option value="0xA2">申请调档</option>
  10 + <option value="0xA3">出场请求</option>
  11 + <option value="0xA5">进场请求</option>
  12 + <option value="0xA7">加油请求</option>
  13 + <option value="0x50">车辆故障</option>
  14 + <option value="0x70">路阻报告</option>
  15 + <option value="0x60">事故报告</option>
  16 + <option value="0x11">扣证纠纷</option>
  17 + <option value="0x12">报警</option>
  18 + </select>
  19 + </div>
  20 +
  21 + <div class="form-group" >
  22 + <label class="" for="carSelect">车辆:</label>
  23 + <select class="form-control" name="nbbm" id="carSelect" style="width: 170px;"></select>
  24 + </div>
  25 +
  26 + </form>
  27 +
  28 + <div class="table-scrollable" style="min-height: 468px;">
  29 + <table class="table table-hover" style="table-layout: fixed;">
  30 + <thead>
  31 + <tr>
  32 + <th width="9%" style="text-align: center;">位置</th>
  33 + <th width="9%">时间</th>
  34 + <th width="11%">车辆</th>
  35 + <th width="24%">请求代码</th>
  36 + <th width="10%">处理人</th>
  37 + <th width="10%">处理时间</th>
  38 + <th width="9%">处理结果</th>
  39 + </tr>
  40 + </thead>
  41 + <tbody>
  42 + <tr>
  43 + <td width="7%" style="text-align: center;">位置</td>
  44 + <td>05:30</td>
  45 + <td>B-92875</td>
  46 + <td>请求出场</td>
  47 + <td>mh001</td>
  48 + <td>05:31</td>
  49 + <td><span class="label label-sm label-success"> 同意</span></td>
  50 + </tr>
  51 + <tr>
  52 + <td width="7%" style="text-align: center;">位置</td>
  53 + <td>05:30</td>
  54 + <td>B-92875</td>
  55 + <td>请求出场</td>
  56 + <td>mh001</td>
  57 + <td>05:31</td>
  58 + <td><span class="label label-sm label-success"> 同意</span></td>
  59 + </tr>
  60 + <tr>
  61 + <td width="7%" style="text-align: center;">位置</td>
  62 + <td>05:30</td>
  63 + <td>B-92875</td>
  64 + <td>请求出场</td>
  65 + <td>mh001</td>
  66 + <td>05:31</td>
  67 + <td><span class="label label-sm label-success"> 同意</span></td>
  68 + </tr>
  69 + <tr>
  70 + <td width="7%" style="text-align: center;">位置</td>
  71 + <td>05:30</td>
  72 + <td>B-92875</td>
  73 + <td>请求出场</td>
  74 + <td>mh001</td>
  75 + <td>05:31</td>
  76 + <td><span class="label label-sm label-success"> 同意</span></td>
  77 + </tr>
  78 + <tr>
  79 + <td width="7%" style="text-align: center;">位置</td>
  80 + <td>05:30</td>
  81 + <td>B-92875</td>
  82 + <td>请求出场</td>
  83 + <td>mh001</td>
  84 + <td>05:31</td>
  85 + <td><span class="label label-sm label-success"> 同意</span></td>
  86 + </tr>
  87 + <tr>
  88 + <td width="7%" style="text-align: center;">位置</td>
  89 + <td>05:30</td>
  90 + <td>B-92875</td>
  91 + <td>请求出场</td>
  92 + <td>mh001</td>
  93 + <td>05:31</td>
  94 + <td><span class="label label-sm label-success"> 同意</span></td>
  95 + </tr>
  96 + </tbody>
  97 + </table>
  98 + </div>
  99 + <div style="text-align: right;margin: 15px 15px 5px;">
  100 + <ul id="pagination" class="pagination"></ul>
  101 + </div>
  102 +</div>
  103 +<script id="history_directive_list_temp" type="text/html">
  104 +{{each list as item i}}
  105 +<tr>
  106 + <td>{{item.timeHHmm}}</td>
  107 + <td>{{item.nbbm}}</td>
  108 + <td>
  109 + <div class="text-furl">
  110 + {{item.data.txtContent}}
  111 + </div>
  112 + </td>
  113 + <td>{{item.sender}}</td>
  114 + <td>
  115 + {{if item.errorText != null}}
  116 + <span class="label label-sm label-danger">{{item.errorText}}</span>
  117 + {{else}}
  118 + {{if item.reply46 != 0}}
  119 + <span class="label label-sm label-danger">设备无响应</span>
  120 + {{else if item.reply47 != 0}}
  121 + <span class="label label-sm label-warning">驾驶员未确认</span>
  122 + {{/if}}
  123 +
  124 + {{if item.reply46 == 0 && item.reply47 == 0}}
  125 + <span class="label label-sm label-success"> 成功</span>
  126 + {{/if}}
  127 + {{/if}}
  128 + </td>
  129 +</tr>
  130 +{{/each}}
  131 +</script>
  132 +
  133 +<script>
  134 +!function(){
  135 +
  136 +}();
  137 +</script>
0 138 \ No newline at end of file
... ...
src/main/resources/static/pages/control/line/child_pages/historyDirective.html
1   -<div id="historyMessagePanel" style="margin: 17px 0 0 0;">
2   -
  1 +<div id="historyMessagePanel" style="margin: 15px 0 0 0;">
  2 + <h4 style="padding: 5px 0 10px 15px;margin: 0;"><i class="fa fa-bell-o"></i> 指令下发记录</h4>
3 3 <form class="form-inline" >
4 4 <div class="form-group" style="margin: 18px;">
5 5 <label class="" for="directiveSelect">指令类型:</label>
... ... @@ -16,14 +16,15 @@
16 16 <label class="" for="carSelect">车辆:</label>
17 17 <select class="form-control" name="nbbm" id="carSelect" style="width: 170px;"></select>
18 18 </div>
  19 +
19 20 </form>
20 21  
21 22 <div class="table-scrollable" style="min-height: 468px;">
22 23 <table class="table table-hover" style="table-layout: fixed;">
23 24 <thead>
24 25 <tr>
25   - <th width="9%">车辆</th>
26 26 <th width="7%">时间</th>
  27 + <th width="9%">车辆</th>
27 28 <th width="47%">内容</th>
28 29 <th width="8%">发送人</th>
29 30 <th width="17%">状态</th>
... ... @@ -40,22 +41,21 @@
40 41 <script id="history_directive_list_temp" type="text/html">
41 42 {{each list as item i}}
42 43 <tr>
43   - <td>{{item.nbbm}}</td>
44 44 <td>{{item.timeHHmm}}</td>
  45 + <td>{{item.nbbm}}</td>
45 46 <td>
46 47 <div class="text-furl">
47 48 {{item.data.txtContent}}
48 49 </div>
49 50 </td>
50   - <td>系统</td>
  51 + <td>{{item.sender}}</td>
51 52 <td>
52 53 {{if item.errorText != null}}
53 54 <span class="label label-sm label-danger">{{item.errorText}}</span>
54 55 {{else}}
55 56 {{if item.reply46 != 0}}
56 57 <span class="label label-sm label-danger">设备无响应</span>
57   - {{/if}}
58   - {{if item.reply47 != 0}}
  58 + {{else if item.reply47 != 0}}
59 59 <span class="label label-sm label-warning">驾驶员未确认</span>
60 60 {{/if}}
61 61  
... ... @@ -66,6 +66,11 @@
66 66 </td>
67 67 </tr>
68 68 {{/each}}
  69 +{{if list.length == 0}}
  70 +<tr>
  71 + <td colspan=5 class="empty-table-td" style="text-align: center;"></td>
  72 +</tr>
  73 +{{/if}}
69 74 </script>
70 75  
71 76 <script>
... ... @@ -77,6 +82,7 @@
77 82 ,$layer = $('#historyMessagePanel').parents('.layui-layer.layui-layer-page');
78 83 //车辆搜索框
79 84 createVehSearch($car).on('change', function(){
  85 + page = 0;
80 86 jsDoQuery(true);
81 87 });
82 88 //分页参数
... ... @@ -86,6 +92,7 @@
86 92  
87 93 //指令类型切换
88 94 $dType.on('change', function(){
  95 + page = 0;
89 96 jsDoQuery(true);
90 97 });
91 98  
... ... @@ -94,9 +101,7 @@
94 101 params.page = page;
95 102 params.size = pSize;
96 103  
97   - console.log(params);
98 104 $.get('/directive/list', params, function(rs){
99   - console.log(rs);
100 105  
101 106 var htmlStr = template('history_directive_list_temp', rs);
102 107 $table.find('tbody').html(htmlStr);
... ... @@ -109,6 +114,8 @@
109 114 }
110 115  
111 116 function showPagination(data, noQuery){
  117 + if(data.totalPages == 0)
  118 + return;
112 119 //分页
113 120 $('#pagination').jqPaginator({
114 121 totalPages: data.totalPages,
... ...
src/main/resources/static/pages/control/line/child_pages/js/child_task.js
... ... @@ -353,6 +353,7 @@ function childTaskSubmit(fs, layerIndex){
353 353 * 同步提交多个表单,无事物,允许中途失败
354 354 */
355 355 function syncSubmit(fs, cb){
  356 + var index = layer.msg('正在提交...', {icon: 16,shade:0.3});
356 357 if(fs.length == 0) return;
357 358 //备注
358 359 var remarks = $(fs[0]).parents('.custom-anim-modal').find('textarea[name=remarks]').val();
... ... @@ -360,6 +361,7 @@ function syncSubmit(fs, cb){
360 361 (function(){
361 362  
362 363 if(i == len){
  364 + layer.close(index);
363 365 cb && cb(cbRs);
364 366 return;
365 367 }
... ... @@ -370,7 +372,6 @@ function syncSubmit(fs, cb){
370 372  
371 373 params.remarks = remarks;
372 374 $post('/childTask', params, function(rs){
373   - console.log('item rs: ' ,rs);
374 375 $(form).parent().find('.task-item-close').replaceWith('<a class="task-item-success"><i class="fa fa-check-circle" ></i></a>');
375 376 i ++;
376 377 //做一层防护,防止缺心眼出现无限循环提交
... ...
src/main/resources/static/pages/control/line/css/lineControl.css
... ... @@ -1697,7 +1697,7 @@ label.error{
1697 1697 }
1698 1698  
1699 1699 .empty-table-td:BEFORE{
1700   - content: "暂无数据";
  1700 + content: "暂无相关数据";
1701 1701 color: #6f6c6c;
1702 1702 font-size: 12px;
1703 1703 }
... ...
src/main/resources/static/pages/control/line/index.html
... ... @@ -290,5 +290,6 @@ function interceptPOST(e, xhr, t){
290 290 layer.msg('监控模式!',{offset: 'ct', shift : 6});
291 291 }
292 292 }
  293 +
293 294 </script>
294 295 <script src="/pages/control/line/js/webSocketHandle.js"></script>
295 296 \ No newline at end of file
... ...
src/main/resources/static/pages/control/line/js/toolbarEvent.js
... ... @@ -30,6 +30,18 @@
30 30  
31 31 //设备上报
32 32 $('#deviceReport').on('click', function(){
33   - layer.msg('功能测试中...稍后开放!');
  33 + layer.msg('功能测试中,测试完了就开放...')
  34 + /*$.get('/pages/control/line/child_pages/deviceReport.html', function(content){
  35 + layer.open({
  36 + type: 1,
  37 + area: '930px',
  38 + content: content,
  39 + title : false,
  40 + shift: 5,
  41 + success: function(){
  42 +
  43 + }
  44 + });
  45 + });*/
34 46 });
35 47 }();
36 48 \ No newline at end of file
... ...
src/main/resources/static/pages/control/line/temps/child_task_case_tp.html
... ... @@ -40,7 +40,7 @@
40 40 <td width="6%">
41 41 <div class="dropdown">
42 42 <a class="no_and_removeLink" href="javascript:;" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
43   - {{i + 1}}
  43 + {{i + 1}}
44 44 </a>
45 45 <ul class="dropdown-menu" aria-labelledby="dLabel">
46 46 <li class="child_task_delete" data-id="{{item.id}}">
... ...
src/main/resources/static/pages/control/lineallot/allot.html
... ... @@ -326,7 +326,7 @@ $(function(){
326 326 var f = arguments.callee
327 327 ,item = lsData[i];
328 328  
329   - $.get('/realSchedule/findRouteByLine', {lineId: item.id}, function(rs){
  329 + $.get('/realSchedule/findRouteByLine', {lineCode: item.lineCode}, function(rs){
330 330 if(rs && rs.lineId){
331 331 cacheData[item.lineCode] = rs;
332 332 i ++;
... ...
src/main/resources/static/pages/mapmonitor/real/css/real.css
... ... @@ -93,7 +93,7 @@ label.BMapLabel{
93 93 }
94 94  
95 95 .mapRightWrap.playBack{
96   - min-height: 454px;
  96 + min-height: 374px;
97 97 width: 390px;
98 98 height: auto;
99 99 }
... ... @@ -710,8 +710,8 @@ display: none;
710 710 }
711 711  
712 712 .play-back-btns .dropdown-menu{
713   - min-width: 70px;
714   - width: 70px;
  713 + min-width: 80px;
  714 + width: 80px;
715 715 }
716 716  
717 717 .play-back-btns>i.playBtn{
... ... @@ -803,3 +803,15 @@ display: none;
803 803 color: #5f5d5d;
804 804 margin-left: 7px;
805 805 } */
  806 +
  807 +.layui-layer-msg.layer-bg-green{
  808 + background: #1bbc9b;
  809 + border: 1px solid #1bbc9b;
  810 + color: white;
  811 +}
  812 +
  813 +.layui-layer-msg.layer-bg-red{
  814 + background: red;
  815 + border: 1px solid red;
  816 + color: white;
  817 +}
... ...
src/main/resources/static/pages/mapmonitor/real/js/map_platform.js
... ... @@ -277,6 +277,10 @@ var realMap = (function() {
277 277 //居中marker
278 278 markerToCenter: function(marker){
279 279 currentMap.map.panTo(marker.getPosition());
  280 + },
  281 + //删除marker
  282 + removeMarker: function(marker){
  283 + currentMap.map.removeOverlay(marker);
280 284 }
281 285 },
282 286 //高德地图
... ...
src/main/resources/static/pages/mapmonitor/real/js/playBack.js
... ... @@ -3,6 +3,8 @@
3 3 */
4 4  
5 5 var playBack = (function() {
  6 + //默认车辆
  7 + var defaultCar, defaultLine;
6 8 //css3动画结束事件
7 9 var animationend = 'webkitAnimationEnd animationend';
8 10 var prgTimer;
... ... @@ -10,6 +12,13 @@ var playBack = (function() {
10 12 var sTime;
11 13 //结束时间戳
12 14 var eTime;
  15 + //当前时间戳
  16 + var cTime;
  17 + //每步走10秒
  18 + var step = 10;
  19 + //1个px多少秒
  20 + var secondPX;
  21 +
13 22 var tRange;
14 23 //进度条宽度
15 24 var pWidth;
... ... @@ -20,11 +29,12 @@ var playBack = (function() {
20 29 //上层运动的进度条
21 30 var $pmk = $('.play-back-progress-mark');
22 31 //单元格
23   - var cell/*, minCell = 5, cellSecond*/;
  32 + //var cell/*, minCell = 5, cellSecond*/;
24 33 //GPS轨迹点
25 34 var gpsArray;
26 35 //播放到的轨迹坐标点
27 36 var cIndex = 0;
  37 + //GPS点数量
28 38 var size;
29 39 //播放速度
30 40 var speed = parseInt($('#playSpeedText').text());
... ... @@ -32,8 +42,10 @@ var playBack = (function() {
32 42 var markerMap = {};
33 43 //线路路由数据
34 44 var lineRoute;
35   - //默认以第一辆车为焦点
  45 + //首辆车自编号
36 46 var firstCar;
  47 + //是否启用焦点跟踪
  48 + var isEnableFocus;
37 49  
38 50 function getCurrMap(){
39 51 return realMap[realMap.getMap().fName];
... ... @@ -61,7 +73,8 @@ var playBack = (function() {
61 73 }).mouseout(hideMarkTextMouse)
62 74 .on('click', function(e){
63 75 var w = e.clientX - 20;
64   - goTo(w);
  76 + //goTo(w);
  77 + goToByTime(sTime + w * secondPX);
65 78 hideMarkTextMouse();
66 79 });
67 80  
... ... @@ -92,37 +105,12 @@ var playBack = (function() {
92 105 });
93 106  
94 107 function showMarkText(w){
95   - var t = showMark($presMark, w);
96   - //时间戳找gps
97   - var gps;
98   - var marker;
99   - for(;cIndex < size; cIndex ++){
100   - gps = gpsArray[cIndex];
101   - if(gps.ts <= t){
102   - marker = markerMap[gps.nbbm];
103   - if(marker)
104   - getCurrMap().moveMarker(marker, gps);//移动marker
105   - else{
106   - markerMap[gps.nbbm] = getCurrMap().addHistoryMarker(gps);//添加marker
107   - //定位到marker
108   - //getCurrMap().markerToCenter(markerMap[gps.nbbm]);
109   - }
110   -
111   - if(gps.inout_stop != -1){
112   - //到离站信息
113   - addInOutText(gps);
114   - }
115   - }
116   - else{
117   - break;
118   - }
119   - }
120   - //定位焦点
121   - /*if(markerMap[firstCar]){
122   - getCurrMap().markerToCenter(markerMap[firstCar]);
123   - }*/
  108 + var text = moment(cTime * 1000).format('HH:mm.ss');
  109 +
  110 + $presMark.text(text).css('left', w - $presMark.width() / 2).show();
124 111 }
125 112  
  113 + //添加进出站日志
126 114 function addInOutText(gps){
127 115 var info = gps.inout_stop_info
128 116 ,date = moment(gps.ts).format('HH:mm.ss');
... ... @@ -149,22 +137,13 @@ var playBack = (function() {
149 137 }
150 138  
151 139 function showMarkTextMouse(w){
152   - showMark($presMarkMouse, w);
  140 + var text = moment((sTime + w * secondPX) * 1000).format('HH:mm.ss');
  141 + $presMarkMouse.text(text).css('left', w - $presMarkMouse.width() / 2).show();
153 142 }
154 143 function hideMarkTextMouse(){
155 144 $presMarkMouse.hide();
156 145 }
157 146  
158   - function showMark(mark, w, anim){
159   - var t = parseInt((sTime + w / cell) * 1000)
160   - ,text = moment(t).format('HH:mm.ss');
161   -
162   - mark.text(text).css('left', w - mark.width() / 2)
163   - .show();
164   -
165   - return t;
166   - }
167   -
168 147 //日志区域滚动条
169 148 $('.pback-logs').slimscroll({
170 149 height: '100%',
... ... @@ -173,132 +152,243 @@ var playBack = (function() {
173 152  
174 153 var exports = {
175 154 init : function() {
176   - var htmlStr = template('play_back_panel_temp', {});
  155 + //清空地图
  156 + getCurrMap().clear();
  157 +
  158 + vehiclePanel.clear();
  159 +
  160 + var htmlStr = template('play_back_panel_temp', {})
  161 + ,carSel = '.mapRightWrap select[name="nbbm[]"]';
177 162 $('.mapRightWrap').html(htmlStr);
  163 + //初始选中的车辆
  164 + if(defaultCar){
  165 + $(carSel).html('<option selected value="'+defaultCar+'">'+defaultCar+'</option>');
  166 + defaultCar = null;
  167 + }
178 168 //车辆搜索框
179   - createVehSearch($('.mapRightWrap select[name="nbbm[]"]'));
180   - //线路下拉框
181   - var lineData = [{id:'-1', text: '请选择...'}];
182   - $get('/line/all', null, function(array){
183   - $.each(array, function(){
184   - lineData.push({id: this.id, text: this.name});
  169 + createVehSearch($(carSel)).on('select2:select', function(e){
  170 + //获取对应线路
  171 + defaultLine = e.params.data.lineCode;
185 172 });
186   - initPinYinSelect2('.mapRightWrap select[name=lineCode]', lineData);
187   - });
188 173  
189 174 //点击轨迹回放按钮
190   - $('#playBackBtn').on('click', function(){
191   - //表单校验
192   - if(!customFormValidate('#playBackForm'))
  175 + $('#playBackBtn').on('click', playBackBtnClick);
  176 +
  177 + //默认值,当前时间前2小时
  178 + var m = moment()
  179 + ,rq='YYYY-MM-DD', sj='HH:mm';
  180 + $('input[name=eDate]').val(m.format(rq));
  181 + $('input[name=eTime]').val(m.format('HH:mm'));
  182 + $('input[name=sDate]').val(m.subtract(2, 'hour').format(rq));
  183 + $('input[name=sTime]').val(m.format(sj));
  184 + }
  185 + ,setDefaultCar: function(nbbm, lineCode){
  186 + defaultCar = nbbm;
  187 + defaultLine = lineCode;
  188 + }
  189 + };
  190 +
  191 + function playBackBtnClick(){
  192 + //表单校验
  193 + if(!customFormValidate('#playBackForm'))
  194 + return;
  195 +
  196 + var params = $('#playBackForm').serializeJSON();
  197 + //查询历史gps数据
  198 + var fs = 'YYYY-MM-DDHH:mm'
  199 + ,st = moment(params.sDate + params.sTime, fs).format('X')
  200 + ,et = moment(params.eDate + params.eTime, fs).format('X')
  201 + ,nbbm = params.nbbm;
  202 +
  203 + console.log(params);
  204 + isEnableFocus = params.enableFocus;
  205 + layer.msg('查询历史GPS...', {icon: 16, time: 0,shade:0.3});
  206 + $.ajax({
  207 + url: '/gps/gpsHistory/multiple',
  208 + traditional: true,
  209 + data: {nbbmArray: params.nbbm, st: st, et: et},
  210 + success:function(rs){
  211 + if(!rs || rs.length == 0){
  212 + layer.alert('服务器没有返回数据,请检查你的输入参数!', {icon: 3});
193 213 return;
  214 + }
194 215  
195   - var params = $('#playBackForm').serializeJSON();
196   - //查询历史gps数据
197   - var fs = 'YYYY-MM-DDHH:mm'
198   - ,st = moment(params.sDate + params.sTime, fs).format('X')
199   - ,et = moment(params.eDate + params.eTime, fs).format('X')
200   - ,nbbm = params.nbbm;
  216 + gpsArray = rs;
  217 + size = gpsArray.length;
  218 + layer.closeAll();
  219 + //切出轨迹回放面板
  220 + $('.mapRightWrap,.mapTools,.leftUtilsWrap').fadeOut();
  221 + $('.play-back-list,.play-back-btns,.progress-wrap').show();
  222 + //初始化时间戳
  223 + sTime = parseInt(st);
  224 + eTime = parseInt(et);
  225 + tRange = et - st;
201 226  
202   - layer.msg('查询历史GPS...', {icon: 16, time: 0,shade:0.3});
203   - $.ajax({
204   - url: '/gps/gpsHistory/multiple',
205   - traditional: true,
206   - data: {nbbmArray: params.nbbm, st: st, et: et},
207   - success:function(rs){
208   - gpsArray = rs;
209   - size = gpsArray.length;
210   - layer.closeAll();
211   - //切出轨迹回放面板
212   - $('.mapRightWrap,.mapTools,.leftUtilsWrap').fadeOut();
213   - $('.play-back-list,.play-back-btns,.progress-wrap').show();
214   - //初始化时间戳
215   - sTime = parseInt(st);
216   - eTime = parseInt(et);
217   - tRange = et - st;
218   -
219   - //获取进度条宽度
220   - pWidth = $('.progress-body').width();
221   - cell = pWidth / tRange;
222   - //清理地图
223   - getCurrMap().clear();
  227 + //获取进度条宽度
  228 + pWidth = $('.progress-body').width();
  229 + secondPX = tRange / pWidth;
  230 + //清理地图
  231 + getCurrMap().clear();
  232 +
  233 + firstCar = params.nbbm[0];
  234 +
  235 + if(defaultLine){
  236 + layer.msg('加载线路图层数据...', {icon: 16, time: 0,shade:0.3});
  237 + $.get('/realSchedule/findRouteByLine', {lineCode: defaultLine}
  238 + ,function(route){
  239 + lineRoute = route;
  240 + getCurrMap().drawLine(lineRoute);
224 241  
225   - firstCar = params.nbbm[0];
  242 + cTime = sTime;
  243 + play();
226 244  
227   - var lineCode = $('.mapRightWrap select[name=lineCode]').val();
228   - if(lineCode != -1){
229   - layer.msg('加载线路图层数据...', {icon: 16, time: 0,shade:0.3});
230   - $.get('/realSchedule/findRouteByLine', {lineId: lineCode}
231   - ,function(route){
232   - lineRoute = route;
233   - getCurrMap().drawLine(lineRoute);
234   - layer.closeAll();
235   - play();
236   - });
  245 + //自动定位到第一辆车的第一个点
  246 + var nbbm = params.nbbm[0]
  247 + ,firstTime = searchFirst(gpsArray, nbbm);
  248 + if(firstTime){
  249 + layer.msg('从该时区内 ' + nbbm + ' 的首个信号点,' + moment(firstTime).format('HH:mm') + '开始'
  250 + ,{offset: 'ct', shift : 5, skin: 'layer-bg-green'});
  251 +
  252 + goToByTime(firstTime / 1000);
237 253 }
238 254 else
239   - play();
240   - }
241   - });
242   - });
243   -
244   - //默认值
245   - /* $('input[name=sDate]').val('2016-04-24');
246   - $('input[name=sTime]').val('04:00');
247   - $('input[name=eDate]').val('2016-04-24');
248   - $('input[name=eTime]').val('05:40');*/
  255 + layer.closeAll();
  256 + });
  257 + }
  258 + else
  259 + play();
  260 + }
  261 + });
  262 + }
  263 +
  264 + //搜索时间范围内第一个gps点的时间
  265 + function searchFirst(list, nbbm){
  266 + var time;
  267 + for(var i = 0, gps; gps = list[i++];){
  268 + if(gps.nbbm == nbbm){
  269 + time = gps.ts;
  270 + break;
  271 + }
249 272 }
250   - };
  273 +
  274 + return time;
  275 + }
251 276  
252 277 function stop(){
  278 + _stopFocusTimer = 1;
  279 + clearInterval(focusTimer);
  280 + //停止播放
253 281 clearInterval(prgTimer);
254 282 $('.play-back-btns .playBtn').removeClass('fa-pause').addClass('fa-play').data('status', 0);
255 283 prgTimer = null;
256 284 }
257 285  
258 286 function play(){
259   - if(topW == pWidth){
260   - //从头再来
261   - reset();
262   - }
263 287 $('#progress-mark-time').show();
264 288 $('.play-back-btns .playBtn').removeClass('fa-play').addClass('fa-pause').data('status', 1);
  289 + //开始播放
265 290 start();
  291 +
  292 + //启动焦点定位(单独用一个定时器做缓冲)
  293 + console.log('isEnableFocus', isEnableFocus);
  294 + if(isEnableFocus){
  295 + _stopFocusTimer = null;
  296 + startTrackFocus();
  297 + }
266 298 }
267 299  
268   - function reset(){
269   - topW = 0;
270   - $pmk.css('width', topW + 'px');
271   - cIndex = 0;
272   - $('.pback-logs').html('');
  300 + var _stopFocusTimer, focusTimer;
  301 + function startTrackFocus(){
  302 + trackFocus();
  303 + if(!_stopFocusTimer)
  304 + focusTimer = setTimeout(startTrackFocus, 1800);
  305 + }
  306 +
  307 + function trackFocus(){
  308 + //定位焦点
  309 + if(markerMap[firstCar])
  310 + getCurrMap().markerToCenter(markerMap[firstCar]);
273 311 }
274 312  
275   - var topW = 0;
276 313 function start(){
277   - prgTimer = setTimeout(start, 1000);
  314 + prgTimer = setTimeout(start, 1000 / speed);
278 315 run();
279 316 }
280 317  
  318 + var cw = 0;
281 319 function run(){
282   - topW += (cell * speed);
283   - showMarkText(topW);
284   - if(topW >= pWidth){
  320 + cTime += step;
  321 +
  322 + cw = (cTime - sTime) / secondPX;
  323 + //显示时间标记
  324 + showMarkText(cw);
  325 + //移动GPS点
  326 + moveGpsByTime(cTime);
  327 +
  328 + if(cw >= pWidth){
285 329 stop();
286 330 $('#progress-mark-time').hide();
287   - topW = pWidth;
  331 + cw = pWidth;
  332 +
  333 + layer.msg('本次轨迹回放已结束'
  334 + ,{offset: 'ct', shift : 5 , skin: 'layer-bg-red'});
288 335 }
289   - $pmk.css('width', topW + 'px');
  336 + $pmk.css('width', cw + 'px');
290 337 }
291 338  
292   - function goTo(w){
293   - $('.pback-logs').html('');
  339 + //根据时间移动GPS
  340 + function moveGpsByTime(t){
  341 + t = t * 1000;
  342 + var rs = {}, gps;
  343 + for(;cIndex < size; cIndex ++){
  344 + gps = gpsArray[cIndex];
  345 + if(gps.ts <= t)
  346 + rs[gps.nbbm] = gps;
  347 + else
  348 + break;
  349 +
  350 + //到离站信息
  351 + if(gps.inout_stop != -1)
  352 + addInOutText(gps);
  353 + }
  354 +
  355 + //绘制到地图
  356 + var marker;
  357 + for(var nbbm in rs){
  358 + gps = rs[nbbm];
  359 + marker = markerMap[gps.nbbm];
  360 +
  361 + if(marker)
  362 + getCurrMap().moveMarker(marker, gps);//移动marker
  363 + else
  364 + markerMap[gps.nbbm] = getCurrMap().addHistoryMarker(gps);//添加marker
  365 + }
  366 +
  367 + }
  368 +
  369 + function goToByTime(time){
  370 + //停止播放
  371 + clearInterval(prgTimer);
  372 + prgTimer = null;
294 373 cIndex = 0;
295   - stop();
296   - topW = w;
297   - showMarkText(w);
298   - //$pmk.css('width', w);
  374 +
  375 + cTime = time;
  376 + //清空右侧日志信息
  377 + $('.pback-logs').html('');
  378 + //清除GPS点
  379 + removeAllGps();
299 380 play();
300 381 }
301 382  
  383 +
  384 + //removeMarker
  385 + function removeAllGps(){
  386 + for(var nbbm in markerMap)
  387 + getCurrMap().removeMarker(markerMap[nbbm]);
  388 +
  389 + markerMap = {};
  390 + }
  391 +
302 392 /**
303 393 * 自定义表单校验
304 394 */
... ...
src/main/resources/static/pages/mapmonitor/real/js/vehicle.js
... ... @@ -38,6 +38,12 @@ var vehiclePanel = (function() {
38 38 });
39 39 });
40 40  
  41 + //跳转到轨迹回放
  42 + function toPlayBack(nbbm, lineCode){
  43 + playBack.setDefaultCar(nbbm, lineCode);
  44 + $('.mapTools .item[data-click=playBack]').click();
  45 + }
  46 +
41 47 //绘制线路和GPS
42 48 function drawLineAndGps(lineCode, callFun){
43 49 //过滤出该线路的GPS点
... ... @@ -169,7 +175,11 @@ var vehiclePanel = (function() {
169 175 for(var deviceId in allGps)
170 176 array.push(allGps[deviceId]);
171 177 return array;
172   - }
  178 + },
  179 + clear: function(){
  180 + cLineCode = null;
  181 + },
  182 + toPlayBack:toPlayBack
173 183 };
174 184  
175 185 return exports;
... ...
src/main/resources/static/pages/mapmonitor/real/real.html
... ... @@ -55,9 +55,12 @@
55 55 <i class="fa fa-close"></i><span id="playSpeedText">10</span><i class="fa fa-angle-up" ></i>
56 56 </span>
57 57 <ul class="dropdown-menu play-speed-select" >
58   - <li data-speed=10><a href="javascript:;">10秒 </a></li>
59   - <li data-speed=5><a href="javascript:;">5秒 </a></li>
60   - <li data-speed=1><a href="javascript:;">1秒</a></li>
  58 + <li data-speed=30><a href="javascript:;">1秒30帧 </a></li>
  59 + <li data-speed=20><a href="javascript:;">1秒20帧 </a></li>
  60 + <li data-speed=10><a href="javascript:;">1秒10帧 </a></li>
  61 + <li data-speed=7><a href="javascript:;">1秒7帧 </a></li>
  62 + <li data-speed=5><a href="javascript:;">1秒5帧 </a></li>
  63 + <li data-speed=1><a href="javascript:;">1秒1帧 </a></li>
61 64 </ul>
62 65 </div>
63 66  
... ... @@ -80,11 +83,11 @@
80 83  
81 84 <div id="temps"></div>
82 85  
83   -<script src="/pages/mapmonitor/real/js/map_platform.js"></script>
84   -<script src="/pages/mapmonitor/real/js/vehicle.js"></script>
85   -<script src="/pages/mapmonitor/real/js/search.js"></script>
86   -<script src="/pages/mapmonitor/real/js/temp.js"></script>
87   -<script src="/pages/mapmonitor/real/js/real.js"></script>
88   -<script src="/pages/mapmonitor/real/js/playBack.js"></script>
  86 +<script src="/pages/mapmonitor/real/js/map_platform.js" data-exclude=1></script>
  87 +<script src="/pages/mapmonitor/real/js/vehicle.js" data-exclude=1></script>
  88 +<script src="/pages/mapmonitor/real/js/search.js" data-exclude=1></script>
  89 +<script src="/pages/mapmonitor/real/js/temp.js" data-exclude=1></script>
  90 +<script src="/pages/mapmonitor/real/js/real.js" data-exclude=1></script>
  91 +<script src="/pages/mapmonitor/real/js/playBack.js" data-exclude=1></script>
89 92 <script>
90 93 </script>
... ...
src/main/resources/static/pages/mapmonitor/real/temps/playBack.html
... ... @@ -8,7 +8,8 @@
8 8 <div class="form-group">
9 9 <label class="col-md-3 control-label">车辆编码</label>
10 10 <div class="col-md-9">
11   - <select class="form-control" name="nbbm[]" placeholder="车辆编码" multiple="multiple" required=1 style="width:100%;"></select>
  11 + <select class="form-control" name="nbbm[]" placeholder="车辆编码" multiple="multiple" required=1 style="width:100%;">
  12 + </select>
12 13 </div>
13 14 </div>
14 15  
... ... @@ -26,15 +27,21 @@
26 27 <input type="time" name="eTime" class="form-control" placeholder="时间" required=1>
27 28 </div>
28 29 </div>
29   - </div>
30   -</form>
31   -<form class="form-horizontal" role="form" style="padding-top: 0px;">
  30 +
32 31 <div class="form-group">
33   - <label class="col-md-3 control-label">线路图层</label>
  32 + <label class="col-md-3 control-label"></label>
34 33 <div class="col-md-9">
35   - <select class="form-control" name="lineCode" style="width:100%;"></select>
  34 + <div class="checkbox-list" style="font-size: 13px;">
  35 + <label>
  36 + <div class="checker" style="display: inline-block;vertical-align: middle;">
  37 + <span>
  38 + <input type="checkbox" name="enableFocus">
  39 + </span>
  40 + </div> 当前选中的首辆车为焦点 </label>
  41 + </div>
36 42 </div>
37 43 </div>
  44 + </div>
38 45 </form>
39 46 <hr>
40 47 <div class="form-actions">
... ... @@ -44,4 +51,4 @@
44 51 </div>
45 52 </div>
46 53 </div>
47   -</script>
48 54 \ No newline at end of file
  55 +</script>
... ...
src/main/resources/static/pages/mapmonitor/real/temps/vehicle.html
... ... @@ -88,6 +88,6 @@
88 88 下一班{{nextSch.qdzName}} {{nextSch.fcsj}} 发车
89 89 {{/if}}
90 90 </p>
91   -<a href="javascript:void(0)" style="color:#006600;font-size:12px;">轨迹回放</a>
  91 +<a href="javascript:vehiclePanel.toPlayBack('{{nbbm}}', '{{lineId}}')" class="link_to_pback" style="color:#006600;font-size:12px;">轨迹回放</a>
92 92 </div>
93 93 </script>
94 94 \ No newline at end of file
... ...
src/main/resources/static/pages/scheduleApp/module/common/prj-common-globalservice.js
... ... @@ -201,7 +201,8 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;TimeTableManageService_g&#39;, [&#39;$resource&#39;,
201 201 list: {
202 202 method: 'GET',
203 203 params: {
204   - page: 0
  204 + page: 0,
  205 + isCancel_eq: 'false'
205 206 }
206 207 },
207 208 get: {
... ...
src/main/resources/static/pages/scheduleApp/module/core/scheduleRuleManage/edit.html
... ... @@ -107,7 +107,7 @@
107 107  
108 108 <div class="form-group has-success has-feedback">
109 109 <label class="col-md-2 control-label">路牌范围*:</label>
110   - <div class="col-md-3">
  110 + <div class="col-md-4">
111 111 <input type="text" class="form-control" name="lpNames" ng-model="ctrl.scheduleRuleManageForSave.lpNames" required
112 112 placeholder="由路牌名称组成,逗号分隔"/>
113 113 </div>
... ... @@ -119,9 +119,9 @@
119 119  
120 120 <div class="form-group has-success has-feedback">
121 121 <label class="col-md-2 control-label">起始路牌*:</label>
122   - <div class="col-md-3">
  122 + <div class="col-md-4">
123 123 <input type="text" class="form-control" name="lpStart" ng-model="ctrl.scheduleRuleManageForSave.lpStart" required
124   - placeholder="起始路牌,从1开始"/>
  124 + placeholder="起始路牌索引,从1开始"/>
125 125 </div>
126 126 <!-- 隐藏块,显示验证信息 -->
127 127 <div class="alert alert-danger well-sm" ng-show="myForm.lpStart.$error.required">
... ... @@ -131,7 +131,7 @@
131 131  
132 132 <div class="form-group has-success has-feedback">
133 133 <label class="col-md-2 control-label">人员范围*:</label>
134   - <div class="col-md-3">
  134 + <div class="col-md-4">
135 135 <input type="text" class="form-control" name="ryDbbms" ng-model="ctrl.scheduleRuleManageForSave.ryDbbms" required
136 136 placeholder="由人员配置的搭班编码组成,逗号分隔"/>
137 137 </div>
... ... @@ -143,9 +143,9 @@
143 143  
144 144 <div class="form-group has-success has-feedback">
145 145 <label class="col-md-2 control-label">起始人员*:</label>
146   - <div class="col-md-3">
  146 + <div class="col-md-4">
147 147 <input type="text" class="form-control" name="ryStart" ng-model="ctrl.scheduleRuleManageForSave.ryStart" required
148   - placeholder="起始人员,从1开始"/>
  148 + placeholder="起始人员索引,从1开始"/>
149 149 </div>
150 150 <!-- 隐藏块,显示验证信息 -->
151 151 <div class="alert alert-danger well-sm" ng-show="myForm.ryStart.$error.required">
... ... @@ -155,7 +155,7 @@
155 155  
156 156 <div class="form-group">
157 157 <label class="col-md-2 control-label">翻班格式:</label>
158   - <div class="col-md-3">
  158 + <div class="col-md-4">
159 159 <input type="text" class="form-control" name="fbgs" ng-model="ctrl.scheduleRuleManageForSave.fbgs"
160 160 placeholder="车辆翻班格式"/>
161 161 </div>
... ...
src/main/resources/static/pages/scheduleApp/module/core/scheduleRuleManage/form.html
... ... @@ -107,7 +107,7 @@
107 107  
108 108 <div class="form-group has-success has-feedback">
109 109 <label class="col-md-2 control-label">路牌范围*:</label>
110   - <div class="col-md-3">
  110 + <div class="col-md-4">
111 111 <input type="text" class="form-control" name="lpNames" ng-model="ctrl.scheduleRuleManageForSave.lpNames" required
112 112 placeholder="由路牌名称组成,逗号分隔"/>
113 113 </div>
... ... @@ -119,9 +119,9 @@
119 119  
120 120 <div class="form-group has-success has-feedback">
121 121 <label class="col-md-2 control-label">起始路牌*:</label>
122   - <div class="col-md-3">
  122 + <div class="col-md-4">
123 123 <input type="text" class="form-control" name="lpStart" ng-model="ctrl.scheduleRuleManageForSave.lpStart" required
124   - placeholder="起始路牌,从1开始"/>
  124 + placeholder="起始路牌索引,从1开始"/>
125 125 </div>
126 126 <!-- 隐藏块,显示验证信息 -->
127 127 <div class="alert alert-danger well-sm" ng-show="myForm.lpStart.$error.required">
... ... @@ -131,7 +131,7 @@
131 131  
132 132 <div class="form-group has-success has-feedback">
133 133 <label class="col-md-2 control-label">人员范围*:</label>
134   - <div class="col-md-3">
  134 + <div class="col-md-4">
135 135 <input type="text" class="form-control" name="ryDbbms" ng-model="ctrl.scheduleRuleManageForSave.ryDbbms" required
136 136 placeholder="由人员配置的搭班编码组成,逗号分隔"/>
137 137 </div>
... ... @@ -143,9 +143,9 @@
143 143  
144 144 <div class="form-group has-success has-feedback">
145 145 <label class="col-md-2 control-label">起始人员*:</label>
146   - <div class="col-md-3">
  146 + <div class="col-md-4">
147 147 <input type="text" class="form-control" name="ryStart" ng-model="ctrl.scheduleRuleManageForSave.ryStart" required
148   - placeholder="起始人员,从1开始"/>
  148 + placeholder="起始人员索引,从1开始"/>
149 149 </div>
150 150 <!-- 隐藏块,显示验证信息 -->
151 151 <div class="alert alert-danger well-sm" ng-show="myForm.ryStart.$error.required">
... ... @@ -155,7 +155,7 @@
155 155  
156 156 <div class="form-group">
157 157 <label class="col-md-2 control-label">翻班格式:</label>
158   - <div class="col-md-3">
  158 + <div class="col-md-4">
159 159 <input type="text" class="form-control" name="fbgs" ng-model="ctrl.scheduleRuleManageForSave.fbgs"
160 160 placeholder="车辆翻班格式"/>
161 161 </div>
... ...
src/main/resources/static/pages/scheduleApp/module/core/timeTableManage/detail_info.html
... ... @@ -38,6 +38,15 @@
38 38 <span class="caption-subject bold uppercase" ng-bind="ctrl.title"></span>
39 39 </div>
40 40 <div class="actions">
  41 + <i class="fa fa-arrow-up" aria-hidden="true"></i>
  42 + <span style="padding-right: 10px;">上行班次</span>
  43 + <i class="fa fa-arrow-down" aria-hidden="true"></i>
  44 + <span style="padding-right: 10px;">下行班次</span>
  45 + <i class="fa fa-circle-o-notch" aria-hidden="true"></i>
  46 + <span style="padding-right: 10px;">区间班次</span>
  47 + <i class="fa fa-adjust" aria-hidden="true"></i>
  48 + <span style="padding-right: 10px;">分班班次</span>
  49 +
41 50 <div class="btn-group">
42 51 <a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown">
43 52 <i class="fa fa-share"></i>
... ... @@ -53,7 +62,7 @@
53 62 </li>
54 63 <li class="divider"></li>
55 64 <li>
56   - <a href="javascript:" class="tool-action">
  65 + <a href="javascript:" class="tool-action" ng-click="ctrl.refresh()">
57 66 <i class="fa fa-refresh"></i>
58 67 刷行数据
59 68 </a>
... ... @@ -84,7 +93,14 @@
84 93  
85 94 <div ng-if="cell.ttdid" class="btn-group">
86 95 <a href="javascript:" class="btn blue btn-outline btn-circle" data-toggle="dropdown">
87   - <i class="fa fa-share"></i>
  96 + <!-- 上下行图标 -->
  97 + <i ng-if="cell.xldir == '0'" class="fa fa-arrow-up" aria-hidden="true"></i>
  98 + <i ng-if="cell.xldir == '1'" class="fa fa-arrow-down" aria-hidden="true"></i>
  99 + <!-- 班次类型图标(区间班次) -->
  100 + <i ng-if="cell.bc_type == 'region'" class="fa fa-circle-o-notch" aria-hidden="true"></i>
  101 + <!-- 分班班次 -->
  102 + <i ng-if="cell.isfb == true" class="fa fa-adjust" aria-hidden="true"></i>
  103 +
88 104 <span ng-bind="cell.fcsj"></span>
89 105 <i class="fa fa-angle-down"></i>
90 106 </a>
... ... @@ -96,18 +112,49 @@
96 112 </a>
97 113 </li>
98 114 <li>
99   - <a href="javascript:" class="tool-action" ui-sref="timeTableDetailInfoManage_detail_edit({id: cell.ttdid, xlid: ctrl.xlid, ttid: ctrl.ttid, xlname: ctrl.xlname, ttname: ctrl.ttname})">
100   - <i class="fa fa-file-excel-o"></i>
101   - 分班
  115 + <a href="javascript:" class="tool-action">
  116 + <i class="fa fa-refresh"></i>
  117 + 删除
102 118 </a>
103 119 </li>
104 120 <li class="divider"></li>
105 121 <li>
106   - <a href="javascript:" class="tool-action">
107   - <i class="fa fa-refresh"></i>
108   - 删除
  122 + <a href="javascript:" class="tool-action" ng-click="ctrl.changeDirect(cell, 0)">
  123 + <i class="fa fa-file-excel-o"></i>
  124 + 设为上行
  125 + <i class="fa fa-arrow-up" aria-hidden="true"></i>
  126 + </a>
  127 + </li>
  128 + <li>
  129 + <a href="javascript:" class="tool-action" ng-click="ctrl.changeDirect(cell, 1)">
  130 + <i class="fa fa-file-excel-o"></i>
  131 + 设为下行
  132 + <i class="fa fa-arrow-down" aria-hidden="true"></i>
  133 + </a>
  134 + </li>
  135 + <li>
  136 + <a href="javascript:" class="tool-action" ng-click="ctrl.changeFB(cell, true)">
  137 + <i class="fa fa-file-excel-o"></i>
  138 + 设置分班
  139 + <i class="fa fa-adjust" aria-hidden="true"></i>
109 140 </a>
110 141 </li>
  142 + <li>
  143 + <a href="javascript:" class="tool-action" ng-click="ctrl.changeFB(cell, false)">
  144 + <i class="fa fa-file-excel-o"></i>
  145 + 取消分班
  146 + <i class="fa fa-adjust" aria-hidden="true"></i>
  147 + </a>
  148 + </li>
  149 + <li>
  150 + <a href="javascript:" class="tool-action" ng-click="ctrl.changeBCType(cell, 'region')">
  151 + <i class="fa fa-file-excel-o"></i>
  152 + 设为区间
  153 + <i class="fa fa-circle-o-notch" aria-hidden="true"></i>
  154 + </a>
  155 + </li>
  156 +
  157 +
111 158 </ul>
112 159 </div>
113 160  
... ...
src/main/resources/static/pages/scheduleApp/module/core/timeTableManage/list.html
... ... @@ -70,14 +70,14 @@
70 70 class="btn default blue-stripe btn-sm"> 编辑 </a>
71 71 <a ng-click="ctrl.importData($index)" class="btn default blue-stripe btn-sm"> 导入 </a>
72 72 <a href="javascript:" class="btn default blue-stripe btn-sm"> 导出 </a>
73   - <a href="javascript:" class="btn default blue-stripe btn-sm"> 模版 </a>
  73 + <a href="javascript:" class="btn default blue-stripe btn-sm"> 清空 </a>
74 74 </td>
75 75 <td>
76 76 <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>-->
77 77 <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>-->
78 78 <a ui-sref="timeTableManage_detail({id: info.id})" class="btn default blue-stripe btn-sm"> 详细 </a>
79 79 <a ui-sref="timeTableManage_edit({id: info.id})" class="btn default blue-stripe btn-sm"> 修改 </a>
80   - <a ng-click="ctrl.deleteTTinfo(info.id)" class="btn default blue-stripe btn-sm"> 删除 </a>
  80 + <a ng-click="ctrl.deleteTTinfo(info.id)" class="btn default blue-stripe btn-sm"> 作废 </a>
81 81 </td>
82 82 </tr>
83 83 </tbody>
... ...
src/main/resources/static/pages/scheduleApp/module/core/timeTableManage/timeTableDetailManage.js
... ... @@ -52,6 +52,91 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;TimeTableDetailManageCtrl&#39;, [&#39;TimeTabl
52 52 }
53 53 );
54 54  
  55 + // 刷新数据
  56 + self.refresh = function() {
  57 + timeTableDetailManageService.getEditInfo(self.xlid, self.ttid).then(
  58 + function(result) {
  59 + // TODO;获取数据待展示
  60 + self.detailHeads = result.header;
  61 + self.detailInfos = result.contents;
  62 + },
  63 + function(result) {
  64 + alert("出错啦!");
  65 + }
  66 + );
  67 + };
  68 +
  69 + /**
  70 + * 反向操作。
  71 + * @param cell 明细信息
  72 + */
  73 + self.changeDirect = function(detailInfo, xldir) {
  74 + timeTableDetailManageService.getDetail(detailInfo.ttdid).then(
  75 + function(result) {
  76 + result.xlDir = xldir;
  77 + timeTableDetailManageService.saveDetail(result).then(
  78 + function(result) {
  79 + detailInfo.xldir = xldir;
  80 + },
  81 + function(result) {
  82 + alert("出错啦!");
  83 + }
  84 + );
  85 + },
  86 + function(result) {
  87 + alert("出错啦!");
  88 + }
  89 + );
  90 + };
  91 +
  92 + /**
  93 + * 更新分班。
  94 + * @param detailInfo 明细信息
  95 + * @param flag 分班标识
  96 + */
  97 + self.changeFB = function(detailInfo, flag) {
  98 + timeTableDetailManageService.getDetail(detailInfo.ttdid).then(
  99 + function(result) {
  100 + result.isFB = flag;
  101 + timeTableDetailManageService.saveDetail(result).then(
  102 + function(result) {
  103 + detailInfo.isfb = flag;
  104 + },
  105 + function(result) {
  106 + alert("出错啦!");
  107 + }
  108 + );
  109 + },
  110 + function(result) {
  111 + alert("出错啦!");
  112 + }
  113 + );
  114 + };
  115 +
  116 + /**
  117 + * 改变便次类型。
  118 + * @param detailInfo 明细信息
  119 + * @param type 班次类型
  120 + */
  121 + self.changeBCType = function(detailInfo, type) {
  122 + timeTableDetailManageService.getDetail(detailInfo.ttdid).then(
  123 + function(result) {
  124 + result.bcType = type;
  125 + timeTableDetailManageService.saveDetail(result).then(
  126 + function(result) {
  127 + detailInfo.bc_type = type;
  128 + },
  129 + function(result) {
  130 + alert("出错啦!");
  131 + }
  132 + );
  133 + },
  134 + function(result) {
  135 + alert("出错啦!");
  136 + }
  137 + );
  138 + };
  139 +
55 140 }]);
56 141  
57 142 angular.module('ScheduleApp').controller('TimeTableDetailManageFormCtrl', ['TimeTableDetailManageService', '$stateParams', '$state', function(timeTableDetailManageService, $stateParams, $state) {
... ...
src/main/resources/static/pages/scheduleApp/module/core/timeTableManage/timeTableManage.js
... ... @@ -195,14 +195,14 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;TimeTableManageListCtrl&#39;, [&#39;TimeTableM
195 195 // TODO:
196 196 timeTableManageService.deleteDetail(id).then(
197 197 function(result) {
198   - alert("删除成功!");
  198 + alert("作废成功!");
199 199  
200 200 timeTableManageService.getPage().then(
201 201 function(result) {
202 202 self.pageInfo.totalItems = result.totalElements;
203 203 self.pageInfo.currentPage = result.number + 1;
204 204 self.pageInfo.infos = result.content;
205   - schedulePlanManageService.setCurrentPageNo(result.number + 1);
  205 + timeTableManageService.setCurrentPageNo(result.number + 1);
206 206 },
207 207 function(result) {
208 208 alert("出错啦!");
... ...
src/test/java/com/bsth/service/schedule/rules/DroolsRulesTest.java
... ... @@ -65,7 +65,7 @@ public class DroolsRulesTest {
65 65  
66 66 ScheduleCalcuParam_input scheduleCalcuParam_input = new ScheduleCalcuParam_input();
67 67 scheduleCalcuParam_input.setFromDate(new DateTime(2016, 8, 1, 0, 0));
68   - scheduleCalcuParam_input.setToDate(new DateTime(2016, 8, 2, 0, 0));
  68 + scheduleCalcuParam_input.setToDate(new DateTime(2016, 8, 10, 0, 0));
69 69 scheduleCalcuParam_input.setTtinfoId(1L);
70 70  
71 71 ScheduleRule_input scheduleRule_input1 = new ScheduleRule_input();
... ...