Commit 1ad45fdde4a35b5eeba192b09b37d02889321717

Authored by 潘钊
2 parents c946a0a6 1ff7296b

Merge branch 'minhang' into qingpu

Showing 37 changed files with 3200 additions and 1341 deletions

Too many changes to show.

To preserve performance only 37 of 60 files are displayed.

hs_err_pid6460.log deleted 100644 → 0
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/controller/DownloadController.java
... ... @@ -28,11 +28,10 @@ public class DownloadController
28 28 {
29 29  
30 30 @RequestMapping("download")
31   - public ResponseEntity<byte[]> download(String jName,String lpName) throws IOException {
32   - String moudelPath = this.getClass().getResource("/").getPath()+ "static\\pages\\forms\\export\\"+jName+".xls";
33   -// System.out.println(moudelPath);
34   - String fileName = jName+lpName+".xls";
35   -// String path="D:\\export\\target\\"+jName+".xls";
  31 + public ResponseEntity<byte[]> download(String fileName) throws IOException {
  32 + fileName = fileName+".xls";
  33 + String moudelPath = this.getClass().getResource("/").getPath()+ "static\\pages\\forms\\export\\"+fileName;
  34 +// String path="D:\\export\\target\\"+jName+".xls";
36 35 File file=new File(moudelPath);
37 36 HttpHeaders headers = new HttpHeaders();
38 37 String realFileName=new String(fileName.getBytes("UTF-8"),"iso-8859-1");//为了解决中文名称乱码问题
... ...
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
... ... @@ -300,8 +300,8 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
300 300 }
301 301  
302 302 @RequestMapping(value = "/dailyInfo")
303   - public List<Map<String, Object>> dailyInfo(@RequestParam String line, @RequestParam String date) {
304   - return scheduleRealInfoService.dailyInfo(line, date);
  303 + public List<Map<String, Object>> dailyInfo(@RequestParam String line, @RequestParam String date,@RequestParam String type) {
  304 + return scheduleRealInfoService.dailyInfo(line, date, type);
305 305 }
306 306  
307 307 @RequestMapping(value = "/historyMessage")
... ... @@ -336,9 +336,33 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
336 336 @RequestParam String endDate,@RequestParam String lpName,@RequestParam String code) {
337 337 return scheduleRealInfoService.correctForm(line, startDate, endDate, lpName, code);
338 338 }
339   -
  339 + /**
  340 + * @Title queryListWaybill
  341 + * @Description 查询行车路单列表
  342 + * @param jName 驾驶员名字
  343 + * @param clZbh 车辆自编号(内部编号)
  344 + * @param lpName 路牌
  345 + * @return
  346 + */
340 347 @RequestMapping(value="/queryListWaybill")
341 348 public List<ScheduleRealInfo> queryListWaybill(@RequestParam String jName,@RequestParam String clZbh,@RequestParam String lpName){
342 349 return scheduleRealInfoService.queryListWaybill(jName, clZbh,lpName);
343 350 }
  351 +
  352 + @RequestMapping(value="/statisticsDaily")
  353 + public List<Map<String,Object>> statisticsDaily(@RequestParam String line,@RequestParam String date,@RequestParam String xlName){
  354 + return scheduleRealInfoService.statisticsDaily(line, date,xlName);
  355 + }
  356 +
  357 + /**
  358 + * @Title: scheduleDaily
  359 + * @Description: TODO(调度日报表)
  360 + * @param line 线路
  361 + * @param date 时间
  362 + * @return
  363 + */
  364 + @RequestMapping(value="/scheduleDaily")
  365 + public List<Object> scheduleDaily(@RequestParam String line,@RequestParam String date){
  366 + return scheduleRealInfoService.scheduleDaily(line,date);
  367 + }
344 368 }
... ...
src/main/java/com/bsth/controller/sys/UserController.java
... ... @@ -4,23 +4,30 @@ import javax.servlet.http.HttpServletRequest;
4 4 import javax.servlet.http.HttpServletResponse;
5 5 import javax.servlet.http.HttpSession;
6 6  
  7 +import org.springframework.beans.factory.annotation.Autowired;
7 8 import org.springframework.security.authentication.BadCredentialsException;
8 9 import org.springframework.security.core.Authentication;
9 10 import org.springframework.security.core.context.SecurityContextHolder;
  11 +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
10 12 import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
11 13 import org.springframework.security.web.authentication.session.SessionAuthenticationException;
12 14 import org.springframework.web.bind.annotation.RequestMapping;
  15 +import org.springframework.web.bind.annotation.RequestParam;
13 16 import org.springframework.web.bind.annotation.RestController;
14 17 import org.springframework.web.servlet.ModelAndView;
15 18  
16 19 import com.bsth.controller.BaseController;
17 20 import com.bsth.entity.sys.SysUser;
18 21 import com.bsth.security.util.SecurityUtils;
  22 +import com.bsth.service.sys.SysUserService;
19 23  
20 24 @RestController
21 25 @RequestMapping("user")
22 26 public class UserController extends BaseController<SysUser, Integer>{
23 27  
  28 + @Autowired
  29 + SysUserService sysUserService;
  30 +
24 31 /**
25 32 *
26 33 * @Title: loginFailure
... ... @@ -65,4 +72,45 @@ public class UserController extends BaseController&lt;SysUser, Integer&gt;{
65 72 public SysUser currentUser(){
66 73 return SecurityUtils.getCurrentUser();
67 74 }
  75 +
  76 + /**
  77 + * @Title changeEnabled
  78 + * @Description: TODO(改变用户状态)
  79 + * @param id 用户ID
  80 + * @param enabled 状态
  81 + * @return
  82 + */
  83 + @RequestMapping("/changeEnabled")
  84 + public int changeEnabled(@RequestParam int id,@RequestParam int enabled){
  85 + return sysUserService.changeEnabled(id,enabled);
  86 + }
  87 +
  88 + /**
  89 + * @Title changePWD
  90 + * @Description: TODO(修改密码)
  91 + * @param oldPWD 原始密码
  92 + * @param newwPWD 新密码
  93 + * @param cnewPWD 确认新密码
  94 + * @return
  95 + */
  96 + @RequestMapping("/changePWD")
  97 + public String changePWD(@RequestParam String oldPWD,@RequestParam String newPWD,@RequestParam String cnewPWD){
  98 + SysUser sysUser = SecurityUtils.getCurrentUser();
  99 + String msg = "";
  100 + if(new BCryptPasswordEncoder(4).matches(oldPWD, sysUser.getPassword())){
  101 + if(oldPWD.equals(newPWD)){
  102 + msg = "新密码不能跟原始密码一样!";
  103 + }else{
  104 + if(newPWD.equals(cnewPWD)){
  105 + sysUserService.changePWD(sysUser.getId(),newPWD);
  106 + msg = "修改成功!";
  107 + }else{
  108 + msg= "新密码两次输入不一致!";
  109 + }
  110 + }
  111 + }else{
  112 + msg = "原始密码错误!";
  113 + }
  114 + return msg;
  115 + }
68 116 }
... ...
src/main/java/com/bsth/data/BasicData.java
1 1 package com.bsth.data;
2 2  
  3 +import java.util.HashMap;
  4 +import java.util.Iterator;
  5 +import java.util.Map;
  6 +
  7 +import org.slf4j.Logger;
  8 +import org.slf4j.LoggerFactory;
  9 +import org.springframework.beans.factory.annotation.Autowired;
  10 +import org.springframework.stereotype.Component;
  11 +
  12 +import com.bsth.entity.CarPark;
  13 +import com.bsth.entity.Cars;
  14 +import com.bsth.entity.Line;
  15 +import com.bsth.entity.Station;
  16 +import com.bsth.entity.schedule.CarConfigInfo;
  17 +import com.bsth.repository.CarParkRepository;
  18 +import com.bsth.repository.CarsRepository;
  19 +import com.bsth.repository.LineRepository;
  20 +import com.bsth.repository.StationRepository;
  21 +import com.bsth.repository.schedule.CarConfigInfoRepository;
  22 +import com.google.common.collect.BiMap;
  23 +import com.google.common.collect.HashBiMap;
  24 +import com.google.common.collect.TreeMultimap;
  25 +
3 26 /**
4 27 *
5   - * @ClassName: BasicData
6   - * @Description: TODO(基础的映射数据)
  28 + * @ClassName: BasicData
  29 + * @Description: TODO(基础的映射数据)
7 30 * @author PanZhao
8   - * @date 2016年8月10日 下午3:27:45
  31 + * @date 2016年8月10日 下午3:27:45
9 32 *
10 33 */
  34 +@Component
11 35 public class BasicData {
12 36  
  37 + //设备号和车辆自编号 (K: 设备编码 ,V:车辆自编号)
  38 + public static BiMap<String, String> deviceId2NbbmMap;
  39 +
  40 + //车辆自编号和公司代码对照 (K: 车辆自编号 ,V:公司代码)
  41 + public static Map<String, String> nbbm2CompanyCodeMap;
  42 +
  43 + //站点编码和名称对照,包括停车场 (K: 站点编码 ,V:站点名称)
  44 + public static Map<String, String> stationCode2NameMap;
  45 +
  46 + //车辆和线路对照
  47 + public static Map<String, Line> nbbm2LineMap;
  48 +
  49 + //线路和用户对照 用于webSocket定向推送消息(用户进入线调时写入数据)
  50 + public static TreeMultimap<Integer, String> lineCode2SocketUserMap = TreeMultimap.create();
  51 +
  52 + //线路ID和code 对照
  53 + public static BiMap<Integer, Integer> lineId2CodeMap;
  54 +
  55 + @Autowired
  56 + BasicDataLoader basicDataLoader;
  57 +
  58 + Logger logger = LoggerFactory.getLogger(this.getClass());
  59 +
  60 + /**
  61 + *
  62 + * @Title: loadAllData
  63 + * @Description: TODO(加载所有数据)
  64 + * @throws
  65 + */
  66 + public int loadAllData(){
  67 + try{
  68 + basicDataLoader.loadDeviceInfo();
  69 + basicDataLoader.loadStationInfo();
  70 + basicDataLoader.loadLineInfo();
  71 + basicDataLoader.loadNbbm2LineInfo();
  72 + }catch(Exception e){
  73 + logger.error("加载基础数据时出现异常," , e);
  74 + }
  75 + return 0;
  76 + }
  77 +
  78 + @Component
  79 + public class BasicDataLoader{
  80 +
  81 + @Autowired
  82 + CarsRepository carsRepository;
  83 +
  84 + @Autowired
  85 + StationRepository stationRepository;
  86 +
  87 + @Autowired
  88 + CarParkRepository carParkRepository;
  89 +
  90 + @Autowired
  91 + CarConfigInfoRepository carConfigInfoRepository;
  92 +
  93 + @Autowired
  94 + LineRepository lineRepository;
  95 +
  96 + /**
  97 + *
  98 + * @Title: loadDeviceInfo
  99 + * @Description: TODO(加载设备相关信息)
  100 + * @throws
  101 + */
  102 + public void loadDeviceInfo(){
  103 + BiMap<String, String> deviceId2Nbbm = HashBiMap.create();
  104 + //车辆和公司代码对照
  105 + Map<String, String> nbbm2CompanyCode = new HashMap<>();
  106 + Iterator<Cars> carIterator = carsRepository.findAll().iterator();
  107 + Cars car;
  108 + while(carIterator.hasNext()){
  109 + car = carIterator.next();
  110 + deviceId2Nbbm.put(car.getEquipmentCode(), car.getInsideCode());
  111 + nbbm2CompanyCode.put(car.getInsideCode(), car.getBusinessCode());
  112 + }
  113 +
  114 + deviceId2NbbmMap = deviceId2Nbbm;
  115 + nbbm2CompanyCodeMap = nbbm2CompanyCode;
  116 + }
  117 +
  118 + /**
  119 + *
  120 + * @Title: loadStationInfo
  121 + * @Description: TODO(加载站点信息)
  122 + * @throws
  123 + */
  124 + public void loadStationInfo(){
  125 + Map<String, String> stationCode2Name = new HashMap<>();
  126 + Iterator<Station> iterator = stationRepository.findAll().iterator();
  127 + //站点
  128 + Station station;
  129 + while(iterator.hasNext()){
  130 + station = iterator.next();
  131 + stationCode2Name.put(station.getStationCod(), station.getStationName());
  132 + }
  133 + //停车场
  134 + Iterator<CarPark> iterator2 = carParkRepository.findAll().iterator();
  135 + CarPark carPark;
  136 + while(iterator2.hasNext()){
  137 + carPark = iterator2.next();
  138 + stationCode2Name.put(carPark.getParkCode(), carPark.getParkName());
  139 + }
  140 +
  141 + stationCode2NameMap = stationCode2Name;
  142 + }
  143 +
  144 + /**
  145 + *
  146 + * @Title: loadNbbm2LineInfo
  147 + * @Description: TODO(车辆和线路对照)
  148 + * @throws
  149 + */
  150 + public void loadNbbm2LineInfo(){
  151 + Iterator<CarConfigInfo> allIterator = carConfigInfoRepository.findAll().iterator();
  152 + Map<String, Line> ccMap = new HashMap<>();
  153 +
  154 + CarConfigInfo cci;
  155 + while(allIterator.hasNext()){
  156 + cci = allIterator.next();
  157 + ccMap.put(cci.getCl().getInsideCode(), cci.getXl());
  158 + }
  159 + nbbm2LineMap = ccMap;
  160 + }
  161 +
  162 + /**
  163 + *
  164 + * @Title: loadLineInfo
  165 + * @Description: TODO(加载线路相关信息)
  166 + * @throws
  167 + */
  168 + public void loadLineInfo(){
  169 + Iterator<Line> iterator = lineRepository.findAll().iterator();
  170 +
  171 + Line line;
  172 + BiMap<Integer, Integer> biMap = HashBiMap.create();
  173 + while(iterator.hasNext()){
  174 + line = iterator.next();
  175 + biMap.put(line.getId(), Integer.parseInt(line.getLineCode()));
  176 + }
  177 +
  178 + lineId2CodeMap = biMap;
  179 + }
  180 + }
13 181 }
... ...
src/main/java/com/bsth/data/DirectiveData.java
... ... @@ -9,5 +9,6 @@ package com.bsth.data;
9 9 *
10 10 */
11 11 public class DirectiveData {
12   -
  12 +
  13 +
13 14 }
... ...
src/main/java/com/bsth/data/ScheduleData.java
... ... @@ -9,5 +9,5 @@ package com.bsth.data;
9 9 *
10 10 */
11 11 public class ScheduleData {
12   -
  12 +
13 13 }
... ...
src/main/java/com/bsth/data/directive/Consts.java 0 → 100644
  1 +package com.bsth.data.directive;
  2 +
  3 +
  4 +public class Consts {
  5 +
  6 + /**
  7 + * 调度指令 -多营运状态 [0][0]上行营运 [0][1]上行非营运 [1][0]下行营运 [1][1]下行非营运
  8 + */
  9 + public static final int[][] SERVICE_STATE = { { 0, 0x02000000 }, { 0x10000000, 0x12000000 } };
  10 +
  11 +}
... ...
src/main/java/com/bsth/data/directive/MsgIdGenerator.java 0 → 100644
  1 +package com.bsth.data.directive;
  2 +
  3 +/**
  4 + *
  5 + * @ClassName: MsgIdGenerator
  6 + * @Description: TODO(指令下发 msgId 生成器)
  7 + * @author PanZhao
  8 + * @date 2016年6月7日 下午4:38:04
  9 + *
  10 + */
  11 +public class MsgIdGenerator {
  12 +
  13 + private static int msgId = 1;
  14 +
  15 + private final static int MAX_VALUE = Integer.MAX_VALUE - 10;
  16 +
  17 + public synchronized static int getMsgId(){
  18 + msgId ++;
  19 + if(msgId == MAX_VALUE)
  20 + msgId = 0;
  21 + return msgId;
  22 + }
  23 +
  24 + public static void setMsgId(int maxId){
  25 + msgId = maxId;
  26 + }
  27 +}
... ...
src/main/java/com/bsth/data/gpsdata/GpsRealDataList.java 0 → 100644
  1 +package com.bsth.data.gpsdata;
  2 +
  3 +import java.io.BufferedReader;
  4 +import java.io.InputStreamReader;
  5 +import java.util.ArrayList;
  6 +import java.util.HashMap;
  7 +import java.util.List;
  8 +import java.util.Map;
  9 +import java.util.NavigableSet;
  10 +
  11 +import org.apache.http.HttpEntity;
  12 +import org.apache.http.client.methods.CloseableHttpResponse;
  13 +import org.apache.http.client.methods.HttpGet;
  14 +import org.apache.http.impl.client.CloseableHttpClient;
  15 +import org.apache.http.impl.client.HttpClients;
  16 +import org.slf4j.Logger;
  17 +import org.slf4j.LoggerFactory;
  18 +
  19 +import com.alibaba.fastjson.JSON;
  20 +import com.alibaba.fastjson.JSONObject;
  21 +import com.bsth.data.BasicData;
  22 +import com.bsth.util.ConfigUtil;
  23 +import com.bsth.vehicle.gpsdata.entity.GpsRealData;
  24 +import com.google.common.collect.TreeMultimap;
  25 +
  26 +/**
  27 + *
  28 + * @ClassName: GpsRealDataBuffer
  29 + * @Description: TODO(实时GPS数据集合)
  30 + * @author PanZhao
  31 + * @date 2016年8月12日 下午2:04:41
  32 + *
  33 + */
  34 +public class GpsRealDataList {
  35 +
  36 + private static Map<String, GpsRealData> gpsMap;
  37 +
  38 + private static TreeMultimap<Integer, String> lineCode2Devices;
  39 +
  40 + // 网关数据接口地址
  41 + private static String url;
  42 +
  43 + static{
  44 + gpsMap = new HashMap<>();
  45 + lineCode2Devices = TreeMultimap.create();
  46 + url = ConfigUtil.get("http.gps.real.url");
  47 + }
  48 +
  49 + static Logger logger = LoggerFactory.getLogger(GpsRealDataList.class);
  50 +
  51 + public static GpsRealData add(GpsRealData gps) {
  52 + String device = gps.getDeviceId();
  53 + gpsMap.put(device, gps);
  54 + lineCode2Devices.put(gps.getLineId(), device);
  55 + return gps;
  56 + }
  57 +
  58 + /**
  59 + *
  60 + * @Title: get @Description: TODO(设备号获取GPS) @param @param deviceId @throws
  61 + */
  62 + public static GpsRealData get(String deviceId) {
  63 + return gpsMap.get(deviceId);
  64 + }
  65 +
  66 + /**
  67 + *
  68 + * @Title: get @Description: TODO(线路编码获取GPS集合) @throws
  69 + */
  70 + public static List<GpsRealData> get(Integer lineCode) {
  71 + NavigableSet<String> set = lineCode2Devices.get(lineCode);
  72 +
  73 + List<GpsRealData> rs = new ArrayList<>();
  74 + for(String device : set){
  75 + rs.add(gpsMap.get(device));
  76 + }
  77 +
  78 + return rs;
  79 + }
  80 +
  81 + public static void LoadGpsRealData() throws Exception {
  82 + List<GpsRealData> list = new ArrayList<>();
  83 + CloseableHttpClient httpClient = null;
  84 +
  85 + try {
  86 + httpClient = HttpClients.createDefault();
  87 + HttpGet get = new HttpGet(url);
  88 +
  89 + CloseableHttpResponse response = httpClient.execute(get);
  90 +
  91 + try {
  92 + HttpEntity entity = response.getEntity();
  93 + if (null != entity) {
  94 + // 返回数据量比较大,建议以流的形式读取
  95 + BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));
  96 + StringBuffer stringBuffer = new StringBuffer();
  97 + String str = "";
  98 + while ((str = br.readLine()) != null)
  99 + stringBuffer.append(str);
  100 +
  101 + JSONObject jsonObj = JSON.parseObject(stringBuffer.toString());
  102 +
  103 + if (jsonObj != null)
  104 + list = JSON.parseArray(jsonObj.getString("data"), GpsRealData.class);
  105 +
  106 + for(GpsRealData gps : list){
  107 + gps.setNbbm(BasicData.deviceId2NbbmMap.get(gps));
  108 + add(gps);
  109 + }
  110 + } else
  111 + logger.error("result is null");
  112 + } finally {
  113 + response.close();
  114 + }
  115 +
  116 + } finally {
  117 + if (null != httpClient)
  118 + httpClient.close();
  119 + }
  120 + }
  121 +}
