Commit 1ad45fdde4a35b5eeba192b09b37d02889321717

Authored by 潘钊
2 parents c946a0a6 1ff7296b

Merge branch 'minhang' into qingpu

Showing 60 changed files with 5765 additions and 2795 deletions
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>
... ...
src/main/resources/datatools/ktrs/employeesDataInput.ktr
... ... @@ -85,11 +85,11 @@
85 85 </info>
86 86 <notepads>
87 87 <notepad>
88   - <note>&#x539f;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;&#x8868;&#xff0c;&#x6709;&#x4e9b;&#x5b57;&#x6bb5;&#x662f;&#x6ca1;&#x6709;&#x7684;&#xff0c;&#xa;&#x4eba;&#x5458;&#x7f16;&#x7801; &#x6682;&#x65f6;&#x6ca1;&#x6709;&#x7a7a;&#x7740;&#xa;&#x7167;&#x7247;&#x5730;&#x5740; &#x6682;&#x65f6;&#x6ca1;&#x6709;&#x7a7a;&#x7740;&#xa;&#x7ebf;&#x8def;&#x7f16;&#x53f7; &#x6682;&#x65f6;&#x6ca1;&#x6709;&#x7a7a;&#x7740;&#xa;&#x8054;&#x7cfb;&#x7535;&#x8bdd; &#x6682;&#x65f6;&#x6ca1;&#x6709;&#x7a7a;&#x7740;&#xa;&#xa;&#x5b57;&#x5178;&#xa;&#x6027;&#x522b;sexType &#x7537;&#x6027; 1&#xa;&#x6027;&#x522b;sexType &#x5973;&#x6027; 2&#xa;&#xa;&#x5de5;&#x79cd;gzType &#x516c;&#x5171;&#x6c7d;&#x7535;&#x8f66;&#x9a7e;&#x9a76;&#x5458; 1&#xa;&#x5de5;&#x79cd;gzType &#x516c;&#x5171;&#x6c7d;&#x7535;&#x8f66;&#x8c03;&#x5ea6;&#x5458; 2&#xa;&#x5de5;&#x79cd;gzType &#x516c;&#x5171;&#x6c7d;&#x7535;&#x8f66;&#x552e;&#x7968;&#x5458; 3&#xa;&#x5de5;&#x79cd;gzType &#x7ad9;&#x5458; 4&#xa;&#x5de5;&#x79cd;gzType &#x7ba1;&#x7406;&#x5458; 5&#xa;&#x5de5;&#x79cd;gzType &#x5b89;&#x68c0;&#x5458; 6&#xa;&#x5de5;&#x79cd;gzType &#x673a;&#x52a1; 7&#xa;&#x5de5;&#x79cd;gzType &#x5f15;&#x5bfc;&#x5458; 8&#xa;&#x5de5;&#x79cd;gzType &#x4e58;&#x52a1;&#x5458; 9&#xa;&#x5de5;&#x79cd;gzType &#x8f66;&#x961f;&#x957f;&#xff08;&#x7ebf;&#x957f;&#x3001;&#x4e3b; 10&#xa;&#x5de5;&#x79cd;gzType &#x516c;&#x53f8;&#x7ba1;&#x7406;&#x4eba;&#x5458; 11&#xa;&#x5de5;&#x79cd;gzType &#x8b66;&#x6d88;&#x4eba;&#x5458; 12&#xa;&#x5de5;&#x79cd;gzType &#x7968;&#x52a1;&#x4eba;&#x5458; 13&#xa;&#x5de5;&#x79cd;gzType &#x5176;&#x4ed6;&#x670d;&#x52a1;&#x4eba;&#x5458; 14</note>
  88 + <note>&#x539f;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;&#x8868;&#xff0c;&#x6709;&#x4e9b;&#x5b57;&#x6bb5;&#x662f;&#x6ca1;&#x6709;&#x7684;&#xff0c;&#xa;&#x4eba;&#x5458;&#x7f16;&#x7801; &#x6682;&#x65f6;&#x6ca1;&#x6709;&#x7a7a;&#x7740;&#xa;&#x7167;&#x7247;&#x5730;&#x5740; &#x6682;&#x65f6;&#x6ca1;&#x6709;&#x7a7a;&#x7740;&#xa;&#x7ebf;&#x8def;&#x7f16;&#x53f7; &#x6682;&#x65f6;&#x6ca1;&#x6709;&#x7a7a;&#x7740;&#xa;&#x8054;&#x7cfb;&#x7535;&#x8bdd; &#x6682;&#x65f6;&#x6ca1;&#x6709;&#x7a7a;&#x7740;&#xa;&#xa;&#xa;&#x5b57;&#x5178;&#xa;&#x6027;&#x522b;sexType &#x7537;&#x6027; 1&#xa;&#x6027;&#x522b;sexType &#x5973;&#x6027; 2&#xa;&#xa;&#xa;&#x5de5;&#x79cd;gzType &#x516c;&#x5171;&#x6c7d;&#x7535;&#x8f66;&#x9a7e;&#x9a76;&#x5458; 1&#xa;&#x5de5;&#x79cd;gzType &#x516c;&#x5171;&#x6c7d;&#x7535;&#x8f66;&#x8c03;&#x5ea6;&#x5458; 2&#xa;&#x5de5;&#x79cd;gzType &#x516c;&#x5171;&#x6c7d;&#x7535;&#x8f66;&#x552e;&#x7968;&#x5458; 3&#xa;&#x5de5;&#x79cd;gzType &#x7ad9;&#x5458; 4&#xa;&#x5de5;&#x79cd;gzType &#x7ba1;&#x7406;&#x5458; 5&#xa;&#x5de5;&#x79cd;gzType &#x5b89;&#x68c0;&#x5458; 6&#xa;&#x5de5;&#x79cd;gzType &#x673a;&#x52a1; 7&#xa;&#x5de5;&#x79cd;gzType &#x5f15;&#x5bfc;&#x5458; 8&#xa;&#x5de5;&#x79cd;gzType &#x4e58;&#x52a1;&#x5458; 9&#xa;&#x5de5;&#x79cd;gzType &#x8f66;&#x961f;&#x957f;&#xff08;&#x7ebf;&#x957f;&#x3001;&#x4e3b; 10&#xa;&#x5de5;&#x79cd;gzType &#x516c;&#x53f8;&#x7ba1;&#x7406;&#x4eba;&#x5458; 11&#xa;&#x5de5;&#x79cd;gzType &#x8b66;&#x6d88;&#x4eba;&#x5458; 12&#xa;&#x5de5;&#x79cd;gzType &#x7968;&#x52a1;&#x4eba;&#x5458; 13&#xa;&#x5de5;&#x79cd;gzType &#x5176;&#x4ed6;&#x670d;&#x52a1;&#x4eba;&#x5458; 14</note>
89 89 <xloc>200</xloc>
90 90 <yloc>160</yloc>
91 91 <width>214</width>
92   - <heigth>394</heigth>
  92 + <heigth>426</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>
... ... @@ -276,8 +276,8 @@
276 276 <hop> <from>&#x516c;&#x4ea4;&#x4f01;&#x4e1a;&#x4ee3;&#x7801;&#x67e5;&#x8be2;</from><to>&#x5de5;&#x79cd;</to><enabled>Y</enabled> </hop>
277 277 </order>
278 278 <step>
279   - <name>&#x5de5;&#x79cd;</name>
280   - <type>ValueMapper</type>
  279 + <name>&#x516c;&#x4ea4;&#x4f01;&#x4e1a;&#x4ee3;&#x7801;&#x67e5;&#x8be2;</name>
  280 + <type>DBLookup</type>
281 281 <description/>
282 282 <distribute>Y</distribute>
283 283 <custom_distribution/>
... ... @@ -286,71 +286,33 @@
286 286 <method>none</method>
287 287 <schema_name/>
288 288 </partitioning>
289   - <field_to_use>posts</field_to_use>
290   - <target_field/>
291   - <non_match_default/>
292   - <fields>
293   - <field>
294   - <source_value>&#x516c;&#x5171;&#x6c7d;&#x7535;&#x8f66;&#x9a7e;&#x9a76;&#x5458;</source_value>
295   - <target_value>1</target_value>
296   - </field>
297   - <field>
298   - <source_value>&#x516c;&#x5171;&#x6c7d;&#x7535;&#x8f66;&#x8c03;&#x5ea6;&#x5458;</source_value>
299   - <target_value>2</target_value>
300   - </field>
301   - <field>
302   - <source_value>&#x516c;&#x5171;&#x6c7d;&#x7535;&#x8f66;&#x552e;&#x7968;&#x5458;</source_value>
303   - <target_value>3</target_value>
304   - </field>
305   - <field>
306   - <source_value>&#x7ad9;&#x5458;</source_value>
307   - <target_value>4</target_value>
308   - </field>
309   - <field>
310   - <source_value>&#x7ba1;&#x7406;&#x5458;</source_value>
311   - <target_value>5</target_value>
312   - </field>
313   - <field>
314   - <source_value>&#x5b89;&#x68c0;&#x5458;</source_value>
315   - <target_value>6</target_value>
316   - </field>
317   - <field>
318   - <source_value>&#x673a;&#x52a1;</source_value>
319   - <target_value>7</target_value>
320   - </field>
321   - <field>
322   - <source_value>&#x5f15;&#x5bfc;&#x5458;</source_value>
323   - <target_value>8</target_value>
324   - </field>
325   - <field>
326   - <source_value>&#x4e58;&#x52a1;&#x5458;</source_value>
327   - <target_value>9</target_value>
328   - </field>
329   - <field>
330   - <source_value>&#x8f66;&#x961f;&#x957f;&#xff08;&#x7ebf;&#x957f;&#x3001;&#x4e3b;</source_value>
331   - <target_value>10</target_value>
332   - </field>
333   - <field>
334   - <source_value>&#x516c;&#x53f8;&#x7ba1;&#x7406;&#x4eba;&#x5458;</source_value>
335   - <target_value>11</target_value>
336   - </field>
337   - <field>
338   - <source_value>&#x8b66;&#x6d88;&#x4eba;&#x5458;</source_value>
339   - <target_value>12</target_value>
340   - </field>
341   - <field>
342   - <source_value>&#x7968;&#x52a1;&#x4eba;&#x5458;</source_value>
343   - <target_value>13</target_value>
344   - </field>
345   - <field>
346   - <source_value>&#x5176;&#x4ed6;&#x670d;&#x52a1;&#x4eba;&#x5458;</source_value>
347   - <target_value>14</target_value>
348   - </field>
349   - </fields>
  289 + <connection>bus_control_variable</connection>
  290 + <cache>N</cache>
  291 + <cache_load_all>N</cache_load_all>
  292 + <cache_size>0</cache_size>
  293 + <lookup>
  294 + <schema/>
  295 + <table>bsth_c_business</table>
  296 + <orderby/>
  297 + <fail_on_multiple>N</fail_on_multiple>
  298 + <eat_row_on_failure>N</eat_row_on_failure>
  299 + <key>
  300 + <name>company</name>
  301 + <field>business_name</field>
  302 + <condition>&#x3d;</condition>
  303 + <name2/>
  304 + </key>
  305 + <value>
  306 + <name>business_code</name>
  307 + <rename>companyCode</rename>
  308 + <default/>
  309 + <type>String</type>
  310 + </value>
  311 + </lookup>
350 312 <cluster_schema/>
351 313 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
352   - <xloc>543</xloc>
353   - <yloc>152</yloc>
  314 + <xloc>544</xloc>
  315 + <yloc>59</yloc>
354 316 <draw>Y</draw>
355 317 </GUI>
356 318 </step>
... ... @@ -408,7 +370,7 @@
408 370 <precision>-1</precision>
409 371 <trim_type>none</trim_type>
410 372 <repeat>N</repeat>
411   - <format/>
  373 + <format>&#x23;</format>
412 374 <currency/>
413 375 <decimal/>
414 376 <group/>
... ... @@ -588,6 +550,86 @@
588 550 </step>
589 551  
590 552 <step>
  553 + <name>&#x5de5;&#x79cd;</name>
  554 + <type>ValueMapper</type>
  555 + <description/>
  556 + <distribute>Y</distribute>
  557 + <custom_distribution/>
  558 + <copies>1</copies>
  559 + <partitioning>
  560 + <method>none</method>
  561 + <schema_name/>
  562 + </partitioning>
  563 + <field_to_use>posts</field_to_use>
  564 + <target_field/>
  565 + <non_match_default/>
  566 + <fields>
  567 + <field>
  568 + <source_value>&#x516c;&#x5171;&#x6c7d;&#x7535;&#x8f66;&#x9a7e;&#x9a76;&#x5458;</source_value>
  569 + <target_value>1</target_value>
  570 + </field>
  571 + <field>
  572 + <source_value>&#x516c;&#x5171;&#x6c7d;&#x7535;&#x8f66;&#x8c03;&#x5ea6;&#x5458;</source_value>
  573 + <target_value>2</target_value>
  574 + </field>
  575 + <field>
  576 + <source_value>&#x516c;&#x5171;&#x6c7d;&#x7535;&#x8f66;&#x552e;&#x7968;&#x5458;</source_value>
  577 + <target_value>3</target_value>
  578 + </field>
  579 + <field>
  580 + <source_value>&#x7ad9;&#x5458;</source_value>
  581 + <target_value>4</target_value>
  582 + </field>
  583 + <field>
  584 + <source_value>&#x7ba1;&#x7406;&#x5458;</source_value>
  585 + <target_value>5</target_value>
  586 + </field>
  587 + <field>
  588 + <source_value>&#x5b89;&#x68c0;&#x5458;</source_value>
  589 + <target_value>6</target_value>
  590 + </field>
  591 + <field>
  592 + <source_value>&#x673a;&#x52a1;</source_value>
  593 + <target_value>7</target_value>
  594 + </field>
  595 + <field>
  596 + <source_value>&#x5f15;&#x5bfc;&#x5458;</source_value>
  597 + <target_value>8</target_value>
  598 + </field>
  599 + <field>
  600 + <source_value>&#x4e58;&#x52a1;&#x5458;</source_value>
  601 + <target_value>9</target_value>
  602 + </field>
  603 + <field>
  604 + <source_value>&#x8f66;&#x961f;&#x957f;&#xff08;&#x7ebf;&#x957f;&#x3001;&#x4e3b;</source_value>
  605 + <target_value>10</target_value>
  606 + </field>
  607 + <field>
  608 + <source_value>&#x516c;&#x53f8;&#x7ba1;&#x7406;&#x4eba;&#x5458;</source_value>
  609 + <target_value>11</target_value>
  610 + </field>
  611 + <field>
  612 + <source_value>&#x8b66;&#x6d88;&#x4eba;&#x5458;</source_value>
  613 + <target_value>12</target_value>
  614 + </field>
  615 + <field>
  616 + <source_value>&#x7968;&#x52a1;&#x4eba;&#x5458;</source_value>
  617 + <target_value>13</target_value>
  618 + </field>
  619 + <field>
  620 + <source_value>&#x5176;&#x4ed6;&#x670d;&#x52a1;&#x4eba;&#x5458;</source_value>
  621 + <target_value>14</target_value>
  622 + </field>
  623 + </fields>
  624 + <cluster_schema/>
  625 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  626 + <xloc>543</xloc>
  627 + <yloc>152</yloc>
  628 + <draw>Y</draw>
  629 + </GUI>
  630 + </step>
  631 +
  632 + <step>
591 633 <name>&#x6027;&#x522b;&#x4ee3;&#x7801;</name>
592 634 <type>ValueMapper</type>
593 635 <description/>
... ... @@ -889,48 +931,6 @@
889 931 </GUI>
890 932 </step>
891 933  
892   - <step>
893   - <name>&#x516c;&#x4ea4;&#x4f01;&#x4e1a;&#x4ee3;&#x7801;&#x67e5;&#x8be2;</name>
894   - <type>DBLookup</type>
895   - <description/>
896   - <distribute>Y</distribute>
897   - <custom_distribution/>
898   - <copies>1</copies>
899   - <partitioning>
900   - <method>none</method>
901   - <schema_name/>
902   - </partitioning>
903   - <connection>bus_control_variable</connection>
904   - <cache>N</cache>
905   - <cache_load_all>N</cache_load_all>
906   - <cache_size>0</cache_size>
907   - <lookup>
908   - <schema/>
909   - <table>bsth_c_business</table>
910   - <orderby/>
911   - <fail_on_multiple>N</fail_on_multiple>
912   - <eat_row_on_failure>N</eat_row_on_failure>
913   - <key>
914   - <name>company</name>
915   - <field>business_name</field>
916   - <condition>&#x3d;</condition>
917   - <name2/>
918   - </key>
919   - <value>
920   - <name>business_code</name>
921   - <rename>companyCode</rename>
922   - <default/>
923   - <type>String</type>
924   - </value>
925   - </lookup>
926   - <cluster_schema/>
927   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
928   - <xloc>544</xloc>
929   - <yloc>59</yloc>
930   - <draw>Y</draw>
931   - </GUI>
932   - </step>
933   -
934 934 <step_error_handling>
935 935 <error>
936 936 <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_personnel</source_step>
... ...
src/main/resources/datatools/ktrs/employeesDataOutput.ktr
... ... @@ -75,7 +75,7 @@
75 75 <created_date>2016&#x2f;08&#x2f;09 09&#x3a;57&#x3a;38.471</created_date>
76 76 <modified_user>-</modified_user>
77 77 <modified_date>2016&#x2f;08&#x2f;09 09&#x3a;57&#x3a;38.471</modified_date>
78   - <key_for_session_key/>
  78 + <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
79 79 <is_key_private>N</is_key_private>
80 80 </info>
81 81 <notepads>
... ... @@ -85,7 +85,7 @@
85 85 <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
86 86 <type>MYSQL</type>
87 87 <access>Native</access>
88   - <database>control</database>
  88 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
89 89 <port>3306</port>
90 90 <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
91 91 <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
... ... @@ -249,8 +249,8 @@
249 249 <hop> <from>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</from><to>Excel&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>
250 250 </order>
251 251 <step>
252   - <name>&#x8868;&#x8f93;&#x5165;</name>
253   - <type>TableInput</type>
  252 + <name>Excel&#x8f93;&#x51fa;</name>
  253 + <type>ExcelOutput</type>
