Commit 5fbc5d5d7757e38bdfac036de89830612b500011

Authored by 王通
1 parent c456e24b

1.

Too many changes to show.

To preserve performance only 7 of 16 files are displayed.

1 -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
2 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
3 -  
4 - <modelVersion>4.0.0</modelVersion>  
5 - <groupId>com.bsth</groupId>  
6 - <artifactId>bsth_control</artifactId>  
7 - <version>0.0.1-SNAPSHOT</version>  
8 - <packaging>jar</packaging>  
9 -  
10 - <parent>  
11 - <groupId>org.springframework.boot</groupId>  
12 - <artifactId>spring-boot-starter-parent</artifactId>  
13 - <version>1.3.3.RELEASE</version>  
14 - </parent>  
15 -  
16 - <dependencies>  
17 - <dependency>  
18 - <groupId>org.springframework.boot</groupId>  
19 - <artifactId>spring-boot-starter-web</artifactId>  
20 - </dependency>  
21 -  
22 - <dependency>  
23 - <groupId>org.springframework.boot</groupId>  
24 - <artifactId>spring-boot-starter-tomcat</artifactId>  
25 - <scope>provided</scope>  
26 - </dependency>  
27 - <dependency>  
28 - <groupId>javax.servlet</groupId>  
29 - <artifactId>javax.servlet-api</artifactId>  
30 - <version>3.1.0</version>  
31 - <scope>provided</scope>  
32 - </dependency>  
33 - <dependency>  
34 - <groupId>org.springframework.boot</groupId>  
35 - <artifactId>spring-boot-starter-security</artifactId>  
36 - </dependency>  
37 - <!-- <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId>  
38 - </dependency> -->  
39 - <dependency>  
40 - <groupId>org.springframework.boot</groupId>  
41 - <artifactId>spring-boot-starter-data-jpa</artifactId>  
42 - </dependency>  
43 - <dependency>  
44 - <groupId>org.springframework.boot</groupId>  
45 - <artifactId>spring-boot-starter-aop</artifactId>  
46 - </dependency>  
47 -  
48 - <dependency>  
49 - <groupId>org.springframework</groupId>  
50 - <artifactId>spring-context-support</artifactId>  
51 - </dependency>  
52 - <dependency>  
53 - <groupId>org.springframework.boot</groupId>  
54 - <artifactId>spring-boot-starter-redis</artifactId>  
55 - </dependency>  
56 - <dependency>  
57 - <groupId>org.springframework.boot</groupId>  
58 - <artifactId>spring-boot-starter-websocket</artifactId>  
59 - </dependency>  
60 - <dependency>  
61 - <groupId>mysql</groupId>  
62 - <artifactId>mysql-connector-java</artifactId>  
63 - </dependency>  
64 -  
65 - <dependency>  
66 - <groupId>joda-time</groupId>  
67 - <artifactId>joda-time</artifactId>  
68 - </dependency>  
69 - <dependency>  
70 - <groupId>com.alibaba</groupId>  
71 - <artifactId>fastjson</artifactId>  
72 - <version>1.2.4</version>  
73 - </dependency>  
74 -  
75 - <dependency>  
76 - <groupId>org.apache.httpcomponents</groupId>  
77 - <artifactId>httpclient</artifactId>  
78 - </dependency>  
79 -  
80 - <dependency>  
81 - <groupId>commons-dbcp</groupId>  
82 - <artifactId>commons-dbcp</artifactId>  
83 - </dependency>  
84 - <dependency>  
85 - <groupId>commons-lang</groupId>  
86 - <artifactId>commons-lang</artifactId>  
87 - <version>2.6</version>  
88 - </dependency>  
89 - <dependency>  
90 - <groupId>org.apache.commons</groupId>  
91 - <artifactId>commons-lang3</artifactId>  
92 - <version>3.4</version>  
93 - </dependency>  
94 - <dependency>  
95 - <groupId>commons-fileupload</groupId>  
96 - <artifactId>commons-fileupload</artifactId>  
97 - <version>1.2.2</version>  
98 - </dependency>  
99 - <dependency>  
100 - <groupId>commons-io</groupId>  
101 - <artifactId>commons-io</artifactId>  
102 - <version>2.4</version>  
103 - </dependency>  
104 - <dependency>  
105 - <groupId>org.codehaus.janino</groupId>  
106 - <artifactId>janino</artifactId>  
107 - </dependency>  
108 -  
109 - <dependency>  
110 - <groupId>org.apache.poi</groupId>  
111 - <artifactId>poi-ooxml</artifactId>  
112 - <version>3.13</version>  
113 - </dependency>  
114 -  
115 - <dependency>  
116 - <groupId>com.google.guava</groupId>  
117 - <artifactId>guava</artifactId>  
118 - <version>19.0</version>  
119 - </dependency>  
120 - <!-- ftp文件上传包 -->  
121 - <dependency>  
122 - <groupId>commons-net</groupId>  
123 - <artifactId>commons-net</artifactId>  
124 - <version>3.5</version>  
125 - </dependency>  
126 - <dependency>  
127 - <groupId>org.apache.commons</groupId>  
128 - <artifactId>commons-compress</artifactId>  
129 - <version>1.3</version>  
130 - </dependency>  
131 - <!-- drools 6依赖 -->  
132 - <dependency>  
133 - <groupId>org.kie</groupId>  
134 - <artifactId>kie-api</artifactId>  
135 - </dependency>  
136 - <dependency>  
137 - <groupId>org.drools</groupId>  
138 - <artifactId>drools-compiler</artifactId>  
139 - </dependency>  
140 -  
141 - <!-- springboot测试 -->  
142 - <dependency>  
143 - <groupId>org.springframework.boot</groupId>  
144 - <artifactId>spring-boot-starter-test</artifactId>  
145 - <scope>test</scope>  
146 - </dependency>  
147 -  
148 - <dependency>  
149 - <groupId>c3p0</groupId>  
150 - <artifactId>c3p0</artifactId>  
151 - <version>0.9.1.2</version>  
152 - </dependency>  
153 -  
154 - <!-- 图表 -->  
155 - <dependency>  
156 - <groupId>com.google.code.gson</groupId>  
157 - <artifactId>gson</artifactId>  
158 - <version>2.2.4</version>  
159 - </dependency>  
160 - <dependency>  
161 - <groupId>com.github.abel533</groupId>  
162 - <artifactId>ECharts</artifactId>  
163 - <version>2.1.8</version>  
164 - </dependency>  
165 -  
166 - <dependency>  
167 - <groupId>org.apache.tika</groupId>  
168 - <artifactId>tika-core</artifactId>  
169 - <version>1.7</version>  
170 - </dependency>  
171 -  
172 - <!-- pentaho kettle 依赖 -->  
173 - <dependency>  
174 - <groupId>com.pentaho.kettle</groupId>  
175 - <artifactId>kettle-core</artifactId>  
176 - <version>6.0.1.0-386</version>  
177 - </dependency>  
178 - <dependency>  
179 - <groupId>com.pentaho.kettle</groupId>  
180 - <artifactId>kettle-engine</artifactId>  
181 - <version>6.0.1.0-386</version>  
182 - </dependency>  
183 - <dependency>  
184 - <groupId>com.pentaho.kettle</groupId>  
185 - <artifactId>metastore</artifactId>  
186 - <version>6.0.1.0-386</version>  
187 - </dependency>  
188 - <dependency>  
189 - <groupId>com.pentaho.kettle</groupId>  
190 - <artifactId>vfs2</artifactId>  
191 - <version>2.1-20150824</version>  
192 - </dependency>  
193 - <dependency>  
194 - <groupId>net.sourceforge.jexcelapi</groupId>  
195 - <artifactId>jxl</artifactId>  
196 - <version>2.6.12</version>  
197 - <exclusions>  
198 - <exclusion>  
199 - <groupId>log4j</groupId>  
200 - <artifactId>log4j</artifactId>  
201 - </exclusion>  
202 - </exclusions>  
203 - </dependency>  
204 - <dependency>  
205 - <groupId>rhino</groupId>  
206 - <artifactId>js</artifactId>  
207 - <version>1.7R2</version>  
208 - </dependency>  
209 - <dependency>  
210 - <groupId>javax.mail</groupId>  
211 - <artifactId>mail</artifactId>  
212 - <version>1.4.7</version>  
213 - </dependency>  
214 -  
215 - <dependency>  
216 - <groupId>com.github.axet</groupId>  
217 - <artifactId>kaptcha</artifactId>  
218 - <version>0.0.9</version>  
219 - </dependency>  
220 -  
221 - <dependency>  
222 - <groupId>commons-codec</groupId>  
223 - <artifactId>commons-codec</artifactId>  
224 - <version>1.4</version>  
225 - <scope>compile</scope>  
226 - </dependency>  
227 - <dependency>  
228 - <groupId>org.bouncycastle</groupId>  
229 - <artifactId>bcprov-jdk15on</artifactId>  
230 - <version>1.52</version>  
231 - </dependency>  
232 - <dependency>  
233 - <groupId>axis</groupId>  
234 - <artifactId>axis</artifactId>  
235 - <version>1.4</version>  
236 - </dependency>  
237 - <dependency>  
238 - <groupId>javax.xml</groupId>  
239 - <artifactId>jaxrpc-api</artifactId>  
240 - <version>1.1</version>  
241 - </dependency>  
242 -  
243 - <dependency>  
244 - <groupId>org.apache.axis2</groupId>  
245 - <artifactId>axis2-adb</artifactId>  
246 - <version>1.7.4</version>  
247 - </dependency>  
248 - <dependency>  
249 - <groupId>org.apache.axis2</groupId>  
250 - <artifactId>axis2-transport-local</artifactId>  
251 - <version>1.7.4</version>  
252 - </dependency>  
253 - <dependency>  
254 - <groupId>org.apache.axis2</groupId>  
255 - <artifactId>axis2-transport-http</artifactId>  
256 - <version>1.7.4</version>  
257 - </dependency>  
258 -  
259 - <dependency>  
260 - <groupId>org.dbunit</groupId>  
261 - <artifactId>dbunit</artifactId>  
262 - <version>2.4.9</version>  
263 - <scope>test</scope>  
264 -  
265 - <exclusions>  
266 - <exclusion>  
267 - <groupId>org.slf4j</groupId>  
268 - <artifactId>slf4j-api</artifactId>  
269 - </exclusion>  
270 - </exclusions>  
271 - </dependency>  
272 -  
273 - <dependency>  
274 - <groupId>com.h2database</groupId>  
275 - <artifactId>h2</artifactId>  
276 - <version>1.2.132</version>  
277 - <scope>test</scope>  
278 - </dependency>  
279 -  
280 -  
281 - <dependency>  
282 - <groupId>ojdbc</groupId>  
283 - <artifactId>ojdbc</artifactId>  
284 - <version>14</version>  
285 - </dependency>  
286 -  
287 - <dependency>  
288 - <groupId>org.apache.mina</groupId>  
289 - <artifactId>mina-core</artifactId>  
290 - <version>2.0.13</version>  
291 - </dependency>  
292 -  
293 - <dependency>  
294 - <groupId>com.google.protobuf</groupId>  
295 - <artifactId>protobuf-java</artifactId>  
296 - <version>3.3.0</version>  
297 - </dependency>  
298 -  
299 - <dependency>  
300 - <groupId>com.github.stuxuhai</groupId>  
301 - <artifactId>jpinyin</artifactId>  
302 - <version>1.1.8</version>  
303 - </dependency>  
304 -  
305 - <!-- dubbo 需要的jar start -->  
306 - <dependency>  
307 - <groupId>com.alibaba</groupId>  
308 - <artifactId>dubbo</artifactId>  
309 - <!--<version>2.6.3</version>-->  
310 - <version>2.5.3</version>  
311 - <exclusions>  
312 - <exclusion>  
313 - <groupId>org.springframework</groupId>  
314 - <artifactId>spring</artifactId>  
315 - </exclusion>  
316 - <exclusion>  
317 - <groupId>log4j</groupId>  
318 - <artifactId>log4j</artifactId>  
319 - </exclusion>  
320 - </exclusions>  
321 - </dependency>  
322 -  
323 - <dependency>  
324 - <groupId>org.apache.zookeeper</groupId>  
325 - <artifactId>zookeeper</artifactId>  
326 - <version>3.4.5</version>  
327 - <exclusions>  
328 - <exclusion>  
329 - <groupId>log4j</groupId>  
330 - <artifactId>log4j</artifactId>  
331 - </exclusion>  
332 - <exclusion>  
333 - <groupId>org.slf4j</groupId>  
334 - <artifactId>slf4j-log4j12</artifactId>  
335 - </exclusion>  
336 - </exclusions>  
337 - </dependency>  
338 -  
339 - <dependency>  
340 - <groupId>com.101tec</groupId>  
341 - <artifactId>zkclient</artifactId>  
342 - <version>0.3</version>  
343 - <exclusions>  
344 - <exclusion>  
345 - <groupId>log4j</groupId>  
346 - <artifactId>log4j</artifactId>  
347 - </exclusion>  
348 - </exclusions>  
349 - </dependency>  
350 -  
351 - <!-- plan common工程依赖 -->  
352 - <dependency>  
353 - <groupId>com.bsth.control_v2</groupId>  
354 - <artifactId>plan_module-common</artifactId>  
355 - <version>1.0-SNAPSHOT</version>  
356 - </dependency>  
357 - <!-- plan common config 工程依赖 -->  
358 - <dependency>  
359 - <groupId>com.bsth.control_v2</groupId>  
360 - <artifactId>plan_module-common-config</artifactId>  
361 - <version>1.0-SNAPSHOT</version>  
362 - </dependency>  
363 - <!-- real common 依赖 -->  
364 - <dependency>  
365 - <groupId>com.bsth.control_v3</groupId>  
366 - <artifactId>real_module-common</artifactId>  
367 - <version>0.0.1-SNAPSHOT</version>  
368 - </dependency>  
369 - <dependency>  
370 - <groupId>org.slf4j</groupId>  
371 - <artifactId>slf4j-api</artifactId>  
372 - <version>1.7.7</version>  
373 - </dependency>  
374 - <dependency>  
375 - <groupId>ch.qos.logback</groupId>  
376 - <artifactId>logback-classic</artifactId>  
377 - <version>1.1.3</version>  
378 - </dependency>  
379 - <dependency>  
380 - <groupId>org.slf4j</groupId>  
381 - <artifactId>log4j-over-slf4j</artifactId>  
382 - <version>1.7.7</version>  
383 - </dependency>  
384 -  
385 - </dependencies>  
386 -  
387 - <dependencyManagement>  
388 - <dependencies>  
389 - <!-- drools 6依赖 -->  
390 - <dependency>  
391 - <groupId>org.drools</groupId>  
392 - <artifactId>drools-bom</artifactId>  
393 - <type>pom</type>  
394 - <version>6.3.0.Final</version>  
395 - <scope>import</scope>  
396 - </dependency>  
397 - </dependencies>  
398 - </dependencyManagement>  
399 -  
400 - <build>  
401 - <plugins>  
402 - <plugin>  
403 - <artifactId>maven-compiler-plugin</artifactId>  
404 - <version>2.3.2</version><!--$NO-MVN-MAN-VER$ -->  
405 - <configuration>  
406 - <source>1.7</source>  
407 - <target>1.7</target>  
408 - </configuration>  
409 - </plugin>  
410 - <plugin>  
411 - <artifactId>maven-war-plugin</artifactId>  
412 - <version>2.2</version><!--$NO-MVN-MAN-VER$ -->  
413 - <configuration>  
414 - <failOnMissingWebXml>false</failOnMissingWebXml>  
415 - </configuration>  
416 - </plugin>  
417 - <plugin>  
418 - <groupId>org.springframework.boot</groupId>  
419 - <artifactId>spring-boot-maven-plugin</artifactId>  
420 - </plugin>  
421 - </plugins>  
422 - <resources>  
423 - <resource>  
424 - <directory>src/main/resources</directory>  
425 - <filtering>false</filtering>  
426 - </resource>  
427 - </resources>  
428 - </build>  
429 - <repositories>  
430 - <repository>  
431 - <id>spring-snapshots</id>  
432 - <url>http://repo.spring.io/snapshot</url>  
433 - <snapshots>  
434 - <enabled>true</enabled>  
435 - </snapshots>  
436 - </repository>  
437 - <repository>  
438 - <id>spring-milestones</id>  
439 - <url>http://repo.spring.io/milestone</url>  
440 - </repository>  
441 - </repositories>  
442 - <pluginRepositories>  
443 - <pluginRepository>  
444 - <id>spring-snapshots</id>  
445 - <url>http://repo.spring.io/snapshot</url>  
446 - </pluginRepository>  
447 - <pluginRepository>  
448 - <id>spring-milestones</id>  
449 - <url>http://repo.spring.io/milestone</url>  
450 - </pluginRepository>  
451 - </pluginRepositories>  
452 -  
453 - <properties>  
454 - <start-class>com.bsth.Application</start-class>  
455 - </properties>  
456 -</project> 1 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3 +
  4 + <modelVersion>4.0.0</modelVersion>
  5 + <groupId>com.bsth</groupId>
  6 + <artifactId>bsth_control</artifactId>
  7 + <version>0.0.1-SNAPSHOT</version>
  8 + <packaging>war</packaging>
  9 +
  10 + <parent>
  11 + <groupId>org.springframework.boot</groupId>
  12 + <artifactId>spring-boot-starter-parent</artifactId>
  13 + <version>1.3.3.RELEASE</version>
  14 + </parent>
  15 +
  16 + <dependencies>
  17 + <dependency>
  18 + <groupId>org.springframework.boot</groupId>
  19 + <artifactId>spring-boot-starter-web</artifactId>
  20 + </dependency>
  21 +
  22 + <dependency>
  23 + <groupId>org.springframework.boot</groupId>
  24 + <artifactId>spring-boot-starter-tomcat</artifactId>
  25 + <scope>provided</scope>
  26 + </dependency>
  27 + <dependency>
  28 + <groupId>javax.servlet</groupId>
  29 + <artifactId>javax.servlet-api</artifactId>
  30 + <version>3.1.0</version>
  31 + <scope>provided</scope>
  32 + </dependency>
  33 + <dependency>
  34 + <groupId>org.springframework.boot</groupId>
  35 + <artifactId>spring-boot-starter-security</artifactId>
  36 + </dependency>
  37 + <!-- <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId>
  38 + </dependency> -->
  39 + <dependency>
  40 + <groupId>org.springframework.boot</groupId>
  41 + <artifactId>spring-boot-starter-data-jpa</artifactId>
  42 + </dependency>
  43 + <dependency>
  44 + <groupId>org.springframework.boot</groupId>
  45 + <artifactId>spring-boot-starter-aop</artifactId>
  46 + </dependency>
  47 +
  48 + <dependency>
  49 + <groupId>org.springframework</groupId>
  50 + <artifactId>spring-context-support</artifactId>
  51 + </dependency>
  52 + <dependency>
  53 + <groupId>org.springframework.boot</groupId>
  54 + <artifactId>spring-boot-starter-redis</artifactId>
  55 + </dependency>
  56 + <dependency>
  57 + <groupId>org.springframework.boot</groupId>
  58 + <artifactId>spring-boot-starter-websocket</artifactId>
  59 + </dependency>
  60 + <dependency>
  61 + <groupId>mysql</groupId>
  62 + <artifactId>mysql-connector-java</artifactId>
  63 + </dependency>
  64 +
  65 + <dependency>
  66 + <groupId>joda-time</groupId>
  67 + <artifactId>joda-time</artifactId>
  68 + </dependency>
  69 + <dependency>
  70 + <groupId>com.alibaba</groupId>
  71 + <artifactId>fastjson</artifactId>
  72 + <version>1.2.4</version>
  73 + </dependency>
  74 +
  75 + <dependency>
  76 + <groupId>org.apache.httpcomponents</groupId>
  77 + <artifactId>httpclient</artifactId>
  78 + </dependency>
  79 +
  80 + <dependency>
  81 + <groupId>commons-dbcp</groupId>
  82 + <artifactId>commons-dbcp</artifactId>
  83 + </dependency>
  84 + <dependency>
  85 + <groupId>commons-lang</groupId>
  86 + <artifactId>commons-lang</artifactId>
  87 + <version>2.6</version>
  88 + </dependency>
  89 + <dependency>
  90 + <groupId>org.apache.commons</groupId>
  91 + <artifactId>commons-lang3</artifactId>
  92 + <version>3.4</version>
  93 + </dependency>
  94 + <dependency>
  95 + <groupId>commons-fileupload</groupId>
  96 + <artifactId>commons-fileupload</artifactId>
  97 + <version>1.2.2</version>
  98 + </dependency>
  99 + <dependency>
  100 + <groupId>commons-io</groupId>
  101 + <artifactId>commons-io</artifactId>
  102 + <version>2.4</version>
  103 + </dependency>
  104 + <dependency>
  105 + <groupId>org.codehaus.janino</groupId>
  106 + <artifactId>janino</artifactId>
  107 + </dependency>
  108 +
  109 + <dependency>
  110 + <groupId>org.apache.poi</groupId>
  111 + <artifactId>poi-ooxml</artifactId>
  112 + <version>3.13</version>
  113 + </dependency>
  114 +
  115 + <dependency>
  116 + <groupId>com.google.guava</groupId>
  117 + <artifactId>guava</artifactId>
  118 + <version>19.0</version>
  119 + </dependency>
  120 + <!-- ftp文件上传包 -->
  121 + <dependency>
  122 + <groupId>commons-net</groupId>
  123 + <artifactId>commons-net</artifactId>
  124 + <version>3.5</version>
  125 + </dependency>
  126 + <dependency>
  127 + <groupId>org.apache.commons</groupId>
  128 + <artifactId>commons-compress</artifactId>
  129 + <version>1.3</version>
  130 + </dependency>
  131 + <!-- drools 6依赖 -->
  132 + <dependency>
  133 + <groupId>org.kie</groupId>
  134 + <artifactId>kie-api</artifactId>
  135 + </dependency>
  136 + <dependency>
  137 + <groupId>org.drools</groupId>
  138 + <artifactId>drools-compiler</artifactId>
  139 + </dependency>
  140 +
  141 + <!-- springboot测试 -->
  142 + <dependency>
  143 + <groupId>org.springframework.boot</groupId>
  144 + <artifactId>spring-boot-starter-test</artifactId>
  145 + <scope>test</scope>
  146 + </dependency>
  147 +
  148 + <dependency>
  149 + <groupId>c3p0</groupId>
  150 + <artifactId>c3p0</artifactId>
  151 + <version>0.9.1.2</version>
  152 + </dependency>
  153 +
  154 + <!-- 图表 -->
  155 + <dependency>
  156 + <groupId>com.google.code.gson</groupId>
  157 + <artifactId>gson</artifactId>
  158 + <version>2.2.4</version>
  159 + </dependency>
  160 + <dependency>
  161 + <groupId>com.github.abel533</groupId>
  162 + <artifactId>ECharts</artifactId>
  163 + <version>2.1.8</version>
  164 + </dependency>
  165 +
  166 + <dependency>
  167 + <groupId>org.apache.tika</groupId>
  168 + <artifactId>tika-core</artifactId>
  169 + <version>1.7</version>
  170 + </dependency>
  171 +
  172 + <!-- pentaho kettle 依赖 -->
  173 + <dependency>
  174 + <groupId>com.pentaho.kettle</groupId>
  175 + <artifactId>kettle-core</artifactId>
  176 + <version>6.0.1.0-386</version>
  177 + </dependency>
  178 + <dependency>
  179 + <groupId>com.pentaho.kettle</groupId>
  180 + <artifactId>kettle-engine</artifactId>
  181 + <version>6.0.1.0-386</version>
  182 + </dependency>
  183 + <dependency>
  184 + <groupId>com.pentaho.kettle</groupId>
  185 + <artifactId>metastore</artifactId>
  186 + <version>6.0.1.0-386</version>
  187 + </dependency>
  188 + <dependency>
  189 + <groupId>com.pentaho.kettle</groupId>
  190 + <artifactId>vfs2</artifactId>
  191 + <version>2.1-20150824</version>
  192 + </dependency>
  193 + <dependency>
  194 + <groupId>net.sourceforge.jexcelapi</groupId>
  195 + <artifactId>jxl</artifactId>
  196 + <version>2.6.12</version>
  197 + <exclusions>
  198 + <exclusion>
  199 + <groupId>log4j</groupId>
  200 + <artifactId>log4j</artifactId>
  201 + </exclusion>
  202 + </exclusions>
  203 + </dependency>
  204 + <dependency>
  205 + <groupId>rhino</groupId>
  206 + <artifactId>js</artifactId>
  207 + <version>1.7R2</version>
  208 + </dependency>
  209 + <dependency>
  210 + <groupId>javax.mail</groupId>
  211 + <artifactId>mail</artifactId>
  212 + <version>1.4.7</version>
  213 + </dependency>
  214 +
  215 + <dependency>
  216 + <groupId>com.github.axet</groupId>
  217 + <artifactId>kaptcha</artifactId>
  218 + <version>0.0.9</version>
  219 + </dependency>
  220 +
  221 + <dependency>
  222 + <groupId>commons-codec</groupId>
  223 + <artifactId>commons-codec</artifactId>
  224 + <version>1.4</version>
  225 + <scope>compile</scope>
  226 + </dependency>
  227 + <dependency>
  228 + <groupId>org.bouncycastle</groupId>
  229 + <artifactId>bcprov-jdk15on</artifactId>
  230 + <version>1.52</version>
  231 + </dependency>
  232 + <dependency>
  233 + <groupId>axis</groupId>
  234 + <artifactId>axis</artifactId>
  235 + <version>1.4</version>
  236 + </dependency>
  237 + <dependency>
  238 + <groupId>javax.xml</groupId>
  239 + <artifactId>jaxrpc-api</artifactId>
  240 + <version>1.1</version>
  241 + </dependency>
  242 +
  243 + <dependency>
  244 + <groupId>org.apache.axis2</groupId>
  245 + <artifactId>axis2-adb</artifactId>
  246 + <version>1.7.4</version>
  247 + </dependency>
  248 + <dependency>
  249 + <groupId>org.apache.axis2</groupId>
  250 + <artifactId>axis2-transport-local</artifactId>
  251 + <version>1.7.4</version>
  252 + </dependency>
  253 + <dependency>
  254 + <groupId>org.apache.axis2</groupId>
  255 + <artifactId>axis2-transport-http</artifactId>
  256 + <version>1.7.4</version>
  257 + </dependency>
  258 +
  259 + <dependency>
  260 + <groupId>org.dbunit</groupId>
  261 + <artifactId>dbunit</artifactId>
  262 + <version>2.4.9</version>
  263 + <scope>test</scope>
  264 +
  265 + <exclusions>
  266 + <exclusion>
  267 + <groupId>org.slf4j</groupId>
  268 + <artifactId>slf4j-api</artifactId>
  269 + </exclusion>
  270 + </exclusions>
  271 + </dependency>
  272 +
  273 + <dependency>
  274 + <groupId>com.h2database</groupId>
  275 + <artifactId>h2</artifactId>
  276 + <version>1.2.132</version>
  277 + <scope>test</scope>
  278 + </dependency>
  279 +
  280 +
  281 + <dependency>
  282 + <groupId>ojdbc</groupId>
  283 + <artifactId>ojdbc</artifactId>
  284 + <version>14</version>
  285 + </dependency>
  286 +
  287 + <dependency>
  288 + <groupId>org.apache.mina</groupId>
  289 + <artifactId>mina-core</artifactId>
  290 + <version>2.0.13</version>
  291 + </dependency>
  292 +
  293 + <dependency>
  294 + <groupId>com.google.protobuf</groupId>
  295 + <artifactId>protobuf-java</artifactId>
  296 + <version>3.3.0</version>
  297 + </dependency>
  298 +
  299 + <dependency>
  300 + <groupId>com.github.stuxuhai</groupId>
  301 + <artifactId>jpinyin</artifactId>
  302 + <version>1.1.8</version>
  303 + </dependency>
  304 +
  305 + <!-- dubbo 需要的jar start -->
  306 + <dependency>
  307 + <groupId>com.alibaba</groupId>
  308 + <artifactId>dubbo</artifactId>
  309 + <!--<version>2.6.3</version>-->
  310 + <version>2.5.3</version>
  311 + <exclusions>
  312 + <exclusion>
  313 + <groupId>org.springframework</groupId>
  314 + <artifactId>spring</artifactId>
  315 + </exclusion>
  316 + <exclusion>
  317 + <groupId>log4j</groupId>
  318 + <artifactId>log4j</artifactId>
  319 + </exclusion>
  320 + </exclusions>
  321 + </dependency>
  322 +
  323 + <dependency>
  324 + <groupId>org.apache.zookeeper</groupId>
  325 + <artifactId>zookeeper</artifactId>
  326 + <version>3.4.5</version>
  327 + <exclusions>
  328 + <exclusion>
  329 + <groupId>log4j</groupId>
  330 + <artifactId>log4j</artifactId>
  331 + </exclusion>
  332 + <exclusion>
  333 + <groupId>org.slf4j</groupId>
  334 + <artifactId>slf4j-log4j12</artifactId>
  335 + </exclusion>
  336 + </exclusions>
  337 + </dependency>
  338 +
  339 + <dependency>
  340 + <groupId>com.101tec</groupId>
  341 + <artifactId>zkclient</artifactId>
  342 + <version>0.3</version>
  343 + <exclusions>
  344 + <exclusion>
  345 + <groupId>log4j</groupId>
  346 + <artifactId>log4j</artifactId>
  347 + </exclusion>
  348 + </exclusions>
  349 + </dependency>
  350 +
  351 + <!-- plan common工程依赖 -->
  352 + <dependency>
  353 + <groupId>com.bsth.control_v2</groupId>
  354 + <artifactId>plan_module-common</artifactId>
  355 + <version>1.0-SNAPSHOT</version>
  356 + </dependency>
  357 + <!-- plan common config 工程依赖 -->
  358 + <dependency>
  359 + <groupId>com.bsth.control_v2</groupId>
  360 + <artifactId>plan_module-common-config</artifactId>
  361 + <version>1.0-SNAPSHOT</version>
  362 + </dependency>
  363 + <!-- real common 依赖 -->
  364 + <dependency>
  365 + <groupId>com.bsth.control_v3</groupId>
  366 + <artifactId>real_module-common</artifactId>
  367 + <version>0.0.1-SNAPSHOT</version>
  368 + </dependency>
  369 + <dependency>
  370 + <groupId>org.slf4j</groupId>
  371 + <artifactId>slf4j-api</artifactId>
  372 + <version>1.7.7</version>
  373 + </dependency>
  374 + <dependency>
  375 + <groupId>ch.qos.logback</groupId>
  376 + <artifactId>logback-classic</artifactId>
  377 + <version>1.1.3</version>
  378 + </dependency>
  379 + <dependency>
  380 + <groupId>org.slf4j</groupId>
  381 + <artifactId>log4j-over-slf4j</artifactId>
  382 + <version>1.7.7</version>
  383 + </dependency>
  384 +
  385 + </dependencies>
  386 +
  387 + <dependencyManagement>
  388 + <dependencies>
  389 + <!-- drools 6依赖 -->
  390 + <dependency>
  391 + <groupId>org.drools</groupId>
  392 + <artifactId>drools-bom</artifactId>
  393 + <type>pom</type>
  394 + <version>6.3.0.Final</version>
  395 + <scope>import</scope>
  396 + </dependency>
  397 + </dependencies>
  398 + </dependencyManagement>
  399 +
  400 + <build>
  401 + <plugins>
  402 + <plugin>
  403 + <artifactId>maven-compiler-plugin</artifactId>
  404 + <version>2.3.2</version><!--$NO-MVN-MAN-VER$ -->
  405 + <configuration>
  406 + <source>1.7</source>
  407 + <target>1.7</target>
  408 + </configuration>
  409 + </plugin>
  410 + <plugin>
  411 + <artifactId>maven-war-plugin</artifactId>
  412 + <version>2.2</version><!--$NO-MVN-MAN-VER$ -->
  413 + <configuration>
  414 + <failOnMissingWebXml>false</failOnMissingWebXml>
  415 + </configuration>
  416 + </plugin>
  417 + <plugin>
  418 + <groupId>org.springframework.boot</groupId>
  419 + <artifactId>spring-boot-maven-plugin</artifactId>
  420 + </plugin>
  421 + </plugins>
  422 + <resources>
  423 + <resource>
  424 + <directory>src/main/resources</directory>
  425 + <filtering>false</filtering>
  426 + </resource>
  427 + </resources>
  428 + </build>
  429 + <repositories>
  430 + <repository>
  431 + <id>spring-snapshots</id>
  432 + <url>http://repo.spring.io/snapshot</url>
  433 + <snapshots>
  434 + <enabled>true</enabled>
  435 + </snapshots>
  436 + </repository>
  437 + <repository>
  438 + <id>spring-milestones</id>
  439 + <url>http://repo.spring.io/milestone</url>
  440 + </repository>
  441 + </repositories>
  442 + <pluginRepositories>
  443 + <pluginRepository>
  444 + <id>spring-snapshots</id>
  445 + <url>http://repo.spring.io/snapshot</url>
  446 + </pluginRepository>
  447 + <pluginRepository>
  448 + <id>spring-milestones</id>
  449 + <url>http://repo.spring.io/milestone</url>
  450 + </pluginRepository>
  451 + </pluginRepositories>
  452 +
  453 + <properties>
  454 + <start-class>com.bsth.Application</start-class>
  455 + </properties>
  456 +</project>