... ...
src/main/java/com/bsth/data/gpsdata/GpsRealEntity.java 0 → 100644
  1 +package com.bsth.data.gpsdata;
  2 +
  3 +/**
  4 + *
  5 + * @ClassName: GpsRealData
  6 + * @Description: TODO(HTTP接口的实时GPS数据)
  7 + * @author PanZhao
  8 + * @date 2016年5月11日 下午4:32:07
  9 + *
  10 + */
  11 +public class GpsRealEntity {
  12 +
  13 + /** 公司代码 */
  14 + private Integer companyCode;
  15 +
  16 + /** 线路编码 */
  17 + private Integer lineId;
  18 +
  19 + /** 设备编码 */
  20 + private String deviceId;
  21 +
  22 + /** 停车场编码 */
  23 + private String carparkNo;
  24 +
  25 + /** 站点编码 */
  26 + private String stopNo;
  27 +
  28 + /** 经度 */
  29 + private Float lon;
  30 +
  31 + /** 纬度 */
  32 + private Float lat;
  33 +
  34 + /** 发送时间戳 */
  35 + private Long timestamp;
  36 +
  37 + /** 速度 */
  38 + private Float speed;
  39 +
  40 + /** 方向(角度) */
  41 + private Float direction;
  42 +
  43 + /** 营运状态( 0 营运 ,1 非营运, -1 无效) */
  44 + private Integer state;
  45 +
  46 + /** 上下行(0 上行 , 1 下行 , -1 无效) */
  47 + private Integer upDown;
  48 +
  49 + /** 车辆内部编码 */
  50 + private String nbbm;
  51 +
  52 + /** 站点名称 */
  53 + private String stationName;
  54 +
  55 + /** 当前班次ID */
  56 + private Long currSchId;
  57 +
  58 + /** 下一个班次ID */
  59 + private Long nextSchId;
  60 +
  61 + /** 设备是否在线 */
  62 + private boolean online;
  63 +
  64 + public Integer getCompanyCode() {
  65 + return companyCode;
  66 + }
  67 +
  68 + public void setCompanyCode(Integer companyCode) {
  69 + this.companyCode = companyCode;
  70 + }
  71 +
  72 + public Integer getLineId() {
  73 + return lineId;
  74 + }
  75 +
  76 + public void setLineId(Integer lineId) {
  77 + this.lineId = lineId;
  78 + }
  79 +
  80 + public String getDeviceId() {
  81 + return deviceId;
  82 + }
  83 +
  84 + public void setDeviceId(String deviceId) {
  85 + this.deviceId = deviceId;
  86 + }
  87 +
  88 + public String getCarparkNo() {
  89 + return carparkNo;
  90 + }
  91 +
  92 + public void setCarparkNo(String carparkNo) {
  93 + this.carparkNo = carparkNo;
  94 + }
  95 +
  96 + public String getStopNo() {
  97 + return stopNo;
  98 + }
  99 +
  100 + public void setStopNo(String stopNo) {
  101 + this.stopNo = stopNo;
  102 + }
  103 +
  104 + public Float getLon() {
  105 + return lon;
  106 + }
  107 +
  108 + public void setLon(Float lon) {
  109 + this.lon = lon;
  110 + }
  111 +
  112 + public Float getLat() {
  113 + return lat;
  114 + }
  115 +
  116 + public void setLat(Float lat) {
  117 + this.lat = lat;
  118 + }
  119 +
  120 + public Long getTimestamp() {
  121 + return timestamp;
  122 + }
  123 +
  124 + public void setTimestamp(Long timestamp) {
  125 + this.timestamp = timestamp;
  126 + }
  127 +
  128 + public Float getSpeed() {
  129 + return speed;
  130 + }
  131 +
  132 + public void setSpeed(Float speed) {
  133 + this.speed = speed;
  134 + }
  135 +
  136 + public Float getDirection() {
  137 + return direction;
  138 + }
  139 +
  140 + public void setDirection(Float direction) {
  141 + this.direction = direction;
  142 + }
  143 +
  144 + public Integer getState() {
  145 + return state;
  146 + }
  147 +
  148 + public void setState(Integer state) {
  149 + this.state = state;
  150 + }
  151 +
  152 + public Integer getUpDown() {
  153 + return upDown;
  154 + }
  155 +
  156 + public void setUpDown(Integer upDown) {
  157 + this.upDown = upDown;
  158 + }
  159 +
  160 + public Long getCurrSchId() {
  161 + return currSchId;
  162 + }
  163 +
  164 + public void setCurrSchId(Long currSchId) {
  165 + this.currSchId = currSchId;
  166 + }
  167 +
  168 + public Long getNextSchId() {
  169 + return nextSchId;
  170 + }
  171 +
  172 + public void setNextSchId(Long nextSchId) {
  173 + this.nextSchId = nextSchId;
  174 + }
  175 +
  176 + public String getNbbm() {
  177 + return nbbm;
  178 + }
  179 +
  180 + public void setNbbm(String nbbm) {
  181 + this.nbbm = nbbm;
  182 + }
  183 +
  184 + public String getStationName() {
  185 + return stationName;
  186 + }
  187 +
  188 + public void setStationName(String stationName) {
  189 + this.stationName = stationName;
  190 + }
  191 +
  192 + public boolean isOnline() {
  193 + return online;
  194 + }
  195 +
  196 + public void setOnline(boolean online) {
  197 + this.online = online;
  198 + }
  199 +}
... ...
src/main/java/com/bsth/entity/directive/D60.java 0 → 100644
  1 +package com.bsth.entity.directive;
  2 +
  3 +import javax.persistence.Embeddable;
  4 +import javax.persistence.Entity;
  5 +import javax.persistence.FetchType;
  6 +import javax.persistence.GeneratedValue;
  7 +import javax.persistence.Id;
  8 +import javax.persistence.ManyToOne;
  9 +import javax.persistence.NamedAttributeNode;
  10 +import javax.persistence.NamedEntityGraph;
  11 +import javax.persistence.NamedEntityGraphs;
  12 +import javax.persistence.Table;
  13 +import javax.persistence.Transient;
  14 +
  15 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  16 +import com.fasterxml.jackson.annotation.JsonIgnore;
  17 +
  18 +
  19 +/**
  20 + *
  21 + * @ClassName: D60
  22 + * @Description: TODO(调度指令)
  23 + * @author PanZhao
  24 + * @date 2016年6月7日 上午10:21:59
  25 + *
  26 + */
  27 +@Entity
  28 +@Table(name = "bsth_v_directive_60")
  29 +@NamedEntityGraphs({
  30 + @NamedEntityGraph(name = "directive60_sch", attributeNodes = {
  31 + @NamedAttributeNode("sch")
  32 + })
  33 +})
  34 +public class D60 extends Directive{
  35 +
  36 + @Id
  37 + @GeneratedValue
  38 + private Integer id;
  39 +
  40 + /**
  41 + * 数据
  42 + */
  43 + private DirectiveData data;
  44 +
  45 + /**
  46 + * 唯一标识
  47 + */
  48 + @Transient
  49 + private Integer msgId;
  50 +
  51 + /**
  52 + * 46上行
  53 + */
  54 + private Short reply46 = -1;
  55 +
  56 + /**
  57 + * 47上行
  58 + */
  59 + private Short reply47 = -1;
  60 +
  61 + /**
  62 + * 是否是调度指令
  63 + * 目前调度指令和消息短语都是短语下发,所以从协议上无法区分
  64 + */
  65 + private boolean isDispatch;
  66 +
  67 + /**
  68 + * 相关联的班次
  69 + */
  70 + @JsonIgnore
  71 + @ManyToOne(fetch = FetchType.LAZY)
  72 + private ScheduleRealInfo sch;
  73 +
  74 + @Embeddable
  75 + public static class DirectiveData {
  76 + // 公司代码
  77 + private short companyCode;
  78 +
  79 + // 设备号
  80 + @Transient
  81 + private String deviceId;
  82 +
  83 + // 时间戳
  84 + @Transient
  85 + private Long timestamp;
  86 +
  87 + // 保留 默认0
  88 + private short instructType = 0;
  89 +
  90 + /*
  91 + * 调度指令 调度指令。
  92 + * 0X00表示信息短语
  93 + * 0X01表示取消上次指令+调度指令(闹钟有效)
  94 + * 0x02表示为调度指令(闹钟有效)
  95 + * 0x03表示运营状态指令(闹钟无效)
  96 + * 0x04表示其他指令
  97 + */
  98 + private Short dispatchInstruct;
  99 +
  100 + // 唯一标识
  101 + private int msgId;
  102 +
  103 + // 闹钟
  104 + private Long alarmTime;
  105 +
  106 + // 多个运营状态字节
  107 + private Long serviceState;
  108 +
  109 + // 消息文本
  110 + private String txtContent;
  111 +
  112 + public short getCompanyCode() {
  113 + return companyCode;
  114 + }
  115 +
  116 + public void setCompanyCode(short companyCode) {
  117 + this.companyCode = companyCode;
  118 + }
  119 +
  120 + public String getDeviceId() {
  121 + return deviceId;
  122 + }
  123 +
  124 + public void setDeviceId(String deviceId) {
  125 + this.deviceId = deviceId;
  126 + }
  127 +
  128 + public Long getTimestamp() {
  129 + return timestamp;
  130 + }
  131 +
  132 + public void setTimestamp(Long timestamp) {
  133 + this.timestamp = timestamp;
  134 + }
  135 +
  136 + public short getInstructType() {
  137 + return instructType;
  138 + }
  139 +
  140 + public void setInstructType(short instructType) {
  141 + this.instructType = instructType;
  142 + }
  143 +
  144 + public Short getDispatchInstruct() {
  145 + return dispatchInstruct;
  146 + }
  147 +
  148 + public void setDispatchInstruct(Short dispatchInstruct) {
  149 + this.dispatchInstruct = dispatchInstruct;
  150 + }
  151 +
  152 + public int getMsgId() {
  153 + return msgId;
  154 + }
  155 +
  156 + public void setMsgId(int msgId) {
  157 + this.msgId = msgId;
  158 + }
  159 +
  160 + public Long getAlarmTime() {
  161 + return alarmTime;
  162 + }
  163 +
  164 + public void setAlarmTime(Long alarmTime) {
  165 + this.alarmTime = alarmTime;
  166 + }
  167 +
  168 + public Long getServiceState() {
  169 + return serviceState;
  170 + }
  171 +
  172 + public void setServiceState(Long serviceState) {
  173 + this.serviceState = serviceState;
  174 + }
  175 +
  176 + public String getTxtContent() {
  177 + return txtContent;
  178 + }
  179 +
  180 + public void setTxtContent(String txtContent) {
  181 + this.txtContent = txtContent;
  182 + }
  183 + }
  184 +
  185 + public Integer getId() {
  186 + return id;
  187 + }
  188 +
  189 + public void setId(Integer id) {
  190 + this.id = id;
  191 + }
  192 +
  193 + public short getOperCode() {
  194 + return operCode;
  195 + }
  196 +
  197 + public void setOperCode(short operCode) {
  198 + this.operCode = operCode;
  199 + }
  200 +
  201 + public DirectiveData getData() {
  202 + return data;
  203 + }
  204 +
  205 + public void setData(DirectiveData data) {
  206 + this.data = data;
  207 + }
  208 +
  209 + public Integer getMsgId() {
  210 + if(this.msgId != null)
  211 + return this.msgId;
  212 + else
  213 + return this.getData().getMsgId();
  214 + }
  215 +
  216 + public void setMsgId(Integer msgId) {
  217 + this.msgId = msgId;
  218 + }
  219 +
  220 + @Override
  221 + public void setTimestamp(Long timestamp) {
  222 + if(this.data != null)
  223 + this.data.setTimestamp(timestamp);
  224 +
  225 + this.timestamp = timestamp;
  226 + }
  227 +
  228 + @Override
  229 + public void setDeviceId(String deviceId) {
  230 + if(this.data != null)
  231 + this.data.setDeviceId(deviceId);
  232 +
  233 + this.deviceId = deviceId;
  234 + }
  235 +
  236 + public Short getReply46() {
  237 + return reply46;
  238 + }
  239 +
  240 + public void setReply46(Short reply46) {
  241 + this.reply46 = reply46;
  242 + }
  243 +
  244 + public Short getReply47() {
  245 + return reply47;
  246 + }
  247 +
  248 + public void setReply47(Short reply47) {
  249 + this.reply47 = reply47;
  250 + }
  251 +
  252 + public boolean isDispatch() {
  253 + return isDispatch;
  254 + }
  255 +
  256 + public void setDispatch(boolean isDispatch) {
  257 + this.isDispatch = isDispatch;
  258 + }
  259 +
  260 + public ScheduleRealInfo getSch() {
  261 + return sch;
  262 + }
  263 +
  264 + public void setSch(ScheduleRealInfo sch) {
  265 + this.sch = sch;
  266 + }
  267 +}
... ...
src/main/java/com/bsth/entity/directive/D64.java 0 → 100644
  1 +package com.bsth.entity.directive;
  2 +
  3 +import javax.persistence.Table;
  4 +import javax.persistence.Transient;
  5 +import javax.persistence.Embeddable;
  6 +import javax.persistence.Entity;
  7 +import javax.persistence.GeneratedValue;
  8 +import javax.persistence.Id;
  9 +
  10 +/**
  11 + *
  12 + * @ClassName: D64
  13 + * @Description: TODO(线路切换指令)
  14 + * @author PanZhao
  15 + * @date 2016年6月8日 下午1:41:15
  16 + *
  17 + */
  18 +@Entity
  19 +@Table(name = "bsth_v_directive_64")
  20 +public class D64 extends Directive{
  21 +
  22 + @Id
  23 + @GeneratedValue
  24 + private Integer id;
  25 +
  26 + /**
  27 + * 设备响应应答字
  28 + * 0x06同意 0x15不同意
  29 + */
  30 + private Short respAck;
  31 +
  32 + private LineChangeData data;
  33 +
  34 + @Embeddable
  35 + public static class LineChangeData {
  36 +
  37 + private Short cityCode;
  38 +
  39 + @Transient
  40 + private String deviceId;
  41 +
  42 + private String lineId;
  43 +
  44 + public Short getCityCode() {
  45 + return cityCode;
  46 + }
  47 +
  48 + public void setCityCode(Short cityCode) {
  49 + this.cityCode = cityCode;
  50 + }
  51 +
  52 + public String getDeviceId() {
  53 + return deviceId;
  54 + }
  55 +
  56 + public void setDeviceId(String deviceId) {
  57 + this.deviceId = deviceId;
  58 + }
  59 +
  60 + public String getLineId() {
  61 + return lineId;
  62 + }
  63 +
  64 + public void setLineId(String lineId) {
  65 + this.lineId = lineId;
  66 + }
  67 + }
  68 +
  69 + public Integer getId() {
  70 + return id;
  71 + }
  72 +
  73 + public void setId(Integer id) {
  74 + this.id = id;
  75 + }
  76 +
  77 + public LineChangeData getData() {
  78 + return data;
  79 + }
  80 +
  81 + public void setData(LineChangeData data) {
  82 + this.data = data;
  83 + }
  84 +
  85 + public Short getRespAck() {
  86 + return respAck;
  87 + }
  88 +
  89 + public void setRespAck(Short respAck) {
  90 + this.respAck = respAck;
  91 + }
  92 +
  93 + @Override
  94 + public void setDeviceId(String deviceId) {
  95 + if(this.data != null)
  96 + this.data.setDeviceId(deviceId);
  97 +
  98 + this.deviceId = deviceId;
  99 + }
  100 +}
... ...
src/main/java/com/bsth/entity/directive/D80.java 0 → 100644
  1 +package com.bsth.entity.directive;
  2 +
  3 +import java.util.Date;
  4 +
  5 +import javax.persistence.CascadeType;
  6 +import javax.persistence.Embeddable;
  7 +import javax.persistence.Entity;
  8 +import javax.persistence.FetchType;
  9 +import javax.persistence.GeneratedValue;
  10 +import javax.persistence.Id;
  11 +import javax.persistence.NamedAttributeNode;
  12 +import javax.persistence.NamedEntityGraph;
  13 +import javax.persistence.NamedEntityGraphs;
  14 +import javax.persistence.OneToOne;
  15 +import javax.persistence.Table;
  16 +import javax.persistence.Transient;
  17 +
  18 +/**
  19 + *
  20 + * @ClassName: D80
  21 + * @Description: TODO(驾驶员上报)
  22 + * @author PanZhao
  23 + * @date 2016年6月8日 下午12:36:42
  24 + *
  25 + */
  26 +@Entity
  27 +@Table(name = "bsth_v_report_80")
  28 +@NamedEntityGraphs({
  29 + @NamedEntityGraph(name = "directive80_c0", attributeNodes = {
  30 + @NamedAttributeNode("c0")
  31 + })
  32 +})
  33 +public class D80 {
  34 +
  35 + @Id
  36 + @GeneratedValue
  37 + private Integer id;
  38 +
  39 + /**
  40 + * 设备编号
  41 + */
  42 + private String deviceId;
  43 +
  44 + /**
  45 + * 时间戳(ms)
  46 + */
  47 + private Long timestamp;
  48 +
  49 + /**
  50 + * 一级协议 0xC0
  51 + */
  52 + private Short operCode;
  53 +
  54 + private DriverReportData data;
  55 +
  56 + /**
  57 + * c0 回复
  58 + */
  59 + @OneToOne(cascade = CascadeType.ALL, fetch=FetchType.LAZY)
  60 + private DC0 c0;
  61 +
  62 + /** 调度员是否确认 */
  63 + private boolean confirm;
  64 +
  65 + /** 处理人 */
  66 + private String handleUser;
  67 +
  68 + /** 处理结果 0:同意 -1:不同意 */
  69 + private int confirmRs;
  70 +
  71 + /** 处理时间 */
  72 + private Date handleTime;
  73 +
  74 + @Embeddable
  75 + public static class DriverReportData {
  76 +
  77 + /**
  78 + * 0x86
  79 + */
  80 + private Short operCode2;
  81 +
  82 + /**
  83 + * 请求代码 0xa1 恢复运营 0xa2 申请调档 0xa3 出场请求 0xa5 进场请求 0xa7 加油请求 0x50 车辆故障 0x70
  84 + * 路阻报告 0x60 事故报告 0x11 扣证纠纷 0x12 报警
  85 + */
  86 + private Short requestCode;
  87 +
  88 + /**
  89 + * 线路编码
  90 + */
  91 + private Integer lineId;
  92 +
  93 + /**
  94 + * 车辆内部编码
  95 + */
  96 + @Transient
  97 + private String nbbm;
  98 +
  99 + public Short getOperCode2() {
  100 + return operCode2;
  101 + }
  102 +
  103 + public void setOperCode2(Short operCode2) {
  104 + this.operCode2 = operCode2;
  105 + }
  106 +
  107 + public Short getRequestCode() {
  108 + return requestCode;
  109 + }
  110 +
  111 + public void setRequestCode(Short requestCode) {
  112 + this.requestCode = requestCode;
  113 + }
  114 +
  115 + public Integer getLineId() {
  116 + return lineId;
  117 + }
  118 +
  119 + public void setLineId(Integer lineId) {
  120 + this.lineId = lineId;
  121 + }
  122 +
  123 + public String getNbbm() {
  124 + return nbbm;
  125 + }
  126 +
  127 + public void setNbbm(String nbbm) {
  128 + this.nbbm = nbbm;
  129 + }
  130 + }
  131 +
  132 + @Transient
  133 + private String timeStr;
  134 +
  135 + public Integer getId() {
  136 + return id;
  137 + }
  138 +
  139 + public void setId(Integer id) {
  140 + this.id = id;
  141 + }
  142 +
  143 + public String getDeviceId() {
  144 + return deviceId;
  145 + }
  146 +
  147 + public void setDeviceId(String deviceId) {
  148 + this.deviceId = deviceId;
  149 + }
  150 +
  151 + public Long getTimestamp() {
  152 + return timestamp;
  153 + }
  154 +
  155 + public void setTimestamp(Long timestamp) {
  156 + this.timestamp = timestamp;
  157 + }
  158 +
  159 + public Short getOperCode() {
  160 + return operCode;
  161 + }
  162 +
  163 + public void setOperCode(Short operCode) {
  164 + this.operCode = operCode;
  165 + }
  166 +
  167 + public DriverReportData getData() {
  168 + return data;
  169 + }
  170 +
  171 + public void setData(DriverReportData data) {
  172 + this.data = data;
  173 + }
  174 +
  175 + public DC0 getC0() {
  176 + return c0;
  177 + }
  178 +
  179 + public void setC0(DC0 c0) {
  180 + this.c0 = c0;
  181 + }
  182 +
  183 + public boolean isConfirm() {
  184 + return confirm;
  185 + }
  186 +
  187 + public void setConfirm(boolean confirm) {
  188 + this.confirm = confirm;
  189 + }
  190 +
  191 + public int getConfirmRs() {
  192 + return confirmRs;
  193 + }
  194 +
  195 + public void setConfirmRs(int confirmRs) {
  196 + this.confirmRs = confirmRs;
  197 + }
  198 +
  199 + public String getHandleUser() {
  200 + return handleUser;
  201 + }
  202 +
  203 + public void setHandleUser(String handleUser) {
  204 + this.handleUser = handleUser;
  205 + }
  206 +
  207 + public String getTimeStr() {
  208 + return timeStr;
  209 + }
  210 +
  211 + public void setTimeStr(String timeStr) {
  212 + this.timeStr = timeStr;
  213 + }
  214 +
  215 + public Date getHandleTime() {
  216 + return handleTime;
  217 + }
  218 +
  219 + public void setHandleTime(Date handleTime) {
  220 + this.handleTime = handleTime;
  221 + }
  222 +}