254 254 <description/>
255 255 <distribute>Y</distribute>
256 256 <custom_distribution/>
... ... @@ -259,23 +259,165 @@
259 259 <method>none</method>
260 260 <schema_name/>
261 261 </partitioning>
262   - <connection>bus_control_variable</connection>
263   - <sql>SELECT &#x2a; FROM bsth_c_personnel&#x3b;</sql>
264   - <limit>0</limit>
265   - <lookup/>
266   - <execute_each_row>N</execute_each_row>
267   - <variables_active>N</variables_active>
268   - <lazy_conversion_active>N</lazy_conversion_active>
  262 + <header>Y</header>
  263 + <footer>N</footer>
  264 + <encoding/>
  265 + <append>N</append>
  266 + <add_to_result_filenames>Y</add_to_result_filenames>
  267 + <file>
  268 + <name>&#x24;&#x7b;filepath&#x7d;</name>
  269 + <extention/>
  270 + <do_not_open_newfile_init>N</do_not_open_newfile_init>
  271 + <create_parent_folder>N</create_parent_folder>
  272 + <split>N</split>
  273 + <add_date>N</add_date>
  274 + <add_time>N</add_time>
  275 + <SpecifyFormat>N</SpecifyFormat>
  276 + <date_time_format>yyyyMMddHHmmss</date_time_format>
  277 + <sheetname>&#x5de5;&#x4f5c;&#x8868;1</sheetname>
  278 + <autosizecolums>N</autosizecolums>
  279 + <nullisblank>N</nullisblank>
  280 + <protect_sheet>N</protect_sheet>
  281 + <password>Encrypted </password>
  282 + <splitevery>0</splitevery>
  283 + <usetempfiles>N</usetempfiles>
  284 + <tempdirectory/>
  285 + </file>
  286 + <template>
  287 + <enabled>N</enabled>
  288 + <append>N</append>
  289 + <filename>template.xls</filename>
  290 + </template>
  291 + <fields>
  292 + <field>
  293 + <name>&#x59d3;&#x540d;</name>
  294 + <type>String</type>
  295 + <format/>
  296 + </field>
  297 + <field>
  298 + <name>&#x5de5;&#x53f7;</name>
  299 + <type>String</type>
  300 + <format/>
  301 + </field>
  302 + <field>
  303 + <name>&#x6027;&#x522b;</name>
  304 + <type>String</type>
  305 + <format/>
  306 + </field>
  307 + <field>
  308 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
  309 + <type>String</type>
  310 + <format/>
  311 + </field>
  312 + <field>
  313 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
  314 + <type>String</type>
  315 + <format/>
  316 + </field>
  317 + <field>
  318 + <name>&#x4e00;&#x5361;&#x901a;&#x53f7;</name>
  319 + <type>String</type>
  320 + <format/>
  321 + </field>
  322 + <field>
  323 + <name>&#x8fd0;&#x8425;&#x670d;&#x52a1;&#x8bc1;&#x53f7;</name>
  324 + <type>String</type>
  325 + <format/>
  326 + </field>
  327 + <field>
  328 + <name>&#x5c97;&#x4f4d;</name>
  329 + <type>String</type>
  330 + <format/>
  331 + </field>
  332 + <field>
  333 + <name>&#x5907;&#x6ce8;</name>
  334 + <type>String</type>
  335 + <format/>
  336 + </field>
  337 + </fields>
  338 + <custom>
  339 + <header_font_name>arial</header_font_name>
  340 + <header_font_size>10</header_font_size>
  341 + <header_font_bold>N</header_font_bold>
  342 + <header_font_italic>N</header_font_italic>
  343 + <header_font_underline>no</header_font_underline>
  344 + <header_font_orientation>horizontal</header_font_orientation>
  345 + <header_font_color>black</header_font_color>
  346 + <header_background_color>none</header_background_color>
  347 + <header_row_height>255</header_row_height>
  348 + <header_alignment>left</header_alignment>
  349 + <header_image/>
  350 + <row_font_name>arial</row_font_name>
  351 + <row_font_size>10</row_font_size>
  352 + <row_font_color>black</row_font_color>
  353 + <row_background_color>none</row_background_color>
  354 + </custom>
269 355 <cluster_schema/>
270 356 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
271   - <xloc>112</xloc>
272   - <yloc>66</yloc>
  357 + <xloc>695</xloc>
  358 + <yloc>180</yloc>
273 359 <draw>Y</draw>
274 360 </GUI>
275 361 </step>
276 362  
277 363 <step>
278   - <name>&#x6027;&#x522b;&#x6807;&#x8bc6;</name>
  364 + <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>
  365 + <type>SelectValues</type>
  366 + <description/>
  367 + <distribute>Y</distribute>
  368 + <custom_distribution/>
  369 + <copies>1</copies>
  370 + <partitioning>
  371 + <method>none</method>
  372 + <schema_name/>
  373 + </partitioning>
  374 + <fields> <field> <name>personnel_name</name>
  375 + <rename>&#x59d3;&#x540d;</rename>
  376 + <length>-2</length>
  377 + <precision>-2</precision>
  378 + </field> <field> <name>job_code</name>
  379 + <rename>&#x5de5;&#x53f7;</rename>
  380 + <length>-2</length>
  381 + <precision>-2</precision>
  382 + </field> <field> <name>personnel_type_str</name>
  383 + <rename>&#x6027;&#x522b;</rename>
  384 + <length>-2</length>
  385 + <precision>-2</precision>
  386 + </field> <field> <name>company</name>
  387 + <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;</rename>
  388 + <length>-2</length>
  389 + <precision>-2</precision>
  390 + </field> <field> <name>branche_company</name>
  391 + <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</rename>
  392 + <length>-2</length>
  393 + <precision>-2</precision>
  394 + </field> <field> <name>ic_card_code</name>
  395 + <rename>&#x4e00;&#x5361;&#x901a;&#x53f7;</rename>
  396 + <length>-2</length>
  397 + <precision>-2</precision>
  398 + </field> <field> <name>papers_code</name>
  399 + <rename>&#x8fd0;&#x8425;&#x670d;&#x52a1;&#x8bc1;&#x53f7;</rename>
  400 + <length>-2</length>
  401 + <precision>-2</precision>
  402 + </field> <field> <name>posts_str</name>
  403 + <rename>&#x5c97;&#x4f4d;</rename>
  404 + <length>-2</length>
  405 + <precision>-2</precision>
  406 + </field> <field> <name>descriptions</name>
  407 + <rename>&#x5907;&#x6ce8;</rename>
  408 + <length>-2</length>
  409 + <precision>-2</precision>
  410 + </field> <select_unspecified>N</select_unspecified>
  411 + </fields> <cluster_schema/>
  412 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  413 + <xloc>631</xloc>
  414 + <yloc>76</yloc>
  415 + <draw>Y</draw>
  416 + </GUI>
  417 + </step>
  418 +
  419 + <step>
  420 + <name>&#x5de5;&#x79cd;&#x6807;&#x8bc6;</name>
279 421 <type>Constant</type>
280 422 <description/>
281 423 <distribute>Y</distribute>
... ... @@ -287,13 +429,13 @@
287 429 </partitioning>
288 430 <fields>
289 431 <field>
290   - <name>sexType</name>
  432 + <name>gzType</name>
291 433 <type>String</type>
292 434 <format/>
293 435 <currency/>
294 436 <decimal/>
295 437 <group/>
296   - <nullif>sexType</nullif>
  438 + <nullif>gzType</nullif>
297 439 <length>-1</length>
298 440 <precision>-1</precision>
299 441 <set_empty_string>N</set_empty_string>
... ... @@ -301,14 +443,14 @@
301 443 </fields>
302 444 <cluster_schema/>
303 445 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
304   - <xloc>220</xloc>
305   - <yloc>69</yloc>
  446 + <xloc>418</xloc>
  447 + <yloc>73</yloc>
306 448 <draw>Y</draw>
307 449 </GUI>
308 450 </step>
309 451  
310 452 <step>
311   - <name>&#x6027;&#x522b;&#x6807;&#x8bc6;&#x67e5;&#x8be2;</name>
  453 + <name>&#x5de5;&#x79cd;&#x6807;&#x8bc6;&#x67e5;&#x8be2;</name>
312 454 <type>DBLookup</type>
313 455 <description/>
314 456 <distribute>Y</distribute>
... ... @@ -329,34 +471,34 @@
329 471 <fail_on_multiple>N</fail_on_multiple>
330 472 <eat_row_on_failure>N</eat_row_on_failure>
331 473 <key>
332   - <name>sexType</name>
  474 + <name>gzType</name>
333 475 <field>d_group</field>
334 476 <condition>&#x3d;</condition>
335 477 <name2/>
336 478 </key>
337 479 <key>
338   - <name>personnel_type</name>
  480 + <name>posts</name>
339 481 <field>d_code</field>
340 482 <condition>&#x3d;</condition>
341 483 <name2/>
342 484 </key>
343 485 <value>
344 486 <name>d_name</name>
345   - <rename>personnel_type_str</rename>
  487 + <rename>posts_str</rename>
346 488 <default/>
347 489 <type>String</type>
348 490 </value>
349 491 </lookup>
350 492 <cluster_schema/>
351 493 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
352   - <xloc>316</xloc>
353   - <yloc>71</yloc>
  494 + <xloc>509</xloc>
  495 + <yloc>75</yloc>
354 496 <draw>Y</draw>
355 497 </GUI>
356 498 </step>
357 499  
358 500 <step>
359   - <name>&#x5de5;&#x79cd;&#x6807;&#x8bc6;</name>
  501 + <name>&#x6027;&#x522b;&#x6807;&#x8bc6;</name>
360 502 <type>Constant</type>
361 503 <description/>
362 504 <distribute>Y</distribute>
... ... @@ -368,13 +510,13 @@
368 510 </partitioning>
369 511 <fields>
370 512 <field>
371   - <name>gzType</name>
  513 + <name>sexType</name>
372 514 <type>String</type>
373 515 <format/>
374 516 <currency/>
375 517 <decimal/>
376 518 <group/>
377   - <nullif>gzType</nullif>
  519 + <nullif>sexType</nullif>
378 520 <length>-1</length>
379 521 <precision>-1</precision>
380 522 <set_empty_string>N</set_empty_string>
... ... @@ -382,14 +524,14 @@
382 524 </fields>
383 525 <cluster_schema/>
384 526 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
385   - <xloc>418</xloc>
386   - <yloc>73</yloc>
  527 + <xloc>220</xloc>
  528 + <yloc>69</yloc>
387 529 <draw>Y</draw>
388 530 </GUI>
389 531 </step>
390 532  
391 533 <step>
392   - <name>&#x5de5;&#x79cd;&#x6807;&#x8bc6;&#x67e5;&#x8be2;</name>
  534 + <name>&#x6027;&#x522b;&#x6807;&#x8bc6;&#x67e5;&#x8be2;</name>
393 535 <type>DBLookup</type>
394 536 <description/>
395 537 <distribute>Y</distribute>
... ... @@ -410,91 +552,35 @@
410 552 <fail_on_multiple>N</fail_on_multiple>
411 553 <eat_row_on_failure>N</eat_row_on_failure>
412 554 <key>
413   - <name>gzType</name>
  555 + <name>sexType</name>
414 556 <field>d_group</field>
415 557 <condition>&#x3d;</condition>
416 558 <name2/>
417 559 </key>
418 560 <key>
419   - <name>posts</name>
  561 + <name>personnel_type</name>
420 562 <field>d_code</field>
421 563 <condition>&#x3d;</condition>
422 564 <name2/>
423 565 </key>
424 566 <value>
425 567 <name>d_name</name>
426   - <rename>posts_str</rename>
  568 + <rename>personnel_type_str</rename>
427 569 <default/>
428 570 <type>String</type>
429 571 </value>
430 572 </lookup>
431 573 <cluster_schema/>
432 574 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
433   - <xloc>509</xloc>
434   - <yloc>75</yloc>
435   - <draw>Y</draw>
436   - </GUI>
437   - </step>
438   -
439   - <step>
440   - <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>
441   - <type>SelectValues</type>
442   - <description/>
443   - <distribute>Y</distribute>
444   - <custom_distribution/>
445   - <copies>1</copies>
446   - <partitioning>
447   - <method>none</method>
448   - <schema_name/>
449   - </partitioning>
450   - <fields> <field> <name>personnel_name</name>
451   - <rename>&#x59d3;&#x540d;</rename>
452   - <length>-2</length>
453   - <precision>-2</precision>
454   - </field> <field> <name>job_code</name>
455   - <rename>&#x5de5;&#x53f7;</rename>
456   - <length>-2</length>
457   - <precision>-2</precision>
458   - </field> <field> <name>personnel_type_str</name>
459   - <rename>&#x6027;&#x522b;</rename>
460   - <length>-2</length>
461   - <precision>-2</precision>
462   - </field> <field> <name>company</name>
463   - <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;</rename>
464   - <length>-2</length>
465   - <precision>-2</precision>
466   - </field> <field> <name>branche_company</name>
467   - <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</rename>
468   - <length>-2</length>
469   - <precision>-2</precision>
470   - </field> <field> <name>ic_card_code</name>
471   - <rename>&#x4e00;&#x5361;&#x901a;&#x53f7;</rename>
472   - <length>-2</length>
473   - <precision>-2</precision>
474   - </field> <field> <name>papers_code</name>
475   - <rename>&#x8fd0;&#x8425;&#x670d;&#x52a1;&#x8bc1;&#x53f7;</rename>
476   - <length>-2</length>
477   - <precision>-2</precision>
478   - </field> <field> <name>posts_str</name>
479   - <rename>&#x5c97;&#x4f4d;</rename>
480   - <length>-2</length>
481   - <precision>-2</precision>
482   - </field> <field> <name>descriptions</name>
483   - <rename>&#x5907;&#x6ce8;</rename>
484   - <length>-2</length>
485   - <precision>-2</precision>
486   - </field> <select_unspecified>N</select_unspecified>
487   - </fields> <cluster_schema/>
488   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
489   - <xloc>631</xloc>
490   - <yloc>76</yloc>
  575 + <xloc>316</xloc>
  576 + <yloc>71</yloc>
491 577 <draw>Y</draw>
492 578 </GUI>
493 579 </step>
494 580  
495 581 <step>
496   - <name>Excel&#x8f93;&#x51fa;</name>
497   - <type>ExcelOutput</type>
  582 + <name>&#x8868;&#x8f93;&#x5165;</name>
  583 + <type>TableInput</type>
498 584 <description/>
499 585 <distribute>Y</distribute>
500 586 <custom_distribution/>
... ... @@ -503,103 +589,17 @@
503 589 <method>none</method>
504 590 <schema_name/>
505 591 </partitioning>
506   - <header>Y</header>
507   - <footer>N</footer>
508   - <encoding/>
509   - <append>N</append>
510   - <add_to_result_filenames>Y</add_to_result_filenames>
511   - <file>
512   - <name>&#x24;&#x7b;filepath&#x7d;</name>
513   - <extention/>
514   - <do_not_open_newfile_init>N</do_not_open_newfile_init>
515   - <create_parent_folder>N</create_parent_folder>
516   - <split>N</split>
517   - <add_date>N</add_date>
518   - <add_time>N</add_time>
519   - <SpecifyFormat>N</SpecifyFormat>
520   - <date_time_format>yyyyMMddHHmmss</date_time_format>
521   - <sheetname>&#x5de5;&#x4f5c;&#x8868;1</sheetname>
522   - <autosizecolums>N</autosizecolums>
523   - <nullisblank>N</nullisblank>
524   - <protect_sheet>N</protect_sheet>
525   - <password>Encrypted </password>
526   - <splitevery>0</splitevery>
527   - <usetempfiles>N</usetempfiles>
528   - <tempdirectory/>
529   - </file>
530   - <template>
531   - <enabled>N</enabled>
532   - <append>N</append>
533   - <filename>template.xls</filename>
534   - </template>
535   - <fields>
536   - <field>
537   - <name>&#x59d3;&#x540d;</name>
538   - <type>String</type>
539   - <format/>
540   - </field>
541   - <field>
542   - <name>&#x5de5;&#x53f7;</name>
543   - <type>String</type>
544   - <format/>
545   - </field>
546   - <field>
547   - <name>&#x6027;&#x522b;</name>
548   - <type>String</type>
549   - <format/>
550   - </field>
551   - <field>
552   - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
553   - <type>String</type>
554   - <format/>
555   - </field>
556   - <field>
557   - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
558   - <type>String</type>
559   - <format/>
560   - </field>
561   - <field>
562   - <name>&#x4e00;&#x5361;&#x901a;&#x53f7;</name>
563   - <type>String</type>
564   - <format/>
565   - </field>
566   - <field>
567   - <name>&#x8fd0;&#x8425;&#x670d;&#x52a1;&#x8bc1;&#x53f7;</name>
568   - <type>String</type>
569   - <format/>
570   - </field>
571   - <field>
572   - <name>&#x5c97;&#x4f4d;</name>
573   - <type>String</type>
574   - <format/>
575   - </field>
576   - <field>
577   - <name>&#x5907;&#x6ce8;</name>
578   - <type>String</type>
579   - <format/>
580   - </field>
581   - </fields>
582   - <custom>
583   - <header_font_name>arial</header_font_name>
584   - <header_font_size>10</header_font_size>
585   - <header_font_bold>N</header_font_bold>
586   - <header_font_italic>N</header_font_italic>
587   - <header_font_underline>no</header_font_underline>
588   - <header_font_orientation>horizontal</header_font_orientation>
589   - <header_font_color>black</header_font_color>
590   - <header_background_color>none</header_background_color>
591   - <header_row_height>255</header_row_height>
592   - <header_alignment>left</header_alignment>
593   - <header_image/>
594   - <row_font_name>arial</row_font_name>
595   - <row_font_size>10</row_font_size>
596   - <row_font_color>black</row_font_color>
597   - <row_background_color>none</row_background_color>
598   - </custom>
  592 + <connection>bus_control_variable</connection>
  593 + <sql>SELECT &#x2a; FROM bsth_c_personnel&#x3b;</sql>
  594 + <limit>0</limit>
  595 + <lookup/>
  596 + <execute_each_row>N</execute_each_row>
  597 + <variables_active>N</variables_active>
  598 + <lazy_conversion_active>N</lazy_conversion_active>
599 599 <cluster_schema/>
600 600 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
601   - <xloc>633</xloc>
602   - <yloc>189</yloc>
  601 + <xloc>112</xloc>
  602 + <yloc>66</yloc>