src/main/resources/application-prod.properties
1 -server.port=9088  
2 -management.port= 9001  
3 -management.address= 127.0.0.1  
4 -  
5 -dubbo.use=false  
6 -  
7 -spring.jpa.hibernate.ddl-auto= none  
8 -spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy  
9 -#DATABASE  
10 -spring.jpa.database= MYSQL  
11 -spring.jpa.show-sql= true  
12 -spring.datasource.driver-class-name= com.mysql.jdbc.Driver  
13 -spring.datasource.url= jdbc:mysql://112.64.148.30:54002/qp_control?useUnicode=true&characterEncoding=utf-8&useSSL=false  
14 -spring.datasource.username= root  
15 -spring.datasource.password= Aa123456  
16 -#DATASOURCE  
17 -spring.datasource.max-active=100  
18 -spring.datasource.max-idle=8  
19 -spring.datasource.min-idle=8  
20 -spring.datasource.initial-size=5  
21 -  
22 -spring.datasource.test-on-borrow=true  
23 -spring.datasource.test-on-connect=true  
24 -spring.datasource.test-on-return=true  
25 -spring.datasource.test-while-idle=true  
26 -spring.datasource.validation-query=select 1  
27 -  
28 -## gateway real data  
29 -http.gps.real.url= http://10.3.30.4:14004/transport_server/rtgps/  
30 -## gateway send directive  
31 -http.send.directive = http://10.3.30.4:14004/transport_server/message/ 1 +server.port=9088
  2 +management.port= 9001
  3 +management.address= 127.0.0.1
  4 +
  5 +dubbo.use=false
  6 +
  7 +spring.jpa.hibernate.ddl-auto= none
  8 +spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy
  9 +#DATABASE
  10 +spring.jpa.database= MYSQL
  11 +spring.jpa.show-sql= true
  12 +spring.datasource.driver-class-name= com.mysql.jdbc.Driver
  13 +spring.datasource.url= jdbc:mysql://192.168.210.128/qp_control?useUnicode=true&characterEncoding=utf-8&useSSL=false
  14 +spring.datasource.username= root
  15 +spring.datasource.password= Aa123456
  16 +#DATASOURCE
  17 +spring.datasource.max-active=100
  18 +spring.datasource.max-idle=8
  19 +spring.datasource.min-idle=8
  20 +spring.datasource.initial-size=5
  21 +
  22 +spring.datasource.test-on-borrow=true
  23 +spring.datasource.test-on-connect=true
  24 +spring.datasource.test-on-return=true
  25 +spring.datasource.test-while-idle=true
  26 +spring.datasource.validation-query=select 1
  27 +
  28 +## gateway real data
  29 +http.gps.real.url= http://192.168.210.128:8080/transport_server/rtgps/
  30 +## gateway send directive
  31 +http.send.directive = http://192.168.210.128:8080/transport_server/message/
