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,22 +133,26 @@ public class StartCommand implements CommandLineRunner{
133 */ 133 */
134 scheduler.scheduleWithFixedDelay(firstScheduleIssuedThread, 60 , 60 * 2, TimeUnit.SECONDS); 134 scheduler.scheduleWithFixedDelay(firstScheduleIssuedThread, 60 , 60 * 2, TimeUnit.SECONDS);
135 135
136 - //延迟一会 136 +
137 /* new Timer().schedule(new TimerTask() { 137 /* new Timer().schedule(new TimerTask() {
138 138
139 @Override 139 @Override
140 public void run() { 140 public void run() {
141 - //临时全量刷车辆线路  
142 List<CarConfigInfo> ccis = carConfigInfoRepository.findAll(); 141 List<CarConfigInfo> ccis = carConfigInfoRepository.findAll();
143 Cars car; 142 Cars car;
144 Line line; 143 Line line;
145 String lineCode; 144 String lineCode;
146 - int code; 145 + System.out.println("ccis size: " + ccis.size());
147 for(CarConfigInfo cci : ccis){ 146 for(CarConfigInfo cci : ccis){
148 car = cci.getCl(); 147 car = cci.getCl();
149 line = cci.getXl(); 148 line = cci.getXl();
150 lineCode = line.getLineCode(); 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 code = directiveService.lineChange(car.getInsideCode(), Integer.parseInt(lineCode)); 156 code = directiveService.lineChange(car.getInsideCode(), Integer.parseInt(lineCode));
153 //directiveService.send60Phrase(car.getInsideCode(), ""); 157 //directiveService.send60Phrase(car.getInsideCode(), "");
154 System.out.println("返回值:" + code); 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,8 +255,8 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
255 * @throws 255 * @throws
256 */ 256 */
257 @RequestMapping(value = "/findRouteByLine") 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 @RequestMapping(value = "/test/getSch") 262 @RequestMapping(value = "/test/getSch")
@@ -264,6 +264,18 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -264,6 +264,18 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
264 getSchedulePlanThread.start(); 264 getSchedulePlanThread.start();
265 return 1; 265 return 1;
266 } 266 }
  267 +
  268 + /**
  269 + *
  270 + * @Title: removeChildTask
  271 + * @Description: TODO(删除子任务)
  272 + * @param @param taskId 子任务ID
  273 + * @throws
  274 + */
  275 + @RequestMapping(value = "/childTask/{taskId}", method = RequestMethod.DELETE)
  276 + public Map<String, Object> removeChildTask(@PathVariable("taskId") Long taskId){
  277 + return scheduleRealInfoService.removeChildTask(taskId);
  278 + }
267 279
268 /** 280 /**
269 * 281 *
src/main/java/com/bsth/controller/schedule/TTInfoController.java
@@ -7,6 +7,7 @@ import com.bsth.repository.schedule.TTInfoRepository; @@ -7,6 +7,7 @@ import com.bsth.repository.schedule.TTInfoRepository;
7 import com.bsth.service.schedule.utils.DataToolsProperties; 7 import com.bsth.service.schedule.utils.DataToolsProperties;
8 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.boot.context.properties.EnableConfigurationProperties; 9 import org.springframework.boot.context.properties.EnableConfigurationProperties;
  10 +import org.springframework.data.domain.Page;
10 import org.springframework.web.bind.annotation.*; 11 import org.springframework.web.bind.annotation.*;
11 12
12 import java.util.Map; 13 import java.util.Map;
@@ -59,4 +60,13 @@ public class TTInfoController extends BaseController&lt;TTInfo, Long&gt; { @@ -59,4 +60,13 @@ public class TTInfoController extends BaseController&lt;TTInfo, Long&gt; {
59 // 一般比较自编号是否重复 60 // 一般比较自编号是否重复
60 return baseService.validateEquale(map); 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,5 +223,14 @@ public class ChildTaskPlan {
223 public void setEndStationName(String endStationName) { 223 public void setEndStationName(String endStationName) {
224 this.endStationName = endStationName; 224 this.endStationName = endStationName;
225 } 225 }
226 - 226 +
  227 + @Override
  228 + public int hashCode() {
  229 + return ("" + this.getId() + this.getSchedule().getId()).hashCode();
  230 + }
  231 +
  232 + @Override
  233 + public boolean equals(Object obj) {
  234 + return this.id.equals(((ChildTaskPlan)obj).getId());
  235 + }
227 } 236 }
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
@@ -183,7 +183,7 @@ public class ScheduleRealInfo { @@ -183,7 +183,7 @@ public class ScheduleRealInfo {
183 private String qdzArrDatesj; 183 private String qdzArrDatesj;
184 184
185 /** 子任务 */ 185 /** 子任务 */
186 - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) 186 + @OneToMany(fetch = FetchType.LAZY/*, cascade = CascadeType.ALL*/)
187 private Set<ChildTaskPlan> cTasks = new HashSet<>(); 187 private Set<ChildTaskPlan> cTasks = new HashSet<>();
188 188
189 /** ---------------- */ 189 /** ---------------- */
src/main/java/com/bsth/entity/schedule/TTInfo.java
@@ -41,6 +41,9 @@ public class TTInfo { @@ -41,6 +41,9 @@ public class TTInfo {
41 /** 是否启用调度模版 */ 41 /** 是否启用调度模版 */
42 @Column(nullable = false) 42 @Column(nullable = false)
43 private Boolean isEnableDisTemplate; 43 private Boolean isEnableDisTemplate;
  44 + /** 是否删除(标记) */
  45 + @Column(nullable = false)
  46 + private Boolean isCancel = false;
44 47
45 /** 模版类型(TODO:时刻表,间隔式,这个以后用枚举还是字典再议,现在先用文字) */ 48 /** 模版类型(TODO:时刻表,间隔式,这个以后用枚举还是字典再议,现在先用文字) */
46 private String templateType; 49 private String templateType;
@@ -193,4 +196,11 @@ public class TTInfo { @@ -193,4 +196,11 @@ public class TTInfo {
193 this.updateDate = updateDate; 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,7 +38,7 @@ public class AccessLogFilter extends BaseFilter {
38 HttpServletResponse response, FilterChain chain) 38 HttpServletResponse response, FilterChain chain)
39 throws IOException, ServletException { 39 throws IOException, ServletException {
40 40
41 - String username = SecurityUtils.getCurrentUser().getName(); //等集成shiro之后再取 41 + String username = /*SecurityUtils.getCurrentUser().getName()*/"test"; //等集成shiro之后再取
42 String jsessionId = request.getRequestedSessionId(); 42 String jsessionId = request.getRequestedSessionId();
43 String ip = IpUtils.getIpAddr(request); 43 String ip = IpUtils.getIpAddr(request);
44 String userAgent = request.getHeader("User-Agent"); 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,4 +21,6 @@ public interface SchedulePlanInfoRepository extends BaseRepository&lt;SchedulePlanI
21 @Query(value = "select s from SchedulePlanInfo s where scheduleDate=?1") 21 @Query(value = "select s from SchedulePlanInfo s where scheduleDate=?1")
22 List<SchedulePlanInfo> findByDate(Date date); 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,7 +32,7 @@ public interface TTInfoDetailRepository extends BaseRepository&lt;TTInfoDetail, Lon
32 32
33 void deleteByTtinfoId(Long ttid); 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 Long findMaxFcno(Integer xlid, Long ttinfoid); 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,7 +80,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
80 80
81 Map<String, Object> outgoAdjustAll(String params); 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 List<Map<String,String>> findLine(String line); 85 List<Map<String,String>> findLine(String line);
86 86
@@ -93,4 +93,6 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L @@ -93,4 +93,6 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
93 List<ScheduleRealInfo> correctForm(String line,String startDate,String endDate,String lpName,String code); 93 List<ScheduleRealInfo> correctForm(String line,String startDate,String endDate,String lpName,String code);
94 94
95 List<ScheduleRealInfo> queryListWaybill(String jName,String clZbh,String lpName); 95 List<ScheduleRealInfo> queryListWaybill(String jName,String clZbh,String lpName);
  96 +
  97 + Map<String, Object> removeChildTask(Long taskId);
96 } 98 }
src/main/java/com/bsth/service/realcontrol/impl/ChildTaskPlanServiceImpl.java
@@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service;
9 9
10 import com.bsth.entity.realcontrol.ChildTaskPlan; 10 import com.bsth.entity.realcontrol.ChildTaskPlan;
11 import com.bsth.entity.realcontrol.ScheduleRealInfo; 11 import com.bsth.entity.realcontrol.ScheduleRealInfo;
  12 +import com.bsth.repository.realcontrol.ChildTaskPlanRepository;
12 import com.bsth.service.impl.BaseServiceImpl; 13 import com.bsth.service.impl.BaseServiceImpl;
13 import com.bsth.service.realcontrol.ChildTaskPlanService; 14 import com.bsth.service.realcontrol.ChildTaskPlanService;
14 import com.bsth.service.realcontrol.buffer.ScheduleBuffer; 15 import com.bsth.service.realcontrol.buffer.ScheduleBuffer;
@@ -17,8 +18,11 @@ import com.bsth.vehicle.common.CommonMapped; @@ -17,8 +18,11 @@ import com.bsth.vehicle.common.CommonMapped;
17 @Service 18 @Service
18 public class ChildTaskPlanServiceImpl extends BaseServiceImpl<ChildTaskPlan, Long> implements ChildTaskPlanService{ 19 public class ChildTaskPlanServiceImpl extends BaseServiceImpl<ChildTaskPlan, Long> implements ChildTaskPlanService{
19 20
  21 + /*@Autowired
  22 + ScheduleRealInfoServiceImpl scheduleRealInfoService;*/
  23 +
20 @Autowired 24 @Autowired
21 - ScheduleRealInfoServiceImpl scheduleRealInfoService; 25 + ChildTaskPlanRepository childTaskPlanRepository;
22 26
23 @Transactional 27 @Transactional
24 @Override 28 @Override
@@ -29,14 +33,28 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl&lt;ChildTaskPlan, Lon @@ -29,14 +33,28 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl&lt;ChildTaskPlan, Lon
29 33
30 t.setStartStationName(map.get(t.getStartStation())); 34 t.setStartStationName(map.get(t.getStartStation()));
31 t.setEndStationName(map.get(t.getEndStation())); 35 t.setEndStationName(map.get(t.getEndStation()));
32 -  
33 - //rs = super.save(t);  
34 - 36 + //先持久化子任务
  37 + rs = super.save(t);
  38 + //再关联主任务
35 ScheduleRealInfo sch = ScheduleBuffer.findOne(t.getSchedule().getId()); 39 ScheduleRealInfo sch = ScheduleBuffer.findOne(t.getSchedule().getId());
36 sch.getcTasks().add(t); 40 sch.getcTasks().add(t);
37 - rs = scheduleRealInfoService.save(sch); 41 + //rs = scheduleRealInfoService.save(sch);
38 42
  43 + rs.put("t", sch);
  44 + return rs;
  45 + }
  46 +
  47 + @Override
  48 + public Map<String, Object> delete(Long id) {
  49 + Map<String, Object> rs;
  50 +
  51 + ChildTaskPlan cPlan = childTaskPlanRepository.findOne(id);
  52 + //解除和主任务关联
  53 + ScheduleRealInfo sch = ScheduleBuffer.findOne(cPlan.getSchedule().getId());
  54 + sch.getcTasks().remove(cPlan);
  55 + //删除子任务
  56 + rs = super.delete(id);
  57 + rs.put("t", sch);
39 return rs; 58 return rs;
40 } 59 }
41 -  
42 } 60 }
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -25,12 +25,14 @@ import com.bsth.common.ResponseCode; @@ -25,12 +25,14 @@ import com.bsth.common.ResponseCode;
25 import com.bsth.entity.Cars; 25 import com.bsth.entity.Cars;
26 import com.bsth.entity.Line; 26 import com.bsth.entity.Line;
27 import com.bsth.entity.Personnel; 27 import com.bsth.entity.Personnel;
  28 +import com.bsth.entity.realcontrol.ChildTaskPlan;
28 import com.bsth.entity.realcontrol.ScheduleRealInfo; 29 import com.bsth.entity.realcontrol.ScheduleRealInfo;
29 import com.bsth.entity.schedule.CarConfigInfo; 30 import com.bsth.entity.schedule.CarConfigInfo;
30 import com.bsth.entity.schedule.EmployeeConfigInfo; 31 import com.bsth.entity.schedule.EmployeeConfigInfo;
31 import com.bsth.entity.schedule.GuideboardInfo; 32 import com.bsth.entity.schedule.GuideboardInfo;
32 import com.bsth.entity.sys.SysUser; 33 import com.bsth.entity.sys.SysUser;
33 import com.bsth.repository.LineRepository; 34 import com.bsth.repository.LineRepository;
  35 +import com.bsth.repository.realcontrol.ChildTaskPlanRepository;
34 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; 36 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
35 import com.bsth.repository.schedule.CarConfigInfoRepository; 37 import com.bsth.repository.schedule.CarConfigInfoRepository;
36 import com.bsth.repository.schedule.EmployeeConfigInfoRepository; 38 import com.bsth.repository.schedule.EmployeeConfigInfoRepository;
@@ -74,6 +76,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -74,6 +76,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
74 76
75 @Autowired 77 @Autowired
76 GuideboardInfoRepository guideboardInfoRepository; 78 GuideboardInfoRepository guideboardInfoRepository;
  79 +
  80 + @Autowired
  81 + ChildTaskPlanRepository cTaskPlanRepository;
77 82
78 Logger logger = LoggerFactory.getLogger(this.getClass()); 83 Logger logger = LoggerFactory.getLogger(this.getClass());
79 84
@@ -757,9 +762,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -757,9 +762,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
757 } 762 }
758 763
759 @Override 764 @Override
760 - public Map<String, Object> findRouteByLine(Integer lineId) { 765 + public Map<String, Object> findRouteByLine(Integer lineCode) {
761 Map<String, Object> map = new HashMap<>(); 766 Map<String, Object> map = new HashMap<>();
762 //上行 767 //上行
  768 + Integer lineId = CommonMapped.lineIdToCode.inverse().get(lineCode);
763 map.put("line.id_eq", lineId); 769 map.put("line.id_eq", lineId);
764 map.put("directions_eq", 0); 770 map.put("directions_eq", 0);
765 List<Map<String, Object>> upList = sectionRouteService.getSectionRoute(map); 771 List<Map<String, Object>> upList = sectionRouteService.getSectionRoute(map);
@@ -923,4 +929,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -923,4 +929,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
923 String lpName) { 929 String lpName) {
924 return scheduleRealInfoRepository.queryListWaybill(jName,clZbh,lpName); 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,6 +3,7 @@ package com.bsth.service.schedule;
3 import com.bsth.entity.Line; 3 import com.bsth.entity.Line;
4 import com.bsth.entity.schedule.*; 4 import com.bsth.entity.schedule.*;
5 import com.bsth.entity.schedule.rule.ScheduleRule1Flat; 5 import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
  6 +import com.bsth.repository.schedule.SchedulePlanInfoRepository;
6 import com.bsth.repository.schedule.SchedulePlanRepository; 7 import com.bsth.repository.schedule.SchedulePlanRepository;
7 import com.bsth.service.LineService; 8 import com.bsth.service.LineService;
8 import com.bsth.service.impl.BaseServiceImpl; 9 import com.bsth.service.impl.BaseServiceImpl;
@@ -37,20 +38,15 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt; @@ -37,20 +38,15 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt;
37 private IStrategy strategy; 38 private IStrategy strategy;
38 @Autowired 39 @Autowired
39 private SchedulePlanRepository schedulePlanRepository; 40 private SchedulePlanRepository schedulePlanRepository;
  41 + @Autowired
  42 + private SchedulePlanInfoRepository schedulePlanInfoRepository;
40 43
41 @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED) 44 @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)
42 @Override 45 @Override
43 public Map<String, Object> save(SchedulePlan schedulePlan) { 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 TTInfo ttInfo = strategy.getTTInfo(xl.getId()); // 时刻表id 50 TTInfo ttInfo = strategy.getTTInfo(xl.getId()); // 时刻表id
55 schedulePlan.setTtInfo(ttInfo); // 关联的时刻表 51 schedulePlan.setTtInfo(ttInfo); // 关联的时刻表
56 52
@@ -59,7 +55,7 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt; @@ -59,7 +55,7 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt;
59 ScheduleCalcuParam_input scheduleCalcuParam_input = new ScheduleCalcuParam_input(schedulePlan); 55 ScheduleCalcuParam_input scheduleCalcuParam_input = new ScheduleCalcuParam_input(schedulePlan);
60 // 每个规则对应的输入参数 56 // 每个规则对应的输入参数
61 List<ScheduleRule_input> scheduleRule_inputs = new ArrayList<>(); 57 List<ScheduleRule_input> scheduleRule_inputs = new ArrayList<>();
62 - Iterator<ScheduleRule1Flat> scheduleRule1FlatIterator = scheduleRule1FlatIterable.iterator(); 58 + Iterator<ScheduleRule1Flat> scheduleRule1FlatIterator = strategy.getScheduleRule(xl.getId()).iterator();
63 while (scheduleRule1FlatIterator.hasNext()) { 59 while (scheduleRule1FlatIterator.hasNext()) {
64 ScheduleRule1Flat scheduleRule1Flat_temp = scheduleRule1FlatIterator.next(); 60 ScheduleRule1Flat scheduleRule1Flat_temp = scheduleRule1FlatIterator.next();
65 ScheduleRule_input scheduleRule_input = new ScheduleRule_input(scheduleRule1Flat_temp); 61 ScheduleRule_input scheduleRule_input = new ScheduleRule_input(scheduleRule1Flat_temp);
@@ -86,6 +82,11 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt; @@ -86,6 +82,11 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt;
86 82
87 System.out.println(scheduleResults_output.showGuideboardDesc1()); 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 // 3、根据规则返回,组合最后的输出数据 90 // 3、根据规则返回,组合最后的输出数据
90 // 3-1、根据注入的策略服务,获取原始数据 91 // 3-1、根据注入的策略服务,获取原始数据
91 Multimap<Long, TTInfoDetail> gbdTTinfoMaps = strategy.getGuideboardXlTTInfoDetailMaps(xl.getId()); // 路牌对应时刻明细 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,7 +9,6 @@ import jxl.Sheet;
9 import jxl.Workbook; 9 import jxl.Workbook;
10 import org.apache.commons.lang3.StringUtils; 10 import org.apache.commons.lang3.StringUtils;
11 import org.joda.time.DateTime; 11 import org.joda.time.DateTime;
12 -import org.pentaho.di.core.logging.LogLevel;  
13 import org.pentaho.di.trans.Trans; 12 import org.pentaho.di.trans.Trans;
14 import org.pentaho.di.trans.TransMeta; 13 import org.pentaho.di.trans.TransMeta;
15 import org.springframework.beans.factory.annotation.Autowired; 14 import org.springframework.beans.factory.annotation.Autowired;
@@ -45,14 +44,26 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl&lt;TTInfoDetail, Long&gt; @@ -45,14 +44,26 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl&lt;TTInfoDetail, Long&gt;
45 private String fcsj; 44 private String fcsj;
46 /** 班次类型 */ 45 /** 班次类型 */
47 private String bc_type; 46 private String bc_type;
  47 + /** 线路上下行 */
  48 + private String xldir;
  49 + /** 是偶分班 */
  50 + private Boolean isfb;
48 51
49 public FcInfo() { 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 this.bc_type = bc_type; 57 this.bc_type = bc_type;
55 this.fcsj = fcsj; 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 public Long getTtdid() { 69 public Long getTtdid() {
@@ -78,6 +89,22 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl&lt;TTInfoDetail, Long&gt; @@ -78,6 +89,22 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl&lt;TTInfoDetail, Long&gt;
78 public void setBc_type(String bc_type) { 89 public void setBc_type(String bc_type) {
79 this.bc_type = bc_type; 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,7 +146,7 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl&lt;TTInfoDetail, Long&gt;
119 dataToolsProperties.getTtinfodetailForeditktr()).toURI()); 146 dataToolsProperties.getTtinfodetailForeditktr()).toURI());
120 TransMeta transMeta = new TransMeta(ktrFile.getAbsolutePath()); 147 TransMeta transMeta = new TransMeta(ktrFile.getAbsolutePath());
121 Trans trans = new Trans(transMeta); 148 Trans trans = new Trans(transMeta);
122 - trans.setLogLevel(LogLevel.DEBUG); 149 +// trans.setLogLevel(LogLevel.DEBUG);
123 // 1.2、设定命名参数,TODO:之后还要添加其他命名参数 150 // 1.2、设定命名参数,TODO:之后还要添加其他命名参数
124 String outputFilePath = "ttinfodetail_" + new DateTime().toString("yyyy-MM-dd_HH-mm-ss"); 151 String outputFilePath = "ttinfodetail_" + new DateTime().toString("yyyy-MM-dd_HH-mm-ss");
125 trans.setParameterValue("tempfilepath", dataToolsProperties.getTransTempdir() + File.separator + outputFilePath); // 数据输出文件路径 152 trans.setParameterValue("tempfilepath", dataToolsProperties.getTransTempdir() + File.separator + outputFilePath); // 数据输出文件路径
@@ -152,21 +179,22 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl&lt;TTInfoDetail, Long&gt; @@ -152,21 +179,22 @@ public class TTInfoDetailServiceImpl extends BaseServiceImpl&lt;TTInfoDetail, Long&gt;
152 for (int r = 1; r < sheet.getRows(); r++) { 179 for (int r = 1; r < sheet.getRows(); r++) {
153 List<FcInfo> fcInfos = new ArrayList<>(); 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 fcInfos.add(fcInfo); 195 fcInfos.add(fcInfo);
168 196
169 - c += 4; 197 + c += 6;
170 } 198 }
171 editInfo.getContents().add(fcInfos); 199 editInfo.getContents().add(fcInfos);
172 } 200 }
src/main/java/com/bsth/service/schedule/TTInfoServiceImpl.java
1 package com.bsth.service.schedule; 1 package com.bsth.service.schedule;
2 2
  3 +import com.bsth.common.ResponseCode;
3 import com.bsth.entity.schedule.TTInfo; 4 import com.bsth.entity.schedule.TTInfo;
4 -import com.bsth.repository.schedule.TTInfoDetailRepository; 5 +import com.bsth.repository.schedule.TTInfoRepository;
5 import com.bsth.service.impl.BaseServiceImpl; 6 import com.bsth.service.impl.BaseServiceImpl;
6 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.dao.DataIntegrityViolationException;
7 import org.springframework.stereotype.Service; 9 import org.springframework.stereotype.Service;
8 10
9 import javax.transaction.Transactional; 11 import javax.transaction.Transactional;
  12 +import java.util.HashMap;
10 import java.util.Map; 13 import java.util.Map;
11 14
12 /** 15 /**
@@ -16,11 +19,21 @@ import java.util.Map; @@ -16,11 +19,21 @@ import java.util.Map;
16 @Transactional 19 @Transactional
17 public class TTInfoServiceImpl extends BaseServiceImpl<TTInfo, Long> implements TTInfoService { 20 public class TTInfoServiceImpl extends BaseServiceImpl<TTInfo, Long> implements TTInfoService {
18 @Autowired 21 @Autowired
19 - private TTInfoDetailRepository ttInfoDetailRepository; 22 + private TTInfoRepository ttInfoRepository;
20 23
21 @Override 24 @Override
22 public Map<String, Object> delete(Long aLong) { 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 package com.bsth.service.schedule.rules.strategy; 1 package com.bsth.service.schedule.rules.strategy;
2 2
  3 +import com.bsth.entity.Line;
3 import com.bsth.entity.schedule.CarConfigInfo; 4 import com.bsth.entity.schedule.CarConfigInfo;
4 import com.bsth.entity.schedule.EmployeeConfigInfo; 5 import com.bsth.entity.schedule.EmployeeConfigInfo;
5 import com.bsth.entity.schedule.TTInfo; 6 import com.bsth.entity.schedule.TTInfo;
6 import com.bsth.entity.schedule.TTInfoDetail; 7 import com.bsth.entity.schedule.TTInfoDetail;
  8 +import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
7 import com.google.common.collect.Multimap; 9 import com.google.common.collect.Multimap;
8 10
9 import java.util.Map; 11 import java.util.Map;
@@ -14,28 +16,42 @@ import java.util.Map; @@ -14,28 +16,42 @@ import java.util.Map;
14 public interface IStrategy { 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 * @param xlId 线路id 27 * @param xlId 线路id
19 * @return 时刻表 28 * @return 时刻表
20 */ 29 */
21 TTInfo getTTInfo(Integer xlId); 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 * @param xlId 线路id 41 * @param xlId 线路id
26 * @return 路牌id为key,时刻明细 Collection<TTInfoDetail> 为value 42 * @return 路牌id为key,时刻明细 Collection<TTInfoDetail> 为value
27 */ 43 */
28 Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId); 44 Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId);
29 45
30 /** 46 /**
31 - * 查找指定线路下,车辆配置与车辆信息对应的Map。 47 + * 获取指定线路下,车辆配置与车辆信息对应的Map。
32 * @param xlId 线路id 48 * @param xlId 线路id
33 * @return 车辆配置id为key,具体车辆配置信息为value。 49 * @return 车辆配置id为key,具体车辆配置信息为value。
34 */ 50 */
35 Map<Long, CarConfigInfo> getCarConfigMaps(Integer xlId); 51 Map<Long, CarConfigInfo> getCarConfigMaps(Integer xlId);
36 52
37 /** 53 /**
38 - * 查找指定线路下,人员配置与人员对应的Map。 54 + * 获取指定线路下,人员配置与人员对应的Map。
39 * @param xlId 线路id 55 * @param xlId 线路id
40 * @return 人员配置id为key,具体人员配置信息为value。 56 * @return 人员配置id为key,具体人员配置信息为value。
41 */ 57 */
src/main/java/com/bsth/service/schedule/rules/strategy/IStrategyImpl.java
1 package com.bsth.service.schedule.rules.strategy; 1 package com.bsth.service.schedule.rules.strategy;
2 2
  3 +import com.bsth.entity.Line;