603 603 <draw>Y</draw>
604 604 </GUI>
605 605 </step>
... ...
src/main/resources/datatools/ktrs/guideboardDataInput.ktr
1   -<?xml version="1.0" encoding="UTF-8"?>
2   -<transformation>
3   - <info>
4   - <name>guideboardDataInput</name>
5   - <description>&#x8def;&#x724c;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>
6   - <extended_description>&#x7ebf;&#x8def;&#x8fd0;&#x8425;&#x7684;&#x8def;&#x724c;&#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 17&#x3a;00&#x3a;01.094</created_date>
81   - <modified_user>-</modified_user>
82   - <modified_date>2016&#x2f;06&#x2f;29 17&#x3a;00&#x3a;01.094</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>&#x8def;&#x724c;&#x4fe1;&#x606f;&#x8f93;&#x5165;&#xff0c;&#x8def;&#x724c;&#x540d;&#x5b57;&#x662f;&#x4e0d;&#x80fd;&#x91cd;&#x590d;&#x7684;&#xa;&#x4e00;&#x822c;&#x6765;&#x8bf4;&#xff0c;&#x5e94;&#x8be5;&#x662f;&#x5bfc;&#x5165;&#x65f6;&#x523b;&#x6570;&#x636e;&#x81ea;&#x52a8;&#x751f;&#x6210;&#x7684;&#xff0c;&#x8fd9;&#x4e2a;&#x518d;&#x8bae;</note>
89   - <xloc>218</xloc>
90   - <yloc>141</yloc>
91   - <width>298</width>
92   - <heigth>42</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>&#x5b57;&#x6bb5;&#x6539;&#x540d;</from><to>&#x67e5;&#x8be2;&#x7ebf;&#x8def;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>
271   - <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_gbi</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>
272   - <hop> <from>&#x67e5;&#x8be2;&#x7ebf;&#x8def;&#x5173;&#x8054;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_gbi</to><enabled>Y</enabled> </hop>
273   - <hop> <from>&#x8def;&#x724c;_85&#x8def;Excel&#x8f93;&#x5165;</from><to>&#x5b57;&#x6bb5;&#x6539;&#x540d;</to><enabled>Y</enabled> </hop>
274   - <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x8def;&#x724c;_85&#x8def;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>
275   - </order>
276   - <step>
277   - <name>&#x5b57;&#x6bb5;&#x6539;&#x540d;</name>
278   - <type>SelectValues</type>
279   - <description/>
280   - <distribute>Y</distribute>
281   - <custom_distribution/>
282   - <copies>1</copies>
283   - <partitioning>
284   - <method>none</method>
285   - <schema_name/>
286   - </partitioning>
287   - <fields> <select_unspecified>N</select_unspecified>
288   - <meta> <name>&#x7ebf;&#x8def;</name>
289   - <rename>xl</rename>
290   - <type>String</type>
291   - <length>-2</length>
292   - <precision>-2</precision>
293   - <conversion_mask/>
294   - <date_format_lenient>false</date_format_lenient>
295   - <date_format_locale/>
296   - <date_format_timezone/>
297   - <lenient_string_to_number>false</lenient_string_to_number>
298   - <encoding/>
299   - <decimal_symbol/>
300   - <grouping_symbol/>
301   - <currency_symbol/>
302   - <storage_type/>
303   - </meta> <meta> <name>&#x8def;&#x724c;&#x7f16;&#x53f7;</name>
304   - <rename>lpno</rename>
305   - <type>Integer</type>
306   - <length>-2</length>
307   - <precision>-2</precision>
308   - <conversion_mask/>
309   - <date_format_lenient>false</date_format_lenient>
310   - <date_format_locale/>
311   - <date_format_timezone/>
312   - <lenient_string_to_number>false</lenient_string_to_number>
313   - <encoding/>
314   - <decimal_symbol/>
315   - <grouping_symbol/>
316   - <currency_symbol/>
317   - <storage_type/>
318   - </meta> <meta> <name>&#x8def;&#x724c;&#x540d;&#x79f0;</name>
319   - <rename>lpname</rename>
320   - <type>String</type>
321   - <length>-2</length>
322   - <precision>-2</precision>
323   - <conversion_mask/>
324   - <date_format_lenient>false</date_format_lenient>
325   - <date_format_locale/>
326   - <date_format_timezone/>
327   - <lenient_string_to_number>false</lenient_string_to_number>
328   - <encoding/>
329   - <decimal_symbol/>
330   - <grouping_symbol/>
331   - <currency_symbol/>
332   - <storage_type/>
333   - </meta> <meta> <name>&#x8def;&#x724c;&#x7c7b;&#x578b;</name>
334   - <rename>lptype</rename>
335   - <type>String</type>
336   - <length>-2</length>
337   - <precision>-2</precision>
338   - <conversion_mask/>
339   - <date_format_lenient>false</date_format_lenient>
340   - <date_format_locale/>
341   - <date_format_timezone/>
342   - <lenient_string_to_number>false</lenient_string_to_number>
343   - <encoding/>
344   - <decimal_symbol/>
345   - <grouping_symbol/>
346   - <currency_symbol/>
347   - <storage_type/>
348   - </meta> </fields> <cluster_schema/>
349   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
350   - <xloc>295</xloc>
351   - <yloc>68</yloc>
352   - <draw>Y</draw>
353   - </GUI>
354   - </step>
355   -
356   - <step>
357   - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_gbi</name>
358   - <type>InsertUpdate</type>
359   - <description/>
360   - <distribute>Y</distribute>
361   - <custom_distribution/>
362   - <copies>1</copies>
363   - <partitioning>
364   - <method>none</method>
365   - <schema_name/>
366   - </partitioning>
367   - <connection>bus_control_variable</connection>
368   - <commit>100</commit>
369   - <update_bypassed>N</update_bypassed>
370   - <lookup>
371   - <schema/>
372   - <table>bsth_c_s_gbi</table>
373   - <key>
374   - <name>xlid</name>
375   - <field>xl</field>
376   - <condition>&#x3d;</condition>
377   - <name2/>
378   - </key>
379   - <key>
380   - <name>lpname</name>
381   - <field>lp_name</field>
382   - <condition>&#x3d;</condition>
383   - <name2/>
384   - </key>
385   - <value>
386   - <name>xl</name>
387   - <rename>xlid</rename>
388   - <update>Y</update>
389   - </value>
390   - <value>
391   - <name>lp_no</name>
392   - <rename>lpno</rename>
393   - <update>Y</update>
394   - </value>
395   - <value>
396   - <name>lp_name</name>
397   - <rename>lpname</rename>
398   - <update>Y</update>
399   - </value>
400   - <value>
401   - <name>lp_type</name>
402   - <rename>lptype</rename>
403   - <update>Y</update>
404   - </value>
405   - </lookup>
406   - <cluster_schema/>
407   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
408   - <xloc>576</xloc>
409   - <yloc>69</yloc>
410   - <draw>Y</draw>
411   - </GUI>
412   - </step>
413   -
414   - <step>
415   - <name>&#x67e5;&#x8be2;&#x7ebf;&#x8def;&#x5173;&#x8054;</name>
416   - <type>DBLookup</type>
417   - <description/>
418   - <distribute>Y</distribute>
419   - <custom_distribution/>
420   - <copies>1</copies>
421   - <partitioning>
422   - <method>none</method>
423   - <schema_name/>
424   - </partitioning>
425   - <connection>bus_control_variable</connection>
426   - <cache>N</cache>
427   - <cache_load_all>N</cache_load_all>
428   - <cache_size>0</cache_size>
429   - <lookup>
430   - <schema/>
431   - <table>bsth_c_line</table>
432   - <orderby/>
433   - <fail_on_multiple>N</fail_on_multiple>
434   - <eat_row_on_failure>N</eat_row_on_failure>
435   - <key>
436   - <name>xl</name>
437   - <field>name</field>
438   - <condition>&#x3d;</condition>
439   - <name2/>
440   - </key>
441   - <value>
442   - <name>id</name>
443   - <rename>xlid</rename>
444   - <default/>
445   - <type>Integer</type>
446   - </value>
447   - </lookup>
448   - <cluster_schema/>
449   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
450   - <xloc>428</xloc>
451   - <yloc>69</yloc>
452   - <draw>Y</draw>
453   - </GUI>
454   - </step>
455   -
456   - <step>
457   - <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
458   - <type>GetVariable</type>
459   - <description/>
460   - <distribute>Y</distribute>
461   - <custom_distribution/>
462   - <copies>1</copies>
463   - <partitioning>
464   - <method>none</method>
465   - <schema_name/>
466   - </partitioning>
467   - <fields>
468   - <field>
469   - <name>filepath_</name>
470   - <variable>&#x24;&#x7b;filepath&#x7d;</variable>
471   - <type>String</type>
472   - <format/>
473   - <currency/>
474   - <decimal/>
475   - <group/>
476   - <length>-1</length>
477   - <precision>-1</precision>
478   - <trim_type>none</trim_type>
479   - </field>
480   - <field>
481   - <name>erroroutputdir_</name>
482   - <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
483   - <type>String</type>
484   - <format/>
485   - <currency/>
486   - <decimal/>
487   - <group/>
488   - <length>-1</length>
489   - <precision>-1</precision>
490   - <trim_type>none</trim_type>
491   - </field>
492   - </fields>
493   - <cluster_schema/>
494   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
495   - <xloc>152</xloc>
496   - <yloc>193</yloc>
497   - <draw>Y</draw>
498   - </GUI>
499   - </step>
500   -
501   - <step>
502   - <name>&#x8def;&#x724c;_85&#x8def;Excel&#x8f93;&#x5165;</name>
503   - <type>ExcelInput</type>
504   - <description/>
505   - <distribute>Y</distribute>
506   - <custom_distribution/>
507   - <copies>1</copies>
508   - <partitioning>
509   - <method>none</method>
510   - <schema_name/>
511   - </partitioning>
512   - <header>Y</header>
513   - <noempty>Y</noempty>
514   - <stoponempty>N</stoponempty>
515   - <filefield/>
516   - <sheetfield/>
517   - <sheetrownumfield/>
518   - <rownumfield/>
519   - <sheetfield/>
520   - <filefield/>
521   - <limit>0</limit>
522   - <encoding/>
523   - <add_to_result_filenames>Y</add_to_result_filenames>
524   - <accept_filenames>Y</accept_filenames>
525   - <accept_field>filepath_</accept_field>
526   - <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
527   - <file>
528   - <name/>
529   - <filemask/>
530   - <exclude_filemask/>
531   - <file_required>N</file_required>
532   - <include_subfolders>N</include_subfolders>
533   - </file>
534   - <fields>
535   - <field>
536   - <name>&#x7ebf;&#x8def;</name>
537   - <type>String</type>
538   - <length>-1</length>
539   - <precision>-1</precision>
540   - <trim_type>none</trim_type>
541   - <repeat>N</repeat>
542   - <format/>
543   - <currency/>
544   - <decimal/>
545   - <group/>
546   - </field>
547   - <field>
548   - <name>&#x8def;&#x724c;&#x7f16;&#x53f7;</name>
549   - <type>String</type>
550   - <length>-1</length>
551   - <precision>-1</precision>
552   - <trim_type>none</trim_type>
553   - <repeat>N</repeat>
554   - <format>&#x23;</format>
555   - <currency/>
556   - <decimal/>
557   - <group/>
558   - </field>
559   - <field>
560   - <name>&#x8def;&#x724c;&#x540d;&#x79f0;</name>
561   - <type>String</type>
562   - <length>-1</length>
563   - <precision>-1</precision>
564   - <trim_type>none</trim_type>
565   - <repeat>N</repeat>
566   - <format>&#x23;</format>
567   - <currency/>
568   - <decimal/>
569   - <group/>
570   - </field>
571   - <field>
572   - <name>&#x8def;&#x724c;&#x7c7b;&#x578b;</name>
573   - <type>String</type>
574   - <length>-1</length>
575   - <precision>-1</precision>
576   - <trim_type>none</trim_type>
577   - <repeat>N</repeat>
578   - <format/>
579   - <currency/>
580   - <decimal/>
581   - <group/>
582   - </field>
583   - </fields>
584   - <sheets>
585   - <sheet>
586   - <name>&#x5de5;&#x4f5c;&#x8868;1</name>
587   - <startrow>0</startrow>
588   - <startcol>0</startcol>
589   - </sheet>
590   - </sheets>
591   - <strict_types>N</strict_types>
592   - <error_ignored>N</error_ignored>
593   - <error_line_skipped>N</error_line_skipped>
594   - <bad_line_files_destination_directory/>
595   - <bad_line_files_extension>warning</bad_line_files_extension>
596   - <error_line_files_destination_directory/>
597   - <error_line_files_extension>error</error_line_files_extension>
598   - <line_number_files_destination_directory/>
599   - <line_number_files_extension>line</line_number_files_extension>
600   - <shortFileFieldName/>
601   - <pathFieldName/>
602   - <hiddenFieldName/>
603   - <lastModificationTimeFieldName/>
604   - <uriNameFieldName/>
605   - <rootUriNameFieldName/>
606   - <extensionFieldName/>
607   - <sizeFieldName/>
608   - <spreadsheet_type>JXL</spreadsheet_type>
609   - <cluster_schema/>
610   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
611   - <xloc>150</xloc>
612   - <yloc>68</yloc>
613   - <draw>Y</draw>
614   - </GUI>
615   - </step>
616   -
617   - <step>
618   - <name>&#x9519;&#x8bef;&#x8f93;&#x51fa;</name>
619   - <type>ExcelOutput</type>
620   - <description/>
621   - <distribute>Y</distribute>
622   - <custom_distribution/>
623   - <copies>1</copies>
624   - <partitioning>
625   - <method>none</method>
626   - <schema_name/>
627   - </partitioning>
628   - <header>Y</header>
629   - <footer>N</footer>
630   - <encoding>UTF-8</encoding>
631   - <append>N</append>
632   - <add_to_result_filenames>Y</add_to_result_filenames>
633   - <file>
634   - <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x8def;&#x724c;_&#x9519;&#x8bef;</name>
635   - <extention>xls</extention>
636   - <do_not_open_newfile_init>N</do_not_open_newfile_init>
637   - <create_parent_folder>N</create_parent_folder>
638   - <split>N</split>
639   - <add_date>N</add_date>
640   - <add_time>N</add_time>
641   - <SpecifyFormat>N</SpecifyFormat>
642   - <date_time_format/>
643   - <sheetname>Sheet1</sheetname>
644   - <autosizecolums>N</autosizecolums>
645   - <nullisblank>N</nullisblank>
646   - <protect_sheet>N</protect_sheet>
647   - <password>Encrypted </password>
648   - <splitevery>0</splitevery>
649   - <usetempfiles>N</usetempfiles>
650   - <tempdirectory/>
651   - </file>
652   - <template>
653   - <enabled>N</enabled>
654   - <append>N</append>
655   - <filename>template.xls</filename>
656   - </template>
657   - <fields>
658   - <field>
659   - <name>xl</name>
660   - <type>String</type>
661   - <format/>
662   - </field>
663   - <field>
664   - <name>lpno</name>
665   - <type>Integer</type>
666   - <format/>
667   - </field>
668   - <field>
669   - <name>lpname</name>
670   - <type>String</type>
671   - <format/>
672   - </field>
673   - <field>
674   - <name>lptype</name>
675   - <type>String</type>
676   - <format/>
677   - </field>
678   - <field>
679   - <name>xlid</name>
680   - <type>Integer</type>
681   - <format/>
682   - </field>
683   - <field>
684   - <name>error_count</name>
685   - <type>Integer</type>
686   - <format/>
687   - </field>
688   - <field>
689   - <name>error_desc</name>
690   - <type>String</type>
691   - <format/>
692   - </field>
693   - <field>
694   - <name>error_column1</name>
695   - <type>String</type>
696   - <format/>
697   - </field>
698   - <field>
699   - <name>error_column2</name>
700   - <type>String</type>
701   - <format/>
702   - </field>
703   - </fields>
704   - <custom>
705   - <header_font_name>arial</header_font_name>
706   - <header_font_size>10</header_font_size>
707   - <header_font_bold>N</header_font_bold>
708   - <header_font_italic>N</header_font_italic>
709   - <header_font_underline>no</header_font_underline>
710   - <header_font_orientation>horizontal</header_font_orientation>
711   - <header_font_color>black</header_font_color>
712   - <header_background_color>none</header_background_color>
713   - <header_row_height>255</header_row_height>
714   - <header_alignment>left</header_alignment>
715   - <header_image/>
716   - <row_font_name>arial</row_font_name>
717   - <row_font_size>10</row_font_size>
718   - <row_font_color>black</row_font_color>
719   - <row_background_color>none</row_background_color>
720   - </custom>
721   - <cluster_schema/>
722   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
723   - <xloc>576</xloc>
724   - <yloc>192</yloc>
725   - <draw>Y</draw>
726   - </GUI>
727   - </step>
728   -
729   - <step_error_handling>
730   - <error>
731   - <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_gbi</source_step>
732   - <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa;</target_step>
733   - <is_enabled>Y</is_enabled>
734   - <nr_valuename>error_count</nr_valuename>
735   - <descriptions_valuename>error_desc</descriptions_valuename>
736   - <fields_valuename>error_column1</fields_valuename>
737   - <codes_valuename>error_column2</codes_valuename>
738   - <max_errors/>
739   - <max_pct_errors/>
740   - <min_pct_rows/>
741   - </error>
742   - </step_error_handling>
743   - <slave-step-copy-partition-distribution>
744   -</slave-step-copy-partition-distribution>
745   - <slave_transformation>N</slave_transformation>
746   -
747   -</transformation>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<transformation>
  3 + <info>
  4 + <name>guideboardDataInput</name>
  5 + <description>&#x8def;&#x724c;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>
  6 + <extended_description>&#x7ebf;&#x8def;&#x8fd0;&#x8425;&#x7684;&#x8def;&#x724c;&#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 17&#x3a;00&#x3a;01.094</created_date>
  81 + <modified_user>-</modified_user>
  82 + <modified_date>2016&#x2f;06&#x2f;29 17&#x3a;00&#x3a;01.094</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>&#x8def;&#x724c;&#x4fe1;&#x606f;&#x8f93;&#x5165;&#xff0c;&#x8def;&#x724c;&#x540d;&#x5b57;&#x662f;&#x4e0d;&#x80fd;&#x91cd;&#x590d;&#x7684;&#xa;&#x4e00;&#x822c;&#x6765;&#x8bf4;&#xff0c;&#x5e94;&#x8be5;&#x662f;&#x5bfc;&#x5165;&#x65f6;&#x523b;&#x6570;&#x636e;&#x81ea;&#x52a8;&#x751f;&#x6210;&#x7684;&#xff0c;&#x8fd9;&#x4e2a;&#x518d;&#x8bae;&#xa;&#xa;</note>
  89 + <xloc>218</xloc>
  90 + <yloc>141</yloc>
  91 + <width>298</width>
  92 + <heigth>74</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>&#x5b57;&#x6bb5;&#x6539;&#x540d;</from><to>&#x67e5;&#x8be2;&#x7ebf;&#x8def;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>
  271 + <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_gbi</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>
  272 + <hop> <from>&#x67e5;&#x8be2;&#x7ebf;&#x8def;&#x5173;&#x8054;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_gbi</to><enabled>Y</enabled> </hop>
  273 + <hop> <from>&#x8def;&#x724c;_85&#x8def;Excel&#x8f93;&#x5165;</from><to>&#x5b57;&#x6bb5;&#x6539;&#x540d;</to><enabled>Y</enabled> </hop>
  274 + <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x8def;&#x724c;_85&#x8def;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>
  275 + </order>
  276 + <step>
  277 + <name>&#x5b57;&#x6bb5;&#x6539;&#x540d;</name>
  278 + <type>SelectValues</type>
  279 + <description/>
  280 + <distribute>Y</distribute>
  281 + <custom_distribution/>
  282 + <copies>1</copies>
  283 + <partitioning>
  284 + <method>none</method>
  285 + <schema_name/>
  286 + </partitioning>
  287 + <fields> <select_unspecified>N</select_unspecified>
  288 + <meta> <name>&#x7ebf;&#x8def;</name>
  289 + <rename>xl</rename>
  290 + <type>String</type>
  291 + <length>-2</length>
  292 + <precision>-2</precision>
  293 + <conversion_mask/>
  294 + <date_format_lenient>false</date_format_lenient>
  295 + <date_format_locale/>
  296 + <date_format_timezone/>
  297 + <lenient_string_to_number>false</lenient_string_to_number>
  298 + <encoding/>
  299 + <decimal_symbol/>
  300 + <grouping_symbol/>
  301 + <currency_symbol/>
  302 + <storage_type/>
  303 + </meta> <meta> <name>&#x8def;&#x724c;&#x7f16;&#x53f7;</name>
  304 + <rename>lpno</rename>
  305 + <type>Integer</type>
  306 + <length>-2</length>
  307 + <precision>-2</precision>
  308 + <conversion_mask/>
  309 + <date_format_lenient>false</date_format_lenient>
  310 + <date_format_locale/>
  311 + <date_format_timezone/>
  312 + <lenient_string_to_number>false</lenient_string_to_number>
  313 + <encoding/>
  314 + <decimal_symbol/>
  315 + <grouping_symbol/>
  316 + <currency_symbol/>
  317 + <storage_type/>
  318 + </meta> <meta> <name>&#x8def;&#x724c;&#x540d;&#x79f0;</name>
  319 + <rename>lpname</rename>
  320 + <type>String</type>
  321 + <length>-2</length>
  322 + <precision>-2</precision>
  323 + <conversion_mask/>
  324 + <date_format_lenient>false</date_format_lenient>
  325 + <date_format_locale/>
  326 + <date_format_timezone/>
  327 + <lenient_string_to_number>false</lenient_string_to_number>
  328 + <encoding/>
  329 + <decimal_symbol/>
  330 + <grouping_symbol/>
  331 + <currency_symbol/>
  332 + <storage_type/>
  333 + </meta> <meta> <name>&#x8def;&#x724c;&#x7c7b;&#x578b;</name>
  334 + <rename>lptype</rename>
  335 + <type>String</type>
  336 + <length>-2</length>
  337 + <precision>-2</precision>
  338 + <conversion_mask/>
  339 + <date_format_lenient>false</date_format_lenient>
  340 + <date_format_locale/>
  341 + <date_format_timezone/>
  342 + <lenient_string_to_number>false</lenient_string_to_number>
  343 + <encoding/>
  344 + <decimal_symbol/>
  345 + <grouping_symbol/>
  346 + <currency_symbol/>
  347 + <storage_type/>
  348 + </meta> </fields> <cluster_schema/>
  349 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  350 + <xloc>295</xloc>
  351 + <yloc>68</yloc>
  352 + <draw>Y</draw>
  353 + </GUI>
  354 + </step>
  355 +
  356 + <step>
  357 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_gbi</name>
  358 + <type>InsertUpdate</type>
  359 + <description/>
  360 + <distribute>Y</distribute>
  361 + <custom_distribution/>
  362 + <copies>1</copies>
  363 + <partitioning>
  364 + <method>none</method>
  365 + <schema_name/>
  366 + </partitioning>
  367 + <connection>bus_control_variable</connection>
  368 + <commit>100</commit>
  369 + <update_bypassed>N</update_bypassed>
  370 + <lookup>
  371 + <schema/>
  372 + <table>bsth_c_s_gbi</table>
  373 + <key>
  374 + <name>xlid</name>
  375 + <field>xl</field>
  376 + <condition>&#x3d;</condition>
  377 + <name2/>
  378 + </key>
  379 + <key>
  380 + <name>lpname</name>
  381 + <field>lp_name</field>
  382 + <condition>&#x3d;</condition>
  383 + <name2/>
  384 + </key>
  385 + <value>
  386 + <name>xl</name>
  387 + <rename>xlid</rename>
  388 + <update>Y</update>
  389 + </value>
  390 + <value>
  391 + <name>lp_no</name>
  392 + <rename>lpno</rename>
  393 + <update>Y</update>
  394 + </value>
  395 + <value>
  396 + <name>lp_name</name>
  397 + <rename>lpname</rename>
  398 + <update>Y</update>
  399 + </value>
  400 + <value>
  401 + <name>lp_type</name>
  402 + <rename>lptype</rename>
  403 + <update>Y</update>
  404 + </value>
  405 + </lookup>
  406 + <cluster_schema/>
  407 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  408 + <xloc>576</xloc>
  409 + <yloc>69</yloc>
  410 + <draw>Y</draw>
  411 + </GUI>
  412 + </step>
  413 +
  414 + <step>
  415 + <name>&#x67e5;&#x8be2;&#x7ebf;&#x8def;&#x5173;&#x8054;</name>
  416 + <type>DBLookup</type>
  417 + <description/>
  418 + <distribute>Y</distribute>
  419 + <custom_distribution/>
  420 + <copies>1</copies>
  421 + <partitioning>
  422 + <method>none</method>
  423 + <schema_name/>
  424 + </partitioning>
  425 + <connection>bus_control_variable</connection>
  426 + <cache>N</cache>
  427 + <cache_load_all>N</cache_load_all>
  428 + <cache_size>0</cache_size>
  429 + <lookup>
  430 + <schema/>
  431 + <table>bsth_c_line</table>
  432 + <orderby/>
  433 + <fail_on_multiple>N</fail_on_multiple>
  434 + <eat_row_on_failure>N</eat_row_on_failure>
  435 + <key>
  436 + <name>xl</name>
  437 + <field>name</field>
  438 + <condition>&#x3d;</condition>
  439 + <name2/>
  440 + </key>
  441 + <value>
  442 + <name>id</name>
  443 + <rename>xlid</rename>
  444 + <default/>
  445 + <type>Integer</type>
  446 + </value>
  447 + </lookup>
  448 + <cluster_schema/>
  449 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  450 + <xloc>428</xloc>
  451 + <yloc>69</yloc>
  452 + <draw>Y</draw>
  453 + </GUI>
  454 + </step>
  455 +
  456 + <step>
  457 + <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
  458 + <type>GetVariable</type>
  459 + <description/>
  460 + <distribute>Y</distribute>
  461 + <custom_distribution/>
  462 + <copies>1</copies>
  463 + <partitioning>
  464 + <method>none</method>
  465 + <schema_name/>
  466 + </partitioning>
  467 + <fields>
  468 + <field>
  469 + <name>filepath_</name>
  470 + <variable>&#x24;&#x7b;filepath&#x7d;</variable>
  471 + <type>String</type>
  472 + <format/>
  473 + <currency/>
  474 + <decimal/>
  475 + <group/>
  476 + <length>-1</length>
  477 + <precision>-1</precision>
  478 + <trim_type>none</trim_type>
  479 + </field>
  480 + <field>
  481 + <name>erroroutputdir_</name>
  482 + <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
  483 + <type>String</type>
  484 + <format/>
  485 + <currency/>
  486 + <decimal/>
  487 + <group/>
  488 + <length>-1</length>
  489 + <precision>-1</precision>
  490 + <trim_type>none</trim_type>
  491 + </field>
  492 + </fields>
  493 + <cluster_schema/>
  494 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  495 + <xloc>152</xloc>
  496 + <yloc>193</yloc>
  497 + <draw>Y</draw>
  498 + </GUI>
  499 + </step>
  500 +
  501 + <step>
  502 + <name>&#x8def;&#x724c;_85&#x8def;Excel&#x8f93;&#x5165;</name>
  503 + <type>ExcelInput</type>
  504 + <description/>
  505 + <distribute>Y</distribute>
  506 + <custom_distribution/>
  507 + <copies>1</copies>
  508 + <partitioning>
  509 + <method>none</method>
  510 + <schema_name/>
  511 + </partitioning>
  512 + <header>Y</header>
  513 + <noempty>Y</noempty>
  514 + <stoponempty>N</stoponempty>
  515 + <filefield/>
  516 + <sheetfield/>
  517 + <sheetrownumfield/>
  518 + <rownumfield/>
  519 + <sheetfield/>
  520 + <filefield/>
  521 + <limit>0</limit>
  522 + <encoding/>
  523 + <add_to_result_filenames>Y</add_to_result_filenames>
  524 + <accept_filenames>Y</accept_filenames>
  525 + <accept_field>filepath_</accept_field>
  526 + <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
  527 + <file>
  528 + <name/>
  529 + <filemask/>
  530 + <exclude_filemask/>
  531 + <file_required>N</file_required>
  532 + <include_subfolders>N</include_subfolders>
  533 + </file>
  534 + <fields>
  535 + <field>
  536 + <name>&#x7ebf;&#x8def;</name>
  537 + <type>String</type>
  538 + <length>-1</length>
  539 + <precision>-1</precision>
  540 + <trim_type>none</trim_type>
  541 + <repeat>N</repeat>
  542 + <format/>
  543 + <currency/>
  544 + <decimal/>
  545 + <group/>
  546 + </field>
  547 + <field>
  548 + <name>&#x8def;&#x724c;&#x7f16;&#x53f7;</name>
  549 + <type>String</type>
  550 + <length>-1</length>
  551 + <precision>-1</precision>
  552 + <trim_type>none</trim_type>
  553 + <repeat>N</repeat>
  554 + <format>&#x23;</format>
  555 + <currency/>
  556 + <decimal/>
  557 + <group/>
  558 + </field>
  559 + <field>
  560 + <name>&#x8def;&#x724c;&#x540d;&#x79f0;</name>
  561 + <type>String</type>
  562 + <length>-1</length>
  563 + <precision>-1</precision>
  564 + <trim_type>none</trim_type>
  565 + <repeat>N</repeat>
  566 + <format>&#x23;</format>
  567 + <currency/>
  568 + <decimal/>
  569 + <group/>
  570 + </field>
  571 + <field>
  572 + <name>&#x8def;&#x724c;&#x7c7b;&#x578b;</name>
  573 + <type>String</type>
  574 + <length>-1</length>
  575 + <precision>-1</precision>
  576 + <trim_type>none</trim_type>
  577 + <repeat>N</repeat>
  578 + <format/>
  579 + <currency/>
  580 + <decimal/>
  581 + <group/>
  582 + </field>
  583 + </fields>
  584 + <sheets>
  585 + <sheet>
  586 + <name>&#x5de5;&#x4f5c;&#x8868;1</name>
  587 + <startrow>0</startrow>
  588 + <startcol>0</startcol>
  589 + </sheet>
  590 + </sheets>
  591 + <strict_types>N</strict_types>
  592 + <error_ignored>N</error_ignored>
  593 + <error_line_skipped>N</error_line_skipped>
  594 + <bad_line_files_destination_directory/>
  595 + <bad_line_files_extension>warning</bad_line_files_extension>
  596 + <error_line_files_destination_directory/>
  597 + <error_line_files_extension>error</error_line_files_extension>
  598 + <line_number_files_destination_directory/>
  599 + <line_number_files_extension>line</line_number_files_extension>
  600 + <shortFileFieldName/>
  601 + <pathFieldName/>
  602 + <hiddenFieldName/>
  603 + <lastModificationTimeFieldName/>
  604 + <uriNameFieldName/>
  605 + <rootUriNameFieldName/>
  606 + <extensionFieldName/>
  607 + <sizeFieldName/>
  608 + <spreadsheet_type>JXL</spreadsheet_type>
  609 + <cluster_schema/>
  610 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  611 + <xloc>150</xloc>
  612 + <yloc>68</yloc>
  613 + <draw>Y</draw>
  614 + </GUI>
  615 + </step>
  616 +
  617 + <step>
  618 + <name>&#x9519;&#x8bef;&#x8f93;&#x51fa;</name>
  619 + <type>ExcelOutput</type>
  620 + <description/>
  621 + <distribute>Y</distribute>
  622 + <custom_distribution/>
  623 + <copies>1</copies>
  624 + <partitioning>
  625 + <method>none</method>
  626 + <schema_name/>
  627 + </partitioning>
  628 + <header>Y</header>
  629 + <footer>N</footer>
  630 + <encoding>UTF-8</encoding>
  631 + <append>N</append>
  632 + <add_to_result_filenames>Y</add_to_result_filenames>
  633 + <file>
  634 + <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x8def;&#x724c;_&#x9519;&#x8bef;</name>
  635 + <extention>xls</extention>
  636 + <do_not_open_newfile_init>N</do_not_open_newfile_init>
  637 + <create_parent_folder>N</create_parent_folder>
  638 + <split>N</split>
  639 + <add_date>N</add_date>
  640 + <add_time>N</add_time>
  641 + <SpecifyFormat>N</SpecifyFormat>
  642 + <date_time_format/>
  643 + <sheetname>Sheet1</sheetname>
  644 + <autosizecolums>N</autosizecolums>
  645 + <nullisblank>N</nullisblank>
  646 + <protect_sheet>N</protect_sheet>
  647 + <password>Encrypted </password>
  648 + <splitevery>0</splitevery>
  649 + <usetempfiles>N</usetempfiles>
  650 + <tempdirectory/>
  651 + </file>
  652 + <template>
  653 + <enabled>N</enabled>
  654 + <append>N</append>
  655 + <filename>template.xls</filename>
  656 + </template>
  657 + <fields>
  658 + <field>
  659 + <name>xl</name>
  660 + <type>String</type>
  661 + <format/>
  662 + </field>
  663 + <field>
  664 + <name>lpno</name>
  665 + <type>Integer</type>
  666 + <format/>
  667 + </field>
  668 + <field>
  669 + <name>lpname</name>
  670 + <type>String</type>
  671 + <format/>
  672 + </field>
  673 + <field>
  674 + <name>lptype</name>
  675 + <type>String</type>
  676 + <format/>
  677 + </field>
  678 + <field>
  679 + <name>xlid</name>
  680 + <type>Integer</type>
  681 + <format/>
  682 + </field>
  683 + <field>
  684 + <name>error_count</name>
  685 + <type>Integer</type>
  686 + <format/>
  687 + </field>
  688 + <field>
  689 + <name>error_desc</name>
  690 + <type>String</type>
  691 + <format/>
  692 + </field>
  693 + <field>
  694 + <name>error_column1</name>
  695 + <type>String</type>
  696 + <format/>
  697 + </field>
  698 + <field>
  699 + <name>error_column2</name>
  700 + <type>String</type>
  701 + <format/>
  702 + </field>
  703 + </fields>
  704 + <custom>
  705 + <header_font_name>arial</header_font_name>
  706 + <header_font_size>10</header_font_size>
  707 + <header_font_bold>N</header_font_bold>
  708 + <header_font_italic>N</header_font_italic>
  709 + <header_font_underline>no</header_font_underline>
  710 + <header_font_orientation>horizontal</header_font_orientation>
  711 + <header_font_color>black</header_font_color>
  712 + <header_background_color>none</header_background_color>
  713 + <header_row_height>255</header_row_height>
  714 + <header_alignment>left</header_alignment>
  715 + <header_image/>
  716 + <row_font_name>arial</row_font_name>
  717 + <row_font_size>10</row_font_size>
  718 + <row_font_color>black</row_font_color>
  719 + <row_background_color>none</row_background_color>
  720 + </custom>
  721 + <cluster_schema/>
  722 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  723 + <xloc>576</xloc>
  724 + <yloc>192</yloc>
  725 + <draw>Y</draw>
  726 + </GUI>
  727 + </step>
  728 +
  729 + <step_error_handling>
  730 + <error>
  731 + <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_gbi</source_step>
  732 + <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa;</target_step>
  733 + <is_enabled>Y</is_enabled>
  734 + <nr_valuename>error_count</nr_valuename>
  735 + <descriptions_valuename>error_desc</descriptions_valuename>
  736 + <fields_valuename>error_column1</fields_valuename>
  737 + <codes_valuename>error_column2</codes_valuename>
  738 + <max_errors/>
  739 + <max_pct_errors/>
  740 + <min_pct_rows/>
  741 + </error>
  742 + </step_error_handling>
  743 + <slave-step-copy-partition-distribution>
  744 +</slave-step-copy-partition-distribution>
  745 + <slave_transformation>N</slave_transformation>
  746 +
  747 +</transformation>