... ...
src/main/java/com/bsth/entity/directive/DC0.java 0 → 100644
  1 +package com.bsth.entity.directive;
  2 +
  3 +import javax.persistence.Embeddable;
  4 +import javax.persistence.Entity;
  5 +import javax.persistence.GeneratedValue;
  6 +import javax.persistence.Id;
  7 +import javax.persistence.Table;
  8 +
  9 +/**
  10 + *
  11 + * @ClassName: DC0
  12 + * @Description: TODO(C0协议,回复驾驶员上报)
  13 + * @author PanZhao
  14 + * @date 2016年7月8日 上午10:19:23
  15 + *
  16 + */
  17 +@Entity
  18 +@Table(name = "bsth_v_C0")
  19 +public class DC0 {
  20 +
  21 + @Id
  22 + @GeneratedValue
  23 + private Integer id;
  24 +
  25 + /**
  26 + * 设备号
  27 + */
  28 + private String deviceId;
  29 +
  30 + /**
  31 + * 时间戳
  32 + */
  33 + private Long timestamp;
  34 +
  35 + /**
  36 + * 一级协议
  37 + */
  38 + private Short operCode;
  39 +
  40 + private DC0Data data;
  41 +
  42 + @Embeddable
  43 + public static class DC0Data {
  44 +
  45 + /**
  46 + * 二级协议
  47 + */
  48 + private Short operCode2;
  49 +
  50 + /**
  51 + * 请求应答字 0x06同意 0x15不同意
  52 + */
  53 + private Short requestAck;
  54 +
  55 + public Short getOperCode2() {
  56 + return operCode2;
  57 + }
  58 +
  59 + public void setOperCode2(Short operCode2) {
  60 + this.operCode2 = operCode2;
  61 + }
  62 +
  63 + public Short getRequestAck() {
  64 + return requestAck;
  65 + }
  66 +
  67 + public void setRequestAck(Short requestAck) {
  68 + this.requestAck = requestAck;
  69 + }
  70 + }
  71 +
  72 + public Integer getId() {
  73 + return id;
  74 + }
  75 +
  76 + public void setId(Integer id) {
  77 + this.id = id;
  78 + }
  79 +
  80 + public String getDeviceId() {
  81 + return deviceId;
  82 + }
  83 +
  84 + public void setDeviceId(String deviceId) {
  85 + this.deviceId = deviceId;
  86 + }
  87 +
  88 + public Long getTimestamp() {
  89 + return timestamp;
  90 + }
  91 +
  92 + public void setTimestamp(Long timestamp) {
  93 + this.timestamp = timestamp;
  94 + }
  95 +
  96 + public Short getOperCode() {
  97 + return operCode;
  98 + }
  99 +
  100 + public void setOperCode(Short operCode) {
  101 + this.operCode = operCode;
  102 + }
  103 +
  104 + public DC0Data getData() {
  105 + return data;
  106 + }
  107 +
  108 + public void setData(DC0Data data) {
  109 + this.data = data;
  110 + }
  111 +}
... ...
src/main/java/com/bsth/entity/directive/Directive.java 0 → 100644
  1 +package com.bsth.entity.directive;
  2 +
  3 +import javax.persistence.MappedSuperclass;
  4 +import javax.persistence.Transient;
  5 +
  6 +/**
  7 + *
  8 + * @ClassName: Directive
  9 + * @Description: TODO(指令基础类)
  10 + * @author PanZhao
  11 + * @date 2016年7月31日 下午8:35:56
  12 + *
  13 + */
  14 +@MappedSuperclass
  15 +public class Directive {
  16 +
  17 + /**
  18 + * 一级协议
  19 + */
  20 + protected short operCode;
  21 +
  22 + /**
  23 + * 设备号
  24 + */
  25 + protected String deviceId;
  26 +
  27 + /**
  28 + * 时间戳
  29 + */
  30 + protected Long timestamp;
  31 +
  32 + /**
  33 + * 时间 HH:mm
  34 + */
  35 + @Transient
  36 + private String timeHHmm;
  37 +
  38 + /**
  39 + * 车辆内部编码
  40 + */
  41 + @Transient
  42 + private String nbbm;
  43 +
  44 + private String errorText;
  45 +
  46 + private int httpCode;
  47 +
  48 + /**
  49 + * 发送人
  50 + */
  51 + private String sender;
  52 +
  53 + public short getOperCode() {
  54 + return operCode;
  55 + }
  56 +
  57 + public void setOperCode(short operCode) {
  58 + this.operCode = operCode;
  59 + }
  60 +
  61 + public String getDeviceId() {
  62 + return deviceId;
  63 + }
  64 +
  65 + public void setDeviceId(String deviceId) {
  66 + this.deviceId = deviceId;
  67 + }
  68 +
  69 + public Long getTimestamp() {
  70 + return timestamp;
  71 + }
  72 +
  73 + public void setTimestamp(Long timestamp) {
  74 + this.timestamp = timestamp;
  75 + }
  76 +
  77 + public String getTimeHHmm() {
  78 + return timeHHmm;
  79 + }
  80 +
  81 + public void setTimeHHmm(String timeHHmm) {
  82 + this.timeHHmm = timeHHmm;
  83 + }
  84 +
  85 + public String getNbbm() {
  86 + return nbbm;
  87 + }
  88 +
  89 + public void setNbbm(String nbbm) {
  90 + this.nbbm = nbbm;
  91 + }
  92 +
  93 + public String getErrorText() {
  94 + return errorText;
  95 + }
  96 +
  97 + public void setErrorText(String errorText) {
  98 + this.errorText = errorText;
  99 + }
  100 +
  101 + public int getHttpCode() {
  102 + return httpCode;
  103 + }
  104 +
  105 + public void setHttpCode(int httpCode) {
  106 + this.httpCode = httpCode;
  107 + }
  108 +
  109 + public String getSender() {
  110 + return sender;
  111 + }
  112 +
  113 + public void setSender(String sender) {
  114 + this.sender = sender;
  115 + }
  116 +}
... ...
src/main/java/com/bsth/repository/directive/D60Repository.java 0 → 100644
  1 +package com.bsth.repository.directive;
  2 +
  3 +import java.util.List;
  4 +
  5 +import org.springframework.data.domain.Page;
  6 +import org.springframework.data.domain.Pageable;
  7 +import org.springframework.data.jpa.domain.Specification;
  8 +import org.springframework.data.jpa.repository.EntityGraph;
  9 +import org.springframework.data.jpa.repository.Query;
  10 +import org.springframework.stereotype.Repository;
  11 +
  12 +import com.bsth.entity.directive.D60;
  13 +import com.bsth.repository.BaseRepository;
  14 +
  15 +@Repository
  16 +public interface D60Repository extends BaseRepository<D60, Integer>{
  17 +
  18 + @EntityGraph(value = "directive60_sch", type = EntityGraph.EntityGraphType.FETCH)
  19 + @Query("select d from Directive60 d where d.timestamp > ?1")
  20 + public List<D60> findByGtTime(Long ts);
  21 +
  22 + @Query(value = "SELECT IFNULL(num,0) as maxId from (SELECT MAX(msg_id) as num FROM bsth_v_directive_60) d", nativeQuery = true)
  23 + Integer maxMsgId();
  24 +
  25 +
  26 + @EntityGraph(value = "directive60_sch", type = EntityGraph.EntityGraphType.FETCH)
  27 + @Override
  28 + Page<D60> findAll(Specification<D60> spec, Pageable pageable);
  29 +
  30 + @EntityGraph(value = "directive60_sch", type = EntityGraph.EntityGraphType.FETCH)
  31 + @Override
  32 + List<D60> findAll(Specification<D60> spec);
  33 +}
... ...
src/main/java/com/bsth/repository/directive/D64Repository.java 0 → 100644
  1 +package com.bsth.repository.directive;
  2 +
  3 +import org.springframework.stereotype.Repository;
  4 +
  5 +import com.bsth.entity.directive.D64;
  6 +import com.bsth.repository.BaseRepository;
  7 +
  8 +@Repository
  9 +public interface D64Repository extends BaseRepository<D64, Integer>{
  10 +
  11 +}
... ...
src/main/java/com/bsth/repository/directive/D80Repository.java 0 → 100644
  1 +package com.bsth.repository.directive;
  2 +
  3 +import java.util.List;
  4 +
  5 +import org.springframework.data.domain.Page;
  6 +import org.springframework.data.domain.Pageable;
  7 +import org.springframework.data.jpa.domain.Specification;
  8 +import org.springframework.data.jpa.repository.EntityGraph;
  9 +import org.springframework.data.jpa.repository.Query;
  10 +import org.springframework.stereotype.Repository;
  11 +
  12 +import com.bsth.entity.directive.D80;
  13 +import com.bsth.repository.BaseRepository;
  14 +
  15 +@Repository
  16 +public interface D80Repository extends BaseRepository<D80, Integer>{
  17 +
  18 + @EntityGraph(value = "directive80_c0", type = EntityGraph.EntityGraphType.FETCH)
  19 + @Override
  20 + Page<D80> findAll(Specification<D80> spec, Pageable pageable);
  21 +
  22 + @EntityGraph(value = "directive80_c0", type = EntityGraph.EntityGraphType.FETCH)
  23 + @Query("select d from Directive80 d where d.timestamp > ?1")
  24 + List<D80> findByGtTime(long timestamp);
  25 +}
... ...
src/main/java/com/bsth/repository/directive/DC0Repository.java 0 → 100644
  1 +package com.bsth.repository.directive;
  2 +
  3 +import org.springframework.stereotype.Repository;
  4 +
  5 +import com.bsth.entity.directive.DC0;
  6 +import com.bsth.repository.BaseRepository;
  7 +
  8 +@Repository
  9 +public interface DC0Repository extends BaseRepository<DC0, Integer>{
  10 +
  11 +}
... ...
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
... ... @@ -54,4 +54,10 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
54 54  
55 55 @Query(value="select s from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 order by fcsj")
56 56 List<ScheduleRealInfo> queryListWaybill(String jName,String clZbh,String lpName);
  57 +
  58 + @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2")
  59 + List<ScheduleRealInfo> statisticsDaily(String line,String date);
  60 +
  61 + @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2")
  62 + List<ScheduleRealInfo> scheduleDaily(String line,String date);
57 63 }
... ...
src/main/java/com/bsth/repository/sys/SysUserRepository.java
1 1 package com.bsth.repository.sys;
2 2  
  3 +import org.springframework.data.jpa.repository.Modifying;
  4 +import org.springframework.data.jpa.repository.Query;
3 5 import org.springframework.stereotype.Repository;
  6 +import org.springframework.transaction.annotation.Transactional;
4 7  
5 8 import com.bsth.entity.sys.SysUser;
6 9 import com.bsth.repository.BaseRepository;
... ... @@ -10,4 +13,13 @@ public interface SysUserRepository extends BaseRepository&lt;SysUser, Integer&gt;{
10 13  
11 14 SysUser findByUserName(String userName);
12 15  
  16 + @Transactional
  17 + @Modifying
  18 + @Query(value="update bsth_c_sys_user set enabled=?2 where id=?1",nativeQuery=true)
  19 + int changeEnabled(int id,int enabled);
  20 +
  21 + @Transactional
  22 + @Modifying
  23 + @Query(value="update bsth_c_sys_user set password=?2 where id=?1",nativeQuery=true)
  24 + int changePWD(int id,String newPWD);
13 25 }
... ...
src/main/java/com/bsth/service/directive/DirectiveService.java 0 → 100644
  1 +package com.bsth.service.directive;
  2 +
  3 +
  4 +import java.util.List;
  5 +import java.util.Map;
  6 +
  7 +import org.springframework.data.domain.Page;
  8 +import org.springframework.data.domain.PageRequest;
  9 +
  10 +import com.bsth.entity.directive.D60;
  11 +import com.bsth.entity.directive.D80;
  12 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  13 +import com.bsth.service.BaseService;
  14 +
  15 +public interface DirectiveService extends BaseService<D60, Integer>{
  16 +
  17 + /**
  18 + *
  19 + * @Title: send60Phrase
  20 + * @Description: TODO(60短语下发)
  21 + * @param @param nbbm 车辆内部编码
  22 + * @param @param text 短语
  23 + * @return int 返回类型
  24 + * @throws
  25 + */
  26 + int send60Phrase(String nbbm, String text, String sender);
  27 +
  28 + /**
  29 + *
  30 + * @Title: send60Dispatch
  31 + * @Description: TODO(调度指令下发)
  32 + * @param @param sch 要下发的班次
  33 + * @param @param finish 已完成的班次数
  34 + * @throws
  35 + */
  36 + int send60Dispatch(ScheduleRealInfo sch, int finish, String sender);
  37 +
  38 + /**
  39 + *
  40 + * @Title: send60Dispatch
  41 + * @Description: TODO(调度指令下发)
  42 + * @param @param id 班次ID
  43 + * @throws
  44 + */
  45 + int send60Dispatch(Long id, String sender);
  46 +
  47 + //60营运指令
  48 + int send60Operation(String nbbm, int state, int upDown, ScheduleRealInfo sch, String sender);
  49 +
  50 + /**
  51 + *
  52 + * @Title: lineChange
  53 + * @Description: TODO(线路切换)
  54 + * @param @param nbbm 车辆内部编码
  55 + * @param @param lineId 新线路编码
  56 + * @throws
  57 + */
  58 + int lineChange(String nbbm, Integer lineId, String sender);
  59 +
  60 + /**
  61 + *
  62 + * @Title: upDownChange
  63 + * @Description: TODO(切换上下行)
  64 + * @param @param nbbm 车辆内部编码
  65 + * @param @param upDonw 上下行 0 上行 1 下行
  66 + * @throws
  67 + */
  68 + int upDownChange(String nbbm, Integer upDown, String sender);
  69 +
  70 + /**
  71 + *
  72 + * @Title: sendDirectiveState
  73 + * @Description: TODO(向页面推送班次指令状态)
  74 + * @throws
  75 + */
  76 + void sendDirectiveToPage(ScheduleRealInfo sch);
  77 +
  78 + Map<String, List<D80>> findNoCofm80(String lineCodes);
  79 +
  80 + Map<String, Object> reply80(int id, int reply);
  81 +
  82 + Map<String, Object> findDirective(String nbbm, int dType, int page, int size);
  83 +
  84 + Page<D80> findAll80(Map<String, Object> map, PageRequest pageRequest);
  85 +}