3 import com.bsth.entity.schedule.CarConfigInfo; 4 import com.bsth.entity.schedule.CarConfigInfo;
4 import com.bsth.entity.schedule.EmployeeConfigInfo; 5 import com.bsth.entity.schedule.EmployeeConfigInfo;
5 import com.bsth.entity.schedule.TTInfo; 6 import com.bsth.entity.schedule.TTInfo;
6 import com.bsth.entity.schedule.TTInfoDetail; 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 import com.google.common.collect.ArrayListMultimap; 11 import com.google.common.collect.ArrayListMultimap;
12 import com.google.common.collect.Multimap; 12 import com.google.common.collect.Multimap;
13 import org.springframework.beans.factory.annotation.Autowired; 13 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,13 +30,24 @@ public class IStrategyImpl implements IStrategy { @@ -30,13 +30,24 @@ public class IStrategyImpl implements IStrategy {
30 private EmployeeConfigInfoService employeeConfigInfoService; 30 private EmployeeConfigInfoService employeeConfigInfoService;
31 @Autowired 31 @Autowired
32 private TTInfoDetailService ttInfoDetailService; 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 @Override 44 @Override
35 public TTInfo getTTInfo(Integer xlId) { 45 public TTInfo getTTInfo(Integer xlId) {
36 // TODO:本来要使用规则判定到底使用哪张时刻表,这里选用第一张 46 // TODO:本来要使用规则判定到底使用哪张时刻表,这里选用第一张
37 - // 查询参数  
38 - Map<String, Object> param = new HashMap<>(); 47 + Map<String, Object> param = new HashMap<>(); // 查询参数
  48 + param.clear();
39 param.put("xl.id_eq", xlId); // 线路id 49 param.put("xl.id_eq", xlId); // 线路id
  50 + param.put("isCancel_eq", false); // 没有作废
40 param.put("isEnableDisTemplate_eq", true); // 是否启用 51 param.put("isEnableDisTemplate_eq", true); // 是否启用
41 Iterable<TTInfo> ttInfoIterable = ttInfoService.list(param); 52 Iterable<TTInfo> ttInfoIterable = ttInfoService.list(param);
42 Iterator<TTInfo> ttInfoIterator = ttInfoIterable.iterator(); 53 Iterator<TTInfo> ttInfoIterator = ttInfoIterable.iterator();
@@ -46,6 +57,19 @@ public class IStrategyImpl implements IStrategy { @@ -46,6 +57,19 @@ public class IStrategyImpl implements IStrategy {
46 } 57 }
47 58
48 @Override 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 public Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId) { 73 public Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId) {
50 TTInfo ttInfo = getTTInfo(xlId); 74 TTInfo ttInfo = getTTInfo(xlId);
51 // 查询参数 75 // 查询参数
src/main/java/com/bsth/vehicle/BorrowCenter.java
@@ -73,10 +73,10 @@ public class BorrowCenter { @@ -73,10 +73,10 @@ public class BorrowCenter {
73 @Override 73 @Override
74 public void run() { 74 public void run() {
75 logger.info("nbbm " + (type==0?"借出":"归还") + "线路代码 " + lineCode); 75 logger.info("nbbm " + (type==0?"借出":"归还") + "线路代码 " + lineCode);
76 - directiveService.lineChange(nbbm, lineCode); 76 + directiveService.lineChange(nbbm, lineCode, null);
77 if(upDown != -1){ 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,7 +32,7 @@ public class UpstreamEntrance {
32 DirectiveBuffer directiveBuffer; 32 DirectiveBuffer directiveBuffer;
33 33
34 @RequestMapping(value = "/upstream", method = RequestMethod.POST) 34 @RequestMapping(value = "/upstream", method = RequestMethod.POST)
35 - public int main(@RequestParam String json) { 35 + public String main(@RequestParam String json) {
36 logger.info("upstream: " + json); 36 logger.info("upstream: " + json);
37 try { 37 try {
38 JSONObject jsonParam = JSONObject.parseObject(json); 38 JSONObject jsonParam = JSONObject.parseObject(json);
@@ -66,6 +66,6 @@ public class UpstreamEntrance { @@ -66,6 +66,6 @@ public class UpstreamEntrance {
66 } catch (Exception e) { 66 } catch (Exception e) {
67 logger.error("", e); 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 package com.bsth.vehicle.common; 1 package com.bsth.vehicle.common;
2 2
3 -import java.util.List;  
4 import java.util.Map; 3 import java.util.Map;
5 4
6 import com.bsth.entity.Line; 5 import com.bsth.entity.Line;
7 -import com.bsth.entity.StationRoute;  
8 -import com.google.common.collect.ArrayListMultimap;  
9 import com.google.common.collect.BiMap; 6 import com.google.common.collect.BiMap;
10 import com.google.common.collect.TreeMultimap; 7 import com.google.common.collect.TreeMultimap;
11 8
@@ -54,12 +51,17 @@ public class CommonMapped { @@ -54,12 +51,17 @@ public class CommonMapped {
54 * 线路站点路由对照 51 * 线路站点路由对照
55 * (K:线路编码, V:站点路由) 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 * 用于webSocket定向推送消息 58 * 用于webSocket定向推送消息
62 */ 59 */
63 public static TreeMultimap<Integer, String> lineUserMap = TreeMultimap.create(); 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 package com.bsth.vehicle.common; 1 package com.bsth.vehicle.common;
2 2
3 -import java.util.ArrayList;  
4 -import java.util.Collections;  
5 import java.util.Comparator; 3 import java.util.Comparator;
6 import java.util.HashMap; 4 import java.util.HashMap;
7 import java.util.Iterator; 5 import java.util.Iterator;
8 -import java.util.List;  
9 import java.util.Map; 6 import java.util.Map;
10 7
11 import org.slf4j.Logger; 8 import org.slf4j.Logger;
@@ -21,6 +18,7 @@ import com.bsth.entity.StationRoute; @@ -21,6 +18,7 @@ import com.bsth.entity.StationRoute;
21 import com.bsth.entity.schedule.CarConfigInfo; 18 import com.bsth.entity.schedule.CarConfigInfo;
22 import com.bsth.repository.CarParkRepository; 19 import com.bsth.repository.CarParkRepository;
23 import com.bsth.repository.CarsRepository; 20 import com.bsth.repository.CarsRepository;
  21 +import com.bsth.repository.LineRepository;
24 import com.bsth.repository.StationRepository; 22 import com.bsth.repository.StationRepository;
25 import com.bsth.repository.StationRouteRepository; 23 import com.bsth.repository.StationRouteRepository;
26 import com.bsth.repository.schedule.CarConfigInfoRepository; 24 import com.bsth.repository.schedule.CarConfigInfoRepository;
@@ -53,6 +51,9 @@ public class CommonRefreshThread extends Thread{ @@ -53,6 +51,9 @@ public class CommonRefreshThread extends Thread{
53 @Autowired 51 @Autowired
54 StationRouteRepository sRouteRepository; 52 StationRouteRepository sRouteRepository;
55 53
  54 + @Autowired
  55 + LineRepository lineRepository;
  56 +
56 Logger logger = LoggerFactory.getLogger(this.getClass()); 57 Logger logger = LoggerFactory.getLogger(this.getClass());
57 58
58 @Override 59 @Override
@@ -62,7 +63,9 @@ public class CommonRefreshThread extends Thread{ @@ -62,7 +63,9 @@ public class CommonRefreshThread extends Thread{
62 initStationCodeMap(); 63 initStationCodeMap();
63 initVehicLineMap(); 64 initVehicLineMap();
64 65
65 - initLineStationRouteMap(); 66 + //initLineStationRouteMap();
  67 +
  68 + initLineIdToCode();
66 } catch (Exception e) { 69 } catch (Exception e) {
67 e.printStackTrace(); 70 e.printStackTrace();
68 logger.error("", e); 71 logger.error("", e);
@@ -75,7 +78,7 @@ public class CommonRefreshThread extends Thread{ @@ -75,7 +78,7 @@ public class CommonRefreshThread extends Thread{
75 * @Description: TODO(加载线路站点路由信息) 78 * @Description: TODO(加载线路站点路由信息)
76 * @throws 79 * @throws
77 */ 80 */
78 - private void initLineStationRouteMap() { 81 +/* private void initLineStationRouteMap() {
79 List<StationRoute> routes = sRouteRepository.findAll2(); 82 List<StationRoute> routes = sRouteRepository.findAll2();
80 83
81 Map<Integer, List<StationRoute>> map = new HashMap<>(); 84 Map<Integer, List<StationRoute>> map = new HashMap<>();
@@ -97,6 +100,19 @@ public class CommonRefreshThread extends Thread{ @@ -97,6 +100,19 @@ public class CommonRefreshThread extends Thread{
97 temp = iterator.next(); 100 temp = iterator.next();
98 Collections.sort(temp, sRouteComp); 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,7 +5,6 @@ import java.util.Calendar;
5 import java.util.Collection; 5 import java.util.Collection;
6 import java.util.Comparator; 6 import java.util.Comparator;
7 import java.util.HashMap; 7 import java.util.HashMap;
8 -import java.util.Iterator;  
9 import java.util.LinkedList; 8 import java.util.LinkedList;
10 import java.util.List; 9 import java.util.List;
11 import java.util.Map; 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,6 +9,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
9 import org.springframework.web.bind.annotation.RequestParam; 9 import org.springframework.web.bind.annotation.RequestParam;
10 import org.springframework.web.bind.annotation.RestController; 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 import com.bsth.vehicle.directive.entity.Directive80; 14 import com.bsth.vehicle.directive.entity.Directive80;
13 import com.bsth.vehicle.directive.service.DirectiveService; 15 import com.bsth.vehicle.directive.service.DirectiveService;
14 16
@@ -35,7 +37,8 @@ public class DirectiveController { @@ -35,7 +37,8 @@ public class DirectiveController {
35 */ 37 */
36 @RequestMapping(value = "/phrase", method = RequestMethod.POST) 38 @RequestMapping(value = "/phrase", method = RequestMethod.POST)
37 public int send60Phrase(@RequestParam String nbbm, @RequestParam String text){ 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,7 +50,8 @@ public class DirectiveController {
47 */ 50 */
48 @RequestMapping(value = "/dispatch", method = RequestMethod.POST) 51 @RequestMapping(value = "/dispatch", method = RequestMethod.POST)
49 public int send60Dispatch(@RequestParam Long id){ 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,7 +64,8 @@ public class DirectiveController {
60 */ 64 */
61 @RequestMapping(value = "/lineChnage", method = RequestMethod.POST) 65 @RequestMapping(value = "/lineChnage", method = RequestMethod.POST)
62 public int lineChange(@RequestParam String nbbm, @RequestParam Integer lineId){ 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,9 +76,10 @@ public class DirectiveController {
71 * @param @param upDon 76 * @param @param upDon
72 * @throws 77 * @throws
73 */ 78 */
74 - @RequestMapping(value = "/upDownChange", method = RequestMethod.POST) 79 + @RequestMapping(value = "/upDownChange", method = RequestMethod.GET)
75 public int upDownChange(@RequestParam String nbbm, @RequestParam Integer upDown){ 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,6 +44,11 @@ public class Directive {
44 private String errorText; 44 private String errorText;
45 45
46 private int httpCode; 46 private int httpCode;
  47 +
  48 + /**
  49 + * 发送人
  50 + */
  51 + private String sender;
47 52
48 public short getOperCode() { 53 public short getOperCode() {
49 return operCode; 54 return operCode;
@@ -100,4 +105,12 @@ public class Directive { @@ -100,4 +105,12 @@ public class Directive {
100 public void setHttpCode(int httpCode) { 105 public void setHttpCode(int httpCode) {
101 this.httpCode = httpCode; 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,7 +13,6 @@ import javax.persistence.Table;
13 import javax.persistence.Transient; 13 import javax.persistence.Transient;
14 14
15 import com.bsth.entity.realcontrol.ScheduleRealInfo; 15 import com.bsth.entity.realcontrol.ScheduleRealInfo;
16 -import com.bsth.entity.sys.SysUser;  
17 import com.fasterxml.jackson.annotation.JsonIgnore; 16 import com.fasterxml.jackson.annotation.JsonIgnore;
18 17
19 18
@@ -72,12 +71,6 @@ public class Directive60 extends Directive{ @@ -72,12 +71,6 @@ public class Directive60 extends Directive{
72 @ManyToOne(fetch = FetchType.LAZY) 71 @ManyToOne(fetch = FetchType.LAZY)
73 private ScheduleRealInfo sch; 72 private ScheduleRealInfo sch;
74 73
75 - /**  
76 - * 发送人  
77 - */  
78 - @ManyToOne  
79 - private SysUser sender;  
80 -  
81 @Embeddable 74 @Embeddable
82 public static class DirectiveData { 75 public static class DirectiveData {
83 // 公司代码 76 // 公司代码
@@ -271,12 +264,4 @@ public class Directive60 extends Directive{ @@ -271,12 +264,4 @@ public class Directive60 extends Directive{
271 public void setSch(ScheduleRealInfo sch) { 264 public void setSch(ScheduleRealInfo sch) {
272 this.sch = sch; 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,7 +20,7 @@ public interface DirectiveService extends BaseService&lt;Directive60, Integer&gt;{
20 * @return int 返回类型 20 * @return int 返回类型
21 * @throws 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,7 +30,7 @@ public interface DirectiveService extends BaseService&lt;Directive60, Integer&gt;{
30 * @param @param finish 已完成的班次数 30 * @param @param finish 已完成的班次数
31 * @throws 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,10 +39,10 @@ public interface DirectiveService extends BaseService&lt;Directive60, Integer&gt;{
39 * @param @param id 班次ID 39 * @param @param id 班次ID
40 * @throws 40 * @throws
41 */ 41 */
42 - int send60Dispatch(Long id); 42 + int send60Dispatch(Long id, String sender);
43 43
44 //60营运指令 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,7 +52,7 @@ public interface DirectiveService extends BaseService&lt;Directive60, Integer&gt;{
52 * @param @param lineId 新线路编码 52 * @param @param lineId 新线路编码
53 * @throws 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,7 +62,7 @@ public interface DirectiveService extends BaseService&lt;Directive60, Integer&gt;{
62 * @param @param upDonw 上下行 0 上行 1 下行 62 * @param @param upDonw 上下行 0 上行 1 下行
63 * @throws 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 package com.bsth.vehicle.directive.service; 1 package com.bsth.vehicle.directive.service;
2 2
3 import java.text.SimpleDateFormat; 3 import java.text.SimpleDateFormat;
  4 +import java.util.ArrayList;
4 import java.util.Collections; 5 import java.util.Collections;
5 import java.util.Date; 6 import java.util.Date;
6 import java.util.HashMap; 7 import java.util.HashMap;
@@ -20,20 +21,17 @@ import com.bsth.entity.realcontrol.ScheduleRealInfo; @@ -20,20 +21,17 @@ import com.bsth.entity.realcontrol.ScheduleRealInfo;
20 import com.bsth.service.impl.BaseServiceImpl; 21 import com.bsth.service.impl.BaseServiceImpl;
21 import com.bsth.service.realcontrol.buffer.ScheduleBuffer; 22 import com.bsth.service.realcontrol.buffer.ScheduleBuffer;
22 import com.bsth.vehicle.common.CommonMapped; 23 import com.bsth.vehicle.common.CommonMapped;
23 -import com.bsth.vehicle.directive.Consts;  
24 -import com.bsth.vehicle.directive.MsgIdGenerator;  
25 import com.bsth.vehicle.directive.buffer.DirectiveBuffer; 24 import com.bsth.vehicle.directive.buffer.DirectiveBuffer;
26 import com.bsth.vehicle.directive.entity.Directive; 25 import com.bsth.vehicle.directive.entity.Directive;
27 import com.bsth.vehicle.directive.entity.Directive60; 26 import com.bsth.vehicle.directive.entity.Directive60;
28 -import com.bsth.vehicle.directive.entity.Directive60.DirectiveData;  
29 import com.bsth.vehicle.directive.entity.DirectiveC0.DirectiveC0Data; 27 import com.bsth.vehicle.directive.entity.DirectiveC0.DirectiveC0Data;
30 import com.bsth.vehicle.directive.entity.Directive80; 28 import com.bsth.vehicle.directive.entity.Directive80;
31 import com.bsth.vehicle.directive.entity.DirectiveC0; 29 import com.bsth.vehicle.directive.entity.DirectiveC0;
32 import com.bsth.vehicle.directive.entity.Directive64; 30 import com.bsth.vehicle.directive.entity.Directive64;
33 -import com.bsth.vehicle.directive.entity.Directive64.LineChangeData;  
34 import com.bsth.vehicle.directive.repository.Directive60Repository; 31 import com.bsth.vehicle.directive.repository.Directive60Repository;
35 import com.bsth.vehicle.directive.repository.Directive80Repository; 32 import com.bsth.vehicle.directive.repository.Directive80Repository;
36 import com.bsth.vehicle.directive.repository.LineChangeRepository; 33 import com.bsth.vehicle.directive.repository.LineChangeRepository;
  34 +import com.bsth.vehicle.directive.util.DirectiveDataFactory;
37 import com.bsth.vehicle.directive.util.HttpUtils; 35 import com.bsth.vehicle.directive.util.HttpUtils;
38 import com.bsth.vehicle.gpsdata.buffer.GpsRealDataBuffer; 36 import com.bsth.vehicle.gpsdata.buffer.GpsRealDataBuffer;
39 import com.bsth.vehicle.gpsdata.entity.GpsRealData; 37 import com.bsth.vehicle.gpsdata.entity.GpsRealData;
@@ -64,11 +62,8 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -64,11 +62,8 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
64 62
65 static Long schDiff = 1000 * 60 * 60L; 63 static Long schDiff = 1000 * 60 * 60L;
66 64
67 - // 城市代码  
68 - static final short cityCode = 22;  
69 -  
70 @Override 65 @Override
71 - public int send60Phrase(String nbbm, String text) { 66 + public int send60Phrase(String nbbm, String text, String sender) {
72 Directive60 directive = null; 67 Directive60 directive = null;
73 try { 68 try {
74 directive = create60Data(nbbm, text, (short) 0x00, null); 69 directive = create60Data(nbbm, text, (short) 0x00, null);
@@ -82,6 +77,8 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -82,6 +77,8 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
82 77
83 // 发送指令 78 // 发送指令
84 int code = HttpUtils.postJson(JSON.toJSONString(directive)); 79 int code = HttpUtils.postJson(JSON.toJSONString(directive));
  80 + if(null != sender)
  81 + directive.setSender(sender);
85 directive.setHttpCode(code); 82 directive.setHttpCode(code);
86 // 添加到缓存,等待入库 83 // 添加到缓存,等待入库
87 DirectiveBuffer.put(directive); 84 DirectiveBuffer.put(directive);
@@ -94,13 +91,13 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -94,13 +91,13 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
94 } 91 }
95 92
96 @Override 93 @Override
97 - public int send60Dispatch(ScheduleRealInfo sch, int finish) { 94 + public int send60Dispatch(ScheduleRealInfo sch, int finish, String sender) {
98 Directive60 directive = null; 95 Directive60 directive = null;
99 try { 96 try {
100 // 如果发车时间距当前时间较远,则不发送 97 // 如果发车时间距当前时间较远,则不发送
101 - if (Math.abs(sch.getFcsjT() - System.currentTimeMillis()) > schDiff) { 98 + /*if (Math.abs(sch.getFcsjT() - System.currentTimeMillis()) > schDiff) {
102 return -2; 99 return -2;
103 - } 100 + }*/
104 101
105 String text = "已完成" + finish + "个班次,下一发车时间" + sdfHHmm.format(new Date(sch.getFcsjT())) + ",由" 102 String text = "已完成" + finish + "个班次,下一发车时间" + sdfHHmm.format(new Date(sch.getFcsjT())) + ",由"
106 + sch.getQdzName() + "发往" + sch.getZdzName(); 103 + sch.getQdzName() + "发往" + sch.getZdzName();
@@ -114,6 +111,10 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -114,6 +111,10 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
114 111
115 if (null == directive) 112 if (null == directive)
116 return -1; 113 return -1;
  114 + if(null != sender)
  115 + directive.setSender(sender);
  116 + else
  117 + directive.setSender("系统");
117 118
118 // 发送指令 119 // 发送指令
119 int code = HttpUtils.postJson(JSON.toJSONString(directive)); 120 int code = HttpUtils.postJson(JSON.toJSONString(directive));
@@ -148,22 +149,26 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -148,22 +149,26 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
148 } 149 }
149 150
150 @Override 151 @Override
151 - public int send60Dispatch(Long id) { 152 + public int send60Dispatch(Long id, String sender) {
152 ScheduleRealInfo sch = ScheduleBuffer.findOne(id); 153 ScheduleRealInfo sch = ScheduleBuffer.findOne(id);
153 // 车辆已完成班次 154 // 车辆已完成班次
154 int finish = ScheduleBuffer.getFinishSchNo(sch.getClZbh()); 155 int finish = ScheduleBuffer.getFinishSchNo(sch.getClZbh());
155 - return send60Dispatch(sch, finish); 156 + return send60Dispatch(sch, finish, sender);
156 } 157 }
157 158
158 @Override 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 logger.info("切换运营状态, nbbm: " + nbbm + " ,state: " + state + " ,upDown:" + upDown); 161 logger.info("切换运营状态, nbbm: " + nbbm + " ,state: " + state + " ,upDown:" + upDown);
161 162
162 String text = "切换为 " + (upDown == 0 ? "上行" : "下行") + (state == 0 ? "营运" : "未营运"); 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 if (null == directive) 166 if (null == directive)
166 return -1; 167 return -1;
  168 + if(null != sender)
  169 + directive.setSender(sender);
  170 + else
  171 + directive.setSender("系统");
167 // 发送指令 172 // 发送指令
168 int code = HttpUtils.postJson(JSON.toJSONString(directive)); 173 int code = HttpUtils.postJson(JSON.toJSONString(directive));
169 // 添加到缓存,等待入库 174 // 添加到缓存,等待入库
@@ -183,21 +188,28 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -183,21 +188,28 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
183 * 线路切换 188 * 线路切换
184 */ 189 */
185 @Override 190 @Override
186 - public int lineChange(String nbbm, Integer lineId) { 191 + public int lineChange(String nbbm, Integer lineCode, String sender) {
187 Long t = System.currentTimeMillis(); 192 Long t = System.currentTimeMillis();
188 - String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm); 193 + /*String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
189 194
190 Directive64 change = new Directive64(); 195 Directive64 change = new Directive64();
191 LineChangeData data = new LineChangeData(); 196 LineChangeData data = new LineChangeData();
192 data.setCityCode(cityCode); 197 data.setCityCode(cityCode);
193 data.setDeviceId(deviceId); 198 data.setDeviceId(deviceId);
194 - data.setLineId("00" + String.valueOf(lineId)); 199 + data.setLineId("00" + String.valueOf(lineCode));
195 200
196 change.setDeviceId(deviceId); 201 change.setDeviceId(deviceId);
197 change.setOperCode((short) 0X64); 202 change.setOperCode((short) 0X64);
198 change.setTimestamp(t); 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 int code = HttpUtils.postJson(JSON.toJSONString(change)); 213 int code = HttpUtils.postJson(JSON.toJSONString(change));
202 // 入库 214 // 入库
203 change.setHttpCode(code); 215 change.setHttpCode(code);
@@ -205,7 +217,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -205,7 +217,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
205 217
206 // 通知设备刷新线路文件,忽略结果 218 // 通知设备刷新线路文件,忽略结果
207 if (code == 0) 219 if (code == 0)
208 - HttpUtils.postJson(createDeviceRefreshData(deviceId, lineId)); 220 + HttpUtils.postJson(DirectiveDataFactory.createDeviceRefreshData(deviceId, lineCode));
209 else 221 else
210 change.setErrorText("网关通讯失败, code: " + code); 222 change.setErrorText("网关通讯失败, code: " + code);
211 223
@@ -215,10 +227,6 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -215,10 +227,6 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
215 227
216 public Directive60 create60Data(String nbbm, String text, Short dispatchInstruct, ScheduleRealInfo sch) { 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 String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm); 230 String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
223 if (null == deviceId) { 231 if (null == deviceId) {
224 logger.error("没有设备号对照的车辆:" + nbbm); 232 logger.error("没有设备号对照的车辆:" + nbbm);
@@ -239,10 +247,10 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -239,10 +247,10 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
239 state = 0; 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 Long timestamp = System.currentTimeMillis(); 254 Long timestamp = System.currentTimeMillis();
247 255
248 Short company = Short.parseShort(CommonMapped.vehicCompanyMap.get(nbbm)); 256 Short company = Short.parseShort(CommonMapped.vehicCompanyMap.get(nbbm));
@@ -277,21 +285,11 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -277,21 +285,11 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
277 data.setTxtContent(text); 285 data.setTxtContent(text);
278 286
279 return directive; 287 return directive;
280 - } 288 + }*/
281 289
282 @Override 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,7 +297,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
299 * @Title: createDeviceRefreshData @Description: 297 * @Title: createDeviceRefreshData @Description:
300 * TODO(生成设备线路刷新数据包) @param @return 设定文件 @return String 返回类型 @throws 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 Long t = System.currentTimeMillis(); 301 Long t = System.currentTimeMillis();
304 Map<String, Object> param = new HashMap<String, Object>(); 302 Map<String, Object> param = new HashMap<String, Object>();
305 param.put("deviceId", deviceId); 303 param.put("deviceId", deviceId);
@@ -307,7 +305,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -307,7 +305,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
307 param.put("operCode", 0Xc0); 305 param.put("operCode", 0Xc0);
308 306
309 Map<String, Object> data = new HashMap<String, Object>(); 307 Map<String, Object> data = new HashMap<String, Object>();
310 - data.put("operCode", 0xa1); 308 + data.put("operCode2", 0xa1);
311 data.put("cityCode", cityCode); 309 data.put("cityCode", cityCode);
312 data.put("deviceId", deviceId); 310 data.put("deviceId", deviceId);
313 data.put("timestamp", t); 311 data.put("timestamp", t);
@@ -318,7 +316,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -318,7 +316,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
318 param.put("data", data); 316 param.put("data", data);
319 317
320 return JSON.toJSONString(param); 318 return JSON.toJSONString(param);
321 - } 319 + }*/
322 320
323 @Override 321 @Override
324 public Map<String, List<Directive80>> findNoCofm80(String lineCodes) { 322 public Map<String, List<Directive80>> findNoCofm80(String lineCodes) {
@@ -409,8 +407,15 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt; @@ -409,8 +407,15 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
409 // 时间倒序 407 // 时间倒序
410 Collections.sort(list, new DirectiveBuffer.DComparator()); 408 Collections.sort(list, new DirectiveBuffer.DComparator());
411 if(StringUtils.isNotBlank(nbbm)){ 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 int count = list.size(); 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,7 +69,7 @@ public class FirstScheduleIssuedThread extends Thread{
69 //切换营运状态 69 //切换营运状态
70 directiveService.send60Operation(sch.getClZbh() 70 directiveService.send60Operation(sch.getClZbh()
71 , 0, Integer.parseInt(sch.getXlDir()) 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,145 +66,8 @@ public class ArrivalThread extends Thread{
66 for(String lineCode : newSet){ 66 for(String lineCode : newSet){
67 MatchService.addService(lineCode); 67 MatchService.addService(lineCode);
68 } 68 }
69 -  
70 -  
71 - /*try {  
72 - Bootstrap bs = Bootstrap.instance();  
73 - bs.start();  
74 - } catch (Exception e) {  
75 - e.printStackTrace();  
76 - }*/  
77 -  
78 - /*//车辆  
79 - Set<String> set = new HashSet<>();  
80 - for(ArrivalInfo arr : list)  
81 - set.add(CommonMapped.vehicDeviceBiMap.get(arr.getDeviceId()));  
82 -  
83 - List<ArrivalInfo> rsList = null;  
84 - List<ScheduleRealInfo> subList = null;  
85 - ArrivalInfo[] status;  
86 - for(String nbbm : set){  
87 - rsList = GpsArrivalDataBuffer.pops(nbbm);  
88 - //和该车辆班次进行匹配  
89 - subList = ScheduleBuffer.vehSchListMap.get(nbbm);  
90 -  
91 - if(null == subList || subList.size() == 0)  
92 - continue;  
93 -  
94 - try{  
95 - for(ScheduleRealInfo schedule : subList){  
96 - //匹配结果  
97 - status = match(rsList, schedule);  
98 -  
99 - //发车  
100 - if(status[0] != null){  
101 - //班次状态改为正在执行  
102 - schedule.setStatus(1);  
103 - ScheduleBuffer.persistentList.add(schedule);  
104 - //推送到页面  
105 - sendFcsj(schedule);  
106 -  
107 - rsList.remove(status[0]);  
108 - }  
109 -  
110 - //到达终点  
111 - if(status[1] != null){  
112 - //完成当前班次  
113 - ScheduleRealInfo nextSch = ScheduleBuffer.finishSch(schedule);  
114 - //到达终点,发送下一班次的调度指令  
115 - int finish = ScheduleBuffer.getFinishSchNo(nextSch.getClZbh());  
116 - directiveService.send60Dispatch(nextSch, finish);  
117 - //推送到页面  
118 - sendZdsj(schedule, nextSch, finish);  
119 -  
120 - rsList.remove(status[1]);  
121 - }  
122 - }  
123 - }catch(Exception e){  
124 - e.printStackTrace();  
125 - }  
126 - }*/  
127 - }  
128 -  
129 -/* public ArrivalInfo[] match(List<ArrivalInfo> arrList, ScheduleRealInfo sch){  
130 - //进出分组  
131 - List<ArrivalInfo> in = new ArrayList<>(), out = new ArrayList<>();  
132 - for(ArrivalInfo arr : arrList){  
133 - if(arr.getInOut() == 0)  
134 - in.add(arr);  
135 - else  
136 - out.add(arr);  
137 - }  
138 - ArrivalInfo a1 = null, a2 = null;  
139 - //匹配发车时间  
140 - if(sch.getFcsjActual() == null && sch.getFcsj() != null)  
141 - a1 = matchOut(out, sch);  
142 -  
143 - //匹配终点时间  
144 - if(sch.getZdsjActual() == null && sch.getZdsj() != null)  
145 - a2 = matchIn(in, sch);  
146 -  
147 - return new ArrivalInfo[]{a1,a2};  
148 - }  
149 -  
150 - public ArrivalInfo matchOut(List<ArrivalInfo> arrList, ScheduleRealInfo sch){  
151 - Long space = ScheduleBuffer.schSpaceMap.get(sch.getXlBm() + "_" + sch.getXlDir())diff;  
152 - for(ArrivalInfo arr : arrList){  
153 - if(arr.getStopNo().equals(sch.getQdzCode())  
154 - && Math.abs((arr.getTs() - sch.getFcsjT())) < space){  
155 - sch.setFcsjActualAll(arr.getTs());  
156 -  
157 - return arr;  
158 -  
159 - }  
160 - }  
161 - return null;  
162 } 69 }
163 70
164 - public ArrivalInfo matchIn(List<ArrivalInfo> arrList, ScheduleRealInfo sch){  
165 - Long space = ScheduleBuffer.schSpaceMap.get(sch.getXlBm() + "_" + sch.getXlDir())diff;  
166 - for(ArrivalInfo arr : arrList){  
167 - if(arr.getStopNo().equals(sch.getZdzCode())  
168 - && Math.abs((arr.getTs() - sch.getZdsjT())) < space){  
169 - sch.setZdsjActualAll(arr.getTs());  
170 -  
171 - return arr;  
172 - }  
173 - }  
174 - return null;  
175 - }*/  
176 -  
177 -  
178 - /**  
179 - * @Title: sendFcsj  
180 - * @Description: TODO(推送发车信息)  
181 - * @param @param schedule 班次  
182 - * @throws  
183 - */  
184 -/* public void sendFcsj(ScheduleRealInfo schedule){  
185 - JSONObject json = new JSONObject();  
186 - json.put("fn", "faChe");  
187 - json.put("t", schedule);  
188 - json.put("dataStr", sdf.format(new Date()));  
189 - socketHandler.sendMessageToLine(Integer.parseInt(schedule.getXlBm()), json.toJSONString());  
190 - }  
191 -  
192 - *//**  
193 - * @Title: sendFcsj  
194 - * @Description: TODO(推送到达终点时间)  
195 - * @param @param schedule 班次  
196 - * @throws  
197 - *//*  
198 - public void sendZdsj(ScheduleRealInfo schedule,ScheduleRealInfo nextSch, int finish){  
199 - JSONObject json = new JSONObject();  
200 - json.put("fn", "zhongDian");  
201 - json.put("t", schedule);  
202 - json.put("nt", nextSch);  
203 - json.put("finish", finish);  
204 - json.put("dataStr", sdf.format(new Date()));  
205 -  
206 - socketHandler.sendMessageToLine(Integer.parseInt(schedule.getXlBm()), json.toJSONString());  
207 - }*/  
208 71
209 /** 72 /**
210 * @throws ParseException 73 * @throws ParseException
@@ -258,24 +121,4 @@ public class ArrivalThread extends Thread{ @@ -258,24 +121,4 @@ public class ArrivalThread extends Thread{
258 } 121 }
259 return list; 122 return list;
260 } 123 }
261 -  
262 - Long rang = 1000 * 60 * 60L;  
263 - /**  
264 - *  
265 - * @Title: extractSched  
266 - * @Description: TODO(提取当前时间前后一小时的计划)  
267 - * @param @param allList  
268 - * @throws  
269 -  
270 - public List<ScheduleRealInfo> extractSched(List<ScheduleRealInfo> allList){  
271 - List<ScheduleRealInfo> subList = new ArrayList<>();  
272 - Long t = System.currentTimeMillis();  
273 - for(ScheduleRealInfo sch : allList){  
274 - if(Math.abs(sch.getFcsjT() - t) < rang  
275 - || (sch.getZdsjT() != null && Math.abs(sch.getZdsjT()) - t < rang)){  
276 - subList.add(sch);  
277 - }  
278 - }  
279 - return subList;  
280 - } */  
281 } 124 }
src/main/java/com/bsth/vehicle/gpsdata/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,18 +155,20 @@ public class ScheduleRealMatcher implements ApplicationContextAware{
155 } 155 }
156 156
157 finish = ScheduleBuffer.getFinishSchNo(sch.getClZbh()); 157 finish = ScheduleBuffer.getFinishSchNo(sch.getClZbh());
158 - upDown = Integer.parseInt(sch.getXlDir()); 158 +
159 if(nextSch != null){ 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 else{ 167 else{
  168 + upDown = Integer.parseInt(sch.getXlDir());
167 //没有下一个班次了,切换为非营运状态 169 //没有下一个班次了,切换为非营运状态
168 logger.info(sch.getClZbh() + " 完成所有班次,切换为非营运状态"); 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 sendZdsj(sch, nextSch, finish);//推送到页面 174 sendZdsj(sch, nextSch, finish);//推送到页面
@@ -183,10 +185,6 @@ public class ScheduleRealMatcher implements ApplicationContextAware{ @@ -183,10 +185,6 @@ public class ScheduleRealMatcher implements ApplicationContextAware{
183 * @throws 185 * @throws
184 */ 186 */
185 public void sendFcsj(ScheduleRealInfo schedule) { 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 Map<String, Object> map = new HashMap<>(); 189 Map<String, Object> map = new HashMap<>();
192 map.put("fn", "faChe"); 190 map.put("fn", "faChe");
@@ -212,12 +210,6 @@ public class ScheduleRealMatcher implements ApplicationContextAware{ @@ -212,12 +210,6 @@ public class ScheduleRealMatcher implements ApplicationContextAware{
212 * @throws 210 * @throws
213 */ 211 */
214 public void sendZdsj(ScheduleRealInfo schedule,ScheduleRealInfo nextSch, int finish) { 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 Map<String, Object> map = new HashMap<>(); 214 Map<String, Object> map = new HashMap<>();
223 map.put("fn", "zhongDian"); 215 map.put("fn", "zhongDian");
src/main/java/com/bsth/vehicle/gpsdata/buffer/GpsRealDataBuffer.java
@@ -103,11 +103,9 @@ public class GpsRealDataBuffer { @@ -103,11 +103,9 @@ public class GpsRealDataBuffer {
103 103
104 //更新GPS点 104 //更新GPS点
105 for(GpsRealData newGps : upGpsList){ 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 newGps.setOnline(true); 108 newGps.setOnline(true);
110 - }  
111 109
112 deviceGpsMap.put(newGps.getDeviceId(), newGps); 110 deviceGpsMap.put(newGps.getDeviceId(), newGps);
113 } 111 }
src/main/resources/datatools/ktrs/ttinfodetailDataInput.ktr
@@ -587,13 +587,31 @@ @@ -587,13 +587,31 @@
587 <optimizationLevel>9</optimizationLevel> 587 <optimizationLevel>9</optimizationLevel>
588 <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> 588 <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
589 <jsScript_name>Script 1</jsScript_name> 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 </jsScript> </jsScripts> <fields> <field> <name>qdzname</name> 591 </jsScript> </jsScripts> <fields> <field> <name>qdzname</name>
592 <rename>qdzname</rename> 592 <rename>qdzname</rename>
593 <type>String</type> 593 <type>String</type>
594 <length>-1</length> 594 <length>-1</length>
595 <precision>-1</precision> 595 <precision>-1</precision>
596 <replace>Y</replace> 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 </field> </fields> <cluster_schema/> 615 </field> </fields> <cluster_schema/>
598 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 616 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
599 <xloc>788</xloc> 617 <xloc>788</xloc>
@@ -693,76 +711,8 @@ @@ -693,76 +711,8 @@
693 </step> 711 </step>
694 712
695 <step> 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 <description/> 716 <description/>
767 <distribute>Y</distribute> 717 <distribute>Y</distribute>
768 <custom_distribution/> 718 <custom_distribution/>
@@ -772,141 +722,118 @@ @@ -772,141 +722,118 @@
772 <schema_name/> 722 <schema_name/>
773 </partitioning> 723 </partitioning>
774 <connection>bus_control_variable</connection> 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 <lookup> 727 <lookup>
779 <schema/> 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 <key> 730 <key>
785 - <name>tccname_</name>  
786 - <field>park_name</field> 731 + <name>xlid</name>
  732 + <field>xl</field>
787 <condition>&#x3d;</condition> 733 <condition>&#x3d;</condition>
788 <name2/> 734 <name2/>
789 </key> 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 <key> 736 <key>
827 - <name>tccname_</name>  
828 - <field>park_name</field> 737 + <name>ttid</name>
  738 + <field>ttinfo</field>
829 <condition>&#x3d;</condition> 739 <condition>&#x3d;</condition>
830 <name2/> 740 <name2/>
831 </key> 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 <key> 742 <key>
869 - <name>xlid</name>  
870 - <field>line</field> 743 + <name>lpid</name>
  744 + <field>lp</field>
871 <condition>&#x3d;</condition> 745 <condition>&#x3d;</condition>
872 <name2/> 746 <name2/>
873 </key> 747 </key>
874 <key> 748 <key>
875 - <name>zdzname</name>  
876 - <field>station_name</field> 749 + <name>fcno</name>
  750 + <field>fcno</field>
877 <condition>&#x3d;</condition> 751 <condition>&#x3d;</condition>
878 <name2/> 752 <name2/>
879 </key> 753 </key>
880 <key> 754 <key>
881 - <name>endZdtype</name>  
882 - <field>station_mark</field> 755 + <name>bcs</name>
  756 + <field>bcs</field>
883 <condition>&#x3d;</condition> 757 <condition>&#x3d;</condition>
884 <name2/> 758 <name2/>
885 </key> 759 </key>
886 <value> 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 <rename>zdzid</rename> 812 <rename>zdzid</rename>
889 - <default/>  
890 - <type>Integer</type> 813 + <update>Y</update>
891 </value> 814 </value>
892 <value> 815 <value>
893 - <name>directions</name> 816 + <name>xl_dir</name>
894 <rename>sxx</rename> 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 </value> 824 </value>
898 </lookup> 825 </lookup>
899 <cluster_schema/> 826 <cluster_schema/>
900 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 830 <draw>Y</draw>
904 </GUI> 831 </GUI>
905 </step> 832 </step>
906 833
907 <step> 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 <description/> 837 <description/>
911 <distribute>Y</distribute> 838 <distribute>Y</distribute>
912 <custom_distribution/> 839 <custom_distribution/>
@@ -916,15 +843,11 @@ @@ -916,15 +843,11 @@
916 <schema_name/> 843 <schema_name/>
917 </partitioning> 844 </partitioning>
918 <connection>bus_control_variable</connection> 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 <lookup> 848 <lookup>
923 <schema/> 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 <key> 851 <key>
929 <name>xlid</name> 852 <name>xlid</name>
930 <field>xl</field> 853 <field>xl</field>
@@ -932,89 +855,106 @@ @@ -932,89 +855,106 @@
932 <name2/> 855 <name2/>
933 </key> 856 </key>
934 <key> 857 <key>
935 - <name>ttinfoname_</name>  
936 - <field>name</field> 858 + <name>ttid</name>
  859 + <field>ttinfo</field>
937 <condition>&#x3d;</condition> 860 <condition>&#x3d;</condition>
938 <name2/> 861 <name2/>
939 </key> 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 <key> 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 <condition>&#x3d;</condition> 878 <condition>&#x3d;</condition>
980 <name2/> 879 <name2/>
981 </key> 880 </key>
982 <value> 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 </value> 885 </value>
988 <value> 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 </value> 890 </value>
994 <value> 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 </value> 895 </value>
1000 <value> 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 </value> 945 </value>
1006 </lookup> 946 </lookup>
1007 <cluster_schema/> 947 <cluster_schema/>
1008 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 951 <draw>Y</draw>
1012 </GUI> 952 </GUI>
1013 </step> 953 </step>
1014 954
1015 <step> 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 <description/> 958 <description/>
1019 <distribute>Y</distribute> 959 <distribute>Y</distribute>
1020 <custom_distribution/> 960 <custom_distribution/>
@@ -1024,39 +964,118 @@ @@ -1024,39 +964,118 @@
1024 <schema_name/> 964 <schema_name/>
1025 </partitioning> 965 </partitioning>
1026 <connection>bus_control_variable</connection> 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 <lookup> 969 <lookup>
1031 <schema/> 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 <key> 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 <condition>&#x3d;</condition> 999 <condition>&#x3d;</condition>
1040 <name2/> 1000 <name2/>
1041 </key> 1001 </key>
1042 <value> 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 <rename>xlid</rename> 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 </value> 1066 </value>
1048 </lookup> 1067 </lookup>
1049 <cluster_schema/> 1068 <cluster_schema/>
1050 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1072 <draw>Y</draw>
1054 </GUI> 1073 </GUI>
1055 </step> 1074 </step>
1056 1075
1057 <step> 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 <description/> 1079 <description/>
1061 <distribute>Y</distribute> 1080 <distribute>Y</distribute>
1062 <custom_distribution/> 1081 <custom_distribution/>
@@ -1065,45 +1084,65 @@ @@ -1065,45 +1084,65 @@
1065 <method>none</method> 1084 <method>none</method>
1066 <schema_name/> 1085 <schema_name/>
1067 </partitioning> 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 <cluster_schema/> 1136 <cluster_schema/>
1098 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1140 <draw>Y</draw>
1102 </GUI> 1141 </GUI>
1103 </step> 1142 </step>
1104 1143
1105 <step> 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 <type>DBLookup</type> 1146 <type>DBLookup</type>
1108 <description/> 1147 <description/>
1109 <distribute>Y</distribute> 1148 <distribute>Y</distribute>
@@ -1119,39 +1158,33 @@ @@ -1119,39 +1158,33 @@
1119 <cache_size>0</cache_size> 1158 <cache_size>0</cache_size>
1120 <lookup> 1159 <lookup>
1121 <schema/> 1160 <schema/>
1122 - <table>bsth_c_line_information</table> 1161 + <table>bsth_c_car_park</table>
1123 <orderby/> 1162 <orderby/>
1124 <fail_on_multiple>N</fail_on_multiple> 1163 <fail_on_multiple>N</fail_on_multiple>
1125 <eat_row_on_failure>N</eat_row_on_failure> 1164 <eat_row_on_failure>N</eat_row_on_failure>
1126 <key> 1165 <key>
1127 - <name>xlid</name>  
1128 - <field>line</field> 1166 + <name>tccname_</name>
  1167 + <field>park_name</field>
1129 <condition>&#x3d;</condition> 1168 <condition>&#x3d;</condition>
1130 <name2/> 1169 <name2/>
1131 </key> 1170 </key>
1132 <value> 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 <default/> 1174 <default/>
1142 - <type>Number</type> 1175 + <type>Integer</type>
1143 </value> 1176 </value>
1144 </lookup> 1177 </lookup>
1145 <cluster_schema/> 1178 <cluster_schema/>
1146 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1182 <draw>Y</draw>
1150 </GUI> 1183 </GUI>
1151 </step> 1184 </step>
1152 1185
1153 <step> 1186 <step>
1154 - <name>&#x67e5;&#x627e;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;</name> 1187 + <name>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;2</name>
1155 <type>DBLookup</type> 1188 <type>DBLookup</type>
1156 <description/> 1189 <description/>
1157 <distribute>Y</distribute> 1190 <distribute>Y</distribute>
@@ -1167,36 +1200,18 @@ @@ -1167,36 +1200,18 @@
1167 <cache_size>0</cache_size> 1200 <cache_size>0</cache_size>
1168 <lookup> 1201 <lookup>
1169 <schema/> 1202 <schema/>
1170 - <table>bsth_c_stationroute</table> 1203 + <table>bsth_c_car_park</table>
1171 <orderby/> 1204 <orderby/>
1172 <fail_on_multiple>N</fail_on_multiple> 1205 <fail_on_multiple>N</fail_on_multiple>
1173 <eat_row_on_failure>N</eat_row_on_failure> 1206 <eat_row_on_failure>N</eat_row_on_failure>
1174 <key> 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 <condition>&#x3d;</condition> 1210 <condition>&#x3d;</condition>
1190 <name2/> 1211 <name2/>
1191 </key> 1212 </key>
1192 <value> 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 <rename>zdzid</rename> 1215 <rename>zdzid</rename>
1201 <default/> 1216 <default/>
1202 <type>Integer</type> 1217 <type>Integer</type>
@@ -1204,14 +1219,14 @@ @@ -1204,14 +1219,14 @@
1204 </lookup> 1219 </lookup>
1205 <cluster_schema/> 1220 <cluster_schema/>
1206 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1224 <draw>Y</draw>
1210 </GUI> 1225 </GUI>
1211 </step> 1226 </step>
1212 1227
1213 <step> 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 <type>DBLookup</type> 1230 <type>DBLookup</type>
1216 <description/> 1231 <description/>
1217 <distribute>Y</distribute> 1232 <distribute>Y</distribute>
@@ -1238,20 +1253,20 @@ @@ -1238,20 +1253,20 @@
1238 <name2/> 1253 <name2/>
1239 </key> 1254 </key>
1240 <key> 1255 <key>
1241 - <name>qdzname</name> 1256 + <name>zdzname</name>
1242 <field>station_name</field> 1257 <field>station_name</field>
1243 <condition>&#x3d;</condition> 1258 <condition>&#x3d;</condition>
1244 <name2/> 1259 <name2/>
1245 </key> 1260 </key>
1246 <key> 1261 <key>
1247 - <name>sendZdtype</name> 1262 + <name>endZdtype</name>
1248 <field>station_mark</field> 1263 <field>station_mark</field>
1249 <condition>&#x3d;</condition> 1264 <condition>&#x3d;</condition>
1250 <name2/> 1265 <name2/>
1251 </key> 1266 </key>
1252 <value> 1267 <value>
1253 <name>station</name> 1268 <name>station</name>
1254 - <rename>qdzid</rename> 1269 + <rename>zdzid</rename>
1255 <default/> 1270 <default/>
1256 <type>Integer</type> 1271 <type>Integer</type>
1257 </value> 1272 </value>
@@ -1264,14 +1279,14 @@ @@ -1264,14 +1279,14 @@
1264 </lookup> 1279 </lookup>
1265 <cluster_schema/> 1280 <cluster_schema/>
1266 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1284 <draw>Y</draw>
1270 </GUI> 1285 </GUI>
1271 </step> 1286 </step>
1272 1287
1273 <step> 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 <type>DBLookup</type> 1290 <type>DBLookup</type>
1276 <description/> 1291 <description/>
1277 <distribute>Y</distribute> 1292 <distribute>Y</distribute>
@@ -1287,7 +1302,7 @@ @@ -1287,7 +1302,7 @@
1287 <cache_size>0</cache_size> 1302 <cache_size>0</cache_size>
1288 <lookup> 1303 <lookup>
1289 <schema/> 1304 <schema/>
1290 - <table>bsth_c_s_gbi</table> 1305 + <table>bsth_c_s_ttinfo</table>
1291 <orderby/> 1306 <orderby/>
1292 <fail_on_multiple>N</fail_on_multiple> 1307 <fail_on_multiple>N</fail_on_multiple>
1293 <eat_row_on_failure>N</eat_row_on_failure> 1308 <eat_row_on_failure>N</eat_row_on_failure>
@@ -1298,28 +1313,34 @@ @@ -1298,28 +1313,34 @@
1298 <name2/> 1313 <name2/>
1299 </key> 1314 </key>
1300 <key> 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 <condition>&#x3d;</condition> 1324 <condition>&#x3d;</condition>
1304 <name2/> 1325 <name2/>
1305 </key> 1326 </key>
1306 <value> 1327 <value>
1307 <name>id</name> 1328 <name>id</name>
1308 - <rename>lpid</rename> 1329 + <rename>ttid</rename>
1309 <default/> 1330 <default/>
1310 <type>Integer</type> 1331 <type>Integer</type>
1311 </value> 1332 </value>
1312 </lookup> 1333 </lookup>
1313 <cluster_schema/> 1334 <cluster_schema/>
1314 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1338 <draw>Y</draw>
1318 </GUI> 1339 </GUI>
1319 </step> 1340 </step>
1320 1341
1321 <step> 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 <type>DBLookup</type> 1344 <type>DBLookup</type>
1324 <description/> 1345 <description/>
1325 <distribute>Y</distribute> 1346 <distribute>Y</distribute>
@@ -1335,7 +1356,7 @@ @@ -1335,7 +1356,7 @@
1335 <cache_size>0</cache_size> 1356 <cache_size>0</cache_size>
1336 <lookup> 1357 <lookup>
1337 <schema/> 1358 <schema/>
1338 - <table>bsth_c_stationroute</table> 1359 + <table>bsth_c_line_information</table>
1339 <orderby/> 1360 <orderby/>
1340 <fail_on_multiple>N</fail_on_multiple> 1361 <fail_on_multiple>N</fail_on_multiple>
1341 <eat_row_on_failure>N</eat_row_on_failure> 1362 <eat_row_on_failure>N</eat_row_on_failure>
@@ -1345,35 +1366,41 @@ @@ -1345,35 +1366,41 @@
1345 <condition>&#x3d;</condition> 1366 <condition>&#x3d;</condition>
1346 <name2/> 1367 <name2/>
1347 </key> 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 <value> 1369 <value>
1361 - <name>directions</name>  
1362 - <rename>sxx</rename> 1370 + <name>up_mileage</name>
  1371 + <rename>up_mileage</rename>
1363 <default/> 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 </value> 1392 </value>
1366 </lookup> 1393 </lookup>
1367 <cluster_schema/> 1394 <cluster_schema/>
1368 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1398 <draw>Y</draw>
1372 </GUI> 1399 </GUI>
1373 </step> 1400 </step>
1374 1401
1375 <step> 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 <type>DBLookup</type> 1404 <type>DBLookup</type>
1378 <description/> 1405 <description/>
1379 <distribute>Y</distribute> 1406 <distribute>Y</distribute>
@@ -1389,46 +1416,34 @@ @@ -1389,46 +1416,34 @@
1389 <cache_size>0</cache_size> 1416 <cache_size>0</cache_size>
1390 <lookup> 1417 <lookup>
1391 <schema/> 1418 <schema/>
1392 - <table>bsth_c_stationroute</table> 1419 + <table>bsth_c_line</table>
1393 <orderby/> 1420 <orderby/>
1394 <fail_on_multiple>N</fail_on_multiple> 1421 <fail_on_multiple>N</fail_on_multiple>
1395 <eat_row_on_failure>N</eat_row_on_failure> 1422 <eat_row_on_failure>N</eat_row_on_failure>
1396 <key> 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 <condition>&#x3d;</condition> 1426 <condition>&#x3d;</condition>
1412 <name2/> 1427 <name2/>
1413 </key> 1428 </key>
1414 <value> 1429 <value>
1415 - <name>station</name>  
1416 - <rename>qdzid</rename> 1430 + <name>id</name>
  1431 + <rename>xlid</rename>
1417 <default/> 1432 <default/>
1418 <type>Integer</type> 1433 <type>Integer</type>
1419 </value> 1434 </value>
1420 </lookup> 1435 </lookup>
1421 <cluster_schema/> 1436 <cluster_schema/>
1422 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1440 <draw>Y</draw>
1426 </GUI> 1441 </GUI>
1427 </step> 1442 </step>
1428 1443
1429 <step> 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 <description/> 1447 <description/>
1433 <distribute>Y</distribute> 1448 <distribute>Y</distribute>
1434 <custom_distribution/> 1449 <custom_distribution/>
@@ -1437,34 +1452,46 @@ @@ -1437,34 +1452,46 @@
1437 <method>none</method> 1452 <method>none</method>
1438 <schema_name/> 1453 <schema_name/>
1439 </partitioning> 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 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1488 <draw>Y</draw>
1462 </GUI> 1489 </GUI>
1463 </step> 1490 </step>
1464 1491
1465 <step> 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 <description/> 1495 <description/>
1469 <distribute>Y</distribute> 1496 <distribute>Y</distribute>
1470 <custom_distribution/> 1497 <custom_distribution/>
@@ -1473,17 +1500,46 @@ @@ -1473,17 +1500,46 @@
1473 <method>none</method> 1500 <method>none</method>
1474 <schema_name/> 1501 <schema_name/>
1475 </partitioning> 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 <cluster_schema/> 1532 <cluster_schema/>
1477 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1536 <draw>Y</draw>
1481 </GUI> 1537 </GUI>
1482 </step> 1538 </step>
1483 1539
1484 <step> 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 <description/> 1543 <description/>
1488 <distribute>Y</distribute> 1544 <distribute>Y</distribute>
1489 <custom_distribution/> 1545 <custom_distribution/>
@@ -1492,32 +1548,58 @@ @@ -1492,32 +1548,58 @@
1492 <method>none</method> 1548 <method>none</method>
1493 <schema_name/> 1549 <schema_name/>
1494 </partitioning> 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 <cluster_schema/> 1592 <cluster_schema/>
1511 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1596 <draw>Y</draw>
1515 </GUI> 1597 </GUI>
1516 </step> 1598 </step>
1517 1599
1518 <step> 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 <description/> 1603 <description/>
1522 <distribute>Y</distribute> 1604 <distribute>Y</distribute>
1523 <custom_distribution/> 1605 <custom_distribution/>
@@ -1526,29 +1608,58 @@ @@ -1526,29 +1608,58 @@
1526 <method>none</method> 1608 <method>none</method>
1527 <schema_name/> 1609 <schema_name/>
1528 </partitioning> 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 <cluster_schema/> 1652 <cluster_schema/>
1542 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1656 <draw>Y</draw>
1546 </GUI> 1657 </GUI>
1547 </step> 1658 </step>
1548 1659
1549 <step> 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 <description/> 1663 <description/>
1553 <distribute>Y</distribute> 1664 <distribute>Y</distribute>
1554 <custom_distribution/> 1665 <custom_distribution/>
@@ -1557,18 +1668,46 @@ @@ -1557,18 +1668,46 @@
1557 <method>none</method> 1668 <method>none</method>
1558 <schema_name/> 1669 <schema_name/>
1559 </partitioning> 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 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1704 <draw>Y</draw>
1566 </GUI> 1705 </GUI>
1567 </step> 1706 </step>
1568 1707
1569 <step> 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 <description/> 1711 <description/>
1573 <distribute>Y</distribute> 1712 <distribute>Y</distribute>
1574 <custom_distribution/> 1713 <custom_distribution/>
@@ -1577,54 +1716,52 @@ @@ -1577,54 +1716,52 @@
1577 <method>none</method> 1716 <method>none</method>
1578 <schema_name/> 1717 <schema_name/>
1579 </partitioning> 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 <cluster_schema/> 1754 <cluster_schema/>
1618 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1758 <draw>Y</draw>
1622 </GUI> 1759 </GUI>
1623 </step> 1760 </step>
1624 1761
1625 <step> 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 <description/> 1765 <description/>
1629 <distribute>Y</distribute> 1766 <distribute>Y</distribute>
1630 <custom_distribution/> 1767 <custom_distribution/>
@@ -1633,54 +1770,52 @@ @@ -1633,54 +1770,52 @@
1633 <method>none</method> 1770 <method>none</method>
1634 <schema_name/> 1771 <schema_name/>
1635 </partitioning> 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 <cluster_schema/> 1808 <cluster_schema/>
1674 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1812 <draw>Y</draw>
1678 </GUI> 1813 </GUI>
1679 </step> 1814 </step>
1680 1815
1681 <step> 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 <description/> 1819 <description/>
1685 <distribute>Y</distribute> 1820 <distribute>Y</distribute>
1686 <custom_distribution/> 1821 <custom_distribution/>
@@ -1689,54 +1824,34 @@ @@ -1689,54 +1824,34 @@
1689 <method>none</method> 1824 <method>none</method>
1690 <schema_name/> 1825 <schema_name/>
1691 </partitioning> 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 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1848 <draw>Y</draw>
1734 </GUI> 1849 </GUI>
1735 </step> 1850 </step>
1736 1851
1737 <step> 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 <description/> 1855 <description/>
1741 <distribute>Y</distribute> 1856 <distribute>Y</distribute>
1742 <custom_distribution/> 1857 <custom_distribution/>
@@ -1745,48 +1860,17 @@ @@ -1745,48 +1860,17 @@
1745 <method>none</method> 1860 <method>none</method>
1746 <schema_name/> 1861 <schema_name/>
1747 </partitioning> 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 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1867 <draw>Y</draw>
1784 </GUI> 1868 </GUI>
1785 </step> 1869 </step>
1786 1870
1787 <step> 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 <description/> 1874 <description/>
1791 <distribute>Y</distribute> 1875 <distribute>Y</distribute>
1792 <custom_distribution/> 1876 <custom_distribution/>
@@ -1795,30 +1879,32 @@ @@ -1795,30 +1879,32 @@
1795 <method>none</method> 1879 <method>none</method>
1796 <schema_name/> 1880 <schema_name/>
1797 </partitioning> 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 <cluster_schema/> 1897 <cluster_schema/>
1812 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1901 <draw>Y</draw>
1816 </GUI> 1902 </GUI>
1817 </step> 1903 </step>
1818 1904
1819 <step> 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 <description/> 1908 <description/>
1823 <distribute>Y</distribute> 1909 <distribute>Y</distribute>
1824 <custom_distribution/> 1910 <custom_distribution/>
@@ -1827,29 +1913,29 @@ @@ -1827,29 +1913,29 @@
1827 <method>none</method> 1913 <method>none</method>
1828 <schema_name/> 1914 <schema_name/>
1829 </partitioning> 1915 </partitioning>
  1916 + <all_rows>Y</all_rows>
  1917 + <ignore_aggregate>N</ignore_aggregate>
  1918 + <field_ignore/>
1830 <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory> 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 <cluster_schema/> 1928 <cluster_schema/>
1843 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 1932 <draw>Y</draw>
1847 </GUI> 1933 </GUI>
1848 </step> 1934 </step>
1849 1935
1850 <step> 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 <description/> 1939 <description/>
1854 <distribute>Y</distribute> 1940 <distribute>Y</distribute>
1855 <custom_distribution/> 1941 <custom_distribution/>
@@ -1858,27 +1944,18 @@ @@ -1858,27 +1944,18 @@
1858 <method>none</method> 1944 <method>none</method>
1859 <schema_name/> 1945 <schema_name/>
1860 </partitioning> 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 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 1949 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1873 - <xloc>571</xloc> 1950 + <xloc>248</xloc>
1874 <yloc>44</yloc> 1951 <yloc>44</yloc>
1875 <draw>Y</draw> 1952 <draw>Y</draw>
1876 </GUI> 1953 </GUI>
1877 </step> 1954 </step>
1878 1955
1879 <step> 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 <description/> 1959 <description/>
1883 <distribute>Y</distribute> 1960 <distribute>Y</distribute>
1884 <custom_distribution/> 1961 <custom_distribution/>
@@ -1887,40 +1964,54 @@ @@ -1887,40 +1964,54 @@
1887 <method>none</method> 1964 <method>none</method>
1888 <schema_name/> 1965 <schema_name/>
1889 </partitioning> 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 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 2008 <draw>Y</draw>
1918 </GUI> 2009 </GUI>
1919 </step> 2010 </step>
1920 2011
1921 <step> 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 <description/> 2015 <description/>
1925 <distribute>Y</distribute> 2016 <distribute>Y</distribute>
1926 <custom_distribution/> 2017 <custom_distribution/>
@@ -1929,17 +2020,54 @@ @@ -1929,17 +2020,54 @@
1929 <method>none</method> 2020 <method>none</method>
1930 <schema_name/> 2021 <schema_name/>
1931 </partitioning> 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 <cluster_schema/> 2060 <cluster_schema/>
1933 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 2064 <draw>Y</draw>
1937 </GUI> 2065 </GUI>
1938 </step> 2066 </step>
1939 2067
1940 <step> 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 <description/> 2071 <description/>
1944 <distribute>Y</distribute> 2072 <distribute>Y</distribute>
1945 <custom_distribution/> 2073 <custom_distribution/>
@@ -1948,114 +2076,136 @@ @@ -1948,114 +2076,136 @@
1948 <method>none</method> 2076 <method>none</method>
1949 <schema_name/> 2077 <schema_name/>
1950 </partitioning> 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 <rename>jhlc</rename> 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 <cluster_schema/> 2198 <cluster_schema/>
2049 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 2202 <draw>Y</draw>
2053 </GUI> 2203 </GUI>
2054 </step> 2204 </step>
2055 2205
2056 <step> 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 <description/> 2209 <description/>
2060 <distribute>Y</distribute> 2210 <distribute>Y</distribute>
2061 <custom_distribution/> 2211 <custom_distribution/>
@@ -2064,114 +2214,29 @@ @@ -2064,114 +2214,29 @@
2064 <method>none</method> 2214 <method>none</method>
2065 <schema_name/> 2215 <schema_name/>
2066 </partitioning> 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 <cluster_schema/> 2229 <cluster_schema/>
2165 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 2233 <draw>Y</draw>
2169 </GUI> 2234 </GUI>
2170 </step> 2235 </step>
2171 2236
2172 <step> 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 <description/> 2240 <description/>
2176 <distribute>Y</distribute> 2241 <distribute>Y</distribute>
2177 <custom_distribution/> 2242 <custom_distribution/>
@@ -2180,107 +2245,81 @@ @@ -2180,107 +2245,81 @@
2180 <method>none</method> 2245 <method>none</method>
2181 <schema_name/> 2246 <schema_name/>
2182 </partitioning> 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 <cluster_schema/> 2258 <cluster_schema/>
2281 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 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 <draw>Y</draw> 2323 <draw>Y</draw>
2285 </GUI> 2324 </GUI>
2286 </step> 2325 </step>
src/main/resources/datatools/ktrs/ttinfodetailoutputforedit.ktr
@@ -309,8 +309,8 @@ @@ -309,8 +309,8 @@
309 <fields> 309 <fields>
310 <field> 310 <field>
311 <name>lp</name> 311 <name>lp</name>
312 - <type>Integer</type>  
313 - <format>0</format> 312 + <type>String</type>
  313 + <format/>
314 </field> 314 </field>
315 <field> 315 <field>
316 <name>fcno1_id</name> 316 <name>fcno1_id</name>
@@ -333,6 +333,16 @@ @@ -333,6 +333,16 @@
333 <format/> 333 <format/>
334 </field> 334 </field>
335 <field> 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 <name>fcno2_id</name> 346 <name>fcno2_id</name>
337 <type>String</type> 347 <type>String</type>
338 <format/> 348 <format/>
@@ -353,6 +363,16 @@ @@ -353,6 +363,16 @@
353 <format/> 363 <format/>
354 </field> 364 </field>
355 <field> 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 <name>fcno3_id</name> 376 <name>fcno3_id</name>
357 <type>String</type> 377 <type>String</type>
358 <format/> 378 <format/>
@@ -373,6 +393,16 @@ @@ -373,6 +393,16 @@
373 <format/> 393 <format/>
374 </field> 394 </field>
375 <field> 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 <name>fcno4_id</name> 406 <name>fcno4_id</name>
377 <type>String</type> 407 <type>String</type>
378 <format/> 408 <format/>
@@ -393,6 +423,16 @@ @@ -393,6 +423,16 @@
393 <format/> 423 <format/>
394 </field> 424 </field>
395 <field> 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 <name>fcno5_id</name> 436 <name>fcno5_id</name>
397 <type>String</type> 437 <type>String</type>
398 <format/> 438 <format/>
@@ -413,6 +453,16 @@ @@ -413,6 +453,16 @@
413 <format/> 453 <format/>
414 </field> 454 </field>
415 <field> 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 <name>fcno6_id</name> 466 <name>fcno6_id</name>
417 <type>String</type> 467 <type>String</type>
418 <format/> 468 <format/>
@@ -433,6 +483,16 @@ @@ -433,6 +483,16 @@
433 <format/> 483 <format/>
434 </field> 484 </field>
435 <field> 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 <name>fcno7_id</name> 496 <name>fcno7_id</name>
437 <type>String</type> 497 <type>String</type>
438 <format/> 498 <format/>
@@ -453,6 +513,16 @@ @@ -453,6 +513,16 @@
453 <format/> 513 <format/>
454 </field> 514 </field>
455 <field> 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 <name>fcno8_id</name> 526 <name>fcno8_id</name>
457 <type>String</type> 527 <type>String</type>
458 <format/> 528 <format/>
@@ -473,6 +543,16 @@ @@ -473,6 +543,16 @@
473 <format/> 543 <format/>
474 </field> 544 </field>
475 <field> 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 <name>fcno9_id</name> 556 <name>fcno9_id</name>
477 <type>String</type> 557 <type>String</type>
478 <format/> 558 <format/>
@@ -493,6 +573,16 @@ @@ -493,6 +573,16 @@
493 <format/> 573 <format/>
494 </field> 574 </field>
495 <field> 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 <name>fcno10_id</name> 586 <name>fcno10_id</name>
497 <type>String</type> 587 <type>String</type>
498 <format/> 588 <format/>
@@ -513,6 +603,16 @@ @@ -513,6 +603,16 @@
513 <format/> 603 <format/>
514 </field> 604 </field>
515 <field> 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 <name>fcno11_id</name> 616 <name>fcno11_id</name>
517 <type>String</type> 617 <type>String</type>
518 <format/> 618 <format/>
@@ -533,6 +633,16 @@ @@ -533,6 +633,16 @@
533 <format/> 633 <format/>
534 </field> 634 </field>
535 <field> 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 <name>fcno12_id</name> 646 <name>fcno12_id</name>
537 <type>String</type> 647 <type>String</type>
538 <format/> 648 <format/>
@@ -553,6 +663,16 @@ @@ -553,6 +663,16 @@
553 <format/> 663 <format/>
554 </field> 664 </field>
555 <field> 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 <name>fcno13_id</name> 676 <name>fcno13_id</name>
557 <type>String</type> 677 <type>String</type>
558 <format/> 678 <format/>
@@ -573,6 +693,16 @@ @@ -573,6 +693,16 @@
573 <format/> 693 <format/>
574 </field> 694 </field>
575 <field> 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 <name>fcno14_id</name> 706 <name>fcno14_id</name>
577 <type>String</type> 707 <type>String</type>
578 <format/> 708 <format/>
@@ -593,6 +723,16 @@ @@ -593,6 +723,16 @@
593 <format/> 723 <format/>
594 </field> 724 </field>
595 <field> 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 <name>fcno15_id</name> 736 <name>fcno15_id</name>
597 <type>String</type> 737 <type>String</type>
598 <format/> 738 <format/>
@@ -613,6 +753,16 @@ @@ -613,6 +753,16 @@
613 <format/> 753 <format/>
614 </field> 754 </field>
615 <field> 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 <name>fcno16_id</name> 766 <name>fcno16_id</name>
617 <type>String</type> 767 <type>String</type>
618 <format/> 768 <format/>
@@ -633,6 +783,16 @@ @@ -633,6 +783,16 @@
633 <format/> 783 <format/>
634 </field> 784 </field>
635 <field> 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 <name>fcno17_id</name> 796 <name>fcno17_id</name>
637 <type>String</type> 797 <type>String</type>
638 <format/> 798 <format/>
@@ -653,6 +813,16 @@ @@ -653,6 +813,16 @@
653 <format/> 813 <format/>
654 </field> 814 </field>
655 <field> 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 <name>fcno18_id</name> 826 <name>fcno18_id</name>
657 <type>String</type> 827 <type>String</type>
658 <format/> 828 <format/>
@@ -673,6 +843,16 @@ @@ -673,6 +843,16 @@
673 <format/> 843 <format/>
674 </field> 844 </field>
675 <field> 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 <name>fcno19_id</name> 856 <name>fcno19_id</name>
677 <type>String</type> 857 <type>String</type>
678 <format/> 858 <format/>
@@ -693,6 +873,16 @@ @@ -693,6 +873,16 @@
693 <format/> 873 <format/>
694 </field> 874 </field>
695 <field> 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 <name>fcno20_id</name> 886 <name>fcno20_id</name>
697 <type>String</type> 887 <type>String</type>
698 <format/> 888 <format/>
@@ -713,6 +903,16 @@ @@ -713,6 +903,16 @@
713 <format/> 903 <format/>
714 </field> 904 </field>
715 <field> 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 <name>fcno21_id</name> 916 <name>fcno21_id</name>
717 <type>String</type> 917 <type>String</type>
718 <format/> 918 <format/>
@@ -733,6 +933,16 @@ @@ -733,6 +933,16 @@
733 <format/> 933 <format/>
734 </field> 934 </field>
735 <field> 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 <name>fcno22_id</name> 946 <name>fcno22_id</name>
737 <type>String</type> 947 <type>String</type>
738 <format/> 948 <format/>
@@ -753,6 +963,16 @@ @@ -753,6 +963,16 @@
753 <format/> 963 <format/>
754 </field> 964 </field>
755 <field> 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 <name>fcno23_id</name> 976 <name>fcno23_id</name>
757 <type>String</type> 977 <type>String</type>
758 <format/> 978 <format/>
@@ -773,6 +993,16 @@ @@ -773,6 +993,16 @@
773 <format/> 993 <format/>
774 </field> 994 </field>
775 <field> 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 <name>fcno24_id</name> 1006 <name>fcno24_id</name>
777 <type>String</type> 1007 <type>String</type>
778 <format/> 1008 <format/>
@@ -793,6 +1023,16 @@ @@ -793,6 +1023,16 @@
793 <format/> 1023 <format/>
794 </field> 1024 </field>
795 <field> 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 <name>fcno25_id</name> 1036 <name>fcno25_id</name>
797 <type>String</type> 1037 <type>String</type>
798 <format/> 1038 <format/>
@@ -813,6 +1053,16 @@ @@ -813,6 +1053,16 @@
813 <format/> 1053 <format/>
814 </field> 1054 </field>
815 <field> 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 <name>fcno26_id</name> 1066 <name>fcno26_id</name>
817 <type>String</type> 1067 <type>String</type>
818 <format/> 1068 <format/>
@@ -833,6 +1083,16 @@ @@ -833,6 +1083,16 @@
833 <format/> 1083 <format/>
834 </field> 1084 </field>
835 <field> 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 <name>fcno27_id</name> 1096 <name>fcno27_id</name>
837 <type>String</type> 1097 <type>String</type>
838 <format/> 1098 <format/>
@@ -853,6 +1113,16 @@ @@ -853,6 +1113,16 @@
853 <format/> 1113 <format/>
854 </field> 1114 </field>
855 <field> 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 <name>fcno28_id</name> 1126 <name>fcno28_id</name>
857 <type>String</type> 1127 <type>String</type>
858 <format/> 1128 <format/>
@@ -873,6 +1143,16 @@ @@ -873,6 +1143,16 @@
873 <format/> 1143 <format/>
874 </field> 1144 </field>
875 <field> 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 <name>fcno29_id</name> 1156 <name>fcno29_id</name>
877 <type>String</type> 1157 <type>String</type>
878 <format/> 1158 <format/>
@@ -893,6 +1173,16 @@ @@ -893,6 +1173,16 @@
893 <format/> 1173 <format/>
894 </field> 1174 </field>
895 <field> 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 <name>fcno30_id</name> 1186 <name>fcno30_id</name>
897 <type>String</type> 1187 <type>String</type>
898 <format/> 1188 <format/>
@@ -912,6 +1202,16 @@ @@ -912,6 +1202,16 @@
912 <type>String</type> 1202 <type>String</type>
913 <format/> 1203 <format/>
914 </field> 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 </fields> 1215 </fields>
916 <custom> 1216 <custom>
917 <header_font_name>arial</header_font_name> 1217 <header_font_name>arial</header_font_name>
@@ -1013,9 +1313,9 @@ @@ -1013,9 +1313,9 @@
1013 <target_aggregation_type>-</target_aggregation_type> 1313 <target_aggregation_type>-</target_aggregation_type>
1014 </field> 1314 </field>
1015 <field> 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 <target_type>String</target_type> 1319 <target_type>String</target_type>
1020 <target_format/> 1320 <target_format/>
1021 <target_length>-1</target_length> 1321 <target_length>-1</target_length>
@@ -1027,9 +1327,9 @@ @@ -1027,9 +1327,9 @@
1027 <target_aggregation_type>-</target_aggregation_type> 1327 <target_aggregation_type>-</target_aggregation_type>
1028 </field> 1328 </field>
1029 <field> 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 <target_type>String</target_type> 1333 <target_type>String</target_type>
1034 <target_format/> 1334 <target_format/>
1035 <target_length>-1</target_length> 1335 <target_length>-1</target_length>
@@ -1041,9 +1341,9 @@ @@ -1041,9 +1341,9 @@
1041 <target_aggregation_type>-</target_aggregation_type> 1341 <target_aggregation_type>-</target_aggregation_type>
1042 </field> 1342 </field>
1043 <field> 1343 <field>
1044 - <field_name>fczdName</field_name> 1344 + <field_name>id</field_name>
1045 <key_value>2</key_value> 1345 <key_value>2</key_value>
1046 - <target_name>fcno2_zdname</target_name> 1346 + <target_name>fcno2_id</target_name>
1047 <target_type>String</target_type> 1347 <target_type>String</target_type>
1048 <target_format/> 1348 <target_format/>
1049 <target_length>-1</target_length> 1349 <target_length>-1</target_length>
@@ -1055,9 +1355,9 @@ @@ -1055,9 +1355,9 @@
1055 <target_aggregation_type>-</target_aggregation_type> 1355 <target_aggregation_type>-</target_aggregation_type>
1056 </field> 1356 </field>
1057 <field> 1357 <field>
1058 - <field_name>bc_type</field_name> 1358 + <field_name>fcsj</field_name>
1059 <key_value>2</key_value> 1359 <key_value>2</key_value>
1060 - <target_name>fcno2_bctype</target_name> 1360 + <target_name>fcno2_fcsj</target_name>
1061 <target_type>String</target_type> 1361 <target_type>String</target_type>
1062 <target_format/> 1362 <target_format/>
1063 <target_length>-1</target_length> 1363 <target_length>-1</target_length>
@@ -1069,9 +1369,9 @@ @@ -1069,9 +1369,9 @@
1069 <target_aggregation_type>-</target_aggregation_type> 1369 <target_aggregation_type>-</target_aggregation_type>
1070 </field> 1370 </field>
1071 <field> 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 <target_type>String</target_type> 1375 <target_type>String</target_type>
1076 <target_format/> 1376 <target_format/>
1077 <target_length>-1</target_length> 1377 <target_length>-1</target_length>
@@ -1083,9 +1383,9 @@ @@ -1083,9 +1383,9 @@
1083 <target_aggregation_type>-</target_aggregation_type> 1383 <target_aggregation_type>-</target_aggregation_type>
1084 </field> 1384 </field>
1085 <field> 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 <target_type>String</target_type> 1389 <target_type>String</target_type>
1090 <target_format/> 1390 <target_format/>
1091 <target_length>-1</target_length> 1391 <target_length>-1</target_length>
@@ -1097,9 +1397,9 @@ @@ -1097,9 +1397,9 @@
1097 <target_aggregation_type>-</target_aggregation_type> 1397 <target_aggregation_type>-</target_aggregation_type>
1098 </field> 1398 </field>
1099 <field> 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 <target_type>String</target_type> 1403 <target_type>String</target_type>
1104 <target_format/> 1404 <target_format/>
1105 <target_length>-1</target_length> 1405 <target_length>-1</target_length>
@@ -1111,9 +1411,9 @@ @@ -1111,9 +1411,9 @@
1111 <target_aggregation_type>-</target_aggregation_type> 1411 <target_aggregation_type>-</target_aggregation_type>
1112 </field> 1412 </field>
1113 <field> 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 <target_type>String</target_type> 1417 <target_type>String</target_type>
1118 <target_format/> 1418 <target_format/>
1119 <target_length>-1</target_length> 1419 <target_length>-1</target_length>
@@ -1126,8 +1426,8 @@ @@ -1126,8 +1426,8 @@
1126 </field> 1426 </field>
1127 <field> 1427 <field>
1128 <field_name>id</field_name> 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 <target_type>String</target_type> 1431 <target_type>String</target_type>
1132 <target_format/> 1432 <target_format/>
1133 <target_length>-1</target_length> 1433 <target_length>-1</target_length>
@@ -1140,8 +1440,8 @@ @@ -1140,8 +1440,8 @@
1140 </field> 1440 </field>
1141 <field> 1441 <field>
1142 <field_name>fcsj</field_name> 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 <target_type>String</target_type> 1445 <target_type>String</target_type>
1146 <target_format/> 1446 <target_format/>
1147 <target_length>-1</target_length> 1447 <target_length>-1</target_length>
@@ -1154,8 +1454,8 @@ @@ -1154,8 +1454,8 @@
1154 </field> 1454 </field>
1155 <field> 1455 <field>
1156 <field_name>fczdName</field_name> 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 <target_type>String</target_type> 1459 <target_type>String</target_type>
1160 <target_format/> 1460 <target_format/>
1161 <target_length>-1</target_length> 1461 <target_length>-1</target_length>
@@ -1168,8 +1468,8 @@ @@ -1168,8 +1468,8 @@
1168 </field> 1468 </field>
1169 <field> 1469 <field>
1170 <field_name>bc_type</field_name> 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 <target_type>String</target_type> 1473 <target_type>String</target_type>
1174 <target_format/> 1474 <target_format/>
1175 <target_length>-1</target_length> 1475 <target_length>-1</target_length>
@@ -1181,9 +1481,9 @@ @@ -1181,9 +1481,9 @@
1181 <target_aggregation_type>-</target_aggregation_type> 1481 <target_aggregation_type>-</target_aggregation_type>
1182 </field> 1482 </field>
1183 <field> 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 <target_type>String</target_type> 1487 <target_type>String</target_type>
1188 <target_format/> 1488 <target_format/>
1189 <target_length>-1</target_length> 1489 <target_length>-1</target_length>
@@ -1195,9 +1495,9 @@ @@ -1195,9 +1495,9 @@
1195 <target_aggregation_type>-</target_aggregation_type> 1495 <target_aggregation_type>-</target_aggregation_type>
1196 </field> 1496 </field>
1197 <field> 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 <target_type>String</target_type> 1501 <target_type>String</target_type>
1202 <target_format/> 1502 <target_format/>
1203 <target_length>-1</target_length> 1503 <target_length>-1</target_length>
@@ -1209,9 +1509,9 @@ @@ -1209,9 +1509,9 @@
1209 <target_aggregation_type>-</target_aggregation_type> 1509 <target_aggregation_type>-</target_aggregation_type>
1210 </field> 1510 </field>
1211 <field> 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 <target_type>String</target_type> 1515 <target_type>String</target_type>
1216 <target_format/> 1516 <target_format/>
1217 <target_length>-1</target_length> 1517 <target_length>-1</target_length>
@@ -1223,9 +1523,9 @@ @@ -1223,9 +1523,9 @@
1223 <target_aggregation_type>-</target_aggregation_type> 1523 <target_aggregation_type>-</target_aggregation_type>
1224 </field> 1524 </field>
1225 <field> 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 <target_type>String</target_type> 1529 <target_type>String</target_type>
1230 <target_format/> 1530 <target_format/>
1231 <target_length>-1</target_length> 1531 <target_length>-1</target_length>
@@ -1237,9 +1537,9 @@ @@ -1237,9 +1537,9 @@
1237 <target_aggregation_type>-</target_aggregation_type> 1537 <target_aggregation_type>-</target_aggregation_type>
1238 </field> 1538 </field>
1239 <field> 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 <target_type>String</target_type> 1543 <target_type>String</target_type>
1244 <target_format/> 1544 <target_format/>
1245 <target_length>-1</target_length> 1545 <target_length>-1</target_length>
@@ -1251,9 +1551,9 @@ @@ -1251,9 +1551,9 @@
1251 <target_aggregation_type>-</target_aggregation_type> 1551 <target_aggregation_type>-</target_aggregation_type>
1252 </field> 1552 </field>
1253 <field> 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 <target_type>String</target_type> 1557 <target_type>String</target_type>
1258 <target_format/> 1558 <target_format/>
1259 <target_length>-1</target_length> 1559 <target_length>-1</target_length>
@@ -1265,9 +1565,9 @@ @@ -1265,9 +1565,9 @@
1265 <target_aggregation_type>-</target_aggregation_type> 1565 <target_aggregation_type>-</target_aggregation_type>
1266 </field> 1566 </field>
1267 <field> 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 <target_type>String</target_type> 1571 <target_type>String</target_type>
1272 <target_format/> 1572 <target_format/>
1273 <target_length>-1</target_length> 1573 <target_length>-1</target_length>
@@ -1279,9 +1579,9 @@ @@ -1279,9 +1579,9 @@
1279 <target_aggregation_type>-</target_aggregation_type> 1579 <target_aggregation_type>-</target_aggregation_type>
1280 </field> 1580 </field>
1281 <field> 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 <target_type>String</target_type> 1585 <target_type>String</target_type>
1286 <target_format/> 1586 <target_format/>
1287 <target_length>-1</target_length> 1587 <target_length>-1</target_length>
@@ -1294,8 +1594,8 @@ @@ -1294,8 +1594,8 @@
1294 </field> 1594 </field>
1295 <field> 1595 <field>
1296 <field_name>id</field_name> 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 <target_type>String</target_type> 1599 <target_type>String</target_type>
1300 <target_format/> 1600 <target_format/>
1301 <target_length>-1</target_length> 1601 <target_length>-1</target_length>
@@ -1308,8 +1608,8 @@ @@ -1308,8 +1608,8 @@
1308 </field> 1608 </field>
1309 <field> 1609 <field>
1310 <field_name>fcsj</field_name> 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 <target_type>String</target_type> 1613 <target_type>String</target_type>
1314 <target_format/> 1614 <target_format/>
1315 <target_length>-1</target_length> 1615 <target_length>-1</target_length>
@@ -1322,8 +1622,8 @@ @@ -1322,8 +1622,8 @@
1322 </field> 1622 </field>
1323 <field> 1623 <field>
1324 <field_name>fczdName</field_name> 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 <target_type>String</target_type> 1627 <target_type>String</target_type>
1328 <target_format/> 1628 <target_format/>
1329 <target_length>-1</target_length> 1629 <target_length>-1</target_length>
@@ -1336,8 +1636,8 @@ @@ -1336,8 +1636,8 @@
1336 </field> 1636 </field>
1337 <field> 1637 <field>
1338 <field_name>bc_type</field_name> 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 <target_type>String</target_type> 1641 <target_type>String</target_type>
1342 <target_format/> 1642 <target_format/>
1343 <target_length>-1</target_length> 1643 <target_length>-1</target_length>
@@ -1349,9 +1649,9 @@ @@ -1349,9 +1649,9 @@
1349 <target_aggregation_type>-</target_aggregation_type> 1649 <target_aggregation_type>-</target_aggregation_type>
1350 </field> 1650 </field>
1351 <field> 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 <target_type>String</target_type> 1655 <target_type>String</target_type>
1356 <target_format/> 1656 <target_format/>
1357 <target_length>-1</target_length> 1657 <target_length>-1</target_length>
@@ -1363,9 +1663,9 @@ @@ -1363,9 +1663,9 @@
1363 <target_aggregation_type>-</target_aggregation_type> 1663 <target_aggregation_type>-</target_aggregation_type>
1364 </field> 1664 </field>
1365 <field> 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 <target_type>String</target_type> 1669 <target_type>String</target_type>
1370 <target_format/> 1670 <target_format/>
1371 <target_length>-1</target_length> 1671 <target_length>-1</target_length>
@@ -1377,9 +1677,9 @@ @@ -1377,9 +1677,9 @@
1377 <target_aggregation_type>-</target_aggregation_type> 1677 <target_aggregation_type>-</target_aggregation_type>
1378 </field> 1678 </field>
1379 <field> 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 <target_type>String</target_type> 1683 <target_type>String</target_type>
1384 <target_format/> 1684 <target_format/>
1385 <target_length>-1</target_length> 1685 <target_length>-1</target_length>
@@ -1391,9 +1691,9 @@ @@ -1391,9 +1691,9 @@
1391 <target_aggregation_type>-</target_aggregation_type> 1691 <target_aggregation_type>-</target_aggregation_type>
1392 </field> 1692 </field>
1393 <field> 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 <target_type>String</target_type> 1697 <target_type>String</target_type>
1398 <target_format/> 1698 <target_format/>
1399 <target_length>-1</target_length> 1699 <target_length>-1</target_length>
@@ -1405,9 +1705,9 @@ @@ -1405,9 +1705,9 @@
1405 <target_aggregation_type>-</target_aggregation_type> 1705 <target_aggregation_type>-</target_aggregation_type>
1406 </field> 1706 </field>
1407 <field> 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 <target_type>String</target_type> 1711 <target_type>String</target_type>
1412 <target_format/> 1712 <target_format/>
1413 <target_length>-1</target_length> 1713 <target_length>-1</target_length>
@@ -1419,9 +1719,9 @@ @@ -1419,9 +1719,9 @@
1419 <target_aggregation_type>-</target_aggregation_type> 1719 <target_aggregation_type>-</target_aggregation_type>
1420 </field> 1720 </field>
1421 <field> 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 <target_type>String</target_type> 1725 <target_type>String</target_type>
1426 <target_format/> 1726 <target_format/>
1427 <target_length>-1</target_length> 1727 <target_length>-1</target_length>
@@ -1433,9 +1733,9 @@ @@ -1433,9 +1733,9 @@
1433 <target_aggregation_type>-</target_aggregation_type> 1733 <target_aggregation_type>-</target_aggregation_type>
1434 </field> 1734 </field>
1435 <field> 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 <target_type>String</target_type> 1739 <target_type>String</target_type>
1440 <target_format/> 1740 <target_format/>
1441 <target_length>-1</target_length> 1741 <target_length>-1</target_length>
@@ -1447,9 +1747,9 @@ @@ -1447,9 +1747,9 @@
1447 <target_aggregation_type>-</target_aggregation_type> 1747 <target_aggregation_type>-</target_aggregation_type>
1448 </field> 1748 </field>
1449 <field> 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 <target_type>String</target_type> 1753 <target_type>String</target_type>
1454 <target_format/> 1754 <target_format/>
1455 <target_length>-1</target_length> 1755 <target_length>-1</target_length>
@@ -1462,8 +1762,8 @@ @@ -1462,8 +1762,8 @@
1462 </field> 1762 </field>
1463 <field> 1763 <field>
1464 <field_name>id</field_name> 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 <target_type>String</target_type> 1767 <target_type>String</target_type>
1468 <target_format/> 1768 <target_format/>
1469 <target_length>-1</target_length> 1769 <target_length>-1</target_length>
@@ -1476,8 +1776,8 @@ @@ -1476,8 +1776,8 @@
1476 </field> 1776 </field>
1477 <field> 1777 <field>
1478 <field_name>fcsj</field_name> 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 <target_type>String</target_type> 1781 <target_type>String</target_type>
1482 <target_format/> 1782 <target_format/>
1483 <target_length>-1</target_length> 1783 <target_length>-1</target_length>
@@ -1490,8 +1790,8 @@ @@ -1490,8 +1790,8 @@
1490 </field> 1790 </field>
1491 <field> 1791 <field>
1492 <field_name>fczdName</field_name> 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 <target_type>String</target_type> 1795 <target_type>String</target_type>
1496 <target_format/> 1796 <target_format/>
1497 <target_length>-1</target_length> 1797 <target_length>-1</target_length>
@@ -1504,8 +1804,8 @@ @@ -1504,8 +1804,8 @@
1504 </field> 1804 </field>
1505 <field> 1805 <field>
1506 <field_name>bc_type</field_name> 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 <target_type>String</target_type> 1809 <target_type>String</target_type>
1510 <target_format/> 1810 <target_format/>
1511 <target_length>-1</target_length> 1811 <target_length>-1</target_length>
@@ -1517,9 +1817,9 @@ @@ -1517,9 +1817,9 @@
1517 <target_aggregation_type>-</target_aggregation_type> 1817 <target_aggregation_type>-</target_aggregation_type>
1518 </field> 1818 </field>
1519 <field> 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 <target_type>String</target_type> 1823 <target_type>String</target_type>
1524 <target_format/> 1824 <target_format/>
1525 <target_length>-1</target_length> 1825 <target_length>-1</target_length>
@@ -1531,9 +1831,9 @@ @@ -1531,9 +1831,9 @@
1531 <target_aggregation_type>-</target_aggregation_type> 1831 <target_aggregation_type>-</target_aggregation_type>
1532 </field> 1832 </field>
1533 <field> 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 <target_type>String</target_type> 1837 <target_type>String</target_type>
1538 <target_format/> 1838 <target_format/>
1539 <target_length>-1</target_length> 1839 <target_length>-1</target_length>
@@ -1545,9 +1845,9 @@ @@ -1545,9 +1845,9 @@
1545 <target_aggregation_type>-</target_aggregation_type> 1845 <target_aggregation_type>-</target_aggregation_type>
1546 </field> 1846 </field>
1547 <field> 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 <target_type>String</target_type> 1851 <target_type>String</target_type>
1552 <target_format/> 1852 <target_format/>
1553 <target_length>-1</target_length> 1853 <target_length>-1</target_length>
@@ -1559,9 +1859,9 @@ @@ -1559,9 +1859,9 @@
1559 <target_aggregation_type>-</target_aggregation_type> 1859 <target_aggregation_type>-</target_aggregation_type>
1560 </field> 1860 </field>
1561 <field> 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 <target_type>String</target_type> 1865 <target_type>String</target_type>
1566 <target_format/> 1866 <target_format/>
1567 <target_length>-1</target_length> 1867 <target_length>-1</target_length>
@@ -1573,9 +1873,9 @@ @@ -1573,9 +1873,9 @@
1573 <target_aggregation_type>-</target_aggregation_type> 1873 <target_aggregation_type>-</target_aggregation_type>
1574 </field> 1874 </field>
1575 <field> 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 <target_type>String</target_type> 1879 <target_type>String</target_type>
1580 <target_format/> 1880 <target_format/>
1581 <target_length>-1</target_length> 1881 <target_length>-1</target_length>
@@ -1587,9 +1887,9 @@ @@ -1587,9 +1887,9 @@
1587 <target_aggregation_type>-</target_aggregation_type> 1887 <target_aggregation_type>-</target_aggregation_type>
1588 </field> 1888 </field>
1589 <field> 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 <target_type>String</target_type> 1893 <target_type>String</target_type>
1594 <target_format/> 1894 <target_format/>
1595 <target_length>-1</target_length> 1895 <target_length>-1</target_length>
@@ -1601,9 +1901,9 @@ @@ -1601,9 +1901,9 @@
1601 <target_aggregation_type>-</target_aggregation_type> 1901 <target_aggregation_type>-</target_aggregation_type>
1602 </field> 1902 </field>
1603 <field> 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 <target_type>String</target_type> 1907 <target_type>String</target_type>
1608 <target_format/> 1908 <target_format/>
1609 <target_length>-1</target_length> 1909 <target_length>-1</target_length>
@@ -1615,9 +1915,9 @@ @@ -1615,9 +1915,9 @@
1615 <target_aggregation_type>-</target_aggregation_type> 1915 <target_aggregation_type>-</target_aggregation_type>
1616 </field> 1916 </field>
1617 <field> 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 <target_type>String</target_type> 1921 <target_type>String</target_type>
1622 <target_format/> 1922 <target_format/>
1623 <target_length>-1</target_length> 1923 <target_length>-1</target_length>
@@ -1630,8 +1930,8 @@ @@ -1630,8 +1930,8 @@
1630 </field> 1930 </field>
1631 <field> 1931 <field>
1632 <field_name>id</field_name> 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 <target_type>String</target_type> 1935 <target_type>String</target_type>
1636 <target_format/> 1936 <target_format/>
1637 <target_length>-1</target_length> 1937 <target_length>-1</target_length>
@@ -1644,8 +1944,8 @@ @@ -1644,8 +1944,8 @@
1644 </field> 1944 </field>
1645 <field> 1945 <field>
1646 <field_name>fcsj</field_name> 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 <target_type>String</target_type> 1949 <target_type>String</target_type>
1650 <target_format/> 1950 <target_format/>
1651 <target_length>-1</target_length> 1951 <target_length>-1</target_length>
@@ -1658,8 +1958,8 @@ @@ -1658,8 +1958,8 @@
1658 </field> 1958 </field>
1659 <field> 1959 <field>
1660 <field_name>fczdName</field_name> 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 <target_type>String</target_type> 1963 <target_type>String</target_type>
1664 <target_format/> 1964 <target_format/>
1665 <target_length>-1</target_length> 1965 <target_length>-1</target_length>
@@ -1672,8 +1972,8 @@ @@ -1672,8 +1972,8 @@
1672 </field> 1972 </field>
1673 <field> 1973 <field>
1674 <field_name>bc_type</field_name> 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 <target_type>String</target_type> 1977 <target_type>String</target_type>
1678 <target_format/> 1978 <target_format/>
1679 <target_length>-1</target_length> 1979 <target_length>-1</target_length>
@@ -1685,9 +1985,9 @@ @@ -1685,9 +1985,9 @@
1685 <target_aggregation_type>-</target_aggregation_type> 1985 <target_aggregation_type>-</target_aggregation_type>
1686 </field> 1986 </field>
1687 <field> 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 <target_type>String</target_type> 1991 <target_type>String</target_type>
1692 <target_format/> 1992 <target_format/>
1693 <target_length>-1</target_length> 1993 <target_length>-1</target_length>
@@ -1699,9 +1999,9 @@ @@ -1699,9 +1999,9 @@
1699 <target_aggregation_type>-</target_aggregation_type> 1999 <target_aggregation_type>-</target_aggregation_type>
1700 </field> 2000 </field>
1701 <field> 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 <target_type>String</target_type> 2005 <target_type>String</target_type>
1706 <target_format/> 2006 <target_format/>
1707 <target_length>-1</target_length> 2007 <target_length>-1</target_length>
@@ -1713,9 +2013,9 @@ @@ -1713,9 +2013,9 @@
1713 <target_aggregation_type>-</target_aggregation_type> 2013 <target_aggregation_type>-</target_aggregation_type>
1714 </field> 2014 </field>
1715 <field> 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 <target_type>String</target_type> 2019 <target_type>String</target_type>
1720 <target_format/> 2020 <target_format/>
1721 <target_length>-1</target_length> 2021 <target_length>-1</target_length>
@@ -1727,9 +2027,9 @@ @@ -1727,9 +2027,9 @@
1727 <target_aggregation_type>-</target_aggregation_type> 2027 <target_aggregation_type>-</target_aggregation_type>
1728 </field> 2028 </field>
1729 <field> 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 <target_type>String</target_type> 2033 <target_type>String</target_type>
1734 <target_format/> 2034 <target_format/>
1735 <target_length>-1</target_length> 2035 <target_length>-1</target_length>
@@ -1741,9 +2041,9 @@ @@ -1741,9 +2041,9 @@
1741 <target_aggregation_type>-</target_aggregation_type> 2041 <target_aggregation_type>-</target_aggregation_type>
1742 </field> 2042 </field>
1743 <field> 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 <target_type>String</target_type> 2047 <target_type>String</target_type>
1748 <target_format/> 2048 <target_format/>
1749 <target_length>-1</target_length> 2049 <target_length>-1</target_length>
@@ -1755,9 +2055,9 @@ @@ -1755,9 +2055,9 @@
1755 <target_aggregation_type>-</target_aggregation_type> 2055 <target_aggregation_type>-</target_aggregation_type>
1756 </field> 2056 </field>
1757 <field> 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 <target_type>String</target_type> 2061 <target_type>String</target_type>
1762 <target_format/> 2062 <target_format/>
1763 <target_length>-1</target_length> 2063 <target_length>-1</target_length>
@@ -1769,9 +2069,9 @@ @@ -1769,9 +2069,9 @@
1769 <target_aggregation_type>-</target_aggregation_type> 2069 <target_aggregation_type>-</target_aggregation_type>
1770 </field> 2070 </field>
1771 <field> 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 <target_type>String</target_type> 2075 <target_type>String</target_type>
1776 <target_format/> 2076 <target_format/>
1777 <target_length>-1</target_length> 2077 <target_length>-1</target_length>
@@ -1783,9 +2083,9 @@ @@ -1783,9 +2083,9 @@
1783 <target_aggregation_type>-</target_aggregation_type> 2083 <target_aggregation_type>-</target_aggregation_type>
1784 </field> 2084 </field>
1785 <field> 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 <target_type>String</target_type> 2089 <target_type>String</target_type>
1790 <target_format/> 2090 <target_format/>
1791 <target_length>-1</target_length> 2091 <target_length>-1</target_length>
@@ -1798,8 +2098,8 @@ @@ -1798,8 +2098,8 @@
1798 </field> 2098 </field>
1799 <field> 2099 <field>
1800 <field_name>id</field_name> 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 <target_type>String</target_type> 2103 <target_type>String</target_type>
1804 <target_format/> 2104 <target_format/>
1805 <target_length>-1</target_length> 2105 <target_length>-1</target_length>
@@ -1812,8 +2112,8 @@ @@ -1812,8 +2112,8 @@
1812 </field> 2112 </field>
1813 <field> 2113 <field>
1814 <field_name>fcsj</field_name> 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 <target_type>String</target_type> 2117 <target_type>String</target_type>
1818 <target_format/> 2118 <target_format/>
1819 <target_length>-1</target_length> 2119 <target_length>-1</target_length>
@@ -1826,7 +2126,427 @@ @@ -1826,7 +2126,427 @@
1826 </field> 2126 </field>
1827 <field> 2127 <field>
1828 <field_name>fczdName</field_name> 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 <target_name>fcno16_zdname</target_name> 2550 <target_name>fcno16_zdname</target_name>
1831 <target_type>String</target_type> 2551 <target_type>String</target_type>
1832 <target_format/> 2552 <target_format/>
@@ -1840,8 +2560,204 @@ @@ -1840,8 +2560,204 @@
1840 </field> 2560 </field>
1841 <field> 2561 <field>
1842 <field_name>bc_type</field_name> 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 <target_type>String</target_type> 2761 <target_type>String</target_type>
1846 <target_format/> 2762 <target_format/>
1847 <target_length>-1</target_length> 2763 <target_length>-1</target_length>
@@ -1854,8 +2770,8 @@ @@ -1854,8 +2770,8 @@
1854 </field> 2770 </field>
1855 <field> 2771 <field>
1856 <field_name>id</field_name> 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 <target_type>String</target_type> 2775 <target_type>String</target_type>
1860 <target_format/> 2776 <target_format/>
1861 <target_length>-1</target_length> 2777 <target_length>-1</target_length>
@@ -1868,8 +2784,204 @@ @@ -1868,8 +2784,204 @@
1868 </field> 2784 </field>
1869 <field> 2785 <field>
1870 <field_name>fcsj</field_name> 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 <target_type>String</target_type> 2985 <target_type>String</target_type>
1874 <target_format/> 2986 <target_format/>
1875 <target_length>-1</target_length> 2987 <target_length>-1</target_length>
@@ -1881,9 +2993,9 @@ @@ -1881,9 +2993,9 @@
1881 <target_aggregation_type>-</target_aggregation_type> 2993 <target_aggregation_type>-</target_aggregation_type>
1882 </field> 2994 </field>
1883 <field> 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 <target_type>String</target_type> 2999 <target_type>String</target_type>
1888 <target_format/> 3000 <target_format/>
1889 <target_length>-1</target_length> 3001 <target_length>-1</target_length>
@@ -1895,9 +3007,9 @@ @@ -1895,9 +3007,9 @@
1895 <target_aggregation_type>-</target_aggregation_type> 3007 <target_aggregation_type>-</target_aggregation_type>
1896 </field> 3008 </field>
1897 <field> 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 <target_type>String</target_type> 3013 <target_type>String</target_type>
1902 <target_format/> 3014 <target_format/>
1903 <target_length>-1</target_length> 3015 <target_length>-1</target_length>
@@ -1910,8 +3022,8 @@ @@ -1910,8 +3022,8 @@
1910 </field> 3022 </field>
1911 <field> 3023 <field>
1912 <field_name>id</field_name> 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 <target_type>String</target_type> 3027 <target_type>String</target_type>
1916 <target_format/> 3028 <target_format/>
1917 <target_length>-1</target_length> 3029 <target_length>-1</target_length>
@@ -1924,8 +3036,8 @@ @@ -1924,8 +3036,8 @@
1924 </field> 3036 </field>
1925 <field> 3037 <field>
1926 <field_name>fcsj</field_name> 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 <target_type>String</target_type> 3041 <target_type>String</target_type>
1930 <target_format/> 3042 <target_format/>
1931 <target_length>-1</target_length> 3043 <target_length>-1</target_length>
@@ -1938,8 +3050,8 @@ @@ -1938,8 +3050,8 @@
1938 </field> 3050 </field>
1939 <field> 3051 <field>
1940 <field_name>fczdName</field_name> 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 <target_type>String</target_type> 3055 <target_type>String</target_type>
1944 <target_format/> 3056 <target_format/>
1945 <target_length>-1</target_length> 3057 <target_length>-1</target_length>
@@ -1952,8 +3064,8 @@ @@ -1952,8 +3064,8 @@
1952 </field> 3064 </field>
1953 <field> 3065 <field>
1954 <field_name>bc_type</field_name> 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 <target_type>String</target_type> 3069 <target_type>String</target_type>
1958 <target_format/> 3070 <target_format/>
1959 <target_length>-1</target_length> 3071 <target_length>-1</target_length>
@@ -1965,9 +3077,9 @@ @@ -1965,9 +3077,9 @@
1965 <target_aggregation_type>-</target_aggregation_type> 3077 <target_aggregation_type>-</target_aggregation_type>
1966 </field> 3078 </field>
1967 <field> 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 <target_type>String</target_type> 3083 <target_type>String</target_type>
1972 <target_format/> 3084 <target_format/>
1973 <target_length>-1</target_length> 3085 <target_length>-1</target_length>
@@ -1979,9 +3091,9 @@ @@ -1979,9 +3091,9 @@
1979 <target_aggregation_type>-</target_aggregation_type> 3091 <target_aggregation_type>-</target_aggregation_type>
1980 </field> 3092 </field>
1981 <field> 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 <target_type>String</target_type> 3097 <target_type>String</target_type>
1986 <target_format/> 3098 <target_format/>
1987 <target_length>-1</target_length> 3099 <target_length>-1</target_length>
@@ -1993,9 +3105,9 @@ @@ -1993,9 +3105,9 @@
1993 <target_aggregation_type>-</target_aggregation_type> 3105 <target_aggregation_type>-</target_aggregation_type>
1994 </field> 3106 </field>
1995 <field> 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 <target_type>String</target_type> 3111 <target_type>String</target_type>
2000 <target_format/> 3112 <target_format/>
2001 <target_length>-1</target_length> 3113 <target_length>-1</target_length>
@@ -2007,9 +3119,9 @@ @@ -2007,9 +3119,9 @@
2007 <target_aggregation_type>-</target_aggregation_type> 3119 <target_aggregation_type>-</target_aggregation_type>
2008 </field> 3120 </field>
2009 <field> 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 <target_type>String</target_type> 3125 <target_type>String</target_type>
2014 <target_format/> 3126 <target_format/>
2015 <target_length>-1</target_length> 3127 <target_length>-1</target_length>
@@ -2021,9 +3133,9 @@ @@ -2021,9 +3133,9 @@
2021 <target_aggregation_type>-</target_aggregation_type> 3133 <target_aggregation_type>-</target_aggregation_type>
2022 </field> 3134 </field>
2023 <field> 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 <target_type>String</target_type> 3139 <target_type>String</target_type>
2028 <target_format/> 3140 <target_format/>
2029 <target_length>-1</target_length> 3141 <target_length>-1</target_length>
@@ -2035,9 +3147,9 @@ @@ -2035,9 +3147,9 @@
2035 <target_aggregation_type>-</target_aggregation_type> 3147 <target_aggregation_type>-</target_aggregation_type>
2036 </field> 3148 </field>
2037 <field> 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 <target_type>String</target_type> 3153 <target_type>String</target_type>
2042 <target_format/> 3154 <target_format/>
2043 <target_length>-1</target_length> 3155 <target_length>-1</target_length>
@@ -2049,9 +3161,9 @@ @@ -2049,9 +3161,9 @@
2049 <target_aggregation_type>-</target_aggregation_type> 3161 <target_aggregation_type>-</target_aggregation_type>
2050 </field> 3162 </field>
2051 <field> 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 <target_type>String</target_type> 3167 <target_type>String</target_type>
2056 <target_format/> 3168 <target_format/>
2057 <target_length>-1</target_length> 3169 <target_length>-1</target_length>
@@ -2063,9 +3175,9 @@ @@ -2063,9 +3175,9 @@
2063 <target_aggregation_type>-</target_aggregation_type> 3175 <target_aggregation_type>-</target_aggregation_type>
2064 </field> 3176 </field>
2065 <field> 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 <target_type>String</target_type> 3181 <target_type>String</target_type>
2070 <target_format/> 3182 <target_format/>
2071 <target_length>-1</target_length> 3183 <target_length>-1</target_length>
@@ -2078,8 +3190,8 @@ @@ -2078,8 +3190,8 @@
2078 </field> 3190 </field>
2079 <field> 3191 <field>
2080 <field_name>id</field_name> 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 <target_type>String</target_type> 3195 <target_type>String</target_type>
2084 <target_format/> 3196 <target_format/>
2085 <target_length>-1</target_length> 3197 <target_length>-1</target_length>
@@ -2092,8 +3204,8 @@ @@ -2092,8 +3204,8 @@
2092 </field> 3204 </field>
2093 <field> 3205 <field>
2094 <field_name>fcsj</field_name> 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 <target_type>String</target_type> 3209 <target_type>String</target_type>
2098 <target_format/> 3210 <target_format/>
2099 <target_length>-1</target_length> 3211 <target_length>-1</target_length>
@@ -2106,8 +3218,8 @@ @@ -2106,8 +3218,8 @@
2106 </field> 3218 </field>
2107 <field> 3219 <field>
2108 <field_name>fczdName</field_name> 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 <target_type>String</target_type> 3223 <target_type>String</target_type>
2112 <target_format/> 3224 <target_format/>
2113 <target_length>-1</target_length> 3225 <target_length>-1</target_length>
@@ -2120,8 +3232,8 @@ @@ -2120,8 +3232,8 @@
2120 </field> 3232 </field>
2121 <field> 3233 <field>
2122 <field_name>bc_type</field_name> 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 <target_type>String</target_type> 3237 <target_type>String</target_type>
2126 <target_format/> 3238 <target_format/>
2127 <target_length>-1</target_length> 3239 <target_length>-1</target_length>
@@ -2133,9 +3245,9 @@ @@ -2133,9 +3245,9 @@
2133 <target_aggregation_type>-</target_aggregation_type> 3245 <target_aggregation_type>-</target_aggregation_type>
2134 </field> 3246 </field>
2135 <field> 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 <target_type>String</target_type> 3251 <target_type>String</target_type>
2140 <target_format/> 3252 <target_format/>
2141 <target_length>-1</target_length> 3253 <target_length>-1</target_length>
@@ -2147,9 +3259,9 @@ @@ -2147,9 +3259,9 @@
2147 <target_aggregation_type>-</target_aggregation_type> 3259 <target_aggregation_type>-</target_aggregation_type>
2148 </field> 3260 </field>
2149 <field> 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 <target_type>String</target_type> 3265 <target_type>String</target_type>
2154 <target_format/> 3266 <target_format/>
2155 <target_length>-1</target_length> 3267 <target_length>-1</target_length>
@@ -2161,9 +3273,9 @@ @@ -2161,9 +3273,9 @@
2161 <target_aggregation_type>-</target_aggregation_type> 3273 <target_aggregation_type>-</target_aggregation_type>
2162 </field> 3274 </field>
2163 <field> 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 <target_type>String</target_type> 3279 <target_type>String</target_type>
2168 <target_format/> 3280 <target_format/>
2169 <target_length>-1</target_length> 3281 <target_length>-1</target_length>
@@ -2175,9 +3287,9 @@ @@ -2175,9 +3287,9 @@
2175 <target_aggregation_type>-</target_aggregation_type> 3287 <target_aggregation_type>-</target_aggregation_type>
2176 </field> 3288 </field>
2177 <field> 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 <target_type>String</target_type> 3293 <target_type>String</target_type>
2182 <target_format/> 3294 <target_format/>
2183 <target_length>-1</target_length> 3295 <target_length>-1</target_length>
@@ -2189,9 +3301,9 @@ @@ -2189,9 +3301,9 @@
2189 <target_aggregation_type>-</target_aggregation_type> 3301 <target_aggregation_type>-</target_aggregation_type>
2190 </field> 3302 </field>
2191 <field> 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 <target_type>String</target_type> 3307 <target_type>String</target_type>
2196 <target_format/> 3308 <target_format/>
2197 <target_length>-1</target_length> 3309 <target_length>-1</target_length>
@@ -2203,9 +3315,9 @@ @@ -2203,9 +3315,9 @@
2203 <target_aggregation_type>-</target_aggregation_type> 3315 <target_aggregation_type>-</target_aggregation_type>
2204 </field> 3316 </field>
2205 <field> 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 <target_type>String</target_type> 3321 <target_type>String</target_type>
2210 <target_format/> 3322 <target_format/>
2211 <target_length>-1</target_length> 3323 <target_length>-1</target_length>
@@ -2217,9 +3329,9 @@ @@ -2217,9 +3329,9 @@
2217 <target_aggregation_type>-</target_aggregation_type> 3329 <target_aggregation_type>-</target_aggregation_type>
2218 </field> 3330 </field>
2219 <field> 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 <target_type>String</target_type> 3335 <target_type>String</target_type>
2224 <target_format/> 3336 <target_format/>
2225 <target_length>-1</target_length> 3337 <target_length>-1</target_length>
@@ -2231,9 +3343,9 @@ @@ -2231,9 +3343,9 @@
2231 <target_aggregation_type>-</target_aggregation_type> 3343 <target_aggregation_type>-</target_aggregation_type>
2232 </field> 3344 </field>
2233 <field> 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 <target_type>String</target_type> 3349 <target_type>String</target_type>
2238 <target_format/> 3350 <target_format/>
2239 <target_length>-1</target_length> 3351 <target_length>-1</target_length>
@@ -2246,8 +3358,8 @@ @@ -2246,8 +3358,8 @@
2246 </field> 3358 </field>
2247 <field> 3359 <field>
2248 <field_name>id</field_name> 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 <target_type>String</target_type> 3363 <target_type>String</target_type>
2252 <target_format/> 3364 <target_format/>
2253 <target_length>-1</target_length> 3365 <target_length>-1</target_length>
@@ -2260,8 +3372,8 @@ @@ -2260,8 +3372,8 @@
2260 </field> 3372 </field>
2261 <field> 3373 <field>
2262 <field_name>fcsj</field_name> 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 <target_type>String</target_type> 3377 <target_type>String</target_type>
2266 <target_format/> 3378 <target_format/>
2267 <target_length>-1</target_length> 3379 <target_length>-1</target_length>
@@ -2274,8 +3386,8 @@ @@ -2274,8 +3386,8 @@
2274 </field> 3386 </field>
2275 <field> 3387 <field>
2276 <field_name>fczdName</field_name> 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 <target_type>String</target_type> 3391 <target_type>String</target_type>
2280 <target_format/> 3392 <target_format/>
2281 <target_length>-1</target_length> 3393 <target_length>-1</target_length>
@@ -2288,8 +3400,8 @@ @@ -2288,8 +3400,8 @@
2288 </field> 3400 </field>
2289 <field> 3401 <field>
2290 <field_name>bc_type</field_name> 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 <target_type>String</target_type> 3405 <target_type>String</target_type>
2294 <target_format/> 3406 <target_format/>
2295 <target_length>-1</target_length> 3407 <target_length>-1</target_length>
@@ -2301,9 +3413,9 @@ @@ -2301,9 +3413,9 @@
2301 <target_aggregation_type>-</target_aggregation_type> 3413 <target_aggregation_type>-</target_aggregation_type>
2302 </field> 3414 </field>
2303 <field> 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 <target_type>String</target_type> 3419 <target_type>String</target_type>
2308 <target_format/> 3420 <target_format/>
2309 <target_length>-1</target_length> 3421 <target_length>-1</target_length>
@@ -2315,9 +3427,9 @@ @@ -2315,9 +3427,9 @@
2315 <target_aggregation_type>-</target_aggregation_type> 3427 <target_aggregation_type>-</target_aggregation_type>
2316 </field> 3428 </field>
2317 <field> 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 <target_type>String</target_type> 3433 <target_type>String</target_type>
2322 <target_format/> 3434 <target_format/>
2323 <target_length>-1</target_length> 3435 <target_length>-1</target_length>
@@ -2329,9 +3441,9 @@ @@ -2329,9 +3441,9 @@
2329 <target_aggregation_type>-</target_aggregation_type> 3441 <target_aggregation_type>-</target_aggregation_type>
2330 </field> 3442 </field>
2331 <field> 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 <target_type>String</target_type> 3447 <target_type>String</target_type>
2336 <target_format/> 3448 <target_format/>
2337 <target_length>-1</target_length> 3449 <target_length>-1</target_length>
@@ -2343,9 +3455,9 @@ @@ -2343,9 +3455,9 @@
2343 <target_aggregation_type>-</target_aggregation_type> 3455 <target_aggregation_type>-</target_aggregation_type>
2344 </field> 3456 </field>
2345 <field> 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 <target_type>String</target_type> 3461 <target_type>String</target_type>
2350 <target_format/> 3462 <target_format/>
2351 <target_length>-1</target_length> 3463 <target_length>-1</target_length>
@@ -2357,9 +3469,9 @@ @@ -2357,9 +3469,9 @@
2357 <target_aggregation_type>-</target_aggregation_type> 3469 <target_aggregation_type>-</target_aggregation_type>
2358 </field> 3470 </field>
2359 <field> 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 <target_type>String</target_type> 3475 <target_type>String</target_type>
2364 <target_format/> 3476 <target_format/>
2365 <target_length>-1</target_length> 3477 <target_length>-1</target_length>
@@ -2371,9 +3483,9 @@ @@ -2371,9 +3483,9 @@
2371 <target_aggregation_type>-</target_aggregation_type> 3483 <target_aggregation_type>-</target_aggregation_type>
2372 </field> 3484 </field>
2373 <field> 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 <target_type>String</target_type> 3489 <target_type>String</target_type>
2378 <target_format/> 3490 <target_format/>
2379 <target_length>-1</target_length> 3491 <target_length>-1</target_length>
@@ -2385,9 +3497,9 @@ @@ -2385,9 +3497,9 @@
2385 <target_aggregation_type>-</target_aggregation_type> 3497 <target_aggregation_type>-</target_aggregation_type>
2386 </field> 3498 </field>
2387 <field> 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 <target_type>String</target_type> 3503 <target_type>String</target_type>
2392 <target_format/> 3504 <target_format/>
2393 <target_length>-1</target_length> 3505 <target_length>-1</target_length>
@@ -2399,9 +3511,9 @@ @@ -2399,9 +3511,9 @@
2399 <target_aggregation_type>-</target_aggregation_type> 3511 <target_aggregation_type>-</target_aggregation_type>
2400 </field> 3512 </field>
2401 <field> 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 <target_type>String</target_type> 3517 <target_type>String</target_type>
2406 <target_format/> 3518 <target_format/>
2407 <target_length>-1</target_length> 3519 <target_length>-1</target_length>
@@ -2414,8 +3526,8 @@ @@ -2414,8 +3526,8 @@
2414 </field> 3526 </field>
2415 <field> 3527 <field>
2416 <field_name>id</field_name> 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 <target_type>String</target_type> 3531 <target_type>String</target_type>
2420 <target_format/> 3532 <target_format/>
2421 <target_length>-1</target_length> 3533 <target_length>-1</target_length>
@@ -2428,8 +3540,8 @@ @@ -2428,8 +3540,8 @@
2428 </field> 3540 </field>
2429 <field> 3541 <field>
2430 <field_name>fcsj</field_name> 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 <target_type>String</target_type> 3545 <target_type>String</target_type>
2434 <target_format/> 3546 <target_format/>
2435 <target_length>-1</target_length> 3547 <target_length>-1</target_length>
@@ -2442,8 +3554,8 @@ @@ -2442,8 +3554,8 @@
2442 </field> 3554 </field>
2443 <field> 3555 <field>
2444 <field_name>fczdName</field_name> 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 <target_type>String</target_type> 3559 <target_type>String</target_type>
2448 <target_format/> 3560 <target_format/>
2449 <target_length>-1</target_length> 3561 <target_length>-1</target_length>
@@ -2456,8 +3568,8 @@ @@ -2456,8 +3568,8 @@
2456 </field> 3568 </field>
2457 <field> 3569 <field>
2458 <field_name>bc_type</field_name> 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 <target_type>String</target_type> 3573 <target_type>String</target_type>
2462 <target_format/> 3574 <target_format/>
2463 <target_length>-1</target_length> 3575 <target_length>-1</target_length>
@@ -2469,9 +3581,9 @@ @@ -2469,9 +3581,9 @@
2469 <target_aggregation_type>-</target_aggregation_type> 3581 <target_aggregation_type>-</target_aggregation_type>
2470 </field> 3582 </field>
2471 <field> 3583 <field>
2472 - <field_name>id</field_name> 3584 + <field_name>xl_dir</field_name>
2473 <key_value>28</key_value> 3585 <key_value>28</key_value>
2474 - <target_name>fcno28_id</target_name> 3586 + <target_name>fcno28_xldir</target_name>
2475 <target_type>String</target_type> 3587 <target_type>String</target_type>
2476 <target_format/> 3588 <target_format/>
2477 <target_length>-1</target_length> 3589 <target_length>-1</target_length>
@@ -2483,9 +3595,9 @@ @@ -2483,9 +3595,9 @@
2483 <target_aggregation_type>-</target_aggregation_type> 3595 <target_aggregation_type>-</target_aggregation_type>
2484 </field> 3596 </field>
2485 <field> 3597 <field>
2486 - <field_name>fcsj</field_name> 3598 + <field_name>isfb</field_name>
2487 <key_value>28</key_value> 3599 <key_value>28</key_value>
2488 - <target_name>fcno28_fcsj</target_name> 3600 + <target_name>fcno28_isfb</target_name>
2489 <target_type>String</target_type> 3601 <target_type>String</target_type>
2490 <target_format/> 3602 <target_format/>
2491 <target_length>-1</target_length> 3603 <target_length>-1</target_length>
@@ -2497,9 +3609,9 @@ @@ -2497,9 +3609,9 @@
2497 <target_aggregation_type>-</target_aggregation_type> 3609 <target_aggregation_type>-</target_aggregation_type>
2498 </field> 3610 </field>
2499 <field> 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 <target_type>String</target_type> 3615 <target_type>String</target_type>
2504 <target_format/> 3616 <target_format/>
2505 <target_length>-1</target_length> 3617 <target_length>-1</target_length>
@@ -2511,9 +3623,9 @@ @@ -2511,9 +3623,9 @@
2511 <target_aggregation_type>-</target_aggregation_type> 3623 <target_aggregation_type>-</target_aggregation_type>
2512 </field> 3624 </field>
2513 <field> 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 <target_type>String</target_type> 3629 <target_type>String</target_type>
2518 <target_format/> 3630 <target_format/>
2519 <target_length>-1</target_length> 3631 <target_length>-1</target_length>
@@ -2525,9 +3637,9 @@ @@ -2525,9 +3637,9 @@
2525 <target_aggregation_type>-</target_aggregation_type> 3637 <target_aggregation_type>-</target_aggregation_type>
2526 </field> 3638 </field>
2527 <field> 3639 <field>
2528 - <field_name>id</field_name> 3640 + <field_name>fczdName</field_name>
2529 <key_value>29</key_value> 3641 <key_value>29</key_value>
2530 - <target_name>fcno29_id</target_name> 3642 + <target_name>fcno29_zdname</target_name>
2531 <target_type>String</target_type> 3643 <target_type>String</target_type>
2532 <target_format/> 3644 <target_format/>
2533 <target_length>-1</target_length> 3645 <target_length>-1</target_length>
@@ -2539,9 +3651,9 @@ @@ -2539,9 +3651,9 @@
2539 <target_aggregation_type>-</target_aggregation_type> 3651 <target_aggregation_type>-</target_aggregation_type>
2540 </field> 3652 </field>
2541 <field> 3653 <field>
2542 - <field_name>fcsj</field_name> 3654 + <field_name>bc_type</field_name>
2543 <key_value>29</key_value> 3655 <key_value>29</key_value>
2544 - <target_name>fcno29_fcsj</target_name> 3656 + <target_name>fcno29_bctype</target_name>
2545 <target_type>String</target_type> 3657 <target_type>String</target_type>
2546 <target_format/> 3658 <target_format/>
2547 <target_length>-1</target_length> 3659 <target_length>-1</target_length>
@@ -2553,9 +3665,9 @@ @@ -2553,9 +3665,9 @@
2553 <target_aggregation_type>-</target_aggregation_type> 3665 <target_aggregation_type>-</target_aggregation_type>
2554 </field> 3666 </field>
2555 <field> 3667 <field>
2556 - <field_name>fczdName</field_name> 3668 + <field_name>xl_dir</field_name>
2557 <key_value>29</key_value> 3669 <key_value>29</key_value>
2558 - <target_name>fcno29_zdname</target_name> 3670 + <target_name>fcno29_xldir</target_name>
2559 <target_type>String</target_type> 3671 <target_type>String</target_type>
2560 <target_format/> 3672 <target_format/>
2561 <target_length>-1</target_length> 3673 <target_length>-1</target_length>
@@ -2567,9 +3679,9 @@ @@ -2567,9 +3679,9 @@
2567 <target_aggregation_type>-</target_aggregation_type> 3679 <target_aggregation_type>-</target_aggregation_type>
2568 </field> 3680 </field>
2569 <field> 3681 <field>
2570 - <field_name>bc_type</field_name> 3682 + <field_name>isfb</field_name>
2571 <key_value>29</key_value> 3683 <key_value>29</key_value>
2572 - <target_name>fcno29_bctype</target_name> 3684 + <target_name>fcno29_isfb</target_name>
2573 <target_type>String</target_type> 3685 <target_type>String</target_type>
2574 <target_format/> 3686 <target_format/>
2575 <target_length>-1</target_length> 3687 <target_length>-1</target_length>
@@ -2636,6 +3748,34 @@ @@ -2636,6 +3748,34 @@
2636 <target_null_string/> 3748 <target_null_string/>
2637 <target_aggregation_type>-</target_aggregation_type> 3749 <target_aggregation_type>-</target_aggregation_type>
2638 </field> 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 </fields> 3779 </fields>
2640 <cluster_schema/> 3780 <cluster_schema/>
2641 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 3781 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
@@ -2711,6 +3851,14 @@ @@ -2711,6 +3851,14 @@
2711 <rename/> 3851 <rename/>
2712 <length>-2</length> 3852 <length>-2</length>
2713 <precision>-2</precision> 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 </field> <select_unspecified>N</select_unspecified> 3862 </field> <select_unspecified>N</select_unspecified>
2715 </fields> <cluster_schema/> 3863 </fields> <cluster_schema/>
2716 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 3864 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
@@ -2763,6 +3911,14 @@ @@ -2763,6 +3911,14 @@
2763 <rename/> 3911 <rename/>
2764 <length>-2</length> 3912 <length>-2</length>
2765 <precision>-2</precision> 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 </field> <select_unspecified>N</select_unspecified> 3922 </field> <select_unspecified>N</select_unspecified>
2767 </fields> <cluster_schema/> 3923 </fields> <cluster_schema/>
2768 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 3924 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
@@ -3007,7 +4163,7 @@ @@ -3007,7 +4163,7 @@
3007 <schema_name/> 4163 <schema_name/>
3008 </partitioning> 4164 </partitioning>
3009 <connection>bus_control_variable</connection> 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 <limit>0</limit> 4167 <limit>0</limit>
3012 <lookup>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</lookup> 4168 <lookup>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</lookup>
3013 <execute_each_row>N</execute_each_row> 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,7 +89,7 @@ ep.tail(&#39;minifier-js&#39;, function(){
89 89
90 //打包 90 //打包
91 ep.tail('package-jar', function(file){ 91 ep.tail('package-jar', function(file){
92 - var packageCom = 'mvn clean package'; 92 + var packageCom = 'mvn clean package -DskipTests';
93 cProcess = child_process.exec(packageCom,{maxBuffer: 5000*1024, cwd: dest},function(error){ 93 cProcess = child_process.exec(packageCom,{maxBuffer: 5000*1024, cwd: dest},function(error){
94 if(error) 94 if(error)
95 logError(error); 95 logError(error);
src/main/resources/rules/shiftloop.drl
@@ -361,12 +361,12 @@ end @@ -361,12 +361,12 @@ end
361 361
362 rule "calcu_guideboard_range_loop_1_1" 362 rule "calcu_guideboard_range_loop_1_1"
363 when 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 Calcu_guideboard_index_result(ruleId == $ruleId, $index : calcu_index) 365 Calcu_guideboard_index_result(ruleId == $ruleId, $index : calcu_index)
366 then 366 then
367 Calcu_guideboard_range_loop_result cgrlr = new Calcu_guideboard_range_loop_result(); 367 Calcu_guideboard_range_loop_result cgrlr = new Calcu_guideboard_range_loop_result();
368 cgrlr.setRuleId($ruleId); 368 cgrlr.setRuleId($ruleId);
369 - cgrlr.setFirstLoopSize($index + $sdays); 369 + cgrlr.setFirstLoopSize($index + $sdays - 1);
370 cgrlr.setMiddelLoopCount(0); 370 cgrlr.setMiddelLoopCount(0);
371 cgrlr.setRangeSize(0); 371 cgrlr.setRangeSize(0);
372 cgrlr.setLastLoopSize(0); 372 cgrlr.setLastLoopSize(0);
@@ -382,7 +382,7 @@ end @@ -382,7 +382,7 @@ end
382 382
383 rule "calcu_guideboard_range_loop_1_2" 383 rule "calcu_guideboard_range_loop_1_2"
384 when 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 Calcu_guideboard_index_result(ruleId == $ruleId, $index : calcu_index) 386 Calcu_guideboard_index_result(ruleId == $ruleId, $index : calcu_index)
387 ScheduleRule_input(ruleId == $ruleId, $rangesize : guideboardIds.size()) 387 ScheduleRule_input(ruleId == $ruleId, $rangesize : guideboardIds.size())
388 then 388 then
@@ -390,7 +390,7 @@ rule &quot;calcu_guideboard_range_loop_1_2&quot; @@ -390,7 +390,7 @@ rule &quot;calcu_guideboard_range_loop_1_2&quot;
390 cgrlr.setRuleId($ruleId); 390 cgrlr.setRuleId($ruleId);
391 cgrlr.setFirstLoopSize($index + $temp); 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 int gbd_days_temp_minus_svalue = (int) (gbd_days_temp_minus / new Integer($rangesize)); 394 int gbd_days_temp_minus_svalue = (int) (gbd_days_temp_minus / new Integer($rangesize));
395 int gbd_days_temp_minus_yvalue = gbd_days_temp_minus % new Integer($rangesize); 395 int gbd_days_temp_minus_yvalue = gbd_days_temp_minus % new Integer($rangesize);
396 396
@@ -438,12 +438,12 @@ end @@ -438,12 +438,12 @@ end
438 438
439 rule "calcu_employee_range_loop_1_1" 439 rule "calcu_employee_range_loop_1_1"
440 when 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 Calcu_employee_index_result(ruleId == $ruleId, $index : calcu_index) 442 Calcu_employee_index_result(ruleId == $ruleId, $index : calcu_index)
443 then 443 then
444 Calcu_employee_range_loop_result cgrlr = new Calcu_employee_range_loop_result(); 444 Calcu_employee_range_loop_result cgrlr = new Calcu_employee_range_loop_result();
445 cgrlr.setRuleId($ruleId); 445 cgrlr.setRuleId($ruleId);
446 - cgrlr.setFirstLoopSize($index + $sdays); 446 + cgrlr.setFirstLoopSize($index + $sdays - 1);
447 cgrlr.setMiddelLoopCount(0); 447 cgrlr.setMiddelLoopCount(0);
448 cgrlr.setRangeSize(0); 448 cgrlr.setRangeSize(0);
449 cgrlr.setLastLoopSize(0); 449 cgrlr.setLastLoopSize(0);
@@ -459,7 +459,7 @@ end @@ -459,7 +459,7 @@ end
459 459
460 rule "calcu_employee_range_loop_1_2" 460 rule "calcu_employee_range_loop_1_2"
461 when 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 Calcu_employee_index_result(ruleId == $ruleId, $index : calcu_index) 463 Calcu_employee_index_result(ruleId == $ruleId, $index : calcu_index)
464 ScheduleRule_input(ruleId == $ruleId, $rangesize : employeeConfigIds.size()) 464 ScheduleRule_input(ruleId == $ruleId, $rangesize : employeeConfigIds.size())
465 then 465 then
@@ -467,7 +467,7 @@ rule &quot;calcu_employee_range_loop_1_2&quot; @@ -467,7 +467,7 @@ rule &quot;calcu_employee_range_loop_1_2&quot;
467 cgrlr.setRuleId($ruleId); 467 cgrlr.setRuleId($ruleId);
468 cgrlr.setFirstLoopSize($index + $temp); 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 int gbd_days_temp_minus_svalue = (int) (gbd_days_temp_minus / new Integer($rangesize)); 471 int gbd_days_temp_minus_svalue = (int) (gbd_days_temp_minus / new Integer($rangesize));
472 int gbd_days_temp_minus_yvalue = gbd_days_temp_minus % new Integer($rangesize); 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,6 +546,8 @@ rule &quot;calcu_loop_guideboard&quot;
546 clgr.setRuleId($ruleId); 546 clgr.setRuleId($ruleId);
547 clgr.setGo_list(scheduleResult_outputs); 547 clgr.setGo_list(scheduleResult_outputs);
548 548
  549 + System.out.println(scheduleResult_outputs.size());
  550 +
549 insert(clgr); 551 insert(clgr);
550 end 552 end
551 553
@@ -608,6 +610,8 @@ rule &quot;calcu_loop_employee&quot; @@ -608,6 +610,8 @@ rule &quot;calcu_loop_employee&quot;
608 clgr.setRuleId($ruleId); 610 clgr.setRuleId($ruleId);
609 clgr.setEo_list(scheduleResult_outputs); 611 clgr.setEo_list(scheduleResult_outputs);
610 612
  613 + System.out.println(scheduleResult_outputs.size());
  614 +
611 insert(clgr); 615 insert(clgr);
612 end 616 end
613 617
src/main/resources/static/assets/js/common.js
@@ -12,9 +12,9 @@ function removeConfirm(text, url, success) { @@ -12,9 +12,9 @@ function removeConfirm(text, url, success) {
12 }, function(){ 12 }, function(){
13 layer.msg('正在删除...', {icon: 16}); 13 layer.msg('正在删除...', {icon: 16});
14 14
15 - $post(url, {'_method': 'delete'},function(res){ 15 + $post(url, {'_method': 'delete'},function(rs){
16 layer.msg('删除成功!'); 16 layer.msg('删除成功!');
17 - success && success(); 17 + success && success(rs);
18 }); 18 });
19 }); 19 });
20 } 20 }
src/main/resources/static/pages/control/line/child_pages/child_task.html
@@ -339,7 +339,10 @@ $(function(){ @@ -339,7 +339,10 @@ $(function(){
339 //删除子任务 339 //删除子任务
340 $('#childTaskDiv').on('click','.child_task_delete', function(){ 340 $('#childTaskDiv').on('click','.child_task_delete', function(){
341 var id = $(this).data('id'); 341 var id = $(this).data('id');
342 - removeConfirm('确定删除子任务?', '/childTask/' + id, refreshChildTasks); 342 + removeConfirm('确定删除子任务?', '/childTask/' + id, function(rs){
  343 + _alone.refreshSchedule(rs.t);
  344 + refreshChildTasks();
  345 + });
343 }); 346 });
344 347
345 348
@@ -500,7 +503,6 @@ function refreshChildTasks(){ @@ -500,7 +503,6 @@ function refreshChildTasks(){
500 //主任务id 503 //主任务id
501 var id = $mainTab.find('tr._active').data('id'); 504 var id = $mainTab.find('tr._active').data('id');
502 505
503 -  
504 var htmlStr = template('child_task_sub_table_temp', {list: _data.getSchedulById(id).cTasks}); 506 var htmlStr = template('child_task_sub_table_temp', {list: _data.getSchedulById(id).cTasks});
505 507
506 dictionaryUtils.transformDom( 508 dictionaryUtils.transformDom(
src/main/resources/static/pages/control/line/child_pages/deviceReport.html 0 → 100644
  1 +<div id="historyMessagePanel" style="margin: 15px 0 0 0;">
  2 + <h4 style="padding: 5px 0 10px 15px;margin: 0;"><i class="fa fa-code-fork"></i> 设备请求上报记录</h4>
  3 + <form class="form-inline" >
  4 + <div class="form-group" style="margin: 18px;">
  5 + <label class="" for="directiveSelect">请求代码:</label>
  6 + <select class="form-control" id="requestCodeSelect" name="requestCode">
  7 + <option value="-1">全部</option>
  8 + <option value="0xA1">恢复运营</option>
  9 + <option value="0xA2">申请调档</option>
  10 + <option value="0xA3">出场请求</option>
  11 + <option value="0xA5">进场请求</option>
  12 + <option value="0xA7">加油请求</option>
  13 + <option value="0x50">车辆故障</option>
  14 + <option value="0x70">路阻报告</option>
  15 + <option value="0x60">事故报告</option>
  16 + <option value="0x11">扣证纠纷</option>
  17 + <option value="0x12">报警</option>
  18 + </select>
  19 + </div>
  20 +
  21 + <div class="form-group" >
  22 + <label class="" for="carSelect">车辆:</label>
  23 + <select class="form-control" name="nbbm" id="carSelect" style="width: 170px;"></select>
  24 + </div>
  25 +
  26 + </form>
  27 +
  28 + <div class="table-scrollable" style="min-height: 468px;">
  29 + <table class="table table-hover" style="table-layout: fixed;">
  30 + <thead>
  31 + <tr>
  32 + <th width="9%" style="text-align: center;">位置</th>
  33 + <th width="9%">时间</th>
  34 + <th width="11%">车辆</th>
  35 + <th width="24%">请求代码</th>
  36 + <th width="10%">处理人</th>
  37 + <th width="10%">处理时间</th>
  38 + <th width="9%">处理结果</th>
  39 + </tr>
  40 + </thead>
  41 + <tbody>
  42 + <tr>
  43 + <td width="7%" style="text-align: center;">位置</td>
  44 + <td>05:30</td>
  45 + <td>B-92875</td>
  46 + <td>请求出场</td>
  47 + <td>mh001</td>
  48 + <td>05:31</td>
  49 + <td><span class="label label-sm label-success"> 同意</span></td>
  50 + </tr>
  51 + <tr>
  52 + <td width="7%" style="text-align: center;">位置</td>
  53 + <td>05:30</td>
  54 + <td>B-92875</td>
  55 + <td>请求出场</td>
  56 + <td>mh001</td>
  57 + <td>05:31</td>
  58 + <td><span class="label label-sm label-success"> 同意</span></td>
  59 + </tr>
  60 + <tr>
  61 + <td width="7%" style="text-align: center;">位置</td>
  62 + <td>05:30</td>
  63 + <td>B-92875</td>
  64 + <td>请求出场</td>
  65 + <td>mh001</td>
  66 + <td>05:31</td>
  67 + <td><span class="label label-sm label-success"> 同意</span></td>
  68 + </tr>
  69 + <tr>
  70 + <td width="7%" style="text-align: center;">位置</td>
  71 + <td>05:30</td>
  72 + <td>B-92875</td>
  73 + <td>请求出场</td>
  74 + <td>mh001</td>
  75 + <td>05:31</td>
  76 + <td><span class="label label-sm label-success"> 同意</span></td>
  77 + </tr>
  78 + <tr>
  79 + <td width="7%" style="text-align: center;">位置</td>
  80 + <td>05:30</td>
  81 + <td>B-92875</td>
  82 + <td>请求出场</td>
  83 + <td>mh001</td>
  84 + <td>05:31</td>
  85 + <td><span class="label label-sm label-success"> 同意</span></td>
  86 + </tr>
  87 + <tr>
  88 + <td width="7%" style="text-align: center;">位置</td>
  89 + <td>05:30</td>
  90 + <td>B-92875</td>
  91 + <td>请求出场</td>
  92 + <td>mh001</td>
  93 + <td>05:31</td>
  94 + <td><span class="label label-sm label-success"> 同意</span></td>
  95 + </tr>
  96 + </tbody>
  97 + </table>
  98 + </div>
  99 + <div style="text-align: right;margin: 15px 15px 5px;">
  100 + <ul id="pagination" class="pagination"></ul>
  101 + </div>
  102 +</div>
  103 +<script id="history_directive_list_temp" type="text/html">
  104 +{{each list as item i}}
  105 +<tr>
  106 + <td>{{item.timeHHmm}}</td>
  107 + <td>{{item.nbbm}}</td>
  108 + <td>
  109 + <div class="text-furl">
  110 + {{item.data.txtContent}}
  111 + </div>
  112 + </td>
  113 + <td>{{item.sender}}</td>
  114 + <td>
  115 + {{if item.errorText != null}}
  116 + <span class="label label-sm label-danger">{{item.errorText}}</span>
  117 + {{else}}
  118 + {{if item.reply46 != 0}}
  119 + <span class="label label-sm label-danger">设备无响应</span>
  120 + {{else if item.reply47 != 0}}
  121 + <span class="label label-sm label-warning">驾驶员未确认</span>
  122 + {{/if}}
  123 +
  124 + {{if item.reply46 == 0 && item.reply47 == 0}}
  125 + <span class="label label-sm label-success"> 成功</span>
  126 + {{/if}}
  127 + {{/if}}
  128 + </td>
  129 +</tr>
  130 +{{/each}}
  131 +</script>
  132 +
  133 +<script>
  134 +!function(){
  135 +
  136 +}();
  137 +</script>
0 \ No newline at end of file 138 \ No newline at end of file
src/main/resources/static/pages/control/line/child_pages/historyDirective.html
1 -<div id="historyMessagePanel" style="margin: 17px 0 0 0;">  
2 - 1 +<div id="historyMessagePanel" style="margin: 15px 0 0 0;">
  2 + <h4 style="padding: 5px 0 10px 15px;margin: 0;"><i class="fa fa-bell-o"></i> 指令下发记录</h4>
3 <form class="form-inline" > 3 <form class="form-inline" >
4 <div class="form-group" style="margin: 18px;"> 4 <div class="form-group" style="margin: 18px;">
5 <label class="" for="directiveSelect">指令类型:</label> 5 <label class="" for="directiveSelect">指令类型:</label>
@@ -16,14 +16,15 @@ @@ -16,14 +16,15 @@
16 <label class="" for="carSelect">车辆:</label> 16 <label class="" for="carSelect">车辆:</label>
17 <select class="form-control" name="nbbm" id="carSelect" style="width: 170px;"></select> 17 <select class="form-control" name="nbbm" id="carSelect" style="width: 170px;"></select>
18 </div> 18 </div>
  19 +
19 </form> 20 </form>
20 21
21 <div class="table-scrollable" style="min-height: 468px;"> 22 <div class="table-scrollable" style="min-height: 468px;">
22 <table class="table table-hover" style="table-layout: fixed;"> 23 <table class="table table-hover" style="table-layout: fixed;">
23 <thead> 24 <thead>
24 <tr> 25 <tr>
25 - <th width="9%">车辆</th>  
26 <th width="7%">时间</th> 26 <th width="7%">时间</th>
  27 + <th width="9%">车辆</th>
27 <th width="47%">内容</th> 28 <th width="47%">内容</th>
28 <th width="8%">发送人</th> 29 <th width="8%">发送人</th>
29 <th width="17%">状态</th> 30 <th width="17%">状态</th>
@@ -40,22 +41,21 @@ @@ -40,22 +41,21 @@
40 <script id="history_directive_list_temp" type="text/html"> 41 <script id="history_directive_list_temp" type="text/html">
41 {{each list as item i}} 42 {{each list as item i}}
42 <tr> 43 <tr>
43 - <td>{{item.nbbm}}</td>  
44 <td>{{item.timeHHmm}}</td> 44 <td>{{item.timeHHmm}}</td>
  45 + <td>{{item.nbbm}}</td>
45 <td> 46 <td>
46 <div class="text-furl"> 47 <div class="text-furl">
47 {{item.data.txtContent}} 48 {{item.data.txtContent}}
48 </div> 49 </div>
49 </td> 50 </td>
50 - <td>系统</td> 51 + <td>{{item.sender}}</td>
51 <td> 52 <td>
52 {{if item.errorText != null}} 53 {{if item.errorText != null}}
53 <span class="label label-sm label-danger">{{item.errorText}}</span> 54 <span class="label label-sm label-danger">{{item.errorText}}</span>
54 {{else}} 55 {{else}}
55 {{if item.reply46 != 0}} 56 {{if item.reply46 != 0}}
56 <span class="label label-sm label-danger">设备无响应</span> 57 <span class="label label-sm label-danger">设备无响应</span>
57 - {{/if}}  
58 - {{if item.reply47 != 0}} 58 + {{else if item.reply47 != 0}}
59 <span class="label label-sm label-warning">驾驶员未确认</span> 59 <span class="label label-sm label-warning">驾驶员未确认</span>
60 {{/if}} 60 {{/if}}
61 61
@@ -66,6 +66,11 @@ @@ -66,6 +66,11 @@
66 </td> 66 </td>
67 </tr> 67 </tr>
68 {{/each}} 68 {{/each}}
  69 +{{if list.length == 0}}
  70 +<tr>
  71 + <td colspan=5 class="empty-table-td" style="text-align: center;"></td>
  72 +</tr>
  73 +{{/if}}
69 </script> 74 </script>
70 75
71 <script> 76 <script>
@@ -77,6 +82,7 @@ @@ -77,6 +82,7 @@
77 ,$layer = $('#historyMessagePanel').parents('.layui-layer.layui-layer-page'); 82 ,$layer = $('#historyMessagePanel').parents('.layui-layer.layui-layer-page');
78 //车辆搜索框 83 //车辆搜索框
79 createVehSearch($car).on('change', function(){ 84 createVehSearch($car).on('change', function(){
  85 + page = 0;
80 jsDoQuery(true); 86 jsDoQuery(true);
81 }); 87 });
82 //分页参数 88 //分页参数
@@ -86,6 +92,7 @@ @@ -86,6 +92,7 @@
86 92
87 //指令类型切换 93 //指令类型切换
88 $dType.on('change', function(){ 94 $dType.on('change', function(){
  95 + page = 0;
89 jsDoQuery(true); 96 jsDoQuery(true);
90 }); 97 });
91 98
@@ -94,9 +101,7 @@ @@ -94,9 +101,7 @@
94 params.page = page; 101 params.page = page;
95 params.size = pSize; 102 params.size = pSize;
96 103
97 - console.log(params);  
98 $.get('/directive/list', params, function(rs){ 104 $.get('/directive/list', params, function(rs){
99 - console.log(rs);  
100 105
101 var htmlStr = template('history_directive_list_temp', rs); 106 var htmlStr = template('history_directive_list_temp', rs);
102 $table.find('tbody').html(htmlStr); 107 $table.find('tbody').html(htmlStr);
@@ -109,6 +114,8 @@ @@ -109,6 +114,8 @@
109 } 114 }
110 115
111 function showPagination(data, noQuery){ 116 function showPagination(data, noQuery){
  117 + if(data.totalPages == 0)
  118 + return;
112 //分页 119 //分页
113 $('#pagination').jqPaginator({ 120 $('#pagination').jqPaginator({
114 totalPages: data.totalPages, 121 totalPages: data.totalPages,
src/main/resources/static/pages/control/line/child_pages/js/child_task.js
@@ -353,6 +353,7 @@ function childTaskSubmit(fs, layerIndex){ @@ -353,6 +353,7 @@ function childTaskSubmit(fs, layerIndex){
353 * 同步提交多个表单,无事物,允许中途失败 353 * 同步提交多个表单,无事物,允许中途失败
354 */ 354 */
355 function syncSubmit(fs, cb){ 355 function syncSubmit(fs, cb){
  356 + var index = layer.msg('正在提交...', {icon: 16,shade:0.3});
356 if(fs.length == 0) return; 357 if(fs.length == 0) return;
357 //备注 358 //备注
358 var remarks = $(fs[0]).parents('.custom-anim-modal').find('textarea[name=remarks]').val(); 359 var remarks = $(fs[0]).parents('.custom-anim-modal').find('textarea[name=remarks]').val();
@@ -360,6 +361,7 @@ function syncSubmit(fs, cb){ @@ -360,6 +361,7 @@ function syncSubmit(fs, cb){
360 (function(){ 361 (function(){
361 362
362 if(i == len){ 363 if(i == len){
  364 + layer.close(index);
363 cb && cb(cbRs); 365 cb && cb(cbRs);
364 return; 366 return;
365 } 367 }
@@ -370,7 +372,6 @@ function syncSubmit(fs, cb){ @@ -370,7 +372,6 @@ function syncSubmit(fs, cb){
370 372
371 params.remarks = remarks; 373 params.remarks = remarks;
372 $post('/childTask', params, function(rs){ 374 $post('/childTask', params, function(rs){
373 - console.log('item rs: ' ,rs);  
374 $(form).parent().find('.task-item-close').replaceWith('<a class="task-item-success"><i class="fa fa-check-circle" ></i></a>'); 375 $(form).parent().find('.task-item-close').replaceWith('<a class="task-item-success"><i class="fa fa-check-circle" ></i></a>');
375 i ++; 376 i ++;
376 //做一层防护,防止缺心眼出现无限循环提交 377 //做一层防护,防止缺心眼出现无限循环提交
src/main/resources/static/pages/control/line/css/lineControl.css
@@ -1697,7 +1697,7 @@ label.error{ @@ -1697,7 +1697,7 @@ label.error{
1697 } 1697 }
1698 1698
1699 .empty-table-td:BEFORE{ 1699 .empty-table-td:BEFORE{
1700 - content: "暂无数据"; 1700 + content: "暂无相关数据";
1701 color: #6f6c6c; 1701 color: #6f6c6c;
1702 font-size: 12px; 1702 font-size: 12px;
1703 } 1703 }
src/main/resources/static/pages/control/line/index.html
@@ -290,5 +290,6 @@ function interceptPOST(e, xhr, t){ @@ -290,5 +290,6 @@ function interceptPOST(e, xhr, t){
290 layer.msg('监控模式!',{offset: 'ct', shift : 6}); 290 layer.msg('监控模式!',{offset: 'ct', shift : 6});
291 } 291 }
292 } 292 }
  293 +
293 </script> 294 </script>
294 <script src="/pages/control/line/js/webSocketHandle.js"></script> 295 <script src="/pages/control/line/js/webSocketHandle.js"></script>
295 \ No newline at end of file 296 \ No newline at end of file
src/main/resources/static/pages/control/line/js/toolbarEvent.js
@@ -30,6 +30,18 @@ @@ -30,6 +30,18 @@
30 30
31 //设备上报 31 //设备上报
32 $('#deviceReport').on('click', function(){ 32 $('#deviceReport').on('click', function(){
33 - layer.msg('功能测试中...稍后开放!'); 33 + layer.msg('功能测试中,测试完了就开放...')
  34 + /*$.get('/pages/control/line/child_pages/deviceReport.html', function(content){
  35 + layer.open({
  36 + type: 1,
  37 + area: '930px',
  38 + content: content,
  39 + title : false,
  40 + shift: 5,
  41 + success: function(){
  42 +
  43 + }
  44 + });
  45 + });*/
34 }); 46 });
35 }(); 47 }();
36 \ No newline at end of file 48 \ No newline at end of file
src/main/resources/static/pages/control/line/temps/child_task_case_tp.html
@@ -40,7 +40,7 @@ @@ -40,7 +40,7 @@
40 <td width="6%"> 40 <td width="6%">
41 <div class="dropdown"> 41 <div class="dropdown">
42 <a class="no_and_removeLink" href="javascript:;" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 42 <a class="no_and_removeLink" href="javascript:;" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
43 - {{i + 1}} 43 + {{i + 1}}
44 </a> 44 </a>
45 <ul class="dropdown-menu" aria-labelledby="dLabel"> 45 <ul class="dropdown-menu" aria-labelledby="dLabel">
46 <li class="child_task_delete" data-id="{{item.id}}"> 46 <li class="child_task_delete" data-id="{{item.id}}">
src/main/resources/static/pages/control/lineallot/allot.html
@@ -326,7 +326,7 @@ $(function(){ @@ -326,7 +326,7 @@ $(function(){
326 var f = arguments.callee 326 var f = arguments.callee
327 ,item = lsData[i]; 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 if(rs && rs.lineId){ 330 if(rs && rs.lineId){
331 cacheData[item.lineCode] = rs; 331 cacheData[item.lineCode] = rs;
332 i ++; 332 i ++;
src/main/resources/static/pages/mapmonitor/real/css/real.css
@@ -93,7 +93,7 @@ label.BMapLabel{ @@ -93,7 +93,7 @@ label.BMapLabel{
93 } 93 }
94 94
95 .mapRightWrap.playBack{ 95 .mapRightWrap.playBack{
96 - min-height: 454px; 96 + min-height: 374px;
97 width: 390px; 97 width: 390px;
98 height: auto; 98 height: auto;
99 } 99 }
@@ -710,8 +710,8 @@ display: none; @@ -710,8 +710,8 @@ display: none;
710 } 710 }
711 711
712 .play-back-btns .dropdown-menu{ 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 .play-back-btns>i.playBtn{ 717 .play-back-btns>i.playBtn{
@@ -803,3 +803,15 @@ display: none; @@ -803,3 +803,15 @@ display: none;
803 color: #5f5d5d; 803 color: #5f5d5d;
804 margin-left: 7px; 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,6 +277,10 @@ var realMap = (function() {
277 //居中marker 277 //居中marker
278 markerToCenter: function(marker){ 278 markerToCenter: function(marker){
279 currentMap.map.panTo(marker.getPosition()); 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,6 +3,8 @@
3 */ 3 */
4 4
5 var playBack = (function() { 5 var playBack = (function() {
  6 + //默认车辆
  7 + var defaultCar, defaultLine;
6 //css3动画结束事件 8 //css3动画结束事件
7 var animationend = 'webkitAnimationEnd animationend'; 9 var animationend = 'webkitAnimationEnd animationend';
8 var prgTimer; 10 var prgTimer;
@@ -10,6 +12,13 @@ var playBack = (function() { @@ -10,6 +12,13 @@ var playBack = (function() {
10 var sTime; 12 var sTime;
11 //结束时间戳 13 //结束时间戳
12 var eTime; 14 var eTime;
  15 + //当前时间戳
  16 + var cTime;
  17 + //每步走10秒
  18 + var step = 10;
  19 + //1个px多少秒
  20 + var secondPX;
  21 +
13 var tRange; 22 var tRange;
14 //进度条宽度 23 //进度条宽度
15 var pWidth; 24 var pWidth;
@@ -20,11 +29,12 @@ var playBack = (function() { @@ -20,11 +29,12 @@ var playBack = (function() {
20 //上层运动的进度条 29 //上层运动的进度条
21 var $pmk = $('.play-back-progress-mark'); 30 var $pmk = $('.play-back-progress-mark');
22 //单元格 31 //单元格
23 - var cell/*, minCell = 5, cellSecond*/; 32 + //var cell/*, minCell = 5, cellSecond*/;
24 //GPS轨迹点 33 //GPS轨迹点
25 var gpsArray; 34 var gpsArray;
26 //播放到的轨迹坐标点 35 //播放到的轨迹坐标点
27 var cIndex = 0; 36 var cIndex = 0;
  37 + //GPS点数量
28 var size; 38 var size;
29 //播放速度 39 //播放速度
30 var speed = parseInt($('#playSpeedText').text()); 40 var speed = parseInt($('#playSpeedText').text());
@@ -32,8 +42,10 @@ var playBack = (function() { @@ -32,8 +42,10 @@ var playBack = (function() {
32 var markerMap = {}; 42 var markerMap = {};
33 //线路路由数据 43 //线路路由数据
34 var lineRoute; 44 var lineRoute;
35 - //默认以第一辆车为焦点 45 + //首辆车自编号
36 var firstCar; 46 var firstCar;
  47 + //是否启用焦点跟踪
  48 + var isEnableFocus;
37 49
38 function getCurrMap(){ 50 function getCurrMap(){
39 return realMap[realMap.getMap().fName]; 51 return realMap[realMap.getMap().fName];
@@ -61,7 +73,8 @@ var playBack = (function() { @@ -61,7 +73,8 @@ var playBack = (function() {
61 }).mouseout(hideMarkTextMouse) 73 }).mouseout(hideMarkTextMouse)
62 .on('click', function(e){ 74 .on('click', function(e){
63 var w = e.clientX - 20; 75 var w = e.clientX - 20;
64 - goTo(w); 76 + //goTo(w);
  77 + goToByTime(sTime + w * secondPX);
65 hideMarkTextMouse(); 78 hideMarkTextMouse();
66 }); 79 });
67 80
@@ -92,37 +105,12 @@ var playBack = (function() { @@ -92,37 +105,12 @@ var playBack = (function() {
92 }); 105 });
93 106
94 function showMarkText(w){ 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 function addInOutText(gps){ 114 function addInOutText(gps){
127 var info = gps.inout_stop_info 115 var info = gps.inout_stop_info
128 ,date = moment(gps.ts).format('HH:mm.ss'); 116 ,date = moment(gps.ts).format('HH:mm.ss');
@@ -149,22 +137,13 @@ var playBack = (function() { @@ -149,22 +137,13 @@ var playBack = (function() {
149 } 137 }
150 138
151 function showMarkTextMouse(w){ 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 function hideMarkTextMouse(){ 143 function hideMarkTextMouse(){
155 $presMarkMouse.hide(); 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 $('.pback-logs').slimscroll({ 148 $('.pback-logs').slimscroll({
170 height: '100%', 149 height: '100%',
@@ -173,132 +152,243 @@ var playBack = (function() { @@ -173,132 +152,243 @@ var playBack = (function() {
173 152
174 var exports = { 153 var exports = {
175 init : function() { 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 $('.mapRightWrap').html(htmlStr); 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 return; 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 else 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 function stop(){ 277 function stop(){
  278 + _stopFocusTimer = 1;
  279 + clearInterval(focusTimer);
  280 + //停止播放
253 clearInterval(prgTimer); 281 clearInterval(prgTimer);
254 $('.play-back-btns .playBtn').removeClass('fa-pause').addClass('fa-play').data('status', 0); 282 $('.play-back-btns .playBtn').removeClass('fa-pause').addClass('fa-play').data('status', 0);
255 prgTimer = null; 283 prgTimer = null;
256 } 284 }
257 285
258 function play(){ 286 function play(){
259 - if(topW == pWidth){  
260 - //从头再来  
261 - reset();  
262 - }  
263 $('#progress-mark-time').show(); 287 $('#progress-mark-time').show();
264 $('.play-back-btns .playBtn').removeClass('fa-play').addClass('fa-pause').data('status', 1); 288 $('.play-back-btns .playBtn').removeClass('fa-play').addClass('fa-pause').data('status', 1);
  289 + //开始播放
265 start(); 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 function start(){ 313 function start(){
277 - prgTimer = setTimeout(start, 1000); 314 + prgTimer = setTimeout(start, 1000 / speed);
278 run(); 315 run();
279 } 316 }
280 317
  318 + var cw = 0;
281 function run(){ 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 stop(); 329 stop();
286 $('#progress-mark-time').hide(); 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 cIndex = 0; 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 play(); 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,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 //绘制线路和GPS 47 //绘制线路和GPS
42 function drawLineAndGps(lineCode, callFun){ 48 function drawLineAndGps(lineCode, callFun){
43 //过滤出该线路的GPS点 49 //过滤出该线路的GPS点
@@ -169,7 +175,11 @@ var vehiclePanel = (function() { @@ -169,7 +175,11 @@ var vehiclePanel = (function() {
169 for(var deviceId in allGps) 175 for(var deviceId in allGps)
170 array.push(allGps[deviceId]); 176 array.push(allGps[deviceId]);
171 return array; 177 return array;
172 - } 178 + },
  179 + clear: function(){
  180 + cLineCode = null;
  181 + },
  182 + toPlayBack:toPlayBack
173 }; 183 };
174 184
175 return exports; 185 return exports;
src/main/resources/static/pages/mapmonitor/real/real.html
@@ -55,9 +55,12 @@ @@ -55,9 +55,12 @@
55 <i class="fa fa-close"></i><span id="playSpeedText">10</span><i class="fa fa-angle-up" ></i> 55 <i class="fa fa-close"></i><span id="playSpeedText">10</span><i class="fa fa-angle-up" ></i>
56 </span> 56 </span>
57 <ul class="dropdown-menu play-speed-select" > 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 </ul> 64 </ul>
62 </div> 65 </div>
63 66
@@ -80,11 +83,11 @@ @@ -80,11 +83,11 @@
80 83
81 <div id="temps"></div> 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 <script> 92 <script>
90 </script> 93 </script>
src/main/resources/static/pages/mapmonitor/real/temps/playBack.html
@@ -8,7 +8,8 @@ @@ -8,7 +8,8 @@
8 <div class="form-group"> 8 <div class="form-group">
9 <label class="col-md-3 control-label">车辆编码</label> 9 <label class="col-md-3 control-label">车辆编码</label>
10 <div class="col-md-9"> 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 </div> 13 </div>
13 </div> 14 </div>
14 15
@@ -26,15 +27,21 @@ @@ -26,15 +27,21 @@
26 <input type="time" name="eTime" class="form-control" placeholder="时间" required=1> 27 <input type="time" name="eTime" class="form-control" placeholder="时间" required=1>
27 </div> 28 </div>
28 </div> 29 </div>
29 - </div>  
30 -</form>  
31 -<form class="form-horizontal" role="form" style="padding-top: 0px;"> 30 +
32 <div class="form-group"> 31 <div class="form-group">
33 - <label class="col-md-3 control-label">线路图层</label> 32 + <label class="col-md-3 control-label"></label>
34 <div class="col-md-9"> 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 </div> 42 </div>
37 </div> 43 </div>
  44 + </div>
38 </form> 45 </form>
39 <hr> 46 <hr>
40 <div class="form-actions"> 47 <div class="form-actions">
@@ -44,4 +51,4 @@ @@ -44,4 +51,4 @@
44 </div> 51 </div>
45 </div> 52 </div>
46 </div> 53 </div>
47 -</script>  
48 \ No newline at end of file 54 \ No newline at end of file
  55 +</script>
src/main/resources/static/pages/mapmonitor/real/temps/vehicle.html
@@ -88,6 +88,6 @@ @@ -88,6 +88,6 @@
88 下一班{{nextSch.qdzName}} {{nextSch.fcsj}} 发车 88 下一班{{nextSch.qdzName}} {{nextSch.fcsj}} 发车
89 {{/if}} 89 {{/if}}
90 </p> 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 </div> 92 </div>
93 </script> 93 </script>
94 \ No newline at end of file 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,7 +201,8 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;TimeTableManageService_g&#39;, [&#39;$resource&#39;,
201 list: { 201 list: {
202 method: 'GET', 202 method: 'GET',
203 params: { 203 params: {
204 - page: 0 204 + page: 0,
  205 + isCancel_eq: 'false'
205 } 206 }
206 }, 207 },
207 get: { 208 get: {
src/main/resources/static/pages/scheduleApp/module/core/scheduleRuleManage/edit.html
@@ -107,7 +107,7 @@ @@ -107,7 +107,7 @@
107 107
108 <div class="form-group has-success has-feedback"> 108 <div class="form-group has-success has-feedback">
109 <label class="col-md-2 control-label">路牌范围*:</label> 109 <label class="col-md-2 control-label">路牌范围*:</label>
110 - <div class="col-md-3"> 110 + <div class="col-md-4">
111 <input type="text" class="form-control" name="lpNames" ng-model="ctrl.scheduleRuleManageForSave.lpNames" required 111 <input type="text" class="form-control" name="lpNames" ng-model="ctrl.scheduleRuleManageForSave.lpNames" required
112 placeholder="由路牌名称组成,逗号分隔"/> 112 placeholder="由路牌名称组成,逗号分隔"/>
113 </div> 113 </div>
@@ -119,9 +119,9 @@ @@ -119,9 +119,9 @@
119 119
120 <div class="form-group has-success has-feedback"> 120 <div class="form-group has-success has-feedback">
121 <label class="col-md-2 control-label">起始路牌*:</label> 121 <label class="col-md-2 control-label">起始路牌*:</label>
122 - <div class="col-md-3"> 122 + <div class="col-md-4">
123 <input type="text" class="form-control" name="lpStart" ng-model="ctrl.scheduleRuleManageForSave.lpStart" required 123 <input type="text" class="form-control" name="lpStart" ng-model="ctrl.scheduleRuleManageForSave.lpStart" required
124 - placeholder="起始路牌,从1开始"/> 124 + placeholder="起始路牌索引,从1开始"/>
125 </div> 125 </div>
126 <!-- 隐藏块,显示验证信息 --> 126 <!-- 隐藏块,显示验证信息 -->
127 <div class="alert alert-danger well-sm" ng-show="myForm.lpStart.$error.required"> 127 <div class="alert alert-danger well-sm" ng-show="myForm.lpStart.$error.required">
@@ -131,7 +131,7 @@ @@ -131,7 +131,7 @@
131 131
132 <div class="form-group has-success has-feedback"> 132 <div class="form-group has-success has-feedback">
133 <label class="col-md-2 control-label">人员范围*:</label> 133 <label class="col-md-2 control-label">人员范围*:</label>
134 - <div class="col-md-3"> 134 + <div class="col-md-4">
135 <input type="text" class="form-control" name="ryDbbms" ng-model="ctrl.scheduleRuleManageForSave.ryDbbms" required 135 <input type="text" class="form-control" name="ryDbbms" ng-model="ctrl.scheduleRuleManageForSave.ryDbbms" required
136 placeholder="由人员配置的搭班编码组成,逗号分隔"/> 136 placeholder="由人员配置的搭班编码组成,逗号分隔"/>
137 </div> 137 </div>
@@ -143,9 +143,9 @@ @@ -143,9 +143,9 @@
143 143
144 <div class="form-group has-success has-feedback"> 144 <div class="form-group has-success has-feedback">
145 <label class="col-md-2 control-label">起始人员*:</label> 145 <label class="col-md-2 control-label">起始人员*:</label>
146 - <div class="col-md-3"> 146 + <div class="col-md-4">
147 <input type="text" class="form-control" name="ryStart" ng-model="ctrl.scheduleRuleManageForSave.ryStart" required 147 <input type="text" class="form-control" name="ryStart" ng-model="ctrl.scheduleRuleManageForSave.ryStart" required
148 - placeholder="起始人员,从1开始"/> 148 + placeholder="起始人员索引,从1开始"/>
149 </div> 149 </div>
150 <!-- 隐藏块,显示验证信息 --> 150 <!-- 隐藏块,显示验证信息 -->
151 <div class="alert alert-danger well-sm" ng-show="myForm.ryStart.$error.required"> 151 <div class="alert alert-danger well-sm" ng-show="myForm.ryStart.$error.required">
@@ -155,7 +155,7 @@ @@ -155,7 +155,7 @@
155 155
156 <div class="form-group"> 156 <div class="form-group">
157 <label class="col-md-2 control-label">翻班格式:</label> 157 <label class="col-md-2 control-label">翻班格式:</label>
158 - <div class="col-md-3"> 158 + <div class="col-md-4">
159 <input type="text" class="form-control" name="fbgs" ng-model="ctrl.scheduleRuleManageForSave.fbgs" 159 <input type="text" class="form-control" name="fbgs" ng-model="ctrl.scheduleRuleManageForSave.fbgs"
160 placeholder="车辆翻班格式"/> 160 placeholder="车辆翻班格式"/>
161 </div> 161 </div>
src/main/resources/static/pages/scheduleApp/module/core/scheduleRuleManage/form.html
@@ -107,7 +107,7 @@ @@ -107,7 +107,7 @@
107 107
108 <div class="form-group has-success has-feedback"> 108 <div class="form-group has-success has-feedback">
109 <label class="col-md-2 control-label">路牌范围*:</label> 109 <label class="col-md-2 control-label">路牌范围*:</label>
110 - <div class="col-md-3"> 110 + <div class="col-md-4">
111 <input type="text" class="form-control" name="lpNames" ng-model="ctrl.scheduleRuleManageForSave.lpNames" required 111 <input type="text" class="form-control" name="lpNames" ng-model="ctrl.scheduleRuleManageForSave.lpNames" required
112 placeholder="由路牌名称组成,逗号分隔"/> 112 placeholder="由路牌名称组成,逗号分隔"/>
113 </div> 113 </div>
@@ -119,9 +119,9 @@ @@ -119,9 +119,9 @@
119 119
120 <div class="form-group has-success has-feedback"> 120 <div class="form-group has-success has-feedback">
121 <label class="col-md-2 control-label">起始路牌*:</label> 121 <label class="col-md-2 control-label">起始路牌*:</label>
122 - <div class="col-md-3"> 122 + <div class="col-md-4">
123 <input type="text" class="form-control" name="lpStart" ng-model="ctrl.scheduleRuleManageForSave.lpStart" required 123 <input type="text" class="form-control" name="lpStart" ng-model="ctrl.scheduleRuleManageForSave.lpStart" required
124 - placeholder="起始路牌,从1开始"/> 124 + placeholder="起始路牌索引,从1开始"/>
125 </div> 125 </div>
126 <!-- 隐藏块,显示验证信息 --> 126 <!-- 隐藏块,显示验证信息 -->
127 <div class="alert alert-danger well-sm" ng-show="myForm.lpStart.$error.required"> 127 <div class="alert alert-danger well-sm" ng-show="myForm.lpStart.$error.required">
@@ -131,7 +131,7 @@ @@ -131,7 +131,7 @@
131 131
132 <div class="form-group has-success has-feedback"> 132 <div class="form-group has-success has-feedback">
133 <label class="col-md-2 control-label">人员范围*:</label> 133 <label class="col-md-2 control-label">人员范围*:</label>
134 - <div class="col-md-3"> 134 + <div class="col-md-4">
135 <input type="text" class="form-control" name="ryDbbms" ng-model="ctrl.scheduleRuleManageForSave.ryDbbms" required 135 <input type="text" class="form-control" name="ryDbbms" ng-model="ctrl.scheduleRuleManageForSave.ryDbbms" required
136 placeholder="由人员配置的搭班编码组成,逗号分隔"/> 136 placeholder="由人员配置的搭班编码组成,逗号分隔"/>
137 </div> 137 </div>
@@ -143,9 +143,9 @@ @@ -143,9 +143,9 @@
143 143
144 <div class="form-group has-success has-feedback"> 144 <div class="form-group has-success has-feedback">
145 <label class="col-md-2 control-label">起始人员*:</label> 145 <label class="col-md-2 control-label">起始人员*:</label>
146 - <div class="col-md-3"> 146 + <div class="col-md-4">
147 <input type="text" class="form-control" name="ryStart" ng-model="ctrl.scheduleRuleManageForSave.ryStart" required 147 <input type="text" class="form-control" name="ryStart" ng-model="ctrl.scheduleRuleManageForSave.ryStart" required
148 - placeholder="起始人员,从1开始"/> 148 + placeholder="起始人员索引,从1开始"/>
149 </div> 149 </div>
150 <!-- 隐藏块,显示验证信息 --> 150 <!-- 隐藏块,显示验证信息 -->
151 <div class="alert alert-danger well-sm" ng-show="myForm.ryStart.$error.required"> 151 <div class="alert alert-danger well-sm" ng-show="myForm.ryStart.$error.required">
@@ -155,7 +155,7 @@ @@ -155,7 +155,7 @@
155 155
156 <div class="form-group"> 156 <div class="form-group">
157 <label class="col-md-2 control-label">翻班格式:</label> 157 <label class="col-md-2 control-label">翻班格式:</label>
158 - <div class="col-md-3"> 158 + <div class="col-md-4">
159 <input type="text" class="form-control" name="fbgs" ng-model="ctrl.scheduleRuleManageForSave.fbgs" 159 <input type="text" class="form-control" name="fbgs" ng-model="ctrl.scheduleRuleManageForSave.fbgs"
160 placeholder="车辆翻班格式"/> 160 placeholder="车辆翻班格式"/>
161 </div> 161 </div>
src/main/resources/static/pages/scheduleApp/module/core/timeTableManage/detail_info.html
@@ -38,6 +38,15 @@ @@ -38,6 +38,15 @@
38 <span class="caption-subject bold uppercase" ng-bind="ctrl.title"></span> 38 <span class="caption-subject bold uppercase" ng-bind="ctrl.title"></span>
39 </div> 39 </div>
40 <div class="actions"> 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 <div class="btn-group"> 50 <div class="btn-group">
42 <a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown"> 51 <a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown">
43 <i class="fa fa-share"></i> 52 <i class="fa fa-share"></i>
@@ -53,7 +62,7 @@ @@ -53,7 +62,7 @@
53 </li> 62 </li>
54 <li class="divider"></li> 63 <li class="divider"></li>
55 <li> 64 <li>
56 - <a href="javascript:" class="tool-action"> 65 + <a href="javascript:" class="tool-action" ng-click="ctrl.refresh()">
57 <i class="fa fa-refresh"></i> 66 <i class="fa fa-refresh"></i>
58 刷行数据 67 刷行数据
59 </a> 68 </a>
@@ -84,7 +93,14 @@ @@ -84,7 +93,14 @@
84 93
85 <div ng-if="cell.ttdid" class="btn-group"> 94 <div ng-if="cell.ttdid" class="btn-group">
86 <a href="javascript:" class="btn blue btn-outline btn-circle" data-toggle="dropdown"> 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 <span ng-bind="cell.fcsj"></span> 104 <span ng-bind="cell.fcsj"></span>
89 <i class="fa fa-angle-down"></i> 105 <i class="fa fa-angle-down"></i>
90 </a> 106 </a>
@@ -96,18 +112,49 @@ @@ -96,18 +112,49 @@
96 </a> 112 </a>
97 </li> 113 </li>
98 <li> 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 </a> 118 </a>
103 </li> 119 </li>
104 <li class="divider"></li> 120 <li class="divider"></li>
105 <li> 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 </a> 140 </a>
110 </li> 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 </ul> 158 </ul>
112 </div> 159 </div>
113 160
src/main/resources/static/pages/scheduleApp/module/core/timeTableManage/list.html
@@ -70,14 +70,14 @@ @@ -70,14 +70,14 @@
70 class="btn default blue-stripe btn-sm"> 编辑 </a> 70 class="btn default blue-stripe btn-sm"> 编辑 </a>
71 <a ng-click="ctrl.importData($index)" class="btn default blue-stripe btn-sm"> 导入 </a> 71 <a ng-click="ctrl.importData($index)" class="btn default blue-stripe btn-sm"> 导入 </a>
72 <a href="javascript:" class="btn default blue-stripe btn-sm"> 导出 </a> 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 </td> 74 </td>
75 <td> 75 <td>
76 <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> 76 <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>-->
77 <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>--> 77 <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>-->
78 <a ui-sref="timeTableManage_detail({id: info.id})" class="btn default blue-stripe btn-sm"> 详细 </a> 78 <a ui-sref="timeTableManage_detail({id: info.id})" class="btn default blue-stripe btn-sm"> 详细 </a>
79 <a ui-sref="timeTableManage_edit({id: info.id})" class="btn default blue-stripe btn-sm"> 修改 </a> 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 </td> 81 </td>
82 </tr> 82 </tr>
83 </tbody> 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,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 angular.module('ScheduleApp').controller('TimeTableDetailManageFormCtrl', ['TimeTableDetailManageService', '$stateParams', '$state', function(timeTableDetailManageService, $stateParams, $state) { 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,14 +195,14 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;TimeTableManageListCtrl&#39;, [&#39;TimeTableM
195 // TODO: 195 // TODO:
196 timeTableManageService.deleteDetail(id).then( 196 timeTableManageService.deleteDetail(id).then(
197 function(result) { 197 function(result) {
198 - alert("删除成功!"); 198 + alert("作废成功!");
199 199
200 timeTableManageService.getPage().then( 200 timeTableManageService.getPage().then(
201 function(result) { 201 function(result) {
202 self.pageInfo.totalItems = result.totalElements; 202 self.pageInfo.totalItems = result.totalElements;
203 self.pageInfo.currentPage = result.number + 1; 203 self.pageInfo.currentPage = result.number + 1;
204 self.pageInfo.infos = result.content; 204 self.pageInfo.infos = result.content;
205 - schedulePlanManageService.setCurrentPageNo(result.number + 1); 205 + timeTableManageService.setCurrentPageNo(result.number + 1);
206 }, 206 },
207 function(result) { 207 function(result) {
208 alert("出错啦!"); 208 alert("出错啦!");
src/test/java/com/bsth/service/schedule/rules/DroolsRulesTest.java
@@ -65,7 +65,7 @@ public class DroolsRulesTest { @@ -65,7 +65,7 @@ public class DroolsRulesTest {
65 65
66 ScheduleCalcuParam_input scheduleCalcuParam_input = new ScheduleCalcuParam_input(); 66 ScheduleCalcuParam_input scheduleCalcuParam_input = new ScheduleCalcuParam_input();
67 scheduleCalcuParam_input.setFromDate(new DateTime(2016, 8, 1, 0, 0)); 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 scheduleCalcuParam_input.setTtinfoId(1L); 69 scheduleCalcuParam_input.setTtinfoId(1L);
70 70
71 ScheduleRule_input scheduleRule_input1 = new ScheduleRule_input(); 71 ScheduleRule_input scheduleRule_input1 = new ScheduleRule_input();