... ...
src/main/resources/datatools/ktrs/ttinfoDataInput.ktr
... ... @@ -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>
... ... @@ -685,8 +685,8 @@
685 685 </fields>
686 686 <cluster_schema/>
687 687 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
688   - <xloc>162</xloc>
689   - <yloc>191</yloc>
  688 + <xloc>161</xloc>
  689 + <yloc>159</yloc>
690 690 <draw>Y</draw>
691 691 </GUI>
692 692 </step>
... ...
src/main/resources/datatools/ktrs/ttinfodetailDataInput.ktr
... ... @@ -96,11 +96,11 @@
96 96 <drawshadow>Y</drawshadow>
97 97 </notepad>
98 98 <notepad>
99   - <note>&#x56e0;&#x4e3a;&#x65f6;&#x523b;&#x8868;&#x8f93;&#x5165;&#x683c;&#x5f0f;&#x4e0d;&#x786e;&#x5b9a;&#x6027;&#xff0c;&#x4e3b;&#x8981;&#x56e0;&#x4e3a;&#x8868;&#x7ed3;&#x6784;&#x662f;&#x53cd;&#x8303;&#x5f0f;&#x5316;&#x7684;&#xff0c;&#xa;&#x6240;&#x4ee5;&#x9700;&#x8981;&#x5916;&#x90e8;&#x52a8;&#x6001;&#x6307;&#x5b9a;&#x613f;&#x6570;&#x636e;&#xff0c;&#x5934;&#x4e09;&#x4e2a;step&#x52a8;&#x6001;&#x6307;&#x5b9a;&#x613f;&#x6570;&#x636e;&#xa;</note>
100   - <xloc>64</xloc>
101   - <yloc>224</yloc>
  99 + <note>&#x56e0;&#x4e3a;&#x65f6;&#x523b;&#x8868;&#x8f93;&#x5165;&#x683c;&#x5f0f;&#x4e0d;&#x786e;&#x5b9a;&#x6027;&#xff0c;&#x4e3b;&#x8981;&#x56e0;&#x4e3a;&#x8868;&#x7ed3;&#x6784;&#x662f;&#x53cd;&#x8303;&#x5f0f;&#x5316;&#x7684;&#xff0c;&#xa;&#x6240;&#x4ee5;&#x9700;&#x8981;&#x5916;&#x90e8;&#x52a8;&#x6001;&#x6307;&#x5b9a;&#x613f;&#x6570;&#x636e;&#xff0c;&#x5934;&#x4e09;&#x4e2a;step&#x52a8;&#x6001;&#x6307;&#x5b9a;&#x613f;&#x6570;&#x636e;&#xa;&#xa;</note>
  100 + <xloc>79</xloc>
  101 + <yloc>206</yloc>
102 102 <width>346</width>
103   - <heigth>58</heigth>
  103 + <heigth>74</heigth>
104 104 <fontname>YaHei Consolas Hybrid</fontname>
105 105 <fontsize>12</fontsize>
106 106 <fontbold>N</fontbold>
... ... @@ -122,7 +122,7 @@
122 122 <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
123 123 <type>MYSQL</type>
124 124 <access>Native</access>
125   - <database>control</database>
  125 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
126 126 <port>3306</port>
127 127 <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
128 128 <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
... ...
src/main/resources/datatools/ktrs/ttinfodetailMetaData.ktr
... ... @@ -120,7 +120,7 @@
120 120 <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
121 121 <type>MYSQL</type>
122 122 <access>Native</access>
123   - <database>control</database>
  123 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
124 124 <port>3306</port>
125 125 <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
126 126 <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
... ... @@ -398,41 +398,41 @@
398 398 <target_detail>Y</target_detail>
399 399 <source_step>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c;</source_step>
400 400 <source_field>fieldName</source_field>
  401 + </mapping> <mapping> <target_step_name>&#x884c;&#x8f6c;&#x5217;</target_step_name>
  402 + <target_attribute_key>VALUE</target_attribute_key>
  403 + <target_detail>Y</target_detail>
  404 + <source_step>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c; 2</source_step>
  405 + <source_field>fieldName</source_field>
401 406 </mapping> <mapping> <target_step_name>Excel&#x8f93;&#x5165;</target_step_name>
402 407 <target_attribute_key>TRIM_TYPE</target_attribute_key>
403 408 <target_detail>Y</target_detail>
404 409 <source_step>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c;</source_step>
405 410 <source_field>trim_type</source_field>
406 411 </mapping> <mapping> <target_step_name>&#x884c;&#x8f6c;&#x5217;</target_step_name>
407   - <target_attribute_key>VALUE</target_attribute_key>
  412 + <target_attribute_key>NORMALISED</target_attribute_key>
408 413 <target_detail>Y</target_detail>
409 414 <source_step>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c; 2</source_step>
410   - <source_field>fieldName</source_field>
  415 + <source_field>value</source_field>
411 416 </mapping> <mapping> <target_step_name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</target_step_name>
412 417 <target_attribute_key>REPEAT</target_attribute_key>
413 418 <target_detail>Y</target_detail>
414 419 <source_step>&#x589e;&#x52a0;excel&#x5b57;&#x6bb5;&#x5176;&#x4ed6;&#x5143;&#x6570;&#x636e;</source_step>
415 420 <source_field>repeat</source_field>
416   - </mapping> <mapping> <target_step_name>&#x884c;&#x8f6c;&#x5217;</target_step_name>
417   - <target_attribute_key>NORMALISED</target_attribute_key>
418   - <target_detail>Y</target_detail>
419   - <source_step>&#x5217;&#x62c6;&#x5206;&#x4e3a;&#x591a;&#x884c; 2</source_step>
420   - <source_field>value</source_field>
421 421 </mapping> <mapping> <target_step_name>&#x73ed;&#x6b21;&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;</target_step_name>
422 422 <target_attribute_key>NORMALISED</target_attribute_key>
423 423 <target_detail>Y</target_detail>
424 424 <source_step>&#x589e;&#x52a0;normalize&#x5143;&#x6570;&#x636e;</source_step>
425 425 <source_field>valuefield</source_field>
426   - </mapping> <mapping> <target_step_name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</target_step_name>
427   - <target_attribute_key>FORMAT</target_attribute_key>
428   - <target_detail>Y</target_detail>
429   - <source_step>&#x589e;&#x52a0;excel&#x5b57;&#x6bb5;&#x5176;&#x4ed6;&#x5143;&#x6570;&#x636e;</source_step>
430   - <source_field>format</source_field>
431 426 </mapping> <mapping> <target_step_name>&#x73ed;&#x6b21;&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;</target_step_name>
432 427 <target_attribute_key>VALUE</target_attribute_key>
433 428 <target_detail>Y</target_detail>
434 429 <source_step>&#x589e;&#x52a0;normalize&#x5143;&#x6570;&#x636e;</source_step>
435 430 <source_field>nfieldname</source_field>
  431 + </mapping> <mapping> <target_step_name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</target_step_name>
  432 + <target_attribute_key>FORMAT</target_attribute_key>
  433 + <target_detail>Y</target_detail>
  434 + <source_step>&#x589e;&#x52a0;excel&#x5b57;&#x6bb5;&#x5176;&#x4ed6;&#x5143;&#x6570;&#x636e;</source_step>
  435 + <source_field>format</source_field>