src/main/resources/datatools/config-prod.properties
1 -# 配置数据导入导出用到的配置信息  
2 -  
3 -# 1、kettle配置文件路径(类路径)  
4 -datatools.kettle_properties=/datatools/kettle.properties  
5 -# 2、ktr文件通用配置变量(数据库连接,根据不同的环境需要修正)  
6 -  
7 -#数据库ip地址  
8 -datatools.kvars_dbip=112.64.148.30  
9 -#数据库用户名  
10 -datatools.kvars_dbuname=root  
11 -#数据库密码  
12 -datatools.kvars_dbpwd=Aa123456  
13 -#数据库库名  
14 -datatools.kvars_dbdname=qp_control  
15 -  
16 -# 3、上传数据配置信息  
17 -# 上传文件目录配置(根据不同的环境需要修正)  
18 -datatools.fileupload_dir=/home/bsth_control_u_d_files  
19 -# ktr转换文件,中配置的错误输出目录(根据不同的环境需要修正)  
20 -datatools.trans_errordir=/home/bsth_control_u_d_files/erroroutput  
21 -# 临时输出文件目录  
22 -datatools.trans_tempdir=/home/bsth_control_u_d_files/temp  
23 -# 模版文件目录  
24 -datatools.trans_templatedir=/home/bsth_control_u_d_files/template  
25 -  
26 -##---------------------------- 导入数据ktr ----------------------------##  
27 -# 车辆信息导入ktr转换  
28 -datatools.cars_datainputktr=/datatools/ktrs/carsDataInput.ktr  
29 -# 人员信息导入  
30 -datatools.employees_datainputktr=/datatools/ktrs/employeesDataInput.ktr  
31 -# 路牌信息导入  
32 -datatools.guideboards_datainputktr=/datatools/ktrs/guideboardDataInput.ktr  
33 -# 时刻表基础信息导入  
34 -datatools.ttinfo_datainputktr=/datatools/ktrs/ttinfoDataInput.ktr  
35 -# 时刻表明细信息导入(元数据)  
36 -datatools.ttinfodetail_metadatainputktr=/datatools/ktrs/ttinfodetailDataInputMetaData.ktr  
37 -# 时刻表明细编辑用数据  
38 -datatools.ttinfodetail_foreditktr=/datatools/ktrs/ttinfodetailoutputforedit.ktr  
39 -# 时刻表明细信息导入  
40 -datatools.ttinfodetail_datainputktr=/datatools/ktrs/ttinfodetailDataInput.ktr  
41 -# 时刻表明细信息导入2  
42 -datatools.ttinfodetail_datainputktr2=/datatools/ktrs/ttinfodetailDataInput2.ktr  
43 -# 时刻表明细信息导入2(版本化)  
44 -datatools.ttinfodetail_datainputktr2version=/datatools/ktrs/ttinfodetailDataInput2_version.ktr  
45 -# 时刻表明细信息导入2(版本化),使用生成时刻表格式  
46 -datatools.ttinfodetail_datainputktr2version2=/datatools/ktrs/ttinfodetailDataInput2_version_2.ktr  
47 -  
48 -# 车辆配置信息导入  
49 -datatools.carsconfig_datainputktr=/datatools/ktrs/carsConfigDataInput.ktr  
50 -# 人员配置信息导入  
51 -datatools.employeesconfig_datainputktr=/datatools/ktrs/employeesConfigDataInput.ktr  
52 -  
53 -# 排版规则信息导入  
54 -datatools.schedulerule_datainputktr=/datatools/ktrs/scheduleRuleDataInput.ktr  
55 -  
56 -# 4、数据导出配置信息  
57 -# 导出数据文件目录配置(根据不同的环境需要修正)  
58 -datatools.fileoutput_dir=/home/bsth_control_u_d_files  
59 -  
60 -##---------------------------- 导出数据ktr -----------------------------##  
61 -# 车辆信息导出ktr转换  
62 -datatools.cars_dataoutputktr=/datatools/ktrs/carsDataOutput.ktr  
63 -# 人员信息导出ktr转换  
64 -datatools.employees_dataoutputktr=/datatools/ktrs/employeesDataOutput.ktr  
65 -# 时刻表导出元数据ktr转换  
66 -datatools.ttinfodetail_metaoutput=/datatools/ktrs/ttinfodetailDataOutputMetaData.ktr  
67 -# 时刻表导出数据ktr转换  
68 -datatools.ttinfodetail_output=/datatools/ktrs/ttinfodetailDataOutput.ktr  
69 -# 排版规则导出数据ktr转换  
70 -datatools.schedulerule_output=/datatools/ktrs/scheduleRuleDataOutput.ktr  
71 -  
72 -# 车辆配置信息导出ktr转换  
73 -datatools.carsconfig_dataoutputktr=/datatools/ktrs/carsConfigDataOutput.ktr  
74 -# 人员配置信息导出ktr转换  
75 -datatools.employeesconfig_dataoutputktr=/datatools/ktrs/employeesConfigDataOutput.ktr  
76 -  
77 -# 路牌信息导出  
78 -datatools.guideboards_dataoutputktr=/datatools/ktrs/guideboardDataOutput.ktr  
79 -  
80 -# 用户登录日志导出  
81 -datatools.usersign_dataoutputktr=/datatools/ktrs/userSignLogOutput.ktr  
82 -  
83 -# TODO: 1 +# 配置数据导入导出用到的配置信息
  2 +
  3 +# 1、kettle配置文件路径(类路径)
  4 +datatools.kettle_properties=/datatools/kettle.properties
  5 +# 2、ktr文件通用配置变量(数据库连接,根据不同的环境需要修正)
  6 +
  7 +#数据库ip地址
  8 +datatools.kvars_dbip=192.168.210.128
  9 +#数据库用户名
  10 +datatools.kvars_dbuname=root
  11 +#数据库密码
  12 +datatools.kvars_dbpwd=Aa123456
  13 +#数据库库名
  14 +datatools.kvars_dbdname=qp_control
  15 +
  16 +# 3、上传数据配置信息
  17 +# 上传文件目录配置(根据不同的环境需要修正)
  18 +datatools.fileupload_dir=/home/bsth_control_u_d_files
  19 +# ktr转换文件,中配置的错误输出目录(根据不同的环境需要修正)
  20 +datatools.trans_errordir=/home/bsth_control_u_d_files/erroroutput
  21 +# 临时输出文件目录
  22 +datatools.trans_tempdir=/home/bsth_control_u_d_files/temp
  23 +# 模版文件目录
  24 +datatools.trans_templatedir=/home/bsth_control_u_d_files/template
  25 +
  26 +##---------------------------- 导入数据ktr ----------------------------##
  27 +# 车辆信息导入ktr转换
  28 +datatools.cars_datainputktr=/datatools/ktrs/carsDataInput.ktr
  29 +# 人员信息导入
  30 +datatools.employees_datainputktr=/datatools/ktrs/employeesDataInput.ktr
  31 +# 路牌信息导入
  32 +datatools.guideboards_datainputktr=/datatools/ktrs/guideboardDataInput.ktr
  33 +# 时刻表基础信息导入
  34 +datatools.ttinfo_datainputktr=/datatools/ktrs/ttinfoDataInput.ktr
  35 +# 时刻表明细信息导入(元数据)
  36 +datatools.ttinfodetail_metadatainputktr=/datatools/ktrs/ttinfodetailDataInputMetaData.ktr
  37 +# 时刻表明细编辑用数据
  38 +datatools.ttinfodetail_foreditktr=/datatools/ktrs/ttinfodetailoutputforedit.ktr
  39 +# 时刻表明细信息导入
  40 +datatools.ttinfodetail_datainputktr=/datatools/ktrs/ttinfodetailDataInput.ktr
  41 +# 时刻表明细信息导入2
  42 +datatools.ttinfodetail_datainputktr2=/datatools/ktrs/ttinfodetailDataInput2.ktr
  43 +# 时刻表明细信息导入2(版本化)
  44 +datatools.ttinfodetail_datainputktr2version=/datatools/ktrs/ttinfodetailDataInput2_version.ktr
  45 +# 时刻表明细信息导入2(版本化),使用生成时刻表格式
  46 +datatools.ttinfodetail_datainputktr2version2=/datatools/ktrs/ttinfodetailDataInput2_version_2.ktr
  47 +
  48 +# 车辆配置信息导入
  49 +datatools.carsconfig_datainputktr=/datatools/ktrs/carsConfigDataInput.ktr
  50 +# 人员配置信息导入
  51 +datatools.employeesconfig_datainputktr=/datatools/ktrs/employeesConfigDataInput.ktr
  52 +
  53 +# 排版规则信息导入
  54 +datatools.schedulerule_datainputktr=/datatools/ktrs/scheduleRuleDataInput.ktr
  55 +
  56 +# 4、数据导出配置信息
  57 +# 导出数据文件目录配置(根据不同的环境需要修正)
  58 +datatools.fileoutput_dir=/home/bsth_control_u_d_files
  59 +
  60 +##---------------------------- 导出数据ktr -----------------------------##
  61 +# 车辆信息导出ktr转换
  62 +datatools.cars_dataoutputktr=/datatools/ktrs/carsDataOutput.ktr
  63 +# 人员信息导出ktr转换
  64 +datatools.employees_dataoutputktr=/datatools/ktrs/employeesDataOutput.ktr
  65 +# 时刻表导出元数据ktr转换
  66 +datatools.ttinfodetail_metaoutput=/datatools/ktrs/ttinfodetailDataOutputMetaData.ktr
  67 +# 时刻表导出数据ktr转换
  68 +datatools.ttinfodetail_output=/datatools/ktrs/ttinfodetailDataOutput.ktr
  69 +# 排版规则导出数据ktr转换
  70 +datatools.schedulerule_output=/datatools/ktrs/scheduleRuleDataOutput.ktr
  71 +
  72 +# 车辆配置信息导出ktr转换
  73 +datatools.carsconfig_dataoutputktr=/datatools/ktrs/carsConfigDataOutput.ktr
  74 +# 人员配置信息导出ktr转换
  75 +datatools.employeesconfig_dataoutputktr=/datatools/ktrs/employeesConfigDataOutput.ktr
  76 +
  77 +# 路牌信息导出
  78 +datatools.guideboards_dataoutputktr=/datatools/ktrs/guideboardDataOutput.ktr
  79 +
  80 +# 用户登录日志导出
  81 +datatools.usersign_dataoutputktr=/datatools/ktrs/userSignLogOutput.ktr
  82 +
  83 +# TODO:
src/main/resources/logback.xml
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"> -->  
3 -<configuration>  
4 -  
5 - <!-- <property resource="application.properties" /> -->  
6 - <property name="LOG_BASE" value="E:/bsth_control_logs" />  
7 - <!-- 控制台输出 -->  
8 - <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">  
9 -  
10 - <layout class="ch.qos.logback.classic.PatternLayout">  
11 - <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->  
12 - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level-%msg%n  
13 - </pattern>  
14 - </layout>  
15 - </appender>  
16 -  
17 - <!-- 主日志文件 -->  
18 - <appender name="FILE"  
19 - class="ch.qos.logback.core.rolling.RollingFileAppender">  
20 - <file>${LOG_BASE}/main/main.log</file>  
21 - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
22 - <fileNamePattern>${LOG_BASE}/main/main-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
23 - <timeBasedFileNamingAndTriggeringPolicy  
24 - class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
25 - <maxFileSize>100MB</maxFileSize>  
26 - </timeBasedFileNamingAndTriggeringPolicy>  
27 - </rollingPolicy>  
28 - <encoder>  
29 - <pattern>%msg%n</pattern>  
30 - </encoder>  
31 -  
32 - <layout class="ch.qos.logback.classic.PatternLayout">  
33 - <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->  
34 - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level-%msg%n  
35 - </pattern>  
36 - </layout>  
37 - </appender>  
38 -  
39 - <!-- 访问日志 -->  
40 - <appender name="ACCESS"  
41 - class="ch.qos.logback.core.rolling.RollingFileAppender">  
42 - <file>${LOG_BASE}/access/access.log</file>  
43 - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
44 - <fileNamePattern>${LOG_BASE}/access/access-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
45 - <timeBasedFileNamingAndTriggeringPolicy  
46 - class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
47 - <maxFileSize>100MB</maxFileSize>  
48 - </timeBasedFileNamingAndTriggeringPolicy>  
49 - </rollingPolicy>  
50 -  
51 - <layout class="ch.qos.logback.classic.PatternLayout">  
52 - <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->  
53 - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level -%msg%n  
54 - </pattern>  
55 - </layout>  
56 - </appender>  
57 - <logger name="com.bsth.filter.AccessLogFilter" level="INFO"  
58 - additivity="false">  
59 - <appender-ref ref="ACCESS" />  
60 - </logger>  
61 -  
62 - <!-- 和网关通讯日志日志 -->  
63 - <appender name="GATEWAY"  
64 - class="ch.qos.logback.core.rolling.RollingFileAppender">  
65 - <file>${LOG_BASE}/gateway/gateway.log</file>  
66 - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
67 - <fileNamePattern>${LOG_BASE}/gateway/gateway-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
68 - <timeBasedFileNamingAndTriggeringPolicy  
69 - class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
70 - <maxFileSize>100MB</maxFileSize>  
71 - </timeBasedFileNamingAndTriggeringPolicy>  
72 - </rollingPolicy>  
73 -  
74 - <layout class="ch.qos.logback.classic.PatternLayout">  
75 - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n  
76 - </pattern>  
77 - </layout>  
78 - </appender>  
79 - <logger name="com.bsth.service.directive.DirectiveServiceImpl"  
80 - level="INFO" additivity="false">  
81 - <appender-ref ref="GATEWAY" />  
82 - </logger>  
83 - <logger name="com.bsth.controller.directive.UpstreamEntrance"  
84 - level="INFO" additivity="false">  
85 - <appender-ref ref="GATEWAY" />  
86 - </logger>  
87 - <logger name="com.bsth.data.directive.GatewayHttpUtils" level="INFO"  
88 - additivity="false">  
89 - <appender-ref ref="GATEWAY" />  
90 - </logger>  
91 -  
92 - <!-- 运管处接口日志 -->  
93 - <appender name="TRAFFIC"  
94 - class="ch.qos.logback.core.rolling.RollingFileAppender">  
95 - <file>${LOG_BASE}/traffic/traffic.log</file>  
96 - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
97 - <fileNamePattern>${LOG_BASE}/traffic/traffic-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
98 - <timeBasedFileNamingAndTriggeringPolicy  
99 - class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
100 - <maxFileSize>100MB</maxFileSize>  
101 - </timeBasedFileNamingAndTriggeringPolicy>  
102 - </rollingPolicy>  
103 -  
104 - <layout class="ch.qos.logback.classic.PatternLayout">  
105 - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n  
106 - </pattern>  
107 - </layout>  
108 - </appender>  
109 - <logger name="com.bsth.service.impl.TrafficManageServiceImpl"  
110 - level="INFO" additivity="false">  
111 - <appender-ref ref="TRAFFIC" />  
112 - </logger>  
113 -  
114 - <!-- schedule 数据工具操作日志 -->  
115 - <appender name="DATATOOLS"  
116 - class="ch.qos.logback.core.rolling.RollingFileAppender">  
117 - <file>${LOG_BASE}/schedule/datatools/datatools.log</file>  
118 - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
119 - <fileNamePattern>${LOG_BASE}/schedule/datatools/datatools-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
120 - <timeBasedFileNamingAndTriggeringPolicy  
121 - class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
122 - <maxFileSize>100MB</maxFileSize>  
123 - </timeBasedFileNamingAndTriggeringPolicy>  
124 - </rollingPolicy>  
125 -  
126 - <layout class="ch.qos.logback.classic.PatternLayout">  
127 - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n  
128 - </pattern>  
129 - </layout>  
130 - </appender>  
131 - <!-- schedule 时刻表操作日志 -->  
132 - <appender name="TIMETABLE"  
133 - class="ch.qos.logback.core.rolling.RollingFileAppender">  
134 - <file>${LOG_BASE}/schedule/timetable/timetable.log</file>  
135 - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
136 - <fileNamePattern>${LOG_BASE}/schedule/timetable/timetable-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
137 - <timeBasedFileNamingAndTriggeringPolicy  
138 - class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
139 - <maxFileSize>100MB</maxFileSize>  
140 - </timeBasedFileNamingAndTriggeringPolicy>  
141 - </rollingPolicy>  
142 -  
143 - <layout class="ch.qos.logback.classic.PatternLayout">  
144 - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n  
145 - </pattern>  
146 - </layout>  
147 - </appender>  
148 - <logger name="com.bsth.service.schedule.impl.TTInfoServiceImpl"  
149 - level="INFO" additivity="false">  
150 - <appender-ref ref="TIMETABLE" />  
151 - </logger>  
152 - <logger name="com.bsth.service.schedule.impl.TTInfoDetailServiceImpl"  
153 - level="INFO" additivity="false">  
154 - <appender-ref ref="TIMETABLE" />  
155 - </logger>  
156 - <logger name="com.bsth.service.schedule.utils.DataToolsServiceImpl"  
157 - level="INFO" additivity="false">  
158 - <appender-ref ref="TIMETABLE" />  
159 - <appender-ref ref="DATATOOLS" />  
160 - </logger>  
161 -  
162 -  
163 - <!-- gps -->  
164 - <appender name="GPS_COUNT"  
165 - class="ch.qos.logback.core.rolling.RollingFileAppender">  
166 - <file>${LOG_BASE}/gps/count.log</file>  
167 - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
168 - <fileNamePattern>${LOG_BASE}/gps/count-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
169 - <timeBasedFileNamingAndTriggeringPolicy  
170 - class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
171 - <maxFileSize>100MB</maxFileSize>  
172 - </timeBasedFileNamingAndTriggeringPolicy>  
173 - </rollingPolicy>  
174 -  
175 - <layout class="ch.qos.logback.classic.PatternLayout">  
176 - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n  
177 - </pattern>  
178 - </layout>  
179 - </appender>  
180 - <logger name="com.bsth.data.gpsdata_v2"  
181 - level="INFO" additivity="false">  
182 - <appender-ref ref="GPS_COUNT" />  
183 - </logger>  
184 -  
185 - <!-- 设备状态指令 -->  
186 - <appender name="GPS_STATUS_DIRECTIVE"  
187 - class="ch.qos.logback.core.rolling.RollingFileAppender">  
188 - <file>${LOG_BASE}/gps_state/state_directive.log</file>  
189 - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
190 - <fileNamePattern>${LOG_BASE}/gps_state/state_directive-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
191 - <timeBasedFileNamingAndTriggeringPolicy  
192 - class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
193 - <maxFileSize>100MB</maxFileSize>  
194 - </timeBasedFileNamingAndTriggeringPolicy>  
195 - </rollingPolicy>  
196 -  
197 - <layout class="ch.qos.logback.classic.PatternLayout">  
198 - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n  
199 - </pattern>  
200 - </layout>  
201 - </appender>  
202 - <logger name="com.bsth.data.gpsdata.status_manager"  
203 - level="INFO" additivity="false">  
204 - <appender-ref ref="GPS_STATUS_DIRECTIVE" />  
205 - </logger>  
206 -  
207 - <!-- 消息队列纪录 -->  
208 - <appender name="QUEUE_WEB_SOCKET"  
209 - class="ch.qos.logback.core.rolling.RollingFileAppender">  
210 - <file>${LOG_BASE}/msg_queue/websocket.log</file>  
211 - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
212 - <fileNamePattern>${LOG_BASE}/msg_queue/websocket-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
213 - <timeBasedFileNamingAndTriggeringPolicy  
214 - class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
215 - <maxFileSize>100MB</maxFileSize>  
216 - </timeBasedFileNamingAndTriggeringPolicy>  
217 - </rollingPolicy>  
218 -  
219 - <layout class="ch.qos.logback.classic.PatternLayout">  
220 - <pattern>%d{MM-dd HH:mm:ss.SSS} %-5level -%msg%n  
221 - </pattern>  
222 - </layout>  
223 - </appender>  
224 - <logger name="com.bsth.data.msg_queue.WebSocketPushQueue"  
225 - level="INFO" additivity="false">  
226 - <appender-ref ref="QUEUE_WEB_SOCKET" />  
227 - </logger>  
228 - <appender name="QUEUE_DIRECTIVE"  
229 - class="ch.qos.logback.core.rolling.RollingFileAppender">  
230 - <file>${LOG_BASE}/msg_queue/directive.log</file>  
231 - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
232 - <fileNamePattern>${LOG_BASE}/msg_queue/directive-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
233 - <timeBasedFileNamingAndTriggeringPolicy  
234 - class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
235 - <maxFileSize>100MB</maxFileSize>  
236 - </timeBasedFileNamingAndTriggeringPolicy>  
237 - </rollingPolicy>  
238 -  
239 - <layout class="ch.qos.logback.classic.PatternLayout">  
240 - <pattern>%d{MM-dd HH:mm:ss.SSS} %-5level -%msg%n  
241 - </pattern>  
242 - </layout>  
243 - </appender>  
244 - <logger name="com.bsth.data.msg_queue.DirectivePushQueue"  
245 - level="INFO" additivity="false">  
246 - <appender-ref ref="QUEUE_DIRECTIVE" />  
247 - </logger>  
248 -  
249 - <!--<logger name="org.hibernate.SQL" level="TRACE">-->  
250 - <!--<appender-ref ref="STDOUT" />-->  
251 - <!--</logger>-->  
252 -  
253 - <!-- 实际排班数据库更新日志 -->  
254 - <!-- 消息队列纪录 -->  
255 - <appender name="REAL_SCHEDULE_UPDATE"  
256 - class="ch.qos.logback.core.rolling.RollingFileAppender">  
257 - <file>${LOG_BASE}/real_sch_db/update.log</file>  
258 - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
259 - <fileNamePattern>${LOG_BASE}/real_sch_db/update-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
260 - <timeBasedFileNamingAndTriggeringPolicy  
261 - class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
262 - <maxFileSize>100MB</maxFileSize>  
263 - </timeBasedFileNamingAndTriggeringPolicy>  
264 - </rollingPolicy>  
265 -  
266 - <layout class="ch.qos.logback.classic.PatternLayout">  
267 - <pattern>%d{MM-dd HH:mm:ss.SSS} %-5level -%msg%n  
268 - </pattern>  
269 - </layout>  
270 - </appender>  
271 - <logger name="com.bsth.data.schedule.thread.SchedulePstThread"  
272 - level="INFO" additivity="false">  
273 - <appender-ref ref="REAL_SCHEDULE_UPDATE" />  
274 - </logger>  
275 -  
276 - <!--JdbcTemplate的日志输出器 -->  
277 - <logger name="org.springframework.jdbc.core.StatementCreatorUtils"  
278 - additivity="false" level="INFO">  
279 - <appender-ref ref="STDOUT" />  
280 - </logger>  
281 - <logger name="org.springframework.jdbc.core" additivity="true">  
282 - <level value="INFO" />  
283 - <appender-ref ref="STDOUT" />  
284 - </logger>  
285 - <logger name="java.sql.Connection" additivity="true">  
286 - <level value="INFO" />  
287 - <appender-ref ref="STDOUT" />  
288 - </logger>  
289 - <logger name="java.sql.Statement" additivity="true">  
290 - <level value="INFO" />  
291 - <appender-ref ref="STDOUT" />  
292 - </logger>  
293 - <logger name="java.sql.PreparedStatement" additivity="true">  
294 - <level value="INFO" />  
295 - <appender-ref ref="STDOUT" />  
296 - </logger>  
297 - <logger name="java.sql.ResultSet" additivity="true">  
298 - <level value="INFO" />  
299 - <appender-ref ref="STDOUT" />  
300 - </logger>  
301 -  
302 - <!-- 日志输出级别 -->  
303 - <root level="info">  
304 - <appender-ref ref="STDOUT" />  
305 - <appender-ref ref="FILE" />  
306 - </root> 1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"> -->
  3 +<configuration>
  4 +
  5 + <!-- <property resource="application.properties" /> -->
  6 + <property name="LOG_BASE" value="D:/bsth_control_logs" />
  7 + <!-- 控制台输出 -->
  8 + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  9 +
  10 + <layout class="ch.qos.logback.classic.PatternLayout">
  11 + <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
  12 + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level-%msg%n
  13 + </pattern>
  14 + </layout>
  15 + </appender>
  16 +
  17 + <!-- 主日志文件 -->
  18 + <appender name="FILE"
  19 + class="ch.qos.logback.core.rolling.RollingFileAppender">
  20 + <file>${LOG_BASE}/main/main.log</file>
  21 + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  22 + <fileNamePattern>${LOG_BASE}/main/main-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  23 + <timeBasedFileNamingAndTriggeringPolicy
  24 + class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  25 + <maxFileSize>100MB</maxFileSize>
  26 + </timeBasedFileNamingAndTriggeringPolicy>
  27 + </rollingPolicy>
  28 + <encoder>
  29 + <pattern>%msg%n</pattern>
  30 + </encoder>
  31 +
  32 + <layout class="ch.qos.logback.classic.PatternLayout">
  33 + <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
  34 + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level-%msg%n
  35 + </pattern>
  36 + </layout>
  37 + </appender>
  38 +
  39 + <!-- 访问日志 -->
  40 + <appender name="ACCESS"
  41 + class="ch.qos.logback.core.rolling.RollingFileAppender">
  42 + <file>${LOG_BASE}/access/access.log</file>
  43 + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  44 + <fileNamePattern>${LOG_BASE}/access/access-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  45 + <timeBasedFileNamingAndTriggeringPolicy
  46 + class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  47 + <maxFileSize>100MB</maxFileSize>
  48 + </timeBasedFileNamingAndTriggeringPolicy>
  49 + </rollingPolicy>
  50 +
  51 + <layout class="ch.qos.logback.classic.PatternLayout">
  52 + <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
  53 + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level -%msg%n
  54 + </pattern>
  55 + </layout>
  56 + </appender>
  57 + <logger name="com.bsth.filter.AccessLogFilter" level="INFO"
  58 + additivity="false">
  59 + <appender-ref ref="ACCESS" />
  60 + </logger>
  61 +
  62 + <!-- 和网关通讯日志日志 -->
  63 + <appender name="GATEWAY"
  64 + class="ch.qos.logback.core.rolling.RollingFileAppender">
  65 + <file>${LOG_BASE}/gateway/gateway.log</file>
  66 + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  67 + <fileNamePattern>${LOG_BASE}/gateway/gateway-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  68 + <timeBasedFileNamingAndTriggeringPolicy
  69 + class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  70 + <maxFileSize>100MB</maxFileSize>
  71 + </timeBasedFileNamingAndTriggeringPolicy>
  72 + </rollingPolicy>
  73 +
  74 + <layout class="ch.qos.logback.classic.PatternLayout">
  75 + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n
  76 + </pattern>
  77 + </layout>
  78 + </appender>
  79 + <logger name="com.bsth.service.directive.DirectiveServiceImpl"
  80 + level="INFO" additivity="false">
  81 + <appender-ref ref="GATEWAY" />
  82 + </logger>
  83 + <logger name="com.bsth.controller.directive.UpstreamEntrance"
  84 + level="INFO" additivity="false">
  85 + <appender-ref ref="GATEWAY" />
  86 + </logger>
  87 + <logger name="com.bsth.data.directive.GatewayHttpUtils" level="INFO"
  88 + additivity="false">
  89 + <appender-ref ref="GATEWAY" />
  90 + </logger>
  91 +
  92 + <!-- 运管处接口日志 -->
  93 + <appender name="TRAFFIC"
  94 + class="ch.qos.logback.core.rolling.RollingFileAppender">
  95 + <file>${LOG_BASE}/traffic/traffic.log</file>
  96 + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  97 + <fileNamePattern>${LOG_BASE}/traffic/traffic-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  98 + <timeBasedFileNamingAndTriggeringPolicy
  99 + class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  100 + <maxFileSize>100MB</maxFileSize>
  101 + </timeBasedFileNamingAndTriggeringPolicy>
  102 + </rollingPolicy>
  103 +
  104 + <layout class="ch.qos.logback.classic.PatternLayout">
  105 + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n
  106 + </pattern>
  107 + </layout>
  108 + </appender>
  109 + <logger name="com.bsth.service.impl.TrafficManageServiceImpl"
  110 + level="INFO" additivity="false">
  111 + <appender-ref ref="TRAFFIC" />
  112 + </logger>
  113 +
  114 + <!-- schedule 数据工具操作日志 -->
  115 + <appender name="DATATOOLS"
  116 + class="ch.qos.logback.core.rolling.RollingFileAppender">
  117 + <file>${LOG_BASE}/schedule/datatools/datatools.log</file>
  118 + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  119 + <fileNamePattern>${LOG_BASE}/schedule/datatools/datatools-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  120 + <timeBasedFileNamingAndTriggeringPolicy
  121 + class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  122 + <maxFileSize>100MB</maxFileSize>
  123 + </timeBasedFileNamingAndTriggeringPolicy>
  124 + </rollingPolicy>
  125 +
  126 + <layout class="ch.qos.logback.classic.PatternLayout">
  127 + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n
  128 + </pattern>
  129 + </layout>
  130 + </appender>
  131 + <!-- schedule 时刻表操作日志 -->
  132 + <appender name="TIMETABLE"
  133 + class="ch.qos.logback.core.rolling.RollingFileAppender">
  134 + <file>${LOG_BASE}/schedule/timetable/timetable.log</file>
  135 + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  136 + <fileNamePattern>${LOG_BASE}/schedule/timetable/timetable-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  137 + <timeBasedFileNamingAndTriggeringPolicy
  138 + class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  139 + <maxFileSize>100MB</maxFileSize>
  140 + </timeBasedFileNamingAndTriggeringPolicy>
  141 + </rollingPolicy>
  142 +
  143 + <layout class="ch.qos.logback.classic.PatternLayout">
  144 + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n
  145 + </pattern>
  146 + </layout>
  147 + </appender>
  148 + <logger name="com.bsth.service.schedule.impl.TTInfoServiceImpl"
  149 + level="INFO" additivity="false">
  150 + <appender-ref ref="TIMETABLE" />
  151 + </logger>
  152 + <logger name="com.bsth.service.schedule.impl.TTInfoDetailServiceImpl"
  153 + level="INFO" additivity="false">
  154 + <appender-ref ref="TIMETABLE" />
  155 + </logger>
  156 + <logger name="com.bsth.service.schedule.utils.DataToolsServiceImpl"
  157 + level="INFO" additivity="false">
  158 + <appender-ref ref="TIMETABLE" />
  159 + <appender-ref ref="DATATOOLS" />
  160 + </logger>
  161 +
  162 +
  163 + <!-- gps -->
  164 + <appender name="GPS_COUNT"
  165 + class="ch.qos.logback.core.rolling.RollingFileAppender">
  166 + <file>${LOG_BASE}/gps/count.log</file>
  167 + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  168 + <fileNamePattern>${LOG_BASE}/gps/count-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  169 + <timeBasedFileNamingAndTriggeringPolicy
  170 + class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  171 + <maxFileSize>100MB</maxFileSize>
  172 + </timeBasedFileNamingAndTriggeringPolicy>
  173 + </rollingPolicy>
  174 +
  175 + <layout class="ch.qos.logback.classic.PatternLayout">
  176 + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n
  177 + </pattern>
  178 + </layout>
  179 + </appender>
  180 + <logger name="com.bsth.data.gpsdata_v2"
  181 + level="INFO" additivity="false">
  182 + <appender-ref ref="GPS_COUNT" />
  183 + </logger>
  184 +
  185 + <!-- 设备状态指令 -->
  186 + <appender name="GPS_STATUS_DIRECTIVE"
  187 + class="ch.qos.logback.core.rolling.RollingFileAppender">
  188 + <file>${LOG_BASE}/gps_state/state_directive.log</file>
  189 + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  190 + <fileNamePattern>${LOG_BASE}/gps_state/state_directive-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  191 + <timeBasedFileNamingAndTriggeringPolicy
  192 + class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  193 + <maxFileSize>100MB</maxFileSize>
  194 + </timeBasedFileNamingAndTriggeringPolicy>
  195 + </rollingPolicy>
  196 +
  197 + <layout class="ch.qos.logback.classic.PatternLayout">
  198 + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n
  199 + </pattern>
  200 + </layout>
  201 + </appender>
  202 + <logger name="com.bsth.data.gpsdata.status_manager"
  203 + level="INFO" additivity="false">
  204 + <appender-ref ref="GPS_STATUS_DIRECTIVE" />
  205 + </logger>
  206 +
  207 + <!-- 消息队列纪录 -->
  208 + <appender name="QUEUE_WEB_SOCKET"
  209 + class="ch.qos.logback.core.rolling.RollingFileAppender">
  210 + <file>${LOG_BASE}/msg_queue/websocket.log</file>
  211 + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  212 + <fileNamePattern>${LOG_BASE}/msg_queue/websocket-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  213 + <timeBasedFileNamingAndTriggeringPolicy
  214 + class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  215 + <maxFileSize>100MB</maxFileSize>
  216 + </timeBasedFileNamingAndTriggeringPolicy>
  217 + </rollingPolicy>
  218 +
  219 + <layout class="ch.qos.logback.classic.PatternLayout">
  220 + <pattern>%d{MM-dd HH:mm:ss.SSS} %-5level -%msg%n
  221 + </pattern>
  222 + </layout>
  223 + </appender>
  224 + <logger name="com.bsth.data.msg_queue.WebSocketPushQueue"
  225 + level="INFO" additivity="false">
  226 + <appender-ref ref="QUEUE_WEB_SOCKET" />
  227 + </logger>
  228 + <appender name="QUEUE_DIRECTIVE"
  229 + class="ch.qos.logback.core.rolling.RollingFileAppender">
  230 + <file>${LOG_BASE}/msg_queue/directive.log</file>
  231 + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  232 + <fileNamePattern>${LOG_BASE}/msg_queue/directive-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  233 + <timeBasedFileNamingAndTriggeringPolicy
  234 + class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  235 + <maxFileSize>100MB</maxFileSize>
  236 + </timeBasedFileNamingAndTriggeringPolicy>
  237 + </rollingPolicy>
  238 +
  239 + <layout class="ch.qos.logback.classic.PatternLayout">
  240 + <pattern>%d{MM-dd HH:mm:ss.SSS} %-5level -%msg%n
  241 + </pattern>
  242 + </layout>
  243 + </appender>
  244 + <logger name="com.bsth.data.msg_queue.DirectivePushQueue"
  245 + level="INFO" additivity="false">
  246 + <appender-ref ref="QUEUE_DIRECTIVE" />
  247 + </logger>
  248 +
  249 + <!--<logger name="org.hibernate.SQL" level="TRACE">-->
  250 + <!--<appender-ref ref="STDOUT" />-->
  251 + <!--</logger>-->
  252 +
  253 + <!-- 实际排班数据库更新日志 -->
  254 + <!-- 消息队列纪录 -->
  255 + <appender name="REAL_SCHEDULE_UPDATE"
  256 + class="ch.qos.logback.core.rolling.RollingFileAppender">
  257 + <file>${LOG_BASE}/real_sch_db/update.log</file>
  258 + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  259 + <fileNamePattern>${LOG_BASE}/real_sch_db/update-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  260 + <timeBasedFileNamingAndTriggeringPolicy
  261 + class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  262 + <maxFileSize>100MB</maxFileSize>
  263 + </timeBasedFileNamingAndTriggeringPolicy>
  264 + </rollingPolicy>
  265 +
  266 + <layout class="ch.qos.logback.classic.PatternLayout">
  267 + <pattern>%d{MM-dd HH:mm:ss.SSS} %-5level -%msg%n
  268 + </pattern>
  269 + </layout>
  270 + </appender>
  271 + <logger name="com.bsth.data.schedule.thread.SchedulePstThread"
  272 + level="INFO" additivity="false">
  273 + <appender-ref ref="REAL_SCHEDULE_UPDATE" />
  274 + </logger>
  275 +
  276 + <!--JdbcTemplate的日志输出器 -->
  277 + <logger name="org.springframework.jdbc.core.StatementCreatorUtils"
  278 + additivity="false" level="INFO">
  279 + <appender-ref ref="STDOUT" />
  280 + </logger>
  281 + <logger name="org.springframework.jdbc.core" additivity="true">
  282 + <level value="INFO" />
  283 + <appender-ref ref="STDOUT" />
  284 + </logger>
  285 + <logger name="java.sql.Connection" additivity="true">
  286 + <level value="INFO" />
  287 + <appender-ref ref="STDOUT" />
  288 + </logger>
  289 + <logger name="java.sql.Statement" additivity="true">
  290 + <level value="INFO" />
  291 + <appender-ref ref="STDOUT" />
  292 + </logger>
  293 + <logger name="java.sql.PreparedStatement" additivity="true">
  294 + <level value="INFO" />
  295 + <appender-ref ref="STDOUT" />
  296 + </logger>
  297 + <logger name="java.sql.ResultSet" additivity="true">
  298 + <level value="INFO" />
  299 + <appender-ref ref="STDOUT" />
  300 + </logger>
  301 +
  302 + <!-- 日志输出级别 -->
  303 + <root level="info">
  304 + <appender-ref ref="STDOUT" />
  305 + <appender-ref ref="FILE" />
  306 + </root>
307 </configuration> 307 </configuration>
308 \ No newline at end of file 308 \ No newline at end of file
src/main/resources/ms-jdbc.properties
1 -#ms.mysql.driver= com.mysql.jdbc.Driver  
2 -#ms.mysql.url= jdbc:mysql://192.168.168.201:3306/ms?useUnicode=true&characterEncoding=utf-8&useSSL=false  
3 -#ms.mysql.username= root  
4 -#ms.mysql.password= 123456  
5 -  
6 -ms.mysql.driver= com.mysql.jdbc.Driver  
7 -ms.mysql.url= jdbc:mysql://112.64.148.30:54002/ms?useUnicode=true&characterEncoding=utf-8  
8 -ms.mysql.username= root  
9 -ms.mysql.password= Aa123456 1 +#ms.mysql.driver= com.mysql.jdbc.Driver
  2 +#ms.mysql.url= jdbc:mysql://192.168.168.201:3306/ms?useUnicode=true&characterEncoding=utf-8&useSSL=false
  3 +#ms.mysql.username= root
  4 +#ms.mysql.password= 123456
  5 +
  6 +ms.mysql.driver= com.mysql.jdbc.Driver
  7 +ms.mysql.url= jdbc:mysql://192.168.210.128/ms?useUnicode=true&characterEncoding=utf-8
  8 +ms.mysql.username= root
  9 +ms.mysql.password= Aa123456