... ...
src/main/java/com/bsth/service/directive/DirectiveServiceImpl.java 0 → 100644
  1 +package com.bsth.service.directive;
  2 +
  3 +import java.text.SimpleDateFormat;
  4 +import java.util.ArrayList;
  5 +import java.util.Collections;
  6 +import java.util.Date;
  7 +import java.util.HashMap;
  8 +import java.util.List;
  9 +import java.util.Map;
  10 +
  11 +import org.apache.commons.lang3.StringUtils;
  12 +import org.slf4j.Logger;
  13 +import org.slf4j.LoggerFactory;
  14 +import org.springframework.beans.factory.annotation.Autowired;
  15 +import org.springframework.data.domain.Page;
  16 +import org.springframework.data.domain.PageRequest;
  17 +import org.springframework.stereotype.Service;
  18 +
  19 +import com.alibaba.fastjson.JSON;
  20 +import com.alibaba.fastjson.JSONObject;
  21 +import com.bsth.common.ResponseCode;
  22 +import com.bsth.entity.directive.D60;
  23 +import com.bsth.entity.directive.D64;
  24 +import com.bsth.entity.directive.D80;
  25 +import com.bsth.entity.directive.DC0;
  26 +import com.bsth.entity.directive.DC0.DC0Data;
  27 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  28 +import com.bsth.entity.search.CustomerSpecs;
  29 +import com.bsth.entity.sys.SysUser;
  30 +import com.bsth.repository.directive.D60Repository;
  31 +import com.bsth.repository.directive.D64Repository;
  32 +import com.bsth.repository.directive.D80Repository;
  33 +import com.bsth.security.util.SecurityUtils;
  34 +import com.bsth.service.impl.BaseServiceImpl;
  35 +import com.bsth.service.realcontrol.buffer.ScheduleBuffer;
  36 +import com.bsth.util.DateUtils;
  37 +import com.bsth.vehicle.common.CommonMapped;
  38 +import com.bsth.vehicle.directive.buffer.DirectiveBuffer;
  39 +import com.bsth.vehicle.directive.entity.Directive;
  40 +import com.bsth.vehicle.directive.util.DirectiveDataFactory;
  41 +import com.bsth.vehicle.directive.util.HttpUtils;
  42 +import com.bsth.vehicle.gpsdata.buffer.GpsRealDataBuffer;
  43 +import com.bsth.vehicle.gpsdata.entity.GpsRealData;
  44 +import com.bsth.websocket.handler.RealControlSocketHandler;
  45 +import com.google.common.base.Splitter;
  46 +
  47 +@Service
  48 +public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implements DirectiveService {
  49 +
  50 + Logger logger = LoggerFactory.getLogger(this.getClass());
  51 +
  52 + @Autowired
  53 + D60Repository d60Repository;
  54 +
  55 + @Autowired
  56 + GpsRealDataBuffer gpsRealDataBuffer;
  57 +
  58 + @Autowired
  59 + D64Repository d64Repository;
  60 +
  61 + @Autowired
  62 + RealControlSocketHandler socketHandler;
  63 +
  64 + @Autowired
  65 + D80Repository d80Repository;
  66 +
  67 + SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH点mm分"), sdfHHmm2 = new SimpleDateFormat("HH:mm");
  68 +
  69 + static Long schDiff = 1000 * 60 * 60L;
  70 +
  71 + @Override
  72 + public int send60Phrase(String nbbm, String text, String sender) {
  73 + D60 directive = null;
  74 + try {
  75 + directive = create60Data(nbbm, text, (short) 0x00, null);
  76 + } catch (Exception e) {
  77 + logger.error("发送消息短语出现异常", e);
  78 + return -1;
  79 + }
  80 +
  81 + if (null == directive)
  82 + return -1;
  83 +
  84 + // 发送指令
  85 + int code = HttpUtils.postJson(JSON.toJSONString(directive));
  86 + if(null != sender)
  87 + directive.setSender(sender);
  88 + directive.setHttpCode(code);
  89 + // 添加到缓存,等待入库
  90 + //DirectiveBuffer.put(directive);
  91 +
  92 + if (code != 0) {
  93 + directive.setErrorText("网关通讯失败, code: " + code);
  94 + //DirectiveBuffer.transientList.add(directive);
  95 + }
  96 + return code;
  97 + }
  98 +
  99 + @Override
  100 + public int send60Dispatch(ScheduleRealInfo sch, int finish, String sender) {
  101 + D60 directive = null;
  102 + try {
  103 + // 如果发车时间距当前时间较远,则不发送
  104 + /*if (Math.abs(sch.getFcsjT() - System.currentTimeMillis()) > schDiff) {
  105 + return -2;
  106 + }*/
  107 +
  108 + String text = "已完成" + finish + "个班次,下一发车时间" + sdfHHmm.format(new Date(sch.getDfsjT())) + ",由"
  109 + + sch.getQdzName() + "发往" + sch.getZdzName();
  110 +
  111 + ScheduleRealInfo nextSch = ScheduleBuffer.getNext(sch);
  112 + //下发0x02指令 调度指令(闹钟有效)
  113 + /*directive = DirectiveDataFactory.createDirective6002(sch.getClZbh(), text, (short) 0x02
  114 + , Integer.parseInt(nextSch.getXlDir()), 0, new Date(System.currentTimeMillis() + 1000 * 30));*/
  115 + } catch (Exception e) {
  116 + logger.error("生成调度指令时出现异常", e);
  117 + return -1;
  118 + }
  119 +
  120 + if (null == directive)
  121 + return -1;
  122 + if(null != sender)
  123 + directive.setSender(sender);
  124 + else
  125 + directive.setSender("系统");
  126 +
  127 + // 发送指令
  128 + int code = HttpUtils.postJson(JSON.toJSONString(directive));
  129 +
  130 + sch.setDirectiveState(60);
  131 + // 添加到缓存,等待入库
  132 + directive.setDispatch(true);
  133 + directive.setSch(sch);
  134 + directive.setHttpCode(code);
  135 + //DirectiveBuffer.put(directive);
  136 +
  137 + if (code == 0) {
  138 + // 通知页面,消息已发出
  139 + sendDirectiveToPage(sch);
  140 + } else {
  141 + directive.setErrorText("网关通讯失败, code: " + code);
  142 + //DirectiveBuffer.transientList.add(directive);
  143 + }
  144 + return code;
  145 + }
  146 +
  147 + /**
  148 + *
  149 + * @Title: sendDirectiveState @Description: TODO(向页面推送班次指令状态) @throws
  150 + */
  151 + @Override
  152 + public void sendDirectiveToPage(ScheduleRealInfo sch) {
  153 + JSONObject json = new JSONObject();
  154 + json.put("fn", "directive");
  155 + json.put("t", sch);
  156 + socketHandler.sendMessageToLine(Integer.parseInt(sch.getXlBm()), json.toJSONString());
  157 + }
  158 +
  159 + @Override
  160 + public int send60Dispatch(Long id, String sender) {
  161 + ScheduleRealInfo sch = ScheduleBuffer.findOne(id);
  162 + // 车辆已完成班次
  163 + int finish = ScheduleBuffer.getFinishSchNo(sch.getClZbh());
  164 + return send60Dispatch(sch, finish, sender);
  165 + }
  166 +
  167 + @Override
  168 + public int send60Operation(String nbbm, int state, int upDown, ScheduleRealInfo sch, String sender) {
  169 + logger.info("切换运营状态, nbbm: " + nbbm + " ,state: " + state + " ,upDown:" + upDown);
  170 +
  171 + String text = "切换为 " + (upDown == 0 ? "上行" : "下行") + (state == 0 ? "营运" : "未营运");
  172 + D60 directive = /*DirectiveDataFactory.createDirective60(nbbm, text, (short) 0x03, upDown, state)*/null;
  173 +
  174 + if (null == directive)
  175 + return -1;
  176 + if(null != sender)
  177 + directive.setSender(sender);
  178 + else
  179 + directive.setSender("系统");
  180 + // 发送指令
  181 + int code = HttpUtils.postJson(JSON.toJSONString(directive));
  182 + // 添加到缓存,等待入库
  183 + directive.setHttpCode(code);
  184 + if (null != sch)
  185 + directive.setSch(sch);
  186 + //DirectiveBuffer.put(directive);
  187 +
  188 + if (code != 0) {
  189 + directive.setErrorText("网关通讯失败, code: " + code);
  190 + //DirectiveBuffer.transientList.add(directive);
  191 + }
  192 + return code;
  193 + }
  194 +
  195 + /**
  196 + * 线路切换
  197 + */
  198 + @Override
  199 + public int lineChange(String nbbm, Integer lineCode, String sender) {
  200 + Long t = System.currentTimeMillis();
  201 + /*String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
  202 +
  203 + Directive64 change = new Directive64();
  204 + LineChangeData data = new LineChangeData();
  205 + data.setCityCode(cityCode);
  206 + data.setDeviceId(deviceId);
  207 + data.setLineId("00" + String.valueOf(lineCode));
  208 +
  209 + change.setDeviceId(deviceId);
  210 + change.setOperCode((short) 0X64);
  211 + change.setTimestamp(t);
  212 + change.setData(data);*/
  213 + D64 d64 = /*DirectiveDataFactory.createDirective64(nbbm, lineCode, t)*/null;
  214 +
  215 + if(null != sender)
  216 + d64.setSender(sender);
  217 + else
  218 + d64.setSender("系统");
  219 +
  220 + String deviceId = d64.getDeviceId();
  221 + int code = HttpUtils.postJson(JSON.toJSONString(d64));
  222 + // 入库
  223 + d64.setHttpCode(code);
  224 + //DirectiveBuffer.changeMap.put(deviceId + '_' + t, d64);
  225 +
  226 + // 通知设备刷新线路文件,忽略结果
  227 + if (code == 0)
  228 + HttpUtils.postJson(DirectiveDataFactory.createDeviceRefreshData(deviceId, lineCode));
  229 + else
  230 + d64.setErrorText("网关通讯失败, code: " + code);
  231 +
  232 + d64Repository.save(d64);
  233 + return code;
  234 + }
  235 +
  236 + public D60 create60Data(String nbbm, String text, Short dispatchInstruct, ScheduleRealInfo sch) {
  237 +
  238 + String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
  239 + if (null == deviceId) {
  240 + logger.error("没有设备号对照的车辆:" + nbbm);
  241 + return null;
  242 + }
  243 + // 上下行和营运状态
  244 + Integer upDown = null, state = null;
  245 + if (null == sch) {
  246 + GpsRealData gpsData = gpsRealDataBuffer.findOneByDeviceId(deviceId);
  247 + if (null == gpsData) {
  248 + logger.error("没有找到gps对照,无法确认营运状态和上下行:" + nbbm);
  249 + return null;
  250 + }
  251 + upDown = gpsData.getUpDown();
  252 + state = gpsData.getState();
  253 + } else {
  254 + upDown = Integer.parseInt(sch.getXlDir());
  255 + state = 0;
  256 + }
  257 +
  258 + return /*DirectiveDataFactory.createDirective60(nbbm, text, dispatchInstruct, upDown, state)*/null;
  259 + }
  260 +
  261 +/* public Directive60 createDirective60(String nbbm, String text, Short dispatchInstruct, int upDown, int state) {
  262 + Long timestamp = System.currentTimeMillis();
  263 +
  264 + Short company = Short.parseShort(CommonMapped.vehicCompanyMap.get(nbbm));
  265 + String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
  266 +
  267 + int msgId = MsgIdGenerator.getMsgId();
  268 +
  269 + Directive60 directive = new Directive60();
  270 + DirectiveData data = new DirectiveData();
  271 + // 一级协议
  272 + directive.setOperCode((short) 0x60);
  273 + // 设备号
  274 + directive.setDeviceId(deviceId);
  275 + // 时间戳
  276 + directive.setTimestamp(timestamp);
  277 + directive.setMsgId(msgId);
  278 + // 构造数据
  279 + data.setDeviceId(deviceId);
  280 + data.setDispatchInstruct(dispatchInstruct);
  281 + data.setTimestamp(timestamp);
  282 + data.setCompanyCode(company);
  283 + data.setMsgId(msgId);
  284 + directive.setData(data);
  285 + long serviceState;
  286 + try {
  287 + serviceState = Consts.SERVICE_STATE[upDown][state];
  288 + } catch (IndexOutOfBoundsException e) {
  289 + // 未知营运状态的直接默认为上行非营运
  290 + serviceState = Consts.SERVICE_STATE[0][1];
  291 + }
  292 + data.setServiceState(serviceState);
  293 + data.setTxtContent(text);
  294 +
  295 + return directive;
  296 + }*/
  297 +
  298 + @Override
  299 + public int upDownChange(String nbbm, Integer upDown, String sender) {
  300 + return send60Operation(nbbm, 0, upDown, null, sender);
  301 + }
  302 +
  303 + /**
  304 + *
  305 + * @Title: createDeviceRefreshData @Description:
  306 + * TODO(生成设备线路刷新数据包) @param @return 设定文件 @return String 返回类型 @throws
  307 + */
  308 +/* public String createDeviceRefreshData(String deviceId, Integer lineId) {
  309 + Long t = System.currentTimeMillis();
  310 + Map<String, Object> param = new HashMap<String, Object>();
  311 + param.put("deviceId", deviceId);
  312 + param.put("timestamp", t);
  313 + param.put("operCode", 0Xc0);
  314 +
  315 + Map<String, Object> data = new HashMap<String, Object>();
  316 + data.put("operCode2", 0xa1);
  317 + data.put("cityCode", cityCode);
  318 + data.put("deviceId", deviceId);
  319 + data.put("timestamp", t);
  320 + data.put("centerId", 1);
  321 + data.put("lineId", lineId);
  322 + data.put("lineVersion", 0);
  323 + data.put("carparkDataVersion", 0);
  324 + param.put("data", data);
  325 +
  326 + return JSON.toJSONString(param);
  327 + }*/
  328 +
  329 + @Override
  330 + public Map<String, List<D80>> findNoCofm80(String lineCodes) {
  331 + List<String> lineList = Splitter.on(",").trimResults().splitToList(lineCodes);
  332 +
  333 + Map<String, List<D80>> rs = new HashMap<>();
  334 + for (String code : lineList) {
  335 + rs.put(code, /*DirectiveBuffer.findNoCofm80(Integer.parseInt(code))*/null);
  336 + }
  337 +
  338 + return rs;
  339 + }
  340 +
  341 + @Override
  342 + public Map<String, Object> reply80(int id, int reply) {
  343 + Map<String, Object> rs = new HashMap<>();
  344 +
  345 + D80 d80 = /*DirectiveBuffer.findById80(id)*/null;
  346 + if (null == d80) {
  347 + rs.put("status", ResponseCode.ERROR);
  348 + rs.put("msg", "服务器没有找到对应数据!");
  349 + } else if (d80.isConfirm()) {
  350 + rs.put("status", ResponseCode.ERROR);
  351 + rs.put("msg", "该数据已经被处理了!");
  352 + } else {
  353 + SysUser user = SecurityUtils.getCurrentUser();
  354 +
  355 + d80.setConfirm(true);
  356 + d80.setHandleUser(user.getUserName());
  357 + d80.setConfirmRs(reply);
  358 + d80.setHandleTime(new Date());
  359 + // 封装C0数据包并回复设备
  360 + DC0 c0 = new DC0();
  361 + c0.setDeviceId(d80.getDeviceId());
  362 + c0.setTimestamp(d80.getTimestamp());
  363 + c0.setOperCode((short) 0xC0);
  364 +
  365 + DC0Data data = new DC0Data();
  366 + data.setOperCode2((short) 0x86);
  367 + data.setRequestAck((short) (reply == 0 ? 0x06 : 0x15));
  368 +
  369 + c0.setData(data);
  370 +
  371 + d80.setC0(c0);
  372 + // 入库
  373 + d80Repository.save(d80);
  374 +
  375 + int code = HttpUtils.postJson(JSON.toJSONString(c0));
  376 +
  377 + rs.put("status", ResponseCode.SUCCESS);
  378 + if (code != 0)
  379 + rs.put("msg", "发送C0响应指令到车载设备失败,但该操作已经被系统记录!");
  380 +
  381 + // 通知页面
  382 + Map<String, Object> sockMap = new HashMap<>();
  383 + sockMap.put("fn", "d80Confirm");
  384 + sockMap.put("id", d80.getId());
  385 + socketHandler.sendMessageToLine(d80.getData().getLineId(), JSON.toJSONString(sockMap));
  386 + }
  387 +
  388 + return rs;
  389 + }
  390 +
  391 + @Override
  392 + public Map<String, Object> findDirective(String nbbm, int dType, int page, int size) {
  393 + Map<String, Object> rsMap = new HashMap<>();
  394 + List<Directive> list = null;
  395 +
  396 + switch (dType) {
  397 + case -1:
  398 + //所有指令
  399 + list = DirectiveBuffer.findAll();
  400 + break;
  401 + case 0:
  402 + //调度指令
  403 + list = DirectiveBuffer.findDispatch();
  404 + break;
  405 + case 1:
  406 + //运营指令
  407 + list = DirectiveBuffer.findByDispatchInstruct((short)0x03);
  408 + break;
  409 + case 2:
  410 + //线路切换指令
  411 + list = DirectiveBuffer.findLineChange();
  412 + break;
  413 + case 3:
  414 + //消息短语
  415 + list = DirectiveBuffer.findByDispatchInstruct((short)0x00);
  416 + break;
  417 + }
  418 +
  419 + // 时间倒序
  420 + Collections.sort(list, new DirectiveBuffer.DComparator());
  421 + if(StringUtils.isNotBlank(nbbm)){
  422 + String deviceId = CommonMapped.vehicDeviceBiMap.inverse().get(nbbm);
  423 + //按车辆过滤
  424 + List<Directive> subList = new ArrayList<>();
  425 + for(Directive d : list){
  426 + if(d.getDeviceId().equals(deviceId)){
  427 + subList.add(d);
  428 + }
  429 + }
  430 + list = subList;
  431 + }
  432 +
  433 + int count = list.size();
  434 + // 分页
  435 + int s = page * size, e = s + size;
  436 +
  437 + if (e > count)
  438 + e = count;
  439 +
  440 + List<Directive> rs = list.subList(s, e);
  441 +
  442 + // 时间格式化,车辆自编号转换
  443 + for (Directive d : rs) {
  444 + if (d.getTimeHHmm() == null)
  445 + d.setTimeHHmm(sdfHHmm2.format(new Date(d.getTimestamp())));
  446 + if (d.getNbbm() == null)
  447 + d.setNbbm(CommonMapped.vehicDeviceBiMap.get(d.getDeviceId()));
  448 + }
  449 +
  450 + rsMap.put("list", rs);
  451 + rsMap.put("totalPages", count % size == 0 ? count / size : count / size + 1);
  452 + rsMap.put("page", page);
  453 + return rsMap;
  454 + }
  455 +
  456 + @Override
  457 + public Page<D80> findAll80(Map<String, Object> map, PageRequest pageRequest) {
  458 + //默认只查看当天的
  459 + map.put("timestamp_gt", DateUtils.getTimestamp());
  460 +
  461 + Object nbbm = map.get("nbbm");
  462 + if(null != nbbm && StringUtils.isNotBlank(nbbm.toString())){
  463 + map.put("deviceId_eq", CommonMapped.vehicDeviceBiMap.inverse().get(nbbm.toString()));
  464 + }
  465 +
  466 + Page<D80> pageData = d80Repository.findAll(new CustomerSpecs<D80>(map), pageRequest);
  467 + //格式化时间和转换车辆自编号
  468 + List<D80> list = pageData.getContent();
  469 + for(D80 d80 : list){
  470 + d80.setTimeStr(sdfHHmm2.format(new Date(d80.getTimestamp())));
  471 + d80.getData().setNbbm(CommonMapped.vehicDeviceBiMap.get(d80.getDeviceId()));
  472 + }
  473 + return pageData;
  474 + }
  475 +}
... ...
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
... ... @@ -62,7 +62,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
62 62  
63 63 List<ScheduleRealInfo> exportWaybill(String jName,String clZbh,String lpName);
64 64  
65   - List<Map<String,Object>> dailyInfo(String line,String date);
  65 + List<Map<String,Object>> dailyInfo(String line,String date,String type);
66 66  
67 67 List<Object[]> historyMessage(String line,String date,String code);
68 68  
... ... @@ -95,4 +95,8 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
95 95 List<ScheduleRealInfo> queryListWaybill(String jName,String clZbh,String lpName);
96 96  
97 97 Map<String, Object> removeChildTask(Long taskId);
  98 +
  99 + List<Map<String,Object>> statisticsDaily(String line,String date,String xlName);
  100 +
  101 + List<Object> scheduleDaily(String line,String date);
98 102 }
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -42,7 +42,9 @@ import com.bsth.service.SectionRouteService;
42 42 import com.bsth.service.impl.BaseServiceImpl;
43 43 import com.bsth.service.realcontrol.ScheduleRealInfoService;
44 44 import com.bsth.service.realcontrol.buffer.ScheduleBuffer;
  45 +import com.bsth.util.ReportRelatedUtils;
45 46 import com.bsth.util.ReportUtils;
  47 +import com.bsth.util.TimeUtils;
46 48 import com.bsth.util.TransGPS;
47 49 import com.bsth.util.TransGPS.Location;
48 50 import com.bsth.vehicle.BorrowCenter;
... ... @@ -87,7 +89,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
87 89 Logger logger = LoggerFactory.getLogger(this.getClass());
88 90  
89 91 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
90   - sdfMinute = new SimpleDateFormat("yyyy-MM-dd HH:mm"), sdfShort = new SimpleDateFormat("HH:mm");
  92 + sdfMinute = new SimpleDateFormat("yyyy-MM-dd HH:mm"), sdfShort = new SimpleDateFormat("HH:mm"),
  93 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
91 94  
92 95 @Override
93 96 public Map<String, Collection<ScheduleRealInfo>> findByLines(String lines) {
... ... @@ -426,13 +429,16 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
426 429 public List<ScheduleRealInfo> queryUserInfo(String line, String date) {
427 430 return scheduleRealInfoRepository.queryUserInfo(line, date);
428 431 }
429   -
  432 + /**
  433 + *
  434 + */
430 435 @Override
431 436 public List<ScheduleRealInfo> exportWaybill(String jName, String clZbh, String lpName) {
432 437 ReportUtils ee = new ReportUtils();
  438 + ReportRelatedUtils rru = new ReportRelatedUtils();
433 439 List<Iterator<?>> list = new ArrayList<Iterator<?>>();
434 440 List<ScheduleRealInfo> scheduleRealInfos = scheduleRealInfoRepository.exportWaybill(jName, clZbh, lpName);
435   - ScheduleRealInfo scheduleReal = scheduleRealInfoRepository.findOne(scheduleRealInfos.get(0).getId());
  441 + List<Map<String,Object>> listMap = new ArrayList<Map<String,Object>>();
436 442  
437 443 DecimalFormat format = new DecimalFormat("0.00");
438 444 int cjbc = scheduleRealInfoRepository.findCjbc(jName, clZbh, lpName);
... ... @@ -440,7 +446,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
440 446 int jhbc = 0;
441 447 double jhlc = 0;
442 448 float realMileage = 0l,addMileage = 0l,remMileage = 0l;
443   - Map<String,Object> map = new HashMap<String, Object>();
  449 +
  450 + Map<String,Object> map;
444 451 for(ScheduleRealInfo scheduleRealInfo : scheduleRealInfos){
445 452 if(scheduleRealInfo != null){
446 453 jhlc += scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc();
... ... @@ -448,8 +455,34 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
448 455 addMileage += scheduleRealInfo.getAddMileage()==null?0:scheduleRealInfo.getAddMileage();
449 456 remMileage += scheduleRealInfo.getRemMileage()==null?0:scheduleRealInfo.getRemMileage();
450 457 jhbc++;
  458 +
  459 + map = new HashMap<String, Object>();
  460 + try {
  461 + map = rru.getMapValue(scheduleRealInfo);
  462 + String zdsj = scheduleRealInfo.getZdsj();
  463 + String zdsjActual = scheduleRealInfo.getZdsjActual();
  464 + if(zdsj != null && zdsjActual != null &&
  465 + !zdsj.equals(zdsjActual)){
  466 + if(zdsj.compareTo(zdsjActual) > 0){
  467 + map.put("fast", TimeUtils.getTimeDifference(zdsj, zdsjActual));
  468 + map.put("slow", "");
  469 + } else {
  470 + map.put("fast", "");
  471 + map.put("slow", TimeUtils.getTimeDifference(zdsj, zdsjActual));
  472 + }
  473 + } else {
  474 + map.put("fast", "");
  475 + map.put("slow", "");
  476 + }
  477 + listMap.add(map);
  478 + } catch (Exception e) {
  479 + e.printStackTrace();
  480 + }
451 481 }
452 482 }
  483 +
  484 + //计算里程和班次数,并放入Map里
  485 + map = new HashMap<String, Object>();
453 486 map.put("jhlc", format.format(jhlc));
454 487 map.put("remMileage", format.format(remMileage));
455 488 map.put("addMileage", format.format(addMileage));
... ... @@ -463,19 +496,50 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
463 496  
464 497 String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
465 498  
466   - list.add(scheduleRealInfos.iterator());
467   - ee.excelReplace(list, new Object[] { scheduleReal,map }, path+"mould\\waybill.xls",
  499 + list.add(listMap.iterator());
  500 + ee.excelReplace(list, new Object[] { scheduleRealInfos.get(0),map }, path+"mould\\waybill.xls",
468 501 path+"export\\" + jName + ".xls");
469 502 return scheduleRealInfos;
470 503 }
471 504  
472 505 @Override
473   - public List<Map<String, Object>> dailyInfo(String line, String date) {
  506 + public List<Map<String, Object>> dailyInfo(String line, String date,String type) {
474 507 DecimalFormat format = new DecimalFormat("0.00");
  508 + ReportUtils ee = new ReportUtils();
  509 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
475 510 List<Map<String, Object>> list = scheduleRealInfoRepository.dailyInfo(line, date);
  511 +
  512 + double totalZGL = 0,totalKSGL=0,totalYH=0;
  513 + int totalBCS=0;
476 514 for(int i = 0;i < list.size();i++){
477   - list.get(i).put("zgl", format.format(Double.parseDouble(list.get(i).get("zgl")==null?"0":list.get(i).get("zgl").toString())));
478   - list.get(i).put("ksgl", format.format(Double.parseDouble(list.get(i).get("ksgl")==null?"0":list.get(i).get("ksgl").toString())));
  515 + String zgl = format.format(Double.parseDouble(list.get(i).get("zgl")==null?"0":list.get(i).get("zgl").toString()));
  516 + String ksgl = format.format(Double.parseDouble(list.get(i).get("ksgl")==null?"0":list.get(i).get("ksgl").toString()));
  517 + if(type.equals("export")){
  518 + totalZGL += Double.parseDouble(zgl);
  519 + totalKSGL += Double.parseDouble(ksgl);
  520 + totalBCS += Integer.parseInt(list.get(i).get("bcs").toString());
  521 + }
  522 + list.get(i).put("zgl", zgl);
  523 + list.get(i).put("ksgl", ksgl);
  524 + }
  525 + if(type.equals("export")){
  526 + Map<String,Object> map = new HashMap<String, Object>();
  527 + map.put("line", line);
  528 + map.put("date", date);
  529 + map.put("totalZGL", totalZGL);
  530 + map.put("totalKSGL", totalKSGL);
  531 + map.put("totalYH", totalYH);
  532 + map.put("totalBCS", totalBCS);
  533 +
  534 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  535 +
  536 + listI.add(list.iterator());
  537 + try {
  538 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\daily.xls",
  539 + path+"export\\班次日报" + sdfSimple.format(sdfMonth.parse(date)) + ".xls");
  540 + } catch (ParseException e) {
  541 + e.printStackTrace();
  542 + }
479 543 }
480 544 return list;
481 545 }
... ... @@ -907,9 +971,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
907 971 map.put("jhlc", format.format(jhlc));
908 972 map.put("remMileage", format.format(remMileage));
909 973 map.put("addMileage", format.format(addMileage));
910   - map.put("yygl", format.format(realMileage-addMileage));
  974 + map.put("yygl", format.format(jhlc));
911 975 map.put("ksgl", format.format(realMileage-addMileage));
912   - map.put("realMileage", format.format(realMileage));
  976 + map.put("realMileage", format.format(jhlc));
913 977 map.put("jhbc", jhbc);
914 978 map.put("cjbc", cjbc);
915 979 map.put("ljbc", ljbc);
... ... @@ -967,4 +1031,40 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
967 1031 }
968 1032 return rs;
969 1033 }
  1034 +
  1035 + @Override
  1036 + public List<Map<String, Object>> statisticsDaily(String line, String date,
  1037 + String xlName) {
  1038 + List<ScheduleRealInfo> list = scheduleRealInfoRepository.statisticsDaily(line, date);
  1039 + double jhlc = 0.00;
  1040 + float realMileage = 0l;
  1041 + for(ScheduleRealInfo scheduleRealInfo: list){
  1042 + if(scheduleRealInfo != null){
  1043 + jhlc += scheduleRealInfo.getJhlc();
  1044 + if(scheduleRealInfo.getsName().equals("1")){
  1045 + realMileage += scheduleRealInfo.getRealMileage();
  1046 + }
  1047 + }
  1048 + }
  1049 + return null;
  1050 + }
  1051 +
  1052 + @Override
  1053 + public List<Object> scheduleDaily(String line, String date) {
  1054 + Map<String,String> tempMap = null;
  1055 + List<ScheduleRealInfo> scheduleRealInfos = scheduleRealInfoRepository.scheduleDaily(line, date);
  1056 + Map<String, Object> map = new HashMap<String, Object>();
  1057 + Double jhlc = 0.00;
  1058 + for(ScheduleRealInfo scheduleRealInfo:scheduleRealInfos){
  1059 + if(scheduleRealInfo != null){
  1060 + jhlc += scheduleRealInfo.getJhlc();
  1061 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  1062 + if(childTaskPlans.isEmpty()){
  1063 +
  1064 + }
  1065 + }
  1066 + }
  1067 + map.put("jhlc", jhlc);
  1068 + return null;
  1069 + }