436 436 </mapping> <mapping> <target_step_name>Excel&#x8f93;&#x5165;</target_step_name>
437 437 <target_attribute_key>PRECISION</target_attribute_key>
438 438 <target_detail>Y</target_detail>
... ... @@ -1006,7 +1006,7 @@
1006 1006 <cluster_schema/>
1007 1007 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1008 1008 <xloc>73</xloc>
1009   - <yloc>50</yloc>
  1009 + <yloc>62</yloc>
1010 1010 <draw>Y</draw>
1011 1011 </GUI>
1012 1012 </step>
... ...
src/main/resources/datatools/ktrs/ttinfodetailoutputforedit.ktr
... ... @@ -95,7 +95,7 @@
95 95 <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
96 96 <type>MYSQL</type>
97 97 <access>Native</access>
98   - <database>control</database>
  98 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
99 99 <port>3306</port>
100 100 <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
101 101 <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
... ... @@ -4145,8 +4145,8 @@
4145 4145 </fields>
4146 4146 <cluster_schema/>
4147 4147 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
4148   - <xloc>72</xloc>
4149   - <yloc>202</yloc>
  4148 + <xloc>45</xloc>
  4149 + <yloc>189</yloc>
4150 4150 <draw>Y</draw>
4151 4151 </GUI>
4152 4152 </step>
... ...
src/main/resources/static/index.html
... ... @@ -166,6 +166,10 @@ tr.row-active td {
166 166 <a href="javascript:;">
167 167 <i class="fa fa-user"></i> 我的信息 </a>
168 168 </li>
  169 + <li>
  170 + <a href="javascript:;" id="changePWD">
  171 + <i class="fa fa-unlock-alt"></i> 修改密码</a>
  172 + </li>
169 173 <li class="divider"> </li>
170 174 <li>
171 175 <a href="javascript:;">
... ... @@ -391,6 +395,22 @@ $(function(){
391 395 loadPage('/pages/home.html');
392 396 }
393 397 });
  398 +
  399 + //修改密码
  400 + $('#changePWD').on('click', function(){
  401 + $.get('/pages/permission/user/changePWD.html', function(content){
  402 + layer.open({
  403 + type: 1,
  404 + area: ['600px','360px'],
  405 + content: content,
  406 + title : '修改密码',
  407 + shift: 5,
  408 + scrollbar: false,
  409 + success: function(){
  410 + }
  411 + });
  412 + });
  413 + });
394 414 });
395 415  
396 416 //modal关闭时销毁dom
... ...
src/main/resources/static/pages/forms/mould/daily.xls 0 → 100644
No preview for this file type
src/main/resources/static/pages/forms/mould/waybill.xls
No preview for this file type
src/main/resources/static/pages/forms/statement/daily.html
... ... @@ -130,10 +130,12 @@
130 130 }
131 131 });
132 132  
  133 + var line;
  134 + var date;
133 135 $("#query").on("click",function(){
134   - var line = $("#line").val();
135   - var date = $("#date").val();
136   - $get('/realSchedule/dailyInfo',{line:line,date:date},function(result){
  136 + line = $("#line").val();
  137 + date = $("#date").val();
  138 + $get('/realSchedule/dailyInfo',{line:line,date:date,type:'query'},function(result){
137 139 $("#form_line").text(line);
138 140 $("#form_date").text(date);
139 141 var total_zgl = 0,total_ksgl = 0,total_yh = 0,total_bcs = 0;
... ... @@ -153,6 +155,11 @@
153 155 // 把渲染好的模版html文本追加到表格中
154 156 $('#forms .dailyInfo').html(tbodyHtml);
155 157 });
  158 + });
  159 + $("#export").on("click",function(){
  160 + $get('/realSchedule/dailyInfo',{line:line,date:date,type:'export'},function(result){
  161 + window.open("/downloadFile/download?fileName=班次日报"+moment(date).format("YYYYMMDD"));
  162 + });
156 163 });
157 164 });
158 165 </script>
... ...
src/main/resources/static/pages/forms/statement/historyMessage.html
... ... @@ -168,8 +168,8 @@
168 168 $('#forms tbody').html(tbodyHtml);
169 169 });
170 170 });
171   - $("#export").click(function(){
172   - $('#forms').tableExport({ type: 'excel', escape: 'false' });
  171 + $("#export").on("click",function(){
  172 + $('#forms').tableExport({ type: 'excel', escape: 'false',filename:'(2016-02-29_2016-03-06)'});
173 173 });
174 174  
175 175 });
... ... @@ -191,7 +191,4 @@
191 191 <td colspan="7"><h6 class="muted">没有找到相关数据</h6></td>
192 192 </tr>
193 193 {{/if}}
194   -</script>
195   -
196   -<script src="/pages/forms/statement/js/tableExport.js"></script>
197   -<script src="/pages/forms/statement/js/jquery.base64.js"></script>
198 194 \ No newline at end of file
  195 +</script>
199 196 \ No newline at end of file
... ...
src/main/resources/static/pages/forms/statement/js/tableExport.js
1   -/*The MIT License (MIT)
2   -
3   -Copyright (c) 2014 https://github.com/kayalshri/
4   -
5   -Permission is hereby granted, free of charge, to any person obtaining a copy
6   -of this software and associated documentation files (the "Software"), to deal
7   -in the Software without restriction, including without limitation the rights
8   -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9   -copies of the Software, and to permit persons to whom the Software is
10   -furnished to do so, subject to the following conditions:
11   -
12   -The above copyright notice and this permission notice shall be included in
13   -all copies or substantial portions of the Software.
14   -
15   -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16   -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17   -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18   -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19   -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20   -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21   -THE SOFTWARE.*/
22   -
  1 +// 此函数引用自: http://www.alloyteam.com/2014/01/use-js-file-download/
  2 +function downloadFile(fileName, content){
  3 + var aLink = document.createElement('a');
  4 + var blob = new Blob([content]);
  5 + var evt = document.createEvent("HTMLEvents");
  6 + evt.initEvent("click", false, false);//initEvent 不加后两个参数在FF下会报错, 感谢 Barret Lee 的反馈
  7 + aLink.download = fileName;
  8 + aLink.href = URL.createObjectURL(blob);
  9 + aLink.dispatchEvent(evt);
  10 +}
  11 +
  12 +
23 13 (function($){
24   - $.fn.extend({
25   - tableExport: function(options) {
26   - var defaults = {
27   - separator: ',',
28   - ignoreColumn: [],
29   - tableName:'yourTableName',
30   - type:'csv',
31   - pdfFontSize:14,
32   - pdfLeftMargin:20,
33   - escape:'true',
34   - htmlContent:'false',
35   - consoleLog:'false'
36   - };
37   -
38   - var options = $.extend(defaults, options);
39   - var el = this;
40   -
41   - if(defaults.type == 'csv' || defaults.type == 'txt'){
42   -
43   - // Header
44   - var tdData ="";
45   - $(el).find('thead').find('tr').each(function() {
46   - tdData += "\n";
47   - $(this).filter(':visible').find('th').each(function(index,data) {
48   - if ($(this).css('display') != 'none'){
49   - if(defaults.ignoreColumn.indexOf(index) == -1){
50   - tdData += '"' + parseString($(this)) + '"' + defaults.separator;
51   - }
52   - }
53   -
54   - });
55   - tdData = $.trim(tdData);
56   - tdData = $.trim(tdData).substring(0, tdData.length -1);
57   - });
58   -
59   - // Row vs Column
60   - $(el).find('tbody').find('tr').each(function() {
61   - tdData += "\n";
62   - $(this).filter(':visible').find('td').each(function(index,data) {
63   - if ($(this).css('display') != 'none'){
64   - if(defaults.ignoreColumn.indexOf(index) == -1){
65   - tdData += '"'+ parseString($(this)) + '"'+ defaults.separator;
66   - }
67   - }
68   - });
69   - //tdData = $.trim(tdData);
70   - tdData = $.trim(tdData).substring(0, tdData.length -1);
71   - });
72   -
73   - //output
74   - if(defaults.consoleLog == 'true'){
75   - console.log(tdData);
76   - }
77   - var base64data = "base64," + $.base64.encode(tdData);
78   - window.open('data:application/'+defaults.type+';filename=exportData;' + base64data);
79   - }else if(defaults.type == 'sql'){
80   -
81   - // Header
82   - var tdData ="INSERT INTO `"+defaults.tableName+"` (";
83   - $(el).find('thead').find('tr').each(function() {
84   -
85   - $(this).filter(':visible').find('th').each(function(index,data) {
86   - if ($(this).css('display') != 'none'){
87   - if(defaults.ignoreColumn.indexOf(index) == -1){
88   - tdData += '`' + parseString($(this)) + '`,' ;
89   - }
90   - }
91   -
92   - });
93   - tdData = $.trim(tdData);
94   - tdData = $.trim(tdData).substring(0, tdData.length -1);
95   - });
96   - tdData += ") VALUES ";
97   - // Row vs Column
98   - $(el).find('tbody').find('tr').each(function() {
99   - tdData += "(";
100   - $(this).filter(':visible').find('td').each(function(index,data) {
101   - if ($(this).css('display') != 'none'){
102   - if(defaults.ignoreColumn.indexOf(index) == -1){
103   - tdData += '"'+ parseString($(this)) + '",';
104   - }
105   - }
106   - });
107   -
108   - tdData = $.trim(tdData).substring(0, tdData.length -1);
109   - tdData += "),";
110   - });
111   - tdData = $.trim(tdData).substring(0, tdData.length -1);
112   - tdData += ";";
113   -
114   - //output
115   - //console.log(tdData);
116   -
117   - if(defaults.consoleLog == 'true'){
118   - console.log(tdData);
119   - }
120   -
121   - var base64data = "base64," + $.base64.encode(tdData);
122   - window.open('data:application/sql;filename=exportData;' + base64data);
123   -
124   -
125   - }else if(defaults.type == 'json'){
126   -
127   - var jsonHeaderArray = [];
128   - $(el).find('thead').find('tr').each(function() {
129   - var tdData ="";
130   - var jsonArrayTd = [];
131   -
132   - $(this).filter(':visible').find('th').each(function(index,data) {
133   - if ($(this).css('display') != 'none'){
134   - if(defaults.ignoreColumn.indexOf(index) == -1){
135   - jsonArrayTd.push(parseString($(this)));
136   - }
137   - }
138   - });
139   - jsonHeaderArray.push(jsonArrayTd);
140   -
141   - });
142   -
143   - var jsonArray = [];
144   - $(el).find('tbody').find('tr').each(function() {
145   - var tdData ="";
146   - var jsonArrayTd = [];
147   -
148   - $(this).filter(':visible').find('td').each(function(index,data) {
149   - if ($(this).css('display') != 'none'){
150   - if(defaults.ignoreColumn.indexOf(index) == -1){
151   - jsonArrayTd.push(parseString($(this)));
152   - }
153   - }
154   - });
155   - jsonArray.push(jsonArrayTd);
156   -
157   - });
158   -
159   - var jsonExportArray =[];
160   - jsonExportArray.push({header:jsonHeaderArray,data:jsonArray});
161   -
162   - //Return as JSON
163   - //console.log(JSON.stringify(jsonExportArray));
164   -
165   - //Return as Array
166   - //console.log(jsonExportArray);
167   - if(defaults.consoleLog == 'true'){
168   - console.log(JSON.stringify(jsonExportArray));
169   - }
170   - var base64data = "base64," + $.base64.encode(JSON.stringify(jsonExportArray));
171   - window.open('data:application/json;filename=exportData;' + base64data);
172   - }else if(defaults.type == 'xml'){
173   -
174   - var xml = '<?xml version="1.0" encoding="utf-8"?>';
175   - xml += '<tabledata><fields>';
176   - // Header
177   - $(el).find('thead').find('tr').each(function() {
178   - $(this).filter(':visible').find('th').each(function(index,data) {
179   - if ($(this).css('display') != 'none'){
180   - if(defaults.ignoreColumn.indexOf(index) == -1){
181   - xml += "<field>" + parseString($(this)) + "</field>";
182   - }
183   - }
184   - });
185   - });
186   - xml += '</fields><data>';
187   -
188   - // Row Vs Column
189   - var rowCount=1;
190   - $(el).find('tbody').find('tr').each(function() {
191   - xml += '<row id="'+rowCount+'">';
192   - var colCount=0;
193   - $(this).filter(':visible').find('td').each(function(index,data) {
194   - if ($(this).css('display') != 'none'){
195   - if(defaults.ignoreColumn.indexOf(index) == -1){
196   - xml += "<column-"+colCount+">"+parseString($(this))+"</column-"+colCount+">";
197   - }
198   - }
199   - colCount++;
200   - });
201   - rowCount++;
202   - xml += '</row>';
203   - });
204   - xml += '</data></tabledata>'
205   -
206   - if(defaults.consoleLog == 'true'){
207   - console.log(xml);
208   - }
209   -
210   - var base64data = "base64," + $.base64.encode(xml);
211   - window.open('data:application/xml;filename=exportData;' + base64data);
212   - }else if(defaults.type == 'excel' || defaults.type == 'doc'|| defaults.type == 'powerpoint' ){
213   - //console.log($(this).html());
214   - var excel="<table>";
215   - // Header
216   - $(el).find('thead').find('tr').each(function() {
217   - excel += "<tr>";
218   - $(this).filter(':visible').find('th').each(function(index,data) {
219   - if ($(this).css('display') != 'none'){
220   - if(defaults.ignoreColumn.indexOf(index) == -1){
221   - excel += "<td>" + parseString($(this))+ "</td>";
222   - }
223   - }
224   - });
225   - excel += '</tr>';
226   -
227   - });
228   -
229   -
230   - // Row Vs Column
231   - var rowCount=1;
232   - $(el).find('tbody').find('tr').each(function() {
233   - excel += "<tr>";
234   - var colCount=0;
235   - $(this).filter(':visible').find('td').each(function(index,data) {
236   - if ($(this).css('display') != 'none'){
237   - if(defaults.ignoreColumn.indexOf(index) == -1){
238   - excel += "<td>"+parseString($(this))+"</td>";
239   - }
240   - }
241   - colCount++;
242   - });
243   - rowCount++;
244   - excel += '</tr>';
245   - });
246   - excel += '</table>'
247   -
248   - if(defaults.consoleLog == 'true'){
249   - console.log(excel);
250   - }
251   -
252   - var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:"+defaults.type+"' xmlns='http://www.w3.org/TR/REC-html40'>";
253   - excelFile += "<head>";
254   - excelFile += "<!--[if gte mso 9]>";
255   - excelFile += "<xml>";
256   - excelFile += "<x:ExcelWorkbook>";
257   - excelFile += "<x:ExcelWorksheets>";
258   - excelFile += "<x:ExcelWorksheet>";
259   - excelFile += "<x:Name>";
260   - excelFile += "{worksheet}";
261   - excelFile += "</x:Name>";
262   - excelFile += "<x:WorksheetOptions>";
263   - excelFile += "<x:DisplayGridlines/>";
264   - excelFile += "</x:WorksheetOptions>";
265   - excelFile += "</x:ExcelWorksheet>";
266   - excelFile += "</x:ExcelWorksheets>";
267   - excelFile += "</x:ExcelWorkbook>";
268   - excelFile += "</xml>";
269   - excelFile += "<![endif]-->";
270   - excelFile += "</head>";
271   - excelFile += "<body>";
272   - excelFile += excel;
273   - excelFile += "</body>";
274   - excelFile += "</html>";
275   - var base64data = "base64," + $.base64({ data: excelFile, type: 0 });
276   - window.open('data:application/vnd.ms-'+defaults.type+';filename=exportData.doc;' + base64data);
277   -
278   - }else if(defaults.type == 'png'){
279   - html2canvas($(el), {
280   - onrendered: function(canvas) {
281   - var img = canvas.toDataURL("image/png");
282   - window.open(img);
283   -
284   -
285   - }
286   - });
287   - }else if(defaults.type == 'pdf'){
288   -
289   - var doc = new jsPDF('p','pt', 'a4', true);
290   - doc.setFontSize(defaults.pdfFontSize);
291   -
292   - // Header
293   - var startColPosition=defaults.pdfLeftMargin;
294   - $(el).find('thead').find('tr').each(function() {
295   - $(this).filter(':visible').find('th').each(function(index,data) {
296   - if ($(this).css('display') != 'none'){
297   - if(defaults.ignoreColumn.indexOf(index) == -1){
298   - var colPosition = startColPosition+ (index * 50);
299   - doc.text(colPosition,20, parseString($(this)));
300   - }
301   - }
302   - });
303   - });
304   -
305   -
306   - // Row Vs Column
307   - var startRowPosition = 20; var page =1;var rowPosition=0;
308   - $(el).find('tbody').find('tr').each(function(index,data) {
309   - rowCalc = index+1;
310   -
311   - if (rowCalc % 26 == 0){
312   - doc.addPage();
313   - page++;
314   - startRowPosition=startRowPosition+10;
315   - }
316   - rowPosition=(startRowPosition + (rowCalc * 10)) - ((page -1) * 280);
317   -
318   - $(this).filter(':visible').find('td').each(function(index,data) {
319   - if ($(this).css('display') != 'none'){
320   - if(defaults.ignoreColumn.indexOf(index) == -1){
321   - var colPosition = startColPosition+ (index * 50);
322   - doc.text(colPosition,rowPosition, parseString($(this)));
  14 + $.fn.extend({
  15 + tableExport: function(options) {
  16 + var defaults = {
  17 + separator: ',',
  18 + ignoreColumn: [],
  19 + tableName:'yourTableName',
  20 + type:'csv',
  21 + pdfFontSize:14,
  22 + pdfLeftMargin:20,
  23 + escape:'true',
  24 + htmlContent:'false',
  25 + consoleLog:'false'
  26 + };
  27 +
  28 + var options = $.extend(defaults, options);
  29 + var el = this;
  30 +
  31 + if(defaults.type == 'csv' || defaults.type == 'txt'){
  32 +
  33 + // Header
  34 + var tdData ="";
  35 + $(el).find('thead').find('tr').each(function() {
  36 + tdData += "\n";
  37 + $(this).filter(':visible').find('th').each(function(index,data) {
  38 + if ($(this).css('display') != 'none'){
  39 + if(defaults.ignoreColumn.indexOf(index) == -1){
  40 + tdData += '"' + parseString($(this)) + '"' + defaults.separator;
  41 + }
  42 + }
  43 +
  44 + });
  45 + tdData = $.trim(tdData);
  46 + tdData = $.trim(tdData).substring(0, tdData.length -1);
  47 + });
  48 +
  49 + // Row vs Column
  50 + $(el).find('tbody').find('tr').each(function() {
  51 + tdData += "\n";
  52 + $(this).filter(':visible').find('td').each(function(index,data) {
  53 + if ($(this).css('display') != 'none'){
  54 + if(defaults.ignoreColumn.indexOf(index) == -1){
  55 + tdData += '"'+ parseString($(this)) + '"'+ defaults.separator;
  56 + }
  57 + }
  58 + });
  59 + //tdData = $.trim(tdData);
  60 + tdData = $.trim(tdData).substring(0, tdData.length -1);
  61 + });
  62 +
  63 + //output
  64 + if(defaults.consoleLog == 'true'){
  65 + console.log(tdData);
  66 + }
  67 + var base64data = "base64," + $.base64({ data: tdData, type: 0 });
  68 + //window.open('data:application/'+defaults.type+';filename=exportData;' + base64data);
  69 + downloadFile(defaults.filename + '.' + defaults.type, tdData);
  70 + }else if(defaults.type == 'sql'){
  71 +
  72 + // Header
  73 + var tdData ="INSERT INTO `"+defaults.tableName+"` (";
  74 + $(el).find('thead').find('tr').each(function() {
  75 +
  76 + $(this).filter(':visible').find('th').each(function(index,data) {
  77 + if ($(this).css('display') != 'none'){
  78 + if(defaults.ignoreColumn.indexOf(index) == -1){
  79 + tdData += '`' + parseString($(this)) + '`,' ;
  80 + }
  81 + }
  82 +
  83 + });
  84 + tdData = $.trim(tdData);
  85 + tdData = $.trim(tdData).substring(0, tdData.length -1);
  86 + });
  87 + tdData += ") VALUES ";
  88 + // Row vs Column
  89 + $(el).find('tbody').find('tr').each(function() {
  90 + tdData += "(";
  91 + $(this).filter(':visible').find('td').each(function(index,data) {
  92 + if ($(this).css('display') != 'none'){
  93 + if(defaults.ignoreColumn.indexOf(index) == -1){
  94 + tdData += '"'+ parseString($(this)) + '",';
  95 + }
  96 + }
  97 + });
  98 +
  99 + tdData = $.trim(tdData).substring(0, tdData.length -1);
  100 + tdData += "),";
  101 + });
  102 + tdData = $.trim(tdData).substring(0, tdData.length -1);
  103 + tdData += ";";
  104 +
  105 + //output
  106 + //console.log(tdData);
  107 +
  108 + if(defaults.consoleLog == 'true'){
  109 + console.log(tdData);
  110 + }
  111 +
  112 + var base64data = "base64," + $.base64.encode(tdData);
  113 + window.open('data:application/sql;filename=exportData;' + base64data);
  114 +
  115 +
  116 + }else if(defaults.type == 'json'){
  117 +
  118 + var jsonHeaderArray = [];
  119 + $(el).find('thead').find('tr').each(function() {
  120 + var tdData ="";
  121 + var jsonArrayTd = [];
  122 +
  123 + $(this).filter(':visible').find('th').each(function(index,data) {
  124 + if ($(this).css('display') != 'none'){
  125 + if(defaults.ignoreColumn.indexOf(index) == -1){
  126 + jsonArrayTd.push(parseString($(this)));
  127 + }
  128 + }
  129 + });
  130 + jsonHeaderArray.push(jsonArrayTd);
  131 +
  132 + });
  133 +
  134 + var jsonArray = [];
  135 + $(el).find('tbody').find('tr').each(function() {
  136 + var tdData ="";
  137 + var jsonArrayTd = [];
  138 +
  139 + $(this).filter(':visible').find('td').each(function(index,data) {
  140 + if ($(this).css('display') != 'none'){
  141 + if(defaults.ignoreColumn.indexOf(index) == -1){
  142 + jsonArrayTd.push(parseString($(this)));
  143 + }
  144 + }
  145 + });
  146 + jsonArray.push(jsonArrayTd);
  147 +
  148 + });
  149 +
  150 + var jsonExportArray =[];
  151 + jsonExportArray.push({header:jsonHeaderArray,data:jsonArray});
  152 +
  153 + //Return as JSON
  154 + //console.log(JSON.stringify(jsonExportArray));
  155 +
  156 + //Return as Array
  157 + //console.log(jsonExportArray);
  158 + if(defaults.consoleLog == 'true'){
  159 + console.log(JSON.stringify(jsonExportArray));
  160 + }
  161 + var base64data = "base64," + $.base64.encode(JSON.stringify(jsonExportArray));
  162 + window.open('data:application/json;filename=exportData;' + base64data);
  163 + }else if(defaults.type == 'xml'){
  164 +
  165 + var xml = '<?xml version="1.0" encoding="utf-8"?>';
  166 + xml += '<tabledata><fields>';
  167 + // Header
  168 + $(el).find('thead').find('tr').each(function() {
  169 + $(this).filter(':visible').find('th').each(function(index,data) {
  170 + if ($(this).css('display') != 'none'){
  171 + if(defaults.ignoreColumn.indexOf(index) == -1){
  172 + xml += "<field>" + parseString($(this)) + "</field>";
  173 + }
  174 + }
  175 + });
  176 + });
  177 + xml += '</fields><data>';
  178 +
  179 + // Row Vs Column
  180 + var rowCount=1;
  181 + $(el).find('tbody').find('tr').each(function() {
  182 + xml += '<row id="'+rowCount+'">';
  183 + var colCount=0;
  184 + $(this).filter(':visible').find('td').each(function(index,data) {
  185 + if ($(this).css('display') != 'none'){
  186 + if(defaults.ignoreColumn.indexOf(index) == -1){
  187 + xml += "<column-"+colCount+">"+parseString($(this))+"</column-"+colCount+">";
  188 + }
  189 + }
  190 + colCount++;
  191 + });
  192 + rowCount++;
  193 + xml += '</row>';
  194 + });
  195 + xml += '</data></tabledata>'
  196 +
  197 + if(defaults.consoleLog == 'true'){
  198 + console.log(xml);
  199 + }
  200 +
  201 + var base64data = "base64," + $.base64.encode(xml);
  202 + window.open('data:application/xml;filename=exportData;' + base64data);
  203 + }else if(defaults.type == 'excel' || defaults.type == 'doc'|| defaults.type == 'powerpoint' ){
  204 + //console.log($(this).html());
  205 + var excel="<table>";
  206 + // Header
  207 + $(el).find('thead').find('tr').each(function() {
  208 + excel += "<tr>";
  209 + $(this).filter(':visible').find('th').each(function(index,data) {
  210 + if ($(this).css('display') != 'none'){
  211 + if(defaults.ignoreColumn.indexOf(index) == -1){
  212 + excel += "<td>" + parseString($(this))+ "</td>";
  213 + }
  214 + }
  215 + });
  216 + excel += '</tr>';
  217 +
  218 + });
  219 +
  220 +
  221 + // Row Vs Column
  222 + var rowCount=1;
  223 + $(el).find('tbody').find('tr').each(function() {
  224 + excel += "<tr>";
  225 + var colCount=0;
  226 + $(this).filter(':visible').find('td').each(function(index,data) {
  227 + if ($(this).css('display') != 'none'){
  228 + if(defaults.ignoreColumn.indexOf(index) == -1){
  229 + excel += "<td>"+parseString($(this))+"</td>";
  230 + }
  231 + }
  232 + colCount++;
  233 + });
  234 + rowCount++;
  235 + excel += '</tr>';
  236 + });
  237 + excel += '</table>'
  238 +
  239 + if(defaults.consoleLog == 'true'){
  240 + console.log(excel);
  241 + }
  242 +
  243 + var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:"+defaults.type+"' xmlns='http://www.w3.org/TR/REC-html40'>";
  244 + excelFile += "<head>";
  245 + excelFile += "<!--[if gte mso 9]>";
  246 + excelFile += "<xml>";
  247 + excelFile += "<x:ExcelWorkbook>";
  248 + excelFile += "<x:ExcelWorksheets>";
  249 + excelFile += "<x:ExcelWorksheet>";
  250 + excelFile += "<x:Name>";
  251 + excelFile += "{worksheet}";
  252 + excelFile += "</x:Name>";
  253 + excelFile += "<x:WorksheetOptions>";
  254 + excelFile += "<x:DisplayGridlines/>";
  255 + excelFile += "</x:WorksheetOptions>";
  256 + excelFile += "</x:ExcelWorksheet>";
  257 + excelFile += "</x:ExcelWorksheets>";
  258 + excelFile += "</x:ExcelWorkbook>";
  259 + excelFile += "</xml>";
  260 + excelFile += "<![endif]-->";
  261 + excelFile += "</head>";
  262 + excelFile += "<body>";
  263 + excelFile += excel;
  264 + excelFile += "</body>";
  265 + excelFile += "</html>";
  266 + var base64data = "base64," + $.base64({ data: excelFile, type: 0 });
  267 +
  268 + if(defaults.type == "doc") {
  269 + window.open('data:application/msword;filename=exportData.'+defaults.type+';' + base64data);
  270 + }
  271 + else {
  272 + window.open('data:application/vnd.ms-'+defaults.type+';filename=exportData.'+defaults.type+';' + base64data);
  273 + }
  274 + }else if(defaults.type == 'png'){
  275 + html2canvas($(el), {
  276 + onrendered: function(canvas) {
  277 + var img = canvas.toDataURL("image/png");
  278 + window.open(img);
  279 +
  280 +
  281 + }
  282 + });
  283 + }else if(defaults.type == 'pdf'){
  284 +
  285 + var doc = new jsPDF('p','pt', 'a4', true);
  286 + doc.setFontSize(defaults.pdfFontSize);
  287 +
  288 + // Header
  289 + var startColPosition=defaults.pdfLeftMargin;
  290 + $(el).find('thead').find('tr').each(function() {
  291 + $(this).filter(':visible').find('th').each(function(index,data) {
  292 + if ($(this).css('display') != 'none'){
  293 + if(defaults.ignoreColumn.indexOf(index) == -1){
  294 + var colPosition = startColPosition+ (index * 50);
  295 + doc.text(colPosition,20, parseString($(this)));
  296 + }
  297 + }
  298 + });
  299 + });
  300 +
  301 +
  302 + // Row Vs Column
  303 + var startRowPosition = 20; var page =1;var rowPosition=0;
  304 + $(el).find('tbody').find('tr').each(function(index,data) {
  305 + rowCalc = index+1;
  306 +
  307 + if (rowCalc % 26 == 0){
  308 + doc.addPage();
  309 + page++;
  310 + startRowPosition=startRowPosition+10;
  311 + }
  312 + rowPosition=(startRowPosition + (rowCalc * 10)) - ((page -1) * 280);
  313 +
  314 + $(this).filter(':visible').find('td').each(function(index,data) {
  315 + if ($(this).css('display') != 'none'){
  316 + if(defaults.ignoreColumn.indexOf(index) == -1){
  317 + var colPosition = startColPosition+ (index * 50);
  318 + doc.text(colPosition,rowPosition, parseString($(this)));
  319 + }
  320 + }
  321 +
  322 + });
  323 +
  324 + });
  325 +
  326 + // Output as Data URI
  327 + doc.output('datauri');
  328 +
  329 + }
  330 +
  331 +
  332 + function parseString(data){
  333 +
  334 + if(defaults.htmlContent == 'true'){
  335 + content_data = data.html().trim();
  336 + }else{
  337 + content_data = data.text().trim();
  338 + }
  339 +
  340 + if(defaults.escape == 'true'){
  341 + content_data = escape(content_data);
  342 + }
  343 +
  344 +
  345 +
  346 + return content_data;
  347 + }
  348 +
323 349 }
324   - }
325   -
326   - });
327   -
328   - });
329   -
330   - // Output as Data URI
331   - doc.output('datauri');
332   -
333   - }
334   -
335   -
336   - function parseString(data){
337   -
338   - if(defaults.htmlContent == 'true'){
339   - content_data = data.html().trim();
340   - }else{
341   - content_data = data.text().trim();
342   - }
343   -
344   - if(defaults.escape == 'true'){
345   - content_data = escape(content_data);
346   - }
347   -
348   -
349   -
350   - return content_data;
351   - }
352   -
353   - }
354   - });
355   - })(jQuery);
356   -
  350 + });
  351 +})(jQuery);