src/main/resources/static/index.html
1 -<!DOCTYPE html>  
2 -<html lang="zh">  
3 -<head>  
4 - <meta name="renderer" content="webkit" />  
5 - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />  
6 - <meta charset="UTF-8">  
7 - <title>调度系统</title>  
8 -  
9 - <meta http-equiv="Pragma" content="no-cache">  
10 - <meta http-equiv="Cache-control" content="no-cache">  
11 - <meta http-equiv="Cache" content="no-cache">  
12 -  
13 - <!-- Font Awesome 图标字体 -->  
14 - <link  
15 - href="/metronic_v4.5.4/plugins/font-awesome/css/font-awesome.min.css"  
16 - rel="stylesheet" type="text/css" />  
17 - <!-- Bootstrap style -->  
18 - <link href="/metronic_v4.5.4/plugins/bootstrap/css/bootstrap.min.css"  
19 - rel="stylesheet" type="text/css" />  
20 - <!-- jsTree 数插件 -->  
21 - <link  
22 - href="/metronic_v4.5.4/plugins/jstree/dist/themes/default/style.min.css"  
23 - rel="stylesheet" type="text/css" />  
24 - <!-- MULTI-select 多选下拉框美化 -->  
25 - <link  
26 - href="/metronic_v4.5.4/plugins/jquery-multi-select/css/multi-select.css"  
27 - rel="stylesheet" type="text/css" />  
28 -  
29 - <!-- editable -->  
30 - <link  
31 - href="/metronic_v4.5.4/plugins/bootstrap-editable/bootstrap-editable/css/bootstrap-editable.css"  
32 - rel="stylesheet" type="text/css" />  
33 - <!-- METRONIC style -->  
34 - <link href="/metronic_v4.5.4/layout4/css/themes/light.min.css"  
35 - rel="stylesheet" type="text/css" id="style_color" />  
36 - <link href="/metronic_v4.5.4/css/components.css" rel="stylesheet"  
37 - type="text/css" />  
38 - <link href="/metronic_v4.5.4/css/plugins.css" rel="stylesheet"  
39 - type="text/css" />  
40 - <link href="/metronic_v4.5.4/layout4/css/layout.min.css"  
41 - rel="stylesheet" type="text/css" />  
42 - <link href="/metronic_v4.5.4/layout4/css/custom.min.css"  
43 - rel="stylesheet" type="text/css" />  
44 - <!-- select2 下拉框插件 -->  
45 - <link href="/metronic_v4.5.4/plugins/select2/css/select2.min.css"  
46 - rel="stylesheet" type="text/css" />  
47 - <link  
48 - href="/metronic_v4.5.4/plugins/select2/css/select2-bootstrap.min.css"  
49 - rel="stylesheet" type="text/css" />  
50 - <!-- layer 弹层 插件 -->  
51 - <link href="/assets/plugins/layer-v2.4/layer/skin/layer.css"  
52 - rel="stylesheet" type="text/css" />  
53 - <!-- fileinput 上传 插件 -->  
54 - <link href="/assets/plugins/fileinput/css/fileinput.min.css"  
55 - rel="stylesheet" type="text/css" />  
56 - <!-- iCheck 单选框和复选框 -->  
57 - <link href="/metronic_v4.5.4/plugins/icheck/skins/all.css"  
58 - rel="stylesheet" type="text/css" />  
59 - <!-- 日期控件 -->  
60 - <link  
61 - href="/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/css/bootstrap-datetimepicker.min.css"  
62 - rel="stylesheet" type="text/css" />  
63 - <!-- table 表格控件 -->  
64 - <!--<link rel="stylesheet"-->  
65 - <!--href="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.css"-->  
66 - <!--type="text/css" />-->  
67 - <link href="/metronic_v4.5.4/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css" rel="stylesheet" type="text/css"/>  
68 - <!-- handsontable样式 -->  
69 - <link rel="stylesheet"  
70 - href="/assets/bower_components/handsontable/dist/handsontable.full.css" />  
71 - <!-- sweetalert样式 -->  
72 - <link rel="stylesheet"  
73 - href="/assets/bower_components/sweetalert/dist/sweetalert.css" />  
74 - <!-- schedule计划调度AngularJS模块主css -->  
75 - <link rel="stylesheet" href="/pages/scheduleApp/module/common/main.css"  
76 - type="text/css" />  
77 - <link rel="stylesheet" href="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.css" merge="plugins"/>  
78 -  
79 - <!-- CSS动画 -->  
80 - <link  
81 - href="/metronic_v4.5.4/plugins/tipso/css/animate.css"  
82 - rel="stylesheet" type="text/css" />  
83 -  
84 - <!-- 提示工具样式 -->  
85 - <link  
86 - href="/metronic_v4.5.4/plugins/tipso/css/tipso.css"  
87 - rel="stylesheet" type="text/css" />  
88 -  
89 - <style type="text/css">  
90 - .searchForm {  
91 -  
92 - }  
93 -  
94 - .searchForm .form-group .control-label {  
95 - padding-right: 0px;  
96 - text-align: right;  
97 - margin-top: 7px;  
98 - }  
99 -  
100 - .searchForm .form-group>div {  
101 - padding-left: 10px;  
102 - padding-right: 0px;  
103 - }  
104 -  
105 - .searchForm .row>div {  
106 - padding-left: 0px;  
107 - padding-right: 0px;  
108 - padding: 5px 0 5px 0;  
109 - width: 270px;  
110 - display: inline-block;  
111 - }  
112 -  
113 - .searchForm .form-actions {  
114 -  
115 - }  
116 -  
117 - tr.row-active td {  
118 - border-bottom: 1px solid blue !important;  
119 - color: blue;  
120 - }  
121 -  
122 - .ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection  
123 - {  
124 - font-size: 14px;  
125 - }  
126 -  
127 - .ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection  
128 - {  
129 - padding: 6px 26px;  
130 - }  
131 -  
132 - .ms-container .ms-list {  
133 - height: 306px;  
134 - }  
135 -  
136 - .ms-container .ms-selectable,.ms-container .ms-selection {  
137 - width: 47%;  
138 - }  
139 -  
140 - .ms-container {  
141 - width: 470px;  
142 - margin: auto;  
143 - }  
144 -  
145 - .multi-custom-header-left {  
146 - text-align: center;  
147 - padding: 7px;  
148 - color: #3B3F51;  
149 - }  
150 -  
151 - .multi-custom-header-right {  
152 - text-align: center;  
153 - padding: 7px;  
154 - font-weight: bold;  
155 - color: #36C6D3;  
156 - }  
157 -  
158 - .mt-element-list .list-simple.mt-list-container ul>.mt-list-item>.list-item-content  
159 - {  
160 - padding: 0 55px 0 0px;  
161 - }  
162 -  
163 - .mt-element-list .list-simple.mt-list-container ul>.mt-list-item {  
164 - padding: 3.3px 0;  
165 - }  
166 -  
167 - #route-container {  
168 - display: none;  
169 - }  
170 -  
171 - .page-content.active {  
172 - display: block !important;  
173 - }  
174 -  
175 - .page-header.navbar .page-logo .logo-default {  
176 - margin: 0;  
177 - }  
178 -  
179 - .page-header.navbar .top-menu .navbar-nav>li.dropdown.open .dropdown-toggle  
180 - {  
181 - background-color: #284a99;  
182 - }  
183 -  
184 - .page-header.navbar .page-logo {  
185 - padding-right: 10px;  
186 - }  
187 -  
188 - .page-logo .logo-default.logo-default-text {  
189 - font-weight: 600;  
190 - color: white !important;  
191 - margin-top: 19px !important;  
192 - font-size: 24px;  
193 - text-decoration: none;  
194 - }  
195 -  
196 - .page-logo .logo-default.logo-default-text:HOVER {  
197 - color: #dedede !important;  
198 - }  
199 -  
200 - body,.page-content-wrapper,#pjax-container{  
201 - height: 100%;  
202 - }  
203 - html{  
204 - height: 90%;  
205 - }  
206 - .page-container{  
207 - height: 100%;  
208 - }  
209 - </style>  
210 -  
211 - <!-- ocLazyLoading载入文件的位置 -->  
212 - <link id="ng_load_plugins_before" />  
213 -  
214 -</head>  
215 -<body  
216 - class="page-container-bg-solid page-header-fixed page-sidebar-closed-hide-logo page-sidebar-fixed">  
217 -<div class="page-header navbar navbar-fixed-top"  
218 - style="background: linear-gradient(to bottom, #124e78, #125688);">  
219 - <div class="page-header-inner ">  
220 - <!-- LOGO -->  
221 - <div class="page-logo">  
222 - <a href="index.html" class="logo-default logo-default-text">  
223 - 调度系统 </a>  
224 - <div class="menu-toggler sidebar-toggler"></div>  
225 - </div>  
226 - <!-- END LOGO -->  
227 - <a href="javascript:;" class="menu-toggler responsive-toggler"  
228 - data-toggle="collapse" data-target=".navbar-collapse"> </a>  
229 - <div class="page-top">  
230 - <div class="top-menu">  
231 - <ul class="nav navbar-nav pull-right">  
232 - <!-- 信息通知区 -->  
233 - <li  
234 - class="dropdown dropdown-extended dropdown-notification dropdown-dark"  
235 - id="header_notification_bar"><a href="javascript:;"  
236 - class="dropdown-toggle" data-toggle="dropdown"  
237 - data-hover="dropdown" data-close-others="true"> <i  
238 - class="fa fa-bell"></i> <span class="badge badge-success">  
239 - 0 </span>  
240 - </a>  
241 - <ul class="dropdown-menu" style="max-width: 345px; width: 345px;">  
242 - <li class="external">  
243 - <h3>  
244 - 今日 <span class="bold">0 条</span> 通知  
245 - </h3> <a href="javascript:;">查看全部</a>  
246 - </li>  
247 - <li>  
248 - <ul class="dropdown-menu-list scroller" style="height: 250px;"  
249 - data-handle-color="#637283">  
250 - </ul>  
251 - </li>  
252 - </ul></li>  
253 - <li class="dropdown dropdown-user dropdown-dark"><a  
254 - href="javascript:;" class="dropdown-toggle"  
255 - data-toggle="dropdown" data-hover="dropdown"  
256 - data-close-others="true"> <span id="indexTopUName"  
257 - class="username username-hide-on-mobile"  
258 - style="vertical-align: middle;"> <i class="fa fa-user"></i></span>  
259 - </a>  
260 - <ul class="dropdown-menu dropdown-menu-default">  
261 - <li><a href="javascript:;"> <i class="fa fa-user"></i>  
262 - 我的信息  
263 - </a></li>  
264 - <li><a href="javascript:;" id="changePWD"> <i  
265 - class="fa fa-unlock-alt"></i> 修改密码  
266 - </a></li>  
267 - <li class="divider"></li>  
268 - <li><a href="javascript:;"> <i class="fa fa-lock"></i>  
269 - 锁屏  
270 - </a></li>  
271 - <li><a href="/logout"> <i class="fa fa-key"></i> 注销登陆  
272 - </a></li>  
273 - </ul></li>  
274 - </ul>  
275 - </div>  
276 - </div>  
277 - </div>  
278 -</div>  
279 -<div class="page-container">  
280 - <div class="page-sidebar-wrapper">  
281 - <div class="page-sidebar navbar-collapse collapse">  
282 - <ul class="page-sidebar-menu page-sidebar-menu-fixed"  
283 - data-keep-expanded="false" data-auto-scroll="true"  
284 - data-slide-speed="200" id="leftMenuSidebar">  
285 - </ul>  
286 - </div>  
287 - </div>  
288 - <div class="page-content-wrapper">  
289 - <div id="pjax-container" class="page-content"></div>  
290 - <a name="xd_position"></a>  
291 - <div id="route-container">  
292 - <div ng-app="ScheduleApp">  
293 - <div ng-controller="ScheduleAppController">  
294 -  
295 - <!-- loading widget -->  
296 - <div id="loadingWidget" class="flyover mask" loading-widget>  
297 - <div class="alert alert-info">  
298 - <strong>载入中......</strong>  
299 - </div>  
300 - </div>  
301 -  
302 - <div ui-view class="uv"></div>  
303 - </div>  
304 - </div>  
305 - </div>  
306 - </div>  
307 -</div>  
308 -  
309 -<script id="menu_list_temp" type="text/html">  
310 - {{each list as group i}}  
311 - <li class="heading">  
312 - <h3 class="uppercase">{{group.name}}</h3>  
313 - </li>  
314 - {{each group.children as dir j}}  
315 - <li class="nav-item">  
316 - <a href="javascript:;" class="nav-link nav-toggle ">  
317 - <i class="{{dir.icon}}"></i>  
318 - <span class="title">{{dir.name}}</span>  
319 - <span class="arrow"></span>  
320 - </a>  
321 - <ul class="sub-menu">  
322 - {{each dir.children as module s}}  
323 - <li class="nav-item ">  
324 - {{if module.container=="pjax-container"}}  
325 - <a href="/pages/{{module.path}}" class="nav-link " data-pjax>  
326 - <span class="title">{{module.name}}</span>  
327 - </a>  
328 - {{else}}  
329 - <a href="{{module.path}}" class="nav-link " data-angularjs>  
330 - <span class="title">{{module.name}}</span>  
331 - </a>  
332 - {{/if}}  
333 - </li>  
334 - {{/each}}  
335 - </ul>  
336 - </li>  
337 - {{/each}}  
338 - {{/each}}  
339 -  
340 -</script>  
341 -<script>  
342 - delete window.require;  
343 - delete window.exports;  
344 - delete window.module;  
345 -</script>  
346 -<!-- jQuery -->  
347 -<script src="/metronic_v4.5.4/plugins/jquery.min.js" data-exclude=1></script>  
348 -<!-- bootstrap -->  
349 -<script src="/metronic_v4.5.4/plugins/bootstrap/js/bootstrap.min.js"  
350 - data-exclude=1></script>  
351 -<script src="/pages/forms/statement/js/jquery.autocompleter.js"></script>  
352 -<script src="/pages/forms/statement/js/jquery.PrintArea.js"></script>  
353 -<!-- MTRONIC JS -->  
354 -<script src="/metronic_v4.5.4/scripts/app.min.js" data-exclude=1></script>  
355 -<script src="/metronic_v4.5.4/layout4/scripts/layout.min.js"  
356 - data-exclude=1></script>  
357 -<!-- 虚拟滚动条 -->  
358 -<script  
359 - src="/metronic_v4.5.4/plugins/jquery-slimscroll/jquery.slimscroll.min.js"></script>  
360 -<!-- jsTree 树插件 -->  
361 -<script src="/metronic_v4.5.4/plugins/jstree/dist/jstree.min.js"></script>  
362 -<!-- bootstrap-hover-dropDown -->  
363 -<script  
364 - src="/metronic_v4.5.4/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js"></script>  
365 -<!-- jquery.validate 表单验证 -->  
366 -<script  
367 - src="/metronic_v4.5.4/plugins/jquery-validation/js/jquery.validate.min.js"></script>  
368 -<script  
369 - src="/metronic_v4.5.4/plugins/jquery-validation/js/localization/messages_zh.js"></script>  
370 -<!-- 向导式插件 -->  
371 -<script  
372 - src="/metronic_v4.5.4//plugins/bootstrap-wizard/jquery.bootstrap.wizard.min.js"></script>  
373 -<!-- iCheck 单选框和复选框 -->  
374 -<script src="/metronic_v4.5.4/plugins/icheck/icheck.min.js"></script>  
375 -<!-- select2 下拉框 -->  
376 -<script src="/metronic_v4.5.4/plugins/select2/js/select2.full.min.js"></script>  
377 -<!-- MULTI SELECT 多选下拉框 -->  
378 -<script  
379 - src="/metronic_v4.5.4/plugins/jquery-multi-select/js/jquery.multi-select.js"></script>  
380 -<!-- editable.js -->  
381 -<script  
382 - src="/metronic_v4.5.4/plugins/bootstrap-editable/bootstrap-editable/js/bootstrap-editable.min.js"></script>  
383 -<!-- PJAX -->  
384 -<script src="/assets/plugins/jquery.pjax.js"></script>  
385 -<!-- layer 弹层 -->  
386 -<script src="/assets/plugins/layer-v2.4/layer/layer.js" data-exclude=1></script>  
387 -<!-- fileinput 上传 -->  
388 -<script src="/assets/plugins/fileinput/canvas-to-blob.min.js"></script>  
389 -<script src="/assets/plugins/fileinput/purify.min.js"></script>  
390 -<script src="/assets/plugins/fileinput/sortable.min.js"></script>  
391 -<script src="/assets/plugins/fileinput/fileinput.min.js"></script>  
392 -<script src="/assets/plugins/fileinput/fileinput_locale_zh.js"></script>  
393 -<!-- jquery.purl URL解析 -->  
394 -<script src="/assets/plugins/purl.js"></script>  
395 -<!-- jquery.serializejson JSON序列化插件 -->  
396 -<script src="/assets/plugins/jquery.serializejson.js"></script>  
397 -<!-- art-template 模版引擎 -->  
398 -<script src="/assets/plugins/template.js"></script>  
399 -<!-- jquery.pageinator 分页 -->  
400 -<script src="/assets/plugins/jqPaginator.min.js"></script>  
401 -<!-- moment.js 日期处理类库 -->  
402 -<script src="/assets/plugins/moment-with-locales.js"></script>  
403 -  
404 -<script src="/assets/plugins/pinyin.js"></script>  
405 -<!-- 日期控件 -->  
406 -<script  
407 - src="/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/js/bootstrap-datetimepicker.min.js"></script>  
408 -<!-- 表格控件 -->  
409 -<script src="/metronic_v4.5.4/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js"></script>  
410 -<!-- 统计图控件 -->  
411 -<!--<script src="/assets/global/getEchart.js"></script>  
412 -<script src="/assets/global/echarts.js"></script> -->  
413 -<script src="/assets/js/common.js"></script>  
414 -<script src="/assets/js/dictionary.js"></script>  
415 -<!-- tipso JS -->  
416 -<script src="/metronic_v4.5.4/plugins/tipso/js/tipso.js"></script>  
417 -<script data-exclude=1>  
418 - //初始打开的片段地址  
419 - var initFragment = "^_^initFragment^_^";  
420 - //静态文件目录  
421 - var dir = '/pages/';  
422 - //片段容器  
423 - var pjaxContainer = '#pjax-container'  
424 - , angJsContainer = '#route-container';  
425 -  
426 - $(document).ajaxError(function (event, jqxhr, settings, thrownError) {  
427 - if(jqxhr.status == 403){  
428 - layer.closeAll();  
429 - layer.alert(jqxhr.message?jqxhr.message:'访问被拒绝', {icon: 2, title: '操作失败'});  
430 - }  
431 - });  
432 -  
433 - $(function () {  
434 - $.get('/user/currentUser', function (user) {  
435 - $('#indexTopUName').text(user.userName);  
436 - });  
437 -  
438 - //带 data-pjax 的链接由pjax加载  
439 - $(document).pjax('a[data-pjax]', pjaxContainer);  
440 -  
441 - //pjax左菜单点击事件  
442 - $(document).on('click', '#leftMenuSidebar a[data-pjax]', function () {  
443 - setTitle(this);  
444 -  
445 - $('#leftMenuSidebar li.nav-item.active').removeClass('active');  
446 - $(this).parent().addClass('active');  
447 - showPjax();  
448 - });  
449 -  
450 - //angularjs左菜单点击事件  
451 - $(document).on('click', '#leftMenuSidebar a[data-angularjs]', function () {  
452 - setTitle(this);  
453 -  
454 - $('#leftMenuSidebar li.nav-item.active').removeClass('active');  
455 - $(this).parent().addClass('active');  
456 - showAngJs();  
457 - });  
458 -  
459 - //加载左菜单栏  
460 - $get('/module/findByCurrentUser', null,  
461 - function (ms) {  
462 - var treeArray = createTreeData(ms);  
463 - treeArray.sort(function (a, b) {  
464 - return a.createDate - b.createDate;  
465 - });  
466 - var menuHtml = template('menu_list_temp', {list: treeArray});  
467 - $('#leftMenuSidebar').html(menuHtml);  
468 -  
469 - //----------- 检查URL ----------------  
470 - var h = location.hash;  
471 - if (initFragment && initFragment != '') {  
472 - showPjax();  
473 - //普通片段  
474 - loadPage(initFragment);  
475 - //选中菜单  
476 - $.each($('#leftMenuSidebar a'), function (i, item) {  
477 - if (urlPattern($(item).attr('href'), initFragment)) {  
478 - activeLeftMenu(item);  
479 - }  
480 - });  
481 - } else if (h) {  
482 - //angularjs片段  
483 - showAngJs();  
484 - //选中菜单  
485 - $.each($('#leftMenuSidebar a'), function (i, item) {  
486 - if ($(item).attr('href') == h) {  
487 - activeLeftMenu(item);  
488 - }  
489 - });  
490 - }  
491 - else {  
492 - //加载主页  
493 - loadPage('/pages/home.html');  
494 - }  
495 - });  
496 -  
497 - //修改密码  
498 - $('#changePWD').on('click', function () {  
499 - $.get('/pages/permission/user/changePWD.html', function (content) {  
500 - layer.open({  
501 - type: 1,  
502 - area: ['600px', '360px'],  
503 - content: content,  
504 - title: '修改密码',  
505 - shift: 5,  
506 - scrollbar: false,  
507 - success: function () {  
508 - }  
509 - });  
510 - });  
511 - });  
512 - });  
513 -  
514 - //modal关闭时销毁dom  
515 - $(document).on('hidden.bs.modal', '.modal', function () {  
516 - $(this).remove();  
517 - });  
518 -  
519 - //pjax加载完成事件  
520 - $(document).on('pjax:success', function () {  
521 - var dicts = $(pjaxContainer).find('.nt-dictionary');  
522 - dictionaryUtils.transformDom(dicts);  
523 - });  
524 -  
525 - function loadPage(url) {  
526 - $.pjax({url: url, container: pjaxContainer})  
527 - }  
528 -  
529 - function urlPattern(a, b) {  
530 - var r;  
531 - try {  
532 - r = a.substring(0, a.lastIndexOf('/')) == b.substring(0, b.lastIndexOf('/'));  
533 - } catch (e) {  
534 - r = false;  
535 - }  
536 - return r;  
537 - }  
538 -  
539 - function showPjax() {  
540 - $(angJsContainer).removeClass('page-content active').hide();  
541 - $(pjaxContainer).addClass('page-content active');  
542 - }  
543 -  
544 - function showAngJs() {  
545 - $(pjaxContainer).html('').removeClass('page-content active').hide();  
546 - $(angJsContainer).addClass('page-content active');  
547 - }  
548 -  
549 - function activeLeftMenu(item) {  
550 - $(item).parent('.nav-item').addClass('active').parent('.sub-menu').show().parent().addClass('open');  
551 - setTitle(item);  
552 - }  
553 -  
554 - function setTitle(menuItem){  
555 - document.title = $('span.title', menuItem).text();  
556 - }  
557 -  
558 -</script>  
559 -<!-- d3 -->  
560 -<script src="/assets/js/d3.min.js" data-exclude=1></script>  
561 -<!-- webSocket JS -->  
562 -<script src="/assets/js/sockjs.min.js"></script>  
563 -  
564 -<!-- TODO:angularJS相关库 -->  
565 -  
566 -<!-- angularJS相关库 -->  
567 -<!-- 这个是基于angularjs 1.4.10修改的版本,主要是修改了history控制部分,用于兼容route和pjax的同时操作history的冲突 -->  
568 -<script src="/assets/js/angular.js" data-autocephaly=1></script>  
569 -<script src="/assets/bower_components/angular-i18n/angular-locale_zh-cn.js" data-autocephaly=1></script>  
570 -<script  
571 - src="/assets/bower_components/angular-resource/angular-resource.min.js"  
572 - data-exclude=1></script>  
573 -<script  
574 - src="/assets/bower_components/angular-sanitize/angular-sanitize.min.js"  
575 - data-exclude=1></script>  
576 -<script  
577 - src="/assets/bower_components/angular-animate/angular-animate.min.js"  
578 - data-exclude=1></script>  
579 -<script  
580 - src="/assets/bower_components/angular-touch/angular-touch.min.js"  
581 - data-exclude=1></script>  
582 -<script  
583 - src="/assets/bower_components/angular-ui-router/release/angular-ui-router.min.js"  
584 - data-exclude=1></script>  
585 -<script  
586 - src="/assets/bower_components/oclazyload/dist/ocLazyLoad.min.js"  
587 - data-exclude=1></script>  
588 -<script  
589 - src="/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"  
590 - data-exclude=1></script>  
591 -<!-- handsontable相关js -->  
592 -<script  
593 - src="/assets/bower_components/handsontable/dist/handsontable.full.js"></script>  
594 -<script  
595 - src="/assets/bower_components/ngHandsontable/dist/ngHandsontable.js"></script>  
596 -<!-- sweetalert相关js -->  
597 -<script src="/assets/bower_components/sweetalert/dist/sweetalert.min.js"></script>  
598 -<script src="/assets/bower_components/ng-sweet-alert/ng-sweet-alert.js"></script>  
599 -  
600 -<!-- schedule计划调度AngularJS模块主JS -->  
601 -<script src="/pages/scheduleApp/module/common/main.js" data-exclude=1></script>  
602 -<script  
603 - src="/pages/scheduleApp/module/common/prj-common-globalservice.js"  
604 - data-exclude=1></script>  
605 -<script src="/pages/scheduleApp/module/common/prj-common-filter.js"  
606 - data-exclude=1></script>  
607 -<script src="/pages/scheduleApp/module/common/prj-common-directive.js"  
608 - data-exclude=1></script>  
609 -<script  
610 - src="/pages/scheduleApp/module/common/prj-common-ui-route-state.js"  
611 - data-exclude=1></script>  
612 -  
613 -<!-- 地图相关 -->  
614 -<!-- 百度 -->  
615 -<script  
616 - src="http://api.map.baidu.com/api?v=2.0&ak=IGGrr4UjwIYzatoCRFKEL8sT"  
617 - data-exclude=1></script>  
618 -<script  
619 - src="http://api.map.baidu.com/library/TrafficControl/1.4/src/TrafficControl_min.js"  
620 - data-exclude=1></script>  
621 -<script type="text/javascript"  
622 - src="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"  
623 - data-exclude=1></script>  
624 -<script type="text/javascript"  
625 - src="http://api.map.baidu.com/library/RichMarker/1.2/src/RichMarker_min.js "  
626 - data-exclude=1></script>  
627 -<script src="/assets/js/baidu/TextIconOverlay.js" data-exclude=1></script>  
628 -<script src="/assets/js/baidu//MarkerClusterer.js" data-exclude=1></script>  
629 -<!-- 高德 -->  
630 -<script  
631 - src="http://webapi.amap.com/maps?v=1.3&key=16cb1c5043847e09ef9edafdd77befda"  
632 - data-exclude=1></script>  
633 -<!-- echarts4 误删 -->  
634 -<script src="/metronic_v4.5.4/plugins/echarts4/echarts.min.js"></script>  
635 -<script src="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.jquery.js" merge="plugins"></script>  
636 -  
637 -</body> 1 +<!DOCTYPE html>
  2 +<html lang="zh">
  3 +<head>
  4 + <meta name="renderer" content="webkit" />
  5 + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  6 + <meta charset="UTF-8">
  7 + <title>调度系统</title>
  8 +
  9 + <meta http-equiv="Pragma" content="no-cache">
  10 + <meta http-equiv="Cache-control" content="no-cache">
  11 + <meta http-equiv="Cache" content="no-cache">
  12 +
  13 + <!-- Font Awesome 图标字体 -->
  14 + <link
  15 + href="/metronic_v4.5.4/plugins/font-awesome/css/font-awesome.min.css"
  16 + rel="stylesheet" type="text/css" />
  17 + <!-- Bootstrap style -->
  18 + <link href="/metronic_v4.5.4/plugins/bootstrap/css/bootstrap.min.css"
  19 + rel="stylesheet" type="text/css" />
  20 + <!-- jsTree 数插件 -->
  21 + <link
  22 + href="/metronic_v4.5.4/plugins/jstree/dist/themes/default/style.min.css"
  23 + rel="stylesheet" type="text/css" />
  24 + <!-- MULTI-select 多选下拉框美化 -->
  25 + <link
  26 + href="/metronic_v4.5.4/plugins/jquery-multi-select/css/multi-select.css"
  27 + rel="stylesheet" type="text/css" />
  28 +
  29 + <!-- editable -->
  30 + <link
  31 + href="/metronic_v4.5.4/plugins/bootstrap-editable/bootstrap-editable/css/bootstrap-editable.css"
  32 + rel="stylesheet" type="text/css" />
  33 + <!-- METRONIC style -->
  34 + <link href="/metronic_v4.5.4/layout4/css/themes/light.min.css"
  35 + rel="stylesheet" type="text/css" id="style_color" />
  36 + <link href="/metronic_v4.5.4/css/components.css" rel="stylesheet"
  37 + type="text/css" />
  38 + <link href="/metronic_v4.5.4/css/plugins.css" rel="stylesheet"
  39 + type="text/css" />
  40 + <link href="/metronic_v4.5.4/layout4/css/layout.min.css"
  41 + rel="stylesheet" type="text/css" />
  42 + <link href="/metronic_v4.5.4/layout4/css/custom.min.css"
  43 + rel="stylesheet" type="text/css" />
  44 + <!-- select2 下拉框插件 -->
  45 + <link href="/metronic_v4.5.4/plugins/select2/css/select2.min.css"
  46 + rel="stylesheet" type="text/css" />
  47 + <link
  48 + href="/metronic_v4.5.4/plugins/select2/css/select2-bootstrap.min.css"
  49 + rel="stylesheet" type="text/css" />
  50 + <!-- layer 弹层 插件 -->
  51 + <link href="/assets/plugins/layer-v2.4/layer/skin/layer.css"
  52 + rel="stylesheet" type="text/css" />
  53 + <!-- fileinput 上传 插件 -->
  54 + <link href="/assets/plugins/fileinput/css/fileinput.min.css"
  55 + rel="stylesheet" type="text/css" />
  56 + <!-- iCheck 单选框和复选框 -->
  57 + <link href="/metronic_v4.5.4/plugins/icheck/skins/all.css"
  58 + rel="stylesheet" type="text/css" />
  59 + <!-- 日期控件 -->
  60 + <link
  61 + href="/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/css/bootstrap-datetimepicker.min.css"
  62 + rel="stylesheet" type="text/css" />
  63 + <!-- table 表格控件 -->
  64 + <!--<link rel="stylesheet"-->
  65 + <!--href="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.css"-->
  66 + <!--type="text/css" />-->
  67 + <link href="/metronic_v4.5.4/plugins/bootstrap-tagsinput/bootstrap-tagsinput.css" rel="stylesheet" type="text/css"/>
  68 + <!-- handsontable样式 -->
  69 + <link rel="stylesheet"
  70 + href="/assets/bower_components/handsontable/dist/handsontable.full.css" />
  71 + <!-- sweetalert样式 -->
  72 + <link rel="stylesheet"
  73 + href="/assets/bower_components/sweetalert/dist/sweetalert.css" />
  74 + <!-- schedule计划调度AngularJS模块主css -->
  75 + <link rel="stylesheet" href="/pages/scheduleApp/module/common/main.css"
  76 + type="text/css" />
  77 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.css" merge="plugins"/>
  78 +
  79 + <!-- CSS动画 -->
  80 + <link
  81 + href="/metronic_v4.5.4/plugins/tipso/css/animate.css"
  82 + rel="stylesheet" type="text/css" />
  83 +
  84 + <!-- 提示工具样式 -->
  85 + <link
  86 + href="/metronic_v4.5.4/plugins/tipso/css/tipso.css"
  87 + rel="stylesheet" type="text/css" />
  88 +
  89 + <style type="text/css">
  90 + .searchForm {
  91 +
  92 + }
  93 +
  94 + .searchForm .form-group .control-label {
  95 + padding-right: 0px;
  96 + text-align: right;
  97 + margin-top: 7px;
  98 + }
  99 +
  100 + .searchForm .form-group>div {
  101 + padding-left: 10px;
  102 + padding-right: 0px;
  103 + }
  104 +
  105 + .searchForm .row>div {
  106 + padding-left: 0px;
  107 + padding-right: 0px;
  108 + padding: 5px 0 5px 0;
  109 + width: 270px;
  110 + display: inline-block;
  111 + }
  112 +
  113 + .searchForm .form-actions {
  114 +
  115 + }
  116 +
  117 + tr.row-active td {
  118 + border-bottom: 1px solid blue !important;
  119 + color: blue;
  120 + }
  121 +
  122 + .ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection
  123 + {
  124 + font-size: 14px;
  125 + }
  126 +
  127 + .ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection
  128 + {
  129 + padding: 6px 26px;
  130 + }
  131 +
  132 + .ms-container .ms-list {
  133 + height: 306px;
  134 + }
  135 +
  136 + .ms-container .ms-selectable,.ms-container .ms-selection {
  137 + width: 47%;
  138 + }
  139 +
  140 + .ms-container {
  141 + width: 470px;
  142 + margin: auto;
  143 + }
  144 +
  145 + .multi-custom-header-left {
  146 + text-align: center;
  147 + padding: 7px;
  148 + color: #3B3F51;
  149 + }
  150 +
  151 + .multi-custom-header-right {
  152 + text-align: center;
  153 + padding: 7px;
  154 + font-weight: bold;
  155 + color: #36C6D3;
  156 + }
  157 +
  158 + .mt-element-list .list-simple.mt-list-container ul>.mt-list-item>.list-item-content
  159 + {
  160 + padding: 0 55px 0 0px;
  161 + }
  162 +
  163 + .mt-element-list .list-simple.mt-list-container ul>.mt-list-item {
  164 + padding: 3.3px 0;
  165 + }
  166 +
  167 + #route-container {
  168 + display: none;
  169 + }
  170 +
  171 + .page-content.active {
  172 + display: block !important;
  173 + }
  174 +
  175 + .page-header.navbar .page-logo .logo-default {
  176 + margin: 0;
  177 + }
  178 +
  179 + .page-header.navbar .top-menu .navbar-nav>li.dropdown.open .dropdown-toggle
  180 + {
  181 + background-color: #ffffff;
  182 + }
  183 +
  184 + .page-header.navbar .page-logo {
  185 + padding-right: 10px;
  186 + background-color: #1a2127;
  187 + }
  188 +
  189 + .page-logo .logo-default.logo-default-text {
  190 + font-weight: 600;
  191 + color: white !important;
  192 + margin-top: 19px !important;
  193 + font-size: 24px;
  194 + text-decoration: none;
  195 + }
  196 +
  197 + .page-logo .logo-default.logo-default-text:HOVER {
  198 + color: #ededed !important;
  199 + }
  200 +
  201 + body,.page-content-wrapper,#pjax-container{
  202 + height: 100%;
  203 + }
  204 + html{
  205 + height: 90%;
  206 + }
  207 + .page-container{
  208 + height: 100%;
  209 + }
  210 + </style>
  211 +
  212 + <!-- ocLazyLoading载入文件的位置 -->
  213 + <link id="ng_load_plugins_before" />
  214 +
  215 +</head>
  216 +<body
  217 + class="page-container-bg-solid page-header-fixed page-sidebar-closed-hide-logo page-sidebar-fixed">
  218 +<div class="page-header navbar navbar-fixed-top"
  219 + style="background: linear-gradient(to bottom, #ffffff, #ffffff);">
  220 + <div class="page-header-inner ">
  221 + <!-- LOGO -->
  222 + <div class="page-logo">
  223 + <a href="index.html" class="logo-default logo-default-text">
  224 + 调度系统 </a>
  225 + <div class="menu-toggler sidebar-toggler"></div>
  226 + </div>
  227 + <!-- END LOGO -->
  228 + <a href="javascript:;" class="menu-toggler responsive-toggler"
  229 + data-toggle="collapse" data-target=".navbar-collapse"> </a>
  230 + <div class="page-top">
  231 + <div class="top-menu">
  232 + <ul class="nav navbar-nav pull-right">
  233 + <!-- 信息通知区 -->
  234 + <li
  235 + class="dropdown dropdown-extended dropdown-notification dropdown-dark"
  236 + id="header_notification_bar"><a href="javascript:;"
  237 + class="dropdown-toggle" data-toggle="dropdown"
  238 + data-hover="dropdown" data-close-others="true"> <i
  239 + class="fa fa-bell"></i> <span class="badge badge-success">
  240 + 0 </span>
  241 + </a>
  242 + <ul class="dropdown-menu" style="max-width: 345px; width: 345px;">
  243 + <li class="external">
  244 + <h3>
  245 + 今日 <span class="bold">0 条</span> 通知
  246 + </h3> <a href="javascript:;">查看全部</a>
  247 + </li>
  248 + <li>
  249 + <ul class="dropdown-menu-list scroller" style="height: 250px;"
  250 + data-handle-color="#637283">
  251 + </ul>
  252 + </li>
  253 + </ul></li>
  254 + <li class="dropdown dropdown-user dropdown-dark"><a
  255 + href="javascript:;" class="dropdown-toggle"
  256 + data-toggle="dropdown" data-hover="dropdown"
  257 + data-close-others="true"><i className="fa fa-user"></i><span id="indexTopUName"
  258 + class="username username-hide-on-mobile"
  259 + style="vertical-align: middle;color: #a2a2a2;"></span>
  260 + </a>
  261 + <ul class="dropdown-menu dropdown-menu-default">
  262 + <li><a href="javascript:;"> <i class="fa fa-user"></i>
  263 + 我的信息
  264 + </a></li>
  265 + <li><a href="javascript:;" id="changePWD"> <i
  266 + class="fa fa-unlock-alt"></i> 修改密码
  267 + </a></li>
  268 + <li class="divider"></li>
  269 + <li><a href="javascript:;"> <i class="fa fa-lock"></i>
  270 + 锁屏
  271 + </a></li>
  272 + <li><a href="/logout"> <i class="fa fa-key"></i> 注销登陆
  273 + </a></li>
  274 + </ul></li>
  275 + </ul>
  276 + </div>
  277 + </div>
  278 + </div>
  279 +</div>
  280 +<div class="page-container">
  281 + <div class="page-sidebar-wrapper">
  282 + <div class="page-sidebar navbar-collapse collapse" style="background-color: #2d343c;margin-top: -20px;margin-left: -20px;margin-bottom: -20px;width: 265px;">
  283 + <ul class="page-sidebar-menu page-sidebar-menu-fixed"
  284 + data-keep-expanded="false" data-auto-scroll="true"
  285 + data-slide-speed="200" id="leftMenuSidebar">
  286 + </ul>
  287 + </div>
  288 + </div>
  289 + <div class="page-content-wrapper">
  290 + <div id="pjax-container" class="page-content" style="margin-left: 20px;"></div>
  291 + <a name="xd_position"></a>
  292 + <div id="route-container">
  293 + <div ng-app="ScheduleApp">
  294 + <div ng-controller="ScheduleAppController">
  295 +
  296 + <!-- loading widget -->
  297 + <div id="loadingWidget" class="flyover mask" loading-widget>
  298 + <div class="alert alert-info">
  299 + <strong>载入中......</strong>
  300 + </div>
  301 + </div>
  302 +
  303 + <div ui-view class="uv"></div>
  304 + </div>
  305 + </div>
  306 + </div>
  307 + </div>
  308 +</div>
  309 +
  310 +<script id="menu_list_temp" type="text/html">
  311 + {{each list as group i}}
  312 + <li class="heading">
  313 + <h3 class="uppercase">{{group.name}}</h3>
  314 + </li>
  315 + {{each group.children as dir j}}
  316 + <li class="nav-item">
  317 + <a href="javascript:;" class="nav-link nav-toggle ">
  318 + <i class="{{dir.icon}}"></i>
  319 + <span class="title">{{dir.name}}</span>
  320 + <span class="arrow"></span>
  321 + </a>
  322 + <ul class="sub-menu">
  323 + {{each dir.children as module s}}
  324 + <li class="nav-item ">
  325 + {{if module.container=="pjax-container"}}
  326 + <a href="/pages/{{module.path}}" class="nav-link " data-pjax>
  327 + <span class="title">{{module.name}}</span>
  328 + </a>
  329 + {{else}}
  330 + <a href="{{module.path}}" class="nav-link " data-angularjs>
  331 + <span class="title">{{module.name}}</span>
  332 + </a>
  333 + {{/if}}
  334 + </li>
  335 + {{/each}}
  336 + </ul>
  337 + </li>
  338 + {{/each}}
  339 + {{/each}}
  340 +
  341 +</script>
  342 +<script>
  343 + delete window.require;
  344 + delete window.exports;
  345 + delete window.module;
  346 +</script>
  347 +<!-- jQuery -->
  348 +<script src="/metronic_v4.5.4/plugins/jquery.min.js" data-exclude=1></script>
  349 +<!-- bootstrap -->
  350 +<script src="/metronic_v4.5.4/plugins/bootstrap/js/bootstrap.min.js"
  351 + data-exclude=1></script>
  352 +<script src="/pages/forms/statement/js/jquery.autocompleter.js"></script>
  353 +<script src="/pages/forms/statement/js/jquery.PrintArea.js"></script>
  354 +<!-- MTRONIC JS -->
  355 +<script src="/metronic_v4.5.4/scripts/app.min.js" data-exclude=1></script>
  356 +<script src="/metronic_v4.5.4/layout4/scripts/layout.min.js"
  357 + data-exclude=1></script>
  358 +<!-- 虚拟滚动条 -->
  359 +<script
  360 + src="/metronic_v4.5.4/plugins/jquery-slimscroll/jquery.slimscroll.min.js"></script>
  361 +<!-- jsTree 树插件 -->
  362 +<script src="/metronic_v4.5.4/plugins/jstree/dist/jstree.min.js"></script>
  363 +<!-- bootstrap-hover-dropDown -->
  364 +<script
  365 + src="/metronic_v4.5.4/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js"></script>
  366 +<!-- jquery.validate 表单验证 -->
  367 +<script
  368 + src="/metronic_v4.5.4/plugins/jquery-validation/js/jquery.validate.min.js"></script>
  369 +<script
  370 + src="/metronic_v4.5.4/plugins/jquery-validation/js/localization/messages_zh.js"></script>
  371 +<!-- 向导式插件 -->
  372 +<script
  373 + src="/metronic_v4.5.4//plugins/bootstrap-wizard/jquery.bootstrap.wizard.min.js"></script>
  374 +<!-- iCheck 单选框和复选框 -->
  375 +<script src="/metronic_v4.5.4/plugins/icheck/icheck.min.js"></script>
  376 +<!-- select2 下拉框 -->
  377 +<script src="/metronic_v4.5.4/plugins/select2/js/select2.full.min.js"></script>
  378 +<!-- MULTI SELECT 多选下拉框 -->
  379 +<script
  380 + src="/metronic_v4.5.4/plugins/jquery-multi-select/js/jquery.multi-select.js"></script>
  381 +<!-- editable.js -->
  382 +<script
  383 + src="/metronic_v4.5.4/plugins/bootstrap-editable/bootstrap-editable/js/bootstrap-editable.min.js"></script>
  384 +<!-- PJAX -->
  385 +<script src="/assets/plugins/jquery.pjax.js"></script>
  386 +<!-- layer 弹层 -->
  387 +<script src="/assets/plugins/layer-v2.4/layer/layer.js" data-exclude=1></script>
  388 +<!-- fileinput 上传 -->
  389 +<script src="/assets/plugins/fileinput/canvas-to-blob.min.js"></script>
  390 +<script src="/assets/plugins/fileinput/purify.min.js"></script>
  391 +<script src="/assets/plugins/fileinput/sortable.min.js"></script>
  392 +<script src="/assets/plugins/fileinput/fileinput.min.js"></script>
  393 +<script src="/assets/plugins/fileinput/fileinput_locale_zh.js"></script>
  394 +<!-- jquery.purl URL解析 -->
  395 +<script src="/assets/plugins/purl.js"></script>
  396 +<!-- jquery.serializejson JSON序列化插件 -->
  397 +<script src="/assets/plugins/jquery.serializejson.js"></script>
  398 +<!-- art-template 模版引擎 -->
  399 +<script src="/assets/plugins/template.js"></script>
  400 +<!-- jquery.pageinator 分页 -->
  401 +<script src="/assets/plugins/jqPaginator.min.js"></script>
  402 +<!-- moment.js 日期处理类库 -->
  403 +<script src="/assets/plugins/moment-with-locales.js"></script>
  404 +
  405 +<script src="/assets/plugins/pinyin.js"></script>
  406 +<!-- 日期控件 -->
  407 +<script
  408 + src="/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/js/bootstrap-datetimepicker.min.js"></script>
  409 +<!-- 表格控件 -->
  410 +<script src="/metronic_v4.5.4/plugins/bootstrap-tagsinput/bootstrap-tagsinput.min.js"></script>
  411 +<!-- 统计图控件 -->
  412 +<!--<script src="/assets/global/getEchart.js"></script>
  413 +<script src="/assets/global/echarts.js"></script> -->
  414 +<script src="/assets/js/common.js"></script>
  415 +<script src="/assets/js/dictionary.js"></script>
  416 +<!-- tipso JS -->
  417 +<script src="/metronic_v4.5.4/plugins/tipso/js/tipso.js"></script>
  418 +<script data-exclude=1>
  419 + //初始打开的片段地址
  420 + var initFragment = "^_^initFragment^_^";
  421 + //静态文件目录
  422 + var dir = '/pages/';
  423 + //片段容器
  424 + var pjaxContainer = '#pjax-container'
  425 + , angJsContainer = '#route-container';
  426 +
  427 + $(document).ajaxError(function (event, jqxhr, settings, thrownError) {
  428 + if(jqxhr.status == 403){
  429 + layer.closeAll();
  430 + layer.alert(jqxhr.message?jqxhr.message:'访问被拒绝', {icon: 2, title: '操作失败'});
  431 + }
  432 + });
  433 +
  434 + $(function () {
  435 + $.get('/user/currentUser', function (user) {
  436 + $('#indexTopUName').text(user.userName);
  437 + });
  438 +
  439 + //带 data-pjax 的链接由pjax加载
  440 + $(document).pjax('a[data-pjax]', pjaxContainer);
  441 +
  442 + //pjax左菜单点击事件
  443 + $(document).on('click', '#leftMenuSidebar a[data-pjax]', function () {
  444 + setTitle(this);
  445 +
  446 + $('#leftMenuSidebar li.nav-item.active').removeClass('active');
  447 + $(this).parent().addClass('active');
  448 + showPjax();
  449 + });
  450 +
  451 + //angularjs左菜单点击事件
  452 + $(document).on('click', '#leftMenuSidebar a[data-angularjs]', function () {
  453 + setTitle(this);
  454 +
  455 + $('#leftMenuSidebar li.nav-item.active').removeClass('active');
  456 + $(this).parent().addClass('active');
  457 + showAngJs();
  458 + });
  459 +
  460 + //加载左菜单栏
  461 + $get('/module/findByCurrentUser', null,
  462 + function (ms) {
  463 + var treeArray = createTreeData(ms);
  464 + treeArray.sort(function (a, b) {
  465 + return a.createDate - b.createDate;
  466 + });
  467 + var menuHtml = template('menu_list_temp', {list: treeArray});
  468 + $('#leftMenuSidebar').html(menuHtml);
  469 +
  470 + //----------- 检查URL ----------------
  471 + var h = location.hash;
  472 + if (initFragment && initFragment != '') {
  473 + showPjax();
  474 + //普通片段
  475 + loadPage(initFragment);
  476 + //选中菜单
  477 + $.each($('#leftMenuSidebar a'), function (i, item) {
  478 + if (urlPattern($(item).attr('href'), initFragment)) {
  479 + activeLeftMenu(item);
  480 + }
  481 + });
  482 + } else if (h) {
  483 + //angularjs片段
  484 + showAngJs();
  485 + //选中菜单
  486 + $.each($('#leftMenuSidebar a'), function (i, item) {
  487 + if ($(item).attr('href') == h) {
  488 + activeLeftMenu(item);
  489 + }
  490 + });
  491 + }
  492 + else {
  493 + //加载主页
  494 + loadPage('/pages/home.html');
  495 + }
  496 + });
  497 +
  498 + //修改密码
  499 + $('#changePWD').on('click', function () {
  500 + $.get('/pages/permission/user/changePWD.html', function (content) {
  501 + layer.open({
  502 + type: 1,
  503 + area: ['600px', '360px'],
  504 + content: content,
  505 + title: '修改密码',
  506 + shift: 5,
  507 + scrollbar: false,
  508 + success: function () {
  509 + }
  510 + });
  511 + });
  512 + });
  513 + });
  514 +
  515 + //modal关闭时销毁dom
  516 + $(document).on('hidden.bs.modal', '.modal', function () {
  517 + $(this).remove();
  518 + });
  519 +
  520 + //pjax加载完成事件
  521 + $(document).on('pjax:success', function () {
  522 + var dicts = $(pjaxContainer).find('.nt-dictionary');
  523 + dictionaryUtils.transformDom(dicts);
  524 + });
  525 +
  526 + function loadPage(url) {
  527 + $.pjax({url: url, container: pjaxContainer})
  528 + }
  529 +
  530 + function urlPattern(a, b) {
  531 + var r;
  532 + try {
  533 + r = a.substring(0, a.lastIndexOf('/')) == b.substring(0, b.lastIndexOf('/'));
  534 + } catch (e) {
  535 + r = false;
  536 + }
  537 + return r;
  538 + }
  539 +
  540 + function showPjax() {
  541 + $(angJsContainer).removeClass('page-content active').hide();
  542 + $(pjaxContainer).addClass('page-content active');
  543 + }
  544 +
  545 + function showAngJs() {
  546 + $(pjaxContainer).html('').removeClass('page-content active').hide();
  547 + $(angJsContainer).addClass('page-content active');
  548 + }
  549 +
  550 + function activeLeftMenu(item) {
  551 + $(item).parent('.nav-item').addClass('active').parent('.sub-menu').show().parent().addClass('open');
  552 + setTitle(item);
  553 + }
  554 +
  555 + function setTitle(menuItem){
  556 + document.title = $('span.title', menuItem).text();
  557 + }
  558 +
  559 +</script>
  560 +<!-- d3 -->
  561 +<script src="/assets/js/d3.min.js" data-exclude=1></script>
  562 +<!-- webSocket JS -->
  563 +<script src="/assets/js/sockjs.min.js"></script>
  564 +
  565 +<!-- TODO:angularJS相关库 -->
  566 +
  567 +<!-- angularJS相关库 -->
  568 +<!-- 这个是基于angularjs 1.4.10修改的版本,主要是修改了history控制部分,用于兼容route和pjax的同时操作history的冲突 -->
  569 +<script src="/assets/js/angular.js" data-autocephaly=1></script>
  570 +<script src="/assets/bower_components/angular-i18n/angular-locale_zh-cn.js" data-autocephaly=1></script>
  571 +<script
  572 + src="/assets/bower_components/angular-resource/angular-resource.min.js"
  573 + data-exclude=1></script>
  574 +<script
  575 + src="/assets/bower_components/angular-sanitize/angular-sanitize.min.js"
  576 + data-exclude=1></script>
  577 +<script
  578 + src="/assets/bower_components/angular-animate/angular-animate.min.js"
  579 + data-exclude=1></script>
  580 +<script
  581 + src="/assets/bower_components/angular-touch/angular-touch.min.js"
  582 + data-exclude=1></script>
  583 +<script
  584 + src="/assets/bower_components/angular-ui-router/release/angular-ui-router.min.js"
  585 + data-exclude=1></script>
  586 +<script
  587 + src="/assets/bower_components/oclazyload/dist/ocLazyLoad.min.js"
  588 + data-exclude=1></script>
  589 +<script
  590 + src="/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"
  591 + data-exclude=1></script>
  592 +<!-- handsontable相关js -->
  593 +<script
  594 + src="/assets/bower_components/handsontable/dist/handsontable.full.js"></script>
  595 +<script
  596 + src="/assets/bower_components/ngHandsontable/dist/ngHandsontable.js"></script>
  597 +<!-- sweetalert相关js -->
  598 +<script src="/assets/bower_components/sweetalert/dist/sweetalert.min.js"></script>
  599 +<script src="/assets/bower_components/ng-sweet-alert/ng-sweet-alert.js"></script>
  600 +
  601 +<!-- schedule计划调度AngularJS模块主JS -->
  602 +<script src="/pages/scheduleApp/module/common/main.js" data-exclude=1></script>
  603 +<script
  604 + src="/pages/scheduleApp/module/common/prj-common-globalservice.js"
  605 + data-exclude=1></script>
  606 +<script src="/pages/scheduleApp/module/common/prj-common-filter.js"
  607 + data-exclude=1></script>
  608 +<script src="/pages/scheduleApp/module/common/prj-common-directive.js"
  609 + data-exclude=1></script>
  610 +<script
  611 + src="/pages/scheduleApp/module/common/prj-common-ui-route-state.js"
  612 + data-exclude=1></script>
  613 +
  614 +<!-- 地图相关 -->
  615 +<!-- 百度 -->
  616 +<script
  617 + src="http://api.map.baidu.com/api?v=2.0&ak=IGGrr4UjwIYzatoCRFKEL8sT"
  618 + data-exclude=1></script>
  619 +<script
  620 + src="http://api.map.baidu.com/library/TrafficControl/1.4/src/TrafficControl_min.js"
  621 + data-exclude=1></script>
  622 +<script type="text/javascript"
  623 + src="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"
  624 + data-exclude=1></script>
  625 +<script type="text/javascript"
  626 + src="http://api.map.baidu.com/library/RichMarker/1.2/src/RichMarker_min.js "
  627 + data-exclude=1></script>
  628 +<script src="/assets/js/baidu/TextIconOverlay.js" data-exclude=1></script>
  629 +<script src="/assets/js/baidu//MarkerClusterer.js" data-exclude=1></script>
  630 +<!-- 高德 -->
  631 +<script
  632 + src="http://webapi.amap.com/maps?v=1.3&key=16cb1c5043847e09ef9edafdd77befda"
  633 + data-exclude=1></script>
  634 +<!-- echarts4 误删 -->
  635 +<script src="/metronic_v4.5.4/plugins/echarts4/echarts.min.js"></script>
  636 +<script src="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.jquery.js" merge="plugins"></script>
  637 +
  638 +</body>