970 1070 }
... ...
src/main/java/com/bsth/service/sys/SysUserService.java
... ... @@ -6,4 +6,8 @@ import com.bsth.service.BaseService;
6 6 public interface SysUserService extends BaseService<SysUser, Integer>{
7 7  
8 8 SysUser findByUserName(String name);
  9 +
  10 + int changeEnabled(int id,int enabled);
  11 +
  12 + int changePWD(int id,String newPWD);
9 13 }
... ...
src/main/java/com/bsth/service/sys/impl/SysUserServiceImpl.java
1 1 package com.bsth.service.sys.impl;
2 2  
  3 +import java.util.Map;
  4 +
3 5 import org.springframework.beans.factory.annotation.Autowired;
  6 +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
4 7 import org.springframework.stereotype.Service;
5 8  
6 9 import com.bsth.entity.sys.SysUser;
... ... @@ -18,4 +21,22 @@ public class SysUserServiceImpl extends BaseServiceImpl&lt;SysUser, Integer&gt; implem
18 21 public SysUser findByUserName(String name) {
19 22 return sysUserRepository.findByUserName(name);
20 23 }
  24 +
  25 + @Override
  26 + public Map<String, Object> save(SysUser t) {
  27 + //
  28 + t.setPassword(new BCryptPasswordEncoder(4).encode(t.getPassword()));
  29 + return super.save(t);
  30 + }
  31 +
  32 + @Override
  33 + public int changeEnabled(int id, int enabled) {
  34 + sysUserRepository.changeEnabled(id,enabled);
  35 + return 0;
  36 + }
  37 +
  38 + @Override
  39 + public int changePWD(int id,String newPWD) {
  40 + return sysUserRepository.changePWD(id,new BCryptPasswordEncoder(4).encode(newPWD));
  41 + }
21 42 }
... ...
src/main/java/com/bsth/util/ReportRelatedUtils.java
1 1 package com.bsth.util;
2 2  
  3 +import java.lang.reflect.Field;
3 4 import java.lang.reflect.InvocationTargetException;
4 5 import java.lang.reflect.Method;
  6 +import java.util.HashMap;
  7 +import java.util.Map;
  8 +
  9 +import org.apache.poi.ss.formula.functions.T;
5 10  
6 11 import com.bsth.entity.Line;
7 12  
... ... @@ -52,6 +57,42 @@ public class ReportRelatedUtils {
52 57 }
53 58 return value;
54 59 }
  60 +
  61 + /**
  62 + * 通过字段名取到对象中该字段的相应值
  63 + *
  64 + * @param t
  65 + * 对象
  66 + * @param fieldName
  67 + * 字段名
  68 + * @return
  69 + * @throws ClassNotFoundException
  70 + * @throws IllegalAccessException
  71 + * @throws InvocationTargetException
  72 + * @throws NoSuchMethodException
  73 + * @throws NoSuchFieldException
  74 + */
  75 + public Map<String,Object> getMapValue(Object t)
  76 + throws ClassNotFoundException, IllegalAccessException,
  77 + InvocationTargetException, NoSuchMethodException,
  78 + NoSuchFieldException {
  79 + Map<String,Object> map = new HashMap<String, Object>();
  80 + Object value = "";
  81 + Field[] fields = t.getClass().getDeclaredFields();
  82 + for(Field field:fields){
  83 + String fieldName = field.getName();
  84 + String tmpFieldName = firstCharToUpperCase(fieldName);
  85 + Method method = null;
  86 + try {
  87 + method = t.getClass().getMethod("get" + tmpFieldName);
  88 + value = method.invoke(t)==null?"":method.invoke(t);
  89 + } catch (NoSuchMethodException e) {
  90 + value = "";
  91 + }
  92 + map.put(fieldName, value);
  93 + }
  94 + return map;
  95 + }