357 352 \ No newline at end of file
... ...
src/main/resources/static/pages/forms/statement/scheduleDaily_minhang.html 0 → 100644
  1 +<style type="text/css">
  2 + .table-bordered {
  3 + border: 1px solid; }
  4 + .table-bordered > thead > tr > th,
  5 + .table-bordered > thead > tr > td,
  6 + .table-bordered > tbody > tr > th,
  7 + .table-bordered > tbody > tr > td,
  8 + .table-bordered > tfoot > tr > th,
  9 + .table-bordered > tfoot > tr > td {
  10 + border: 1px solid; }
  11 + .table-bordered > thead > tr > th,
  12 + .table-bordered > thead > tr > td {
  13 + border-bottom-width: 2px; }
  14 +
  15 + .table > tbody + tbody {
  16 + border-top: 1px solid; }
  17 +</style>
  18 +
  19 +<div class="page-head">
  20 + <div class="page-title">
  21 + <h1>调度日报</h1>
  22 + </div>
  23 +</div>
  24 +
  25 +<div class="row">
  26 + <div class="col-md-12">
  27 + <div class="portlet light porttlet-fit bordered">
  28 + <div class="portlet-title">
  29 + <form class="form-inline" action="">
  30 + <div style="display: inline-block;">
  31 + <span class="item-label" style="width: 80px;">线路: </span>
  32 + <select class="form-control" name="line" id="line" style="width: 180px;"></select>
  33 + </div>
  34 + <div style="display: inline-block;margin-left: 15px;">
  35 + <span class="item-label" style="width: 80px;">时间: </span>
  36 + <input class="form-control" type="text" id="date" style="width: 180px;"/>
  37 + </div>
  38 + <div class="form-group">
  39 + <input class="btn btn-default" type="button" id="query" value="查询"/>
  40 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  41 + </div>
  42 + </form>
  43 + </div>
  44 + <div class="portlet-body">
  45 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
  46 + <table class="table table-bordered table-hover table-checkable" id="forms">
  47 + <thead>
  48 + <tr>
  49 + <th colspan="40">线路调度日报</th>
  50 + </tr>
  51 + <tr>
  52 + <td rowspan="3">路线别</td>
  53 + <td colspan="15">全日营运里程(公里)</td>
  54 + <td colspan="15">全日营运班次</td>
  55 + <td colspan="9">大间隔情况</td>
  56 + </tr>
  57 + <tr>
  58 + <td rowspan="2">计划</td>
  59 + <td rowspan="2">实驶</td>
  60 + <td rowspan="2">少驶</td>
  61 + <td colspan="11">少驶原因(公里)</td>
  62 + <td rowspan="2">临加公里</td>
  63 + <td colspan="3">计划班次</td>
  64 + <td colspan="3">实际班次</td>
  65 + <td colspan="3">临加班次</td>
  66 + <td colspan="3">放站班次</td>
  67 + <td colspan="3">调头班次</td>
  68 + <td colspan="3">发生次数</td>
  69 + <td rowspan="2">最大间隔时间(秒)</td>
  70 + <td colspan="5" rowspan="2">原因</td>
  71 + </tr>
  72 + <tr>
  73 + <td>路阻</td>
  74 + <td>吊慢</td>
  75 + <td>故障</td>
  76 + <td>纠纷</td>
  77 + <td>肇事</td>
  78 + <td>缺人</td>
  79 + <td>缺车</td>
  80 + <td>客稀</td>
  81 + <td>气候</td>
  82 + <td>援外</td>
  83 + <td>其他</td>
  84 + <td>全日</td>
  85 + <td>6:31~8:30</td>
  86 + <td>16:01~18:00</td>
  87 + <td>全日</td>
  88 + <td>6:31~8:30</td>
  89 + <td>16:01~18:00</td>
  90 + <td>全日</td>
  91 + <td>6:31~8:30</td>
  92 + <td>16:01~18:00</td>
  93 + <td>全日</td>
  94 + <td>6:31~8:30</td>
  95 + <td>16:01~18:00</td>
  96 + <td>全日</td>
  97 + <td>6:31~8:30</td>
  98 + <td>16:01~18:00</td>
  99 + <td>全日</td>
  100 + <td>6:31~8:30</td>
  101 + <td>16:01~18:00</td>
  102 + </tr>
  103 + </thead>
  104 + <tr>
  105 + <td colspan="40">&nbsp;</td>
  106 + </tr>
  107 + <tr>
  108 + <td colspan="40">合计</td>
  109 + </tr>
  110 + <tr>
  111 + <td colspan="40">&nbsp;</td>
  112 + </tr>
  113 + <tr>
  114 + <td colspan="2">班次</td>
  115 + <td colspan="2">车号</td>
  116 + <td>司早</td>
  117 + <td>售早</td>
  118 + <td>司晚</td>
  119 + <td>售晚</td>
  120 + <td colspan="2">班次</td>
  121 + <td colspan="2">车号</td>
  122 + <td>司早</td>
  123 + <td>售早</td>
  124 + <td>司晚</td>
  125 + <td>售晚</td>
  126 + <td colspan="2">班次</td>
  127 + <td colspan="2">车号</td>
  128 + <td>司早</td>
  129 + <td>售早</td>
  130 + <td>司晚</td>
  131 + <td>售晚</td>
  132 + <td colspan="2">班次</td>
  133 + <td colspan="2">车号</td>
  134 + <td>司早</td>
  135 + <td>售早</td>
  136 + <td>司晚</td>
  137 + <td>售晚</td>
  138 + <td colspan="2">班次</td>
  139 + <td colspan="2">车号</td>
  140 + <td>司早</td>
  141 + <td>售早</td>
  142 + <td>司晚</td>
  143 + <td>售晚</td>
  144 + </tr>
  145 + <tr>
  146 + <td colspan="40">&nbsp;</td>
  147 + </tr>
  148 + <tr>
  149 + <td rowspan="2">路牌</td>
  150 + <td colspan="2" rowspan="2">起点站</td>
  151 + <td colspan="4">到达时间</td>
  152 + <td colspan="4">发车时间</td>
  153 + <td colspan="2" rowspan="2">备注</td>
  154 + <td rowspan="2">路牌</td>
  155 + <td colspan="2" rowspan="2">起点站</td>
  156 + <td colspan="4">到达时间</td>
  157 + <td colspan="4">发车时间</td>
  158 + <td colspan="2" rowspan="2">备注</td>
  159 + <td rowspan="2">路牌</td>
  160 + <td colspan="2" rowspan="2">起点站</td>
  161 + <td colspan="4">到达时间</td>
  162 + <td colspan="4">发车时间</td>
  163 + <td colspan="2" rowspan="2">备注</td>
  164 + <td>&nbsp;</td>
  165 + </tr>
  166 + <tr>
  167 + <td>应到</td>
  168 + <td>实到</td>
  169 + <td>快</td>
  170 + <td>慢</td>
  171 + <td>应发</td>
  172 + <td>实发</td>
  173 + <td>快</td>
  174 + <td>慢</td>
  175 + <td>应到</td>
  176 + <td>实到</td>
  177 + <td>快</td>
  178 + <td>慢</td>
  179 + <td>应发</td>
  180 + <td>实发</td>
  181 + <td>快</td>
  182 + <td>慢</td>
  183 + <td>应到</td>
  184 + <td>实到</td>
  185 + <td>快</td>
  186 + <td>慢</td>
  187 + <td>应发</td>
  188 + <td>实发</td>
  189 + <td>快</td>
  190 + <td>慢</td>
  191 + <td>&nbsp;</td>
  192 + </tr>
  193 + <tbody>
  194 +
  195 + </tbody>
  196 + </table>
  197 + </div>
  198 + </div>
  199 + </div>
  200 + </div>
  201 +</div>
  202 +
  203 +<script>
  204 + $(function(){
  205 + // 关闭左侧栏
  206 + if (!$('body').hasClass('page-sidebar-closed'))
  207 + $('.menu-toggler.sidebar-toggler').click();
  208 +
  209 + $("#date").datetimepicker({
  210 + format : 'YYYY-MM-DD',
  211 + locale : 'zh-cn'
  212 + });
  213 +
  214 + $('#line').select2({
  215 + ajax: {
  216 + url: '/realSchedule/findLine',
  217 + dataType: 'json',
  218 + delay: 150,
  219 + data: function(params){
  220 + return{line: params.term};
  221 + },
  222 + processResults: function (data) {
  223 + return {
  224 + results: data
  225 + };
  226 + },
  227 + cache: true
  228 + },
  229 + templateResult: function(repo){
  230 + if (repo.loading) return repo.text;
  231 + var h = '<span>'+repo.text+'</span>';
  232 + return h;
  233 + },
  234 + escapeMarkup: function (markup) { return markup; },
  235 + minimumInputLength: 1,
  236 + templateSelection: function(repo){
  237 + return repo.text;
  238 + },
  239 + language: {
  240 + noResults: function(){
  241 + return '<span style="color:red;font-size: 12px;">没有搜索到线路!</span>';
  242 + },
  243 + inputTooShort : function(e) {
  244 + return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入线路搜索线路</span>';
  245 + },
  246 + searching : function() {
  247 + return '<span style="color:gray;font-size: 12px;"> 正在搜索线路...</span>';
  248 + }
  249 + }
  250 + });
  251 +
  252 + //查询
  253 + $("#query").on('click',function(){
  254 + var line = $("#line").val();
  255 + var date = $("#date").val();
  256 + $.get('/realSchedule/scheduleDaily',{line:line,date:date},function(result){
  257 +
  258 + });
  259 + });
  260 + });
  261 +</script>
  262 +<script type="text/html" id="list_forms">
  263 + {{each list as obj i}}
  264 + <tr>
  265 +
  266 + </tr>
  267 + {{/each}}
  268 + {{if list.length == 0}}
  269 + <tr>
  270 + <td colspan="6"><h6 class="muted">没有找到相关数据</h6></td>
  271 + </tr>
  272 + {{/if}}
  273 +</script>