638 </html> 639 </html>
639 \ No newline at end of file 640 \ No newline at end of file
src/main/resources/static/login.html
1 -<!DOCTYPE html>  
2 -<html lang="zh">  
3 -<head>  
4 - <meta name="renderer" content="webkit" />  
5 - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />  
6 - <meta charset="utf-8" />  
7 - <title>登录</title>  
8 - <link  
9 - href="/metronic_v4.5.4/plugins/font-awesome/css/font-awesome.min.css"  
10 - rel="stylesheet" type="text/css" />  
11 - <!-- Bootstrap style -->  
12 - <link href="/metronic_v4.5.4/plugins/bootstrap/css/bootstrap.min.css"  
13 - rel="stylesheet" type="text/css" />  
14 -  
15 - <!-- METRONIC style -->  
16 - <link href="/metronic_v4.5.4/css/components.css" rel="stylesheet"  
17 - type="text/css" />  
18 -  
19 - <style type="text/css">  
20 - body>.wrapper {  
21 - background-image: url(/assets/img/bg_9b9dcb65ff.png);  
22 - background-size: 100px;  
23 - background-repeat: repeat;  
24 - min-height: 800px;  
25 - min-width: 630px;  
26 - position: absolute;  
27 - top: 0;  
28 - bottom: 0;  
29 - left: 0;  
30 - right: 0;  
31 - }  
32 -  
33 - #loginPanel.dialog-shadow {  
34 - width: 450px;  
35 - /* height: 400px; */  
36 - border: 1px solid #dadada;  
37 - border-radius: 10px !important;  
38 - position: absolute;  
39 - box-shadow: 0 9px 30px -6px rgba(0, 0, 0, .2), 0 18px 20px -10px  
40 - rgba(0, 0, 0, .04), 0 18px 20px -10px rgba(0, 0, 0, .04), 0 10px 20px  
41 - -10px rgba(0, 0, 0, .04);  
42 - background: url(/assets/img/dialog-gray-bg_42c40b3eb6.png) #fff bottom  
43 - repeat-x;  
44 - top: 50%;  
45 - left: 50%;  
46 - margin-left: -225px;  
47 - margin-top: -300px;  
48 - text-align: center;  
49 - color: #333;  
50 - opacity: .5;  
51 -  
52 - padding-bottom: 56px;  
53 -  
54 - animation: to_center 1s forwards;  
55 - animation-delay: .2s;  
56 -  
57 - transition: all .3s ease;  
58 - }  
59 -  
60 - @keyframes to_center  
61 - {  
62 - 0% {margin-top: -300px;opacity: .5;}  
63 - 100% {margin-top: -270px;opacity: 1;}  
64 - }  
65 -  
66 -  
67 - h3 {  
68 - font-size: 25px;  
69 - font-weight: 600;  
70 - color: #4a4a4a  
71 - }  
72 -  
73 - .input-icon input {  
74 - height: 48px;  
75 - border-radius: 5px !important;  
76 - transition: all .5s ease;  
77 - }  
78 -  
79 - .input-icon input:FOCUS {  
80 - border-color: #c2cad8;  
81 - box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12) !important;  
82 - }  
83 -  
84 - .input-icon>i {  
85 - margin-top: 16px;  
86 - }  
87 -  
88 - #loginPanel #loginBtn.btn{  
89 - border-radius: 6px !important;  
90 - width: 378px;  
91 - height: 48px;  
92 - font-size: 20px;  
93 - font-family: 微软雅黑;  
94 - transition: all .3s ease;  
95 -  
96 - background: #5f7ed7;  
97 - background: linear-gradient(#6f97e5,#527ed9);  
98 - box-shadow: inset 0 1px 2px #7ea1e8 !important;  
99 - color: #fff;  
100 - text-shadow: #4f70b3 0 -1px 0;  
101 - border: none;  
102 - }  
103 -  
104 - #loginPanel #loginBtn.btn:HOVER {  
105 - box-shadow: inset 0 1px 1px #7696de,inset 0 0 2px #627dca,inset 0 -2px 3px #5a77c7,inset 0 0 100px rgba(48,77,147,.4) !important;  
106 - }  
107 -  
108 -  
109 - #loginPanel.show_msg{  
110 - top: calc(50% - 10px);  
111 - }  
112 -  
113 - #loginPanel .alert{  
114 - display: none;  
115 - padding: 12px;  
116 - margin-top: 21px;  
117 - border-radius: 0 0 10px 10px !important;  
118 - font-size: 13px;  
119 -  
120 - position: absolute;  
121 - width: 100%;  
122 - border-bottom: 1px solid #dadada;  
123 - }  
124 -  
125 - #loginPanel .alert.login-success{  
126 - color: #27a4b0;  
127 - background: #abe7ed;  
128 - border-color: #abe7ed;  
129 - }  
130 -  
131 - #loginPanel .alert i{  
132 - font-size: 16px;  
133 - vertical-align: middle;  
134 - margin: 0 5px 3px;  
135 - }  
136 -  
137 - #loginPanel.show_msg .alert{  
138 - display: block;  
139 - }  
140 -  
141 - #captchaWrap{  
142 - display: none;  
143 - text-align: left;  
144 - border-top: 1px solid #f3f2f2;  
145 - }  
146 -  
147 - img.captcha-img{  
148 - cursor: pointer;  
149 - }  
150 -  
151 - .login-footer{  
152 - position: fixed;  
153 - width: 100%;  
154 - bottom: 35px;  
155 - text-align: center;  
156 - color: #a6a6a6;  
157 - }  
158 -  
159 - h3.logo-text{  
160 - font-family: 华文楷体,华文细黑;  
161 - font-size: 28px;  
162 - }  
163 -  
164 - .warn-note{  
165 - width: 100%;  
166 - position: absolute;  
167 - top: 0;  
168 - z-index: 2;  
169 - text-align: center;  
170 - background: #ff4646;  
171 - color: white;  
172 - padding: 12px;  
173 - display: none;  
174 - }  
175 - </style>  
176 -</head>  
177 -  
178 -<body>  
179 -<div class="warn-note">警告!系统目前仅在 WebKit 内核下完成兼容性测试,请使用 Google  
180 - Chrome 浏览器进入系统。</div>  
181 -<div class="wrapper ng-scope">  
182 - <div id="loginPanel" class="dialog dialog-shadow">  
183 - <br>  
184 - <h3 class="logo-text">调度系统</h3>  
185 - <hr>  
186 - <form style="padding: 0px 35px;">  
187 - <div class="form-group" style="margin-bottom: 0">  
188 - <label></label>  
189 - <div class="input-icon">  
190 - <i class="fa fa-user font-gray"></i> <input type="text"  
191 - name="userName" class="form-control" placeholder="输入用户名"  
192 - autofocus="autofocus" autocomplete="off">  
193 - </div>  
194 - </div>  
195 -  
196 - <div class="form-group">  
197 - <label></label>  
198 - <div class="input-icon">  
199 - <i class="fa fa-key font-gray"></i> <input type="password"  
200 - name="password" class="form-control" placeholder="输入密码">  
201 - </div>  
202 - </div>  
203 -  
204 - <div class="form-group" id="captchaWrap">  
205 - <label></label>  
206 - <div class="input-icon">  
207 - <input type="text" name="captcha" style="width: 153px !important;"  
208 - class="form-control input-inline input-medium"  
209 - placeholder="输入验证码"> <span class="help-inline"> <img  
210 - alt="验证码" class="captcha-img" title="点击刷新验证码">  
211 - </span>  
212 - </div>  
213 - </div>  
214 - </form>  
215 - <br>  
216 - <br>  
217 - <div class="form-actions">  
218 - <button class="btn blue-steel" id="loginBtn" disabled="disabled">登录</button>  
219 - </div>  
220 -  
221 - <div class="alert alert-danger"></div>  
222 - </div>  
223 -  
224 - <div class="login-footer">© 2016 上海巴士拓华科技发展有限公司 Some Rights  
225 - Reserved</div>  
226 -</div>  
227 -  
228 -<script>  
229 - delete window.require;  
230 - delete window.exports;  
231 - delete window.module;  
232 -</script>  
233 -<!-- jQuery -->  
234 -<script src="/metronic_v4.5.4/plugins/jquery.min.js"></script>  
235 -<script src="/assets/plugins/jsencrypt.min.js"></script>  
236 -<script>  
237 - window.onload=function(){  
238 - var body=document.getElementsByTagName("body")[0];  
239 - if(typeof body.style.WebkitAnimation=="undefined")  
240 - $('.warn-note').fadeIn();  
241 - };  
242 - !function(){  
243 - var form = $('#loginPanel form')  
244 - ,nameInput = $('input[name=userName]', form)  
245 - ,pwdInput = $('input[name=password]', form)  
246 - ,msgAlert = $('#loginPanel .alert-danger');  
247 -  
248 - $('input', form).on('keyup', checkBtnStatus);  
249 -  
250 - var keys;  
251 - $.get('/user/login/jCryptionKey?t='+Math.random(), function(data){  
252 - keys = data.publickey;  
253 - });  
254 -  
255 -  
256 -  
257 - function checkBtnStatus(){  
258 - var es = $('input:visible', form);  
259 - for(var i = 0, e; e = es[i++];){  
260 - if($.trim($(e).val()) == ''){  
261 - $('#loginBtn').attr('disabled', 'disabled');  
262 - $('#loginPanel').removeClass('show_msg');  
263 - return;  
264 - }  
265 - }  
266 - $('#loginBtn').removeAttr('disabled');  
267 - }  
268 -  
269 - nameInput.on('blur', checkStatus);  
270 - //keyup 事件做延迟  
271 - var uNameKeyup;  
272 - nameInput.on('keyup', function(){  
273 - if(uNameKeyup)  
274 - return;  
275 - uNameKeyup = true;  
276 - setTimeout(function(){  
277 - checkStatus();  
278 - uNameKeyup = false;  
279 - }, 200);  
280 - });  
281 -  
282 - //密码框回车事件  
283 - pwdInput.on('keyup', function(e){  
284 - if (e.keyCode == 13)  
285 - $('#loginBtn').click();  
286 - });  
287 - //验证码框回车事件  
288 - $('input[name=captcha]').on('keyup', function(e){  
289 - if (e.keyCode == 13)  
290 - $('#loginBtn').click();  
291 - });  
292 -  
293 - $('#loginBtn').on('click', function(){  
294 - if(lock || $(this).attr('disabled')) return;  
295 - var userName = nameInput.val()  
296 - ,pwd = pwdInput.val();  
297 -  
298 - //RSA加密  
299 - var encrypt = new JSEncrypt();  
300 - encrypt.setPublicKey(keys);  
301 - userName = encrypt.encrypt(userName);  
302 - pwd = encrypt.encrypt(pwd);  
303 - //登录  
304 - login(userName, pwd);  
305 - });  
306 -  
307 - var lock;  
308 - function login(userName, pwd){  
309 - lock = true;  
310 - $('#loginBtn').attr('disabled', 'disabled');  
311 -  
312 - var params = {  
313 - userName: userName,  
314 - password: pwd,  
315 - captcha: $('input[name=captcha]').val()  
316 - };  
317 - $.post('/user/login', params  
318 - ,function(rs){  
319 -  
320 - $('#loginPanel').addClass('show_msg');  
321 - if(error(rs)){  
322 - lock = false;  
323 - $('#loginBtn').removeAttr('disabled');  
324 -  
325 - msgAlert.html('<i class="fa fa-times-circle"> </i> 登录失败,' + rs.msg);  
326 -  
327 - _captcha.refresh();  
328 - checkStatus();  
329 - }  
330 - else{  
331 - msgAlert.html('<i class="fa fa-check"> </i> 登录成功!');  
332 - msgAlert.addClass('login-success');  
333 - window.location.href = '/';  
334 - }  
335 - });  
336 - }  
337 -  
338 - function checkStatus(){  
339 - var t = nameInput.val();  
340 - if(!t){  
341 - hide();  
342 - return;  
343 - }  
344 -  
345 - $.get('/user/login/captchaStatus', {userName: t}, function(rs){  
346 - if(rs >= 3)  
347 - _captcha.show();  
348 - else  
349 - hide();  
350 - });  
351 -  
352 - function hide(){  
353 - if(!$("#captchaWrap").is(":hidden")){  
354 - _captcha.hide();  
355 - //隐藏提示消息  
356 - msgAlert.html('');  
357 - $('#loginPanel').removeClass('show_msg');  
358 - }  
359 - }  
360 - }  
361 -  
362 -  
363 - var _captcha = {  
364 - show: function(){  
365 - if($("#captchaWrap").is(":hidden")){  
366 - $('#captchaWrap').fadeIn(500);  
367 - _captcha.refresh();  
368 - checkBtnStatus();  
369 - }  
370 - },  
371 - refresh: function(){  
372 - if($("#captchaWrap").is(":hidden"))  
373 - return;  
374 - $('#captchaWrap img.captcha-img').attr('src', '/captcha.jpg?t=' + Math.random());  
375 - },  
376 - hide: function(){  
377 - $('#captchaWrap').hide();  
378 - $('input[name=captcha]').val('');  
379 - }  
380 - };  
381 -  
382 - $('#captchaWrap img.captcha-img').on('click', function(){  
383 - $(this).attr('src', '/captcha.jpg?t=' + Math.random());  
384 - });  
385 -  
386 - function error(rs){  
387 - return rs.status == 'ERROR' || rs.status == 500;  
388 - }  
389 - }();  
390 -</script>  
391 -</body> 1 +<!DOCTYPE html>
  2 +<html lang="zh">
  3 +<head>
  4 + <meta name="renderer" content="webkit" />
  5 + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  6 + <meta charset="utf-8" />
  7 + <title>登录</title>
  8 + <link
  9 + href="/metronic_v4.5.4/plugins/font-awesome/css/font-awesome.min.css"
  10 + rel="stylesheet" type="text/css" />
  11 + <!-- Bootstrap style -->
  12 + <link href="/metronic_v4.5.4/plugins/bootstrap/css/bootstrap.min.css"
  13 + rel="stylesheet" type="text/css" />
  14 +
  15 + <!-- METRONIC style -->
  16 + <link href="/metronic_v4.5.4/css/components.css" rel="stylesheet"
  17 + type="text/css" />
  18 +
  19 + <style type="text/css">
  20 + body>.wrapper {
  21 + background-image: url(/assets/img/bg_9b9dcb65ff.png);
  22 + background-size: 100px;
  23 + background-repeat: repeat;
  24 + min-height: 800px;
  25 + min-width: 630px;
  26 + position: absolute;
  27 + top: 0;
  28 + bottom: 0;
  29 + left: 0;
  30 + right: 0;
  31 + }
  32 +
  33 + #loginPanel.dialog-shadow {
  34 + width: 450px;
  35 + /* height: 400px; */
  36 + border: 1px solid #dadada;
  37 + border-radius: 10px !important;
  38 + position: absolute;
  39 + box-shadow: 0 9px 30px -6px rgba(0, 0, 0, .2), 0 18px 20px -10px
  40 + rgba(0, 0, 0, .04), 0 18px 20px -10px rgba(0, 0, 0, .04), 0 10px 20px
  41 + -10px rgba(0, 0, 0, .04);
  42 + background: url(/assets/img/dialog-gray-bg_42c40b3eb6.png) #fff bottom
  43 + repeat-x;
  44 + top: 50%;
  45 + left: 50%;
  46 + margin-left: -225px;
  47 + margin-top: -300px;
  48 + text-align: center;
  49 + color: #333;
  50 + opacity: .5;
  51 +
  52 + padding-bottom: 56px;
  53 +
  54 + animation: to_center 1s forwards;
  55 + animation-delay: .2s;
  56 +
  57 + transition: all .3s ease;
  58 + }
  59 +
  60 + @keyframes to_center
  61 + {
  62 + 0% {margin-top: -300px;opacity: .5;}
  63 + 100% {margin-top: -270px;opacity: 1;}
  64 + }
  65 +
  66 +
  67 + h3 {
  68 + font-size: 25px;
  69 + font-weight: 600;
  70 + color: #4a4a4a
  71 + }
  72 +
  73 + .input-icon input {
  74 + height: 48px;
  75 + border-radius: 5px !important;
  76 + transition: all .5s ease;
  77 + }
  78 +
  79 + .input-icon input:FOCUS {
  80 + border-color: #c2cad8;
  81 + box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12) !important;
  82 + }
  83 +
  84 + .input-icon>i {
  85 + margin-top: 16px;
  86 + }
  87 +
  88 + #loginPanel #loginBtn.btn{
  89 + border-radius: 6px !important;
  90 + width: 378px;
  91 + height: 48px;
  92 + font-size: 20px;
  93 + font-family: 微软雅黑;
  94 + transition: all .3s ease;
  95 +
  96 + background: #5f7ed7;
  97 + background: linear-gradient(#6f97e5,#527ed9);
  98 + box-shadow: inset 0 1px 2px #7ea1e8 !important;
  99 + color: #fff;
  100 + text-shadow: #4f70b3 0 -1px 0;
  101 + border: none;
  102 + }
  103 +
  104 + #loginPanel #loginBtn.btn:HOVER {
  105 + box-shadow: inset 0 1px 1px #7696de,inset 0 0 2px #627dca,inset 0 -2px 3px #5a77c7,inset 0 0 100px rgba(48,77,147,.4) !important;
  106 + }
  107 +
  108 +
  109 + #loginPanel.show_msg{
  110 + top: calc(50% - 10px);
  111 + }
  112 +
  113 + #loginPanel .alert{
  114 + display: none;
  115 + padding: 12px;
  116 + margin-top: 21px;
  117 + border-radius: 0 0 10px 10px !important;
  118 + font-size: 13px;
  119 +
  120 + position: absolute;
  121 + width: 100%;
  122 + border-bottom: 1px solid #dadada;
  123 + }
  124 +
  125 + #loginPanel .alert.login-success{
  126 + color: #27a4b0;
  127 + background: #abe7ed;
  128 + border-color: #abe7ed;
  129 + }
  130 +
  131 + #loginPanel .alert i{
  132 + font-size: 16px;
  133 + vertical-align: middle;
  134 + margin: 0 5px 3px;
  135 + }
  136 +
  137 + #loginPanel.show_msg .alert{
  138 + display: block;
  139 + }
  140 +
  141 + #captchaWrap{
  142 + display: none;
  143 + text-align: left;
  144 + border-top: 1px solid #f3f2f2;
  145 + }
  146 +
  147 + img.captcha-img{
  148 + cursor: pointer;
  149 + }
  150 +
  151 + .login-footer{
  152 + position: fixed;
  153 + width: 100%;
  154 + bottom: 35px;
  155 + text-align: center;
  156 + color: #a6a6a6;
  157 + }
  158 +
  159 + h3.logo-text{
  160 + font-family: 华文楷体,华文细黑;
  161 + font-size: 28px;
  162 + }
  163 +
  164 + .warn-note{
  165 + width: 100%;
  166 + position: absolute;
  167 + top: 0;
  168 + z-index: 2;
  169 + text-align: center;
  170 + background: #ff4646;
  171 + color: white;
  172 + padding: 12px;
  173 + display: none;
  174 + }
  175 + </style>
  176 +</head>
  177 +
  178 +<body>
  179 +<div class="warn-note">警告!系统目前仅在 WebKit 内核下完成兼容性测试,请使用 Google
  180 + Chrome 浏览器进入系统。</div>
  181 +<div class="wrapper ng-scope">
  182 + <div id="loginPanel" class="dialog dialog-shadow">
  183 + <br>
  184 + <h3 class="logo-text">调度系统</h3>
  185 + <hr>
  186 + <form style="padding: 0px 35px;">
  187 + <div class="form-group" style="margin-bottom: 0">
  188 + <label></label>
  189 + <div class="input-icon">
  190 + <i class="fa fa-user font-gray"></i> <input type="text"
  191 + name="userName" class="form-control" placeholder="输入用户名"
  192 + autofocus="autofocus" autocomplete="off">
  193 + </div>
  194 + </div>
  195 +
  196 + <div class="form-group">
  197 + <label></label>
  198 + <div class="input-icon">
  199 + <i class="fa fa-key font-gray"></i> <input type="password"
  200 + name="password" class="form-control" placeholder="输入密码">
  201 + </div>
  202 + </div>
  203 +
  204 + <div class="form-group" id="captchaWrap">
  205 + <label></label>
  206 + <div class="input-icon">
  207 + <input type="text" name="captcha" style="width: 153px !important;"
  208 + class="form-control input-inline input-medium"
  209 + placeholder="输入验证码"> <span class="help-inline"> <img
  210 + alt="验证码" class="captcha-img" title="点击刷新验证码">
  211 + </span>
  212 + </div>
  213 + </div>
  214 + </form>
  215 + <br>
  216 + <br>
  217 + <div class="form-actions">
  218 + <button class="btn blue-steel" id="loginBtn" disabled="disabled">登录</button>
  219 + </div>
  220 +
  221 + <div class="alert alert-danger"></div>
  222 + </div>
  223 +
  224 + <div class="login-footer">© 2016 上海西虹桥导航技术有限公司 Some Rights
  225 + Reserved</div>
  226 +</div>
  227 +
  228 +<script>
  229 + delete window.require;
  230 + delete window.exports;
  231 + delete window.module;
  232 +</script>
  233 +<!-- jQuery -->
  234 +<script src="/metronic_v4.5.4/plugins/jquery.min.js"></script>
  235 +<script src="/assets/plugins/jsencrypt.min.js"></script>
  236 +<script>
  237 + window.onload=function(){
  238 + var body=document.getElementsByTagName("body")[0];
  239 + if(typeof body.style.WebkitAnimation=="undefined")
  240 + $('.warn-note').fadeIn();
  241 + };
  242 + !function(){
  243 + var form = $('#loginPanel form')
  244 + ,nameInput = $('input[name=userName]', form)
  245 + ,pwdInput = $('input[name=password]', form)
  246 + ,msgAlert = $('#loginPanel .alert-danger');
  247 +
  248 + $('input', form).on('keyup', checkBtnStatus);
  249 +
  250 + var keys;
  251 + $.get('/user/login/jCryptionKey?t='+Math.random(), function(data){
  252 + keys = data.publickey;
  253 + });
  254 +
  255 +
  256 +
  257 + function checkBtnStatus(){
  258 + var es = $('input:visible', form);
  259 + for(var i = 0, e; e = es[i++];){
  260 + if($.trim($(e).val()) == ''){
  261 + $('#loginBtn').attr('disabled', 'disabled');
  262 + $('#loginPanel').removeClass('show_msg');
  263 + return;
  264 + }
  265 + }
  266 + $('#loginBtn').removeAttr('disabled');
  267 + }
  268 +
  269 + nameInput.on('blur', checkStatus);
  270 + //keyup 事件做延迟
  271 + var uNameKeyup;
  272 + nameInput.on('keyup', function(){
  273 + if(uNameKeyup)
  274 + return;
  275 + uNameKeyup = true;
  276 + setTimeout(function(){
  277 + checkStatus();
  278 + uNameKeyup = false;
  279 + }, 200);
  280 + });
  281 +
  282 + //密码框回车事件
  283 + pwdInput.on('keyup', function(e){
  284 + if (e.keyCode == 13)
  285 + $('#loginBtn').click();
  286 + });
  287 + //验证码框回车事件
  288 + $('input[name=captcha]').on('keyup', function(e){
  289 + if (e.keyCode == 13)
  290 + $('#loginBtn').click();
  291 + });
  292 +
  293 + $('#loginBtn').on('click', function(){
  294 + if(lock || $(this).attr('disabled')) return;
  295 + var userName = nameInput.val()
  296 + ,pwd = pwdInput.val();
  297 +
  298 + //RSA加密
  299 + var encrypt = new JSEncrypt();
  300 + encrypt.setPublicKey(keys);
  301 + userName = encrypt.encrypt(userName);
  302 + pwd = encrypt.encrypt(pwd);
  303 + //登录
  304 + login(userName, pwd);
  305 + });
  306 +
  307 + var lock;
  308 + function login(userName, pwd){
  309 + lock = true;
  310 + $('#loginBtn').attr('disabled', 'disabled');
  311 +
  312 + var params = {
  313 + userName: userName,
  314 + password: pwd,
  315 + captcha: $('input[name=captcha]').val()
  316 + };
  317 + $.post('/user/login', params
  318 + ,function(rs){
  319 +
  320 + $('#loginPanel').addClass('show_msg');
  321 + if(error(rs)){
  322 + lock = false;
  323 + $('#loginBtn').removeAttr('disabled');
  324 +
  325 + msgAlert.html('<i class="fa fa-times-circle"> </i> 登录失败,' + rs.msg);
  326 +
  327 + _captcha.refresh();
  328 + checkStatus();
  329 + }
  330 + else{
  331 + msgAlert.html('<i class="fa fa-check"> </i> 登录成功!');
  332 + msgAlert.addClass('login-success');
  333 + window.location.href = '/';
  334 + }
  335 + });
  336 + }
  337 +
  338 + function checkStatus(){
  339 + var t = nameInput.val();
  340 + if(!t){
  341 + hide();
  342 + return;
  343 + }
  344 +
  345 + $.get('/user/login/captchaStatus', {userName: t}, function(rs){
  346 + if(rs >= 3)
  347 + _captcha.show();
  348 + else
  349 + hide();
  350 + });
  351 +
  352 + function hide(){
  353 + if(!$("#captchaWrap").is(":hidden")){
  354 + _captcha.hide();
  355 + //隐藏提示消息
  356 + msgAlert.html('');
  357 + $('#loginPanel').removeClass('show_msg');
  358 + }
  359 + }
  360 + }
  361 +
  362 +
  363 + var _captcha = {
  364 + show: function(){
  365 + if($("#captchaWrap").is(":hidden")){
  366 + $('#captchaWrap').fadeIn(500);
  367 + _captcha.refresh();
  368 + checkBtnStatus();
  369 + }
  370 + },
  371 + refresh: function(){
  372 + if($("#captchaWrap").is(":hidden"))
  373 + return;
  374 + $('#captchaWrap img.captcha-img').attr('src', '/captcha.jpg?t=' + Math.random());
  375 + },
  376 + hide: function(){
  377 + $('#captchaWrap').hide();
  378 + $('input[name=captcha]').val('');
  379 + }
  380 + };
  381 +
  382 + $('#captchaWrap img.captcha-img').on('click', function(){
  383 + $(this).attr('src', '/captcha.jpg?t=' + Math.random());
  384 + });
  385 +
  386 + function error(rs){
  387 + return rs.status == 'ERROR' || rs.status == 500;
  388 + }
  389 + }();
  390 +</script>
  391 +</body>
392 </html> 392 </html>
393 \ No newline at end of file 393 \ No newline at end of file