55 96  
56 97 /**
57 98 * 首字母大写
... ...
src/main/java/com/bsth/util/ReportUtils.java
... ... @@ -279,6 +279,9 @@ public class ReportUtils {
279 279 }
280 280 } else if (obj.getClass().getName().equals(classWholeName)) {
281 281 cellValue = cellValue.replace("$" + tmpKey + "$",getKeyValue(obj, fieldName) + "");
  282 + } else if (obj.getClass().getName().equals("java.util.HashMap")){
  283 + Map<String,Object> map = (HashMap<String,Object>)obj;
  284 + cellValue = cellValue.replace("$" + tmpKey + "$",map.get(fieldName)+"");
282 285 }
283 286 }
284 287 }
... ...
src/main/java/com/bsth/util/TimeUtils.java 0 → 100644
  1 +package com.bsth.util;
  2 +
  3 +public class TimeUtils {
  4 + public static String getTimeDifference(String date1,String date2){
  5 + String[] temp1 = date1.split(":");
  6 + String[] temp2 = date2.split(":");
  7 + int m1 = Integer.parseInt(temp1[0])*60;
  8 + int s1 = Integer.parseInt(temp1[1]);
  9 + int m2 = Integer.parseInt(temp2[0])*60;
  10 + int s2 = Integer.parseInt(temp2[1]);
  11 + if(date1.compareTo(date2) > 0){
  12 + return ((m1+s1)-(m2+s2))+"";
  13 + } else {
  14 + return ((m2+s2)-(m1+s1))+"";
  15 + }
  16 + }
  17 +}
... ...
src/main/java/com/bsth/vehicle/directive/entity/DirectiveReply.java
... ... @@ -57,4 +57,4 @@ public class DirectiveReply {
57 57 public void setStatus(Integer status) {
58 58 this.status = status;
59 59 }
60   -}
  60 +}
61 61 \ No newline at end of file
... ...
src/main/resources/application-dev.properties
... ... @@ -26,6 +26,6 @@ spring.datasource.validation-query=select 1
26 26 ##
27 27 #222.66.0.204:5555
28 28 ##\u5B9E\u65F6gps
29   -http.gps.real.url= http://27.115.69.123:8800/transport_server/rtgps/
  29 +http.gps.real.url= http://192.168.168.192:8080/transport_server/rtgps/
30 30 ##\u6D88\u606F\u4E0B\u53D1
31 31 http.send.directive = http://192.168.168.192:8080/transport_server/message/
32 32 \ No newline at end of file
... ...
src/main/resources/datatools/ktrs/carsConfigDataInput.ktr
... ... @@ -85,11 +85,11 @@
85 85 </info>
86 86 <notepads>
87 87 <notepad>
88   - <note>&#x914d;&#x8f66;&#x5206;&#x5f53;&#x524d;&#x2f;&#x5386;&#x53f2;&#x2f;&#x8ba1;&#x5212;&#xff0c;&#x5386;&#x53f2;&#x914d;&#x8f66;&#x6709;&#x7ec8;&#x6b62;&#x65f6;&#x95f4;&#xff0c;&#x7136;&#x540e;&#x662f;&#x5426;&#x5207;&#x6362;&#x57fa;&#x672c;&#x90fd;&#x662f;1&#xa;&#x662f;&#x5426;&#x5207;&#x6362; &#x6682;&#x65f6;&#x4e0d;&#x77e5;&#x9053;&#x4ec0;&#x4e48;&#x610f;&#x601d;&#xff0c;&#x5f53;&#x524d;&#x914d;&#x8f66;&#x90fd;&#x8bbe;&#x7f6e;&#x4e3a;0&#xa;&#x7ec8;&#x6b62;&#x65f6;&#x95f4; &#x5f53;&#x524d;&#x914d;&#x8f66;&#x6ca1;&#x6709;&#x7ec8;&#x6b62;&#x65f6;&#x95f4;&#xff0c;&#x8fd9;&#x4e2a;&#x4f30;&#x8ba1;&#x8981;&#x4f5c;&#x4e3a;&#x67e5;&#x8be2;&#x6761;&#x4ef6;&#x7684;&#xa;&#x65e9;&#x73ed;&#x65f6;&#x95f4; &#x6ca1;&#x6709;&#x6682;&#x65f6;&#x7a7a;&#x7740;&#xa;&#x672b;&#x73ed;&#x65f6;&#x95f4; &#x6ca1;&#x6709;&#x6682;&#x65f6;&#x7a7a;&#x7740;</note>
  88 + <note>&#x914d;&#x8f66;&#x5206;&#x5f53;&#x524d;&#x2f;&#x5386;&#x53f2;&#x2f;&#x8ba1;&#x5212;&#xff0c;&#x5386;&#x53f2;&#x914d;&#x8f66;&#x6709;&#x7ec8;&#x6b62;&#x65f6;&#x95f4;&#xff0c;&#x7136;&#x540e;&#x662f;&#x5426;&#x5207;&#x6362;&#x57fa;&#x672c;&#x90fd;&#x662f;1&#xa;&#x662f;&#x5426;&#x5207;&#x6362; &#x6682;&#x65f6;&#x4e0d;&#x77e5;&#x9053;&#x4ec0;&#x4e48;&#x610f;&#x601d;&#xff0c;&#x5f53;&#x524d;&#x914d;&#x8f66;&#x90fd;&#x8bbe;&#x7f6e;&#x4e3a;0&#xa;&#x7ec8;&#x6b62;&#x65f6;&#x95f4; &#x5f53;&#x524d;&#x914d;&#x8f66;&#x6ca1;&#x6709;&#x7ec8;&#x6b62;&#x65f6;&#x95f4;&#xff0c;&#x8fd9;&#x4e2a;&#x4f30;&#x8ba1;&#x8981;&#x4f5c;&#x4e3a;&#x67e5;&#x8be2;&#x6761;&#x4ef6;&#x7684;&#xa;&#x65e9;&#x73ed;&#x65f6;&#x95f4; &#x6ca1;&#x6709;&#x6682;&#x65f6;&#x7a7a;&#x7740;&#xa;&#x672b;&#x73ed;&#x65f6;&#x95f4; &#x6ca1;&#x6709;&#x6682;&#x65f6;&#x7a7a;&#x7740;&#xa;</note>
89 89 <xloc>260</xloc>
90 90 <yloc>124</yloc>
91 91 <width>391</width>
92   - <heigth>90</heigth>
  92 + <heigth>106</heigth>
93 93 <fontname>YaHei Consolas Hybrid</fontname>
94 94 <fontsize>12</fontsize>
95 95 <fontbold>N</fontbold>
... ... @@ -111,7 +111,7 @@
111 111 <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
112 112 <type>MYSQL</type>
113 113 <access>Native</access>
114   - <database>control</database>
  114 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
115 115 <port>3306</port>
116 116 <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
117 117 <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
... ... @@ -329,7 +329,7 @@
329 329 <precision>-1</precision>
330 330 <trim_type>none</trim_type>
331 331 <repeat>N</repeat>
332   - <format/>
  332 + <format>&#x23;</format>
333 333 <currency/>
334 334 <decimal/>
335 335 <group/>
... ... @@ -513,6 +513,41 @@
513 513 </step>
514 514  
515 515 <step>
  516 + <name>&#x65e5;&#x671f;&#x8f6c;&#x6362;</name>
  517 + <type>SelectValues</type>
  518 + <description/>
  519 + <distribute>Y</distribute>
  520 + <custom_distribution/>
  521 + <copies>1</copies>
  522 + <partitioning>
  523 + <method>none</method>
  524 + <schema_name/>
  525 + </partitioning>
  526 + <fields> <select_unspecified>N</select_unspecified>
  527 + <meta> <name>qyrq</name>
  528 + <rename>qyrq</rename>
  529 + <type>Date</type>
  530 + <length>-2</length>
  531 + <precision>-2</precision>
  532 + <conversion_mask>yyyy-MM-dd</conversion_mask>
  533 + <date_format_lenient>false</date_format_lenient>
  534 + <date_format_locale/>
  535 + <date_format_timezone/>
  536 + <lenient_string_to_number>false</lenient_string_to_number>
  537 + <encoding/>
  538 + <decimal_symbol/>
  539 + <grouping_symbol/>
  540 + <currency_symbol/>
  541 + <storage_type/>
  542 + </meta> </fields> <cluster_schema/>
  543 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  544 + <xloc>913</xloc>
  545 + <yloc>54</yloc>
  546 + <draw>Y</draw>
  547 + </GUI>
  548 + </step>
  549 +
  550 + <step>
516 551 <name>&#x662f;&#x5426;&#x5207;&#x6362;</name>
517 552 <type>Constant</type>
518 553 <description/>
... ... @@ -801,41 +836,6 @@
801 836 </GUI>
802 837 </step>
803 838  
804   - <step>
805   - <name>&#x65e5;&#x671f;&#x8f6c;&#x6362;</name>
806   - <type>SelectValues</type>
807   - <description/>
808   - <distribute>Y</distribute>
809   - <custom_distribution/>
810   - <copies>1</copies>
811   - <partitioning>
812   - <method>none</method>
813   - <schema_name/>
814   - </partitioning>
815   - <fields> <select_unspecified>N</select_unspecified>
816   - <meta> <name>qyrq</name>
817   - <rename>qyrq</rename>
818   - <type>Date</type>
819   - <length>-2</length>
820   - <precision>-2</precision>
821   - <conversion_mask>yyyy-MM-dd</conversion_mask>
822   - <date_format_lenient>false</date_format_lenient>
823   - <date_format_locale/>
824   - <date_format_timezone/>
825   - <lenient_string_to_number>false</lenient_string_to_number>
826   - <encoding/>
827   - <decimal_symbol/>
828   - <grouping_symbol/>
829   - <currency_symbol/>
830   - <storage_type/>
831   - </meta> </fields> <cluster_schema/>
832   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
833   - <xloc>913</xloc>
834   - <yloc>54</yloc>
835   - <draw>Y</draw>
836   - </GUI>
837   - </step>
838   -
839 839 <step_error_handling>
840 840 <error>
841 841 <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</source_step>
... ...
src/main/resources/datatools/ktrs/carsDataInput.ktr
... ... @@ -85,11 +85,11 @@
85 85 </info>
86 86 <notepads>
87 87 <notepad>
88   - <note>&#x539f;&#x7cfb;&#x7edf;&#x7684;&#x5bfc;&#x51fa;&#x8868;&#xff0c;&#x6709;&#x4e9b;&#x6570;&#x636e;&#x662f;&#x6ca1;&#x6709;&#x7684;&#xff0c;&#x6709;&#x4e9b;&#x6570;&#x636e;&#x4e5f;&#x6709;&#x95ee;&#x9898;&#xff0c;&#x5982;&#x4e0b;&#xa;&#x62a5;&#x5e9f;&#x65e5;&#x671f;&#x53bb;&#x6389;&#xa;&#x8f66;&#x8f86;&#x7f16;&#x7801;&#xff0c;&#x6682;&#x65f6;&#x7528;1&#x4ee3;&#x66ff;&#xa;&#x662f;&#x5426;&#x7535;&#x8f66; &#x6ca1;&#x6709;&#xa;&#x8f66;&#x8f86;&#x5e8f;&#x53f7; &#x6ca1;&#x6709;&#xa;&#x662f;&#x5426;&#x5207;&#x6362; &#x6ca1;&#x6709;&#xa;&#x7ebf;&#x8def;&#x540d;&#x79f0;&#xff08;&#x8fd9;&#x91cc;&#x4e0d;&#x505a;&#x5173;&#x8054;&#xff0c;&#x53ea;&#x662f;&#x767b;&#x8bb0;&#x7684;&#x65f6;&#x5019;&#x4f7f;&#x7528;&#xff09; &#x54a9;&#x6709;&#xa;&#xa;&#x5b57;&#x5178;&#xa;&#x662f;&#x4e0e;&#x5426;truefalseType &#x662f; 1&#xa;&#x662f;&#x4e0e;&#x5426;truefalseType &#x5426; 0&#xa;&#xa;&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;snames &#x5df4;&#x58eb;&#x62d3;&#x534e; 1&#xa;&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;snames &#x535a;&#x5eb7; 2&#xa;&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x8425;&#x8fd0; 1&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x505c;&#x8fd0; 2&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x6302;&#x5931; 3&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x8fc1;&#x51fa;&#xff08;&#x8fc7;&#x6237;&#xff09; 4&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x8fc1;&#x51fa;&#xff08;&#x8f6c;&#x7c4d;&#xff09; 5&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x62a5;&#x5e9f; 6&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x6b47;&#x4e1a; 7&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x6ce8;&#x9500; 8&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x6d4b;&#x8bd5; 9&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x5176;&#x4ed6; 10&#xa;&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x975e;&#x673a;&#x52a8;&#x8f66; 1&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x673a;&#x52a8;&#x4e00;&#x961f; 2&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x673a;&#x52a8;&#x4e8c;&#x961f; 3&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x673a;&#x52a8;&#x4e09;&#x961f; 4&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x5907;&#x8f66; 5&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x62a2;&#x4fee;&#x8f66; 6&#xa;&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x8425;&#x8fd0;&#x8f66; 1&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x5305;&#x8f66; 2&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x5b66;&#x6821;&#x73ed;&#x8f66; 3&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x516c;&#x53f8;&#x73ed;&#x8f66; 4&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x5f85;&#x62a5;&#x5e9f;&#x8f66; 5&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x5907;&#x8f66; 6&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x6d4b;&#x8bd5;&#x8bbe;&#x5907; 7&#xa;&#xa;&#xa;&#xa;</note>
  88 + <note>&#x539f;&#x7cfb;&#x7edf;&#x7684;&#x5bfc;&#x51fa;&#x8868;&#xff0c;&#x6709;&#x4e9b;&#x6570;&#x636e;&#x662f;&#x6ca1;&#x6709;&#x7684;&#xff0c;&#x6709;&#x4e9b;&#x6570;&#x636e;&#x4e5f;&#x6709;&#x95ee;&#x9898;&#xff0c;&#x5982;&#x4e0b;&#xa;&#x62a5;&#x5e9f;&#x65e5;&#x671f;&#x53bb;&#x6389;&#xa;&#x8f66;&#x8f86;&#x7f16;&#x7801;&#xff0c;&#x6682;&#x65f6;&#x7528;1&#x4ee3;&#x66ff;&#xa;&#x662f;&#x5426;&#x7535;&#x8f66; &#x6ca1;&#x6709;&#xa;&#x8f66;&#x8f86;&#x5e8f;&#x53f7; &#x6ca1;&#x6709;&#xa;&#x662f;&#x5426;&#x5207;&#x6362; &#x6ca1;&#x6709;&#xa;&#x7ebf;&#x8def;&#x540d;&#x79f0;&#xff08;&#x8fd9;&#x91cc;&#x4e0d;&#x505a;&#x5173;&#x8054;&#xff0c;&#x53ea;&#x662f;&#x767b;&#x8bb0;&#x7684;&#x65f6;&#x5019;&#x4f7f;&#x7528;&#xff09; &#x54a9;&#x6709;&#xa;&#xa;&#x5b57;&#x5178;&#xa;&#x662f;&#x4e0e;&#x5426;truefalseType &#x662f; 1&#xa;&#x662f;&#x4e0e;&#x5426;truefalseType &#x5426; 0&#xa;&#xa;&#xa;&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;snames &#x5df4;&#x58eb;&#x62d3;&#x534e; 1&#xa;&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;snames &#x535a;&#x5eb7; 2&#xa;&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x8425;&#x8fd0; 1&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x505c;&#x8fd0; 2&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x6302;&#x5931; 3&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x8fc1;&#x51fa;&#xff08;&#x8fc7;&#x6237;&#xff09; 4&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x8fc1;&#x51fa;&#xff08;&#x8f6c;&#x7c4d;&#xff09; 5&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x62a5;&#x5e9f; 6&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x6b47;&#x4e1a; 7&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x6ce8;&#x9500; 8&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x6d4b;&#x8bd5; 9&#xa;&#x8425;&#x8fd0;&#x72b6;&#x6001;yyztType &#x5176;&#x4ed6; 10&#xa;&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x975e;&#x673a;&#x52a8;&#x8f66; 1&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x673a;&#x52a8;&#x4e00;&#x961f; 2&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x673a;&#x52a8;&#x4e8c;&#x961f; 3&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x673a;&#x52a8;&#x4e09;&#x961f; 4&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x5907;&#x8f66; 5&#xa;&#x673a;&#x52a8;&#x8f66;&#x7c7b;&#x578b;jdcType &#x62a2;&#x4fee;&#x8f66; 6&#xa;&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x8425;&#x8fd0;&#x8f66; 1&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x5305;&#x8f66; 2&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x5b66;&#x6821;&#x73ed;&#x8f66; 3&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x516c;&#x53f8;&#x73ed;&#x8f66; 4&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x5f85;&#x62a5;&#x5e9f;&#x8f66; 5&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x5907;&#x8f66; 6&#xa;&#x8f66;&#x8f86;&#x7c7b;&#x578b;carType &#x6d4b;&#x8bd5;&#x8bbe;&#x5907; 7&#xa;&#xa;&#xa;&#xa;</note>
89 89 <xloc>45</xloc>
90 90 <yloc>254</yloc>
91 91 <width>346</width>
92   - <heigth>714</heigth>
  92 + <heigth>730</heigth>
93 93 <fontname>YaHei Consolas Hybrid</fontname>
94 94 <fontsize>12</fontsize>
95 95 <fontbold>N</fontbold>
... ...
src/main/resources/datatools/ktrs/carsDataOutput.ktr
... ... @@ -1357,8 +1357,8 @@
1357 1357 </fields>
1358 1358 <cluster_schema/>
1359 1359 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1360   - <xloc>206</xloc>
1361   - <yloc>154</yloc>
  1360 + <xloc>208</xloc>
  1361 + <yloc>157</yloc>
1362 1362 <draw>Y</draw>
1363 1363 </GUI>
1364 1364 </step>
... ...
src/main/resources/datatools/ktrs/employeesConfigDataInput.ktr
1   -<?xml version="1.0" encoding="UTF-8"?>
2   -<transformation>
3   - <info>
4   - <name>employeesConfigDataInput</name>
5   - <description>&#x4eba;&#x5458;&#x914d;&#x7f6e;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>
6   - <extended_description>&#x4eba;&#x5458;&#x914d;&#x7f6e;&#x4fe1;&#x606f;</extended_description>
7   - <trans_version/>
8   - <trans_type>Normal</trans_type>
9   - <trans_status>0</trans_status>
10   - <directory>&#x2f;</directory>
11   - <parameters>
12   - <parameter>
13   - <name>erroroutputdir</name>
14   - <default_value/>
15   - <description>ktr step&#x914d;&#x7f6e;&#x7684;&#x9519;&#x8bef;&#x8f93;&#x51fa;&#x76ee;&#x5f55;</description>
16   - </parameter>
17   - <parameter>
18   - <name>filepath</name>
19   - <default_value/>
20   - <description>&#x5f85;&#x5904;&#x7406;&#x5bfc;&#x5165;&#x7684;excel&#x6587;&#x4ef6;</description>
21   - </parameter>
22   - </parameters>
23   - <log>
24   -<trans-log-table><connection/>
25   -<schema/>
26   -<table/>
27   -<size_limit_lines/>
28   -<interval/>
29   -<timeout_days/>
30   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name><subject/></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name><subject/></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name><subject/></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name><subject/></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name><subject/></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name><subject/></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></trans-log-table>
31   -<perf-log-table><connection/>
32   -<schema/>
33   -<table/>
34   -<interval/>
35   -<timeout_days/>
36   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>SEQ_NR</id><enabled>Y</enabled><name>SEQ_NR</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>INPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>INPUT_BUFFER_ROWS</name></field><field><id>OUTPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>OUTPUT_BUFFER_ROWS</name></field></perf-log-table>
37   -<channel-log-table><connection/>
38   -<schema/>
39   -<table/>
40   -<timeout_days/>
41   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table>
42   -<step-log-table><connection/>
43   -<schema/>
44   -<table/>
45   -<timeout_days/>
46   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field></step-log-table>
47   -<metrics-log-table><connection/>
48   -<schema/>
49   -<table/>
50   -<timeout_days/>
51   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>METRICS_DATE</id><enabled>Y</enabled><name>METRICS_DATE</name></field><field><id>METRICS_CODE</id><enabled>Y</enabled><name>METRICS_CODE</name></field><field><id>METRICS_DESCRIPTION</id><enabled>Y</enabled><name>METRICS_DESCRIPTION</name></field><field><id>METRICS_SUBJECT</id><enabled>Y</enabled><name>METRICS_SUBJECT</name></field><field><id>METRICS_TYPE</id><enabled>Y</enabled><name>METRICS_TYPE</name></field><field><id>METRICS_VALUE</id><enabled>Y</enabled><name>METRICS_VALUE</name></field></metrics-log-table>
52   - </log>
53   - <maxdate>
54   - <connection/>
55   - <table/>
56   - <field/>
57   - <offset>0.0</offset>
58   - <maxdiff>0.0</maxdiff>
59   - </maxdate>
60   - <size_rowset>10000</size_rowset>
61   - <sleep_time_empty>50</sleep_time_empty>
62   - <sleep_time_full>50</sleep_time_full>
63   - <unique_connections>N</unique_connections>
64   - <feedback_shown>Y</feedback_shown>
65   - <feedback_size>50000</feedback_size>
66   - <using_thread_priorities>Y</using_thread_priorities>
67   - <shared_objects_file/>
68   - <capture_step_performance>N</capture_step_performance>
69   - <step_performance_capturing_delay>1000</step_performance_capturing_delay>
70   - <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
71   - <dependencies>
72   - </dependencies>
73   - <partitionschemas>
74   - </partitionschemas>
75   - <slaveservers>
76   - </slaveservers>
77   - <clusterschemas>
78   - </clusterschemas>
79   - <created_user>-</created_user>
80   - <created_date>2016&#x2f;06&#x2f;29 15&#x3a;12&#x3a;27.273</created_date>
81   - <modified_user>-</modified_user>
82   - <modified_date>2016&#x2f;06&#x2f;29 15&#x3a;12&#x3a;27.273</modified_date>
83   - <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
84   - <is_key_private>N</is_key_private>
85   - </info>
86   - <notepads>
87   - <notepad>
88   - <note>&#x539f;&#x7cfb;&#x7edf;&#x7684;&#x8868;&#x4e2d;&#xff0c;&#x8f66;&#x8f86;&#x5185;&#x90e8;&#x7f16;&#x7801;&#x662f;&#x6ca1;&#x7684;&#xff0c;&#xa;&#x642d;&#x73ed;&#x7f16;&#x7801; &#x8fd9;&#x4e2a;&#x8c8c;&#x4f3c;&#x7528;&#x4e8e;&#x9a7e;&#x9a76;&#x5458;&#x548c;&#x552e;&#x7968;&#x5458;&#x7528;&#x7684;&#xff0c;&#x597d;&#x50cf;&#x4e0d;&#x80fd;&#x4e00;&#x6837;&#x7684;&#xa;&#x8f66;&#x8f86;&#x5185;&#x90e8;&#x7f16;&#x7801; &#x6ca1;&#x6709;&#x6682;&#x65f6;&#x7a7a;&#x7740;</note>
89   - <xloc>252</xloc>
90   - <yloc>178</yloc>
91   - <width>341</width>
92   - <heigth>58</heigth>
93   - <fontname>YaHei Consolas Hybrid</fontname>
94   - <fontsize>12</fontsize>
95   - <fontbold>N</fontbold>
96   - <fontitalic>N</fontitalic>
97   - <fontcolorred>0</fontcolorred>
98   - <fontcolorgreen>0</fontcolorgreen>
99   - <fontcolorblue>0</fontcolorblue>
100   - <backgroundcolorred>255</backgroundcolorred>
101   - <backgroundcolorgreen>205</backgroundcolorgreen>
102   - <backgroundcolorblue>112</backgroundcolorblue>
103   - <bordercolorred>100</bordercolorred>
104   - <bordercolorgreen>100</bordercolorgreen>
105   - <bordercolorblue>100</bordercolorblue>
106   - <drawshadow>Y</drawshadow>
107   - </notepad>
108   - </notepads>
109   - <connection>
110   - <name>bus_control_variable</name>
111   - <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
112   - <type>MYSQL</type>
113   - <access>Native</access>
114   - <database>control</database>
115   - <port>3306</port>
116   - <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
117   - <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
118   - <servername/>
119   - <data_tablespace/>
120   - <index_tablespace/>
121   - <attributes>
122   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
123   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
124   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
125   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
126   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
127   - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
128   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
129   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
130   - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
131   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
132   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
133   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
134   - </attributes>
135   - </connection>
136   - <connection>
137   - <name>bus_control_&#x516c;&#x53f8;_201</name>
138   - <server>localhost</server>
139   - <type>MYSQL</type>
140   - <access>Native</access>
141   - <database>control</database>
142   - <port>3306</port>
143   - <username>root</username>
144   - <password>Encrypted </password>
145   - <servername/>
146   - <data_tablespace/>
147   - <index_tablespace/>
148   - <attributes>
149   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
150   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
151   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
152   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
153   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
154   - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
155   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
156   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
157   - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
158   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
159   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
160   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
161   - </attributes>
162   - </connection>
163   - <connection>
164   - <name>bus_control_&#x672c;&#x673a;</name>
165   - <server>localhost</server>
166   - <type>MYSQL</type>
167   - <access>Native</access>
168   - <database>control</database>
169   - <port>3306</port>
170   - <username>root</username>
171   - <password>Encrypted </password>
172   - <servername/>
173   - <data_tablespace/>
174   - <index_tablespace/>
175   - <attributes>
176   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
177   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
178   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
179   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
180   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
181   - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
182   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
183   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
184   - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
185   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
186   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
187   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
188   - </attributes>
189   - </connection>
190   - <connection>
191   - <name>xlab_mysql_youle</name>
192   - <server>101.231.124.8</server>
193   - <type>MYSQL</type>
194   - <access>Native</access>
195   - <database>xlab_youle</database>
196   - <port>45687</port>
197   - <username>xlab-youle</username>
198   - <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>
199   - <servername/>
200   - <data_tablespace/>
201   - <index_tablespace/>
202   - <attributes>
203   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
204   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
205   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
206   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
207   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
208   - <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>
209   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
210   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
211   - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
212   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
213   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
214   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
215   - </attributes>
216   - </connection>
217   - <connection>
218   - <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>
219   - <server>localhost</server>
220   - <type>MYSQL</type>
221   - <access>Native</access>
222   - <database>xlab_youle</database>
223   - <port>3306</port>
224   - <username>root</username>
225   - <password>Encrypted </password>
226   - <servername/>
227   - <data_tablespace/>
228   - <index_tablespace/>
229   - <attributes>
230   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
231   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
232   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
233   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
234   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
235   - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
236   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
237   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
238   - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
239   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
240   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
241   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
242   - </attributes>
243   - </connection>
244   - <connection>
245   - <name>xlab_youle</name>
246   - <server/>
247   - <type>MYSQL</type>
248   - <access>JNDI</access>
249   - <database>xlab_youle</database>
250   - <port>1521</port>
251   - <username/>
252   - <password>Encrypted </password>
253   - <servername/>
254   - <data_tablespace/>
255   - <index_tablespace/>
256   - <attributes>
257   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
258   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
259   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
260   - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
261   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
262   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
263   - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
264   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
265   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
266   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
267   - </attributes>
268   - </connection>
269   - <order>
270   - <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</to><enabled>Y</enabled> </hop>
271   - <hop> <from>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</from><to>&#x67e5;&#x8be2;&#x7ebf;&#x8def;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>
272   - <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>
273   - <hop> <from>&#x67e5;&#x8be2;&#x552e;&#x7968;&#x5458;&#x5173;&#x8054;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</to><enabled>Y</enabled> </hop>
274   - <hop> <from>&#x67e5;&#x8be2;&#x7ebf;&#x8def;&#x5173;&#x8054;</from><to>&#x67e5;&#x8be2;&#x9a7e;&#x9a76;&#x5458;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>
275   - <hop> <from>&#x67e5;&#x8be2;&#x9a7e;&#x9a76;&#x5458;&#x5173;&#x8054;</from><to>&#x67e5;&#x8be2;&#x552e;&#x7968;&#x5458;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>
276   - <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>
277   - </order>
278   - <step>
279   - <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
280   - <type>ExcelInput</type>
281   - <description/>
282   - <distribute>Y</distribute>
283   - <custom_distribution/>
284   - <copies>1</copies>
285   - <partitioning>
286   - <method>none</method>
287   - <schema_name/>
288   - </partitioning>
289   - <header>Y</header>
290   - <noempty>Y</noempty>
291   - <stoponempty>N</stoponempty>
292   - <filefield/>
293   - <sheetfield/>
294   - <sheetrownumfield/>
295   - <rownumfield/>
296   - <sheetfield/>
297   - <filefield/>
298   - <limit>0</limit>
299   - <encoding/>
300   - <add_to_result_filenames>Y</add_to_result_filenames>
301   - <accept_filenames>Y</accept_filenames>
302   - <accept_field>filepath_</accept_field>
303   - <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
304   - <file>
305   - <name/>
306   - <filemask/>
307   - <exclude_filemask/>
308   - <file_required>N</file_required>
309   - <include_subfolders>N</include_subfolders>
310   - </file>
311   - <fields>
312   - <field>
313   - <name>&#x7ebf;&#x8def;</name>
314   - <type>String</type>
315   - <length>-1</length>
316   - <precision>-1</precision>
317   - <trim_type>none</trim_type>
318   - <repeat>N</repeat>
319   - <format/>
320   - <currency/>
321   - <decimal/>
322   - <group/>
323   - </field>
324   - <field>
325   - <name>&#x642d;&#x73ed;&#x7f16;&#x7801;</name>
326   - <type>String</type>
327   - <length>-1</length>
328   - <precision>-1</precision>
329   - <trim_type>none</trim_type>
330   - <repeat>N</repeat>
331   - <format/>
332   - <currency/>
333   - <decimal/>
334   - <group/>
335   - </field>
336   - <field>
337   - <name>&#x9a7e;&#x9a76;&#x5458;&#x5de5;&#x53f7;</name>
338   - <type>String</type>
339   - <length>-1</length>
340   - <precision>-1</precision>
341   - <trim_type>none</trim_type>
342   - <repeat>N</repeat>
343   - <format/>
344   - <currency/>
345   - <decimal/>
346   - <group/>
347   - </field>
348   - <field>
349   - <name>&#x9a7e;&#x9a76;&#x5458;</name>
350   - <type>String</type>
351   - <length>-1</length>
352   - <precision>-1</precision>
353   - <trim_type>none</trim_type>
354   - <repeat>N</repeat>
355   - <format/>
356   - <currency/>
357   - <decimal/>
358   - <group/>
359   - </field>
360   - <field>
361   - <name>&#x552e;&#x7968;&#x5458;&#x5de5;&#x53f7;</name>
362   - <type>String</type>
363   - <length>-1</length>
364   - <precision>-1</precision>
365   - <trim_type>none</trim_type>
366   - <repeat>N</repeat>
367   - <format/>
368   - <currency/>
369   - <decimal/>
370   - <group/>
371   - </field>
372   - <field>
373   - <name>&#x552e;&#x7968;&#x5458;</name>
374   - <type>String</type>
375   - <length>-1</length>
376   - <precision>-1</precision>
377   - <trim_type>none</trim_type>
378   - <repeat>N</repeat>
379   - <format/>
380   - <currency/>
381   - <decimal/>
382   - <group/>
383   - </field>
384   - <field>
385   - <name>&#x8f66;&#x8f86;</name>
386   - <type>String</type>
387   - <length>-1</length>
388   - <precision>-1</precision>
389   - <trim_type>none</trim_type>
390   - <repeat>N</repeat>
391   - <format/>
392   - <currency/>
393   - <decimal/>
394   - <group/>
395   - </field>
396   - </fields>
397   - <sheets>
398   - <sheet>
399   - <name>&#x5de5;&#x4f5c;&#x8868;1</name>
400   - <startrow>0</startrow>
401   - <startcol>0</startcol>
402   - </sheet>
403   - </sheets>
404   - <strict_types>N</strict_types>
405   - <error_ignored>N</error_ignored>
406   - <error_line_skipped>N</error_line_skipped>
407   - <bad_line_files_destination_directory/>
408   - <bad_line_files_extension>warning</bad_line_files_extension>
409   - <error_line_files_destination_directory/>
410   - <error_line_files_extension>error</error_line_files_extension>
411   - <line_number_files_destination_directory/>
412   - <line_number_files_extension>line</line_number_files_extension>
413   - <shortFileFieldName/>
414   - <pathFieldName/>
415   - <hiddenFieldName/>
416   - <lastModificationTimeFieldName/>
417   - <uriNameFieldName/>
418   - <rootUriNameFieldName/>
419   - <extensionFieldName/>
420   - <sizeFieldName/>
421   - <spreadsheet_type>JXL</spreadsheet_type>
422   - <cluster_schema/>
423   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
424   - <xloc>144</xloc>
425   - <yloc>49</yloc>
426   - <draw>Y</draw>
427   - </GUI>
428   - </step>
429   -
430   - <step>
431   - <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>
432   - <type>SelectValues</type>
433   - <description/>
434   - <distribute>Y</distribute>
435   - <custom_distribution/>
436   - <copies>1</copies>
437   - <partitioning>
438   - <method>none</method>
439   - <schema_name/>
440   - </partitioning>
441   - <fields> <field> <name>&#x7ebf;&#x8def;</name>
442   - <rename>xl</rename>
443   - <length>-2</length>
444   - <precision>-2</precision>
445   - </field> <field> <name>&#x642d;&#x73ed;&#x7f16;&#x7801;</name>
446   - <rename>dbbm</rename>
447   - <length>-2</length>
448   - <precision>-2</precision>
449   - </field> <field> <name>&#x9a7e;&#x9a76;&#x5458;&#x5de5;&#x53f7;</name>
450   - <rename>jsy_no</rename>
451   - <length>-2</length>
452   - <precision>-2</precision>
453   - </field> <field> <name>&#x9a7e;&#x9a76;&#x5458;</name>
454   - <rename>jsy_name</rename>
455   - <length>-2</length>
456   - <precision>-2</precision>
457   - </field> <field> <name>&#x552e;&#x7968;&#x5458;&#x5de5;&#x53f7;</name>
458   - <rename>spy_no</rename>
459   - <length>-2</length>
460   - <precision>-2</precision>
461   - </field> <field> <name>&#x552e;&#x7968;&#x5458;</name>
462   - <rename>spy_name</rename>
463   - <length>-2</length>
464   - <precision>-2</precision>
465   - </field> <field> <name>&#x8f66;&#x8f86;</name>
466   - <rename>cl</rename>
467   - <length>-2</length>
468   - <precision>-2</precision>
469   - </field> <select_unspecified>N</select_unspecified>
470   - </fields> <cluster_schema/>
471   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
472   - <xloc>294</xloc>
473   - <yloc>50</yloc>
474   - <draw>Y</draw>
475   - </GUI>
476   - </step>
477   -
478   - <step>
479   - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</name>
480   - <type>InsertUpdate</type>
481   - <description/>
482   - <distribute>Y</distribute>
483   - <custom_distribution/>
484   - <copies>1</copies>
485   - <partitioning>
486   - <method>none</method>
487   - <schema_name/>
488   - </partitioning>
489   - <connection>bus_control_variable</connection>
490   - <commit>100</commit>
491   - <update_bypassed>N</update_bypassed>
492   - <lookup>
493   - <schema/>
494   - <table>bsth_c_s_ecinfo</table>
495   - <key>
496   - <name>xlid</name>
497   - <field>xl</field>
498   - <condition>&#x3d;</condition>
499   - <name2/>
500   - </key>
501   - <key>
502   - <name>jsyid</name>
503   - <field>jsy</field>
504   - <condition>&#x3d;</condition>
505   - <name2/>
506   - </key>
507   - <key>
508   - <name>spyid</name>
509   - <field>spy</field>
510   - <condition>&#x3d;</condition>
511   - <name2/>
512   - </key>
513   - <value>
514   - <name>xl</name>
515   - <rename>xlid</rename>
516   - <update>Y</update>
517   - </value>
518   - <value>
519   - <name>dbbm</name>
520   - <rename>dbbm</rename>
521   - <update>Y</update>
522   - </value>
523   - <value>
524   - <name>jsy</name>
525   - <rename>jsyid</rename>
526   - <update>Y</update>
527   - </value>
528   - <value>
529   - <name>spy</name>
530   - <rename>spyid</rename>
531   - <update>Y</update>
532   - </value>
533   - </lookup>
534   - <cluster_schema/>
535   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
536   - <xloc>721</xloc>
537   - <yloc>181</yloc>
538   - <draw>Y</draw>
539   - </GUI>
540   - </step>
541   -
542   - <step>
543   - <name>&#x67e5;&#x8be2;&#x552e;&#x7968;&#x5458;&#x5173;&#x8054;</name>
544   - <type>DBLookup</type>
545   - <description/>
546   - <distribute>Y</distribute>
547   - <custom_distribution/>
548   - <copies>1</copies>
549   - <partitioning>
550   - <method>none</method>
551   - <schema_name/>
552   - </partitioning>
553   - <connection>bus_control_variable</connection>
554   - <cache>N</cache>
555   - <cache_load_all>N</cache_load_all>
556   - <cache_size>0</cache_size>
557   - <lookup>
558   - <schema/>
559   - <table>bsth_c_personnel</table>
560   - <orderby/>
561   - <fail_on_multiple>N</fail_on_multiple>
562   - <eat_row_on_failure>N</eat_row_on_failure>
563   - <key>
564   - <name>spy_no</name>
565   - <field>job_code</field>
566   - <condition>&#x3d;</condition>
567   - <name2/>
568   - </key>
569   - <value>
570   - <name>id</name>
571   - <rename>spyid</rename>
572   - <default/>
573   - <type>Integer</type>
574   - </value>
575   - </lookup>
576   - <cluster_schema/>
577   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
578   - <xloc>720</xloc>
579   - <yloc>51</yloc>
580   - <draw>Y</draw>
581   - </GUI>
582   - </step>
583   -
584   - <step>
585   - <name>&#x67e5;&#x8be2;&#x7ebf;&#x8def;&#x5173;&#x8054;</name>
586   - <type>DBLookup</type>
587   - <description/>
588   - <distribute>Y</distribute>
589   - <custom_distribution/>
590   - <copies>1</copies>
591   - <partitioning>
592   - <method>none</method>
593   - <schema_name/>
594   - </partitioning>
595   - <connection>bus_control_variable</connection>
596   - <cache>N</cache>
597   - <cache_load_all>N</cache_load_all>
598   - <cache_size>0</cache_size>
599   - <lookup>
600   - <schema/>
601   - <table>bsth_c_line</table>
602   - <orderby/>
603   - <fail_on_multiple>N</fail_on_multiple>
604   - <eat_row_on_failure>N</eat_row_on_failure>
605   - <key>
606   - <name>xl</name>
607   - <field>name</field>
608   - <condition>&#x3d;</condition>
609   - <name2/>
610   - </key>
611   - <value>
612   - <name>id</name>
613   - <rename>xlid</rename>
614   - <default/>
615   - <type>Integer</type>
616   - </value>
617   - </lookup>
618   - <cluster_schema/>
619   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
620   - <xloc>429</xloc>
621   - <yloc>51</yloc>
622   - <draw>Y</draw>
623   - </GUI>
624   - </step>
625   -
626   - <step>
627   - <name>&#x67e5;&#x8be2;&#x9a7e;&#x9a76;&#x5458;&#x5173;&#x8054;</name>
628   - <type>DBLookup</type>
629   - <description/>
630   - <distribute>Y</distribute>
631   - <custom_distribution/>
632   - <copies>1</copies>
633   - <partitioning>
634   - <method>none</method>
635   - <schema_name/>
636   - </partitioning>
637   - <connection>bus_control_variable</connection>
638   - <cache>N</cache>
639   - <cache_load_all>N</cache_load_all>
640   - <cache_size>0</cache_size>
641   - <lookup>
642   - <schema/>
643   - <table>bsth_c_personnel</table>
644   - <orderby/>
645   - <fail_on_multiple>N</fail_on_multiple>
646   - <eat_row_on_failure>N</eat_row_on_failure>
647   - <key>
648   - <name>jsy_no</name>
649   - <field>job_code</field>
650   - <condition>&#x3d;</condition>
651   - <name2/>
652   - </key>
653   - <value>
654   - <name>id</name>
655   - <rename>jsyid</rename>
656   - <default/>
657   - <type>Integer</type>
658   - </value>
659   - </lookup>
660   - <cluster_schema/>
661   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
662   - <xloc>573</xloc>
663   - <yloc>51</yloc>
664   - <draw>Y</draw>
665   - </GUI>
666   - </step>
667   -
668   - <step>
669   - <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
670   - <type>GetVariable</type>
671   - <description/>
672   - <distribute>Y</distribute>
673   - <custom_distribution/>
674   - <copies>1</copies>
675   - <partitioning>
676   - <method>none</method>
677   - <schema_name/>
678   - </partitioning>
679   - <fields>
680   - <field>
681   - <name>filepath_</name>
682   - <variable>&#x24;&#x7b;filepath&#x7d;</variable>
683   - <type>String</type>
684   - <format/>
685   - <currency/>
686   - <decimal/>
687   - <group/>
688   - <length>-1</length>
689   - <precision>-1</precision>
690   - <trim_type>none</trim_type>
691   - </field>
692   - <field>
693   - <name>erroroutputdir_</name>
694   - <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
695   - <type>String</type>
696   - <format/>
697   - <currency/>
698   - <decimal/>
699   - <group/>
700   - <length>-1</length>
701   - <precision>-1</precision>
702   - <trim_type>none</trim_type>
703   - </field>
704   - </fields>
705   - <cluster_schema/>
706   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
707   - <xloc>94</xloc>
708   - <yloc>178</yloc>
709   - <draw>Y</draw>
710   - </GUI>
711   - </step>
712   -
713   - <step>
714   - <name>&#x9519;&#x8bef;&#x8f93;&#x51fa;</name>
715   - <type>ExcelOutput</type>
716   - <description/>
717   - <distribute>Y</distribute>
718   - <custom_distribution/>
719   - <copies>1</copies>
720   - <partitioning>
721   - <method>none</method>
722   - <schema_name/>
723   - </partitioning>
724   - <header>Y</header>
725   - <footer>N</footer>
726   - <encoding>UTF-8</encoding>
727   - <append>N</append>
728   - <add_to_result_filenames>Y</add_to_result_filenames>
729   - <file>
730   - <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x4eba;&#x5458;&#x914d;&#x7f6e;_&#x9519;&#x8bef;</name>
731   - <extention>xls</extention>
732   - <do_not_open_newfile_init>N</do_not_open_newfile_init>
733   - <create_parent_folder>N</create_parent_folder>
734   - <split>N</split>
735   - <add_date>N</add_date>
736   - <add_time>N</add_time>
737   - <SpecifyFormat>N</SpecifyFormat>
738   - <date_time_format/>
739   - <sheetname>Sheet1</sheetname>
740   - <autosizecolums>N</autosizecolums>
741   - <nullisblank>N</nullisblank>
742   - <protect_sheet>N</protect_sheet>
743   - <password>Encrypted </password>
744   - <splitevery>0</splitevery>
745   - <usetempfiles>N</usetempfiles>
746   - <tempdirectory/>
747   - </file>
748   - <template>
749   - <enabled>N</enabled>
750   - <append>N</append>
751   - <filename>template.xls</filename>
752   - </template>
753   - <fields>
754   - <field>
755   - <name>xl</name>
756   - <type>String</type>
757   - <format/>
758   - </field>
759   - <field>
760   - <name>dbbm</name>
761   - <type>String</type>
762   - <format/>
763   - </field>
764   - <field>
765   - <name>jsy_no</name>
766   - <type>String</type>
767   - <format/>
768   - </field>
769   - <field>
770   - <name>jsy_name</name>
771   - <type>String</type>
772   - <format/>
773   - </field>
774   - <field>
775   - <name>spy_no</name>
776   - <type>String</type>
777   - <format/>
778   - </field>
779   - <field>
780   - <name>spy_name</name>
781   - <type>String</type>
782   - <format/>
783   - </field>
784   - <field>
785   - <name>cl</name>
786   - <type>String</type>
787   - <format/>
788   - </field>
789   - <field>
790   - <name>xlid</name>
791   - <type>Integer</type>
792   - <format/>
793   - </field>
794   - <field>
795   - <name>jsyid</name>
796   - <type>Integer</type>
797   - <format/>
798   - </field>
799   - <field>
800   - <name>spyid</name>
801   - <type>Integer</type>
802   - <format/>
803   - </field>
804   - <field>
805   - <name>error_count</name>
806   - <type>Integer</type>
807   - <format/>
808   - </field>
809   - <field>
810   - <name>error_desc</name>
811   - <type>String</type>
812   - <format/>
813   - </field>
814   - <field>
815   - <name>error_column1</name>
816   - <type>String</type>
817   - <format/>
818   - </field>
819   - <field>
820   - <name>error_column2</name>
821   - <type>String</type>
822   - <format/>
823   - </field>
824   - </fields>
825   - <custom>
826   - <header_font_name>arial</header_font_name>
827   - <header_font_size>10</header_font_size>
828   - <header_font_bold>N</header_font_bold>
829   - <header_font_italic>N</header_font_italic>
830   - <header_font_underline>no</header_font_underline>
831   - <header_font_orientation>horizontal</header_font_orientation>
832   - <header_font_color>black</header_font_color>
833   - <header_background_color>none</header_background_color>
834   - <header_row_height>255</header_row_height>
835   - <header_alignment>left</header_alignment>
836   - <header_image/>
837   - <row_font_name>arial</row_font_name>
838   - <row_font_size>10</row_font_size>
839   - <row_font_color>black</row_font_color>
840   - <row_background_color>none</row_background_color>
841   - </custom>
842   - <cluster_schema/>
843   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
844   - <xloc>721</xloc>
845   - <yloc>304</yloc>
846   - <draw>Y</draw>
847   - </GUI>
848   - </step>
849   -
850   - <step_error_handling>
851   - <error>
852   - <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</source_step>
853   - <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa;</target_step>
854   - <is_enabled>Y</is_enabled>
855   - <nr_valuename>error_count</nr_valuename>
856   - <descriptions_valuename>error_desc</descriptions_valuename>
857   - <fields_valuename>error_column1</fields_valuename>
858   - <codes_valuename>error_column2</codes_valuename>
859   - <max_errors/>
860   - <max_pct_errors/>
861   - <min_pct_rows/>
862   - </error>
863   - </step_error_handling>
864   - <slave-step-copy-partition-distribution>
865   -</slave-step-copy-partition-distribution>
866   - <slave_transformation>N</slave_transformation>
867   -
868   -</transformation>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<transformation>
  3 + <info>
  4 + <name>employeesConfigDataInput</name>
  5 + <description>&#x4eba;&#x5458;&#x914d;&#x7f6e;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>
  6 + <extended_description>&#x4eba;&#x5458;&#x914d;&#x7f6e;&#x4fe1;&#x606f;</extended_description>
  7 + <trans_version/>
  8 + <trans_type>Normal</trans_type>
  9 + <trans_status>0</trans_status>
  10 + <directory>&#x2f;</directory>
  11 + <parameters>
  12 + <parameter>
  13 + <name>erroroutputdir</name>
  14 + <default_value/>
  15 + <description>ktr step&#x914d;&#x7f6e;&#x7684;&#x9519;&#x8bef;&#x8f93;&#x51fa;&#x76ee;&#x5f55;</description>
  16 + </parameter>
  17 + <parameter>
  18 + <name>filepath</name>
  19 + <default_value/>
  20 + <description>&#x5f85;&#x5904;&#x7406;&#x5bfc;&#x5165;&#x7684;excel&#x6587;&#x4ef6;</description>
  21 + </parameter>
  22 + </parameters>
  23 + <log>
  24 +<trans-log-table><connection/>
  25 +<schema/>
  26 +<table/>
  27 +<size_limit_lines/>
  28 +<interval/>
  29 +<timeout_days/>
  30 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name><subject/></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name><subject/></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name><subject/></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name><subject/></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name><subject/></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name><subject/></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></trans-log-table>
  31 +<perf-log-table><connection/>
  32 +<schema/>
  33 +<table/>
  34 +<interval/>
  35 +<timeout_days/>
  36 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>SEQ_NR</id><enabled>Y</enabled><name>SEQ_NR</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>INPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>INPUT_BUFFER_ROWS</name></field><field><id>OUTPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>OUTPUT_BUFFER_ROWS</name></field></perf-log-table>
  37 +<channel-log-table><connection/>
  38 +<schema/>
  39 +<table/>
  40 +<timeout_days/>
  41 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table>
  42 +<step-log-table><connection/>
  43 +<schema/>
  44 +<table/>
  45 +<timeout_days/>
  46 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field></step-log-table>
  47 +<metrics-log-table><connection/>
  48 +<schema/>
  49 +<table/>
  50 +<timeout_days/>
  51 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>METRICS_DATE</id><enabled>Y</enabled><name>METRICS_DATE</name></field><field><id>METRICS_CODE</id><enabled>Y</enabled><name>METRICS_CODE</name></field><field><id>METRICS_DESCRIPTION</id><enabled>Y</enabled><name>METRICS_DESCRIPTION</name></field><field><id>METRICS_SUBJECT</id><enabled>Y</enabled><name>METRICS_SUBJECT</name></field><field><id>METRICS_TYPE</id><enabled>Y</enabled><name>METRICS_TYPE</name></field><field><id>METRICS_VALUE</id><enabled>Y</enabled><name>METRICS_VALUE</name></field></metrics-log-table>
  52 + </log>
  53 + <maxdate>
  54 + <connection/>
  55 + <table/>
  56 + <field/>
  57 + <offset>0.0</offset>
  58 + <maxdiff>0.0</maxdiff>
  59 + </maxdate>
  60 + <size_rowset>10000</size_rowset>
  61 + <sleep_time_empty>50</sleep_time_empty>
  62 + <sleep_time_full>50</sleep_time_full>
  63 + <unique_connections>N</unique_connections>
  64 + <feedback_shown>Y</feedback_shown>
  65 + <feedback_size>50000</feedback_size>
  66 + <using_thread_priorities>Y</using_thread_priorities>
  67 + <shared_objects_file/>
  68 + <capture_step_performance>N</capture_step_performance>
  69 + <step_performance_capturing_delay>1000</step_performance_capturing_delay>
  70 + <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
  71 + <dependencies>
  72 + </dependencies>
  73 + <partitionschemas>
  74 + </partitionschemas>
  75 + <slaveservers>
  76 + </slaveservers>
  77 + <clusterschemas>
  78 + </clusterschemas>
  79 + <created_user>-</created_user>
  80 + <created_date>2016&#x2f;06&#x2f;29 15&#x3a;12&#x3a;27.273</created_date>
  81 + <modified_user>-</modified_user>
  82 + <modified_date>2016&#x2f;06&#x2f;29 15&#x3a;12&#x3a;27.273</modified_date>
  83 + <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
  84 + <is_key_private>N</is_key_private>
  85 + </info>
  86 + <notepads>
  87 + <notepad>
  88 + <note>&#x539f;&#x7cfb;&#x7edf;&#x7684;&#x8868;&#x4e2d;&#xff0c;&#x8f66;&#x8f86;&#x5185;&#x90e8;&#x7f16;&#x7801;&#x662f;&#x6ca1;&#x7684;&#xff0c;&#xa;&#x642d;&#x73ed;&#x7f16;&#x7801; &#x8fd9;&#x4e2a;&#x8c8c;&#x4f3c;&#x7528;&#x4e8e;&#x9a7e;&#x9a76;&#x5458;&#x548c;&#x552e;&#x7968;&#x5458;&#x7528;&#x7684;&#xff0c;&#x597d;&#x50cf;&#x4e0d;&#x80fd;&#x4e00;&#x6837;&#x7684;&#xa;&#x8f66;&#x8f86;&#x5185;&#x90e8;&#x7f16;&#x7801; &#x6ca1;&#x6709;&#x6682;&#x65f6;&#x7a7a;&#x7740;&#xa;&#xa;</note>
  89 + <xloc>252</xloc>
  90 + <yloc>178</yloc>
  91 + <width>341</width>
  92 + <heigth>90</heigth>
  93 + <fontname>YaHei Consolas Hybrid</fontname>
  94 + <fontsize>12</fontsize>
  95 + <fontbold>N</fontbold>
  96 + <fontitalic>N</fontitalic>
  97 + <fontcolorred>0</fontcolorred>
  98 + <fontcolorgreen>0</fontcolorgreen>
  99 + <fontcolorblue>0</fontcolorblue>
  100 + <backgroundcolorred>255</backgroundcolorred>
  101 + <backgroundcolorgreen>205</backgroundcolorgreen>
  102 + <backgroundcolorblue>112</backgroundcolorblue>
  103 + <bordercolorred>100</bordercolorred>
  104 + <bordercolorgreen>100</bordercolorgreen>
  105 + <bordercolorblue>100</bordercolorblue>
  106 + <drawshadow>Y</drawshadow>
  107 + </notepad>
  108 + </notepads>
  109 + <connection>
  110 + <name>bus_control_variable</name>
  111 + <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
  112 + <type>MYSQL</type>
  113 + <access>Native</access>
  114 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
  115 + <port>3306</port>
  116 + <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
  117 + <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
  118 + <servername/>
  119 + <data_tablespace/>
  120 + <index_tablespace/>
  121 + <attributes>
  122 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  123 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  124 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  125 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  126 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  127 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  128 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  129 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  130 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  131 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  132 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  133 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  134 + </attributes>
  135 + </connection>
  136 + <connection>
  137 + <name>bus_control_&#x516c;&#x53f8;_201</name>
  138 + <server>localhost</server>
  139 + <type>MYSQL</type>
  140 + <access>Native</access>
  141 + <database>control</database>
  142 + <port>3306</port>
  143 + <username>root</username>
  144 + <password>Encrypted </password>
  145 + <servername/>
  146 + <data_tablespace/>
  147 + <index_tablespace/>
  148 + <attributes>
  149 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  150 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  151 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  152 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  153 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  154 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  155 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  156 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  157 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  158 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  159 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  160 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  161 + </attributes>
  162 + </connection>
  163 + <connection>
  164 + <name>bus_control_&#x672c;&#x673a;</name>
  165 + <server>localhost</server>
  166 + <type>MYSQL</type>
  167 + <access>Native</access>
  168 + <database>control</database>
  169 + <port>3306</port>
  170 + <username>root</username>
  171 + <password>Encrypted </password>
  172 + <servername/>
  173 + <data_tablespace/>
  174 + <index_tablespace/>
  175 + <attributes>
  176 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  177 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  178 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  179 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  180 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  181 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  182 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  183 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  184 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  185 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  186 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  187 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  188 + </attributes>
  189 + </connection>
  190 + <connection>
  191 + <name>xlab_mysql_youle</name>
  192 + <server>101.231.124.8</server>
  193 + <type>MYSQL</type>
  194 + <access>Native</access>
  195 + <database>xlab_youle</database>
  196 + <port>45687</port>
  197 + <username>xlab-youle</username>
  198 + <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>
  199 + <servername/>
  200 + <data_tablespace/>
  201 + <index_tablespace/>
  202 + <attributes>
  203 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  204 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  205 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  206 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  207 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  208 + <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>
  209 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  210 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  211 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  212 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  213 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  214 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  215 + </attributes>
  216 + </connection>
  217 + <connection>
  218 + <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>
  219 + <server>localhost</server>
  220 + <type>MYSQL</type>
  221 + <access>Native</access>
  222 + <database>xlab_youle</database>
  223 + <port>3306</port>
  224 + <username>root</username>
  225 + <password>Encrypted </password>
  226 + <servername/>
  227 + <data_tablespace/>
  228 + <index_tablespace/>
  229 + <attributes>
  230 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  231 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  232 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  233 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  234 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  235 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  236 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  237 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  238 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  239 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  240 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  241 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  242 + </attributes>
  243 + </connection>
  244 + <connection>
  245 + <name>xlab_youle</name>
  246 + <server/>
  247 + <type>MYSQL</type>
  248 + <access>JNDI</access>
  249 + <database>xlab_youle</database>
  250 + <port>1521</port>
  251 + <username/>
  252 + <password>Encrypted </password>
  253 + <servername/>
  254 + <data_tablespace/>
  255 + <index_tablespace/>
  256 + <attributes>
  257 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  258 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  259 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  260 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  261 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  262 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  263 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  264 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  265 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  266 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  267 + </attributes>
  268 + </connection>
  269 + <order>
  270 + <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</to><enabled>Y</enabled> </hop>
  271 + <hop> <from>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</from><to>&#x67e5;&#x8be2;&#x7ebf;&#x8def;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>
  272 + <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>
  273 + <hop> <from>&#x67e5;&#x8be2;&#x552e;&#x7968;&#x5458;&#x5173;&#x8054;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</to><enabled>Y</enabled> </hop>
  274 + <hop> <from>&#x67e5;&#x8be2;&#x7ebf;&#x8def;&#x5173;&#x8054;</from><to>&#x67e5;&#x8be2;&#x9a7e;&#x9a76;&#x5458;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>
  275 + <hop> <from>&#x67e5;&#x8be2;&#x9a7e;&#x9a76;&#x5458;&#x5173;&#x8054;</from><to>&#x67e5;&#x8be2;&#x552e;&#x7968;&#x5458;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>
  276 + <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>
  277 + </order>
  278 + <step>
  279 + <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
  280 + <type>ExcelInput</type>
  281 + <description/>
  282 + <distribute>Y</distribute>
  283 + <custom_distribution/>
  284 + <copies>1</copies>
  285 + <partitioning>
  286 + <method>none</method>
  287 + <schema_name/>
  288 + </partitioning>
  289 + <header>Y</header>
  290 + <noempty>Y</noempty>
  291 + <stoponempty>N</stoponempty>
  292 + <filefield/>
  293 + <sheetfield/>
  294 + <sheetrownumfield/>
  295 + <rownumfield/>
  296 + <sheetfield/>
  297 + <filefield/>
  298 + <limit>0</limit>
  299 + <encoding/>
  300 + <add_to_result_filenames>Y</add_to_result_filenames>
  301 + <accept_filenames>Y</accept_filenames>
  302 + <accept_field>filepath_</accept_field>
  303 + <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
  304 + <file>
  305 + <name/>
  306 + <filemask/>
  307 + <exclude_filemask/>
  308 + <file_required>N</file_required>
  309 + <include_subfolders>N</include_subfolders>
  310 + </file>
  311 + <fields>
  312 + <field>
  313 + <name>&#x7ebf;&#x8def;</name>
  314 + <type>String</type>
  315 + <length>-1</length>
  316 + <precision>-1</precision>
  317 + <trim_type>none</trim_type>
  318 + <repeat>N</repeat>
  319 + <format/>
  320 + <currency/>
  321 + <decimal/>
  322 + <group/>
  323 + </field>
  324 + <field>
  325 + <name>&#x642d;&#x73ed;&#x7f16;&#x7801;</name>
  326 + <type>String</type>
  327 + <length>-1</length>
  328 + <precision>-1</precision>
  329 + <trim_type>none</trim_type>
  330 + <repeat>N</repeat>
  331 + <format/>
  332 + <currency/>
  333 + <decimal/>
  334 + <group/>
  335 + </field>
  336 + <field>
  337 + <name>&#x9a7e;&#x9a76;&#x5458;&#x5de5;&#x53f7;</name>
  338 + <type>String</type>
  339 + <length>-1</length>
  340 + <precision>-1</precision>
  341 + <trim_type>none</trim_type>
  342 + <repeat>N</repeat>
  343 + <format>&#x23;</format>
  344 + <currency/>
  345 + <decimal/>
  346 + <group/>
  347 + </field>
  348 + <field>
  349 + <name>&#x9a7e;&#x9a76;&#x5458;</name>
  350 + <type>String</type>
  351 + <length>-1</length>
  352 + <precision>-1</precision>
  353 + <trim_type>none</trim_type>
  354 + <repeat>N</repeat>
  355 + <format/>
  356 + <currency/>
  357 + <decimal/>
  358 + <group/>
  359 + </field>
  360 + <field>
  361 + <name>&#x552e;&#x7968;&#x5458;&#x5de5;&#x53f7;</name>
  362 + <type>String</type>
  363 + <length>-1</length>
  364 + <precision>-1</precision>
  365 + <trim_type>none</trim_type>
  366 + <repeat>N</repeat>
  367 + <format>&#x23;</format>
  368 + <currency/>
  369 + <decimal/>
  370 + <group/>
  371 + </field>
  372 + <field>
  373 + <name>&#x552e;&#x7968;&#x5458;</name>
  374 + <type>String</type>
  375 + <length>-1</length>
  376 + <precision>-1</precision>
  377 + <trim_type>none</trim_type>
  378 + <repeat>N</repeat>
  379 + <format/>
  380 + <currency/>
  381 + <decimal/>
  382 + <group/>
  383 + </field>
  384 + <field>
  385 + <name>&#x8f66;&#x8f86;</name>
  386 + <type>String</type>
  387 + <length>-1</length>
  388 + <precision>-1</precision>
  389 + <trim_type>none</trim_type>
  390 + <repeat>N</repeat>
  391 + <format/>
  392 + <currency/>
  393 + <decimal/>
  394 + <group/>
  395 + </field>
  396 + </fields>
  397 + <sheets>
  398 + <sheet>
  399 + <name>&#x5de5;&#x4f5c;&#x8868;1</name>
  400 + <startrow>0</startrow>
  401 + <startcol>0</startcol>
  402 + </sheet>
  403 + </sheets>
  404 + <strict_types>N</strict_types>
  405 + <error_ignored>N</error_ignored>
  406 + <error_line_skipped>N</error_line_skipped>
  407 + <bad_line_files_destination_directory/>
  408 + <bad_line_files_extension>warning</bad_line_files_extension>
  409 + <error_line_files_destination_directory/>
  410 + <error_line_files_extension>error</error_line_files_extension>
  411 + <line_number_files_destination_directory/>
  412 + <line_number_files_extension>line</line_number_files_extension>
  413 + <shortFileFieldName/>
  414 + <pathFieldName/>
  415 + <hiddenFieldName/>
  416 + <lastModificationTimeFieldName/>
  417 + <uriNameFieldName/>
  418 + <rootUriNameFieldName/>
  419 + <extensionFieldName/>
  420 + <sizeFieldName/>
  421 + <spreadsheet_type>JXL</spreadsheet_type>
  422 + <cluster_schema/>
  423 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  424 + <xloc>144</xloc>
  425 + <yloc>49</yloc>
  426 + <draw>Y</draw>
  427 + </GUI>
  428 + </step>
  429 +
  430 + <step>
  431 + <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>
  432 + <type>SelectValues</type>
  433 + <description/>
  434 + <distribute>Y</distribute>
  435 + <custom_distribution/>
  436 + <copies>1</copies>
  437 + <partitioning>
  438 + <method>none</method>
  439 + <schema_name/>
  440 + </partitioning>
  441 + <fields> <field> <name>&#x7ebf;&#x8def;</name>
  442 + <rename>xl</rename>
  443 + <length>-2</length>
  444 + <precision>-2</precision>
  445 + </field> <field> <name>&#x642d;&#x73ed;&#x7f16;&#x7801;</name>
  446 + <rename>dbbm</rename>
  447 + <length>-2</length>
  448 + <precision>-2</precision>
  449 + </field> <field> <name>&#x9a7e;&#x9a76;&#x5458;&#x5de5;&#x53f7;</name>
  450 + <rename>jsy_no</rename>
  451 + <length>-2</length>
  452 + <precision>-2</precision>
  453 + </field> <field> <name>&#x9a7e;&#x9a76;&#x5458;</name>
  454 + <rename>jsy_name</rename>
  455 + <length>-2</length>
  456 + <precision>-2</precision>
  457 + </field> <field> <name>&#x552e;&#x7968;&#x5458;&#x5de5;&#x53f7;</name>
  458 + <rename>spy_no</rename>
  459 + <length>-2</length>
  460 + <precision>-2</precision>
  461 + </field> <field> <name>&#x552e;&#x7968;&#x5458;</name>
  462 + <rename>spy_name</rename>
  463 + <length>-2</length>
  464 + <precision>-2</precision>
  465 + </field> <field> <name>&#x8f66;&#x8f86;</name>
  466 + <rename>cl</rename>
  467 + <length>-2</length>
  468 + <precision>-2</precision>
  469 + </field> <select_unspecified>N</select_unspecified>
  470 + </fields> <cluster_schema/>
  471 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  472 + <xloc>294</xloc>
  473 + <yloc>50</yloc>
  474 + <draw>Y</draw>
  475 + </GUI>
  476 + </step>
  477 +
  478 + <step>
  479 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</name>
  480 + <type>InsertUpdate</type>
  481 + <description/>
  482 + <distribute>Y</distribute>
  483 + <custom_distribution/>
  484 + <copies>1</copies>
  485 + <partitioning>
  486 + <method>none</method>
  487 + <schema_name/>
  488 + </partitioning>
  489 + <connection>bus_control_variable</connection>
  490 + <commit>100</commit>
  491 + <update_bypassed>N</update_bypassed>
  492 + <lookup>
  493 + <schema/>
  494 + <table>bsth_c_s_ecinfo</table>
  495 + <key>
  496 + <name>xlid</name>
  497 + <field>xl</field>
  498 + <condition>&#x3d;</condition>
  499 + <name2/>
  500 + </key>
  501 + <key>
  502 + <name>jsyid</name>
  503 + <field>jsy</field>
  504 + <condition>&#x3d;</condition>
  505 + <name2/>
  506 + </key>
  507 + <key>
  508 + <name>spyid</name>
  509 + <field>spy</field>
  510 + <condition>&#x3d;</condition>
  511 + <name2/>
  512 + </key>
  513 + <value>
  514 + <name>xl</name>
  515 + <rename>xlid</rename>
  516 + <update>Y</update>
  517 + </value>
  518 + <value>
  519 + <name>dbbm</name>
  520 + <rename>dbbm</rename>
  521 + <update>Y</update>
  522 + </value>
  523 + <value>
  524 + <name>jsy</name>
  525 + <rename>jsyid</rename>
  526 + <update>Y</update>
  527 + </value>
  528 + <value>
  529 + <name>spy</name>
  530 + <rename>spyid</rename>
  531 + <update>Y</update>
  532 + </value>
  533 + </lookup>
  534 + <cluster_schema/>
  535 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  536 + <xloc>721</xloc>
  537 + <yloc>181</yloc>
  538 + <draw>Y</draw>
  539 + </GUI>
  540 + </step>
  541 +
  542 + <step>
  543 + <name>&#x67e5;&#x8be2;&#x552e;&#x7968;&#x5458;&#x5173;&#x8054;</name>
  544 + <type>DBLookup</type>
  545 + <description/>
  546 + <distribute>Y</distribute>
  547 + <custom_distribution/>
  548 + <copies>1</copies>
  549 + <partitioning>
  550 + <method>none</method>
  551 + <schema_name/>
  552 + </partitioning>
  553 + <connection>bus_control_variable</connection>
  554 + <cache>N</cache>
  555 + <cache_load_all>N</cache_load_all>
  556 + <cache_size>0</cache_size>
  557 + <lookup>
  558 + <schema/>
  559 + <table>bsth_c_personnel</table>
  560 + <orderby/>
  561 + <fail_on_multiple>N</fail_on_multiple>
  562 + <eat_row_on_failure>N</eat_row_on_failure>
  563 + <key>
  564 + <name>spy_no</name>
  565 + <field>job_code</field>
  566 + <condition>&#x3d;</condition>
  567 + <name2/>
  568 + </key>
  569 + <value>
  570 + <name>id</name>
  571 + <rename>spyid</rename>
  572 + <default/>
  573 + <type>Integer</type>
  574 + </value>
  575 + </lookup>
  576 + <cluster_schema/>
  577 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  578 + <xloc>720</xloc>
  579 + <yloc>51</yloc>
  580 + <draw>Y</draw>
  581 + </GUI>
  582 + </step>
  583 +
  584 + <step>
  585 + <name>&#x67e5;&#x8be2;&#x7ebf;&#x8def;&#x5173;&#x8054;</name>
  586 + <type>DBLookup</type>
  587 + <description/>
  588 + <distribute>Y</distribute>
  589 + <custom_distribution/>
  590 + <copies>1</copies>
  591 + <partitioning>
  592 + <method>none</method>
  593 + <schema_name/>
  594 + </partitioning>
  595 + <connection>bus_control_variable</connection>
  596 + <cache>N</cache>
  597 + <cache_load_all>N</cache_load_all>
  598 + <cache_size>0</cache_size>
  599 + <lookup>
  600 + <schema/>
  601 + <table>bsth_c_line</table>
  602 + <orderby/>
  603 + <fail_on_multiple>N</fail_on_multiple>
  604 + <eat_row_on_failure>N</eat_row_on_failure>
  605 + <key>
  606 + <name>xl</name>
  607 + <field>name</field>
  608 + <condition>&#x3d;</condition>
  609 + <name2/>
  610 + </key>
  611 + <value>
  612 + <name>id</name>
  613 + <rename>xlid</rename>
  614 + <default/>
  615 + <type>Integer</type>
  616 + </value>
  617 + </lookup>
  618 + <cluster_schema/>
  619 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  620 + <xloc>429</xloc>
  621 + <yloc>51</yloc>
  622 + <draw>Y</draw>
  623 + </GUI>
  624 + </step>
  625 +
  626 + <step>
  627 + <name>&#x67e5;&#x8be2;&#x9a7e;&#x9a76;&#x5458;&#x5173;&#x8054;</name>
  628 + <type>DBLookup</type>
  629 + <description/>
  630 + <distribute>Y</distribute>
  631 + <custom_distribution/>
  632 + <copies>1</copies>
  633 + <partitioning>
  634 + <method>none</method>
  635 + <schema_name/>
  636 + </partitioning>
  637 + <connection>bus_control_variable</connection>
  638 + <cache>N</cache>
  639 + <cache_load_all>N</cache_load_all>
  640 + <cache_size>0</cache_size>
  641 + <lookup>
  642 + <schema/>
  643 + <table>bsth_c_personnel</table>
  644 + <orderby/>
  645 + <fail_on_multiple>N</fail_on_multiple>
  646 + <eat_row_on_failure>N</eat_row_on_failure>
  647 + <key>
  648 + <name>jsy_no</name>
  649 + <field>job_code</field>
  650 + <condition>&#x3d;</condition>
  651 + <name2/>
  652 + </key>
  653 + <value>
  654 + <name>id</name>
  655 + <rename>jsyid</rename>
  656 + <default/>
  657 + <type>Integer</type>
  658 + </value>
  659 + </lookup>
  660 + <cluster_schema/>
  661 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  662 + <xloc>573</xloc>
  663 + <yloc>51</yloc>
  664 + <draw>Y</draw>
  665 + </GUI>
  666 + </step>
  667 +
  668 + <step>
  669 + <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
  670 + <type>GetVariable</type>
  671 + <description/>
  672 + <distribute>Y</distribute>
  673 + <custom_distribution/>
  674 + <copies>1</copies>
  675 + <partitioning>
  676 + <method>none</method>
  677 + <schema_name/>
  678 + </partitioning>
  679 + <fields>
  680 + <field>
  681 + <name>filepath_</name>
  682 + <variable>&#x24;&#x7b;filepath&#x7d;</variable>
  683 + <type>String</type>
  684 + <format/>
  685 + <currency/>
  686 + <decimal/>
  687 + <group/>
  688 + <length>-1</length>
  689 + <precision>-1</precision>
  690 + <trim_type>none</trim_type>
  691 + </field>
  692 + <field>
  693 + <name>erroroutputdir_</name>
  694 + <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
  695 + <type>String</type>
  696 + <format/>
  697 + <currency/>
  698 + <decimal/>
  699 + <group/>
  700 + <length>-1</length>
  701 + <precision>-1</precision>
  702 + <trim_type>none</trim_type>
  703 + </field>
  704 + </fields>
  705 + <cluster_schema/>
  706 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  707 + <xloc>94</xloc>
  708 + <yloc>178</yloc>
  709 + <draw>Y</draw>
  710 + </GUI>
  711 + </step>
  712 +
  713 + <step>
  714 + <name>&#x9519;&#x8bef;&#x8f93;&#x51fa;</name>
  715 + <type>ExcelOutput</type>
  716 + <description/>
  717 + <distribute>Y</distribute>
  718 + <custom_distribution/>
  719 + <copies>1</copies>
  720 + <partitioning>
  721 + <method>none</method>
  722 + <schema_name/>
  723 + </partitioning>
  724 + <header>Y</header>
  725 + <footer>N</footer>
  726 + <encoding>UTF-8</encoding>
  727 + <append>N</append>
  728 + <add_to_result_filenames>Y</add_to_result_filenames>
  729 + <file>
  730 + <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x4eba;&#x5458;&#x914d;&#x7f6e;_&#x9519;&#x8bef;</name>
  731 + <extention>xls</extention>
  732 + <do_not_open_newfile_init>N</do_not_open_newfile_init>
  733 + <create_parent_folder>N</create_parent_folder>
  734 + <split>N</split>
  735 + <add_date>N</add_date>
  736 + <add_time>N</add_time>
  737 + <SpecifyFormat>N</SpecifyFormat>
  738 + <date_time_format/>
  739 + <sheetname>Sheet1</sheetname>
  740 + <autosizecolums>N</autosizecolums>
  741 + <nullisblank>N</nullisblank>
  742 + <protect_sheet>N</protect_sheet>
  743 + <password>Encrypted </password>
  744 + <splitevery>0</splitevery>
  745 + <usetempfiles>N</usetempfiles>
  746 + <tempdirectory/>
  747 + </file>
  748 + <template>
  749 + <enabled>N</enabled>
  750 + <append>N</append>
  751 + <filename>template.xls</filename>
  752 + </template>
  753 + <fields>
  754 + <field>
  755 + <name>xl</name>
  756 + <type>String</type>
  757 + <format/>
  758 + </field>
  759 + <field>
  760 + <name>dbbm</name>
  761 + <type>String</type>
  762 + <format/>
  763 + </field>
  764 + <field>
  765 + <name>jsy_no</name>
  766 + <type>String</type>
  767 + <format/>
  768 + </field>
  769 + <field>
  770 + <name>jsy_name</name>
  771 + <type>String</type>
  772 + <format/>
  773 + </field>
  774 + <field>
  775 + <name>spy_no</name>
  776 + <type>String</type>
  777 + <format/>
  778 + </field>
  779 + <field>
  780 + <name>spy_name</name>
  781 + <type>String</type>
  782 + <format/>
  783 + </field>
  784 + <field>
  785 + <name>cl</name>
  786 + <type>String</type>
  787 + <format/>
  788 + </field>
  789 + <field>
  790 + <name>xlid</name>
  791 + <type>Integer</type>
  792 + <format/>
  793 + </field>
  794 + <field>
  795 + <name>jsyid</name>
  796 + <type>Integer</type>
  797 + <format/>
  798 + </field>
  799 + <field>
  800 + <name>spyid</name>
  801 + <type>Integer</type>
  802 + <format/>
  803 + </field>
  804 + <field>
  805 + <name>error_count</name>
  806 + <type>Integer</type>
  807 + <format/>
  808 + </field>
  809 + <field>
  810 + <name>error_desc</name>
  811 + <type>String</type>
  812 + <format/>
  813 + </field>
  814 + <field>
  815 + <name>error_column1</name>
  816 + <type>String</type>
  817 + <format/>
  818 + </field>
  819 + <field>
  820 + <name>error_column2</name>
  821 + <type>String</type>
  822 + <format/>
  823 + </field>
  824 + </fields>
  825 + <custom>
  826 + <header_font_name>arial</header_font_name>
  827 + <header_font_size>10</header_font_size>
  828 + <header_font_bold>N</header_font_bold>
  829 + <header_font_italic>N</header_font_italic>
  830 + <header_font_underline>no</header_font_underline>
  831 + <header_font_orientation>horizontal</header_font_orientation>
  832 + <header_font_color>black</header_font_color>
  833 + <header_background_color>none</header_background_color>
  834 + <header_row_height>255</header_row_height>
  835 + <header_alignment>left</header_alignment>
  836 + <header_image/>
  837 + <row_font_name>arial</row_font_name>
  838 + <row_font_size>10</row_font_size>
  839 + <row_font_color>black</row_font_color>
  840 + <row_background_color>none</row_background_color>
  841 + </custom>
  842 + <cluster_schema/>
  843 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  844 + <xloc>721</xloc>
  845 + <yloc>304</yloc>
  846 + <draw>Y</draw>
  847 + </GUI>
  848 + </step>
  849 +
  850 + <step_error_handling>
  851 + <error>
  852 + <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</source_step>
  853 + <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa;</target_step>
  854 + <is_enabled>Y</is_enabled>
  855 + <nr_valuename>error_count</nr_valuename>
  856 + <descriptions_valuename>error_desc</descriptions_valuename>
  857 + <fields_valuename>error_column1</fields_valuename>
  858 + <codes_valuename>error_column2</codes_valuename>
  859 + <max_errors/>
  860 + <max_pct_errors/>
  861 + <min_pct_rows/>
  862 + </error>
  863 + </step_error_handling>
  864 + <slave-step-copy-partition-distribution>
  865 +</slave-step-copy-partition-distribution>
  866 + <slave_transformation>N</slave_transformation>
  867 +
  868 +</transformation>
... ...