0 274 \ No newline at end of file
... ...
src/main/resources/static/pages/forms/statement/scheduleRealDaily.html 0 → 100644
  1 +<style type="text/css">
  2 + .table-bordered {
  3 + border: 1px solid; }
  4 + .table-bordered > thead > tr > th,
  5 + .table-bordered > thead > tr > td,
  6 + .table-bordered > tbody > tr > th,
  7 + .table-bordered > tbody > tr > td,
  8 + .table-bordered > tfoot > tr > th,
  9 + .table-bordered > tfoot > tr > td {
  10 + border: 1px solid; }
  11 + .table-bordered > thead > tr > th,
  12 + .table-bordered > thead > tr > td {
  13 + border-bottom-width: 2px; }
  14 +
  15 + .table > tbody + tbody {
  16 + border-top: 1px solid; }
  17 +</style>
  18 +
  19 +<div class="page-head">
  20 + <div class="page-title">
  21 + <h1>计划实际日报</h1>
  22 + </div>
  23 +</div>
  24 +
  25 +<div class="row">
  26 + <div class="col-md-12">
  27 + <div class="portlet light porttlet-fit bordered">
  28 + <div class="portlet-title">
  29 + <form class="form-inline" action="">
  30 + <div style="display: inline-block;">
  31 + <span class="item-label" style="width: 80px;">线路: </span>
  32 + <select class="form-control" name="line" id="line" style="width: 180px;"></select>
  33 + </div>
  34 + <div style="display: inline-block;margin-left: 15px;">
  35 + <span class="item-label" style="width: 80px;">时间: </span>
  36 + <input class="form-control" type="text" id="date" style="width: 180px;"/>
  37 + </div>
  38 + <div class="form-group">
  39 + <input class="btn btn-default" type="button" id="query" value="筛选"/>
  40 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  41 + </div>
  42 + </form>
  43 + </div>
  44 + <div class="portlet-body">
  45 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
  46 + <table class="table table-bordered table-hover table-checkable" id="forms">
  47 + <thead>
  48 + <tr>
  49 + <th colspan="7">计划实际日报</th>
  50 + </tr>
  51 + <tr>
  52 + <td>路线:</td>
  53 + <td colspan="2"><span id="form_line">&nbsp;</span></td>
  54 + <td>时间:</td>
  55 + <td colspan="3"><span id="form_date">&nbsp;</span></td>
  56 + </tr>
  57 + <tr>
  58 + <td>计划里程</td>
  59 + <td>实际计划里程</td>
  60 + <td>营运里程</td>
  61 + <td>空驶里程</td>
  62 + <td>抽减里程</td>
  63 + <td>增加里程</td>
  64 + <td>总里程</td>
  65 + <td>计划班次</td>
  66 + <td>实际计划班次</td>
  67 + <td>抽减班次</td>
  68 + <td>增加班次</td>
  69 + <td>实际班次</td>
  70 + </tr>
  71 + </thead>
  72 + <tbody class="scheduleRealDaily">
  73 +
  74 + </tbody>
  75 + </table>
  76 + </div>
  77 + </div>
  78 + </div>
  79 + </div>
  80 +</div>
  81 +
  82 +<script>
  83 + $(function(){
  84 + // 关闭左侧栏
  85 + if (!$('body').hasClass('page-sidebar-closed'))
  86 + $('.menu-toggler.sidebar-toggler').click();
  87 +
  88 + $("#date").datetimepicker({
  89 + format : 'YYYY-MM-DD',
  90 + locale : 'zh-cn'
  91 + });
  92 +
  93 + $('#line').select2({
  94 + ajax: {
  95 + url: '/realSchedule/findLine',
  96 + dataType: 'json',
  97 + delay: 150,
  98 + data: function(params){
  99 + return{line: params.term};
  100 + },
  101 + processResults: function (data) {
  102 + return {
  103 + results: data
  104 + };
  105 + },
  106 + cache: true
  107 + },
  108 + templateResult: function(repo){
  109 + if (repo.loading) return repo.text;
  110 + var h = '<span>'+repo.text+'</span>';
  111 + return h;
  112 + },
  113 + escapeMarkup: function (markup) { return markup; },
  114 + minimumInputLength: 1,
  115 + templateSelection: function(repo){
  116 + return repo.text;
  117 + },
  118 + language: {
  119 + noResults: function(){
  120 + return '<span style="color:red;font-size: 12px;">没有搜索到线路!</span>';
  121 + },
  122 + inputTooShort : function(e) {
  123 + return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入线路搜索线路</span>';
  124 + },
  125 + searching : function() {
  126 + return '<span style="color:gray;font-size: 12px;"> 正在搜索线路...</span>';
  127 + }
  128 + }
  129 + });
  130 +
  131 + var line;
  132 + var date;
  133 + $("#query").on("click",function(){
  134 + line = $("#line").val();
  135 + date = $("#date").val();
  136 +
  137 + });
  138 + });
  139 +</script>
  140 +<script type="text/html" id="scheduleRealDaily">
  141 + {{each list as obj i}}
  142 + <tr>
  143 + <td></td>
  144 + </tr>
  145 + {{/each}}
  146 + {{if list.length == 0}}
  147 + <tr>
  148 + <td colspan="7"><h6 class="muted">没有找到相关数据</h6></td>
  149 + </tr>
  150 + {{/if}}
  151 +</script>
0 152 \ No newline at end of file
... ...
src/main/resources/static/pages/forms/statement/statisticsDaily .html
... ... @@ -200,7 +200,18 @@
200 200 return '<span style="color:gray;font-size: 12px;"> 正在搜索线路...</span>';
201 201 }
202 202 }
203   - });
  203 + });
  204 + $("#query").on("click",function(){
  205 + var line = $("#line").val();
  206 + var xlName = $("#line").text();
  207 + var date = $("#date").val();
  208 + $get('/realSchedule/statisticsDaily',{line:line,date:date,xlName:xlName},function(result){
  209 + // 把数据填充到模版中
  210 + var tbodyHtml = template('list_account',{list:result});
  211 + // 把渲染好的模版html文本追加到表格中
  212 + $('#forms tbody').html(tbodyHtml);
  213 + });
  214 + });
204 215 });
205 216 </script>
206 217 <script type="text/html" id="list_forms">
... ...
src/main/resources/static/pages/forms/statement/waybill.html
... ... @@ -99,6 +99,7 @@
99 99 $('#line').select2({
100 100 ajax: {
101 101 url: '/realSchedule/findLine',
  102 + type: 'post',
102 103 dataType: 'json',
103 104 delay: 150,
104 105 data: function(params){
... ... @@ -165,18 +166,18 @@
165 166 $get('/realSchedule/'+id,null,function(result){
166 167 result.scheduleDate = moment(result.scheduleDate).format("YYYY/MM/DD");
167 168 var ludan_1 = template('ludan_1',result);
168   - var ludan_4 = template('ludan_4',result);
  169 + //var ludan_4 = template('ludan_4',result);
169 170 // 把渲染好的模版html文本追加到表格中
170 171 $('#forms .ludan_1').append(ludan_1);
171   - $('#forms .ludan_4').append(ludan_4);
  172 + //$('#forms .ludan_4').append(ludan_4);
172 173 });
173   - $get('/realSchedule/queryListWaybill',{jName:jName,clZbh:params[1],lpName:params[2]},function(result){
  174 + $post('/realSchedule/queryListWaybill',{jName:jName,clZbh:params[1],lpName:params[2]},function(result){
174 175 getTime(result);
175 176 var ludan_2 = template('ludan_2',{list:result});
176 177 // 把渲染好的模版html文本追加到表格中
177 178 $('#forms .ludan_2').append(ludan_2);
178 179 });
179   - $get('/realSchedule/findKMBC',{jName:jName,clZbh:params[1],lpName:params[2]},function(result){
  180 + $post('/realSchedule/findKMBC',{jName:jName,clZbh:params[1],lpName:params[2]},function(result){
180 181 var ludan_3 = template('ludan_3',result);
181 182 $('#forms .ludan_3').append(ludan_3);
182 183 });
... ... @@ -184,8 +185,8 @@
184 185 });
185 186  
186 187 $("#export").on("click",function(){
187   - $get('/realSchedule/exportWaybill',{jName:jName,clZbh:params[1],lpName:params[2]},function(result){
188   - window.open("/downloadFile/download?jName="+jName+"&lpName="+params[2]);
  188 + $post('/realSchedule/exportWaybill',{jName:jName,clZbh:params[1],lpName:params[2]},function(result){
  189 + window.open("/downloadFile/download?fileName="+jName);
189 190 });
190 191 });
191 192  
... ... @@ -198,11 +199,11 @@
198 199 if(obj.zdsj != null && obj.zdsjActual != null ){
199 200 var zdsjActual = (obj.zdsjActual).split(":");
200 201 var zdsj = (obj.zdsj).split(":");
201   - if(zdsjActual[0]*60+zdsjActual[1] > zdsj[0]*60+zdsj[1]){
202   - obj["slow"] = (zdsjActual[0]*60+zdsjActual[1]) - (zdsj[0]*60+zdsj[1]);
  202 + if(zdsjActual[0]*60+Number(zdsjActual[1]) > zdsj[0]*60+Number(zdsj[1])){
  203 + obj["slow"] = (zdsjActual[0]*60+Number(zdsjActual[1])) - (zdsj[0]*60+Number(zdsj[1]));
203 204 }
204   - else{
205   - obj["fast"] = (zdsj[0]*60+zdsj[1]) - (zdsjActual[0]*60+zdsjActual[1]);
  205 + else if(zdsjActual[0]*60+Number(zdsjActual[1]) < zdsj[0]*60+Number(zdsj[1])){
  206 + obj["fast"] = (zdsj[0]*60+Number(zdsj[1])) - (zdsjActual[0]*60+Number(zdsjActual[1]));
206 207 }
207 208 }
208 209 });
... ... @@ -228,7 +229,7 @@
228 229 <td colspan="14">行车路单</td>
229 230 </tr>
230 231 <tr>
231   - <td colspan="14">路别:{{xlName}} 路牌:{{lpName}} 车号:{{clZbh}} 出场时间:{{ccTime}} 到达站名:{{zdzName}} 当班调派:&nbsp; 日期:{{scheduleDate}}</td>
  232 + <td colspan="14">路别:{{xlName}} 路牌:{{lpName}} 车号:{{clZbh}} 出场时间:{{fcsjActual}} 到达站名:{{zdzName}} 当班调派:&nbsp; 日期:{{scheduleDate}}</td>
232 233 </tr>
233 234 <tr>
234 235 <td colspan="2">出场存油 &nbsp;升</td>
... ...
src/main/resources/static/pages/forms/statement/waybill_minhang.html 0 → 100644
  1 +<style type="text/css">
  2 + .table-bordered {
  3 + border: 1px solid; }
  4 + .table-bordered > thead > tr > th,
  5 + .table-bordered > thead > tr > td,
  6 + .table-bordered > tbody > tr > th,
  7 + .table-bordered > tbody > tr > td,
  8 + .table-bordered > tfoot > tr > th,
  9 + .table-bordered > tfoot > tr > td {
  10 + border: 1px solid; }
  11 + .table-bordered > thead > tr > th,
  12 + .table-bordered > thead > tr > td {
  13 + border-bottom-width: 2px; }
  14 +
  15 + .table > tbody + tbody {
  16 + border-top: 1px solid; }
  17 +</style>
  18 +
  19 +<div class="page-head">
  20 + <div class="page-title">
  21 + <h1>行车路单</h1>
  22 + </div>
  23 +</div>
  24 +
  25 +<div class="row">
  26 + <div class="col-md-12">
  27 + <div class="portlet light porttlet-fit bordered">
  28 + <div class="portlet-title">
  29 + <form class="form-inline" action="">
  30 + <div style="display: inline-block;">
  31 + <span class="item-label" style="width: 80px;">线路: </span>
  32 + <select class="form-control" name="line" id="line" style="width: 180px;"></select>
  33 + </div>
  34 + <div style="display: inline-block;margin-left: 15px;">
  35 + <span class="item-label" style="width: 80px;">时间: </span>
  36 + <input class="form-control" type="text" id="date" style="width: 180px;"/>
  37 + </div>
  38 + <div class="form-group" style="display: inline-block;margin-left: 15px;">
  39 + <input class="btn btn-default" type="button" id="query" value="查询"/>
  40 + <input class="btn btn-default" type="button" id="export" value="导出"/>
  41 + <input class="btn btn-default" type="button" id="print" value="打印"/>
  42 + <input class="btn btn-default" type="button" id="exportMore" value="批量导出"/>
  43 + </div>
  44 + </form>
  45 + </div>
  46 + <div class="portlet-body">
  47 + <div class="row">
  48 + <div class="col-md-3">
  49 + <div class="" style="margin-top: 10px;overflow:auto;height: 860px">
  50 + <table class="table table-bordered table-hover table-checkable pre-scrollable" id="info">
  51 + <thead>
  52 + <tr class="hidden">
  53 + <th>人员</th>
  54 + <th>自编号</th>
  55 + <th>路牌</th>
  56 + </tr>
  57 + </thead>
  58 + <tbody>
  59 +
  60 + </tbody>
  61 + </table>
  62 + </div>
  63 + </div>
  64 + <div class="col-md-9" id="printArea">
  65 + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px">
  66 + <table class="table table-bordered table-checkable" id="forms">
  67 + <tbody class="ludan_1">
  68 +
  69 + </tbody>
  70 + <tbody class="ludan_2">
  71 +
  72 + </tbody>
  73 + <tbody class="ludan_3">
  74 +
  75 + </tbody>
  76 + <tbody class="ludan_4">
  77 +
  78 + </tbody>
  79 + </table>
  80 + </div>
  81 + </div>
  82 + </div>
  83 + </div>
  84 + </div>
  85 + </div>
  86 +</div>
  87 +
  88 +<script>
  89 + $(function(){
  90 + // 关闭左侧栏
  91 + if (!$('body').hasClass('page-sidebar-closed'))
  92 + $('.menu-toggler.sidebar-toggler').click();
  93 +
  94 + $("#date").datetimepicker({
  95 + format : 'YYYY-MM-DD',
  96 + locale : 'zh-cn'
  97 + });
  98 +
  99 + $('#line').select2({
  100 + ajax: {
  101 + url: '/realSchedule/findLine',
  102 + dataType: 'json',
  103 + delay: 150,
  104 + data: function(params){
  105 + return{line: params.term};
  106 + },
  107 + processResults: function (data) {
  108 + return {
  109 + results: data
  110 + };
  111 + },
  112 + cache: true
  113 + },
  114 + templateResult: function(repo){
  115 + if (repo.loading) return repo.text;
  116 + var h = '<span>'+repo.text+'</span>';
  117 + return h;
  118 + },
  119 + escapeMarkup: function (markup) { return markup; },
  120 + minimumInputLength: 1,
  121 + templateSelection: function(repo){
  122 + return repo.text;
  123 + },
  124 + language: {
  125 + noResults: function(){
  126 + return '<span style="color:red;font-size: 12px;">没有搜索到线路!</span>';
  127 + },
  128 + inputTooShort : function(e) {
  129 + return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入线路搜索线路</span>';
  130 + },
  131 + searching : function() {
  132 + return '<span style="color:gray;font-size: 12px;"> 正在搜索线路...</span>';
  133 + }
  134 + }
  135 + });
  136 +
  137 + $("#query").on("click",function(){
  138 + var line = $("#line").val();
  139 + var date = $("#date").val();
  140 + $(".hidden").removeClass("hidden");
  141 + $get('/realSchedule/queryUserInfo',{line:line,date:date},function(result){
  142 + // 把数据填充到模版中
  143 + var tbodyHtml = template('list_info',{list:result});
  144 + // 把渲染好的模版html文本追加到表格中
  145 + $('#info tbody').html(tbodyHtml);
  146 + });
  147 + });
  148 +
  149 + var params = {};
  150 + var jName;
  151 + $("#info tbody").on("click","tr",function(){
  152 + $('#forms .ludan_1').html('');
  153 + $('#forms .ludan_2').html('');
  154 + $('#forms .ludan_3').html('');
  155 + $('#forms .ludan_4').html('');
  156 + if($(this).children().size() < 2){
  157 + return;
  158 + }
  159 +
  160 + $(this).children().each(function(index){
  161 + params[index] = $(this).text();
  162 + });
  163 + jName = params[0].split("\\")[0];
  164 + var id = $("#"+params[1]).val();
  165 + $get('/realSchedule/'+id,null,function(result){
  166 + result.scheduleDate = moment(result.scheduleDate).format("YYYY/MM/DD");
  167 + var ludan_1 = template('ludan_1',result);
  168 + //var ludan_4 = template('ludan_4',result);
  169 + // 把渲染好的模版html文本追加到表格中
  170 + $('#forms .ludan_1').append(ludan_1);
  171 + //$('#forms .ludan_4').append(ludan_4);
  172 + });
  173 + $get('/realSchedule/queryListWaybill',{jName:jName,clZbh:params[1],lpName:params[2]},function(result){
  174 + getTime(result);
  175 + var ludan_2 = template('ludan_2',{list:result});
  176 + // 把渲染好的模版html文本追加到表格中
  177 + $('#forms .ludan_2').append(ludan_2);
  178 + });
  179 + $get('/realSchedule/findKMBC',{jName:jName,clZbh:params[1],lpName:params[2]},function(result){
  180 + var ludan_3 = template('ludan_3',result);
  181 + $('#forms .ludan_3').append(ludan_3);
  182 + });
  183 +
  184 + });
  185 +
  186 + $("#export").on("click",function(){
  187 + $get('/realSchedule/exportWaybill',{jName:jName,clZbh:params[1],lpName:params[2]},function(result){
  188 + window.open("/downloadFile/download?fileName="+jName);
  189 + });
  190 + });
  191 +
  192 + $("#print").click(function(){
  193 + $("#printArea").printArea();
  194 + });
  195 +
  196 + function getTime(list){
  197 + $.each(list, function(i, obj) {
  198 + if(obj.zdsj != null && obj.zdsjActual != null ){
  199 + var zdsjActual = (obj.zdsjActual).split(":");
  200 + var zdsj = (obj.zdsj).split(":");
  201 + if(zdsjActual[0]*60+Number(zdsjActual[1]) > zdsj[0]*60+Number(zdsj[1])){
  202 + obj["slow"] = (zdsjActual[0]*60+Number(zdsjActual[1])) - (zdsj[0]*60+Number(zdsj[1]));
  203 + }
  204 + else if(zdsjActual[0]*60+Number(zdsjActual[1]) < zdsj[0]*60+Number(zdsj[1])){
  205 + obj["fast"] = (zdsj[0]*60+Number(zdsj[1])) - (zdsjActual[0]*60+Number(zdsjActual[1]));
  206 + }
  207 + }
  208 + });
  209 + }
  210 + });
  211 +</script>
  212 +<script type="text/html" id="list_info">
  213 + {{each list as obj i}}
  214 + <tr>
  215 + <td width="45%">{{obj.jName}}\{{obj.jGh}}</td>
  216 + <td width="32%">{{obj.clZbh}}</td>
  217 + <td width="23%">{{obj.lpName}}<input type="hidden" id="{{obj.clZbh}}" value="{{obj.id}}"></td>
  218 + </tr>
  219 + {{/each}}
  220 + {{if list.length == 0}}
  221 + <tr>
  222 + <td colspan="3"><h6 class="muted">没有找到相关数据</h6></td>
  223 + </tr>
  224 + {{/if}}
  225 +</script>
  226 +<script type="text/html" id="ludan_1">
  227 + <tr>
  228 + <td colspan="13">行车路单</td>
  229 + </tr>
  230 + <tr>
  231 + <td colspan="13">路别:{{xlName}} 路牌:{{lpName}} 车号:{{clZbh}} 出场时间:{{fcsjActual}} 到达站名:{{zdzName}} 当班调度:&nbsp; 日期:{{scheduleDate}} 本日耗油:&nbsp;升</td>
  232 + </tr>
  233 +<!--
  234 + <tr>
  235 + <td rowspan="2">调度章</td>
  236 + <td colspan="1">&nbsp;</td>
  237 + <td rowspan="2">早班</td>
  238 + <td colspan="1">&nbsp;</td>
  239 + <td rowspan="2">夜班</td>
  240 + <td colspan="1">&nbsp;</td>
  241 + <td rowspan="2" colspan="2">交叉</td>
  242 + <td colspan="2">&nbsp;</td>
  243 + <td rowspan="2">其他</td>
  244 + <td colspan="1">&nbsp;</td>
  245 + <td colspan="1">&nbsp;</td>
  246 + <td colspan="1">&nbsp;</td>
  247 + </tr>
  248 + <tr>
  249 + <td colspan="1">&nbsp;</td>
  250 + <td colspan="1">&nbsp;</td>
  251 + <td colspan="1">&nbsp;</td>
  252 + <td colspan="2">&nbsp;</td>
  253 + <td colspan="1">&nbsp;</td>
  254 + <td colspan="1">&nbsp;</td>
  255 + <td colspan="1">&nbsp;</td>
  256 + </tr>
  257 +-->
  258 + <tr>
  259 + <td rowspan="2">车次</td>
  260 + <td colspan="2">工号</td>
  261 + <!-- <td rowspan="2">公里耗油</td> -->
  262 + <td colspan="2">起讫站</td>
  263 + <td colspan="4">时间</td>
  264 + <td colspan="2">误点</td>
  265 + <td rowspan="2" width="66px">里程(公里)计划</td>
  266 + <td rowspan="2">备注</td>
  267 + </tr>
  268 + <tr>
  269 + <td colspan="1" width="60px">司&nbsp;机</td>
  270 + <td colspan="1" width="60px">售&nbsp;票</td>
  271 + <td colspan="1">起点</td>
  272 + <td colspan="1">终点</td>
  273 + <td colspan="1">计发</td>
  274 + <td colspan="1">实发</td>
  275 + <td colspan="1">应到</td>
  276 + <td colspan="1">实到</td>
  277 + <td colspan="1">快</td>
  278 + <td colspan="1">慢</td>
  279 + </tr>
  280 +</script>
  281 +<script type="text/html" id="ludan_2">
  282 + {{each list as obj i}}
  283 + <tr>
  284 + <td>{{i+1}}</td>
  285 + <td>{{obj.jName}}</td>
  286 + <td>{{obj.sName}}</td>
  287 + <td>{{obj.qdzName}}</td>
  288 + <td>{{obj.zdzName}}</td>
  289 + <td>{{obj.fcsj}}</td>
  290 + <td>{{obj.fcsjActual}}</td>
  291 + <td>{{obj.zdsj}}</td>
  292 + <td>{{obj.zdsjActual}}</td>
  293 + <td>{{obj.fast}}</td>
  294 + <td>{{obj.slow}}</td>
  295 + <td>{{obj.jhlc}}</td>
  296 + <td>{{obj.remarks}}</td>
  297 + </tr>
  298 + {{/each}}
  299 + {{if list.length == 0}}
  300 + <tr>
  301 + <td colspan="13"><h6 class="muted">没有找到相关数据</h6></td>
  302 + </tr>
  303 + {{/if}}
  304 +</script>
  305 +<script type="text/html" id="ludan_3">
  306 + <tr>
  307 + <td colspan="2">计划公里</td>
  308 + <td>{{jhlc}}</td>
  309 + <td>抽减公里</td>
  310 + <td>{{remMileage}}</td>
  311 + <td colspan="2">增加公里</td>
  312 + <td>{{addMileage}}</td>
  313 + <td colspan="2">实际计划公里</td>
  314 + <td colspan="3">{{jhlc}}</td>
  315 + </tr>
  316 + <tr>
  317 + <td colspan="2">营运公里</td>
  318 + <td>{{realMileage}}</td>
  319 + <td>空驶公里</td>
  320 + <td>{{ksgl}}</td>
  321 + <td colspan="2">总公里</td>
  322 + <td>{{realMileage}}</td>
  323 + <td colspan="2">计划班次</td>
  324 + <td colspan="3">{{jhbc}}</td>
  325 + </tr>
  326 + <tr>
  327 + <td colspan="2">抽减班次</td>
  328 + <td>{{cjbc}}</td>
  329 + <td>增加班次</td>
  330 + <td>{{ljbc}}</td>
  331 + <td colspan="2">实际计划班次</td>
  332 + <td>{{jhbc}}</td>
  333 + <td colspan="2">实际班次</td>
  334 + <td colspan="3">{{sjbc}}</td>
  335 + </tr>
  336 +</script>
  337 +<script type="text/html" id="ludan_4">
  338 + <tr>
  339 + <td colspan="12">认真做好终点项目的例保保修工作,杜绝机械火警事故!</td>
  340 + <td>轮胎</td>
  341 + <td>&nbsp;</td>
  342 + </tr>
  343 + <tr>
  344 + <td colspan="3">重点例保项目</td>
  345 + <td>1</td>
  346 + <td>2</td>
  347 + <td>3</td>
  348 + <td colspan="3">重点例保项目</td>
  349 + <td>1</td>
  350 + <td>2</td>
  351 + <td>3</td>
  352 + <td>灭火机</td>
  353 + <td>&nbsp;</td>
  354 + </tr>
  355 + <tr>
  356 + <td colspan="3">各类制动</td>
  357 + <td>&nbsp;</td>
  358 + <td>&nbsp;</td>
  359 + <td>&nbsp;</td>
  360 + <td colspan="3">各类灯光</td>
  361 + <td>&nbsp;</td>
  362 + <td>&nbsp;</td>
  363 + <td>&nbsp;</td>
  364 + <td colspan="2">出场路码表里程</td>
  365 + </tr>
  366 + <tr>
  367 + <td colspan="3">方向机</td>
  368 + <td>&nbsp;</td>
  369 + <td>&nbsp;</td>
  370 + <td>&nbsp;</td>
  371 + <td colspan="3">各类仪表</td>
  372 + <td>&nbsp;</td>
  373 + <td>&nbsp;</td>
  374 + <td>&nbsp;</td>
  375 + <td colspan="2" rowspan="2">&nbsp;</td>
  376 + </tr>
  377 + <tr>
  378 + <td colspan="3">欠压报警器</td>
  379 + <td>&nbsp;</td>
  380 + <td>&nbsp;</td>
  381 + <td>&nbsp;</td>
  382 + <td colspan="3">各类皮带</td>
  383 + <td>&nbsp;</td>
  384 + <td>&nbsp;</td>
  385 + <td>&nbsp;</td>
  386 + </tr>
  387 + <tr>
  388 + <td colspan="3">发动机清洁及响声</td>
  389 + <td>&nbsp;</td>
  390 + <td>&nbsp;</td>
  391 + <td>&nbsp;</td>
  392 + <td colspan="3">油箱及托架</td>
  393 + <td>&nbsp;</td>
  394 + <td>&nbsp;</td>
  395 + <td>&nbsp;</td>
  396 + <td colspan="2">出场路码表里程</td>
  397 + </tr>
  398 + <tr>
  399 + <td colspan="3">地盘响声</td>
  400 + <td>&nbsp;</td>
  401 + <td>&nbsp;</td>
  402 + <td>&nbsp;</td>
  403 + <td colspan="3">轮胎、半轴螺栓螺母</td>
  404 + <td>&nbsp;</td>
  405 + <td>&nbsp;</td>
  406 + <td>&nbsp;</td>
  407 + <td colspan="2" rowspan="3">&nbsp;</td>
  408 + </tr>
  409 + <tr>
  410 + <td colspan="3">化油器及油路</td>
  411 + <td>&nbsp;</td>
  412 + <td>&nbsp;</td>
  413 + <td>&nbsp;</td>
  414 + <td colspan="3">油、电、水、气</td>
  415 + <td>&nbsp;</td>
  416 + <td>&nbsp;</td>
  417 + <td>&nbsp;</td>
  418 + </tr>
  419 + <tr>
  420 + <td colspan="3">进排歧管及排气管</td>
  421 + <td>&nbsp;</td>
  422 + <td>&nbsp;</td>
  423 + <td>&nbsp;</td>
  424 + <td colspan="3">内外车身及附件</td>
  425 + <td>&nbsp;</td>
  426 + <td>&nbsp;</td>
  427 + <td>&nbsp;</td>
  428 + </tr>
  429 + <tr>
  430 + <td colspan="14">1 首次出场,2 复使中途,3 某次进场。√正常,ⓧ报修,×尚未报修</td>
  431 + </tr>
  432 +</script>
0 433 \ No newline at end of file
... ...
src/main/resources/static/pages/permission/user/add.html
... ... @@ -19,7 +19,7 @@
19 19 </div>
20 20 </div>
21 21 <div class="portlet-body form">
22   - <form action="/resource" class="form-horizontal" id="resource_add_form" >
  22 + <form action="/addUser" class="form-horizontal" id="user_add_form" >
23 23 <div class="alert alert-danger display-hide">
24 24 <button class="close" data-close="alert"></button>
25 25 您的输入有误,请检查下面的输入项
... ... @@ -41,7 +41,7 @@
41 41 <div class="form-group">
42 42 <label class="col-md-3 control-label">密码</label>
43 43 <div class="col-md-4">
44   - <input type="password" class="form-control" name="password" >
  44 + <input type="password" class="form-control" id="password" name="password" >
45 45 <span class="help-block"> 请输入6位以上密码</span>
46 46 </div>
47 47 </div>
... ... @@ -62,8 +62,8 @@
62 62 <div class="form-group">
63 63 <label class="col-md-3 control-label">角色</label>
64 64 <div class="col-md-4">
65   - <select class="form-control" name="role[]" style="width: 160px;" multiple="multiple">
66   - <option>请选择...</option>
  65 + <select class="form-control" id="role" name="roles[]" style="width: 160px;" multiple="multiple">
  66 +
67 67 </select>
68 68 </div>
69 69 </div>
... ... @@ -72,7 +72,7 @@
72 72 <label class="col-md-3 control-label">是否启用</label>
73 73 <div class="col-md-4">
74 74 <div class="input-group">
75   - <select class="form-control" name="enable" style="width: 160px;">
  75 + <select class="form-control" name="enabled" style="width: 160px;">
76 76 <option value="1">可用</option>
77 77 <option value="0">禁用</option>
78 78 </select>
... ... @@ -93,5 +93,88 @@
93 93 </div>
94 94 </div>
95 95 <script>
96   -
  96 + $(function(){
  97 + $get('/role/all',null,function(result){
  98 + $.each(result,function(i,obj){
  99 + $("#role").append("<option value='"+obj.id+"'>"+obj.roleName+"</option>");
  100 + });
  101 + });
  102 +
  103 + var form = $('#user_add_form');
  104 + var error = $('.alert-danger', form);
  105 +
  106 + //表单 validate
  107 + form.validate({
  108 + errorElement : 'span',
  109 + errorClass : 'help-block help-block-error',
  110 + focusInvalid : false,
  111 + rules : {
  112 + 'userName' : {
  113 + required : true,
  114 + maxlength: 25
  115 + },
  116 + 'name' : {
  117 + required : true,
  118 + maxlength: 25
  119 + },
  120 + 'password' : {
  121 + required : true,
  122 + minlength: 6,
  123 + maxlength: 25
  124 + },
  125 + 'cfmPassword' : {
  126 + equalTo: '#password'
  127 + },
  128 + 'role' : {
  129 + required : true,
  130 + minlength: 1
  131 + }
  132 + },
  133 + invalidHandler : function(event, validator) {
  134 + error.show();
  135 + App.scrollTo(error, -200);
  136 + },
  137 +
  138 + highlight : function(element) {
  139 + $(element).closest('.form-group').addClass('has-error');
  140 + },
  141 +
  142 + unhighlight : function(element) {
  143 + $(element).closest('.form-group').removeClass('has-error');
  144 + },
  145 +
  146 + success : function(label) {
  147 + label.closest('.form-group').removeClass('has-error');
  148 + },
  149 +
  150 + submitHandler : function(f) {
  151 + var params = form.serializeJSON();
  152 + error.hide();
  153 + console.log(params);
  154 +
  155 + //检查一下用户是否存在
  156 + $get('/user/all', {userName_eq: params.userName}, function(list){
  157 + if(!list || list.length == 0){
  158 + console.log(params);
  159 + $.ajax({
  160 + url: '/user',
  161 + type: 'POST',
  162 + traditional: true,
  163 + data: params,
  164 + success: function(res){
  165 + layer.msg('添加用户成功.');
  166 + loadPage('list.html');
  167 + }
  168 + });
  169 + /* $post('/user', params, function(res){
  170 + layer.msg('添加用户成功.');
  171 + loadPage('list.html');
  172 + }); */
  173 + }
  174 + else
  175 + layer.alert('用户【' + params.userName + '】已存在', {icon: 2, title: '提交被拒绝'});
  176 + });
  177 + }
  178 + });
  179 + });
97 180 </script>
98 181 \ No newline at end of file
... ...
src/main/resources/static/pages/permission/user/changePWD.html 0 → 100644
  1 +<div class="row">
  2 +<div class="col-md-12">
  3 +<!-- BEGIN VALIDATION STATES-->
  4 +<div class="portlet light portlet-fit portlet-form bordered">
  5 +<div class="portlet-body">
  6 + <form action="/user/changePWD" class="form-horizontal" id="changePWD">
  7 + <div class="form-group" style="margin-top: 60px">
  8 + <label class="control-label col-md-5">原始密码:
  9 + </label>
  10 + <div class="col-md-4">
  11 + <div class="input-icon right">
  12 + <i class="fa"></i>
  13 + <input type="password" class="form-control" name="oldPWD" /> </div>
  14 + </div>
  15 + </div>
  16 + <div class="form-group">
  17 + <label class="control-label col-md-5">输入新密码:
  18 + </label>
  19 + <div class="col-md-4">
  20 + <div class="input-icon right">
  21 + <i class="fa"></i>
  22 + <input type="password" class="form-control" name="newPWD" /> </div>
  23 + </div>
  24 + </div>
  25 + <div class="form-group">
  26 + <label class="control-label col-md-5">确认新密码:
  27 + </label>
  28 + <div class="col-md-4">
  29 + <div class="input-icon right">
  30 + <i class="fa"></i>
  31 + <input type="password" class="form-control" name="cnewPWD" /> </div>
  32 + </div>
  33 + </div>
  34 + <div class="form-actions">
  35 + <div class="row">
  36 + <div class="col-md-offset-5 col-md-7">
  37 + <button type="button" id="confirm" class="btn green">确定</button>
  38 + <button type="reset" class="btn default">取消</button>
  39 + </div>
  40 + </div>
  41 + </div>
  42 + </form>
  43 +</div>
  44 +</div>
  45 +</div>
  46 +</div>
  47 +
  48 +<script>
  49 +$(function(){
  50 + $("#confirm").on("click",function(){
  51 + $.get('/user/changePWD',null,function(){
  52 +
  53 + });
  54 + });
  55 +});
  56 +</script>
0 57 \ No newline at end of file
... ...
src/main/resources/static/pages/permission/user/list.html
... ... @@ -75,7 +75,7 @@
75 75 </td>
76 76 <td></td>
77 77 <td>
78   - <select class="form-control form-filter " name="enable_eq">
  78 + <select class="form-control form-filter " name="enabled_eq">
79 79 <option value="">请选择...</option>
80 80 <option value="1">可用</option>
81 81 <option value="0">禁用</option>
... ... @@ -132,7 +132,13 @@
132 132 <td>
133 133 {{obj.lastLoginDate}}
134 134 </td>
135   - <td><a href="edit.html?no={{obj.id}}" class="btn default blue-stripe btn-sm" data-pjax> 详细 </a></td>
  135 + <td>
  136 + {{if obj.enabled}}
  137 + <button type="button" onclick="changeEnabled({{obj.id}},0)" class="btn btn-warning btn-sm">禁用</button>
  138 + {{else}}
  139 + <button type="button" onclick="changeEnabled({{obj.id}},1)" class="btn btn-success btn-sm">启用</button>
  140 + {{/if}}
  141 + </td>
136 142 </tr>
137 143 {{/each}}
138 144 {{if list.length == 0}}
... ... @@ -252,4 +258,11 @@ $(function(){
252 258 });
253 259 });
254 260 });
  261 +//改变状态
  262 +function changeEnabled(id,enabled){
  263 + debugger
  264 + $get('/user/changeEnabled',{id:id,enabled:enabled},function(result){
  265 + jsDoQuery(null, true);
  266 + })
  267 +}
255 268 </script>
256 269 \ No newline at end of file
... ...
src/main/resources/static/pages/scheduleApp/module/common/dt/MyGuideboardGroupWrapTemplate.html 0 → 100644
  1 +<div name="{{$saGuideboardgroupCtrl.$name_attr}}"
  2 + ng-model="$saGuideboardgroupCtrl.$$internalmodel">
  3 +
  4 + <style>
  5 + .guideboard-select {
  6 + height: 180px;
  7 + border: 1px solid #ddd;
  8 + }
  9 + .guideboard-select .guideboard-input {
  10 + margin: 2px 5px 5px 5px;
  11 + padding-left: 0;
  12 + }
  13 + .guideboard-select .guideboard-select-cont {
  14 + text-align: left;
  15 + height: 100px;
  16 + padding-right: 0px;
  17 + }
  18 + .guideboard-select .guideboard-select-body {
  19 + margin-top: 10px;
  20 + overflow: auto;
  21 + width: auto;
  22 + height: 100px;
  23 + }
  24 + .guideboard-select .guideboard {
  25 + display: inline-block;
  26 + padding: 8px;
  27 + min-width: 85px;
  28 + text-align: center;
  29 + border: 1px solid #C1C1C1;
  30 + color: #666;
  31 + border-radius: 5px !important;
  32 + margin: 5px;
  33 + }
  34 + .guideboard-select .guideboard.active {
  35 + color: white;
  36 + background: #4095E8;
  37 + border: 1px solid #4095E8;
  38 + }
  39 +
  40 + </style>
  41 +
  42 + <div class="col-md-12 guideboard-select">
  43 + <div class="col-md-12 guideboard-input">
  44 + <div class="col-md-9">
  45 + 某某线路的路牌列表
  46 + </div>
  47 + </div>
  48 + <div class="col-md-12 guideboard-select-cont">
  49 + <div class="guideboard-select-body">
  50 + <div class="guideboard active">
  51 + 1
  52 + </div>
  53 + <div class="guideboard active">
  54 + 2
  55 + </div>
  56 + <div class="guideboard active">
  57 + 3
  58 + </div>
  59 + <div class="guideboard active">
  60 + 4
  61 + </div>
  62 + </div>
  63 + </div>
  64 + </div>
  65 +
  66 +
  67 +</div>
0 68 \ No newline at end of file
... ...
src/main/resources/static/pages/scheduleApp/module/core/employeeConfig/employeeConfig.js
... ... @@ -213,6 +213,11 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;EmployeeConfigFormCtrl&#39;, [&#39;EmployeeCon
213 213 self.submit = function() {
214 214 console.log(self.employeeConfigForSave);
215 215  
  216 + // 如果自对象没id值,设置成null
  217 + if (self.employeeConfigForSave.spy && !self.employeeConfigForSave.spy.id) {
  218 + self.employeeConfigForSave.spy = null;
  219 + }
  220 +
216 221 employeeConfigService.saveDetail(self.employeeConfigForSave).then(
217 222 function(result) {
218 223 // TODO:弹出框方式以后改
... ...